пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

I семестр:
» Сети ЭВМ

24. Протокол сетевого уровня IP. Адресация, маршрутизация и продвижение дейтаграмм.

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

Протокол адресации (IP)

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

Таб. 9.3. Формат дейтаграммы IP

Версия

Длина

Тип сервиса

Общий размер

Идентификация

Флаги

Смещение фрагмента

Время жизни

Протокол

Контрольная сумма заголовка

Адрес отправителя

Адрес получателя

Опции и заполнение

Данные

Заголовок дейтаграммы IP имеет следующие поля:

Номер версии (Vers) протокола IP.

Длина заголовка (Hlen), измеренная в 32-битовых словах. Как правило, заголовок составляет 20 байт (пять 32-битовых слов). Но в теории, он может быть увеличен за счет использования поля Резерва (IP OPTIONS).

Тип сервиса (Servise type) задает приоритетность дейтаграммы, и критерий выбора способа доставки. Маршрутизаторы могут использовать это поле (вернее, его первые три бита) для установления очередности обработки сообщений. Для обычного пакета данных значение поля устанавливается равным "0", а для управляющей информации (максимальный приоритет) - "7". Следующие три бита определяют способ доставки. Так, значение "D" (delay) предписывает использовать путь с минимальной задержкой доставки, "T" - для достижения максимальной пропускной способности, "R" - с использованием пути, имеющего максимальную надежность доставки.

Общая длина (Total length) с учетом заголовка и поля данных. Надо заметить, что максимальный размер дейтаграммы IP определяется для каждого типа сетей по максимальной единице транспортировки (Maximum Transfer Unit, MTU). Для сети Ethernet она имеет значение, равное 1500 байт, а сеть Х.25 используют MTU в 128 байт.

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

Флаги (Flags) позволяют управлять фрагментацией данных. Так, установленный бит DF (Do not Fragment) запрещает маршрутизатору разделять данную дейтаграмму, а бит MF (More Fragments) - признак того, что дейтаграмма содержит промежуточный фрагмент.

Смещение фрагмента (Fragment offset) используется сборке/разборке частей пакетов при передачах их между сетями с различными величинами максимальной длины дейтаграммы. Для этого указывается в байтах смешение начала фрагмента, вошедшего в дейтаграмму, от начала общего блока данных, подвергнутого фрагментации.

Время жизни (Time to live) определяет предельный срок, в течение которого дейтаграмма может перемещаться по сети. При значении этого поля, равном "0", дейтаграмма уничтожается. Время измеряется в секундах, и вычитается на транзитных узлах при передаче (единица вычитается даже в том случае, если передача заняла меньшее время). При современных скоростях передачи, можно считать, что время жизни задается числом транзитных узлов.

Идентификатор протокола верхнего уровня (Protocol) указывает на протокол верхнего уровня, которому принадлежит дейтаграмма.

Контрольная сумма (Header Checksum), которая рассчитывается по всему заголовку на каждой точке обработки дейтаграммы.

Адрес источника (Source IP address) и Адрес назначения (Destination IP address) служат для доставки дейтаграммы, и получения ответа.

Резерв (IP options) является необязательным и, как правило, используется на стадии при отладке сети.

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

IP-адрес состоит из 4 байт (одно 32-битное слово), которое принято записывать в десятичном виде. Например, 192.168.0.2 - адрес одного из сетевых адаптеров моего компьютера в маленькой изолированной "квартирной" сети. Если записать этот же адрес в двоичном виде, получится 11000000-10101000-00000000-00000010. Биты, входящие в адрес, часто называют октетами.

Как уже говорилось выше, IP-адрес состоит из двух частей: номера сети и номера узла. Если устройство является частью сети Интерент, то адрес сети назначается согласно рекомендациям одного из подразделений Сетевого Информационного Центра (Network Information Center, NIC). Для независимой (закрытой) сети администратор может назначить адреса самостоятельно.

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

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

В начале развития сети Интеренет для удобства управления адресным пространством введено деление сетей на классы "Классовая модель", но впоследствии была повсеместно принята "Безклассовая модель" (CIDR).

Рассмотрим классовую модель. В ней граница между сетевой частью IP-адреса, и части, предназначенной для идентификации хостов, всегда проходит по границе октета. Т.е. возможно четыре и только четыре типа сети.

Таб. 9.4. Деление IP сетей на классы

Класс<br<сети< small=""></br<сети<>

Диапазон значений первого октета

Значения адреса в десятичной записи

Возможное 
кол-во сетей

Возможное 
кол-во узлов

A<br<сети< small=""></br<сети<>

от 00000001-… 
до 01111110-…

от 1.ххх.xxx.xxx 
до 126.ххх.ххх.ххх

126

16777214

B<br<сети< small=""></br<сети<>

от 1000000-00000000-… 
до 1011111-11111111-…

от 128.0.ххх.ххх 
до 191.255.ххх.ххх

16382

65534

C<br<сети< small=""></br<сети<>

от 1100000-00000000-00000000… 
до 1101111-11111111-11111111…

от 192.0.0.ххх 
до 223.255.255.ххх

2097150

254

D<br<сети< small=""></br<сети<>

от 1110000-… 
до 1110111-…

от 224.ххх.ххх.ххх 
до 239.ххх.ххх.ххх

-

268435456

E<br<сети< small=""></br<сети<>

от 1111000-…
до 1111111-…

от 240.ххх.ххх.ххх 
до 255.ххх.ххх.ххх

-

134217728

Понятно, что адреса класса A предназначены для использования в очень больших сетях общего пользования (например, национальных). Класс B может найти применение в сетях крупных провайдеров или компаний (при американском толковании масштабов). Небольшим провайдерам, или сетям, приходится иметь дело в основном с сетями класса C, которые позволяют адресовать 254 узла. Адреса класса D используются при обращениях к группам машин, а адреса класса E зарезервированы для использования в эксперементальных целях.

В любой сети первый (вернее, нулевой) адрес является номером всей сети и не может быть присвоен никому конкретно. Адрес, являющийся последним в сети, предназначен для широковещательных (broadcasting) сообщений, которые доставляются всем узлам данной сети. Соответственно, эти два адреса недоступны для узлов. Именно поэтому, в сети класса С можно адресовать не 256, а только 254 узла.

Кроме этого, зарезервировано несколько групп адресов специального назначения. Так, сеть класса A с номером 127 (loopback), предназначена для общения компьютера с собой. При посылке данных на этот адрес, они не передаются по сети, а возвращаются протоколам верхнего уровня. Поэтому, узлам запрещено присваивать адреса этой сети, и считается, что она не входит в адресное пространство Интернет.

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

Есть еще одно важное соглашение (RFC 1918) о сетях, которые считаются "частными", т.е. не маршрутизируемыми в сети Интернет. Это блоки адресов от 10.0.0.0 - 10.255.255.255 (сеть класса А), 172.16.0.0-172.31.255.255 (16 сетей класса В), 192.168.0.0-192.168.255.255 (255 сетей класса С). Такие адреса часто используются для маскарадинга, транзитных, или изолированных сетей. В этом случае даже ошибки в маршрутизации не вызовут сбоев в работе других узлов Интернет.

Как ни велико адресное пространство, при таком простом способе адресации оно не может быть использовано эффективно. Тяжело представить физическую сеть, в которой количество узлов будет достаточным для IP-сети класса А. С другой стороны, невозможно использовать только небольшие сети. Каждая сеть, так или иначе, создает особое правило на транзитных маршрутизаторах. И большое количество сетей вызовет их неоправданную загрузку (или вообще, неработоспособность).

В классовой модели старшие биты IP-адреса определяли принадлежность узла к конкретному классу, и соответственно по нему маршрутизаторы определяли размер сети. Для претворения в жизнь технически привлекательного принципа произвольного разделения адресного пространства пришлось ввести 32-битовую маску (netmask) или маску подсети (subnet mask).

Сетевая маска действует по следующему простому принципу: 
в позициях, соответствующих номеру сети, биты установлены в 1; 
в позициях, соответствующих номеру хоста, биты сброшены в 0.

Таким образом, был разработана "безклассовая модель" адресации (CIDR, Classless Internet Direct Routing, прямая бесклассовая маршрутизация). В ней отсутствуют технические причины разделения сеть-хост в IP-адресе точно по границе октета. И вдобавок, схема может быть иерархической. При этом крупные магистральные маршрутизаторы обрабатывают проходящий трафик в соответствии с правилами для полных сетей, даже не подозревая о том, что они где-то разделены на подсети. Таким образом, нагрузка "перекладывается" на периферийные маршрутизаторы.

Рассмотрим этот вопрос на наиболее распространенном случае разделения сети класса С, например 192.168.25.0 с маской 255.255.255.0 (11111111. 11111111. 11111111.00000000), или, в компактной форме записи, 192.168.25.0/24 (24-количество значащих разрядов маски).

Таб. 9.5. Возможные варианты разделения сети класса С на подсети.

Запись маски

Последний октет маски

Количество подсетей

Количество адресов в подсети

Количество значащих разрядов

255.255.255.252

11111100

64

4

30

255.255.255.248

11111000

32

8

29

255.255.255.240

11110000

16

16

28

255.255.255.224

11100000

8

32

27

255.255.255.192

11000000

4

64

26

255.255.255.128

10000000

2

128

25

Нужно иметь в виду, что "нулевой" адрес в каждой подсети (например, 192.168.25.64/255.255.255.192) является собственно адресом сети, а последний (192.168.25.127/255.255.255.192) - бродкастовым. Использовать их для узлов нельзя, и, соответственно, теоретически возможная маска 255.255.255.254 не может быть применена. Вариант с 255.255.255.252 имеет всего 2 реальных адреса, и может быть использован в ограниченном числе случаев.

В остальном, нужно отметить, что возможны самые разные варианты разделения сетей. Так, например, сеть класса "С" можно представить как сумму из 2*4+1*8+1*16+3*32+2*64. Но при этом будет "потеряно" 16 адресов.

Роль подсетей нельзя недооценивать. Например, с точки зрения маршрутизатора адрес 192.168.25.149/255.255.255.128 (192.168.25.149/25) будет выглядеть как номер сети 192.168.25.128 и номер узла 21, что несколько отличается от привычной записи, и может породить серьезные проблемы.

 


20.01.2014; 23:09
хиты: 56
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь