Еще один необходимый для нормальной работы TCP/IP параметр — маска подсети (subnet mask), которая служит для определения, в какой сети находится приемник пакета — локальной или внешней. Маска подсети — это 32-битный адрес, представляющий собой последовательность битов со значением 1, который используется для выделения, или маскировки, идентификатора сети адреса назначения пакета и отделения идентификаторов сети и узла. Каждому узлу сети TCP/I P нужна маска подсети (если сеть не разбита.на подсети, т. е. состоит из одной подсети) или маска по умолчанию (в случае разбиения сети на подсети).
Например, такое 32-битное число представляет маску подсети по умолчанию для узлов с адресами класса В (например 172.20.16.200):
11111111 11111111 00000000 00000000(255.255.0.0)
Когда TCP/I Р-узел с адресом 172.20.16.200 отправляет пакет по адресу 172.21.17.201, он сначала выполняет побитовую операцию «И» по отношению к локальным адресуй маске подсети. Поскольку эта логическая операция в результате дает 0 во всех битах кроме тех, в который в обоих операндах стояли 1, то
172.20.16.200 И 255.255.0.0 = 172.20.0.0
Затем узел повторяет эту операцию, но вместо адреса отправителя подставляет адрес получателя. В результате получается 172.21.0.0. Затем TCP/IP сравнивает результаты этих операций. Если они совпадают, получатель расположен в этой же подсети. Иначе приемник и получатель расположены в разных подсетях.
Поскольку биты идентификатора сети всегда идут последовательно и начинаются с самого левого, самый простой способ показать маску подсети — это указать количество битов идентификатора сети в виде префикса сети. Таким образом, маска подсети выражается в виде «IP-адрес/префикс сети». Например, IP-адрес I31.107.16.200 и маску подсети 255.255.0.0 можно записать в виде 131.107.16.200/16. Число 16 после слеша обозначает количество единичных битов в маске подсети. Точно так же, /24 обозначает маску подсети 255.255.255.0 для адреса класса С, например 206.73.118.23/24.
Примечание Нотация с префиксом сети также известна как бесклассовая междоменная маршрутизация (Classless Interdomain Routing, C1DR).
Связь между TCP/IP-узлами разных сетей как правило выполняется через маршрутизаторы. Маршрутизатор — это устройство с несколькими интерфейсами, подключенными к разным сетям, а маршрутизация — процесс приема IP-пакетов на одном интерфейсе и пересылка их на другой интерфейс в направлении адресата. С точки зрения узлг сети TCP/IP, основной шлюз— это IP-адрес маршрутизатора, сконфигурированного не пересылку IP-трафика в другие сети.
Пытаясь передать информацию другому узлу IP-сети, компьютер определяет тип узла (локальный или удаленный) по маске подсети. Если узел-получатель расположен в локальном сегменте сети, пакет направляется в локальную сеть по методу широковещания. В противном случае компьютер пересылает пакет в основной шлюз, определенный в параметрах TCP/IP. Обязанность дальнейшей пересылки пакета е нужную сеть возлагается на маршрутизатор, адрес которого указан в качестве основного шлюза.