TCP_UDP.ppt
- Количество слайдов: 69
Транспортный уровень стека протоколов TCP/IP
Дейтаграммный протокол UDP (RFC 768) • Зарезервированные и доступные порты • Мультиплексирование прикладных протоколов • Формат дейтаграммы UDP
Нет гарантий доставки – • дейтаграммный протокол, • без установления соединений • best effort
Основная функция протокола UDP – мультиплексирование и демультиплексирование процессов на основе портов Порт UDP • идентификатор приложения • определяет обменный буфер, создаваемый ОС в оперативной памяти • если буфер переполняется, то сообщения отбрасываются
TFTP Выходн. буфер Appl DHCP Выходн. буфер Выходн буфер Порт 69 Входн. буфер Порт 67 Протокол UDP Протокол IP Драйвер Ethernet Порт 1056
Назначение номеров портов прикладным процессам 1. централизованное • для популярных сервисов - стандартные, зарезервированные (assigned, присвоенные) номера в диапазоне 1 -1023 • Internet Assigned Numbers Authority (IANA) • Например: серверы TFTP - 69, DNS- 53, DHCP – 67, SNMP - 161 • Уникальны в пределах Internet 2. • 1. 2. 3. локальное для клиентских процессов выделяются операционной системой по запросу произвольные номера, обычно в диапазоне 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 переносит отдельное пользовательское сообщение Протокол UDP К протоколу IP
Заголовок UDP
Тип протокола - 17
Протокол надежной передачи данных TCP (RFC 793) • Сравнение с UDP • Порты, сокеты, соединения • Концепция скользящего окна • Процедура установления соединения • Процедура квитирования в TCP • Адаптивный выбор тайм-аута • Реакция на перегрузку
Протокол TCP, в отличие от протокола UDP, не может быть использован для широковещательной и групповой передачи
Формирование TCP-сегментов из потока байтов
Основные задачи протокола TCP • передавать непрерывные потоки данных между клиентами в обоих направлениях • обеспечивать защиту от разрушения данных, потери, дублирования и нарушения очередности получения - нумерация, квитанции • управлять количеством данных, посылаемых ему отправителем - окном • адресовать приложения - номера портов • инициализировать и поддерживать определенную информацию о состоянии каждого потока данных - соединениях
Мультиплексирование портов для идентификации приложения FTP Порт 21 telnet Appl Порт 23 Порт 1056 Протокол TCP Внутренние буферы TCP Заголовок сегмента Сегменты TCP Протокол IP Драйвер Ethernet
TCP-соединение создает надежный логический канал связи между конечными узлами
Один сокет может участвовать в нескольких соединениях APPL 3 Socket (IP 3, n 3) TCP IP 3 APPL 2 Socket (IP 2, n 2) TCP IP 2 , n tio (IP 3 c ne 2), n Co 2, n {(IP )} n 3 Conn ection {(IP 2, n 2), ( IP 1, n 1)} APPL 1 TCP IP 1 Socket (IP 1, n 1)
Демультиплексирование TCP на основе соединений www 2. tour. ru – IP 2 www 1. model. ru – IP 1 WWW 2 WWW 1 HTTP {(IPk, nk), (IP 1, 80)} {(IPk, nk), (IP 2, Buffers 80)} {(IPm, nm), (IP 2, 80)} TCP IP IP 1, IP 2 к (IPk, nk) Browsers m (IPm, nm)
Сервис TCP • Доступ к ТСР сервису происходит через сокет • Сокет состоит из IP адреса хоста и 16 разрядного локального номера на хосте, называемого порт • Порт - это TSAP для ТСР • Каждое соединение идентифицируется парой сокетов, между которыми оно установлено • Порты с номерами до 256 зарезервированы для стандартного сервиса • Все ТСР соединения - дуплексные
Сервис TCP Протокол позволяет решать следующие задачи · восстанавливать порядок сегментов · убирать дубликаты сегментов, в каком бы виде (фрагментация) они не поступали · определять разумную задержку для time out для подтверждений в получении сегмента · устанавливать и разрывать соединения надежно · управлять потоком · управлять перегрузками
Заголовок TCP-сегмента
TCP заголовок
Псевдозаголовок
Сервис TCP • ТСР соединение поддерживает только соединение точка-точка. Нет ТСР соединений от одного ко многим • ТСР обеспечивает поток байтов, а не поток сообщений • Флаг PUSH в заголовке ТСР пакета - пакет должен быть передан немедленно • Флаг URGENT - все накопленные данные по данному соединению передаются сразу • Когда срочные данные поступают к месту назначения, то получателя прерывают и передают эти данные
Нумерация байтов в TCP-сегменте TCP segment TCP header Байт с конечным номером Байт с начальным номером
Идентификатор сегмента – номер первого байта 38440 1460 36980 1460 35520 870 34060 1460 • Протокол TCP может выжидать заполнения буфера перед отправкой сегмента. • Приложение должно указать протоколу TCP, если требуется срочная передача – параметр push • Приложение-отправитель должно указать протоколу TCP, если какие-то данные необходимо переслать приложению-получателю вне очереди – параметр urgent data 32600
(IP 1, n 1) (IP 2, n 2) TCP-соединение Буфер отправления Буфер приема Буфер копий Буфер приема Буфер отправления Окно Буфер копий Система буферов TCP-соединения
Особенности реализации алгоритма скользящего окна в протоколе TCP
Накопительный принцип квитирования
Управление окном в TCP
Стратегия передачи в TCP • Типичная схема управления окнами – TCP не требует от агента сразу передавать сегмент, как только он получен от приложения – Стратегия Нагля для работы с однобайтными приложениями – Стратегия Дэвида Кларка против синдрома глупого окна
Синдром глупого окна
Установка TCP-соединения в нормальном случае (а); столкновение вызовов (b)
Управление таймерами в TCP Алгоритм Джекобсона (Jacobson, 1988)
Плотность вероятности времени прибытия подтверждения на канальном (а) и транспортном (b) уровнях
Получатель малой емкости (а); медленная сеть (b)