Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 144
Текст из файла (страница 144)
Подобная проверка потребует нескольких тактов процессора, что может оказаться нежелательным в некоторых ситуациях, поэтому многие реализации, вероятно, попытшотся избежать этих накладных расходов и будут отличать пакеты 1Рч4 от пакетов 1Рч6 с помощью некоторого поля в заголовке уровня передачи данных. При этом пакеты будут передаваться напрямую нужному сетевому уровню. Однако знакомство уровня передачи данных с типами пакетов сетевого уровня полностью нарушает принцип разделения протоколов на уровни, при котором каждый уровень не должен знать назначения битов из пакетов более высокого уровня.
Дискуссия между лагерями, руководствующимися принципами «Делай правильное и «Делай быстроь, несомненно, будет долгой и энергичной. Поле Класс трафика используется для того, чтобы различать пакеты с разными требованиями к доставке в реальном времени. Такое поле присутствовала в стан- дарте 1Р с самого начала, однако оно реально обрабатывалось маршрутизаторами лишь в единичных случаях. Сейчас проводятся эксперименты, направленные на то, чтобы определить, как лучше всего использовать это поле для передачи данных в реальном времени.
Поле Метка потока также пока является экспериментальным, но будет применяться для установки между отправителем и получателем псевдосоединения с определенными свойствами и требованиями. Например, поток пакетов между двумя процессами на разных хостах может обладать строгими требованиями к задержкам, что потребует резервирования пропускной способности. Поток устанавливается заранее и получает идентификатор. Когда прибывает пакет с отличным от нуля содержимым поля Метка потока, все маршрутизаторы смотрят в свои таблицы, чтобы определить, какого рода особая обработка ему требуется.
Сетввой уровень в Интернете 635 Таким образом, новый протокол пытается соединить достоинства подсетей различных типов: гибкость дейтаграмм и гарантии виртуальных каналов. 32 бита Рис. 8.88. Фиксированный заголовок )Рчб (обязательные поля) Каждый поток описывается адресом источника, адресом назначения и номером потока, так что для кахсдой пары 1Р-адресов можно создать много активных потоков. Два потока с одинаковыми номерами, но различными адресами отправителя или получателя считаются разными потоками и различаются маршрутизаторами по адресам.
Ожидается, что номера каналов будут выбираться случайным образом, а не назначаться подряд начиная с 1, что облегчит маршрутизаторам их распознавание. Поле Алина полезной нагрузки сообщает, сколько байт следует за 40-байтовым заголовком, показанным на рис. 5.58. В заголовке 1Рч4 аналогичное поле называлось Полная длина и определяло весь размер пакета, В новом протоколе 40 байт заголовка учитываются отдельно. Поле Следуюи)ий заголовок раскрывает секрет возможности использования упрощенного заголовка. Дело в том, что после обычного 40-байтового заголовка могут идти дополнительные (необязательные) расширенные заголовки. Это поле сообщает, какой из шести дополнительных заголовков (на текущий момент) слелует за основным.
В последнем 1Р-заголовке поле Следуюигий заголовок сообщает, какой обрабатывающей программе протокола транспортного уровня (то есть ТСР или (Л)Р) передать пакет. Поле Максимальное число транзитнык участков не дает пакетам вечно блуждать по сети. Оно имеет практически то же назначение, что и поле Время жизни в автолавке протокола 1рч4. Это поле уменьшается на единицу на каждом тран- 536 Глава 6. Сетевой уровень зитном участке.
Теоретически, в протоколе 1Рч4 это поле должно было содержать секунды времени жизни пакета, однако ни один маршрутизатор не использовал его подобным образом, поэтому имя поля было приведено в соответствие способу его применения. Следом идут поля Адрес отправителя и Адрес получателя. В исходном предложении Диринга (протоколе ЯРР) использовались 8-байтовые адреса, но при рассмотрении проекта было решено, что 8-байтовых адресов хватит лишь на несколько десятилетий, в то время как 16-байтовых адресов должно хватить навечно.
Другие возражали, что 16 байтов для адресов слишком много, тогда как третьи настаивали на 20-байтных адресах для совместимости с дейтаграммным протоколом 081, Еще одна фракция ратовала за адреса переменной длины. После продолжительных споров было решено, что наилучшим компромиссным решением являются 16-байтовые адреса фиксированной длины. Для написания 16-байтовых адресов была выработана новая нотация.
Адреса в [Рчб записываются в виде восьми групп по четыре шестнадцатеричных цифры, разделенных двоеточиями, например: 8000:0000:0000:0000:0123:4567:89АВ;С1)ЕР Поскольку многие адреса будут содержать большое количество нулей, были разрешены три метода сокращенной записи адресов. Во-первых, могут быть опущены ведущие нули в каждой группе, например, 0123 можно записывать как 123. Во-вторых, одна или более групп, полностью состоящих из нулей, могут заменяться парой двоеточий. Таким образом, приведенный выше адрес принимает вид 8000с123:4567:89АВ:СПЕР Наконец, адреса 1Рчй могут записываться как пара двоеточий, после которой пишется адрес в старом десятичном формате, например: з192,31.20А6 Возможно, нет необходимости говорить об этом столь подробно, но количество всех возможных 16-байтовых адресов очень велико — 2п", что приблизительно равно 3 10м. Если покрыть компьютерами всю планету, включая сушу и океаны, то протокол 1Рчб позволит иметь около 7.
10" 1Р-адресов на квадрат. ный метр. Кто изучал химию, может заметить, что это число болыце числа Авогадро. Хотя в планы разработчиков не входило предоставление собственного 1Р- адреса каждой молекуле на поверхности Земли, они оказались не так уж далеко от обеспечения такой услуги. На практике не все адресное пространство используется эффективно, как, например, не используются абсолютно все комбинации телефонных номеров. Например, телефонные номера Манхэттена (код 212) почти полностью заняты, тогда как в штате Вайоминг (код 307) они почти не используются. В ЙРС 3194 Дьюранд (1)агапа) и Хуйтема (Нц(теша) приводят свои вычисления.
Утверждается, что если ориентироваться на использование телефонных номеров, то даже при самом пессимистическом сценарии все равно получается более 1000 1Р-адресов на квадратный метр поверхности Земли (включая как сушу, так и море). Сетевой уровень в Интернете 537 Дополнительные заголовки В опущенных полях заголовка иногда возникает необходимость, поэтому в протоколе 1Рчб была представлена новая концепция (необязательного) дополнительного заголовка.
На сегодня определены шесть типов дополнительных заголовков, которые перечислены в табл. 5.9. Все они являются необязательными, но в случае использования более чем одного дополнительного заголовка они должны располагаться сразу за фиксированным заголовком, желательно в указанном порядке. Таблица 6.9. Дополнительные заголовки! Рчб Дополнительный заголовок Описание Параметры маршрутизации Параметры получателя Маршрутизация разнообразная информация для маршрутизаторов дополнительная информация для получателя Частичный список транзитных маршрутизаторов на пути пакета продозжениео При любом более вероятном сценарии обеспечиваются триллионы адресов на квадратный метр. Таким образом, маловероятно, что в обозримом будущем обнаружится нехватка адресов.
Также следует отметить, что на сегодня только для 28 Ж адресного пространства придуманы применения. Остальные 72 Ж зарезервированы на будущее. Полезно сравнить заголовок 1Рч4 (рис. 5.47) с заголовком 1Рчб (рис. 5.58), чтобы увидеть, что осталось от старого стандарта. Поле !Ш исчезло, так как заголовок 1Рчб имеет фиксированную длину. Поле Протокол также было убрано, поскольку поле Следугои1ий заголовок сообщает, что следует за последним 1Р-заголовком (то есть 1)1)Р- или ТСР-сегмент). Были удалены все поля, относящиеся к фрагментации, так как в протоколе 1Рчб используется другой подход к фрагментации, Во-первых, все хосты, поддерживающие протокол 1Рчб, должны динамически определять нужный размер дейтаграммы.
Это правило делает фрагментацию маловероятной. Во-вторых, минимальный размер пакета был увеличен с 576 до 1280, чтобы можно было передавать 1024 байт данных, 1тлюс множество заголовков. Кроме того, когда хост посылает слишком большой 1рчб-пакет вместо того, чтобы его фрагментировать, то маршрутизатор, не способный переслать пакет дальше, посылает обратно сообщение об ошибке. Получив это сообщение, хост должен прекратить всю передачу этому адресату.
Гораздо правильнее будет научить все хосты посылать пакеты требуемого размера, нежели учить маршрутизаторы фрагментировать их на лету. Наконец, поле Контрольная сульна было удалено, так как ее подсчет значительно снижает производительность. Поскольку в настоящее время все шире используются надежные линии связи, а на уровне передачи данных и на транспортном уровне подсчитываются свои контрольные суммы, наличие еще одной контрольной суммы не стоило бы тех затрат производительности, которых требовал бы ее подсчет. В результате перечисленных удалений получился простой, быстрый и в то же время гибкий протокол сетевого уровня с огромным адресным пространством.
63В Глава 6. Сетевой Уровень Таблица 6.9 (продалзкение) Описание Дополнительный заголовок Управление фрагмвнтамн дейтаграмм Проверка подлинности отправителя Информацив о зашифрованном содврхгимом фрагментация Аутентификация Шифрованные данные У некоторых заголовков формат фиксированный, другие содержат переменное количество полей переменной длины. Для них каждый пункт кодируется в виде тройки (Тип, Длина, Значение). Тил представляет собой однобайтовое поле, содержащее код параметра.