Пакеты и инкапсуляция
Категория: Сети TCP/IP | Автор: admin | 8-02-2010, 02:04 | Просмотров: 6397

UNIX поддерживает работу в целом ряде физических сетей, включая Ethernet (в том числе беспроводная связь), FDDI, Token Ring, ATM и системы с последовательными соединениями. Управление аппаратными устройствами осуществляется на канальном уровне архитектуры TCP/IP, а протоколы более высоких уровней не знают о том, как именно используются аппаратные средства.

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

Имя базового блока передачи данных зависит от уровня протокола. На канальном уровне это кадр или фрейм, в протоколе IP — пакет, а в протоколе TCP — сегмент. Мы будем придерживаться универсального термина "пакет".

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

Например, дейтаграмма, передаваемая по сети Ethernet, упакована в трех различных "конвертах". В среде Ethernet она "вкладывается" в простой физический кадр, заголовок которого содержит сведения об аппаратных адресах отправителя и ближайшего получателя, длине кадра и его контрольной сумме (CRC). Полезным содержимым Ethernet-кадра является IP-пакет. Полезное содержимое IP-пакета — UDP-пакет, и, наконец, полезное содержимое UDP-пакета состоит собственно из передаваемых данных. Компоненты такого кадра изображены на рис. Б.

Рис. Б. Типичный сетевой пакет.

 Пакеты и инкапсуляция

Под словом "байт" мы подразумеваем 8-битовую цепочку данных. В былые времена этот термин имел более широкое значение, поэтому иногда в документах RFC можно встретить термин "октет".

 

Канальный уровень

 

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

 

Стандарты формирования кадров Ethernet

 

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

В десятимегабитных сетях Ethernet существует два различных стандарта кадровой разбивки: DIX Ethernet II и IEEE 802.2 LLC SNAP. На серверах UNIX и в маршрутизаторах Cisco применяется первый стандарт, в сетях IPX и системах Novell — второй. Стандарты различаются несколькими полями в заголовке кадра, но они не конфликтуют друг с другом, поэтому принимающее устройство может однозначно определить формат каждого пакета и соответствующим образом декодировать заголовок.

Выбор стандарта кадровой разбивки диктуется имеющейся сетевой платой и ее драйвером. На персональных компьютерах, работающих под управлением Windows, выбор можно делать самостоятельно, а в UNIX — обычно нет. С точки зрения UNIX оба стандарта прекрасно взаимодействуют. А вот в среде Windows компьютеры, расположенные в одной сети, но придерживающиеся различных стандартов, не могут общаться друг с другом. Системному администратору обычно не приходится заниматься вопросами формирования кадров, если только не выполняется низкоуровневая отладка в смешанной сети.

 

Стандарты кабелей Ethernet

 

Выбор кабелей в десятимегабитной сети Ethernet довольно прост, но ситуация усложняется, когда речь заходит о стомегабитных сетях. Раньше существовали три различных стандарта для витой пары (ТХ, в котором использовались две пары кабелей категории 5, а также Т4 и VG, в каждом из которых требовались четыре пары категории 3) и еще один для оптоволокна (FX, в котором используется многорежимный волоконно-оптический кабель). Компания Hewlett-Packard отстаивала стандарт VG и первой выпустила для него продукты. Другие производители проигнорировали его и остановили свой выбор на стандарте ТХ, который в настоящее время используется повсеместно.

 

Беспроводные сети

 

В спецификации IEEE 802.11 делается попытка описать стандарты кадровой разбивки и передачи сигналов для беспроводных сетей. К сожалению, спецификация является весьма нечеткой и включает ряд параметров, которые не были полностью определены. При взаимодействии разнородных сетей приходилось учитывать такие аспекты, как трансляция и инкапсуляция.

В случае трансляции пакет преобразуется из одной формы в другую, а при инкапсуляции он упаковывается в структуру требуемого формата. В среде Windows применяется инкапсуляция, а в UNIX — трансляция, поэтому базовые беспроводные станции должны конфигурироваться явным образом. Когда развертывается беспроводная сеть, нужно убедиться, что базовая станция и связанные с ней рабочие станции функционируют в одинаковом режиме.

Пользователи портативных компьютеров сталкиваются с другой проблемой, вызванной неоднозначностью спецификации 802.11. Беспроводные платы PCMCIA имеют энергосберегающий режим, несовместимый с некоторыми базовыми станциями. По умолчанию он, естественно, включен. Если окажется, что пользовательские портативные компьютеры не работают в беспроводной сети, попросите пользователей отключить энергосберегающий режим. Самая лучшая конфигурация домашней беспроводной сети — с базовой станцией Apple AirPort и сетевыми платами Lucent. Посредством портативного компьютера в такую сеть можно входить отовсюду: в постели в бассейне и даже с улицы.

 

Максимальный размер передаваемого блока

 

Размер пакетов ограничивается как характеристиками аппаратных средств, так и требованиями протоколов. Например, объем полезного содержимого Ethernet-пакета не может превышать 1500 байтов. Предельны; размер пакета устанавливается на канальном уровне и называется максимальной единицей передачи (Maximum Transfer Unit, MTU). Типичные значения параметра MTU приведены в табл. 13.2.

Для ATM параметр MTU не вполне применим, так как сеть ATM расположена где-то на границе между физическим и канальным уровнями. Ячейка ATM обычно имеет размер 53 байта с 48-байтовым блоком данных, но в спецификации AAL/5 пакет может иметь размер до 216 байтов. Как правило, в обычном режиме параметр MTU равен 9180 байтов, а в режиме LANE (Local Area Network Emulation — эмуляция локальной сети) — 1500 байтов.

 

Таблица 13.2. Максимальные размеры передаваемых блоков в сетях различных типов

Тип сетевого соединения

Максимальный размер блока

Ethernet

1500 байтов (1492 в спецификации 802.2)

FDDI

4500 байтов (4352 для IP/FDDI)

РРР

настраиваемый, обычно 512 или 576 байтов

ATM

53 байта

Спутниковые каналы (Tl, ТЗ)

настраиваемый, обычно 1500 или 4500 байтов

 

В TCP/IP протокол IP отвечает за разбивку пакета на фрагменты, чтобы их размер соответствовал требованиям конкретного сетевого соединения. Если пакет проходит через несколько сетей, в одной из них параметр MTU может оказаться меньшим, чем в исходной сети. В этом случае маршрутизатор подвергнет пакет дальнейшей фрагментации. Подобный процесс нежелателен, когда маршрутизатор сильно загружен. Протокол TCP способен определить наименьшее значение MTU вдоль всего пути следования пакета и с самого начала разбить пакет в соответствии с этим значением. Протокол UDP не столь "любезен" и перекладывает всю ответственность на протокол IP. В стандарте IPv6 промежуточные маршрутизаторы больше не могут выполнять фрагментацию пакетов: режим предварительного определения максимального размера блока является обязательным.

Иногда проблема фрагментации оказывается достаточно коварной. Например, в виртуальной частной сети с туннельной архитектурой необходимо проверять размер пакетов, проходящий через туннель. Обычно их начальный размер — 1500 байтов, но когда к ним добавляется туннельный заголовок, размер пакетов становится равным примерно 1540 байтов, и уже требуется фрагментация. Уменьшение размера блока позволяет избежать фрагментации и повысить производительность сети. Обратитесь к man-странице по команде ifconfig, чтобы узнать, как настроить параметр MTU сетевой платы.

 

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

 

Подобно письмам и сообщениям электронной почты, сетевые пакеты могут достичь пункта назначения только при наличии правильного адреса. В TCP/IP используется сочетание нескольких схем адресации:

  • МАС-адреса сетевого оборудования;
  • IP-адреса программного обеспечения;
  • текстовые имена компьютеров.

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

Самый нижний уровень адресации задается сетевыми аппаратными средствами. Например, Ethernet-устройствам при изготовлении присваиваются уникальные шестибайтовые аппаратные адреса. Платы сетей Token Ring имеют аналогичные шестибайтовые адреса. В некоторых сетях с двухточечным соединением (например, РРР; см. параграф 13.8) аппаратные адреса вообще не нужны: адрес пункта назначения указывается непосредственно при установлении соединения.

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

http://www.iana.org/assignments/ethernet-numbers

В свое время эта информация регулярно публиковалась в виде документов RFC, но затем такая практика прекратилась. Последним документом в серии Assigned Numbers (назначенные номера) был документ RFC1700 (1994 г.) Официальным хранилищем всех специальных имен, действующих в сети Internet, является Web-страничка www.iana.org/numbers.htm.

Аппаратные адреса Ethernet должны быть постоянными и неизменным. К сожалению, некоторые сетевые платы допускают программное задание аппаратных адресов. Особенно сложно в этом отношении с платами беспроводной связи. Избегайте назначения адресов из диапазона группового вещания и других специальных адресов. В Solaris и Red Hat можно менять аппаратный адрес любого сетевого интерфейса, но лучше этого не делать.

На следующем, более высоком уровне используется Internet-адресация (которую чаще называют IP-адресацией). Каждому сетевому интерфейсу присваивается четырехбайтовый IP-адрес. Эти адреса глобально уникальны и аппаратно независимы. Мы уделим им достаточно много внимания i параграфе 13.4.

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

 

 

Поскольку IP-адреса представляют собой длинные, на первый взгляд случайные, числа, то запомнить их трудно. UNIX-системы позволяют связывать текстовые имена с IP-адресами, чтобы вместо telnet 128.138.242.1 пользователь мог ввести telnet anchor.

Существует несколько способов осуществления подобной привязки: с помощью статического файла (/etc/hosts), баз данных NIS и NIS+ и, наконец. DNS — глобальной системы доменных имен. Помните, что имя компьютера — это просто сокращенный способ записи IP-адреса; низкоуровневое сетевое программное обеспечение его не понимает.

 

Порты

 

IP-адреса идентифицируют компьютеры, точнее, сетевые интерфейсы компьютера; они недостаточно конкретны для адресации отдельных процессов и сервисов. Протоколы TCP и UDP расширяют концепцию IP-адресов, вводя понятие порта. Порт в данном случае представляет собой двухбайтовое число, добавляемое к IP-адресу и указывающее конкретный канал взаимодействия. Все стандартные сервисы UNIX, в частности электронная почта, FTP, сервер удаленного доступа, связываются с "известными" портами, которые определены в файле /etc/services. Для того чтобы предотвратить попытки сторонних процессов замаскироваться под стандартные сервисы, UNIX-системы ограничивают доступ к портам с номерами до 1024 только для пользователя root.

 

Типы адресов

 

В протоколе IP и на канальном уровне поддерживается несколько типов адресов:

  • направленный — адрес, который обозначает отдельный компьютер (в действительности сетевой интерфейс);
  • групповой — адрес, идентифицирующий группу узлов;
  • широковещательный — адрес, обозначающий все узлы локальной сети.

Режим группового вещания используется в таких приложениях, как, например, видеоконференции, где одна и та же последовательность пакетов посылается всем участникам конференции. Протокол IGMP (Internet Group Management Protocol — протокол управления группами Internet) отвечает за управление группами узлов, идентифицируемыми как один групповой адресат. Режим группового вещания все еще является экспериментальным. Тем не менее, он находит все более широкое применение в таких областях, как передача голосовых данных по IP-сетям и передача видео по запросу.

На канальном уровне младший бит старшего байта группового адреса (первый байт, передаваемый по кабелю) установлен равным 1, т.е. любой адрес с нечетным первым байтом рассматривается как групповой. Такие адреса используются различными аппаратными устройствами в протоколах начальной конфигурации. Адрес группового вещания в Internet — 01:00:5Е.

Широковещательные адреса канального уровня, если рассматривать их в двоичном виде, состоят из одних единиц.

В протоколе IP групповые адреса начинаются с байта, значение которого находится в диапазоне 224—239. В широковещательных адресах последняя часть адреса в двоичном виде состоит из одних единиц.



 (голосов: 0)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page