Автор работы: Пользователь скрыл имя, 18 Октября 2011 в 20:38, реферат
Приложения Интернет, например программа ftp, передающая файлы по сети, обычно использует TCP, так как он предлагает надежную потокоориентированную службу доставки. Приложения типа электронной почты часто пользуются TCP по той же самой причине. Не требующие особой надежности приложения типа tftp (протокол простой передачи файлов, trivial file transfer protocol) используют UDP. Приложения на основе протокола времени (time protocol), связывающиеся с серверами времени Интернет, могут пользоваться как тем, так и другим протоколом. Прочтя эту главу, вы будете точно знать, в каком случае может потребоваться TCP, а в каком — UDP.
Введение 3
1. Протокол доставки пользовательских дейтаграмм UDP 5
1.1 Зарезервированные и доступные UDP-порты 5
1.2 Мультиплексирование и демультиплексирование запросов протоколом UDP 6
1.3 Формат сообщений UDP 6
1.4 Контрольное суммирование 7
2. Протокол надежной доставки сообщений TCP 9
2.1 Формат сообщений TCP 9
2.2 Порты и установление TCP-соединений 11
2.3 Концепция квитирования 12
2.4 Реализация скользящего окна в протоколе TCP 13
2.5 Выбор тайм-аута 14
Заключение
Если контрольная сумма правильная (или равна нулю), то проверяется порт назначения, указанный в заголовке датаграммы. Если к этому порту подключен прикладной процесс, то прикладное сообщение, содержащееся в датаграмме, становится в очередь для прочтения. В остальных случаях датаграмма отбрасывается. Если датаграммы поступают быстрее, чем их успевает обрабатывать прикладной процесс, то, при переполнении очереди сообщений, поступающие датаграммы отбрасываются модулем 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 видно,
что в этом случае производительность
обмена данными существенно снижается
- хотя передатчик и мог бы послать следующий
кадр сразу же после отправки предыдущего,
он обязан ждать прихода квитанции. Снижение
производительности для этого метода
коррекции особенно заметно на низкоскоростных
каналах связи, то есть в территориальных
сетях.