Протоколы транспортного уровня
Содержание
Введение
1. Протокол доставки пользовательских дейтаграмм UDP 5
1.1 Зарезервированные и доступные UDP-порты 5
1.2
Мультиплексирование и демультиплексирование
запросов протоколом UDP
1.3
Формат сообщений UDP
1.4
Контрольное суммирование
2.
Протокол надежной доставки сообщений
TCP
2.1
Формат сообщений TCP
2.2
Порты и установление TCP-соединений
2.3
Концепция квитирования
2.4
Реализация скользящего окна в протоколе
TCP
2.5
Выбор тайм-аута
Заключение
Список
использованной литературы
ВВЕДЕНИЕ
Приложение, работающее с Интернет, как правило, общается с одним из протоколов транспортного уровня TCP/IP: протоколом управления транспортировкой (TCP) или протоколом пользовательских датаграмм (UDP). Приложение строит свою работу на взаимодействии с одним из этих протоколов.
Приложения Интернет, например программа ftp, передающая файлы по сети, обычно использует TCP, так как он предлагает надежную потокоориентированную службу доставки. Приложения типа электронной почты часто пользуются TCP по той же самой причине. Не требующие особой надежности приложения типа tftp (протокол простой передачи файлов, trivial file transfer protocol) используют UDP. Приложения на основе протокола времени (time protocol), связывающиеся с серверами времени Интернет, могут пользоваться как тем, так и другим протоколом. Прочтя эту главу, вы будете точно знать, в каком случае может потребоваться TCP, а в каком — UDP.
Конечная цель сетевого
·
Как транспортный протокол
· Назначение полей данных в заголовке UDP.
· Как TCP обеспечивает надежную доставку данных.
·
Как TCP использует скользящее
окно для увеличения
· Как модули TCP устанавливают и заканчивают соединение.
·
Как TCP использует сообщения-
·
Назначение полей данных в
заголовке TCP.
Что такое транспортный
На первый взгляд кажется, что IP, служба доставки Интернет, и транспортные протоколы выполняют одинаковые функции. На самом деле IP модуль доставляет данные только между двумя компьютерами. Транспортный уровень и его протоколы передают данные между приложениями.
Во многих случаях ответственность транспортных протоколов за передаваемые данные такая же, как и у протокола Интернет. И вообще, большинство из того, что вы узнали относительно IP-датаграммы и IP-заголовка, в полной мере применимо и к транспортным протоколам. Вы знаете, что TCP/IP включает два транспортных протокола: протокол управления транспортировкой (собственно, транспортный протокол, TCP) и протокол пользовательских датаграмм (UDP). Ориентированный на соединение протокол управления транспортировкой для приема и передачи данных использует надежный поточно-байтовый способ доставки. Сетевое соединение устанавливается в виде виртуальной цепи. Протокол пользовательских датаграмм ненадежен, не ориентирован на соединение, передает и принимает данные при помощи датаграмм.
Что такое порт транспортного уровня?
Понятие «порте» в терминологии
TCP/IP очень похоже на IP-адрес компьютера.
Только порт обозначает
модемом, концепция портов TCP/IP должна показаться вам еще более знакомой.
Примечание: В случае модема, компьютер принимает и посылает данные через последовательный порт. В случае принтера, данные обыкновенно только посылаются.
Порты персональных
1.
Протокол доставки пользовательских
дейтаграмм UDP
Протокол UDP является одним из
двух основных протоколов
1.1
Зарезервированные
и доступные UDP-порты
В то время, как задачей сетевого уровня является передача данных между произвольными узлами сети, задача транспортного уровня заключается в передаче данных между любыми прикладными процессами, выполняющимися на любых узлах сети. Действительно, после того, как пакет средствами протокола IP доставлен в компьютер-получатель, данные необходимо направить конкретному процессу-получателю. Каждый компьютер может выполнять несколько процессов, более того, прикладной процесс тоже может иметь несколько точек входа, выступающих в качестве адреса назначения для пакетов данных.
Пакеты, поступающие на транспортный
уровень, организуются
Назначение номеров портов прикладным процессам осуществляется либо централизовано, если эти процессы представляют собой популярные общедоступные сервисы, типа сервиса удаленного доступа к файлам TFTP (Trivial FTP) или сервиса удаленного управления telnet, либо локально для тех сервисов, которые еще не стали столь распространенными, чтобы за ними закреплять стандартные (зарезервированные) номера.
Централизованное присвоение
Локальное присвоение номера
порта заключается в том, что
разработчик некоторого
1.2
Мультиплексирование
и демультиплексирование
запросов протоколом UDP
Протокол UDP ведет для каждого порта две очереди: очередь пакетов, поступающих в данный порт из сети, и очередь пакетов, отправляемых данным портом в сеть.
Процедура обслуживания
Распределение протоколом UDP поступающих
от сетевого уровня пакетов
между набором высокоуровневых сервисов,
идентифицированных номерами портов,
называется демультиплексированием.
1.3
Формат сообщений UDP
Единица данных протокола UDP называется
UDP-пакетом или
Поле
source port - номер порта процесса-
Поле
destination port - номер порта процесса-
Поле message length - длина UDP-пакета в байтах.
Поле checksum - контрольная сумма UDP-пакета.
Не все поля UDP-пакета обязательно
должны быть заполнены.
1.4
Контрольное суммирование
Когда модуль UDP получает датаграмму
от модуля IP, он проверяет контрольную
сумму, содержащуюся в ее
Если контрольная сумма правильная (или равна нулю), то проверяется порт назначения, указанный в заголовке датаграммы. Если к этому порту подключен прикладной процесс, то прикладное сообщение, содержащееся в датаграмме, становится в очередь для прочтения. В остальных случаях датаграмма отбрасывается. Если датаграммы поступают быстрее, чем их успевает обрабатывать прикладной процесс, то, при переполнении очереди сообщений, поступающие датаграммы отбрасываются модулем UDP.
Отметим еще, что данные, отправляемые прикладным процессом через модуль UDP, достигают места назначения как единое целое. Например, если процесс-отправитель производит 5 записей в UDP-порт, то процесс-получатель должен будет сделать 5 чтений. Размер каждого записанного сообщения будет совпадать с размером каждого прочитанного. Протокол UDP сохраняет границы сообщений, определяемые прикладным процессом. Он никогда не объединяет несколько сообщений в одно и не делит одно сообщение на части.
Хотя к услугам протокола UDP
может обратиться любое
С другой стороны,
2.
Протокол надежной доставки
сообщений TCP
В стеке протоколов TCP/IP протокол TCP работает, как и протокол UDP, на транспортном уровне. Протокол TCP предоставляет транспортные услуги, отличающиеся от услуг UDP. Вместо ненадежной доставки датаграмм без установления соединений, он обеспечивает гарантированную доставку с установлением соединений между прикладными процессами в виде байтовых потоков.
Протокол TCP используется в тех
случаях, когда требуется
2.1
Формат сообщений TCP
Единицей данных протокола TCP
является сегмент. Информация, поступающая
к протоколу TCP в рамках логического
соединения от протоколов
Порт источника (SOURS PORT) занимает 2 байта, идентифицирует процесс-отправитель;
Порт назначения (DESTINATION PORT) занимает 2 байта, идентифицирует процесс-получатель;
Последовательный номер (SEQUENCE NUMBER) занимает 4 байта, указывает номер байта, который определяет смещение сегмента относительно потока отправляемых данных;
Подтвержденный номер (ACKNOWLEDGEMENT NUMBER) занимает 4 байта, содержит максимальный номер байта в полученном сегменте, увеличенный на единицу; именно это значение используется в качестве квитанции;
Длина заголовка (HLEN) занимает 4 бита, указывает длину заголовка сегмента TCP, измеренную в 32-битовых словах. Длина заголовка не фиксирована и может изменяться в зависимости от значений, устанавливаемых в поле Опции;
Резерв (RESERVED) занимает 6 битов, поле зарезервировано для последующего использования;
Кодовые биты (CODE BITS) занимают 6 битов, содержат служебную информацию о типе данного сегмента, задаваемую установкой в единицу соответствующих бит этого поля:
URG - срочное сообщение;
ACK - квитанция на принятый сегмент;
PSH
- запрос на отправку сообщения
без ожидания заполнения
RST
- запрос на восстановление
SYN
- сообщение используемое для
синхронизации счетчиков
FIN - признак достижения передающей стороной последнего байта в потоке передаваемых данных.
Окно (WINDOW) занимает 2 байта, содержит объявляемое значение размера окна в байтах;
Контрольная сумма (CHECKSUM) занимает 2 байта, рассчитывается по сегменту;
Указатель срочности (URGENT POINTER) занимает 2 байта, используется совместно с кодовым битом URG, указывает на конец данных, которые необходимо срочно принять, несмотря на переполнение буфера;
Опции (OPTIONS) - это поле имеет переменную длину и может вообще отсутствовать, максимальная величина поля 3 байта; используется для решения вспомогательных задач, например, при выборе максимального размера сегмента;
Заполнитель (PADDING) может иметь переменную длину, представляет собой фиктивное поле, используемое для доведения размера заголовка до целого числа 32-битовых слов.
В протоколе TCP предусмотрен случай, когда приложение обращается с запросом о срочной передаче данных (бит PSH в запросе установлен в 1). В этом случае протокол TCP передает указанные данные в сеть немедленно, не ожидая заполнения буфера до уровня размера сегмента. О таких данных говорят, что они передаются вне потока - out of band.
Не все сегменты, посланные через
соединение, будут одного и того
же размера, однако оба
Аналогичные проблемы решаются
и на сетевом уровне. Для того,
чтобы избежать фрагментации, должен
быть выбран соответствующий максимальный
размер IP-пакета. Однако при этом должны
быть приняты во внимание максимальные
размеры поля данных кадров всех протоколов
канального уровня, используемых в сети.
Максимальный размер сегмента не должен
превышать минимальное значение на множестве
всех MTU составной сети.
2.2
Порты и установление TCP-соединений
В протоколе TCP также, как и
в UDP, для связи с прикладными
процессами используются порты.
Однако в протоколе TCP порты используются несколько иным способом. Для организации надежной передачи данных предусматривается установление логического соединения между двумя прикладными процессами. Когда прикладной процесс начинает использовать TCP, то модуль TCP на машине клиента и модуль TCP на машине сервера начинают общаться. Эти два оконечных модуля TCP поддерживают информацию о состоянии соединения, называемого виртуальным каналом. Этот виртуальный канал потребляет ресурсы обоих оконечных модулей TCP. Канал является дуплексным: данные могут одновременно передаваться в обоих направлениях. Один прикладной процесс пишет данные в TCP-порт, они проходят по сети, и другой прикладной процесс читает их из своего TCP-порта. В рамках соединения осуществляется обязательное подтверждение правильности приема для всех переданных сообщений, и при необходимости выполняется повторная передача.
Соединение в протоколе TCP идентифицируется
парой полных адресов обоих
взаимодействующих процессов (
Установление соединения
При установлении соединения одна из сторон является инициатором. Она посылает запрос к протоколу TCP на открытие порта для передачи (active open).
После открытия порта протокол TCP на стороне процесса-инициатора посылает запрос процессу, с которым требуется установить соединение.
Протокол TCP на приемной стороне открывает порт для приема данных (passive open) и возвращает квитанцию, подтверждающую прием запроса.
Для того чтобы передача могла вестись в обе стороны, протокол на приемной стороне также открывает порт для передачи (active port) и также передает запрос к противоположной стороне.
Сторона-инициатор открывает порт для приема и возвращает квитанцию.
Соединение
считается установленным. Далее
происходит обмен данными в рамках
данного соединения.
2.3
Концепция квитирования
В рамках соединения
Для того, чтобы можно было
организовать повторную
Существуют два подхода к
Метод с простоями требует,
чтобы источник, пославший кадр,
ожидал получения квитанции (положительной
или отрицательной) от приемника и только
после этого посылал следующий кадр (или
повторял искаженный). Из рисунка 1 видно,
что в этом случае производительность
обмена данными существенно снижается
- хотя передатчик и мог бы послать следующий
кадр сразу же после отправки предыдущего,
он обязан ждать прихода квитанции. Снижение
производительности для этого метода
коррекции особенно заметно на низкоскоростных
каналах связи, то есть в территориальных
сетях.

- Протоколы ТСР/IP
- Протоколы удаленного доступа
- Протокольные вопросы приема иностранных делегаций
- Протокол, этикет для деловых людей
- Протонная проводимость твёрдых тел
- Протонная теория кислот и оснований Ренстеда
- Протонные магнитометры
- Протоколы генерации
- Протоколы и методы реализации VPN сетей
- Протоколы Интернет
- Протоколы маршрутизации
- Протоколы модема. Установка модема
- Протоколы сетевого уровня
- Протоколы следственных, судебных действий и иные документы