- •Протоколы канального уровня
- •Стандарты Ethernet
- •Спецификации физического уровня
- •Спецификации физического уровня Ethernet
- •Ethernet на коаксиальном кабеле
- •Ethernet на оптоволоконном кабеле
- •Основные принципы прокладки кабеля
- •Кадр Ethernet
- •Адресация Ethernet
- •Поле Ethertype/Length
- •Типичные шестнадцатеричные значения Ethertype
- •Механизм csma/cd
- •Краткое содержание занятия
- •Занятие 2. Token Ring
- •Спецификации физического уровня
- •Передача маркера
- •Кадр Token Ring
- •Краткое содержание занятия
- •Занятие 3. Fddi
- •Физический уровень fddi
- •Кадры fddi
- •Краткое содержание занятия
- •Занятие 4. Беспроводные сети
- •Физический уровень ieee 802.11
- •Управление доступом к среде в стандарте ieee 802.11
- •Краткое содержание занятия
- •Протоколы сетевого уровня
- •Протокол ip
- •Ip помещает данные транспортного уровня в дейтаграмму
- •Стандарт ip
- •Функции ip
- •Инкапсуляция
- •Поля дейтаграммы выполняют следующие функции.
- •Адресация
- •Маршрутизация
- •Фрагментация
- •Идентификация протокола
- •Параметры ip
- •Краткое содержание занятия
- •Занятие 2. Протокол ipx
- •Заголовок ipx
- •Адресация
- •Протокол NetBeui
- •Имена NetBios
- •Кадр NetBeui
- •Протокол nmp
- •Протокол smp
- •Протокол udp
- •Протокол dmp
- •Краткое содержание занятия
- •Занятие 4. AppleTalk
- •Протокол tcp
- •Заголовок tcp
- •Краткое содержание занятия
- •Порты и сокеты
- •Управляющие биты
- •Установка соединения
- •Передача данных
- •Подтверждение доставки
- •Протокол spx
- •Протокол ncp
Фрагментация
Маршрутизатор способен соединять сети с различными сетевыми средами и протоколами канального уровня, но, чтобы направить пакеты из одной сети в другую, ему часто приходится переупаковывать дейтаграмму в другой кадр канального уровня. Иногда это выливается в удаление старого кадра и создание нового. В других случаях протоколы канального уровня различаются настолько сильно, что процесс переупаковки усложняется, как, например, при соединении сети Token Ring с сетью Ethernet. Дело в том, что в сети Token Ring дейтаграмма может иметь длину до 4500 байтов, а в сети Ethernet — не более 1500 байтов.
Для решения этой проблемы маршрутизатор разделяет дейтаграмму, пришедшую из сети Token Ring, на несколько фрагментов (рис. 6.4). Каждый из них обладает собственным заголовком IP и пересылается в отдельном кадре канального уровня. Размер фрагмента определяется размером максимальной единицы передачи (maximum transfer unit, MTU) в целевой сети. Попадая в сети с меньшим значением MTU, фрагменты могут дробиться дальше. Восстановление исходной дейтаграммы из фрагментов производится только в самом конце их путешествия, в целевой системе.
Маршрутизатор
Рис. 6.4. Для передачи по сети с меньшим значением MTU
маршрутизатор разделяет дейтаграмму на фрагменты
Разбивая дейтаграмму на фрагменты, протокол IP к каждому из них присоединяет IP-заголовок. Поле Identification в заголовке каждого фрагмента содержит то же значение, что и аналогичное поле в заголовке исходной дейтаграммы. Это позволяет целевой системе найти фрагменты, принадлежащие одной и той же дейтаграмме. Кроме того, маршрутизатор записывает в поля Total Length длины фрагментов и изменяет значение бита More Fragments в поле Flags с 0 на 1 во всех фрагментах, кроме последнего. Значение 1 этого бита означает, что существуют и другие фрагменты, относящиеся к той же дейтаграмме. По биту More Fragments целевая система определяет, все ли фрагменты получены и можно ли начинать сборку дейтаграммы. Значение поля Fragment Offset определяет место фрагмента в дейтаграмме. У первого фрагмента значение этого поля равно 0, у второго фрагмента оно равно размеру первого фрагмента в байтах. Для третьего фрагмента величина смещения равна суммарному размеру первых двух фрагментов и т. д. Целевая система использует эти величины, чтобы скомпоновать фрагменты в правильном порядке. Установка в единицу бита Don't Fragment в поле Flags запрещает маршрутизатору фрагментировать дейтаграмму. Если без фрагментации ее передать нельзя, маршрутизатор проигнорирует дейтаграмму, послав системе-источнику сообщение ICMP об ошибке.
Идентификация протокола
Чтобы корректно обработать принятую дейтаграмму, целевая система должна знать, каким протоколом сгенерирована информация в поле данных. Для этого в поле Protocol заголовка IP записывается один из кодов протоколов TCP/IP, определенных в документе RFC 1700. Наиболее часто используются следующие коды:
0 IP
1 ICMP
3 Gateway-to-Gateway Protocol (GGP)
6 TCP
8 Exterior Gateway Protocol (EGP)
17 UDP
Совет На каждой TCP/IP-системе есть текстовый файл PROTOCOL, содержащий список кодов протоколов, которые, как ожидается, будут распознаваться или использоваться этой системой. Если Вам нужно узнать код протокола, попробуйте сначала найти его в этом файле, и только потом начинайте поиски в RFC 1700.
Наиболее ожидаемы в этом списке протоколы транспортного уровня TCP и U DP, генерирующие большую часть трафика в TCP/I Р-се-тях. Однако в дейтаграммах IP передается информация и других протоколов, в том числе сообщения ICPM об ошибках и других проис-шествиях в сети, а также сообщения маршрутизирующих протоколов, подобных GGP и EGP, которыми TCP/IР-системы пользуются для автоматического обновления таблиц маршрутизации.