Транспортный уровень стека протоколов TCP/IP Дейтаграммный протокол UDP







































































10210-tcp_udp.ppt
- Количество слайдов: 69
Транспортный уровень стека протоколов TCP/IP
Дейтаграммный протокол UDP (RFC 768) Зарезервированные и доступные порты Мультиплексирование прикладных протоколов Формат дейтаграммы UDP
Нет гарантий доставки – дейтаграммный протокол, без установления соединений best effort
Порт UDP идентификатор приложения определяет обменный буфер, создаваемый ОС в оперативной памяти если буфер переполняется, то сообщения отбрасываются Основная функция протокола UDP – мультиплексирование и демультиплексирование процессов на основе портов
Назначение номеров портов прикладным процессам централизованное для популярных сервисов - стандартные, зарезервированные (assigned, присвоенные) номера в диапазоне 1-1023 Internet Assigned Numbers Authority (IANA) Например: серверы TFTP - 69, DNS- 53, DHCP – 67, SNMP - 161 Уникальны в пределах Internet локальное для клиентских процессов выделяются операционной системой по запросу произвольные номера, обычно в диапазоне 1024-5000 уникальны в пределах компьютера
RFC 1700 The Well Known Ports are those from 0 through 1023. The Registered Ports are those from 1024 through 49151 The Dynamic and/or Private Ports are those from 49152 through 65535
Протокол UDP Поток данных от приложения Результат отдельной операции вывода К протоколу IP Каждая дейтаграмма UDP переносит отдельное пользовательское сообщение
Заголовок UDP
Тип протокола - 17
Протокол надежной передачи данных TCP (RFC 793) Сравнение с UDP Порты, сокеты, соединения Концепция скользящего окна Процедура установления соединения Процедура квитирования в TCP Адаптивный выбор тайм-аута Реакция на перегрузку
Протокол TCP, в отличие от протокола UDP, не может быть использован для широковещательной и групповой передачи
Формирование TCP-сегментов из потока байтов
Основные задачи протокола TCP передавать непрерывные потоки данных между клиентами в обоих направлениях обеспечивать защиту от разрушения данных, потери, дублирования и нарушения очередности получения - нумерация, квитанции управлять количеством данных, посылаемых ему отправителем - окном адресовать приложения - номера портов инициализировать и поддерживать определенную информацию о состоянии каждого потока данных - соединениях
FTP telnet Порт 23 Протокол TCP Appl Протокол IP Внутренние буферы TCP Сегменты TCP Заголовок сегмента Мультиплексирование портов для идентификации приложения
TCP-соединение создает надежный логический канал связи между конечными узлами
Socket (IP2, n2) Socket (IP1, n1) IP2 TCP APPL2 IP3 Socket (IP3, n3) TCP APPL3 IP1 TCP APPL1 Connection {(IP2, n2), (IP3, n3)} Connection {(IP2, n2), (IP1, n1)} Один сокет может участвовать в нескольких соединениях
Демультиплексирование TCP на основе соединений
Сервис TCP Доступ к ТСР сервису происходит через сокет Сокет состоит из IP адреса хоста и 16 разрядного локального номера на хосте, называемого порт Порт - это TSAP для ТСР Каждое соединение идентифицируется парой сокетов, между которыми оно установлено Порты с номерами до 256 зарезервированы для стандартного сервиса Все ТСР соединения - дуплексные
Сервис TCP Протокол позволяет решать следующие задачи восстанавливать порядок сегментов убирать дубликаты сегментов, в каком бы виде (фрагментация) они не поступали определять разумную задержку для time out для подтверждений в получении сегмента устанавливать и разрывать соединения надежно управлять потоком управлять перегрузками
Заголовок TCP-сегмента
TCP заголовок
Псевдозаголовок
Сервис TCP ТСР соединение поддерживает только соединение точка-точка. Нет ТСР соединений от одного ко многим ТСР обеспечивает поток байтов, а не поток сообщений Флаг PUSH в заголовке ТСР пакета - пакет должен быть передан немедленно Флаг URGENT - все накопленные данные по данному соединению передаются сразу Когда срочные данные поступают к месту назначения, то получателя прерывают и передают эти данные
Нумерация байтов в TCP-сегменте TCP header TCP segment Байт с начальным номером Байт с конечным номером
Идентификатор сегмента – номер первого байта 32600 Протокол TCP может выжидать заполнения буфера перед отправкой сегмента. Приложение должно указать протоколу TCP, если требуется срочная передача – параметр push Приложение-отправитель должно указать протоколу TCP, если какие-то данные необходимо переслать приложению-получателю вне очереди – параметр urgent data
(IP1, n1) (IP2, n2) TCP-соединение Буфер отправления Буфер приема Буфер отправления Окно Буфер копий Система буферов TCP-соединения Буфер приема
Особенности реализации алгоритма скользящего окна в протоколе TCP
Накопительный принцип квитирования
Управление окном в TCP
Стратегия передачи в TCP Типичная схема управления окнами TCP не требует от агента сразу передавать сегмент, как только он получен от приложения Стратегия Нагля для работы с однобайтными приложениями Стратегия Дэвида Кларка против синдрома глупого окна
Синдром глупого окна
Установка TCP-соединения в нормальном случае (а); столкновение вызовов (b)
Управление таймерами в TCP Алгоритм Джекобсона (Jacobson, 1988)
Плотность вероятности времени прибытия подтверждения на канальном (а) и транспортном (b) уровнях
Получатель малой емкости (а); медленная сеть (b)