logo
Основы организации компьютерных сетей

Операция and

 

В Internet одна сеть видит другую как отдельную сеть и не имеет подробных сведений о ее внутренней структуре. Следовательно, также нет информации о том, какие подсети содержатся в этой сети.

Например, компания Cisco имеет сеть класса В. Номер этой сети: 131.108.0.0. Внутри сеть компании Cisco разделена на подсети. Однако внешние сети видят ее как одну единственную сеть.

Предположим, что устройство из другой сети, имеющее адрес 197.15.22.44, хочет послать данные устройству, подключенному к сети компании Cisco и имеющему IP-адрес 131.108.2.2. Эти данные движутся по Internet, пока не достигают маршрутизатора, подключенного к сети компании. И здесь задача маршрутизатора состоит в том, чтобы определить, в какую из подсетей следует направить данные.

Чтобы решить эту задачу, маршрутизатор определяет по IP-адресу назначения, какая его часть относится к полю сети, какая часть – к полю подсети и, наконец, какая к полю хоста. Следует помнить, что маршрутизатор воспринимает IP-адреса не в виде десятичных чисел, а в виде двоичного числа 10000011.0110110.00000010.00000010.

Маршрутизатор знает, что маска подсети Cisco имеет вид 255.255.255.0, и воспринимает это число как 11111111.11111111.11111111.00000000. Маска подсети показывает, что в сети компании Cisco 8 бит заимствовано для создания подсетей. Затем маршрутизатор берет два этих адреса – IP-адрес назначения, содержащийся в Данных, и адрес маски подсети сети компании – и выполняет побитно операцию логического умножения (AND).

Если логически умножаются 1 и 1, на выходе получается 1. Если хотя бы один из операндов равен 0, на выходе получается 0. Поэтому после того, как маршрутизатор произведет операцию AND, часть адреса, соответствующая хостам, будет отброшена. Маршрутизатор смотрит на оставшуюся часть, которая представляет собой номер сети, включая подсеть, а затем сверяется с собственной таблицей маршрутизации и пытается сопоставить номер сети, включая подсеть, с интерфейсом. Если соответствие найдено, маршрутизатор знает, какой из интерфейсов нужно использовать. Затем маршрутизатор через соответствующий интерфейс передает данные в подсеть, которая содержит IP-адрес назначения.

Чтобы лучше понять, как осуществляется операция логического умножения, рассмотрим работу маршрутизатора с различными видами масок подсети применительно к одной и той же сети. Возьмем сеть класса В с сетевым номером 172.16.0.0. После оценки потребностей сети сетевой администратор принимает решение заимствовать 8 бит для того, чтобы создать подсети. Как упоминалось выше, маска подсети в этом случае имеет вид 255.255.255.0.

Представим, что из внешней сети данные посылаются по IP-адресу 172.16.2.120. Чтобы определить, куда направить данные, маршрутизатор производит операцию логического умножения между адресом назначения и маской подсети. После этого часть адреса, соответствующая хостам, будет отброшена, а оставшаяся будет представлять собой номер сети, включая подсеть. Таким образом, данные были адресованы устройству, которое идентифицируется двоичным числом 01111000.

Теперь возьмем ту же сеть, 172.16.0.0. На этот раз сетевой администратор принимает решение заимствовать только 7 бит, чтобы создать подсети. В двоичной форме маска подсети для этого случая будет иметь вид 11111111.11111111.11111110.00000000.