Лекция 4.
Вопросы к лекции 4
1. Что такое разделяемая среда?
2. Какова физическая природа коллизии?
3. Почему вводится ограничение снизу на длину кадра?
4. Чем отличается мост от коммутатора?
5. Из каких частей состоит МАС-адрес?
6. Требуется ли в сети Ethernet синхронизация?
7. В локальных сетях Ethernet используется дуплексная или полудеплексная связь?
8. Если сеть построена на разделяемой сред со скоростью 10 Мбит/с и состоит из 100 узлов. С какой скоростью могут обмениваться данными два узла в сети?
Лекция 5.
TU-1 = (TU-1 PTR) + VC-1
Нагрузочные блоки уровня n, как и виртуальные контейнеры, делятся на нагрузочные блоки подуровней nm, т.е. TU-nm, а именно: TU-1 разбивается на TU-11 и ТU-12.
Один или несколько нагрузочных блоков формируются в группу нагрузочных блоков уровня n называемую TUG-n. Группы определены так, чтобы получить возможность образования смешанной нагрузки из модулей разных уровней для увеличения гибкости транспортной сети. К примеру, TUG-2 – группа нагрузочных блоков уровня 2 – элемент структуры мультиплексирования SDH, формируемый путем мультиплексирования нагрузочных блоков TU-1,2 со своими коэффициентами мультиплексирования.
Виртуальные контейнеры 4-го уровня уровней вместе с соответствующими указателями образуют административный модуль AU (Administrative Unit). Таким образом,
AU-4 = VC-4 + AU_PTR
Один или несколько административных модулей, занимающих определенные фиксированные позиции в нагрузке STM, называются группой административных модулей AUG (Administrative Unit Group). В европейской схеме она состоит из одного AU-4.
Наконец, синхронный транспортный модуль STM-1 образуется добавлением к группе административных модулей AUG заголовка участка SOH (Section OverHead) и регенерационного участков RSOH (Regenerator Section OverHead). Эти заголовки служат для контроля, управления и ряда других функций. При этом RSOH передается между соседними регенераторами, а MSOH – между пунктами, где формируются и расформировываются STM, проходя регенераторы транзитом.
STM-1 = AUG + SOH, где SOH = RSOH + MSOH
Таким образом, каждая из описанных выше информационных структур служит для транспортирования информации на определенном слое сети СЦИ или согласования между собой двух смежных слоев. Соответствие между слоями или межслоевыми взаимодействиями и информационными структурами показано в таблице 5.4.
Таблица5.4. Соответствие между слоями или межслоевыми взаимодействиями и информационными структурами.
Слои | Информационные структуры | |
Каналы | Контейнеры С | |
Тракты | Низшего порядка | Виртуальные контейнеры VC-12, VC-2 |
Субблоки TU и их рабочие группы TUG | ||
Высшего порядка | Виртуальные контейнеры VC-3, VC-4 | |
Административный блок AU | ||
Среда Передачи | Секции | Синхронные транспортные модули STM |
Физическая среда |
Схема преобразования для более глубокого понимания нуждается в некоторых пояснениях и замечаниях.
Шаг 1. Все начинается с формирования контейнера С-12, наполняемого из канала доступа Е1. Его поток 2,048 Мбит/с, для удобства последующих рассуждений, лучше представить в виде цифровой 32-байтной последовательности, циклически повторяющейся с частотой 8 кГц, т.е. с частотой повторения фрейма STM-1 (это так, если учесть, что 2048000/8000=256 бит или 32 байта).
К этой последовательности в процессе формирования С-12 возможно добавление выравнивающих бит, а также других фиксирующих, управляющих и упаковывающих бит (условно показанных блоком "биты"). Ясно, что емкость С-12 должна быть больше 32 байт, фактически она в зависимости от режима преобразования VC-12 в TU-12 (см. ниже) будет больше или равна 34 байтам. Для простоты последующих рассуждений примем размер контейнера С-12 равным 34 байтам.
Шаг 2. Далее к контейнеру С-12 добавляется маршрутный заголовок VC-12 РОН длиной в один байт (обозначаемый V5) с указанием маршрутной информации, используемой, в основном, для сбора статистики прохождения контейнера. В результате формируется виртуальный контейнер VC-12 размером 35 байт.
Шаг 3. Формально добавление указателя TU-12 PTR длиной в один байт к виртуальному контейнеру VC-12, превращает его в нагрузочный блок TU-12 длиной 36 байт. Логически это удобнее представить в виде двумерной таблицы (матрицы) или фрейма 9х4 байтов, учитывая, что окончательная структура - модуль STM-1 - также представляется в виде фрейма 9х270 байтов с 9 строками и 270 столбцами.
Шаг 4. Последовательность нагрузочных блоков TU-12 в результате байт-мультиплексирования 3:1 превращается в группу нагрузочных блоков TUG-2 с суммарной длиной последовательности 108 байтов (36х3 = 108). Логически структуру TUG-2 также удобнее представить в виде фрейма 9х12 байтов.
Шаг 5. Последовательность TUG-2 подвергается повторному байт-мультиплексированию 7:1, в результате которого формируется группа нагрузочных блоков TUG-3 – фрейм длиной 756 байтов (108х7 = 756), соответствующий фрейму 9х84 байта.
Шаг 6. Полученная последовательность вновь байт-мультиплексируется 4:1, в результате чего формируется последовательность блоков TUG-4 с суммарной длиной 2322 байта (774х3 = 2322).
Шаг 7. Происходит формирование виртуального контейнера верхнего уровня VC-4 в результате добавления к полученной последовательности маршрутного заголовка VC-4 РОH длиной 9 байтов, что приводит к фрейму длиной в 2331 байтов (2322+9 = 2331).
Шаг 8. На последнем этапе происходит формирование синхронного транспортного модуля STM-1. При этом сначала формируется AU-4, путем добавления указателя AU-4 PTR длиной 9 байт, а затем группа административных блоков AUG путем формального, в данном конкретном случае, мультиплексирования 1:1 AU-4. К группе AUG добавляется секционный заголовок SОН, окончательно формируя синхронный транспортный модуль SТМ-1, представляемый в виде кадра, имеющего длину 2430 байтов, или в виде фрейма 9 х 270 байтов, что при частоте повторения в 8 кГц соответствует скорости передачи 155,52 Мбит/с.
Форматы циклов
Рассмотрим логическую структуру модуля STM-1, представленную в виде цикла STM-1 с его заголовками. Модуль STM-1 имеет скорость 155 Мбит/с. Кроме информационной нагрузки модуль STM-1 имеет избыточные сигналы (OH), обеспечивающие автоматизацию функций контроля, управления и обслуживания (ОАМ) и вспомогательные функции. Такие избыточные сигналы называются «заголовками». Поскольку STM используется в сетевом слое секций, его заголовок называется секционным (SOH). Он подразделяется на заголовки регенерационной (RSOH) и мультиплексной (MSOH) секций. RSOH передаётся между регенераторами, а MSOH между пунктами, в которых формируется и расформировывается STM, проходя регенераторы транзитом. RSOH – выполняет функции цикловой синхронизации, контроля ошибок, указания порядка синхронизируемого модуля, а также создаёт каналы передачи данных, служебной связи и пользователя. MSOH – выполняет функции контроля ошибок и создаёт каналы управления системой автоматического переключения на резерв, передачи данных и служебной связи. Структура цикла модуля STM-1 приведена на рис.5.4.
Цикл STM-1 имеет период повторения 125 мкс. Обычно цикл представляется в виде двумерной структуры (матрицы), формат которой: 9 строк на 270 однобайтных столбцов (9´270=2430 элементов). Каждый элемент соответствует одному байту (8 бит) информации и скорости 64 кбит/с. Весь цикл STM-1 имеет скорость передачи равную 64´2430=155520 кбит/с. Цикл STM-1 состоит из трёх групп полей: поле секционных заголовков – регенерационной секции (RSOH) формата 3´9 байтов и мультиплексной секции (MSOH) формата 5´9 байтов; поле указателя AU-4 формата 1´9 байтов; поле полезной нагрузки формата 9´261 байтов.
Блок AU-4 служит для переноса одного виртуального контейнера VC-4, имеющего свой маршрутный (трактовый) заголовок POH (левый столбец размером 9 байтов). Основное назначение РОН – обеспечить целостность связи на маршруте от точки сборки виртуального контейнера до точки его разборки.
270
STM-1
9 261
261
|
| |||
| |||
| |||
5 9
| |||||||
| |||||||
| |||||||
| |||||||
POH
5.4. Структура цикла STM-1 и VC-4
Байты заголовка имеют следующие значения:
- байт J1 – используется для передачи в циклическом режиме 64´8 битовых структур для проверки целостности связи;
- байт B3 – BIP-8 код, контролирующий ошибки чётности в предыдущем контейнере;
- байт C2 – указатель типа полезной нагрузки. Несёт информацию о наличии полезной нагрузки;
- байт G1 – указатель состояния маршрута. Используется для передачи информации о состоянии линии к удалённому терминалу (например, о наличии ошибок или сбоев на дальнем конце);
- F2, Z3 – байты, которые могут быть задействованы пользователем данного маршрута для организации канала связи;
- H4 – обобщённый индикатор положения нагрузки, используется для организации мультифреймов;
- Z4 – байт зарезервирован для возможного развития системы;
- Z5 – байт оператора, зарезервирован для целей администрирования сети.
Рассмотрим структуру заголовков цикла STM-1. Заголовок SOH (рисунок 1.4) состоит из двух блоков: RSOH – заголовка регенераторной секции размером 3´9=27 байт и MSOH – заголовка мультиплексной секции размером 5´9=45 байт.
Заголовки RSOH и MSOH содержат следующие байты рис.1.5:
- байты А1, A1, А1, А2, А2, А2 являются идентификаторами наличия цикла STM-1 в цикле STM-N (A1=11110110, А2=00101000);
- байт В1 и три байта В2 формируют две кодовые последовательности, используемые для проверки на чётность с целью обнаружения ошибок в предыдущем фрейме: BIP-8 формирует 8-битную последовательность для размещения в В1 и BIP-24 – 24-битную последовательность для размещения в трёх В2;
- байт С1 определяет значение третьей координаты «с» – глубину интерливинга в схеме мультиплексирования STM-N;
- байты D1-D12 формируют служебный канал передачи данных DCC: D1-D3 формируют DCC канал регенераторной секции (192 кбит/с), D4-D12 – DCC канал мультиплексной секции (576 кбит/с);
- байты Е1, Е2 могут быть использованы для создания служебных каналов голосовой связи: Е1 для регенераторной секции (64 кбит/с), Е2 для мультиплексной секции (64 кбит/с);
- байт F1 зарезервирован для создания канала передачи данных голосовой связи, для нужд пользователя;
- байты К1, К2 используются для сигнализации и управлением автоматическим переключением на исправный канал при работе в защищённом режиме – APS;
- байты Z1, Z2 являются резервными за исключением бит 5-8 байтов Z1, используемых для сообщений о статусе синхронизации;
- байт S1 – байт SSM – Сигнал маркера синхронизации. В нём передаётся информация о качестве источника синхронизации;
- шесть байтов, помеченных знаком D, могут быть использованы как поля определённые средой передачи;
- байты, помеченные звёздочками, не подвергаются (в отличие от остальных) процедуре шифрования заголовка;
- все непомеченные байты зарезервированы для последующей международной стандартизации.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||
|
Рис.5.5. Структура заголовков SOH цикла STM-1.
- байты, зарезервированные для локального использования.
-
|
-
|
Вопросы к лекции 5
1. Какие минимальные трибутарные потоки используются в технологии SDH?
2. Можно ли ив технологии PDH выделить канал DS-0 непосредственно из канала DS-3&
3. Какие методы используются для решения предыдущей проблемы в PDH и SDH?
4. Почему первичные сети обеспечивают высокое качество обслуживания всех видов трафика?
5. Какое максимальное число Е1 может мультиплексировать кадр STM-1?
Лекция 6
Вопросы к лекции 6
1. В чём отличие схем защиты 1+1 и 1:1?
2. При каких условиях защита MS-SPRing более эффективна, чем SNCP?
3. Какие принципы коммутации используются в кросс-коннекторах SDH?
4. Какие преимущества и какие недостатки резервирования в решётчатых сетях по сравнению с кольцевым резервированием?
5. К какому типу сетей относятся сети DWDM – к аналоговым или цифровым?
Лекция 7 (4 часа)
Схема IP-адресации
Схема называется 32-битовой IP-адресацией. Она же – протокольная адресация.
Существует две схемы сетевой адресации, используемые в протоколе IP.
Классовая. Весь диапазон адресов может использоваться без резервирования битов для классов. Этот тип адресации обычно не используется для назначения адресов узлам. Схема напрямую применяется в маршрутных таблицах Internet и провайдеров.
Внеклассовая. Представляет собой оригинальную схему разделения 32-битового адреса на отдельные классы, определяющие сети и сетевые узлы.
Весь диапазон доступных адресов (32 бита в IPv4) используется как для классовой, так и для внеклассовой адресации. Внеклассовая адресация используется для Internet, а не в пользовательских сетях. Это – простой способ уменьшить размер маршрутных таблиц и позволить провайдеру поддерживать большие адресные пространства.
Классовая адресация
Первая схема адресации IP была проста и прямолинейна. Схема адресации использовала 8-битовый префикс, что позволяло организовать более 200 сетей с множеством узлов в каждой. Затем начала применяться концепция классов IP-адресов. Постепенно в схему IP-адресации было внесено множество дополнений, но все они продолжают опираться на классовые и внеклассовые схемы.
Цель адресации заключалась в предоставлении IP возможности взаимодействовать между узлами одной сети или объединения сетей. Классовые IP определяют конкретные номера сети и узла, соответствующие расположению узла в сетевом пространстве. IP адреса имеют длину 32 бита и разделены на четыре поля по 1 байту каждое. Этот адрес может быть записан в десятичной, восьмеричной, шестнадцатеричной и двоичной форме. Наиболее распространенная форма записи – десятичная. Есть два способа присвоения IP-адреса; все зависит от соединения. При соединении с Internet сетевая часть адреса присваивается провайдером. Существуют три адреса, которые присваиваются отдельным узлам. Но для соединения с Internet должен быть определен один публичный IP-адрес, присвоенный провайдером.
Для того чтобы идентифицировать все узлы вашей сети с помощью публичного адреса, провайдер предоставляет сетевой диапазон (непрерывный сегмент адресного пространства IP), с которым вы можете работать.
Определение класса
Для присвоения адресов сетям и узлам используются адреса классов A, B и C. Класс D не используется, а адреса Е никогда не присваиваются. На рисунке видно, как на самом деле определяются классы. Как сетевой узел определяет адрес, которому принадлежит класс? Поскольку длина идентификатора сети меняется (в зависимости от класса), был придуман простой метод, позволяющий программному обеспечению определить класс адреса, а значит и длину номера сети.
Программное обеспечение IP определит класс сетевого идентификатора, используя простой метод: чтение первых битов (или бита) первого поля (первого байта) каждого пакета. На рисунке показан адрес, представленный в двоичном коде.
Если первый бит первого байта равен 0 – это адрес класса А.
Если первый бит равен 1, тогда протокол читает следующий бит. Если следующий равен 0 – это адрес класса B. Если первый и второй биты равны 1, а третий бит равен 0 – это адрес класса C. Если первый, второй и третий биты равны 1, адрес принадлежит классу D и зарезервирован для адресов групповой рассылки. Адреса класса Е предназначены для использования в экспериментальных целях.
Поле «Опции» необязательно и обычно используется при настройке сети. В поле могут быть указаны точный маршрут прохождения дейтаграммы в распределенной сети, данные о безопасности, различные временные отметки и т. д. Поле не имеет фиксированной длины, поэтому для выравнивания заголовка дейтаграммы по 32-битной границе предусмотрено следующее поле — поле «Выравнивание». Выравнивание осуществляется нулями.
Вопросы к лекции 7:
1. В чем проявляется ненадежность протокола IP?
2. Сколько байт занимает адрес в протоколе IPv4?
3. Какой смысл имеет параметр MTU?
4. Для чего выполняется функция фрагментирования пакета?
5. Кому назначают IP-адрес? Маршрутизатору или порту(интерфеусу)?
6. Можно ли по доменным именам хостов определить насколько близко они находятся?
7. На каком уровне работает протокол ARP? Какую информацию он содержит?
Лекция 8
Пример использования подсетей
При работе подсетей реквизируются незадействованные биты, что позволяет использовать адрес более эффективно. Подсети дают возможность рациональнее использовать адресное пространство и сократить количество маршрутов в маршрутных таблицах Internet. Биты отнимаются у номера узла и передаются для определения подсети сетевого адреса. На рисунке показан этот процесс. Подсеть – это полноценная сеть. Она является подсетью в пределах одного сетевого адреса. При использовании подсетей в адресе класса В мы можем взять любое количество битов третьего байта или 6 бит четвертого байта (от 1 до 8 бит; они должны следовать непрерывно, начиная слева) IP-адреса и сделать их частью номера сети (подсеть внутри номера сети). Теперь формат IP-адреса будет таким: <номер сети, номер подсети, номер узла>. Например, если какому-либо узлу присвоен адрес 130.1.5.1, сетевая часть будет 130.1, а номер узла – 5.1. При использовании подсетей (если все восемь бит третьего поля используются в качестве адреса подсети) адрес определяется следующим образом: номер сети – 130.1, номер подсети – 5, номер узла – 1.
Организовать подсети для класса В легко, если вы используете для адреса подсети третий октет полностью. Все становится труднее, когда для подсети вы используете только часть третьего октета. Предположим, что первые пять бит (начиная слева; они должны следовать без перерывов) третьего поля зарезервированы для номера подсети. Преобразуем эти пять бит октета в двоичную форму. Теперь они отведены под номер подсети и не могут использоваться для номера узлов. Эти пять бит предоставляют в наше распоряжение 32 номера подсетей (2^5). Определим эти номера.
Если мы начнем слева и продвинемся на пять бит вправо, мы получим номер сети Х.Х.11111000.Х (нам не важны значения Х). Номера подсетей будут кратны 8 (8 получается, если первый бит из пяти установить в единицу). Таким образом, получаем значения 0, 8, 16, 24…232, 240, 248.
Физические и логические адреса
В полях адреса не могут использоваться значения, превышающие 255. Тем не менее, в вашей сети может существовать узел с номером 257. Значение 257 не записывается в адресе, но при помощи маски подсети мы можем содержать узел, имеющий в адресе число 257.
Адрес, использующий подсети, все еще можно рассматривать как адрес, их не использующий. Отличий в записи нет. Например, если адрес – 130.1.9.1, а маска подсети – 255.255.248.0, тогда номер сети – 130.1, подсети – 8, а узла – 257.
Рис.2.1-1. Детали TCP
Не все сети располагают отдельным программным обеспечением транспортного уровня при сетевых взаимодействиях. Отличный пример - компания Novell со своей операционной системой для рабочих станций в локальной сети NetWare. NetWare полагается на программное обеспечение сетевого уровня при транспортировке данных и на протокол NetWare Core (в качестве приложения) для обеспечения последовательной нумерации пакетов. Процесс взаимодействия между двумя станциями сети при этом обычно ускоряется. Необходимость в транспортном уровне здесь не столь велика, поскольку эти типы протоколов разрабатывались в высокоскоростных средах передачи данных, таких как Ethernet, для которых характерен небольшой процент ошибок. С ТСР было не так, и он значительно более устойчив в качестве протокола транспортного уровня. На самом деле ТСР – это протокол, а не часть программного обеспечения.
Последовательные номера и подтверждения служат протоколу ТСР для надежного взаимодействия с другими станциями сети. С помощью последовательных номеров определяется порядок следования данных в пакетах и выявляются пропущенные пакеты. Так как пакеты в сети не всегда приходят в той же последовательности, в которой они были посланы (например, один из пакетов передаваемого ряда был отброшен маршрутизатором), последовательная нумерация данных в пакетах гарантирует, что пакеты будут считываться в порядке их отправления.
Кроме того, существует возможность, что принимающая станция получит два одинаковых пакета. Последовательная нумерация с подтверждениями позволяет организовать надежную связь, которая называется полным дуплексом. Каждая сторона соединения обеспечивает собственную нумерацию для другой стороны.
ТСР – это байтовый последовательный протокол. Другие протоколы, такие как Novell NetWare, являются пакетными последовательными протоколами. Они присваивают порядковый номер каждому передаваемому пакету, а не каждому байту пакета. Термин «байтовый» означает, что каждому байту любого пакета присваивается порядковый номер, а не то, что ТСР передает лишь пакеты, содержащие только 1 байт. ТСР будет передавать данные (много байтов) и присваивать пакету одно порядковое значение. Наличие одного порядкового номера на байт пакета может показаться избыточным, но следует помнить, что ТСР/IP первоначально был реализован в зашумленных последовательных линиях, а не в надежных высокоскоростных локальных сетях.
На рисунке изображена передача двух датаграмм. Обычно каждый сегмент ТСР имеет длину 512 или 576 байт (допускается и больше). Каждой датаграмме присваивается порядковый номер в соответствии с количеством байтов в поле данных ТСР. Причем порядковое значение изменяется на ту же величину, что и длина пакета.
Получатель этих датаграмм подсчитает количество принятых байтов и увеличит у себя порядковое значение поступивших датаграмм. Первый полученный пакет имеет порядковое значение 40 и содержит 4 байта. Получатель ожидает, что следующее порядковое значение будет равно 44. Так и случится, а в самом пакете будет находиться 7 байт данных. Получатель предполагает, что порядковое значение следующего пакета окажется равным 51. Так работает байтовое упорядочивание ТСР.
Пример использования порядковых номеров и подтверждений
Как видно из рисунка, соединение было установлено с применением начальных порядковых номеров отправителя и получателя (целевой станции). Каждая сторона поддерживает свой собственный порядковый номер, который находится в диапазоне от 0 до 2147483647. На обеих сторонах соединения ТСР известно о верхнем и нижнем пределах порядковых значений, и по достижении предела сразу осуществляется переход обратно к нулевому значению (каждая сторона знает о нулевом значении). Начальные порядковые номера выбираются случайно. Обе стороны должны подтвердить получение датаграмм друг от друга.
Номер подтверждения = порядковый номер + количество хороших байтов, прочитанных из сегмента + 1
Это – простой, быстрый, эффективный способ определения, какие байты приняты успешно, а какие нет. Отправителю надо сохранять копию передаваемых данных, пока он не получит от удаленной сетевой станции соединения подтверждения поступления этих байтов.
Пакеты подтверждений – не обязательно отдельные пакеты, содержащие только номер подтверждения. Это было бы неэффективно. Например, если станция А открывает соединение со станцией В и эти станции передают данные друг другу, то датаграмма подтверждения может быть объединена с ответным пакетом данных. Другими словами, одна передаваемая датаграмма содержит три блока информации: данные от станции В для станции А, подтверждение от станции В о данных, переданных ранее станцией А, и порядковый номер для данных, которые станция В посылает станции А.
Если отправитель не получит в течение заданного времени подтверждения, он повторно вышлет данные, начиная с первого неподтвержденного байта. ТСР прекратит попытки после определенного количества безуспешных передач. Повторная передача датаграммы осуществляется с помощью алгоритма «назад к N». Любое количество переданных байт может оказаться неподтвержденным. Когда целевая станция подтверждает прием последовательности байтов, отправитель смотрит на номер подтверждения. Все порядковые номера до номера подтверждения считаются успешно принятыми (номер подтверждения исключается). Например, станция-отправитель начинает с порядкового номера 3, а затем посылает две датаграммы, содержащие по100 байт сегмента ТСР каждая. Получив подтверждение от целевой станции, равное 203 (от 3 до 102, затем от 102 до 202; номер подтверждения 203 – следующий ожидаемый байт), она будет знать, что данные обеих отправленных ранее датаграмм считаются успешно принятыми.
Поток ТСР и управление окном
ТСР необходимы две функции, чтобы протокол мог управлять данными в соединении: управление потоком (flow control) и управление передачей (transmission control).
Управление потоком – это механизм, предназначенный для управления потоком данных. Например, если данные принимаются на целевой станции быстрее, чем станция успевает их обрабатывать, ей приходится обращаться к станции отправителю с просьбой замедлиться или совсем остановиться и подождать, пока будет освобождено место (обновлен буфер).
Управление потоком данных использует механизм плавающего окна, но кроме этого, применяется также более гибкая схема приема/передачи данных и отсылки подтверждений на успешный прием данных. Управление потоком протокола TCP использует так называемую схему с выделением лимита на передачу данных. По этой схеме каждый передаваемый байт имеет свой собственный номер в последовательности (SN). Когда протокол TCP посылает сегмент, он выставляет в поле номера в последовательности номер первого байта в поле данных этого сегмента. На принимающей стороне пришедший сегмент подтверждается сообщением, в котором указывается (А= i, W=j). Такая запись имеет следующее значение: если величина А (АСК) равна i, это значит, что сообщение подтверждает получение всех байтов, вплоть до номера в последовательности i-1; следующие ожидаемые байты имеют номер в последовательности г. Кроме того, выдается разрешение на посылку дополнительного окна W( Window) из j байтов, то есть байтов с номерами в последовательности от i до i +j - 1. На рисунке иллюстрируется работа этого механизма. Окна передачи и приема указывают количество байтов данных.
Для большей наглядности покажем поток данных, идущий только в одном направлении, и предположим, что в каждом сегменте посылаются 200 байт данных. Во время установления соединения номера в последовательностях отправителя и получателя синхронизированы и станция А имеет начальный лимит на отсылку данных 1400 байт, начиная с номера байта 1001. После посылки 600 байт в трех сегментах станция А уменьшает свое окно отсылки до 800 байт (номера с 1601 до 2400). После получения этого сегмента станция В подтверждает получение всех байтов, вплоть до 1601, и формирует свое окно приема на 1000 байт. Это означает, что станция А может посылать байты, начиная с номера 1601 и заканчивая номером 2600, то есть пять сегментов. Однако к тому моменту, когда сообщение от станции В доходит до станции А, последняя уже успела выслать два сегмента, содержащие байты 1601-2000, что позволял начальный лимит. Следовательно, оставшийся лимит станции А на этот момент составляет всего 400 байт или два сегмента. Во время обмена станция А продвигает левую границу своего окна каждый раз, когда осуществляет передачу. Правая граница передвигается только тогда, когда станция получает новый лимит.
На практике обе стороны одновременно задействуют режимы передачи и приема, так как данные могут передаваться в обоих направлениях (происходит полнодуплексная передача). Механизм выделения лимита является достаточно гибким. Например, рассмотрим ситуацию, при которой последнее сообщение, посланное станцией В, было (A= i, W = j). Последним байтом данных, полученным станцией В, был байт с номером i-1. Для увеличения лимита до значения k, при условии, что kj и дополнительные данные не поступали, станция В формирует сообщение (A = i, W = k). Для подтверждения входящего сегмента, содержащего т байт данных (от) без выделения дополнительного лимита, станция В формирует сообщение (А = i+m, W=j-m).
Следует отметить, что от получателя не требуется немедленного подтверждения приходящих сегментов. Он может ожидать некоторое время, а затем сформировать подтверждение сразу на несколько сегментов. Получатель должен проводить какую-то политику, регулирующую количество данных, которое он позволяет передавать отправителю. Можно выделить две политики получателя: консервативную и оптимистическую. Консервативная схема управления потоком основана на том, что лимит выделяется в соответствии с имеющимся доступным буферным пространством. Если это правило применить к ситуации, показанной на рис. 7.10, то первое лимитирующее сообщение говорит о том, что станция В может разместить 1000 байт в своем буфере, а второе — о том, что станция В может разместить 1400 байт. Консервативная схема управления потоком может ограничить пропускную способность логического соединения в ситуации, когда в сети возникают большие задержки.
Получатель может более эффективно использовать пропускную способность канала с помощью оптимистического выделения лимита, сообщая о свободном буферном пространстве, которого он на данный момент фактически не имеет. Например, если буфер получателя заполнен, но он ожидает, что сможет освободить 1000 байт буферного пространства за время прохождения информации из конца в конец соединения, он может послать кредит на 1000 байт. Если получатель может поддерживать скорость, заданную отправителем, то такая схема способна повысить пропускную способность и не принесет вреда. Если же отправитель работает быстрее получателя, то некоторые сегменты будут отбрасываться из-за занятого буфера, что повлечет за собой повторную передачу. В таком случае оптимистическое управление потоком может усугубить ситуацию с перегрузкой в сети.
Сколько сегментов могут одновременно оставаться неподтвержденными? Управление данными при помощи окна показано на следующем рисунке. Данные, которые необходимо передать на удаленную сетевую станцию, ТСР получает от приложения. Эти данные последовательно размещаются в памяти, где ждут отправки по соединению до удаленной станции (пока IP не сможет отослать пакет). ТСР располагает поверх данных окно, которое делит на три категории:
· посланные и подтвержденные;
· посланные, но не подтвержденные;
· ожидающие отсылки.
Этот механизм называется скользящим окном, так как окно скользит по сегменту данных по мере отсылки и подтверждения каждого пакета данных.
Рассмотрим рисунок. Порядковые номера 100-104 были переданы целевой станции, и целевая станция подтвердила прием этих сегментов. Пакеты, содержащие порядковые номера 105-108, посланы исходящей станцией, но на них она не получила подтверждения. Сегменты, в которые входят порядковые номера 109-114, пока находятся на станции-отправителе и ожидают отправки. Сегментов с номерами 115-118 еще нет в окне.
Размер окна управляется полем размера окна в заголовке подтверждения ТСР. Если принимающая станция (целевая станция) ощущает недостаток в буферном пространстве (область памяти, сохраняющая входящие данные), то она может попросить отправителя замедлить скорость передачи до объема данных, которые она в состоянии обработать. Это реализуется посредством поля окна в заголовке пакета ТСР. Данное поле будет содержать количество байт (определяя диапазон порядковых номеров), которые целевая станция успевает обработать. Поле окна в заголовке ТСР изображено на рисунке к разделу «Поля ТСР».
Когда удаленная сетевая станция не сумеет больше принимать данные, она сможет задать в поле окна значение 0 и продолжать отсылать эти нулевые пакеты до тех пор, пока не будет способна снова принимать данные (то есть, отправитель может послать данные узлу, а этот узел должен ответить подтверждением с номером предыдущего подтверждения и полем окна, установленным в нулевое значение).
Как только буферное пространство освободится, станция передаст пакет со значением размера окна, отличным от 0, чтобы показать, что она уже в состоянии принимать данные. Однако, если установлен бит срочности, это говорит получателю, что у отправителя есть экстренная информация, ожидающая отправки.
Такая методика управления соединением позволяет ТСР реализовывать управление передачей данных путем информирования ТСР на передающей стороне о том, сколько данных способен принять получатель. Это дает возможность и отправителю, и получателю поддерживать устойчивый поток данных через соединение.
Какие новые возможности дает использование стека меток MPLS?