Протокол IP (Internet Protocol)

Сетевой уровень модели OSI

Сетевой уровень отвечает за возможность доставки пакетов по сети передачи данных – совокупности сегментов сети, объединенных в единую сеть любой сложности посредством узлов связи, в которой имеется возможность достижения из любой точки сети в любую другую.

В связи с необходимостью перенаправлять пакеты из одного сегмента сети в другой, сетевые адреса должны удовлетворять следующим требованиям:

1. Адреса должны быть уникальны. В сети не может быть нескольких участников с одинаковыми адресами во избежание неоднозначности.

2. Сетевой адрес должен содержать информацию о том, как достичь получателя по сети.

Это приводит к структурности адреса – адрес разбивается на части, позволяющие определить местоположение участника внутри сети.

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

По сложной структуре легче построить маршрут прохождения пакета, но адрес оказывается сложным и перегруженным часто ненужной информацией. Примером такой адресации может служить доменная адресация в Интернет, по адресу asu.bru.mogilev.by нетрудно понять, где находится данный участник сети и как до него добраться.

Простая структура позволяет значительно сократить размер адреса и сохраняет возможность работы в сети любой структуры, но для этого могут потребоваться сложные и, часто, не столь очевидные алгоритмы, как в предыдущем случае.

 

Протокол IP (Internet Protocol)

Архитектуру сетевого уровня удобно рассматривать на примере сетевого протокола IP – самого распространенного в настоящее время, основного протокола сети Интернет. Термин «стек протоколов TCP/IP» означает «набор протоколов, связанных с IP и TCP(протоколом транспортного уровня)».

Архитектура протоколов TCP/IP предназначена для объединенной сети, состоящей из соединенных друг с другом шлюзами отдельных разнородных пакетных подсетей, к которым подключаются разнородные машины.

Каждая из подсетей работает в соответствии со своими специфическими требованиями и имеет свою природу средств связи. Однако предполагается, что каждая подсеть может принять пакет информации (данные с соответствующим сетевым заголовком) и доставить его по указанному адресу в этой конкретной подсети.

Не требуется, чтобы подсеть гарантировала обязательную доставку пакетов и имела надежный сквозной протокол.

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

Когда необходимо передать пакет между машинами, подключенными к разным подсетям, то машина-отправитель посылает пакет в соответствующий шлюз (шлюз подключен к подсети также как обычный узел). Оттуда пакет направляется по определенному маршруту через систему шлюзов и подсетей, пока не достигнет шлюза, подключенного к той же подсети, что и машина-получатель: там пакет направляется к получателю.

Таким образом, адрес получателя должен содержать в себе:

1. номер (адрес) подсети;

2. номер (адрес) участника (хоста) внутри подсети.

 

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

192.168.200.47

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

11000000.10101000.11001000.00101111

 

Иногда применяют десятичное значение IP-адреса. Его легко вычислить

192*2563+168*2562+200*256+47=3232286767

или с помощью метода Горнера :

(((192*256)+168)*256+200)*256+47=3232286767

 

Таблица 1. Перевод некоторых чисел из двоичной системы счисления в десятичную и обратно.

Двоичное Десятичное

 

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

Маска сети также является 32-х разрядным двоичным числом. Разряды маски имеют следующий смысл:

1. если разряд маски равен 1, то соответствующий разряд адреса является разрядом адреса подсети;

2. если разряд маски равен 0, то соответствующий разряд адреса является разрядом хоста внутри подсети.

Все единичные разряды маски (если они есть) находятся в старшей (левой) части маски, а нулевые (если они есть) – в правой (младшей).

Исходя из вышесказанного, маску часто записывают в виде числа единиц в ней содержащихся.

255.255.248.0 (11111111.11111111.11111000.00000000) – является правильной маской подсети (/21),

а 255.255.250.0 (11111111.11111111.11111010.00000000) – является неправильной, недопустимой.

Нетрудно увидеть, что максимальный размер подсети может быть только степенью двойки (двойку надо возвести в степень, равную количеству нулей в маске).

При передаче пакетов используются правила маршрутизации, главное из которых звучит так:

«Пакеты участникам своей подсети доставляются напрямую, а остальным – по другим правилам маршрутизации».

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