Реализация скользящего окна в протоколе TCP.

В рамках установленного соединения правильность передачи каждого сегмента должна подтверждаться квитанцией получателя. Квитирование - это один из традиционных методов обеспечения надежной связи. В протоколе TCP используется частный случай квитирования - алгоритм скользящего окна. Идея этого алгоритма была изложена в главе 2, «Основы передачи дискретных данных».

 

Особенность использования алгоритма скользящего окна в протоколе TCP состоит в том, что, хотя единицей передаваемых данных является сегмент, окно определено на множестве нумерованных байтов неструктурированного потока данных, поступающих с верхнего уровня и буферизуемых протоколом TCP. Получающий модуль TCP отправляет «окно» посылающему модулю TCP. Данное окно задает количество байтов (начиная с номера байта, о котором уже была выслана квитанция), которое принимающий модуль TCP готов в настоящий момент принять.

 

Квитанция (подтверждение) посылается только в случае правильного приема данных, отрицательные квитанции не посылаются. Таким образом, отсутствие квитанции означает либо прием искаженного сегмента, либо потерю сегмента, либо потерю квитанции. В качестве квитанции получатель сегмента отсылает ответное сообщение (сегмент), в которое помещает число, на единицу превышающее максимальный номер байта в полученном сегменте. Это число часто называют номером очереди.

 

На рис. 5.24 показан поток байтов, поступающий на вход протокола TCP. Из потока байтов модуль TCP нарезает последовательность сегментов. Для определенности на рисунке принято направление перемещения данных справа налево. В этом потоке можно указать несколько логических границ. Первая граница отделяет сегменты, которые уже были отправлены и на которые уже пришли квитанции. Следующую часть потока составляют сегменты, которые также уже отправлены, так как входят в границы, определенные окном, но квитанции на них пока не получены. Третья часть потока - это сегменты, которые пока не отправлены, но могут быть отправлены, так как входят в пределы окна. И наконец, последняя граница указывает на начало последовательности сегментов, ни один из которых не может быть отправлен до тех пор, пока не придет очередная квитанция и окно не будет сдвинуто вправо.

 

 

Рис. 5.24. Особенности реализации алгоритма скользящего окна в протоколе TCP

Если размер окна равен W, а последняя по времени квитанция содержала значение N, то отправитель может посылать новые сегменты до тех пор, пока в очередной сегмент не попадет байт с номером N+W. Этот сегмент выходит за рамки окна, и передачу в таком случае необходимо приостановить до прихода следующей квитанции.

 

Надежность передачи достигается благодаря подтверждениям и номерам очереди. Концептуально каждому байту данных присваивается номер очереди. Номер очереди для первого байта данных в сегменте передается вместе с этим сегментом и называется номером очереди для сегмента. Сегменты также несут номер подтверждения, который является номером для следующего ожидаемого байта данных, передаваемого в обратном направлении. Когда протокол TCP передает сегмент с данными, он помещает его копию в очередь повторной передачи и запускает таймер. Когда приходит подтверждение для этих данных, соответствующий сегмент удаляется из очереди. Если подтверждение не приходит до истечения срока, то сегмент посылается повторно.

 

Выбор времени ожидания (тайм-аута) очередной квитанции является важной задачей, результат решения которой влияет на производительность протокола TCP. Тайм-аут не должен быть слишком коротким, чтобы по возможности исключить избыточные повторные передачи, которые снижают полезную пропускную способность системы. Но он не должен быть и слишком большим, чтобы избежать длительных простоев, связанных с ожиданием несуществующей или «заблудившейся» квитанции.

 

При выборе величины тайм-аута должны учитываться скорость и надежность физических линий связи, их протяженность и многие другие подобные факторы. В протоколе TCP тайм-аут определяется с помощью достаточно сложного адаптивного алгоритма, идея которого состоит в следующем. При каждой передаче засекается время от момента отправки сегмента до прихода квитанции о его приеме (время оборота). Получаемые значения времени оборота усредняются с весовыми коэффициентами, возрастающими от предыдущего замера к последующему. Это делается с тем, чтобы усилить влияние последних замеров. В качестве тайм-аута выбирается среднее время оборота, умноженное на некоторый коэффициент. Практика показывает, что значение этого коэффициента должно превышать 2. В сетях с большим разбросом времени оборота при выборе тайм-аута учитывается и дисперсия этой величины.

 

Поскольку каждый байт пронумерован, то каждый из них может быть опознан. Приемлемый механизм опознавания является накопительным, поэтому опознавание номера Х означает, что все байты с предыдущими номерами уже получены. Этот механизм позволяет регистрировать появление дубликатов в условиях повторной передачи. Нумерация байтов в пределах сегмента осуществляется так, чтобы первый байт данных сразу вслед за заголовком имел наименьший номер, а следующие за ним байты имели номера по возрастающей.

 

Окно, посылаемое с каждым сегментом, определяет диапазон номеров очереди, которые отправитель окна (он же получатель данных) готов принять в настоящее время. Предполагается, что такой механизм связан с наличием в данный момент места в буфере данных.

 

Варьируя величину окна, можно влиять на загрузку сети. Чем больше окно, тем большую порцию неподтвержденных данных можно послать в сеть. Но если пришло большее количество данных, чем может быть принято программой TCP, данные будут отброшены. Это приведет к излишним пересылкам информации и ненужному увеличению нагрузки на сеть и программу TCP.

 

С другой стороны, указание окна малого размера может ограничить передачу данных скоростью, которая определяется временем путешествия по сети каждого посылаемого сегмента. Чтобы избежать применения малых окон, получателю данных предлагается откладывать изменение окна до тех пор, пока свободное место не составит 20-40 % от максимально возможного объема памяти для этого соединения. Но и отправителю не стоит спешить с посылкой данных, пока окно не станет достаточно большим. Учитывая эти соображения, разработчики протокола TCP предложили схему, согласно которой при установлении соединения заявляется большое окно, но впоследствии его размер существенно уменьшается.

 

Если сеть не справляется с нагрузкой, то возникают очереди в промежуточных узлах - маршрутизаторах и в конечных узлах-компьютерах.

 

При переполнении приемного буфера конечного узла «перегруженный» протокол TCP, отправляя квитанцию, помещает в нее новый, уменьшенный размер окна. Если он совсем отказывается от приема, то в квитанции указывается окно нулевого размера. Однако даже после этого приложение может послать сообщение на отказавшийся от приема порт. Для этого сообщение должно сопровождаться пометкой «срочно». В такой ситуации порт обязан принять сегмент, даже если для этого придется вытеснить из буфера уже находящиеся там данные. После приема квитанции с нулевым значением окна протокол-отправитель время от времени делает контрольные попытки продолжить обмен данными. Если протокол-приемник уже готов принимать информацию, то в ответ на контрольный 'запрос он посылает квитанцию с указанием ненулевого размера окна.

 

Другим проявлением перегрузки сети является переполнение буферов в маршрутизаторах. В таких случаях они могут централизованно изменить размер окна, посылая управляющие сообщения некоторым конечным узлам, что позволяет им дифференцированно управлять интенсивностью потока данных в разных частях сети.


 

27. Сеть Fast Ethernet 100Мбит/с. Структурная организация. Особенности построения физического уровня.

 

В 1995 году комитет IEEE 802.3 принял стандарт IEEE 802.3u (дополнительные главы к стандарту IEEE 802.3), описывающий 100-мегабитную технологию Fast Ethernet. Новый стандарт не затронул канальный уровень (подуров-

ни MAC и LLC), соответственно полностью сохранился метод доступа CSMA/CD, форматы кадров и временные соотношения. Все отличия между Ethernet и Fast Ethernet сосредоточены на физическом уровне.

Поскольку одной из целей разработки было обеспечение максимальной преемственности и согласованности 10-мегабитных и 100-мегабитных сетей, было принято решение увеличить скорость за счет сокращения до 10 нс битово-

го интервала (против 100 нс в Ethernet). При этом максимально допустимое время оборота сигнала составило 2,6 мкс, поэтому максимальный диаметр сегмента Fast Ethernet составляет 205 м.

Сети Fast Ethernet могут строиться на волоконно-оптическом (многомодовом) кабеле (два волокна), витой паре 5 категории (две пары) или витой паре 3 категории (четыре пары). Коаксиальный кабель не используется. Сеть всегда

строится на концентраторах (или коммутаторах) и имеет иерархическую топологию. Без концентратора можно соединить (при помощи специального кросс-кабеля) только два узла.

 

Физический уровень делится на подуровень согласования (Reconciliation Sublayer) и устройство физического уровня (Physical Layer Device), связанные через интерфейс, независимый от среды передачи (Media Independent Interface, MII).

Уровень согласования необходим для того, чтобы канальный уровень (точнее, подуровень MAC), рассчитанный на интерфейс AUI, мог работать через интерфейс MII.

Устройство физического уровня выполняет логическое кодирование (4B/5B или 8B/6T), физическое кодирование (NRZI или MLT-3) и присоединение к среде передачи, а также автоматическое согласование режимов передачи

(например, дуплексный или полудуплексный режим).

Версия физического уровня 100BaseFX определяет работу по многомодовому оптоволокну на длине волны 1300 нм. По одному волокну передаются данные от узла, по второму – к узлу. Из FDDI заимствован метод логического

кодирования 4B/5B и метод физического кодирования NRZI. В полудуплексном режиме максимальное расстояние между узлами – 412 м, при полном дуплексе – 2 км (по одномодовому оптоволокну – до 32 км). 100BaseFX несовместим с 10BaseFL, поскольку использует другую длину волны.

Версия физического уровня 100BaseTX определяет работу по витой паре (UTP Cat 5 или STP Type 1). Используется две пары, назначение проводников (разводка по контактам разъемов) полностью совпадает с 10-мегабитным Ethernet. Максимальная длина сегмента – 100 м. Логическое кодирование – 4B/5B, физическое кодирование – MLT-3.

Версия физического уровня 100BaseT4 определяет работу по более распространенной и дешевой витой паре (UTP Cat 3). Используется четыре пары: по трем парам передаются данные, четвертая используется для прослушивания

несущей частоты и обнаружения коллизий. Логическое кодирование – 8B/6T, которое обладает более узким спектром сигнала и при скорости 33,3 Мбит/c укладывается в полосу 16МГц (витая пара, 3 категория). Поскольку передача идет

одновременно по трем парам, суммарная скорость составляет 100Мбит/c. Максимальная длина сегмента – 100 м.

Устройства, поддерживающие 100BaseTX или 100BaseT4, должны иметь функцию согласования режимов (auto-negotiation), позволяющую выбрать самый эффективный режим, доступный обоим участникам обмена. Всего опреде-

лено 5 режимов (перечислены в порядке возрастания приоритета):

10BaseT,дуплексный 10BaseT, 100BaseTX, 100BaseT4, дуплексный 100BaseTX.

Для согласования узлы передают пачки из 17-ти импульсов FLP (Fast Link Pulse), в которых содержится слово, кодирующее наиболее приоритетныйиз доступных режимов работы. Если один из узлов посылает импульсы NLP

(используемые в 10BaseT для контроля целостности линии), второй узел понимает, что единственный возможный режим – это 10BaseT.

Существует еще несколько малораспространенных версий Fast Ethernet, из которых представляет интерес 100BaseSX, работающая по многомодовому оптоволокну на длине волны 830 нм (максимальная длина кабльного сегмента – 300 м). Этот стандарт совместим с 10BaseFL и поддерживает автоматического согласование скорости передачи 10/100 Мбит/c.

В зависимости от того, какой набор методов логического кодирования поддерживает повторитель, он относится к классу I (поддерживает и 4B/5B, и 8B/6T) или к классу II (поддерживает только один из методов). Повторители

класса I порты всех трех типов – 100baseFX, 100BaseTx, 100BaseT4, но, за счет необходимости преобразования схем кодирования, вносят большую задержку – до 140 bt. Поэтому в одном домене коллизий может быть не более одного повторителя класса I. Повторители класса II имеют либо порты 100BaseFX и 100BaseTX, либо только порты 100BaseT4. Вносимая задержка может достигать 92 bt (TX/FX) или 67 bt (t4). Максимальное количество повторителей класса II в одном домене коллизий – 2. Поскольку максимальный диаметр домена коллизий Fast Ethernet для витой пары – 205 м, а каждая станция может быть удалена от повторителя на расстояние до 100 м, в худшем случае повторители (только класса II) должны соединяться кабелем длиной не более 5 м.

 


 

28. Сеть Gigabit Ethernet 1000 Мбит/с. Структурная организация. Особенности построения физического уровня.

 

Технология Gigabit Ethernet описывается двумя стандартами: IEEE 802.3z (1998 год) и IEEE 802.3ab (1999 год). Разработчики стандартов старались максимально сохранить идеи классического Ethernet. Как и при переходе от

Ethernet к Fast Ethernet, основное новшество состояло в десятикратном (по сравнению с Fast Ethernet) уменьшении длительности битового интервала – до 1нс. Для того, чтобы сохранить максимальный диаметр домена коллизий на

уровне 200м, пришлось увеличить минимальный размер кадра с 64 до 512 байт (4096 bt). Если передается короткий кадр, его поле данных должно быть дополнено до требуемой длины запрещенными символами. С другой стороны, эти

ограничения диктуются необходимостью распознавания коллизий, что существенно только для полудуплексного режима работы. Для Gigabit Ethernet более характерен дуплексный режим, при котором длина кабельного сегмента ограничивается не временем двойного оборота, а затуханием сигнала и частотными свойствами линии.

Для снижения накладных расходов при передаче коротких кадров (например, подтверждений приема пакетов), предусмотрен пакетный режим передачи (Burst Mode). Узел может передать подряд несколько небольших кадров

(не дополняя каждый из них до 512 байт), суммарной длиной не более 8192 байт. Отдельные кадры в такой группе могут быть адресованы разным получателям.

Стандарт IEEE 802.3z определяет следующие версии: 1000BaseSX, 1000BaseLX, 1000BaseCX.

Версия 1000BaseSX определяет работу по многомодовому оптоволокну на длине волны 850 нм. Максимальная длина сегмента при работе в полудуплексном режиме составляет 100 м. В дуплексном режиме максимальная длина

кабеля зависит от его полосы пропускания и может достигать 800 м.

 

Версия 1000BaseLX определяет работу по многомодовому или одномодовому оптоволокну на длине волны 1310 нм. Максимальная длина сегмента для одномодового волокна достигает 5 км, а для многомодового – 550 м.

Версия 1000BaseCX использует в качестве среды передачи твинксиальный (twinaxial) кабель, представляющий собой два коаксиальных кабеля (волновое сопротивление 75 Ом) в общей оплетке. По такому кабелю можно орга-

низовать только полудуплексный режим. Максимальная длина сегмента составляет 25 м, поэтому такой кабель наиболее применим для связи оборудования в пределах одной комнаты.

Стандарт IEEE 802.3ab определяет версию Gigabit Ethernet на витой паре 5 категории - 1000BaseT. Сигнал физически кодируется с использованием 5 уровней потенциала (код PAM-5) и передается одновременно по четырем парам. Код PAM-5 на тактовой частоте 125 МГц укладывается в полосу пропускания 100 МГц кабеля 5 категории. Для дуплексного режима передача ведется одновременно в обоих направления, а для выделения принимаемого сигнала,

приемник вычитает из принятой смеси сигналов свой собственный сигнал. Для выполнения этой операции используются цифровые сигнальные процессоры.

 

Технология 100VG-AnyLAN

 

Комитет IEEE 802.12 в 1995 году принял технологии 100VG-AnyLAN, использующую новый метод доступа Demand Priority (приоритет запросов) и поддерживает кадры двух форматов – Ethernet и Token Ring. Эта технология

была разработана фирмами Hewlett-Packard и AT&T. Аббревиатура VG (Voice Grade, для голоса) указывает на применимость технологии для телефонии, а AnyLAN (любая ЛВС) означает возможность работы с Ethernet и Token Ring. Метод доступа Demand Priority основан на централизованном арбитраже доступа к среде передачи. Концентратор циклически опрашивает узлы, подключенные к его портам. Если узел желает передать кадр, он сообщает об этом концентратору и указывает приоритет кадра (всего определено два приоритета низкий и высокий). Пока сеть занята, запрос ставится концентратором в очередь, обслуживаемую в порядке поступления запросов, но с учетом приоритетов. Если к порту подключен другой концентратор, то концентратор верхнего уровня ожидает, пока он не закончит опрос своих портов. Если сеть свободна, концентратор разрешает передачу пакета, анализирует адрес получателя, и передает кадр только на тот порт, к которому подключен получатель. Фактически, концентратор 100VG-AnyLAN выполняет функции моста: он ведет таблицу MAC-адресов и соответствующих им портов. MAC-адреса узлов определяются в момент их подключения. В отличие от моста, концентратор 100VG-AnyLAN не выполняет буферизацию кадров, а побитно транслирует их в нужный порт.

Первоначальный вариант технологии 100VG-AnyLAN подразумевал использование 4 витых пар категории 3 (и выше). Позже были разработаны версии 100VGF-AnyLAN, работающие по двум парам категории 5 или по многомодовому оптоволокну.

 

При работе по витой паре 3 категории (гарантированная полоса пропускания 16 МГц), технология 100VG-AnyLAN задействует четыре пары для полудуплексной передачи (дуплексный режим не поддерживается). При этом по ка-

ждой паре передается 25 Мбит/с. Логическое кодирование – 5B/6B, физическое – NRZ.

Используется только строго иерархическая топология, допускается наличие до пяти уровней концентраторов. Длина любого кабельного сегмента (узел - концентратор или концентратор-концентратор) при использовании витой пары категории 3 - не более 100 м, а категории 5 – до 200 м. Диаметр сети может достигать 2 км. Максимальное количество узлов в сети – до 1024 (рекомендуется – до 250).

Технология 100VG-AnyLAN не определяет своего формата кадра, а может использовать либо кадры Ethernet 802.3, либо кадры Token Ring 802.5, но в одной сети может использоваться только один тип кадра. Оборудование

100VG-AnyLAN физически несовместимо с оборудованием других технологий, однако выпускались адаптеры 100VG-AnyLAN со встроенной поддержкой Ethernet (и двумя отдельными разъемами для подключения к сети 100VG-

AnyLAN и к сети Ethernet). Такие адаптеры позволяли более плавно перейти от Ethernet к 100VG-AnyLAN, заменив сначала адаптеры, и только потом концентратор.

Централизованное управление доступом и наличие системы приоритетов позволяет использовать 100VG-AnyLAN для приложений, чувствительных ко времени отклика – мультимедийных приложений, видеоконференций и т.п.

Технология 100VG-AmyLAN не выдержала конкуренции с более простым и преемственным (по отношению к Ethernet) стандартом Fast Ethernet, и в настоящее время не развивается.


 



php"; ?>