logo
IP технологии

3.4 Технология мультиплексирования демультиплексирования на транспортном уровне

Необходимость операций мультиплексирования и демультиплексирования возникает из- за того , что на хостах функционирует сразу несколько прикладных процессов, он определяется единым ИП_транспортным уровнем

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

Решение указаной задачи...

Основное определение

Мультиплексированными данными называют

- сбор фрагмегтов данных поступающих на транспортный уровень от различных сокетов процессов.

- Создание сегнментов путем присоединения заголовка с номером порта сокета к каждому фрагменту.

- Передача сегментов сетевому уровню.

Демультиплексированием данных на транспортном уровне хоста получателя называют.

- Анализ номера порта, содержащегося в принятом из сетевого уровня сегмента.

- Идентефикацию сокета, которому предназначен сегмент.

- Передача данных этому сокету.

Номер порта представляет собой шеснадцатиразрядное число, принимающие значения от 0 до 65535.

Номера в диапазоне от 0 до 1023 предназначены для использования в популярных протоколах прикладного уровня ( HTTP и фтп)

Список зарезервированных номеров приведен в документе рфс 1700 на www.iana.org

При разработке новых пиложений необходимо присваивать им собственные номера портов.

Идентификация в Udp

Подобная схема характерна для протокола Udp. который характеризуется совокупностью ИП_адресса хоста назначения и номера порта

Таким образом если два Udp сегмента имеют разные ИП адресса и номера портов отправителя, но одинаковые ИП адресса и номера портов получателя, оба сегмента будут отданы одному и тому же процессу на принимающем хосте. Зачем тогда номер порта отправителя?

Этот номер используется как часть обраного адресса.

Поцесс мультИПлексирования демультИПлексирования в протоколе TCP несколько сложнее.

При обработке сервер использует четыре параметра номер порта отправителя, ИП адресс отправителя...

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

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

Если у получателя возникает необходимость в отправке ответа, он скопирует значение поля отправителя в поле номера порта получателя ответного сегмента.

Аналогии идентефикации

Продолжая аналогию, введенную в п 3.2 поясним операции мультИПлексирования и демультИПлексирования для Udp и TCP сегментов на примере обмена письмами представителей ректората двух вузов. играющих роли конкретных прикладных процессов.

В этом случае секретарь передает все письма разом на почту _ сетевой уровень.

Так из отдельных писем сообщений мультИПлексирует....

Из отмеченного следует еще одно определение сокета и его вида.

Прикладной процесс в пределах отдельного компьютера парой.

Сокет, определенный ИП _ адрессом и номером идп_порта называется Udp сокетом.

или ИП адресом и номером TCP порта TCP сокетом.

3.5 Протокол UDP

3.5.1 Формат Udp сегмента

3.5.2 Контрольная сумма Udp сегмента

3.6 Пртокол TCP

3.6.1 Формат TCP сегмента

3.6.2 Порядок представления квитанций о получении TCP сегментов.

3.5 протокол Udp

Проткол Udp, описанный в документе рфс 768, выполняет минимум действий, необходимых для протокола транспортного уровня.

Фактически функции Udp сводятся к операциям мультИПлексирования и демультИПлексирования, а также к несложной проверке наличия ошибок в данных.

Таким образом при использовании Udp приложение почти напрямую взаимодействует с протоколом сетевого уровня ИП.

UDP получает сообщение от прикладного уровня, добавляет к ним поля номеров портов отравителя получателя для демультИПлексирования приемной стороной и передает полученный сегмент сетевому уровню.

Сетевой уровень заключает сегмнт в дейтаграмсу и передает ее хосту назначения ,,по возможности''

Если почледний успшно подучает сегмент, протокол UDP с помощью поля нлмера порта...

Важно, что протокол Udp не предусматривает процедуры рукопожатия пред началом...

Главные достоинства протокола Udp

1) Отсутствие процедуры установления соединения. Как уже отмечалось протокол TCP перед началом передачи данных требует тройного рукопожатия. Протокол Udp освобожден .....

2) Отсутствие информации о состоянии соединения. Это позволяет Udp серверу одновременно обслуживать гораздо больше клиентов, чем TCP серверу.

3) Небольшой размер заголовка, всего восемь байт, а длина заголовка TCP составляет двадцать байт.

4) Упрощенный механизм управления передачей данных. При использовании UDP данные, поступающие от приложения, сразу же упаковываются в сегмент и передается сетевому уровню.

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

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

Несмотря на широкое применение протокола ...

3.5.1 Формат Udp сегмента.

Данные приложения размещаются в поле данных сегмента. Например в поле данных может быть сэмпл потокового аудио.

Зоголовок Udp сегмента состоит из четырех духбайтовых полей.

Конрольная сумма предазначена для проверки ошибок в полученных данных.

3.5.2 Контрольная сумма Udp сегмента.

Она дназначена для опрделения, были ли какие либо биты сегмента искажены в процессе передачи, например, в результате помех или промежуточного хранения в маршрутизаторе.

Протокол Udp на передающей стороне вычисляет дополнение до 1 суммы всх шеснадцатиразрядных слов сегмента, игнорируя происходящие при скуммировании...

три шеснадцатиразрядных слова:

1) 0110011001100110

2) 0101010101010101

3) 0000111100001111

Суммы первых двух слов равна :

1) 0110011001100110

2) 0101010101010101

1011101110111011

3) 0000111100001111

1100101011001010

Дополнение до 1 вычисляется путем замены всех нулей сумы единицами и наоборот.

Дополнение до 1 слова 1100101011001010 является слово 0011010100110101, которое и будет записано в поле контрольной суммы.

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

Если ...

3.6 Протокол TCP

Протокол TCP существенно сложнее протокола Udp, поэтому

3.6.1 Формат TCP сегмента

1) 32 х разрядные поля порядкового номера пн и номера подтверждения нп, они необходимы для надежной передачи данных.

2) 16 и разрядное окно получателя, оно используется для управления потоком данных посредством придания окну получателя различной величины, может осуществлятся контроль перегрузки сети

3) 4 х оазрядное поле длины заголовка, измеряется оно в 32 х разрядных словах.Сюда нельзя записать постоянное число, потому что есть поле параметров у которого размер может менятся, как правило поле параметров остается пустым, что означает, что размер заголовка составляет двадцать байт( в Udp 8 байт)

4) Поле параметров, оно является необязательным, но используется когда стороны передающие принимающие договариваются о максимальном размере сегмента.

5) Поле флагов. Флаг есть или флага нет о не установлен, 6 бит уделяется на установку флага, на прктите используются четыре. Не используются поле срочности данных, два байта.

поле флага АСК является полем на принятый сегмент, RST, SYN, FIN. устанавливаются для установления и завершения соединения.

3.6.2 Порядок предоставления квитанций о получении TCP сегментов.

По значениям в полях НП и ПН оценивается, все ли передано, не было ли что утеряно. в эти поля TCP протокол умещает. Протокол рассматривает не структурированый у порядоченный поток данных, и каждому байту присваивает порядковый номер. Нумерация сегмента осуществляется по номеру первого байта, входящего в сегмент. N(K) для пользователя N( C) для клиента.

ФТП HTTP

| | | |

| | | |

------------------------------------

| ИП уровень |

________________________

| |

| |

ИП протокол

500 кбайт 1 кбайт

0 байт

----------------------------------------------------------------------------------------

| 0 | ....| 999| 1000|1001|.....|1999|...|499000|...|499999|

-------------------|--------------------------------|----------------------------------

1 сегмент 2 сегмент

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

В квитанции компьютер пишет число, превышающий порядковый номер последнего сегмента на единицу. ПН

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

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

Лекция 8

3.6.3 Установление TCP соединения.

3.6.4 Квитирование.

3.6.5 Контроль перегрузки сети.

3.6.3 Установление TCP соединения.

Это передача друг другу специальных сегментов, для того чтобы определить параметры обмена. Логическое соединение происходит тлько на транспортном уровне, а сетевое соединение об этом ни чег не знает. Для обмена сообщениями при уст. соединения используются простейшие сегменты в поле данных в которых отсутствуют байты. Условно считается что в них присутствует только один байт. Если мы передаем в поле сегмента N(K) и N(C) , то получено будет н(к)+1 и н(с)+1 .

Клиент Сервер

|--- | SYN- сегмент

| ------ | SYN=1; ПН= N(K)

| ---------> |______________________

| ----- |

| ------ |SYN=1; ACK=1

|<----- |ПН=N(C); НП=N(K)+1

|------ |______________________

| ----- | SYN=0

| ----> | ACK=1, ПН=N(K)+1; НП=N(C)+1

\/ \/

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

Клиент Сервер

|------- | FIN=1

| -- |____________

| ----> |

| ---- | ACK

| ---- --- |______________

|<--- ----- | FIN=1

|<---- |______________

| ------ | ACK

| ------> |

После обмена сообщениями соединение закрывается не сразу, устанавливается тайм аут.

3.6.4

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

Метод квитирования

Метод простоя требует, чтобы источник, пославший сегмент, дожидался от приемника квитанции, что сегмент получен и данные в нем корректны.

Только после этого источник имеет право отправить следующий сегмент.

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

Приемник должен избавлятся от дублирующих сегментов.

Основным недостатком простоя - его низкая производительность.

Метод скользящего окна.

В протоколе TCP используется другой метод квитирования.

В этом методе разрешается передавать некоторое количество сегментов в непрерывном режиме, то есть в максимально возможном для источника темпе.

Таким образом количество сегментов, которые разрешается передавать, ограничивается размером окна.

Этот размер указывается в поле ,,Окно получателя'' заголовка TCP сегмента и может менятся в процессе обмена каждой стороной.

При олучении очередной квитанции окно сдвигается, разрешая передачу следующего сегмента.

Метод скользящего окна более сложен в реализации, передатчик должен хранить в буфере копии всех кадров, на которые пока не получены квитанции.

Модуль TCP нарезает последовательность сегментов и поочередно отправляет их приложению получателю.

В этом потоке можно указать 4 границы:

1) отделяет сегменты.

2) По другую сторону грницы распологается окно размером W байт. часть сегментов отправлена, но квитанции не получено.

3) Оставшаяся часть окна, это сегменты которые пока не отправлены.

4) Указывает на начало сегментов, ни один из которых не может быть отправлен, до тех пор, пока не придет очередная квитанция.

Если размер окна равен W, то новые сегменты до тех по, пока очередной сегмегт не попадет байт с номером N+W.

Этот сегмент входит за рамки окна...

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

1999 2000 2999 3000 3999

4000 4999 передача кыитанции

на получении байта 5000

т1

т2

т3

т4

Таким образом процесс квитиоования в TCP является накопительным и важно подтверждение получения не отдельных сегментов...

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

Когжа приходит квитанция на этот сегмент, соответствующая квитнция удаляется из очереди.

Если квитанция не приходит до истечения срока, то копия сегмента, посылается повторно.