Э. Таненбаум, Д. Уэзеролл - Компьютерные сети (1114668), страница 78
Текст из файла (страница 78)
(Simpson, 1994a, 1994b). PPP применяется в каналах SONET и ADSL,но по-разному.3.5.1. Передача пакетов по протоколу SONETSONET, с которым мы познакомились в главе 2, — это протокол физического уровня,который наиболее часто используется в оптоволоконных каналах, составляющих магистраль различных коммуникационных сетей, включая телефонную. Этот протоколобеспечивает хорошую, строго определенную скорость передачи данных (например,2,4 Гбит/с в канале OC-48). Поток бит организован в виде пакетов фиксированногоразмера, которые посылаются каждые 125 мкс, независимо от того, содержат ли онипользовательские данные.Для передачи пакетов по таким каналам необходим некоторый механизм формирования кадров, способный отличать иногда возникающие пакеты от непрерывногопотока бит, в котором они передаются.
Для обеспечения такого механизма на IPмаршрутизаторах работает протокол PPP, как показано на рис. 3.16.270 Глава 3. Канальный уровеньРис. 3.16. Пакеты передаются по протоколу SONET: а — стек протоколов;б — взаимоотношение между кадрамиPPP — это улучшенный вариант более простого протокола под названием SLIP(Serial Line Internet Protocol, интернет-протокол для последовательной линии),выполняющий обнаружение ошибок, поддерживающий несколько протоколов, разрешающий аутентификацию и имеющий ряд других свойств. Благодаря широкомунабору настроек PPP обеспечивает три основных набора методов.1. Метод формирования кадров, однозначно обозначающий конец одного кадра и начало следующего.
Формат кадров также обеспечивает обнаружение ошибок.2. Протокол управления каналом, позволяющий устанавливать каналы связи, тестировать их, договариваться о параметрах их использования и снова отключатьих, когда они не нужны. Этот протокол называется LCP (Link Control Protocol).3.
Способ договориться о параметрах сетевого уровня, который не зависит от используемого протокола сетевого уровня. Для каждого поддерживаемого сетевогоуровня этот метод должен иметь свой сетевой протокол управления (NCP, NetworkControl Protocol).Чтобы не изобретать велосипед, был выбран формат кадра PPP, близкий к форматукадра HDLC (High-level Data Link Control, высокоуровневый протокол управленияканалом) — некогда популярного представителя раннего семейства протоколов.В отличие от бит-ориентированного протокола HDLC, PPP является байториентированным.
В частности, в PPP применяется символьное заполнение, поэтомувсе кадры состоят из целого числа байт. С помощью протокола PPP���������������������������������невозможно послать кадр, состоящий из 30,25 байт, как это можно было сделать в протоколе HDLC.Однако практическое значение имеет второе очень важное отличие. ������������HDLC��������обеспечивает надежную передачу за счет метода скользящего окна, подтверждений и таймаутов — как мы видели выше.
PPP также обеспечивает надежную передачу в шумныхсредах, таких как беспроводные сети; детали протокола определены в стандартеRFC 1663. Однако на практике это применяется редко. Вместо этого в Интернете дляобеспечения сервиса без установки соединения и без подтверждений применяется«ненумерованный режим».Формат кадра PPP показан на рис. 3.17.
Все PPP-кадры начинаются со стандартного флагового байта протокола HDLC 0x7E (01111110). Если этот байт встречаетсяв поле Данные (Payload ), он предваряется управляющим байтом 0x7D, а следующийза ним байт представляет собой предваряемый байт, сложенный по модулю 2 созначением 0x20 (при этом переключается пятый бит). Например, 0x7D 0x5E — этоуправляющая последовательность для флагового байта 0x7E. Это означает, что нача-3.5. Примеры протоколов передачи данных 271ло и конец кадра можно найти, просто просканировав содержимое на наличие байта0x7E. Больше он нигде встречаться не будет.
Правило удаления заполняющих битовпри получении — найти значение 0x7D, удалить его, а следующий байт сложить помодулю 2 со значение 0x20. Кроме того, между кадрами необходим только один флаговый байт. Несколько флаговых байтов могут применяться для заполнения канала,когда кадров с данными для отправки получателю нет.После стартового кадра идет поле Адрес (Address), которому всегда присваиваетсядвоичное значение 11111111, это означает, что все станции должны принимать этоткадр. Использование такого адреса позволяет избежать необходимости назначенияадресов передачи данных.Рис. 3.17.
Полный формат кадра PPP для работы в ненумерованном режимеЗа полем адреса следует Управляющее поле (Control ), его значение по умолчаниюравно 00000011. Это число означает ненумерованный кадр.Так как в конфигурации по умолчанию поля Адрес и Управляющее поле являютсяконстантами, протокол LCP предоставляет возможность двум сторонам договоритьсяо возможности пропускать оба поля и сэкономить, таким образом, по 2 байта на кадр.Четвертое поле кадра PPP — Протокол (Protocol ).
Оно определяет тип пакета,содержащегося в поле Данные. Номера, начинающиеся с бита 0, отведены для протокола IP версий 4 и 6 и других протоколов сетевого уровня, таких как IPX и AppleTalk.С бита 1 начинаются коды, используемые для конфигурационных протоколов PPP,включая LCP и различные протоколы NCP для каждого поддерживаемого протоколасетевого уровня. Размер поля Протокол по умолчанию составляет 2 байта, однакопутем переговоров с помощью LCP этот размер может быть уменьшен до одного байта.Разработчики, вероятно, перестраховались на случай, если когда-либо будет использоваться более 256 протоколов.Поле Данные может быть переменной длины, вплоть до некоего оговоренного максимального значения. Если размер не оговорен во время установки соединения припомощи LCP, то по умолчанию используется длина 1500 байт. При необходимостиданные пользователя могут дополняться специальными символами.Следом за полем Данные располагается поле Контрольная сумма (Checksum),которое в обычном состоянии занимает 2 байта, но в случае необходимости по договоренности может занимать 4.
4-байтовая контрольная сумма фактически представляет собой 32-битный код CRC, порождающий многочлен которого показанв соответствующем разделе выше. 2-байтовая контрольная сумма также являетсястандартным кодом CRC.Итак, PPP�����������������������������������������������������������������������������������������������������������������������������������является механизмом формирования кадров, поддерживающим различные протоколы, которым можно пользоваться в различных физических средах. Различные варианты использования PPP в сетях SONET описаны в стандарте RFC 2615(Malis, Simpson, 1999).
Применяется 4-байтовая контрольная сумма, так как она счи-272 Глава 3. Канальный уровеньтается основным способом распознавания ошибок передачи на физическом уровне,уровне передачи данных и сетевом уровне. Рекомендуется не сжимать поля Адрес,Управляющее поле и Протокол, так как каналы SONET и так работают на относительновысокой скорости.Есть и еще одна интересная особенность. Перед тем как попасть в поток данныхSONET, полезная информация протокола PPP шифруется (подробнее об этом выше).При шифровании данные складываются по модулю 2 с длинной псевдослучайнойпоследовательностью.
Только после этого они пересылаются получателю. Проблемав том, что потоку данных SONET для успешной синхронизации требуется частаясмена значений бит. В колебаниях голосового сигнала это происходит естественнымобразом, но при пересылке данных только пользователь выбирает, какую информациюотправлять, и это может быть, например, длинная последовательность нулей.
Благодаря шифрованию вероятность того, что пользователь сам вызовет проблемы, передавдлинную последовательность нулей, сводится почти к нулю.Перед тем как передавать кадры PPP по каналу SONET, необходимо установитьи сконфигурировать соединение PPP. Состояния, через которые проходит линия связипри ее установлении, использовании и разъединении, показаны на рис. 3.18.Рис. 3.18. Диаграмма состояний установки и разрыва соединения PPPНачальное состояние протокола таково: линия отключена (DEAD), то есть соединения на физическом уровне не существует. После того как физическое соединениеустановлено, линия переходит в состояние ESTABLISH (установка). В этот моментначинаются переговоры о параметрах с помощью протокола LCP�����������������������������������.
Узлы PPP обмениваются пакетами LCP, каждый из которых содержится в поле Данные кадра PPP.Это необходимо для выбора параметров PPP из тех, что перечислены выше. Инициирующий узел предлагает варианты, а отвечающие узлы либо соглашаются с ними,3.5. Примеры протоколов передачи данных 273либо отвергают частично или полностью. Отвечающие узлы также могут делать своипредложения.При успешном результате переговоров линия переходит в фазу AUTHENTICATE(идентифицировать).
Теперь обе стороны по желанию могут проверить, кем являетсясобеседник. После успешной аутентификации в фазе NETWORK (сеть) происходитобмен пакетами NCP���������������������������������������������������������������������������������������������������������������������для настройки сетевого уровня. Протоколы NCP сложно описать общими словами, так как каждый из них обладает специфическими свойствами,зависящими от соответствующего протокола сетевого уровня, и поддерживает конфигурационные запросы, характерные только для этого протокола. Например, дляпротокола IP наиболее важной задачей является назначение IP-адресов собеседникамна обоих концах линии.Когда линия переходит в фазу OPEN (открытая), можно начинать передачу данных.Именно в этой фазе IP-пакеты пересылаются в кадрах PPP по линии SONET.
Когдапередача данных закончена, линия переходит к фазе TERMINATE (завершение), а затем снова в состояние DEAD (отключена), когда физическое соединение разрывается.3.5.2. ADSLADSL (Asymmetric Digital Subscriber Loop, асимметричный цифровой абонентскийконтур) соединяет миллионы домашних пользователей с Интернетом на скоростях,равных нескольким мегабит в секунду. Для этого используется тот же локальный телефонный контур, по которому предоставляются услуги обычной телефонии.