From a62adabcef4542049af3fefe1f685acef12e484c Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Fri, 30 Aug 2024 10:00:03 +0100 Subject: [PATCH] Autosave: 2024-08-30 10:00:03 --- .zk/notebook.db | Bin 4153344 -> 4153344 bytes zk/IP_addresses.md | 66 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/.zk/notebook.db b/.zk/notebook.db index ccf9261980317af7ed6ed01e2b251342d42c3af4..d99a38ef13cda0c6ed338f6f2c1cebe0b665ff90 100644 GIT binary patch delta 35278 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 Vyl6ao-*79>{cP#deZ!~S{~vi2jKKf^ delta 22870 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%0AC6sXr((jggW6>d`)4P$2z)J10igY(GTu xuW|io`-2lB|EE+hJ;1}S 192.168.1.23/24 + +The value after the forward slash is the number of bits that specify the network +address. In the example, it is the standard 24-bits. Thus 192.168.1.23 stands +for the network. + +### Subnet masking + +The subnet mask is another number _in addition to_ the network address. It is a +kind of superimposed map on top of the address. + +Here is an example of a subnet mask: + +> 11111111.11111111.11111111.00000000 + +The denary form would be as follows (as 255 is the maximal decimal number that +can be represented with a single 8-bit number and 0 is the smallest): + +> 255.255.255.0 + +In the binary form, the 1 values represent the bits which designate the network +address and the 0 values represent the bits that designate the host. + +In the example above this corresonds to the idealised 32-bit/8-bit ratio. + +There is a clever consequence of the subnet mask: if you apply a bitwise AND +operator against the IP address and mask (both in their binary form) you can +determine whether two addresses are on the same network. + +To compare the IP address 192.168.1.23 against 192.168.1.100 to demonstrate: + +``` +192.168.1.23; +IP: 11000000.10101000.00000001.00010111 +Mask: 11111111.11111111.11111111.00000000 +Result: 11000000.10101000.00000001.00000000 +___________________________________ + +192.168.1.100: +IP: 11000000.10101000.00000001.00010111 +Mask: 11111111.11111111.11111111.00000000 +Result: 11000000.10101000.00000001.00000000 +``` + +After applying the bitwise AND logic we see that the result is identical for +both IPs indicating they are on the same network (share the same network +prefix), whilst the host value is "masked". + +// Example of not matching + +// Are there masks other than 255.255.255.0?