Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Для Ехора.doc
Скачиваний:
72
Добавлен:
04.06.2015
Размер:
517.12 Кб
Скачать

18. Протоколы транспортного уровня стека tcp/ip. Порты и сокеты.

Транспортный уровень

  • UDP (User Datagram Protocol) обеспечивает негарантированную доставку пользовательских дейтаграмм без установления соединения между заданными процессами передающего и принимающего узлов. Взаимодействующие процессы идентифицируются протокольными портами – целочисленными значениями в диапазоне 1- 65535. Порты 1-255 закреплены за широко известными приложениями, остальные назначаются динамически перед посылкой дейтаграммы. UDP-дейтаграмма имеет заголовок, включающий номера порта источника (для возможности корректного ответа), порта назначения и поле данных. Длина поля данных UDP-дейтаграммы произвольна, протокол обеспечивает ее инкапсуляцию (помещение в поле данных) в одну или несколько IP-дейтаграмм и обратную сборку на приемной стороне. UDP позволяет множеству клиентов использовать совпадающие порты: дейтаграмма доставляется клиенту (процессу) с заданным IP-адресом и номером порта. Если клиент не находится, то дейтограмма отправляется по адресу 0.0.0.0 (обычно это «черная дыра»).

  • TCP (Transmission Control Protocol) обеспечивает гарантированный поток данных между клиентами, установившими виртуальное соединение. Поток представляет собой неструктурированную последовательность байт, их интерпретация согласуется передающей и приемной сторонами предварительно. Для идентификации используются порты, аналогично UDP-портам. Активная сторона (инициатор обмена) обычно использует произвольный порт, соответствующий используемому протоколу верхнего уровня. Комбинация IP-адреса и номера порта называется гнездом TCP (TCP Socket). TCP буферизует входящий поток, ожидая перед посылкой заполнения большой дейтаграммы. Поток сегментируется, каждому сегменту назначается последовательный номер. Передающая сторона ожидает подтверждения приема каждого сегмента. Процесс, использующий TCP, получает уведомление о нормальном завершении передачи только после успешной сборки потока приемником. Протокол обеспечивает полный дуплекс, это означает, что потоки данных могут идти одновременно во встречных направлениях.

Заголовок TCP-сегмента.

Source Port – порт источника

Destination Port – порт назначения

Sequence Number – порядковый номер

Acknowledgment Number – номер подтверждения (max № байта в сегменте + 1)

Data Offset – смещение данных

биты

Window – окно

Checksum

Urgent Pointer

Опции

Данные

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

Сокет – совокупность номера (IP-адреса) хоста и номера порта.

19. Алгоритм скользящего окна в tcp/ip. Борьба с перегрузкой в tcp.

Метод скользящего окна является эффективным гибридом индивидуальных подтверждений и пакетной передачи. Здесь передатчик посылает серию нумерованных знаков, зная, что приход подтверждения может задержаться относительно своего кадра на время оборота по сети. Это время может быть предварительно определено, и ширина «окна» определяется числом кадров, которые можно послать на выбранной скорости передачи за время оборота. Подтверждения нумеруются в соответствии с кадрами, эта нумерация может быть циклической с модулем, определяемым шириной «окна». Если передатчик не получает подтверждения на кадр, выходящий из окна наблюдения, он считает его потерянным и повторяет его передачу. В случае получения NACK опять таки повторная передача делается только для этого кадра. На случай повтора передатчик должен держать в своем буфере все кадры окна, замещая выходящие (подтвержденные) новыми. Метод позволяет полностью использовать пропускную способность канала независимо от дальности передачи.