Э. Таненбаум - Компьютерные сети. (4-е издание) (PDF) (1130118), страница 71
Текст из файла (страница 71)
Также имеется команда, позволяющая машине, только что вернувшейся в подключенный режим (on-line), заявить о своемприсутствии и принудительно обнулить все порядковые номера. Эта команда называется SNRM (Set Normal Response Mode — установить нормальный режим ответа). К сожалению, этот «нормальный режим» является чем угодно, но не нормой.Это несбалансированный (то есть асимметричный) режим, при котором один конец линии является ведущим (master), а другой — ведомым (slave). Команда SNRMпоявилась еще в те времена, когда обмен данными означал общение примитивного терминала с компьютером, которое, конечно, было асимметричным. Чтобылучше учитывать ситуацию равноправных партнеров, в протоколы HDLC и LAPBбыла добавлена команда SABM (Set Asynchronous Balanced Mode — установитьасинхронный сбалансированный режим), которая инициализирует линию и объявляет равенство сторон.
Кроме того, в этих протоколах имеются дополнительные команды SABME и SNRME, которые отличаются от SABM и SNRM толькотем, что вводят расширенный формат кадров с 7-битовым порядковым номеромвместо 3-битового.Третьей командой, поддерживаемой всеми этими протоколами, является FRMR(FRaMe Reject — отклонить кадр), применяющаяся, когда приходит кадр с верной контрольной суммой, но недопустимой семантикой. Например, супервизорный кадр типа 3 в протоколе LAPB, кадр длиной менее 32 бит, недопустимыйуправляющий кадр или подтверждение кадра, находящегося вне пределов окнаи т.
д. Данные включают управляющее поле неправильного кадра, параметры окна и набор битов, указывающих тип ошибки.Управляющие кадры могут быть повреждены или потеряны так же, как и информационные кадры, поэтому им также нужны подтверждения. Для этой целипредназначен специальный служебный кадр, называемый UA (UnnumberedAcknowledgement — ненумерованное подтверждение).
Поскольку неподтвержденным может быть только один управляющий кадр, то не возникает вопроса о том,какой именно служебный кадр подтверждается.Остальные управляющие кадры занимаются инициализацией, опросом и сообщением состояния. Есть также управляющий кадр, который может содержатьпроизвольную информацию, UI (Unnumbered Information). Эта информация непередается на сетевой уровень, но получается и обрабатывается самим уровнемпередачи данных.Несмотря на широкое распространение, протокол HDLC имеет большое количество недостатков. Обсуждение ряда проблем, связанных с этим протоколом,см. в (Fiorini и др., 1994).Уровень передачи данных в ИнтернетеИнтернет состоит из отдельных машин (хостов и маршрутизаторов) и связывающей их коммуникационной инфраструктуры.
В пределах одного здания для соединения широко применяются локальные сети, но на больших территориях ин-280Примеры протоколов передачи данныхГлава 3. Уровень передачи данныхфраструктура строится на основе выделенных линий, соединяющих отдельныемашины по принципу «точка —точка». Локальные сети будут рассматриваться вглаве 4, здесь же мы обсудим протоколы передачи данных, используемые для линий «точка — точка» в Интернете.На практике соединение «точка — точка» используется прежде всего в двухситуациях. Во-первых, у тысяч организаций есть по одной или по несколько локальных сетей, в каждой из которых есть несколько хостов (персональных компьютеров, рабочих станций пользователя, серверов и т.
д.) наряду с маршрутизаторами (или функционально близких к ним мостов). Маршрутизаторы частосоединяются магистральной локальной сетью. Обычно вся связь с внешним миром осуществляется через один или два маршрутизатора, связанных выделенными линиями «точка—точка» с удаленными маршрутизаторами. Именно эти маршрутизаторы вместе с выделенными линиями образуют подсети, из которыхсостоит Интернет.Еще одна важная роль, которую соединения «точка — точка» играют в Интернете, заключается в том, что они связывают миллионы индивидуальных пользователей с помощью модемов и телефонных линий. Обычно пользователь дозванивается со своего домашнего компьютера до поставщика услуг Интернета или,как его еще называют, провайдера, и работает как полноценный интернет-хост.Этот метод отличается от использования выделенной линии между персональным компьютером и маршрутизатором только лишь тем, что, когда пользовательзаканчивает сеанс связи, соединение прерывается.
Домашний персональныйкомпьютер, звонящий поставщику услуг Интернета, изображен на рис. 3.19. Модем показан в данном случае как внешнее устройство, однако современные компьютеры могут быть укомплектованы и внутренними модемами.Офис поставщика услуг ИнтернетаДом пользователяI ПерсональныйкомпьютерМодемыКлиентский процесс,использующий TCP/IP!ТелефоннаялинияТСРЛР-соединение,использующее SLIPили РРРМаршрутизаторПроцессмаршрутизацииРис. 3.19.
Домашний персональный компьютер, действующий как хост ИнтернетаКак для соединения двух маршрутизаторов по выделенной линии, так и длясоединения маршрутизатора с хостом требуется протокол, который бы занимался формированием кадров, обработкой ошибок и другими функциями уровня передачи данных, рассматривавшимися в данной главе. Одним из таких про-281токолов, широко распространенным в Интернете, является РРР. Рассмотримего.РРР — протокол двухточечного соединенияВ Интернете двухточечные протоколы применяются очень часто в самых разныхслучаях, включая обеспечение соединения между маршрутизаторами, между пользователями и провайдерами.
Обсуждаемый далее протокол называется РРР(Point-to-Point Protocol — протокол передачи от точки к точке), описан вRFC 1661 и доработан в некоторых более поздних документах RFC (например,RFC 1662 и 1663). Протокол РРР выполняет обнаружение ошибок, поддерживает несколько протоколов, позволяет динамически изменять IP-адреса во времясоединения, разрешает аутентификацию, а также имеет ряд других свойств.Протокол РРР обеспечивает следующий набор методов:1.
Метод формирования кадров, однозначно обозначающий конец одного кадраи начало следующего. Формат кадров также обеспечивает обнаружение ошибок.2. Протокол управления каналом, позволяющий устанавливать каналы связи,тестировать их, договариваться о параметрах их использования и снова отключать их, когда они не нужны. Этот протокол называется LCP (Link Control Protocol). Он поддерживает синхронные и асинхронные линии, бит- и байториентированное кодирование.3. Способ договориться о параметрах сетевого уровня, который не зависит отиспользуемого протокола сетевого уровня.
Для каждого поддерживаемого сетевого уровня этот метод должен иметь свой сетевой протокол управления(NCP, Network Control Protocol).Чтобы посмотреть, как все это работает вместе, рассмотрим типичный сценарий, когда домашний пользователь звонит поставщику услуг Интернета, чтобыпревратить тем самым свой домашний компьютер во временный хост. Сначалаперсональный компьютер звонит через модем на маршрутизатор провайдера. После того, как,модем маршрутизатора ответит на звонок и установит физическоесоединение, персональный компьютер посылает маршрутизатору серию LCP-naкетов в поле данных пользователя одного или нескольких РРР-кадров.
Эти пакеты и ответы на них определяют параметры протокола РРР.После того как обе стороны согласовывают параметры, посылается серия NCPпакетов для настройки сетевого уровня. Обычно персональный компьютер желает запустить стек протоколов TCP/IP, для чего ему нужен IP-адрес. На всех пользователей IP-адресов не хватает, поэтому обычно у каждого поставщика услугИнтернета имеется целый набор таких адресов, и он динамически назначает ихкаждому присоединившемуся персональному компьютеру на время сеанса связи. Если у провайдера есть п IP-адресов, он может одновременно подключить кИнтернету до п машин, однако общее количество его клиентов может быть вомного раз больше. Для назначения IP-адреса используется протокол NCP для IP.После этого персональный компьютер фактически становится хостом Интернета и может посылать и принимать IP-пакеты так же, как и постоянные хосты.282Примеры протоколов передачи данныхГлава 3.
Уровень передачи данныхКогда пользователь заканчивает сеанс связи, NCP используется, чтобы разорватьсоединение сетевого уровня и освободить IP-адрес. Затем LCP используется дляразрыва соединения уровня передачи данных. Наконец, компьютер дает модемукоманду повесить трубку, чем освобождает линию на физическом уровне.Чтобы не изобретать велосипед, был выбран формат кадра РРР, близкий кформату кадра HDLC. В отличие от бит-ориентированного протокола HDLC, РРРявляется байт-ориентированным. В частности, в РРР применяется символьноезаполнение на модемных телефонных линиях, поэтому все кадры состоят из целого числа байтов. С помощью протокола РРР невозможно послать кадр, состоящий из 30,25 байт, как это можно было сделать в протоколе HDLC.
Кадры РРРмогут посылаться не только по телефонным линиям, но и по сети SONET или понастоящим бит-ориентированным HDLC-линиям (например, по линиям, соединяющим маршрутизаторы). Формат кадра РРР показан на рис. 3.20.1 или 2 Переменный 2 или 4БайтыFlag01111110Address11111111Control00000011Protocol•и-Payload•И-ChecksumFlag01111110Рис. 3.20. Полный формат кадра РРР для работы в ненумерованном режимеВсе РРР-кадры начинаются со стандартного флагового байта протоколаHDLC (01111110). Если такой байт встречается в поле данных, то применяетсясимвольное заполнение. Следом за ним идет поле Address (адрес), которому всегда присваивается двоичное значение 11111111, что означает, что все станциидолжны принимать этот кадр. Использование такого адреса позволяет избежатьнеобходимости назначения адресов передачи данных.За полем адреса следует поле Control, его значение по умолчанию равно00000011.
Это число означает ненумерованный кадр. Другими словами, РРР поумолчанию не обеспечивает надежной передачи с использованием порядковыхномеров и подтверждений. В зашумленных каналах, например при беспроводнойсвязи, может применяться надежная передача с порядковыми номерами. Деталиэтого описаны в RFC 1663, но на практике такой способ применяется редко.Так как в конфигурации по умолчанию поля Address и Control являются константами, протокол LCP предоставляет возможность двум сторонам договориться0 возможности пропускать оба поля и сэкономить, таким образом, по 2 байта накадр.Четвертое поле кадра РРР — Protocol (протокол).
Оно определяет тип пакета,содержащегося в поле данных (Payload). Определены коды для протоколов LCP,NCP, IP, IPX, AppleTalk и др. Номера протоколов сетевого уровня, например, IP,IPX, OSI CLNP, XNS, начинаются с бита 0. С бита 1 начинаются коды, используемые для переговоров об использовании других протоколов. К ним относятсяLCP, а также различные протоколы NCP для каждого поддерживаемого протокола сетевого уровня. Размер поля Protocol по умолчанию составляет 2 байта, однако путем переговоров с помощью LCP этот размер может быть уменьшен до1 байта.Z83Поле Payload (поле полезной нагрузки, или поле данных) может быть переменной длины, вплоть до некоего оговоренного максимального значения. Еслиразмер не оговорен во время установки соединения при помощи LCP, то поумолчанию он может составлять до 1500 байт.
При необходимости данные пользователя могут дополняться специальными символами.Следом за полем Payload располагается поле Checksum (контрольная сумма),которое в обычном состоянии занимает 2 байта, но в случае необходимости подоговоренности может занимать 4.Итак, РРР является механизмом формирования кадров, поддерживающимразличные протоколы, которым можно пользоваться при модемных соединениях, в последовательных по битам линиях HDLC, сетях SONET и других физических средах. РРР поддерживает обнаружение ошибок, переговоры о параметрах,сжатие заголовков, а также, по желанию, надежное соединение с использованиемкадров HDLC.Рассмотрим теперь способы установления и разрыва соединения.
Упрощенная диаграмма на рис. 3.21 показывает фазы, через которые проходит линия связи при ее установлении, использовании и разъединении. Эта последовательностьприменима как к соединению с помощью модемов, так и к соединениям междумаршрутизаторами.НосительобнаруженНосительосвобожденОбе стороны договорилисьо параметрахГотовоАутентификацияуспешнаяКонфигурацияNCPРис.