TCP/IP

* 3. Ethernet * В этом разделе мы кратко рассмотрим технологию Ethernet. Кадр Ethernet содержит адрес назначения, адрес источника, поле типаи данные. Размер адреса в Ethernet - 6 байт. Каждый сетевой адаптеримеет свой Ethernet-адрес. Адаптер контролирует обмен информацией, про- ------- ------- | TCP | | UDP | ------- ------- \ / ---------- | | | IP | | | | / \ | ---------- / \ данные данные поступают отправляются отсюда сюда Рис.5. Пример межсетевой ретрансляции пакета модулем IP [1] В документации по TCP/IP термины шлюз (gateway) и IP-маршрутизатор (IP-router) часто используются как синонимы. Мы сочли воз-можным использовать более распространенный термин "шлюз".исходящий в сети, и принимает адресованные ему Ethernet-кадры, а такжеEthernet-кадры с адресом "FF:FF:FF:FF:FF:FF" (в 16-ричной системе), кото-рый обозначает "всем", и используется при широковещательной передаче. Ethernet реализует метод МДКН/ОС (множественный доступ с контролемнесущей и обнаружением столкновений). Метод МДКН/ОС предполагает, чтовсе устройства взаимодействуют в одной среде, в каждый момент времениможет передавать только одно устройство, а принимать могут все одновре-менно. Если два устройства пытаются передавать одновременно, то происхо-дит столкновение передач, и оба устройства после случайного (краткого)периода ожидания пытаются вновь выполнить передачу.

3.1. Аналогия с разговором Хорошей аналогией взаимодействиям в среде Ethernet может служитьразговор группы вежливых людей в небольшой темной комнате. При этом ана-логией электрическим сигналам в коаксиальном кабеле служат звуковые волныв комнате. Каждый человек слышит речь других людей (контроль несущей). Вселюди в комнате имеют одинаковые возможности вести разговор (множественныйдоступ), но никто не говорит слишком долго, так как все вежливы. Есличеловек будет невежлив, то его попросят выйти (т.е. удалят из сети).Все молчат, пока кто-то говорит. Если два человека начинают говоритьодновременно, то они сразу обнаруживают это, поскольку слышат друг друга(обнаружение столкновений). В этом случае они замолкают и ждут некотороевремя, после чего один из них вновь начинает разговор. Другие люди слы-шат, что ведется разговор, и ждут, пока он кончится, а затем могут начатьговорить сами. Каждый человек имеет собственное имя (аналог уникальногоEthernet-адреса). Каждый раз, когда кто-нибудь начинает говорить, онназывает по имени того, к кому обращается, и свое имя, например, "СлушайПетя, это Андрей, . ля-ля-ля ." Если кто-то хочет обратиться ко всем,то он говорит: "Слушайте все, это Андрей, . ля-ля-ля ." (широковеща-тельная передача).

* 4. Протокол ARP * В этом разделе мы рассмотрим то, как при посылке IP-пакета определя-ется Ethernet-адрес назначения. Для отображения IP-адресов в Ethernet-адреса используется протокол ARP (Address Resolution Protocol - адресныйпротокол). Отображение выполняется только для отправляемых IP-пакетов,так как только в момент отправки создаются заголовки IP и Ethernet.

4.1. ARP-таблица для преобразования адресов Преобразование адресов выполняется путем поиска в таблице. Эта таб-лица, называемая ARP-таблицей, хранится в памяти и содержит строки длякаждого узла сети. В двух столбцах содержатся IP- и Ethernet-адреса.Если требуется преобразовать IP-адрес в Ethernet-адрес, то ищется записьс соответствующим IP-адресом. Ниже приведен пример упрощенной ARP-таблицы. --------------------------------------------- | IP-адрес Ethernet-адрес | --------------------------------------------- | 223.1.2.1 08:00:39:00:2F:C3 | | 223.1.2.3 08:00:5A:21:A7:22 | | 223.1.2.4 08:00:10:99:AC:54 | --------------------------------------------- Табл.1. Пример ARP-таблицы Принято все байты 4-байтного IP-адреса записывать десятичными чис-лами, разделенными точками. При записи 6-байтного Ethernet-адреса каждыйбайт указывается в 16-ричной системе и отделяется двоеточием. ARP-таблица необходима потому, что IP-адреса и Ethernet-адреса выби-раются независимо, и нет какого-либо алгоритма для преобразования одногов другой. IP-адрес выбирает менеджер сети с учетом положения машины всети internet. Если машину перемещают в другую часть сети internet, тоее IP-адрес должен быть изменен. Ethernet-адрес выбирает производительсетевого интерфейсного оборудования из выделенного для него по лицензииадресного пространства. Когда у машины заменяется плата сетевого адап-тера, то меняется и ее Ethernet-адрес.

4.2. Порядок преобразования адресов В ходе обычной работы сетевая программа, такая как TELNET, отправ-ляет прикладное сообщение, пользуясь транспортными услугами TCP. МодульTCP посылает соответствующее транспортное сообщение через модуль IP. Врезультате составляется IP-пакет, который должен быть передан драйверуEthernet. IP-адрес места назначения известен прикладной программе,модулю TCP и модулю IP. Необходимо на его основе найти Ethernet-адресместа назначения. Для определения искомого Ethernet-адреса используетсяARP-таблица.

4.3. Запросы и ответы протокола ARP Как же заполняется ARP-таблица? Она заполняется автоматически моду-лем ARP, по мере необходимости. Когда с помощью существующей ARP-таблицыне удается преобразовать IP-адрес, то происходит следующее: 1) По сети передается широковещательный ARP-запрос. 2) Исходящий IP-пакет ставится в очередь. Каждый сетевой адаптер принимает широковещательные передачи. Вседрайверы Ethernet проверяют поле типа в принятом Ethernet-кадре и пере-дают ARP-пакеты модулю ARP. ARP-запрос можно интерпретировать так: "Есливаш IP-адрес совпадает с указанным, то сообщите мне ваш Ethernet-адрес".Пакет ARP-запроса выглядит примерно так: ----------------------------------------------------------- | IP-адрес отправителя 223.1.2.1 | | Ethernet-адрес отправителя 08:00:39:00:2F:C3 | ----------------------------------------------------------- | Искомый IP-адрес 223.1.2.2 | | Искомый Ethernet-адрес <пусто> | ----------------------------------------------------------- Табл.2. Пример ARP-запроса Каждый модуль ARP проверяет поле искомого IP-адреса в полученномARP-пакете и, если адрес совпадает с его собственным IP-адресом, то посы-лает ответ прямо по Ethernet-адресу отправителя запроса. ARP-ответ можноинтерпретировать так: "Да, это мой IP-адрес, ему соответствует такой-тоEthernet-адрес". Пакет с ARP-ответом выглядит примерно так: ----------------------------------------------------------- | IP-адрес отправителя 223.1.2.2 | | Ethernet-адрес отправителя 08:00:28:00:38:A9 | ----------------------------------------------------------- | Искомый IP-адрес 223.1.2.1 | | Искомый Ethernet-адрес 08:00:39:00:2F:C3 | ----------------------------------------------------------- Табл.3. Пример ARP-ответа Этот ответ получает машина, сделавшая ARP-запрос. Драйвер этоймашины проверяет поле типа в Ethernet-кадре и передает ARP-пакет модулюARP. Модуль ARP анализирует ARP-пакет и добавляет запись в свою ARP-таблицу. Обновленная таблица выглядит следующим образом: --------------------------------------------- | IP-адрес Ethernet-адрес | --------------------------------------------- | 223.1.2.1 08:00:39:00:2F:C3 | | 223.1.2.2 08:00:28:00:38:A9 | | 223.1.2.3 08:00:5A:21:A7:22 | | 223.1.2.4 08:00:10:99:AC:54 | --------------------------------------------- Табл.4. ARP-таблица после обработки ответа 4.4. Продолжение преобразования адресов Новая запись в ARP-таблице появляется автоматически, спустя нес-колько миллисекунд после того, как она потребовалась. Как вы помните,ранее на шаге 2 исходящий IP-пакет был поставлен в очередь. Теперь сиспользованием обновленной ARP-таблицы выполняется преобразование IP-адреса в Ethernet-адрес, после чего Ethernet-кадр передается по сети.Полностью порядок преобразования адресов выглядит так: 1) По сети передается широковещательный ARP-запрос. 2) Исходящий IP-пакет ставится в очередь. 3) Возвращается ARP-ответ, содержащий информацию о соответствии IP- и Ethernet-адресов. Эта информация заносится в ARP-таблицу. 4) Для преобразования IP-адреса в Ethernet-адрес у IP-пакета, постав- ленного в очередь, используется ARP-таблица. 5) Ethernet-кадр передается по сети Ethernet. Короче говоря, если с помощью ARP-таблицы не удается сразу осущест-вить преобразование адресов, то IP-пакет ставится в очередь, а необходи-мая для преобразования информация получается с помощью запросов и ответовпротокола ARP, после чего IP-пакет передается по назначению. Если в сети нет машины с искомым IP-адресом, то ARP-ответа не будети не будет записи в ARP-таблице. Протокол IP будет уничтожать IP-пакеты,направляемые по этому адресу. Протоколы верхнего уровня не могут отли-чить случай повреждения сети Ethernet от случая отсутствия машины с иско-мым IP-адресом. Некоторые реализации IP и ARP не ставят в очередь IP-пакеты на товремя, пока они ждут ARP-ответов. Вместо этого IP-пакет просто уничтожа-ется, а его восстановление возлагается на модуль TCP или прикладной про-цесс, работающий через UDP. Такое восстановление выполняется с помощьютаймаутов и повторных передач. Повторная передача сообщения проходитуспешно, так как первая попытка уже вызвала заполнение ARP-таблицы. Следует отметить, что каждая машина имеет отдельную ARP-таблицу длякаждого своего сетевого интерфейса.


Страница: