OSI и ее протоколы. Часть 5
Напомню нашим читателям, что в предыдущих номерах мы коснулись краткого описания протоколов транспортного уровня сетевой модели OSI (см. КГ №№ 5, 6, 8, 9). Следующим уровнем, который следует рассмотреть, является сетевой. 3-й уровень (сетевой) модели OSI предназначен для определения пути передачи данных. Уровень отвечает за трансляцию логических адресов и имен в физические, определение кратчайших маршрутов; коммутацию и маршрутизацию пакетов, отслеживание неполадок и заторов в сети.
К протоколам сетевого уровня относятся: IP, IPv6, ICMP, IGMP, IPX, NWLink, DDP, IPSec, ARP, RARP, DHCP, BootP, SKIP и др.
IPv4
IP (англ. Internet Protocol — межсетевой протокол) — маршрутизируемый сетевой протокол — основа стека протоколов TCP/IP. Протокол IP используется для ненадежной доставки данных (разделяемых на так называемые пакеты) от одного узла сети к другому. Это означает, что на уровне данного протокола не дается никакой гарантии надежной доставки пакета до адресата. В частности, пакеты могут прийти не в том порядке, в котором были отправлены, оказаться поврежденными или не прибыть вовсе. Гарантии безошибочной доставки пакетов дают протоколы более высокого (транспортного) уровня — например, TCP, которые используют IP в качестве транспорта. Современный Интернет использует IP-протокол четвертой версии, также известный как IPv4. Согласно данной версии протокола каждому узлу сети присваивается IP-адрес длиной 4 октета или 4 байта. При этом узлы (подразумевается не только компьютер, но и принтер и другое сетевое оборудование, требующее IP-адреса) в подсетях объединяются общими начальными битами адреса. Количество этих бит, общее для данной подсети, называется маской подсети (ранее использовалось деление пространства адресов по классам — A, B, C; класс сети определялся диапазоном значений старшего октета и определял число адресуемых узлов в данной сети, сейчас используется бесклассовая адресация). Не секрет, что современный Интернет имеет существенные технические проблемы, напрямую связанные с использованием устаревшего IPv4:
1. Недостаточно большое адресное пространство, ограниченное 32-битным адресом. Как следствие — нехватка IP-адресов.
2. Низкая производительность и отсутствие механизма автоматической конфигурации адресов. Не секрет, что алгоритмы фрагментации пакетов протокола IPv4 несовершенны и не отвечают современным требованиям: все дело в том, что на разделение пакетов маршрутизаторами требуется неадекватно большое количество системных ресурсов. Получается, что процедура фрагментации пакетов, имея неоправданно большое время обработки, потребляет дополнительные ресурсы промежуточных маршрутизаторов. В настоящее время вводится в эксплуатацию шестая версия протокола — IPv6, которая, между прочим, уже лежит в основе проекта Интернет-2. Помимо того, что IPv6-версия отличается повышенной разрядностью адреса, что решает проблему нехватки IP-адресов, IPv6 отличается встроенной возможностью шифрования и некоторыми другими особенностями.
IPv6
Протокол был разработан в исследовательском центре Xerox PARC. На сегодняшний день протокол IPv6 применяется достаточно ограниченно. До некоторого момента существовало несколько альтернативных вариантов протокола IP нового поколения: IPv7 (разработчик — Ullman), TUBA (Gallon), ENCAPS (Hinden), SIP (Deering) и PIP (Fracis). В результате развития линии ENCAPS (с промежуточной версией IPAE) SIP и PIP слились в 1993 году в предложение SIPP, которое в июле 1994 года было принято в качестве основы для создания протокола IP нового поколения, получившего название IPv6, где "6" обозначает номер версии протокола. Документом, фиксирующим появление IPv6, является спецификация RFC 1752 The Recommendation for the IP Next Generation Protocol. Базовый набор протоколов IPv6 был принят IETF в сентябре 1995 г. и получил статус Proposed Standard. В спецификации RFC 1726 представлен следующий набор основных функций:
. независимость от среды передачи: работа среди множества сетей с различными средами передачи данных со скоростями до сотен гигабит в секунду;
. преемственность: обеспечение четкого плана перехода от существующей версии IPv4;
. расширяемость: возможность дальнейшего развития в соответствии с новыми потребностями;
. масштабируемость: идентификация и определение адресов как минимум 1012 конечных систем и 109 индивидуальных сетей;
. топологическая гибкость: архитектура маршрутизации и протокол должны работать в сетях с различной топологией;
. автоматическое конфигурирование хостов и маршрутизаторов; безопасность на сетевом уровне;
. мобильность: обеспечение работы с мобильными пользователями, сетями и межсетевыми системами;
Резюмируя спецификацию IPv6, можно сказать следующее:
. в протоколе введены механизмы аутентификации и шифрования на уровне IP-пакетов;
. улучшена поддержка иерархической адресации, агрегирования маршрутов и автоматического конфигурирования адресов;
. упрощен стандартный заголовок IP-пакета; введены метки потоков данных;
. изменено представление необязательных полей заголовка;
. расширено адресное пространство.
Размер IP-адреса увеличен до 128 бит (16 байт), а этого более чем достаточно, чтобы обеспечить объединение миллиарда сетей.
ARP
ARP (англ. Address Resolution Protocol — протокол разрешения адресов) представляет собой сетевой протокол, предназначенный для преобразования IP-адресов (адресов сетевого уровня) в MAC-адреса (адреса канального уровня) в сетях TCP/IP. Протокол определен в спецификации RFC 826. Для того, чтобы понять, как именно работает данный протокол, уместно привести выдержку из его оригинальной спецификации:
ARP-преобразование адресов выполняется путем поиска в таблице. Эта таблица, называемая также ARP-таблицей, хранится в памяти и содержит строки соответствия MAC/IP для каждого узла сети. Если требуется преобразовать IP-адрес в MAC-адрес, то ищется запись с соответствующим IP- адресом. Ниже приведен пример простейшей ARP-таблицы:
Таблица 1.
IP-адрес |Ethernet-адрес
192.168.0.1 |08:00:34:00:2F:C3
192.168.0.2 |08:00:5A:71:A7:72
192.168.0.3 |08:00:10:98:AC:24
Просмотреть данную таблицу можно путем команды "arp –a" в командной строке:
Рис. 1. Просмотр таблицы маршрутизации
ARP-таблица необходима по причине того, что IP- и MAC-адреса выбираются независимо друг от друга, и не существует какого-либо четкого алгоритма для преобразования одного в другой. IP-адрес выбирается менеджером сети с учетом местоположения машины. Если машину перемещают в другую часть сети, то ее IP-адрес должен быть изменен. Когда у машины заменяется плата сетевого адаптера, то меняется и ее Ethernet-адрес. В ходе обычной работы любая сетевая программа — к примеру, TELNET — отправляет некое прикладное сообщение, пользуясь транспортными услугами TCP. Модуль TCP посылает соответствующее транспортное сообщение через модуль IP посредством IP-пакета, который должен быть передан драйверу Ethernet. IP-адрес места назначения известен прикладной программе, модулю TCP и модулю IP. На его основе необходимо найти MAC-адрес места назначения. Для определения искомого Ethernet-адреса и используется ARP-таблица. Как же заполняется ARP-таблица? Заполняется она автоматически модулем ARP. В случае, если в существующей ARP-таблице не удается найти соответствие IP/MAC, происходит следующее:
По сети передается широковещательный ARP-запрос. При этом каждый сетевой адаптер принимает широковещательные передачи. Каждый модуль ARP проверяет поле искомого IP-адреса в полученном ARP-пакете и, если адрес совпадает с его собственным IP-адресом, посылает ответ прямо по Ethernet- адресу отправителя запроса. Формат ответа приблизительно таков: "Этот IP-адрес принадлежит мне! Вот мой MAC!" Машина, сделавшая ARP-запрос, получает данный ответ. Драйвер этой машины проверяет поле типа в Ethernet-кадре и передает ARP-пакет модулю ARP. Модуль ARP анализирует ARP- пакет и добавляет запись в свою ARP-таблицу. Теперь с использованием обновленной ARP-таблицы выполняется преобразование IP-адреса в MAC-адрес, после чего Ethernet-кадр передается по сети. Если в сети нет машины с искомым IP-адресом, то ARP-ответа не будет и не будет записи в ARP- таблице. Протокол IP будет уничтожать IP-пакеты, направляемые по этому адресу. Следует отметить, что каждая машина имеет отдельную ARP-таблицу для каждого из своих сетевых интерфейсов.
RARP
RARP (англ. Reverse Address Resolution Protocol — обратный протокол преобразования адресов) — протокол третьего (сетевого) уровня модели OSI — выполняет обратное отображение адресов, то есть преобразует аппаратный (MAC) адрес в IP-адрес. Протокол применяется во время загрузки узла (например, компьютера), когда он посылает групповое сообщение-запрос со своим физическим адресом. Сервер принимает это сообщение и просматривает свои таблицы (либо перенаправляет запрос куда-либо еще) в поисках соответствующего физическому IP-адреса. После обнаружения найденный адрес отсылается обратно на запросивший его узел. Другие станции также могут "слышать" этот диалог и локально сохранить эту информацию в своих ARP- таблицах. RARP позволяет разделять IP-адреса между не часто используемыми хост-узлами. После использования каким-либо узлом IP-адреса он может быть освобожден и выдан другому узлу.
ICMP
ICMP — обязательный управляющий протокол в наборе протоколов TCP/IP, сообщающий об ошибках и обеспечивающий связи между узлами сети. Протокол ICMP используется программой Ping для обнаружения и устранения неполадок TCP/IP. Протокол ICMP — это протокол сообщения об ошибках, а не протокол коррекции ошибок. Конечный узел может предпринять некоторые действия для того, чтобы ошибка больше не возникала, но эти действия протоколом ICMP не регламентируются. По сети каждое ICMP-сообщение передается внутри IP-пакета. Пакеты IP с сообщениями ICMP маршрутизируются точно так же, как и любые другие пакеты, без приоритетов, поэтому они также могут теряться. Кроме того, в загруженной сети они могут вызывать дополнительную загрузку маршрутизаторов. Протокол ICMP описан в RFC 792 и является стандартом Интернета. Хотя формально ICMP использует IP (ICMP- пакеты инкапсулируются в IP-пакеты), он является неотъемлемой частью IP и обязателен при реализации стека TCP/IP. Текущая версия ICMP для IPv4 называется ICMPv4. В IPv6 существует аналогичный протокол ICMPv6. ICMP-сообщения посылаются с помощью стандартного IP-заголовка. Первый октет в поле данных датаграммы представляет собой поле типа ICMP сообщения. Значение этого поля определяет формат всех остальных данных в датаграмме.
Продолжение следует.
Boysout, Boyscout_zone@mail.ru
К протоколам сетевого уровня относятся: IP, IPv6, ICMP, IGMP, IPX, NWLink, DDP, IPSec, ARP, RARP, DHCP, BootP, SKIP и др.
IPv4
IP (англ. Internet Protocol — межсетевой протокол) — маршрутизируемый сетевой протокол — основа стека протоколов TCP/IP. Протокол IP используется для ненадежной доставки данных (разделяемых на так называемые пакеты) от одного узла сети к другому. Это означает, что на уровне данного протокола не дается никакой гарантии надежной доставки пакета до адресата. В частности, пакеты могут прийти не в том порядке, в котором были отправлены, оказаться поврежденными или не прибыть вовсе. Гарантии безошибочной доставки пакетов дают протоколы более высокого (транспортного) уровня — например, TCP, которые используют IP в качестве транспорта. Современный Интернет использует IP-протокол четвертой версии, также известный как IPv4. Согласно данной версии протокола каждому узлу сети присваивается IP-адрес длиной 4 октета или 4 байта. При этом узлы (подразумевается не только компьютер, но и принтер и другое сетевое оборудование, требующее IP-адреса) в подсетях объединяются общими начальными битами адреса. Количество этих бит, общее для данной подсети, называется маской подсети (ранее использовалось деление пространства адресов по классам — A, B, C; класс сети определялся диапазоном значений старшего октета и определял число адресуемых узлов в данной сети, сейчас используется бесклассовая адресация). Не секрет, что современный Интернет имеет существенные технические проблемы, напрямую связанные с использованием устаревшего IPv4:
1. Недостаточно большое адресное пространство, ограниченное 32-битным адресом. Как следствие — нехватка IP-адресов.
2. Низкая производительность и отсутствие механизма автоматической конфигурации адресов. Не секрет, что алгоритмы фрагментации пакетов протокола IPv4 несовершенны и не отвечают современным требованиям: все дело в том, что на разделение пакетов маршрутизаторами требуется неадекватно большое количество системных ресурсов. Получается, что процедура фрагментации пакетов, имея неоправданно большое время обработки, потребляет дополнительные ресурсы промежуточных маршрутизаторов. В настоящее время вводится в эксплуатацию шестая версия протокола — IPv6, которая, между прочим, уже лежит в основе проекта Интернет-2. Помимо того, что IPv6-версия отличается повышенной разрядностью адреса, что решает проблему нехватки IP-адресов, IPv6 отличается встроенной возможностью шифрования и некоторыми другими особенностями.
IPv6
Протокол был разработан в исследовательском центре Xerox PARC. На сегодняшний день протокол IPv6 применяется достаточно ограниченно. До некоторого момента существовало несколько альтернативных вариантов протокола IP нового поколения: IPv7 (разработчик — Ullman), TUBA (Gallon), ENCAPS (Hinden), SIP (Deering) и PIP (Fracis). В результате развития линии ENCAPS (с промежуточной версией IPAE) SIP и PIP слились в 1993 году в предложение SIPP, которое в июле 1994 года было принято в качестве основы для создания протокола IP нового поколения, получившего название IPv6, где "6" обозначает номер версии протокола. Документом, фиксирующим появление IPv6, является спецификация RFC 1752 The Recommendation for the IP Next Generation Protocol. Базовый набор протоколов IPv6 был принят IETF в сентябре 1995 г. и получил статус Proposed Standard. В спецификации RFC 1726 представлен следующий набор основных функций:
. независимость от среды передачи: работа среди множества сетей с различными средами передачи данных со скоростями до сотен гигабит в секунду;
. преемственность: обеспечение четкого плана перехода от существующей версии IPv4;
. расширяемость: возможность дальнейшего развития в соответствии с новыми потребностями;
. масштабируемость: идентификация и определение адресов как минимум 1012 конечных систем и 109 индивидуальных сетей;
. топологическая гибкость: архитектура маршрутизации и протокол должны работать в сетях с различной топологией;
. автоматическое конфигурирование хостов и маршрутизаторов; безопасность на сетевом уровне;
. мобильность: обеспечение работы с мобильными пользователями, сетями и межсетевыми системами;
Резюмируя спецификацию IPv6, можно сказать следующее:
. в протоколе введены механизмы аутентификации и шифрования на уровне IP-пакетов;
. улучшена поддержка иерархической адресации, агрегирования маршрутов и автоматического конфигурирования адресов;
. упрощен стандартный заголовок IP-пакета; введены метки потоков данных;
. изменено представление необязательных полей заголовка;
. расширено адресное пространство.
Размер IP-адреса увеличен до 128 бит (16 байт), а этого более чем достаточно, чтобы обеспечить объединение миллиарда сетей.
ARP
ARP (англ. Address Resolution Protocol — протокол разрешения адресов) представляет собой сетевой протокол, предназначенный для преобразования IP-адресов (адресов сетевого уровня) в MAC-адреса (адреса канального уровня) в сетях TCP/IP. Протокол определен в спецификации RFC 826. Для того, чтобы понять, как именно работает данный протокол, уместно привести выдержку из его оригинальной спецификации:
ARP-преобразование адресов выполняется путем поиска в таблице. Эта таблица, называемая также ARP-таблицей, хранится в памяти и содержит строки соответствия MAC/IP для каждого узла сети. Если требуется преобразовать IP-адрес в MAC-адрес, то ищется запись с соответствующим IP- адресом. Ниже приведен пример простейшей ARP-таблицы:
Таблица 1.
IP-адрес |Ethernet-адрес
192.168.0.1 |08:00:34:00:2F:C3
192.168.0.2 |08:00:5A:71:A7:72
192.168.0.3 |08:00:10:98:AC:24
Просмотреть данную таблицу можно путем команды "arp –a" в командной строке:
Рис. 1. Просмотр таблицы маршрутизации
ARP-таблица необходима по причине того, что IP- и MAC-адреса выбираются независимо друг от друга, и не существует какого-либо четкого алгоритма для преобразования одного в другой. IP-адрес выбирается менеджером сети с учетом местоположения машины. Если машину перемещают в другую часть сети, то ее IP-адрес должен быть изменен. Когда у машины заменяется плата сетевого адаптера, то меняется и ее Ethernet-адрес. В ходе обычной работы любая сетевая программа — к примеру, TELNET — отправляет некое прикладное сообщение, пользуясь транспортными услугами TCP. Модуль TCP посылает соответствующее транспортное сообщение через модуль IP посредством IP-пакета, который должен быть передан драйверу Ethernet. IP-адрес места назначения известен прикладной программе, модулю TCP и модулю IP. На его основе необходимо найти MAC-адрес места назначения. Для определения искомого Ethernet-адреса и используется ARP-таблица. Как же заполняется ARP-таблица? Заполняется она автоматически модулем ARP. В случае, если в существующей ARP-таблице не удается найти соответствие IP/MAC, происходит следующее:
По сети передается широковещательный ARP-запрос. При этом каждый сетевой адаптер принимает широковещательные передачи. Каждый модуль ARP проверяет поле искомого IP-адреса в полученном ARP-пакете и, если адрес совпадает с его собственным IP-адресом, посылает ответ прямо по Ethernet- адресу отправителя запроса. Формат ответа приблизительно таков: "Этот IP-адрес принадлежит мне! Вот мой MAC!" Машина, сделавшая ARP-запрос, получает данный ответ. Драйвер этой машины проверяет поле типа в Ethernet-кадре и передает ARP-пакет модулю ARP. Модуль ARP анализирует ARP- пакет и добавляет запись в свою ARP-таблицу. Теперь с использованием обновленной ARP-таблицы выполняется преобразование IP-адреса в MAC-адрес, после чего Ethernet-кадр передается по сети. Если в сети нет машины с искомым IP-адресом, то ARP-ответа не будет и не будет записи в ARP- таблице. Протокол IP будет уничтожать IP-пакеты, направляемые по этому адресу. Следует отметить, что каждая машина имеет отдельную ARP-таблицу для каждого из своих сетевых интерфейсов.
RARP
RARP (англ. Reverse Address Resolution Protocol — обратный протокол преобразования адресов) — протокол третьего (сетевого) уровня модели OSI — выполняет обратное отображение адресов, то есть преобразует аппаратный (MAC) адрес в IP-адрес. Протокол применяется во время загрузки узла (например, компьютера), когда он посылает групповое сообщение-запрос со своим физическим адресом. Сервер принимает это сообщение и просматривает свои таблицы (либо перенаправляет запрос куда-либо еще) в поисках соответствующего физическому IP-адреса. После обнаружения найденный адрес отсылается обратно на запросивший его узел. Другие станции также могут "слышать" этот диалог и локально сохранить эту информацию в своих ARP- таблицах. RARP позволяет разделять IP-адреса между не часто используемыми хост-узлами. После использования каким-либо узлом IP-адреса он может быть освобожден и выдан другому узлу.
ICMP
ICMP — обязательный управляющий протокол в наборе протоколов TCP/IP, сообщающий об ошибках и обеспечивающий связи между узлами сети. Протокол ICMP используется программой Ping для обнаружения и устранения неполадок TCP/IP. Протокол ICMP — это протокол сообщения об ошибках, а не протокол коррекции ошибок. Конечный узел может предпринять некоторые действия для того, чтобы ошибка больше не возникала, но эти действия протоколом ICMP не регламентируются. По сети каждое ICMP-сообщение передается внутри IP-пакета. Пакеты IP с сообщениями ICMP маршрутизируются точно так же, как и любые другие пакеты, без приоритетов, поэтому они также могут теряться. Кроме того, в загруженной сети они могут вызывать дополнительную загрузку маршрутизаторов. Протокол ICMP описан в RFC 792 и является стандартом Интернета. Хотя формально ICMP использует IP (ICMP- пакеты инкапсулируются в IP-пакеты), он является неотъемлемой частью IP и обязателен при реализации стека TCP/IP. Текущая версия ICMP для IPv4 называется ICMPv4. В IPv6 существует аналогичный протокол ICMPv6. ICMP-сообщения посылаются с помощью стандартного IP-заголовка. Первый октет в поле данных датаграммы представляет собой поле типа ICMP сообщения. Значение этого поля определяет формат всех остальных данных в датаграмме.
Продолжение следует.
Boysout, Boyscout_zone@mail.ru
Компьютерная газета. Статья была опубликована в номере 12 за 2007 год в рубрике сети