Архитектуру сетевого уровня удобно рассматривать на примере сетевого протокола IP – самого распространенного в настоящее время, основного протокола сети Интернет. Термин «стек протоколов TCP/IP» означает «набор протоколов, связанных с IP и TCP (протоколом транспортного уровня)».
Архитектура протоколов TCP/IP предназначена для объединенной сети, состоящей из соединенных друг с другом шлюзами отдельных разнородных пакетных подсетей, к которым подключаются разнородные машины.
Каждая из подсетей работает в соответствии со своими специфическими требованиями и имеет свою природу средств связи. Однако предполагается, что каждая подсеть может принять пакет информации (данные с соответствующим сетевым заголовком) и доставить его по указанному адресу в этой конкретной подсети.
Не требуется, чтобы подсеть гарантировала обязательную доставку пакетов и имела надежный сквозной протокол.
Таким образом, две машины, подключенные к одной подсети, могут обмениваться пакетами.
Когда необходимо передать пакет между машинами, подключенными к разным подсетям, то машина-отправитель посылает пакет в соответствующий шлюз (шлюз подключен к подсети также как обычный узел). Оттуда пакет направляется по определенному маршруту через систему шлюзов и подсетей, пока не достигнет шлюза, подключенного к той же подсети, что и машина-получатель: там пакет направляется к получателю.
Таким образом, адрес получателя должен содержать в себе:
1. номер (адрес) подсети;
2. номер (адрес) участника (хоста) внутри подсети.
IP адреса представляют собой 32-х разрядные двоичные числа. Для удобства их записывают в виде четырех десятичных чисел, разделенных точками. Каждое число является десятичным эквивалентом соответствующего байта адреса (для удобства будем записывать точки и в двоичном изображении).
192.168.200.47
является десятичным эквивалентом двоичного адреса
11000000.10101000.11001000.00101111
Для разделения адресов на подсети применяется два способа, первой появилась классовая адресация.
Классы сетей разбили весь диапазон адресов на 5 классов. Классы A, B и С предназначаются для адресации уникальных интерфейсов и в них первые байты в зависимости от класса отводятся для номера сети а оставшиеся для адресации узла (Табл. 1.2). Классы D и E – специальные классы.
Таблица 1.2. Классы адресов
Класс
Первые биты
адреса
Число сетей, кол. байт адреса
Число узлов, кол. байт адреса
Мин.
номер сети
Макс.
номер сети
A
27, 1 байт
224, 3 байта
1.0.0.0
126.0.0.0
B
214, 2 байта
216, 2 байта
128.0.0.0
191.255.0.0
C
221, 3 байта
28, 1 байт
192.0.0.0.
223.255.255.0
D
multicast
Multicast
224.0.0.0
239.255.255.255
E
резерв
Резерв
240.0.0.0
247.255.255.255
Такой способ разделения адреса простой, но не эффективный. Для повышения эффективности использования IP адресов позже появился способ с использованием сетевых масок. Здесь количество разрядов адреса подсети может быть различным и определяется маской сети.
Маска сети также является 32-х разрядным двоичным числом. Разряды маски имеют следующий смысл:
1. если разряд маски равен 1, то соответствующий разряд адреса является разрядом адреса подсети;
2. если разряд маски равен 0, то соответствующий разряд адреса является разрядом хоста внутри подсети.
Все единичные разряды маски (если они есть) находятся в старшей (левой) части маски, а нулевые (если они есть) – в правой (младшей).
Исходя из вышесказанного, маску часто записывают в виде числа единиц в ней содержащихся.
Маска 255.255.248.0 (11111111.11111111.11111000.00000000) (/21) – является правильной маской подсети, а 255.255.250.0 (11111111.11111111.11111010.00000000) – является неправильной, недопустимой.
Нетрудно увидеть, что максимальный размер подсети может быть только степенью двойки (двойку надо возвести в степень, равную количеству нулей в маске).
Определение диапазона адресов подсети можно произвести из определения понятия маски:
1. те разряды, которые относятся к адресу подсети, у всех хостов подсети должны быть одинаковы;
2. адреса хостов в подсети могут быть любыми.
То есть, если наш адрес 192.168.200.47 и маска равна /20, то диапазон можно посчитать:
Следует учитывать, что некоторые адреса являются запрещенными или служебными и их нельзя использовать для адресов хостов или подсетей. Это адреса, содержащие:
0 в первом или последнем байте,
255 в любом байте (это широковещательные адреса),
127 в первом байте (внутренняя петля – этот адрес имеется в каждом хосте и служит для связывания компонентов сетевого уровня).
Для применения в локальных сетях были выделены диапазоны адресов для автономных систем (AS):
в классе A - 10.Х.Х.Х для больших локальных сетей;
в классе B - 172.16.Х.Х для средних локальных сетей;
в классе C - 192.168.Х.Х для маленьких (небольших) локальных сетей.
Эти адреса не могут быть использованы в сети Internet, т.к. отданы для использования в автономных системах, не имеющих прямого подключения к Internet.