Протокол 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-битовых слов
- Основные понятия инфокоммуникационных систем и сетей
- Модель osi
- Стек протоколов tsp/ip
- Компоненты стека tcp/ip. Ip-адресация
- Ip-адресация на сетевом уровне:
- Бесклассовая ip-адресация
- Пакеты и их инкапсуляция
- Формат ip-пакета
- Маршрутизация в сетях tcp/ip
- Стратегии маршрутизации
- Принцип работы динамической маршрутизации
- Структура записи в таблицах маршрутизации
- Основные свойства протоколов транспортного уровня tcp и udp.
- Протокол udp и udp-датаграммы
- Логическое соединение
- Маршрутизация в сетях tcp/ip
- Протоколы транспортного уровня
- Задачи, решаемые на транспортном уровне
- Протокол динамической настройки узла
- Алгоритм динамического назначения адресов
- Службы имен доменов dns
- Пространство имен dns
- Записи ресурсов
- Dns-серверы