Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИКСС лекции.doc
Скачиваний:
152
Добавлен:
11.04.2015
Размер:
218.11 Кб
Скачать

Основные свойства протоколов транспортного уровня tcp и udp.

К транспортному уровню стека TCP относится протокол управления и передачи TCP, который описан в документе под названием RFC 793. И протокол пользовательских датаграмм, описанный в документе под названием RFC 768. В отличии от протоколов стека IP, протоколы TCP и UDP реализуются только на конечных узлах или хостах.

Главная задача протоколов транспортного уровня TCP и UDP заключается в передаче данных между прикладными процессами выполняющимися на компьютерах в сети. Для каждого процесса протоколы TCP и UDP ведут 2 системные очереди: очередь данных, поступающих к приложению из сети и очередь данных отправляемых из приложения. Такие очереди называются портами, при этом вход и выход очереди одного приложения рассматриваются как один код. для идентификации портов им присваиваются номера.

Если процессы представляют собой популярные системные службы, такие как FTP, HTTP, DNS и др. то за ними закрепляются стандартные назначенные номера портов, назначаемые локально разработчиками или операционной системой. В ответ на поступающий запрос от приложения на каждый ПК операционная система ведет список занятых и свободных номеров портов. При поступлении запроса от приложения выполненного на данном ПК, операционная система выделяет ему первый свободный номер – динамический. В дальнейшем

Для тех приложений, которые еще не стали столь распространены, номера портов назначаются локально или разработчиками этих приложений или ОС, в ответ на поступление запроса от приложения. На каждом ПК ОС ведет список занятых и свободных номеров портов. При поступлении запроса от приложения, выполненного на данном компьютере ОС дает ему первый свободный номер порта (динамический). В дальнейшем все сетевые приложения должны обращаться к нему по этому номеру.

После того как приложение завершит работу его номер возвращается в список свободных и может быть назначен другим приложениям. Динамические номера являются уникальными в пределах ОС каждого ПК. Но при этом обычной является ситуация совпадения номеров портов приложений выполненных на разных ПК.

Нет никакой зависимости между назначением номеров портов для приложений, использующих протокол TCP и для приложений, использующих протокол UDP. Но иногда DNS может работать и в TCP и в UDP.

Прикладной процесс однозначно определяется в пределах сети и в пределах отдельного ПК парой чисел, а именно IP-адресом и номером порта. Эта пара чисел называется сокетом (Socket). Сокет, определяемый IP-адресом и номером UDP-порта называется UDP-сокетом, а TCP-сокет определяется IP-адресом и номеров TCP-порта.

Протокол udp и udp-датаграммы

UDP является датаграммным протоколом, который реализует так называемый сервис по возможности (ненадежный) не гарантирующий доставку сообщения адресату. При работе на хосте-отправителе данные от приложений поступают к протоколу UDP через порт в виде сообщений. Протокол UDP в свою очередь добавляет к каждому отдельному сообщению свой 8-байтовый заголовок, формирует из этих сообщений собственные протокольные единицы, называемые UDP-датаграммами. После этого протокол передает их на сетевой уровень в IP-пакеты.

Каждая датаграмма переносит отдельное пользовательское сообщение, сообщения могут иметь различную длину, эта длина не превышает длину поля данных пакета протокола IP, который в свою очередь ограничен размером кадра (фрейма) технологии нижнего уровня. Поэтому если буфер UDP переполняется, то сообщение приложения отбрасывается. Заголовок UDP состоит из четырех 2-байтных полей:

1 поле содержит номер UDP-порта отправителя

2 поле – номер UDP-порта получателя

3 поле – контрольная сумма

4 поле – длина датаграммы

Т. е. функции протокола UDP сводятся к простой передаче данных между прикладным и сетевым уровнями. При контроле искажений протокол UDP только диагностирует, но не исправляет ошибки. Если контрольная сумма показывает, что в поле данных UDP-датаграммы произошла ошибка, протокол UDP просто отбрасывает поврежденную датаграмму.

Протокол TCP

Предназначен для передачи данных между приложениями, он основан на логическом соединении, что позволяет ему обеспечивать гарантированную доставку данных используя нижестоящий ненадежный пакетный сервис протокола IP.

При работе на узле отправителя протокол TCP рассматривает информацию поступающую к нему от процессов вышестоящего прикладного уровня как неструктурированный поток байтов. Эти данные (поступающие) средствами TCP буферизуются, потом этот буфер порезается на сегменты, далее сегменты снабжаются TCP-заголовком, т. е. инкапсулируются и передаются на сетевой уровень.

Основные различия TCP и UDP

UDP создает свои датаграммы на основе логической обособленности единиц данных, а именно сообщений генерируемых приложениями. В отличии от протокола UDP протокол TCP делит поступающий поток данных с уровня приложений на сегменты без учета их смысла или внутренней структуры.

Структура заголовка TCP-сегмента

Порт источника – 2 байта

Порт приемника – 2 байта

Последовательный номер (номер в последовательности)

Номер первого байта данных в сегменте, который определяет смещение сегмента относительно потока отправленных данных

Подтвержденный номер – это максимальный номер байтов в полученном сегменте увеличенный на 1

Поле длины заголовка

Зарезервированное поле

Поле кодовых бит

Поле окна – количество байтов данных данного сегмента, начиная с байта номер которого указан в поле подтвержденного байта

Поле контрольной суммы

Поле указателя срочности – это поле указывает на конец данных, которые необходимо срочно принять несмотря на переполнение буфера

Поле параметров – имеет переменную длину или вообще может отсутствовать и используется для решения вспомогательных задач направленных для согласования максимального размера сегмента

Поле-заполнитель – это фиктивное поле переменной длины, которое используют для доведения размеров заголовков до целого числа 32-битовых слов