Протоколы Интернет |
281 |
Как это имело место в других протоколах, заголовок IP содержит поле выравнивания (padding), состоящее из нулей и выравнивающее 32битовую границу
Поля адресов IP-источника и IP-назначения используются маршрутизаторами и шлюзами в рамках сети для маршрутизации блока данных. Эти адреса остаются неизменными все время жизни блока данных и не преобразуются промежуточными сетями. Несмотря на то, что одной из основных функций межсетевого протокола IP является межсетевая и глобальная адресация, из соображений разумного объема книги целесообразно ограничиться только несколькими замечаниями о форматах адресов IP.
Для читателя, листающего эту книгу подряд главу за главой, уже стало привычным, что во всех протоколах адресация осуществляется на нескольких уровнях и определяет различные интерфейсы на всем пути передачи данных. Целесообразно начать рассмотрение с генерации адресов различных уровней, относящихся к IP. Первый уровень адресации определяет имя конкретного пользователя для приема данных. Например, при передаче кому-то сообщения по электронной почте нет необходимости задавать машинный адрес или индивидуальный IP-адрес. Все, что необходимо, — это адрес электронной почты, который может быть преобразован приемным сервером в имя пользователя и имя машины. Приложение уровня сети взаимодействия определит порт, который надо использовать для передачи, т.е. внутренний логический адрес. Транспортный уровень определит адрес для протокола, который должен использоваться при передаче данных, и предоставит его приложению. Сетевой уровень будет, в зависимости от адресов IP, маршрутизировать блоки данных через разные сети, чтобы они достигли назначения. Маршрутизаторы будут считывать IP адреса, чтобы определить, через какой физический порт следует передать блок данных. Адреса, которые мы уже упоминали, прозрачны для уровня IP и обрабатываются только резидентным программным обеспечением хост-компьтера.
Рассмотренные в главе 3 данного тома точки доступа к услугам SAP в данном случае используются протоколом местной сети для адресации в пределах уровня логического управления звеном (LLC). Он является не частью протокола IP, а частью протоколов низших уровней, например Ethernet или Token Ring. Объединенные адреса IP и номера портов создают уникальный адрес гнезда (socket), обслуживаемый и контролируемый операционной системой.
282 Глава 10______________________________________
Гнездо идентифицирует логический объект над уровнем LLC и является комбинацией исходящего IP адреса и номера порта. Операционная система обслуживает установление логического соединения по протоколу и обеспечивает так называемое гнездо. Концепция гнезда позволяет многим пользователям (идентифицированным адресами IP) адресоваться к одному и тому же приложению (идентифицированному адресом порта). Данная концепция была впервые реализована в версии UNIX Калифорнийского университета Беркли в 60-х годах.
Несмотря на эффективность указанных принципов, ситуация в отношении IP-адресов весьма серьезна уже сегодня. Согласно некоторым расчетам, последний доступный IP-адрес будет занят где-то между 2005 и 2010 годами. Однако кризис нехватки IP-адресов может проявиться еще раньше, если бум в отношении Интернет, наблюдаемый в Северной Америке и Западной Европе, охватит Индию, Китай и другие перенаселенные страны [102]. Проблема еще более усугубляется распространением кабельных модемов, рассмотренных в главе 2 данного тома. Ее решение возможно путем расширения текущей четвертой версии протокола IP (IPv4) с помощью межсетевого протокола следующего поколения (IPng), также известного как Интернет Protocol version 6 (IPv6).
Протокол IPv6 решает потенциальную проблему нехватки IPадресов посредством использования 128-разрядных адресов вместо 32разрядных адресов Ipv4, благодаря чему адресное пространство расширяется в 296 раз. Кроме того, в версии IPv6 предусмотрена возможность создания адресной иерархии со значительно большим количеством уровней. Добавление понятия зоны (scope) позволит при многопунктовой (multicast addressing) передаче отправлять дейтаграмму любому из группы адресов (anycast address). Некоторые поля заголовка IPv4, представленные на рис. 10.5, удалены или стали необязательными для использования. Введены также несколько новых функций, таких как поле метки идентификации пакетов, требующих специальной обработки; расширения заголовка для упрощения операций шифрования и идентификации, а также заголовок маршрутизации. 1Ру6-заголовок позволяет более эффективно использовать опции пересылки дейтаграмм по маршруту и предоставляет значительно больше возможностей для внесения изменений в опции и добавления новых параметров благодаря технологии «вложенных заголовков».
_____ Протоколы Интернет_____________________ |
283 |
Поле «версия» (version, 4 бита) имеет значение, равное 6. Поле «приоритет» (prior, 4 бита) позволяет отправителю назначить дейтаграмме определенный уровень приоритета по отношению к другим отправляемым блокам данных. Возможные 16 значений этого поля разделены на две категории: значения поля от 0 до 7 используются для дейтаграмм, которые могут не передаваться при перегруженной линии, а значения от 8 до 15 назначаются пакетам, которые должны быть отправлены при любом состоянии линии. К первой категории относятся трафик TCP, передача e- mail, FTP, NFS, TELNET, X-interactive. Во второй категории приоритет 8
назначается пакетам, которые отправляются в последнюю очередь при перегруженной линии, а приоритет 15 — в первую.
Рис. 10.6. Заголовок IPv6
Поле «метка потока» (now label, 24 бита) используется отправителем для того, чтобы помечать пакеты, которые требуют специальной обработки сетевыми модулями IPv6. Хост-компьютеры или шлюзы, не поддерживающие этой опции, должны установить метку в 0 и игнорировать ее при обработке пакета. Поток представляет собой последовательность пакетов, отправляемых определенному получателю (или группе получателей), на пути к которым пакеты должны пройти специальную обработку. Таких потоков между одними и теми же хосткомпьтерами может быть несколько, и значение этого поля позволяет идентифицировать определенный поток. Если значение этого поля установлено в 0, то считается, что дейтаграмма не принадлежит ни к какому потоку. Меткой потока служит случайно выбранное число в диапазоне 1 до FFFFFF. Все пакеты, принадлежащие одному потоку, должны отправляться по одному и тому же адресу назначения и с одним и тем же приоритетом. Кроме того, если одна из дейтаграмм потока содержит в своем заголовке какой-либо вложенный заголовок или опцию, все остальные пакеты потока тоже должны их содержать. Если шлюз, обрабатывающий пакет, заметил отклонение состава дейтаграммы от других дейтаграмм
284 |
Глава 10 |
___ |
потока, он генерирует ошибку потока и уведомляет об этом отправителя. Информация о потоке хранится в шлюзе в течение 6 с. Если за это время через шлюз не пройдет ни одна дейтаграмма потока, идентификатор данного потока освобождается. С другой стороны, хосткомпьютер отправителя в случае перезапуска узла не сможет ранее чем
через 6 с организовать новый поток.
Поле общей длины IPv4 было переименовано в протоколе IPv6 в поле «длина данных» («payload length»), т.к. оно содержит длину данных после заголовка, в то время как поле общей длины (total length) учитывает и длину заголовка. Поле «длина данных» (pay-load length, 16 бит) определяет количество байтов данных пакета, которые следуют за заголовком. Значение этого поля равное 0 означает, что размер дейтаграммы более 65535 и хранится в поле jumbo payload (сверх-длина).
Поле «следующий заголовок» (next header, 8 битов) содержит информацию типа заголовка, который следует за заголовком IPv6. Это поле представляет собой переименованное и измененное поле «протокол» (protocol) из IPv4 и позволяет вставлять дополнительные заголовки между данными IP и TCP или UDP. Оно также предоставляет информацию о наличии дополнительных заголовков, следующих за основным, и исключает необходимость в поле IHL (Internet header length).
Поле «ограничение пересылок» (hop limit, 8 битов) соответствует полю «времени жизни» (time to live) в IPv4. Величина этого поля уменьшается на 1 при прохождении дейтаграммой шлюза или хосткомпьютера, а если величина этого поля равна 0, дейтаграмма уничтожается.
10.5. ПРОТОКОЛЫ НИЖНЕГО УРОВНЯ
Как уже подчеркивалось выше, «универсальность» семейства TCP/IP заканчивается на сетевом уровне, а IP-адрес представляет собой логическое выражение, никак не связанное с конкретной физической реализацией сети, по которой передается дейтаграмма. Для рассмотрения работы IP с протоколами более низкого уровня — уровня звена данных
— необходимо обратиться к конкретной реализации той или иной сети. Семейство протоколов TCP/IP работает в различных сетевых
средах и, в частности, в Ethernet. Сеть Ethernet была разработана Исследовательским центром корпорации Xerox в Пало Альто в
______Протоколы Интернет_____________________________285
1970-м году и заполнила нишу между глобальными сетями, низкоскоростными сетями и специализированными сетями компьютерных центров, которые работали с высокой скоростью, но на очень ограниченном расстоянии. Сегодня Ethernet является наиболее распространенным протоколом локальных вычислительных сетей.
Другие возможные сетевые среды для работы TCP/IP - это локальные сети Token Ring, глобальные сети WAN, такие как сети передачи данных общего пользования типа Х.25. Сравнительно небольшое количество компьютеров может подключаться к каналам связи с непосредственным соединением «точка—точка», т.е. к последовательным каналам связи, например, телефонным линиям. Для работы по всем этим линиям определены стандарты инкапсуляции IPпротокола. Одним из таких стандартов работы по каналам последовательного доступа — Serial Line — является протокол SLIP (Serial Line Internet Protocol).
Протокол последовательной межсетевой связи (SLIP) обычно используется при связи по телефонной линии через модем. Он является протоколом, который поддерживает TCP/IP через линии последовательной связи, где маршрутизаторы и межсетевые интерфейсы не используются. SLIP не обеспечивает ни адресации, ни идентификации пакета, ни механизмов проверки ошибок. Благодаря своей простоте он стал быстро распространяться.
Протокол SLIP пакетирует информацию протокола IP или информацию, поступающую из уровней выше IP, и передает ее по линии последовательной связи, для чего используются два специальных символа: END=192 и ESC=219. Отправку пакета SLIP начинает с передачи двух END. После этого начинается передача потока данных. Если байт данных совпадает с END, вместо него отправляются два ESC и 220. Если в потоке данных встречается байт ESC, вместо него передаются два ESC и 221. После передачи последнего байта потока передается END.
Протокол «точка-точка» РРР (Point-to-Point Protocol) является новой версией протокола SLIP, обеспечивающей более быстродействующую и эффективную связь. Протокол РРР использует формат кадра HDLC с информационным полем, содержащим заголовок протокола IP. При этом РРР использует другой протокол управления линией связи LCP для установления соединения.