Как найти широковещательный адрес для подсети


Загрузить PDF


Загрузить PDF

Если вы собираетесь настраивать сеть, то вам нужно знать, как распределять ее. Для этого необходимо знать сетевой и широковещательный адреса сети. Следуйте шагам ниже, чтобы узнать, как вычислить эти адреса, если у вас есть IP-адрес и маска подсети.

  1. 1

    Для сети с классовой адресацией общее число битов равно 8. Или Tb = 8.

    • Маска подсети может быть 0, 128, 192, 224, 240, 248, 252, 254 и255.

      Изображение с названием 1636270 1b1

    • Таблица ниже позволяет определить «число битов, используемое для подсетей» (n) для соответствующей маски подсети.

      Изображение с названием 1636270 1b2

    • Значение маски подсети по умолчанию 255. Оно не используется для разделения подсетей.
    • Пример:
      Пусть IP-адрес будет равен 210.1.1.100 а маска подсети 255.255.255.224

      Общее число битов Tb = 8
      Число битов используемое для подсетей n = 3(так как маска подсети равна 224, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 3)

      Изображение с названием 1636270 1b4

  2. Изображение с названием 1636270 2

    2

    Из предыдущего шага у вас есть «число битов используемое для подсетей» (n), и вы знаете Tb. Теперь вы можете найти «число битов оставшееся для хостов» (m) равное Tb — n, так как общее число битов — это сумма битов для подсетей и хостов Tb = m+n.

    • Число битов оставшееся для хостов = m = Tb — n = 8 — 3 = 5

      Изображение с названием 1636270 2b1

  3. Изображение с названием 1636270 3

    3

    Теперь вам нужно посчитать «число подсетей», равное 2n, и «значение последнего бита, используемого для маски подсети», которое равно 2m. Число хостов для подсети равно 2m — 2.

    • Число подсетей = 2n = 23 = 8

      Значение последнего бита, используемого для маски подсети = Δ = 2m = 25 = 32

      Изображение с названием 1636270 3b1

  4. Изображение с названием 1636270 4

    4

    Теперь вы можете найти ранее рассчитанное число подсетей, разделив их по значению «последнего бита, используемого для маски подсетей» или Δ-адресу.

    • 8 подсетей (как мы вычислили на предыдущем шаге) показаны выше.
    • В каждой из них 32 адреса.
  5. Изображение с названием 1636270 5

    5

    Теперь вам нужно определить, в какой сети ваш IP-адрес. Первый адрес этой подсети будет адресом сети, а последний — широковещательным адресом.

    • Здесь мы выбрали IP-адрес 210.1.1.100. Он находится в подсети 210.1.1.96 — 210.1.1.127 (смотрите предыдущую таблицу). Потому 210.1.1.96 — адрес сети, а 210.1.1.127 широковещательный адрес для выбранного IP-адреса 210.1.1.100.

      Изображение с названием 1636270 5b1

    Реклама

  1. 1

    В сетях CIDR после IP-адреса идет префикс подсети длиной в один бит, отделенный наклонной чертой (/). вам нужно будет преобразовать его в четырехкомпонентный формат с точкой. Следуйте шагам ниже, чтобы проделать это.

    1. Запишите префикс в формате, указанном ниже.

      Изображение с названием 1636270 6b1

      • Если префикс 27, запишите его как 8 + 8 + 8 + 3 .
      • Если он 12, запишите его как 8 + 4 + 0 + 0 .
      • По умолчанию он 32, что записывается как 8 + 8 + 8 + 8.
    2. Преобразуйте соответствующие биты по таблице ниже и запишите значение в четырехкомпонентном формате.

      Изображение с названием 1636270 6b2

    3. Пусть наш IP-адрес будет 170.1.0.0/26 . Используя таблицу выше, вы можете записать:
                          26 = 8 + 8 + 8 + 2
                              255 . 255 . 255 . 192

      Теперь IP-адрес 170.1.0.0, а маска подсети в четырехкомпонентном формате с точкой 255.255.255.192 .

      Изображение с названием 1636270 6b3

  2. 2

    Общее число битов = Tb = 8.

    • Маска подсети может быть 0, 128, 192, 224, 240, 248, 252, 254 и 255.
    • Таблица ниже позволяет определить «число битов, используемое для подсетей» (n) для соответствующей маски подсети .

      Изображение с названием 1636270 7b2

    • Значение маски подсети по умолчанию 255. Оно не используется для разделения подсетей.
    • Из предыдущего шага наш IP-адрес = 170.1.0.0,а маска подсети = 255.255.255.192

      Общее число битов = Tb = 8
      Число битов используемое для подсетей = n = 2 (так как маска подсети равна 192, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 2).

      Изображение с названием 1636270 7b4

  3. Изображение с названием 1636270 8

    3

    Из предыдущего шага у вас есть «число битов используемое для подсетей» (n), и вы знаете Tb. Теперь вы можете найти «число битов оставшееся для хостов» (m) равное Tb — n, так как общее число битов — это сумма битов для подсетей и хостов Tb = m+n.

    • Число битов оставшееся для хостов = m = Tb — n = 8 — 2 = 6
  4. Изображение с названием 1636270 9

    4

    Теперь вам нужно посчитать «число подсетей» равное 2n, и «значение последнего бита, используемого для маски подсети», которое равно 2m. Число хостов для подсети равно 2m — 2.

    • Число подсетей = 2n = 22 = 4

      Значение последнего бита, используемого для маски подсети = Δ = 2m = 26 = 64

      Изображение с названием 1636270 9b1

  5. 5

    Теперь вы можете найти ранее рассчитанное число подсетей, разделив их по значению «последнего бита, используемого для маски подсетей» или Δ-адресу.

    • Получаем 4 подсети (как мы вычислили на предыдущем шаге)

      Изображение с названием 1636270 10b1

    • В каждой из них ест 64 адреса.

      Изображение с названием 1636270 10b2

  6. Изображение с названием 1636270 11

    6

    Теперь вам нужно определить, в какой сети ваш IP-адрес. Первый адрес этой подсети будет адресом сети, а последний — широковещательным адресом.

    • Здесь мы выбрали IP-адрес 170.1.0.0. Он находится в подсети 170.1.0.0 — 170.1.0.63 (смотрите предыдущую таблицу). Потому 170.1.0.0 — адрес сети, а 170.1.0.63 широковещательный адрес для выбранного IP-адреса 170.1.0.0.

      Изображение с названием 1636270 11b1

    Реклама

  1. 1

    Найдите IP-адрес и маску подсети. На компьютере под управлением Windows сделать это можно путем ввода команды «ipconfig» (без кавычек) в командной строке. IP-адрес отобразится напротив IPv4-адреса, а маску подсети можно найти строкой ниже. На Mac найти IP-адрес и маску подсети можно в «Системных настройках» в разделе «Сеть».

  2. 2

    Перейдите по адресу https://ip-calculator.ru/. Можете использовать любой браузер, вне зависимости от того, под управлением какой системы работает ваш компьютер.

  3. 3

    В поле «IP-адрес» введите соответствующие значения. Веб-сайт попытается автоматически определить ваш сетевой адрес. Удостоверьтесь, что значения соответствуют действительности. В противном случае введите верный адрес.

  4. 4

    В поле «Маска» введите маску подсети. Опять же, сайт автоматически попытается вычислить эти значения. Удостоверьтесь, что данные указаны верно. Маску подсети можно ввести как в формате CIDR (24), так и в четырехкомпонентном формате с точкой (255.255.255.0).

  5. 5

    Нажмите Подсчитать. Это синяя кнопка напротив поля «Маска». Сетевой адрес будет указан ниже в разделе «Network», а широковещательный адрес — в разделе «Broadcast».

    Реклама

Примеры

  • IP-адрес = 100.5.150.34, а маска подсети = 255.255.240.0
    Общее число битов = Tb = 8

    Маска подсети 0 128 192 224 240 248 252 254 255
    Число битов, используемое для подсетей (n) 0 1 2 3 4 5 6 7 8

    Число битов, используемое для подсетей для маски 240 = n1 = 4
    (так как маска подсети равна 240, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 4)

    Число битов, используемое для подсетей для маски 0 = n1 = 0
    (так как маска подсети равна 0, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 0)

    Число битов оставшееся для хостов для маски 240 = m1 = Tb — n1 = 8 — 4 = 4
    Число битов оставшееся для хостов для маски 0 = m2 = Tb — n2 = 8 — 0 = 8

    Число подсетей для маски 240 = 2n1 = 24 = 16
    Число подсетей для маски 0 = 2n2 = 20 = 1

    Значение последнего бита, используемого для маски подсети для маски 240 = Δ1 = 2m1 = 24 = 16
    Значение последнего бита, используемого для маски подсети для маски 0 = Δ2 = 2m2 = 28 = 256

    Для маски подсети 240, адреса будут разделены по 16, а для маски 0 их будет 256. Используя значения Δ1 и Δ2, получим 16 подсетей ниже

    100.5.0.0 — 100.5.15.255 100.5.16.0 — 100.5.31.255 100.5.32.0 — 100.5.47.255 100.5.48.0 — 100.5.63.255
    100.5.64.0 — 100.5.79.255 100.5.80.0 — 100.5.95.255 100.5.96.0 — 100.5.111.255 100.5.112.0 — 100.5.127.255
    100.5.128.0 — 100.5.143.255 100.5.144.0 — 100.5.159.255 100.5.160.0 — 100.5.175.255 100.5.176.0 — 100.5.191.255
    100.5.192.0 — 100.5.207.255 100.5.208.0 — 100.5.223.255 100.5.224.0 — 100.5.239.255 100.5.240.0 — 100.5.255.255

    IP-адрес 100.5.150.34 относится к подсети 100.5.144.0 – 100.5.159.255, поэтому 100.5.144.0 — адрес сети, а — 100.5.159.255 широковещательный адрес.

  • IP-адрес в сети CIDR = 200.222.5.100/9
                        9 = 8 + 1 + 0 + 0
                            255 . 128 . 0 . 0

    IP -адрес = 200.222.5.100, а маска подсети = 255.128.0.0
    Общее число битов = Tb = 8

    Маска подсети 0 128 192 224 240 248 252 254 255
    Число битов, используемых для подсетей (n) 0 1 2 3 4 5 6 7 8

    Число битов, используемое для подсетей для маски 128 = n1 = 1
    (так как маска подсети равна 128, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 1)

    Число битов, используемое для подсетей для маски 0 = n2 = n3 = 0
    (так как маска подсети равна 0, а соответствующее «число битов используемое для подсетей» из таблицы сверху равно 0)

    Число битов оставшееся для хостов для маски 128 = m1 = Tb — n1 = 8 — 1 = 7
    Число битов оставшееся для хостов для маски 0 = m2 = m3 = Tb — n2 = Tb — n3 = 8 — 0 = 8

    Число подсетей для маски 128 = 2n1 = 21 = 2
    Число подсетей для маски 0 = 2n2 = 2n3 = 20 = 1

    Значение последнего бита, используемого для маски подсети для маски 128 = Δ1 = 2m1 = 27 = 128
    Число хостов на подсеть = 2m1 — 2 = 27 — 2 = 126

    Значение последнего бита, используемого для маски подсети для маски 0 = Δ2 = Δ3 = 2m2 = 2m3 = 28 = 256
    Число хостов на подсеть с маской 0 = 2m2 — 2 = 2m3 — 2 = 28 — 2 = 254

    Для маски подсети 128, адреса будут разделены по 128, а для маски 0 их будет 256. Используя значения Δ1 и Δ2, получим 2 подсети ниже

    200.0.0.0 — 200.127.255.255 200.128.0.0 — 200.255.255.255

    IP-адрес 200.222.5.100 относится к подсети 200.128.0.0 – 200.255.255.255, и поэтому 200.128.0.0 — адрес подсети, а 200.255.255.255 — широковещательный адрес.

Советы

  • В сетях CIDR сразу после того, как вы перевели префикс в четырехкомпонентный формат, вы можете использовать тот же метод, что и для сетей с классовой адресацией.
  • Этот метод работает только для сетей типа IPv4 и не подходит для IPv6.

Реклама

Об этой статье

Эту страницу просматривали 95 957 раз.

Была ли эта статья полезной?


Download Article

Multiple ways to find the network and broadcast addresses for an IPv4 address


Download Article

  • Using a Network Calculator
  • |

  • Converting to Binary
  • |

  • Using Classful Network
  • |

  • Using CIDR
  • |

  • Classful Network Examples
  • |

  • CIDR Examples
  • |

  • Q&A
  • |

  • Tips

To calculate the network and broadcast address for an IP address, you’ll need the IP address, subnet mask, and CIDR notation. With this information, you can use an online networking calculator to calculate the address, or find it manually. There are multiple ways to manually calculate the addresses, including by converting both the IP address and subnet mask to binary values, using classful addressing, and using CIDR for classless networks. This wikiHow teaches you four different ways to calculate your network address and broadcast address from an IP address, along with helpful examples for any scenario.

Things You Should Know

  • To get the network and broadcast addresses without doing math, use a network calculator.
  • The easiest way to calculate the broadcast and network addresses manually is to convert to binary and count the bits.
  • For a classless network, use the CIDR method to subnet your network.
  1. Image titled Calculate Network and Broadcast Address Step 1

    1

    Go to http://jodies.de/ipcalc in a web browser. This handy calculator takes the pain out of calculating the network address and broadcast address.

  2. Image titled Calculate Network and Broadcast Address Step 2

    2

    Enter the IP address and subnet mask. In the field that says Address (Host or network), type or paste the IP address. In the «Netmask» field, enter the subnet mask in CIDR format (e.g., /24 for a class C network).

    Advertisement

  3. Image titled Calculate Network and Broadcast Address Step 3

    3

    Click Calculate. It is the button below the IP address field. The network address will appear next to «Network,» and the broadcast address appears next to «Broadcast.»

  4. Advertisement

  1. Image titled Calculate Network and Broadcast Address Step 4

    1

    Convert the IP address and subnet mask to binary. To calculate the broadcast and network addresses for an IP address, you’ll need to first to binary values. The easiest way to do this is to use an online IP to binary calculator, such as this one by Code Beautify. But if you’re a networking student or just want to know how to do this by hand, you can check out our guide on converting decimals to binary.

    • For example, if the IP address is 192.168.1.3, the binary address is 111000000.10101000.00000001.00000011.
    • If the subnet mask is 255.255.224.0, which is /19 in CIDR notation, the binary address would be 11111111.11111111.11100000.00000000.
    • We will use the /19 example in this method.
  2. Image titled Calculate Network and Broadcast Address Step 5

    2

    Count the bits in the subnet mask. In our example, we’re using a /19 network. This means that the first 19 bits of the subnet mask represents the network, and the remaining 13 bits are the host.

    • 11111111.11111111.111 (network) 00000.00000000 (host)
    • If you were working with a /24 network, you’d count the first 24 bits (digits) instead. For a /8 network, you’d count the first 8 bits, etc.
  3. Image titled Calculate Network and Broadcast Address Step 6

    3

    Count the bits in the IP address. Now we’ll want to count the first 19 digits of our converted IP address, just as we did with the subnet mask, because we’re working with a /19 network.

    • For the binary IP address 11000000.10101000.00000001.00000011, 11000000.10101000.000, the first 19 digits, is the network. The remaining 13 digits, 00001.00000011, represents the host.
  4. Image titled Calculate Network and Broadcast Address Step 7

    4

    Determine the network address. Now let’s look at the first 19 digits of our converted IP address: 11000000.10101000.000. To find the network address, we’ll simply add a period after the last number, then replace everything that comes after the first 19 bits with the last 13 digits of the converted subnet mask, which, in our example, is 00000.00000000.

    • IP address: 11000000.10101000.000000001.00000011
    • Subnet mask: 11111111.11111111.11100000.00000000
    • Network address: The first 19 bits from the IP address with the last 13 bits of the subnet mask: 11000000.10101000.000.00000.00000000
    • Converted: 192.168.0.0
  5. Image titled Calculate Network and Broadcast Address Step 8

    5

    Determine the broadcast address. Now, instead of replacing the last 13 bits of our IP address with all zeroes (00000.00000000), we’ll convert all of those zeroes to ones to find the broadcast address:

    • IP address: 11000000.10101000.00000001.00000011
    • Last 13 bits of subnet mask as ones: 11111.11111111
    • Broadcast address: 11000000.10101000.000.11111.11111111
    • Converted: 192.168.0.31
  6. Advertisement

  1. Image titled 1636270 1b2

    1

    Determine the total number of bits used for subnetting. For a classful network total bits is 8. So Total bits = Tb = 8. The total bits used for subnetting (n) is determined by the subnet mask.

    • Subnet masks can be 0, 128, 192, 224, 240, 248, 252, 254 and 255.
    • The number of bits used for subnetting (n) to their corresponding subnet mask is as follows: 0=0, 128=1, 192=2, 224=3, 240=4, 248=5, 252=6, 254=7, and 255=8.
    • Subnet mask 255 is default, so it’ll not be considered for subnet masking.
    • For example: Let’s assume the IP address is 210.1.1.100 and Subnet mask is 255.255.255.224. The total bits= Tb = 8. The number of bits used for subnetting for subnet mask 224 is 3.
  2. Image titled 1636270 2b1

    2

    Determine the number of bits left to host. The equation to determine the number of bits left to host is (m) = Tb — n. From the previous step, you got the number of bits used for subnetting (n) and you know the total bits used «Tb=8″. then you can get the number of bits left for host by subtracting 8-n.

    • Using the example above, n=3. The number of bits left for host is (m) = 8 — 3 = 5. 5 is the number of bits you have left to host.
  3. Image titled 1636270 3

    3

    Calculate the number of subnets. The number of subnets is 2n. The number of hosts per subnet = 2m — 2.

    • In our example, the number of subnets is 2n = 23 = 8. 8 is the total number of subnets.
  4. Image titled 1636270 3b1

    4

    Calculate the value of the last bit used for subnet masking. The value of last bit used for subnet masking is (Δ) = 2m.

    • In our example, the value of last bit used for subnet masking is Δ = 25 = 32. The value of the last bit used is 32.
  5. 5

    Calculate the number of hosts per subnet. The number of hosts per subnet is represented by the formula 2m — 2.

  6. Image titled 1636270 4

    6

    Separate the subnets by the value of last bit used for subnet masking. Now you can find previously calculated number of subnets by separating subnets each having value of last bit used for subnet masking or Δ. In our example, Δ=32. So we can separate IP addresses in increments of 32.

    • The 8 subnets (as calculated in previous step) are shown above.
    • Each of them has 32 addresses.
  7. Image titled 1636270 5

    7

    Determine the network and broadcast addresses for the IP addresses. The lowest address in a subnet is the network address. The highest address in a subnet is the broadcast address.

  8. Image titled 1636270 5b1

    8

    Determine the broadcast address for your IP address. The lowest address of the subnet your IP address falls in is the network address. The highest address in the subnet your IP address falls in is the broadcast address.

      Our example IP address 210.1.1.100 falls in the 210.1.1.96 — 210.1.1.127 subnet (see the previous step table). So 210.1.1.96 is network address and 210.1.1.127 is broadcast address.
  9. Advertisement

  1. Image titled 1636270 6b1

    1

    Write the bit-length prefix in bit format. In CIDR, you have a IP address followed by bit-length prefix separated by slash(/). Now you can start to convert bit-length prefix to quad-dotted by separating the bit-length prefix in increments of 8 and adding the final bit number.

    • Example: If the bit-length prefix is 27, then write it as 8 + 8 + 8 + 3 .
    • Example: If bit-length prefix is 12, then write it as 8 + 4 + 0 + 0 .
    • Example: Default bit-length prefix is 32, then write it as 8 + 8 + 8 + 8.
  2. Image titled 1636270 6b2

    2

    Convert the bit-length prefix to quad-dotted format. Convert the corresponding bit according to the above table and represent in quad-dotted decimal format. For example, bit-length 27 is represented by 8+8+8+3. This converts to 225.225.225.224.

    • Using another example, the IP address is 170.1.0.0/26 . Using above table, you can write the bit-length prefix 26 as 8+8+8+2. Using the chart above, this converts to 225.225.225.192. Now the IP address is 170.1.0.0 and subnet mask in quad-dotted decimal format is 255.255.255.192 .
  3. 3

    Determine the total number of bits. The total number of bits is represented using the following equation: Tb = 8.

  4. Image titled 1636270 6b3

    4

    Determine the number of bits used for subnetting. Subnet masks can be 0, 128, 192, 224, 240, 248, 252, 254 and 255. The table above gives you the Number of bits used for subnetting (n) to their corresponding subnet mask.

    • For subnet mask 255 is default, so it’ll not consider for subnet masking.
    • From the previous step, you got IP address = 170.1.0.0 and Sub-net mask = 255.255.255.192
    • Total bits = Tb = 8
    • Number of bits used for subnetting = n. As the subnet mask = 192, its corresponding number of bits used for Subnetting is 2 from above table.
  5. Image titled 1636270 8

    5

    Calculate the number of bits left to host. From the previous step, you got the number of bits used for subnetting (n) and you know the total bits (Tb) = 8. Then you can get number of bits left for host is (m) = Tb — n or Tb = m+n.

    • In our example, the number of bits used for subnetting (n) is 2. So the number of bits left for host is m = 8 — 2 = 6. The total bits left for the host is 6.
  6. 6

    Calculate the number of subnets. The Number of subnets is 2n.

    • In our example, the number of subnets = 22 = 4. The total number of subnets is 4.
  7. Image titled 1636270 9b1

    7

    Calculate the value of last bit used for subnet masking. This is represented with the formula (Δ) = 2m.

    • In our example, the value of last bit used for subnet masking = Δ = 26 = 64. The value of the last bit used for subnet masking is 64.
  8. Image titled 1636270 9

    8

    Calculate the number of hosts per subnet. The number of hosts per subnet is 2m — 2.

  9. Image titled 1636270 10b2

    9

    Separate the subnets by the value of the last bit used for subnet masking. Now you can find previously calculated number of subnets by separating subnets each having the value of last bit used for subnet masking or Δ.

    • In our example, the last value used for subnet masking is 64. This produces 4 subnets with 64 addresses.
  10. Image titled 1636270 11

    10

    Find which subnet your IP address is in. Our example IP is 170.1.0.0. This falls in the 170.1.0.0 — 170.1.0.63 subnet.

  11. Image titled 1636270 11b1

    11

    Determine your broadcast address. The first address in a subnet is the network address and the last number is the broadcast address.

    • Our example IP address is 170.1.0.0. So 170.1.0.0 is network address and 170.1.0.63 is broadcast address.
    • See CIDR Examples for more examples.
  12. Advertisement

  1. 1

    IP address = 100.5.150.34 and subnet mask = 255.255.240.0
    Total bits = Tb = 8

    Subnet Mask 0 128 192 224 240 248 252 254 255
    No. of bits used for Subnetting (n) 0 1 2 3 4 5 6 7 8

  2. 2

    Number of bits used for subnetting for subnet mask 240 = n1 = 4
    (as subnet mask = 240 and its corresponding «No.
    of bits used for Subnetting» is 4 from above table)
    Number of bits used for subnetting for subnet mask 0 = n2 = 0
    (as subnet mask = 0 and its corresponding «No. of bits used for Subnetting» is 0 from above table)
    Number of bits left for host for subnet mask 240 = m1 = Tb — n1 = 8 — 4 = 4
    Number of bits left for host for subnet mask 0 = m2 = Tb — n2 = 8 — 0 = 8
    Number of subnets for subnet mask 240 = 2n1 = 24 = 16
    Number of subnets for subnet mask 0 = 2n2 = 20 = 1
    Value of last bit used for subnet masking for subnet mask 240 = Δ1 = 2m1 = 24 = 16
    Value of last bit used for subnet masking for subnet mask 0 = Δ2 = 2m2 = 28 = 256
    For subnet mask 240, addresses will be separated by 16 and for subnet mask 0, it’ll be 256. Using Δ1 and Δ2 value, the 16 subnets are given below

    100.5.0.0 — 100.5.15.255 100.5.16.0 — 100.5.31.255 100.5.32.0 — 100.5.47.255 100.5.48.0 — 100.5.63.255
    100.5.64.0 — 100.5.79.255 100.5.80.0 — 100.5.95.255 100.5.96.0 — 100.5.111.255 100.5.112.0 — 100.5.127.255
    100.5.128.0 — 100.5.143.255 100.5.144.0 — 100.5.159.255 100.5.160.0 — 100.5.175.255 100.5.176.0 — 100.5.191.255
    100.5.192.0 — 100.5.207.255 100.5.208.0 — 100.5.223.255 100.5.224.0 — 100.5.239.255 100.5.240.0 — 100.5.255.255

  3. 3

    IP address 100.5.150.34 comes in 100.5.144.0 — 100.5.159.255. Hence, 100.5.144.0 is the network address and 100.5.159.255 is the broadcast address.

  4. 4

    See Classful Network Examples for more examples.

  5. Advertisement

  1. 1

    IP address in CIDR is 200.222.5.100/9

                        9 = 8 + 1 + + 0
                            255 . 128 . 0 . 0

    IP address = 200.222.5.100 and subnet mask = 255.128.0.0
    Total bits = Tb = 8

    Subnet Mask 0 128 192 224 240 248 252 254 255
    No. of bits used for Subnetting (n) 0 1 2 3 4 5 6 7 8

    Number of bits used for subnetting for subnet mask 128 = n1 = 1
    (as subnet mask = 128 and its corresponding «No. of bits used for Subnetting» is 1 from above table)

    Number of bits used for subnetting for subnet mask 0 = n2 = n3 = 0
    (as subnet mask = 0 and its corresponding «No. of bits used for Subnetting» is 0 from above table)

  2. 2

    Number of bits left for host for subnet mask 128 = m1 = Tb — n1 = 8 — 1 = 7
    Number of bits left for host for subnet mask 0 = m2 = m3 = Tb — n2 = Tb — n3 = 8 — 0 = 8
    Number of subnets for subnet mask 128 = 2n1 = 21 = 2
    Number of subnets for subnet mask 0 = 2n2 = 2n3 = 2 = 1
    Value of last bit used for subnet masking for subnet mask 128 = Δ1 = 2m1 = 27 = 128
    Number of host per subnet = 2m1 — 2 = 27 — 2 = 126
    Value of last bit used for subnet masking for subnet mask 0 = Δ2 = Δ3 = 2m2 = 2m3 = 28 = 256
    Number of host per subnet for subnet mask 0 = 2m2 — 2 = 2m3 — 2 = 28 — 2 = 254

  3. 3

    For subnet mask 128, addresses will be separated by 128 and for subnet mask 0, it’ll be 256. Using Δ1, Δ2 and Δ3 value, the 2 subnets are given below

    200.0.0.0 — 200.127.255.255 200.128.0.0 — 200.255.255.255

  4. 4

    IP address 200.222.5.100 comes in 200.128.0.0 — 200.255.255.255. Hence, 200.128.0.0 is the network address, and 200.255.255.255 is the broadcast address.

  5. Advertisement

Add New Question

  • Question

    How do I find the last address host?

    Community Answer

    Broadcast address -1. BC — 1 in this way you can find out the last host address.

  • Question

    How can I find the network for an IP address?

    Community Answer

    After you borrow bits find out your block size, it will be the first address of each block. For example, if the block size is 32, 192.1.4.0 is your network IP. 192.1.4.31 is your broadcast.

  • Question

    How do I find IP addresses?

    Tim Newman

    Tim Newman

    Community Answer

    If you’re looking for a public IP address, Googling «ip» should be sufficient to receive an answer.
    If you’re looking for your private IP address (stored on the router), open CMD (windows button + R and type in cmd), and type «ipconfig».

See more answers

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

  • In CIDR, just after you convert the bit-length prefix to quad-dotted decimal format, you can follow the same procedure as for Classful network.

  • This method is only for IPv4, not applicable for IPv6.

Thanks for submitting a tip for review!

Advertisement

About This Article

Article SummaryX

1. Assume the total number of bits used for subnetting is Tb = 8.

2. Find how many bits used for subnetting (n) according to the following subnet masks:0=0, 128=1, 192=2, 224=3, 240=4, 248=5, 252=6, 254=7, and 255=8
3. Use the formula (m) = Tb — n to determine the number of bits left to host.

4. Use the formula 2m — 2 to calculate the number of subnets.
5. Use the formula Δ = 2m to calculate the value of the last bit used for subnet masking.

6. Separate subnets using the value fo teh last bit used for subnet masking.
7. Determine which subnet your IP address fall in.
8. Use the first address in the subnet to determine the network address.
9. Use the last address in the subnet to determine the broadcast address.

Did this summary help you?

Thanks to all authors for creating a page that has been read 737,910 times.

Reader Success Stories

  • Anonymous

    «The only subnetting methodology that I have seen which explains simply how to calculate network and broadcast…» more

Is this article up to date?

Хорошее объяснение, @pyatak, но некоторые вещи намного проще объяснять с точки зрения математики. В данном случае воспользуемся бинарной. Нас даже просто интересуют логические операции, а сами системы счисления не играют роли.

Понятное дело, что @Евгений536, может и не знать бинарных операций, но в таком случае я уж не знаю, какой смысл говорить о бинарном представлении маски (двоичных единицах и нулях), а так же пытаться постичь то, что построено на бинарной математике и логике.

Дело вот в чем: если хост принадлежит сети — рассчет диапазона адресов выполняется двумя логическими операциями and и or, с последней еще необходимо отрицание.

Итак, каждый октет (байт) IP-адреса соответствует октету (байту) маски, зная это, мы используем операцию and для каждого из октетов попарно

192 and 255 = 192

168 and 255 = 168

3 and 192 = 0

17 and 0 = 0

Как видно, мы получили новый адрес — адрес сети: 192.168.0.0 (т.е. это самый минимальный адрес нашего диапазона).

Дальше ничего сложного так же нету, нам нужен широковещательный адрес (самый максимальный адрес диапазона). Для этого, нам придется первым делом проинвертировать (от максимального числа, представимого 8ю битами (байтом) — 255, отнять число маски) байты маски. Итак,

192 or (!255 = 0) = 192

168 or (!255 = 0) = 168

3 or (!192 = 63) = 63

17 or (!0 = 255) = 255

Здесь мы получили наш широковещательный 192.168.63.255 адрес.

Таким образом получается, что все, что строго больше сети и строго меньше широковещательного адреса — входит в наш диапазон.

Можно поступить по-другому, применить операцию and поочередно ко всем данным вариантам ответов и сравнивать результаты с адресом сети. Т.к. все адреса, входящие в подсеть, должны иметь один и тот же адрес сети.

Глава 12 Широковещательная и

групповая адресация

Введение

В главе 1 мы упомянули, что

существуют три типа IP адресов: персональный

(unicast), широковещательный (broadcast) и групповой (multicast) . В этой главе мы

обсудим широковещательные и групповые адреса

более подробно.

Широковещательные и групповые запросы

применимы только к UDP, подобные типы запросов

позволяют приложению послать одно сообщение

нескольким получателям. TCP — протокол,

ориентированный на соединение, с его помощью

устанавливается соединение между двумя хостами

(по указанному IP адресу) с использованием одного

процесса на каждом хосте (который

идентифицируется по номеру порта).

Представьте себе несколько хостов в Ethernet

сети. Каждый Ethernet фрейм содержит Ethernet адрес

источника и назначения (48 бит). И обычно каждый

фрейм предназначается одному получателю. Адрес

назначения, указывающий на один интерфейс, —

называется персональным (unicast). Остальные хосты,

присутствующие на кабеле, не участвуют в общении

между двумя хостами (если не учитывать то, что все

хосты находятся все-таки на одном кабеле).

Однако иногда возникает необходимость

послать фрейм всем хостам, находящимся на кабеле,

— это называется широковещательной рассылкой

(broadcast). Мы видели это, когда рассматривали ARP и RARP.

Групповая адресация логически находится между

персональной и широковещательной: фрейм должен

быть доставлен определенному количеству хостов,

которые принадлежат к группе.

Для того чтобы понять принцип

широковещательной и групповой адресации,

необходимо отметить, что на каждом хосте

происходит фильтрация, каждый раз когда фрейм

проходит по кабелю. На рисунке 12.1 показано как

это происходит.

Во-первых, сетевая плата просматривает

каждый фрейм, который передается по кабелю, и

определяет, необходимо ли принять этот фрейм и

доставить его в драйвер устройства. Обычно

сетевая плата принимает только те фреймы, адрес

назначения которых совпадает с аппаратным

адресом интерфейса или с широковещательным

адресом. В дополнение, большинство интерфейсов

могут находиться в смешанном режиме, когда она

принимает копию каждого фрейма. Этот режим

используется, например, программой tcpdump.

Рисунок 12.1 Фильтрация, которая

осуществляется стеком протоколов, когда

принимается фрейм.

В настоящее время большинство интерфейсов

могут быть сконфигурированы таким образом, чтобы

принимать фреймы, IP адрес которых является

групповым адресом или групповым адресом

какой-либо подгруппы. В групповом адресе Ethernet

младший бит старшего байта установлен в единицу.

В шестнадцатиричном представлении этот бит

выглядит следующим образом: 01:00:00:00:00:00. (Мы можем

считать, что широковещательный адрес Ethernet

ff:ff:ff:ff:ff:ff это особый случай группового адреса

Ethernet.)

Когда сетевая плата получает фрейм, она

передает его в драйвер устройства. (Сетевая плата

может отбросить фрейм только в том случае, если

не сошлась контрольная сумма Ethernet.)

Дополнительная фильтрация осуществляется

драйвером устройства. Во-первых, тип фрейма

должен принадлежать соответствующему протоколу

(IP, ARP и так далее). Во-вторых, может быть

осуществлена дополнительная групповая

фильтрация, чтобы проверить, принадлежит ли хост

к адресуемой группе.

Затем драйвер устройства передает фрейм

следующему уровню, например, IP, если фрейм

является IP датаграммой. IP также осуществляет

фильтрацию, основанную на проверке IP адресов

источника и назначения, и, в свою очередь,

передает датаграмму следующему уровню (например

TCP или UDP, если все в порядке).

Каждый раз когда UDP получает датаграмму от

IP, он осуществляет фильтрацию, основанную на

номере порта назначения, а иногда и на номере

порта источника. Если указанный порт не

обслуживается в текущий момент каким-либо

процессом, датаграмма отбрасывается, и

генерируется ICMP сообщение о

недоступности порта. (TCP осуществляет подобную

фильтрацию, основанную на своих номерах портов.) Если в UDP датаграмме обнаружена ошибка

контрольной суммы, UDP молча ее отбрасывает.

Проблема широковещательных запросов

заключается в том, что хосты, которые совсем не

заинтересованы в получении этих запросов, должны

их обрабатывать. Представьте себе приложение,

которое должно обрабатывать широковещательные

запросы UDP. Если на кабеле находится 50 хостов, но

только из них 20 участвуют в работе этого

приложения, в каждый момент времени один из 20

посылает широковещательный запрос UDP, при этом

остальные 30 хостов должны обработать этот

запрос, который проходит весь путь по стеку

протоколов до UDP уровня, прежде чем датаграмма

будет отброшена. UDP датаграмма отбрасывается

этими 30-ю хостами, потому что порта назначения не

обслуживается каким-либо процессом.

Основная задача групповых запросов —

уменьшить загрузку хостов, не учавствующих в

работе определенного приложения. Хост может

принадлежать к одной или нескольким группам.

Если это возможно, сетевая плата сообщает, к

какой группе принадлежит хост, после чего

сетевой платой принимаются только фреймы

определенной группы.

Широковещательные запросы

На рисунке 3.9 показаны

четыре различные формы широковещательных

адресов IP. Сейчас мы опишем их более подробно.

Ограниченный широковещательный запрос

Ограниченный

широковещательный адрес (limited broadcast address) — это

адрес 255.255.255.255. Он может быть использован в

качестве адреса назначения для IP датаграмм в

процессе конфигурации хоста, когда хост может не

знать собственной маски подсети и даже своего IP

адреса.

Датаграмма, направляющаяся на ограниченный

широковещательный адрес, никогда (ни при каких

условиях) не будет перенаправлена

маршрутизатором. Она может существовать только

на локальном кабеле.

Но тут возникает вопрос, на

который практически невозможно дать ответ: если

хост имеет несколько интерфейсов и процесс

посылает датаграмму с ограниченным

широковещательным адресом, должна ли датаграмма

быть отправлена на каждый подсоединенный

интерфейс, который поддерживает

широковещательную адресацию? Если нет, то

приложение, которое хочет разослать

широковещательный запрос на все интерфейсы,

должно само определить все интерфейсы хоста,

которые поддерживают широковещательную

адресацию, и послать копию на каждый интерфейс.

Большинство BSD систем воспринимают 255.255.255.255

как адрес широковещательного адреса первого

интерфейса, который был сконфигурирован, и не

позволяют послать датаграмму на все

подключенные интерфейсы, поддерживающие

широковещательную адресацию. И действительно,

два приложения, которые посылают UDP датаграммы на

каждый интерфейс, это routed (глава 10,

раздел «Демоны маршрутизации в

Unix») и rwhod (сервер BSD клиента rwho). Оба этих приложения проходят через

похожую процедуру запуска, чтобы определить все

интерфейсы хоста и те, которые поддерживают

широковещательную адресацию. Широковещательный

адрес сети, соответствующий этому интерфейсу

затем используется как адрес назначения для

датаграмм, которые посылаются в этот интерфейс.

Требования к хостам Host Requirements RFC не определяют, должен ли

хост, имеющий несколько интерфейсов, посылать

ограниченный broadcast на все свои интерфейсы.

Широковещательный запрос в сеть

В широковещательном адресе сети (net-directed

broadcast) идентификатор хоста устанавливается во

все единичные биты. Широковещательный адрес для

сети класса А, имеет вид netid.255.255.255, где netid это

идентификатор сети класса А.

Маршрутизаторы должны перенаправлять

широковещательные запросы, направляемые в сеть,

однако должна присутствовать опция, позволяющая

отключить это перенаправление.

Широковещательный запрос в подсеть

Широковещательный адрес подсети (subnet-directed

broadcast address) имеет идентификатор хоста,

установленный в единицы, однако определенный

идентификатор подсети. Для того, чтобы

классифицировать адрес как широковещательный

адрес подсети, необходимо знать маску подсети.

Например, если маршрутизатор получил датаграмму,

с адресом назначения 128.1.2.255, можно считать, что

это широковещательный запрос, направленный в

подсеть, если сеть класса В 128.1 имеет маску

подсети 255.255.255.0, однако это не широковещательный

запрос, если маска подсети 255.255.254.0 (0xfffffe00).

Широковещательный запрос,

направленный во все подсети

Широковещательный адрес всех подсетей

(all-subnets-directed broadcast address), также требует знания

маски подсети в сети назначения. Только в этом

случае можно определить различие между

широковещательным адресом всех подсетей и

широковещательным адресом сети. И идентификатор

подсети, и идентификатор хоста, в данном случае,

устанавливаются в единицы. Например, если маска

подсети назначения 255.255.255.0, то IP адрес 128.1.255.255 это

широковещательный запрос, направленный во все

подсети. Однако, если сеть не разбита на подсети,

это широковещательный запрос, направляемый в

сеть.

В настоящее время такой тип

широковещательных запросов считается

устаревшим [Almquist 1993]. В настоящее время

используются групповые запросы, а не

широковещательные запросы, направленные во все

подсети.

[Almquist 1993]

отмечает, что в RFC 922 требуется, чтобы

широковещательные запросы, направленные во все

подсети, посылались во все подсети, однако не все

маршрутизаторы это поддерживают. И это хорошо,

так как неверно сконфигурированый хост, без

собственной маски подсети, будет посылать эти

«локальные» широковещательные запросы во

все подсети. Например, если хост с IP адресом 128.1.2.3

не имеет установленной маски подсети, его

широковещательный адрес по умолчанию

устанавливается в 128.1.255.255. Однако, если маска

подсети должна быть определена как 255.255.255.0, то

широковещательные запросы от неправильно

сконфигурированного хоста появятся во всех

подсетях.

Первая широкораспространенная

реализация TCP/IP, в системе 4.2BSD (1983 год),

использовала для широковещательных адресов

идентификатор хоста, установленного во все нули.

Один из самых ранних примеров обращения к

широковещательным IP адресам это IEN 212 [Gurwitz

and Hinden 1982], и именно здесь было определено

использовать широковещательные IP адреса с

идентификаторами хостов, установленными во все

единицы. (IEN это Internet Experiment Notes,

непосредственный предшественник RFC.) В RFC 894 [Hornig 1984] говорится, что 4.2BSD использует

нестандартный широковещательный адрес, однако в

RFC 906 [Finlayson 1984] замечается, что тогда

не существовало стандарта Internet для

широковещательных адресов. При редакции RFC была

сделана сноска на RFC 906, где говорилось об

отсутствии стандарта на широковещательные

адреса, однако очень рекомендовалось

использовать широковещательные адреса с

идентификаторами хоста, установленными во все

единицы. К тому же, Berkeley начал использовать все

единичные биты для широковещательного адреса,

начиная с 4.3BSD (1986 год), однако

некоторые операционные системы (и что интересно,

даже SunOS 4.x) продолжали

использовать нестандартные широковещательные

адреса до начала 90-х.

Примеры широковещательных запросов

Как рассылаются широковещательные запросы

и что делают маршрутизаторы и хосты с этими

запросами? К сожалению, на этот вопрос очень

сложно ответить, потому что это зависит от типа

широковещательного адреса, приложения,

реализации TCP/IP и возможной конфигурации.

Во-первых, приложение должно поддерживать

широковещательные запросы. Если мы запустим

sun % ping 255.255.255.255

/usr/etc/ping: unknown host 255.255.255.255

то есть постараемся послать запрос на

локальный кабель, это не сработает. Однако

проблема здесь заключена в самом приложении (ping).

Большинство приложений, которые воспринимают

как цифровые IP адреса (в десятичном выражении),

так и имена хостов, вызывают функцию inet_addr

(3), чтобы конвертировать строку чисел в 32-битный

двоичный IP адрес, и если это не удалось,

воспринимают строку символов как имя хоста. Эта

библиотечная функция возвращает код ошибки -1

если в строке обнаружен символ, отличный от цифры

или десятичной точки, в случае ограниченного

широковещательного адреса (255.255.255.255) также

выдается код -1. Большинство программ, которые

воспринимают символьную строку как имя хоста,

обрабатывают его с использованием DNS (глава

14) и ограничиваются выводом ошибки, такой как

«неизвестный хост» (unknown host).

Даже если мы исправим эту ошибку в

программе ping, результаты будут все

равно не такими как хотелось бы. Из шести

протестированных систем, только одна

генерировала широковещательные пакеты в

локальный кабель. Большинство ищут IP адрес

255.255.255.255 в таблице маршрутизации, в конце концов

находят маршрут по умолчанию и посылают

персональный пакет на маршрутизатор по

умолчанию. Естественно, такой пакет

уничтожается.

В подобном случае необходимо использовать

широковещательные запросы, направленные в

подсеть. И действительно, в разделе «ICMP запрос и отклик маски

адреса» главы 6 мы посылали датаграммы на IP

адрес 140.252.13.63 для нижнего Ethernet в нашей тестовой

сети и получали отклики от всех хостов Ethernet. Широковещательный адрес, направленный

в подсеть, соответствует каждому интерфейсу,

именно этот адрес используется командой ifconfig (глава 3, раздел «Команда

ifconfig»). Если мы пошлем ping на этот адрес,

результат будет таким, как мы хотели:

sun % arp -a

                       ARP

кэш пуст

sun % ping 140.252.13.63

PING 140.252.13.63: 56 data bytes

64 bytes from sun (140.252.13.33): icmp_seq=0. time=4. ms

64 bytes from bsdi (140.252.13.35): icmp_seq=0. time=172. ms

64 bytes from svr4 (140.252.13.34): icmp_seq=0. time=192. ms

64 bytes from sun (140.252.13.33): icmp_seq=1. time=1. ms

64 bytes from bsdi (140.252.13.35): icmp_seq=1. time=52. ms

64 bytes from svr4 (140.252.13.34): icmp_seq=1. time=90. ms

^?

                                 введен

символ прерывани

—-140.252.13.63 PING Statistics—-

2 packets transmitted, 6 packets received, -200% packet loss

round-trip (ms) min/avg/max = 1/85/192

sun % arp -a

                       снова

проверяем ARP кэш

svr4 (140.252.13.34) at 0:0:c0:c2:9b:26

bsdi (140.252.13.35) at 0:0:c0:6f:2d:40

IP определяет, что адрес назначения (140.252.13.63)

— это широковещательный адрес, направленный в

подсеть, и посылает датаграммы на

широковещательный адрес канального уровня.

Мы упоминали в разделе «ICMP

запрос и отклик маски адреса» главы 6, что

этот тип широковещательных запросов означает

обращение ко всем хостам локальной сети, включая

отправителя. Из примера видно, что мы получили

отклик от отправляющего хоста sun и от всех

остальных хостов, находящихся на кабеле.

В этом примере показан ARP кэш перед и после

того, как был запущен ping на широковещательный

адрес. Это сделано для того, чтобы показать

взаимосвязь между рассылкой широковещательных

запросов и состоянием ARP. ARP кэш пуст перед

запуском ping, и заполнен по окончании. (В кэше

находится по одной записи на каждый хост,

находящийся на кабеле и ответивший на эхо

запрос.) Как заполнился кэш, раз мы сказали, что

Ethernet фрейм посылается на широковещательный

адрес канального уровня 0xffffffff? Отправка этих

фреймов хостом sun не требует ARP.

Если мы посмотрим работу ping с

использованием tcpdump, то увидим, что

получатели широковещательных фреймов

генерируют ARP запрос на sun, перед тем как

отправить отклик. Причем, надо отметить, что

каждый отклик персональный. Мы говорили в

разделе «Примеры ARP» главы

4, что получатель ARP запроса (sun в данном примере)

обычно добавляет IP адрес и аппаратный адрес

запрашивающего в свой ARP кэш, и отправляет ARP

отклик. Это делается из предположения, что если

запрашивающий послал нам пакет, мы, возможно, в

будущем захотим послать что-нибудь и ему.

Использование ping — это особый случай, потому

что подобный тип программного интерфейса,

(который в большинстве Unix реализаций называется

«символьный сокет» (raw socket)), всегда позволяет

послать датаграмму на широковещательный адрес.

Что если мы воспользуемся приложением, которое

не поддерживает широковещательные запросы, как,

например, TFTP? (Мы опишем TFTP более

подробно в главе 15.)

bsdi % tftp

                         запускаем

клиента

tftp> connect 140.252.13.63

         указываем IP адрес

сервера

tftp> get temp.foo

                  и

пытаемся получить файл с сервера

tftp: sendto: Permission denied

tftp> quit

                          прекращение

работы клиента

Здесь мы получаем ошибку мгновенно, при

этом в кабель ничего не посылается. Это

объясняется тем, что сокеты API не

позволяют процессу отправлять UDP датаграммы на

широковещательный адрес, если процесс

специально не заявил, что он планирует

использовать широковещательные запросы. Это

сделано для того, чтобы предотвратить ошибочное

указание широковещательного адреса

пользователем (именно так, как поступили мы в

данном случае), тогда как приложение не

предназначено для рассылки широковещательных

запросов.

Для сокет API, приложение

должно установить опцию сокет SO_BROADCAST

перед отправкой UDP датаграммы на

широковещательный адрес. Однако, не все системы

применяют это ограничение. Некоторые реализации

позволяют любому процессу отправлять UDP

датаграммы широковещательным образом, причем не

требуют от процесса, чтобы он объявлял об этом.

Другие имеют более строгие ограничения и

требуют, чтобы процесс имел привилегии

суперпользователя, чтобы использовать

широковещательную рассылку.

Следующий вопрос заключается в том,

перенаправляются ли широковещательные пакеты.

Некоторые ядра и маршрутизаторы имеют опцию,

которая позволяет включить или выключить эту

характеристику. (См. приложение Е.)

Если мы включим характеристику

перенаправления широковещательных пакетов на

маршрутизаторе bsdi и запустим ping с хоста slip, то

увидим, что bsdi перенаправляет широковещательные

запросы, направленные в подсеть. Перенаправление

направленных широковещательных запросов

означает, что маршрутизатор воспринимает

входящие датаграммы как персональные,

определяет, что адрес назначения это

направленный широковещательный адрес одного из

его интерфейсов, и затем перенаправляет

датаграммы в соответствующую сеть, используя

широковещательный адрес канального уровня.

slip % ping 140.252.13.63

PING 140.252.13.63 (140.252.13.63): 56 data bytes

64 bytes from 140.252.13.35: icmp_seq=0 ttl=255 time=190 ms

64 bytes from 140.252.13.33: icmp_seq=0 ttl=254 time=280 ms (DUP!)

64 bytes from 140.252.13.34: icmp_seq=0 ttl=254 time=360 ms (DUP!)

64 bytes from 140.252.13.35: icmp_seq=1 ttl=255 time=190 ms

64 bytes from 140.252.13.33: icmp_seq=1 ttl=254 time=270 ms (DUP!)

64 bytes from 140.252.13.34: icmp_seq=1 ttl=254 time=360 ms (DUP!)

^?

                                       введен

символ прерывания

— 140.252.13.63 ping statistics —

3 packets transmitted, 2 packets received, +4 duplicates, 33% packet loss

round-trip min/avg/max = 180/273/360 ms

Мы видим, что это работает. Также мы видим,

что программа ping в BSD проверяет отслеживает

повторные номера последовательности и помечает

их как DUP!. Это обычно означает, что пакет был

каким-либо образом продублирован, однако здесь

именно это и должно было произойти, так как

запросы были отправлены на широковещательный

адрес.

Этот тест можно запустить с более

удаленного хоста (от той сети, к которой

направляется широковещательный запрос). Мы

запустили ping с хоста vangogh.cs.berkeley.edu (который

находится на расстоянии 14 пересылок от нашей

сети), и это также будет работать, если

маршрутизатор sun сконфигурирован таким образом,

чтобы перенаправлять направленные

широковещательные запросы. В данном случае IP

датаграммы (переносящие ICMP эхо

запросы) перенаправляются каждым

маршрутизатором, встречающимся им на пути, как

обычные датаграммы. Никто из них не знает, что в

действительности это направленные

широковещательные запросы. И последний

маршрутизатор, netb, думает, что пакеты

предназначены хосту с идентификатором равным 63,

и перенаправляет их на sun. В этом месте sun

определяет, что IP адрес назначения в

действительности это широковещательный адрес

подключенного интерфейса, и передает датаграммы

в виде широковещательных запросов канального

уровня для этой сети.

Рассылка широковещательных запросов это

характеристика, которую необходимо использовать

с очень большой осторожностью. В большинстве

случаев групповая адресация IP предоставляет

лучшее решение практически всех проблем.

Рассылка групповых сообщений

Рассылка групповых сообщений IP

предоставляет приложениям два сервиса.

  1. Доставка к нескольким пунктам назначения.

    Существует множество приложений, которые

    доставляют информацию нескольким адресатам,

    например, диалоговые конференции,

    распространение почты или новостей. Если

    групповая адресация не используется, эти типы

    сервисов вынуждены использовать TCP (при этом

    осуществляется доставка отдельной копии на

    каждый пункт назначения). Даже при существовании

    групповой формы сообщений, некоторые приложения

    все-таки используют TCP из-за его надежности.

  2. Запрос от клиента к серверу. Например,

    бездисковая рабочая станция старается

    определить положение сервера загрузки. В

    настоящее время это осуществляется с

    использованием широковещательных запросов (как

    мы увидим в случае с BOOTP в главе 16),

    однако решение с использованием групповых

    запросов может уменьшить загруженность хостов,

    которые не предоставляют этот сервис.

В этом разделе мы рассмотрим групповые

адреса, а в следующей главе

рассмотрим протоколы, которые используют

групповую адресацию хостов и маршрутизаторов

(IGMP).

Адреса групп

На рисунке 12.2 показан формат IP

адреса класса D.

Рисунок 12.2 Формат IP

адреса класса D.

В отличие от трех других классов IP адресов

(A,B и C), форматы которых приведены на рисунке 1.5, 28 бит, отведенные под

групповой идентификатор, не подвергаются

дальнейшему делению.

Групповой адрес (multicast group address)

состоит из четырех старших бит, установленных в

1110, и идентификатора группы. В десятичном виде

групповые адреса находятся в диапазоне от 224.0.0.0

до 239.255.255.255.

Некоторое количество хостов,

просматривающих определенный групповой IP адрес,

называется группой хостов (host group).

Группа хостов может объединять хосты в разных

сетях. Членство в группе динамическое — хост

может вступать в группу и выходить из группы по

собственному желанию. Не существует ограничений

на количество хостов в группе, и хост не должен

принадлежать к группе, чтобы послать сообщение в

эту группу.

Некоторые адреса групп назначаются как

заранее известные адреса от IANA (Internet

Assigned Numbers Authority). В этом случае группа считается постоянной группой хостов (permanent host

group). Заранее известные групповые адреса

приведены в последних RFC назначенных номеров (Assigned Numbers RFC). Обратите внимание на то,

что постоянным в данном случае является

групповой адрес, а не членство в группе.

Например, 224.0.0.1 означает «все системы в

этой подсети», а 224.0.0.2 означает «все

маршрутизаторы в этой подсети». Групповой

адрес 224.0.1.1 предназначен для сетевого протокола

времени (NTP — Network Time Protocol), 224.0.0.9 для RIP-2 (глава 10, раздел «RIP

Version 2») и 224.0.1.2 для SGI (Silicon Graphics) dogfight

приложений.

Преобразование групповых адресов в

адреса Ethernet

IANA владеет блоком Ethernet адресов, которые в

шестнадцатиричном представлении выглядят как

00:00:5e. Это старшие 24 бита Ethernet адреса, означающие,

что блок включает адреса в диапазоне от 00:00:5e:00:00:00

до 00:00:5e:ff:ff:ff. IANA отвела половину этого блока для

групповых адресов. Установлено правило, что

первый байт Ethernet адреса равный 01 указывает на

групповой адрес. Это означает, что Ethernet адреса,

соответствующие групповым адресам IP, должны

находиться в диапазоне от 01:00:5e:00:00:00 до 01:00:5e:7f:ff:ff.

Приведенные здесь

выражения используют стандартную

последовательность битов для Internet, для сетей CSMA/CD или Token bus, а именно такую, как биты

располагаются в памяти. Это как раз то, с чем

сталкивается большинство программистов и

системных администраторов. IEEE

документация использует порядок бит, который

используется при передаче. Assigned Numbers RFC

предоставляет дополнительные подробности о

различиях между этими представлениями.

Подобное расположение позволяет 23 битам в

Ethernet адресе соответствовать идентификатору

группы IP. В процессе преобразования адресов 23

младших бита идентификатора группы помещаются в

23 бита Ethernet адреса. (См. рисунок 12.3.)

Старшие 5 бит в идентификаторе группы

игнорируются, так как они не уникальны. Каждому

Ethernet адресу соответствует 32 различных

идентификатора группы. Например, групповой адрес

224.128.64.32 (в шестнадцатиричном представлении

e0.80.40.20) и 224.0.64.32 (в шестнадцатиричном

представлении e0.00.40.20) оба будут трансформированы

в Ethernet адрес 01:00:5e:00:40:20.

Так как подобное сопоставление не

уникально, предполагается, что драйвер

устройства или IP модуль на рисунке 12.1 должен

осуществить фильтрацию, так как сетевая плата

может получить групповой фрейм, который хосту не

предназначен. Если сетевая плата не осуществляет

адекватную фильтрацию групповых фреймов,

драйвер устройства, вполне возможно, должен

будет получать все групповые фреймы и сам

осуществлять фильтрацию.

Рисунок 12.3 Соответствие между IP

адресами класса D и групповыми адресами Ethernet.

Существует два

варианта реализации групповой адресации в

сетевых платах, использующиеся в локальных

сетях. Одни осуществляют групповую фильтрацию,

основанную на значении аппаратного группового

адреса, что означает, что некоторые

нежелательные фреймы могут пройти. В другом

случае имеется небольшое фиксированное

количество групповых адресов, принимаемых

платой, при этом, если хосту необходимо принять

больше групповых адресов, чем поддерживается,

интерфейс должен быть помещен в режим «разных

групп» (multicast promiscuous). Однако, оба типа

интерфейсов все еще требуют, чтобы драйвер

устройства осуществлял проверку на предмет того,

необходимо ли дальше обрабатывать принятый

фрейм. Даже если интерфейс осуществляет

идеальную групповую фильтрацию (основанную на

48-битном аппаратном адресе) фильтрация все еще

необходима, так как сопоставление IP

адресов класса D и 48-битных аппаратных адресов

осуществляется не один к одному. Однако, если

абстрагироваться от несовершенства

преобразования адресов и аппаратной фильтрации,

групповая адресация все же лучше, чем

широковещательная.

Осуществить групповой запрос в

единственную физическую сеть довольно просто.

Отправляющий процесс указывает IP адрес

назначения, который является групповым адресом,

драйвер устройства конвертирует это в

соответствующий Ethernet адрес и отправляет.

Принимающие процессы должены указать своим IP

модулям, что они хочет получать датаграммы,

предназначенные определенному групповому

адресу, и драйвера устройств должен каким-либо

образом получать эти групповые фреймы. Все это

называется «вступлением в группу». (Причина,

по которой мы использовали выражение

«принимающие процессы» во множественном

числе, объясняется тем, что обычно существует

несколько получателей, которым предназначено

групповое сообщение, либо на одном, либо на

разных хостах.) Когда групповая датаграмма

получена хостом, копия доставляется всем

процессам, которые принадлежат к группе. Это

отличается от UDP, где единственный процесс

получает входящую персональную UDP датаграмму.

Несколько процессов на одном хосте могут

принадлежать к одной группе.

Однако сложности растут как снежный ком,

когда группа распространяется на несколько

сетей, и групповые пакеты должны проходить через

маршрутизаторы. Маршрутизаторам необходимо

знать, принадлежат ли какие-либо хосты в данной

физической сети к определенной группе. Для

определения этого, существует протокол,

называемый протоколом группового управления

Internet (IGMP — Internet Group Management Protocol). Этому протоколу

полностью посвящена следующая

глава.

Широковещательные запросы в сетях FDDI и Token Ring

Сети FDDI используют ту же схему

преобразования между IP адресами класса D и

48-битными FDDI адресами [Katz 1990]. Сети Token ring обычно используют отличную

систему сопоставления из-за ограничений, которые

накладываются на большинство управляющих

устройств Token ring [Pusateri 1993].

Краткие выводы

Широковещательная рассылка используется

при отправке пакетов всем хостам в сети (обычно

это локально подключенная сеть), а групповые

сообщения используются для отправки пакетов

определенному количеству хостов в сети. В этих

концепциях используются различные типы

фильтрации, которая осуществляется, когда

принятый фрейм проходит по стеку протоколов.

Каждый уровень может отбросить принятый пакет по

различным причинам.

Существуют четыре типа широковещательных

адресов: ограниченный, широковещательный адрес

сети, широковещательный адрес подсети и широковещательный адрес всех

подсетей. Наиболее распространенный — широковещательный

адрес подсети. Ограниченный широковещательный

адрес обычно используется системой только в

случае загрузки из сети.

Проблемы возникают, когда делается попытка

послать широковещательный запрос через

маршрутизаторы, чаще всего из-за того, что

маршрутизатор не знает маску подсети в сети

назначения. Результат зависит от того, какого

типа широковещательный адрес, от параметров

конфигурации и так далее.

IP адреса класса D называются

групповыми адресами. Они преобразовываются в

адреса Ethernet путем помещения их 23 младших битов в

фиксированный Ethernet адрес. Подобное

сопоставление не является уникальным, поэтому

требуется дополнительная фильтрация одним из

протоколов.

Упражнения

  1. Увеличивается ли сетевой

    траффик (загрузка сети) в случае

    широковещательных запросов?

  2. Представьте 50 хостов в Ethernet: 20 запускают TCP/IP, а 30

    используют какое-либо другое семейство

    протоколов. Как широковещательные запросы от

    одного семейства протоколов обрабатываются

    хостами, использующими другое семейство

    протоколов?

  3. Вы зашли терминалом на Unix систему, с которой

    раньше никогда не работали, и хотите найти

    широковещательный адрес, направленный в подсеть,

    для всех подключенных интерфейсов, которые

    поддерживают широковещательные сообщения. Как

    это можно сделать?

  4. Если Вы запустили ping на

    широковещательный адрес с большим размером

    пакетов, как в примере:

    sun %

    ping 140.252.13.63 1472

    PING 140.252.13.63: 1472 data bytes

    1480 bytes from sun (140.252.13.33): icmp_seq=0. time=6. ms

    1480 bytes from svr4 (140.252.13.34): icmp_seq=0. time=84. ms

    1480 bytes from bsdi (140.252.13.35): icmp_seq=0. time=128. ms

    это работает, однако увеличение

    размера пакета на 1 байт приведет к следующей

    ошибке:

    sun % ping 140.252.13.63 1473

    PING 140.252.13.63: 1473 data bytes

    sendto: Message too long 

    Что произошло?

  5. Повторите упражнение 6 главы

    10, представив себе 8 RIP сообщений, направляемых с

    помощью групповой адресации вместо

    широковещательной (представьте, что

    используется RIP Version 2). Что изменится?

Время на прочтение
1 мин

Количество просмотров 59K

В процессе вычисления сетей, при подготовке к CCNA, я выявил интересную закономерность, на основе которой можно быстро вычислять адрес сети, а так же ее широковещательный адрес без особых усилий. Этот метод я ранее в литературе не встречал.

Итак, мы имеем произвольный IP адрес – 192.170.175.83/13 и наша 1 задача вычислить адрес сети, для этого мы посмотрим на второй октет, так как именно он содержит как сетевую так и хостовую часть. На хостовую часть во втором октете отводится 3 бита, что дает нам 8 (2^3) изменяемых хостовых адресов в данном октете, т.е. каждая подсеть в данном октете будет содержать 8 изменяемых адресов. Теперь мы разделим представленное в третьем октете число на количество изменяемых адресов – 170/8 = 21.25, в результате деления мы получили номер искомой подсети – 21 (дробная часть нас ясное дело не интересует). Зная номер подсети, и количество изменяемых адресов в ней мы можем вычислить ее адрес, для этого 21 * 8 = 168. Итого – адрес сети будет 192.168.0.0.

Задача №2 – вычислить широковещательный адрес, для этого мы к 168 прибавим количество изменяющихся адресов и вычтем единицу: 168 + 8 – 1 = 175, следовательно, широковещательный адрес данной подсети 192.175.255.255.

И по поводу последних двух октетов в моем примере – если маска в октете нулевая, то в адресе сети он всегда будет равен 0, и широковещательный адрес всегда будет равен 255.

PS: Если данный метод ранее кому то встречался – просьба дать ссылку.

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как правильно составить анкету на кредит
  • Как найти автошколу где учился
  • Как составить карту способностей
  • Как найти в яндекс почте видео
  • Как найти свой номер медицинского страхового полиса

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии