Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерные сети_лекции.docx
Скачиваний:
10
Добавлен:
23.09.2019
Размер:
5.97 Mб
Скачать

Классы ip-адресов

Ка известно любой IP-адрес сетевого интерфейса состоит из двух частей: IP-адреса подсети (терминология TCP/IP) и IP-адреса хоста в этой подсети. Какая часть IP-адреса относится к адресу подсети, а какая к IP узла, может быть определено значениями первых бит первого байта 4х-байтного IP-адреса. Значение этих бит является явным признаком того, к какому классу относится тот или иной адрес.

Приведем таблицу диапазонов сетей и хостов A,B, C

Класс

Диапазон IP-адресации подсетей

Диапазон IP-адресации хостов

А

1 - 126

0.1 – 255.255.254

В

0.1 – 255.254

С

192.0.0 – 223.255.255

Протокол TCP/IP использует метод масок подсети. Поэтому принципу каждому адресу обязательно должна быть присвоена маска IP-подсети. Маска – это число, которое используется в паре с IP-адресом сетевого интерфейса. Двоичная запись маски всегда представляет из себя непрерывную последовательность единиц, начиная со старшего бита первого байта в тех двоичных разрядах, которые должны интерпретироваться как IP-адрес подсети. Для стандартных классов IP-подсетей маски имеют следующее значение:

  • Класс А - 255.0.0.0

  • Класс В – 255.255.0.0

  • Класс С – 255.255.255.0

Приведенные значения говорят о том, что в IP-адресе сетевого интерфейса IP подсети всегда заканчивается в его двоичном представлении на границе байта. Если не базироваться на стандартных классах, в масках кол-во единиц в непрерывной последовательности не обязательно должно быть кратно 8.

Маршрутизация ip-пакетов без использования масок.

Будем считать, что все узлы (хосты) составной сети имеют IP-адреса, основанные на классах и при этом маски не используются.

Модуль (протокол) FTP упаковывает свое сообщение в сегмент (поле данных транспортного протокола TCP, который в свою очередь помещает свой сегмент в поле данных протокола IP, при этом в заголовке IP-пакета должен быть указан IP-адрес интерфейса узла назначения, поскольку пользователь cit.dol.ru указал символьное обозначение s1.nsk.su, то стек TCP/IP должен определить IP-адрес сетевого интерфейса узла назначения самостоятельно). При конфигурировании стека TCP/IP, в компьютере cit.dol.ru был задан (или получен автоматически используя установленный и настроенных DHCP-сервер; в этом случае, для того, чтобы узнать выданных DHCP-сервером IP-адрес достаточно в режиме командной строки набрать «ipconfig /all»), IP-адрес маршрутизатора по умолчанию, IP-адрес DNS-сервера. Модуль (протокол IP) может сделать запрос к DNS-серверу, но обычно сначала просматривается локальная таблица сответствия соответствия IP и символьных доменных имен (файл hosts). Будем считать, что компьютер cit.dol.ru имеет файл hosts, в котором присутствует запись: «142.6.13.14 s1.msk.su». При этом разрешение имени выполнится локально и протокол IP сможет сформировать IP-пакеты с адресами назначения 142.6.13.14 для взаимодействия с компьютером s1.msk.su . Для рассматриваемого примера сети модуль IP компьютера cit.dol.ru будет маршрутизировать пакеты с адресом назначения 142.6.13.14 , поскольку IP сети назначения 142.6.0.0 не равен адресу сети 194.87.23.0 , которой принадлежит компьютер-отправитель.

Далее, компьютер cit.dol.ru начинает формировать кадр Ethernet для отправки IP-пакета маршрутизатору по умолчанию, IP порта которого известен – 194.87.23.1 , но неизвестен MAC этого порта, который необходим для перемещения кадра в локальной сети. Для этого протокол IP обращается к протоколу ARP, который просматривает таблицу. Если в последнее время компьютер cit.dol.ru выполнял какие-либо межсетевые обмены, то запись, содержащее соответствие между IP- и MAC- адресами маршрутизатора по умолчанию уже находится в кэш-таблице протокола ARP: «194.87.23.1 00:80:48:EB:7E:60» (обозначим этот MAC через MAC11 в соответствии с маршрутизатором и его номером порта). Таким образом, компьютер cit.dol.ru отправляет по локальной сети пакет, упакованный в поле данных кадра Ethernet. Кадр 1 принимается портом 1 в соответствии с протоколом Ethernet, поскольку MAC-узел этого порта распознает в MAC11 свой собственный MAC-адрес.

Протокол Ethernet извлекает из своего поля данных (поле данных кадра Ethernet) IP-пакет и передает модулю маршрутизатора, реализующему протокол IP. Протокол IP извлекает из своего заголовка IP-адрес назначения 142.6.13.14 и начинает просматривать записи таблицы маршрутизации маршрутизатора №1. Пусть маршрутизатор №1 имеет в своей таблице следующую запись: «142.6.0.0 135.12.0.11 2» (указаны не все поля записи, а только три). Эта запись говорит о том, что все пакеты для сети 142.6.0.0 требуется передавать на порт маршрутизатора , который имеет IP=135.12.0.11 , который принадлежит сети, которая подключена к порту №2 маршрутизатора №1. Поле данных маршрутизатора №1 просматривает значения порта №2 и находит , что к нему подключена сеть FDDI.

Замечание. Большинство протоколов допускает использование в кадре поля данных переменной длины. Иногда и заголовок может иметь переменную длину. Обычно протоколы определяют максимальное значение, которое может иметь длина поля данных. Эта величина называется максимальной единицей передачи данных (Maximum Transfer Unit, MTU). В некоторых протоколах задается также минимальное значение длины поля данных. Например, протокол Ethernet требует, чтобы поле данных кадра содержало по крайней мере 46 байт данных (если приложение хочет отправить меньше, то оно обязано дополнить их до 46 байт любыми значениями), другие протоколы разрешают использовать поле данных нулевой длины, например, протоколы Point-to-Point Protocol (PPP) и FDDI. Важной особенностью протокола IP является его способность выполнять динамическую фрагментацию пакетов при передаче их между сетями с различными значениями MTU, именно эта способность фрагментации способствовала тому, что протокол IP смог занять доминирующие позиции в составных сетях. Протокол IP в узле-отправителе не использует свои возможности по фрагментации пакетов. Эту задачу на узле-отправителе решает протокол TCP, который разбивает поток байтов, передаваемые ему с прикладного уровня на сегменты требуемого размера (например на сегменты размером 1060 байт, если на нижнем уровне данной сети работает протокол Ethernet), а на маршрутизаторе, когда пакет требуется передать из сети с большим значением MTU в сеть с меньшим MTU, протокол IP обязан выполнить фрагментацию. Приведем некоторые значения MTU:

  • Сеть TokenRing (16 Мбит/с) MTU = 17 914 байт

  • Сеть TokenRing (4 Мбит/с) MTU = 4 464 байта

  • Сеть FDDI MTU = 4 352 байта

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

Поскольку сеть FDDI имеет значение MTU большее, чем сеть Ethernet, то фрагментация IP-пакета не требуется. Поэтому далее, маршрутизатор №1 формирует кадр формата FDDI. На этом этапе модуль IP должен определить MAC-адрес порта следующего маршрутизатора по известному IP-адресу: 135.12.0.11 . Для этого протокол IP обращается к протоколу ARP. Пусть требуемой записи нет в кэш-таблице не оказалось. В этой ситуации в сеть FDDI оправляется широковещательный ARP-запрос содержащий следующую информацию:

Порт №1 маршрутизатора №2 распознает свой IP (135.12.0.11) и посылает ARP-ответ по MAC запросившего узла:

Теперь, зная MAC порта следующего маршрутизатора (00EOF77F51A0) маршрутизатор №1 через свой порт №2 отсылает кадр FDDI по направлению к порту №1 маршрутизатора №2 с MAC назначения MAC21 .

Получив пакет отбрасывается его заголовок, из IP-заголовка извлекается адрес IP назначения, маршрутизатор просматривает свою таблицу маршрутизации, там он сможет найти запись о конкретной сети назначения «203.21.4.12 2», если такая запись в таблице отсутствует, то будет взята запись из таблицы маршрутизатора по умолчанию: «default 203.21.4.12 2». Определив адрес, модуль IP формирует кадр Ethernet для передачи маршрутизатору №3 по сети Ethernet. С помощью протокола ARP он находит MAC порта этого маршрутизатора и помещает в заголовок кадра. При этом IP узла назначения остается неизменным.

После того, как пакет поступил на маршрутизатор назначения (маршрутизатор №3) появляется возможность передачи этого пакета компьютеру назначения. Маршрутизатор №3 определяет, что пакет требуется передать в сеть 142.6.0.0 , которая непосредственно подключена к его порту №1. Поэтому он посылает ARP-запрос по сети Ethernet с IP соответствующего интерфейсу компьютеру s1.msk.su . ARP-ответ содержит MAC сетевой карты компьютера назначения, который протокол IP передает канальному протоколу для формирования кадра Ethernet:

Сетевая карта узла назначения s1.msk.su захватывает кадр Ethernet, обнаруживаются совпадения собственного MAC с MAC-назначения, содержащегося в заголовке пришедшего Ethernet-кадра и направляет содержимое поля данных Ethernet-кадра модулю IP. После анализа полей заголовка IP пакета из него извлекаются данные, которые содержат сообщения вышележащего протокола. Поскольку в данном примере рассматривается обмен данными по протоколу FTP, который использует в качестве транспортного – протокол TCP, то в поле данных IP-пакета находится TCP-сегмент. Определив из TCP-заголовка номер порта (как правило, это порт №21), протокол IP перенаправляет сегмент в соответствующую очередь этого порта, из которой данный сегмент попадает программному модулю FTP-сервера.