Ирина Эланс
Принцип работы протоколов TCP и UDP
Министерство образования и науки Российской федерации
Российский государственный профессионально-педагогический университет
Институт электроэнергетики и информатики
Факультет информатики
Кафедра цифровых и информационных систем и компьютерных технологий обучения
Контрольная работа.
по дисциплине
«Компьютерные коммуникации и сети»
Вариант №1. «Принципы работы протоколов TCP и UDP»
|
Выполнил |
Студент гр. ЗКТ-311 Тюжин Дмитрий Александрович | ||||
Екатеринбург 2014
Содержание
User Datagram Protocol (UDP)
Описание протокола UDP
Основная терминология протокола UDP
Принцип работы UDP
Недостатки и преимущества UDP
Transmission Control Protocol (TCP)
Описание протокола TCP
Основная терминология протокола TCP
Принцип работы TCP
User Datagram Protocol (UDP)
User Datagram Protocol (UDP) — это простой, ориентированный на дейтаграммы протокол без организации соединения, предоставляющий быстрое, но необязательно надежное транспортное обслуживание. Он поддерживает взаимодействия "один со многими" и поэтому часто применяется для широковещательной и групповой передачи дейтаграмм.
Internet Protocol (IP) является основным протоколом Интернета. Transmission Control Protocol (TCP) и UDP — это протоколы транспортного уровня, построенные поверх лежащего в основе протокола.
TCP/IP — это набор протоколов, называемый также "пакетом протоколов Интернета" (Internet Protocol Suite), состоящий из четырех уровней. Запомните, что TCP/IP не просто один протокол, а семейство или набор протоколов, который состоит из других низкоуровневых протоколов, таких, как IP, TCP и UDP. UDP располагается на транспортном уровне поверх IP (протокола сетевого уровня). Транспортный уровень обеспечивает взаимодействие между сетями через шлюзы. В нем используются IP-адреса для отправки пакетов данных через Интернет или другую сеть с помощью разнообразных драйверов устройств.
Прежде чем приступать к изучению работы UDP, обратимся к основной терминологии, которую нужно хорошо знать. Ниже вкратце определим основные термины, связанные с UDP:
- Пакеты. В передаче данных пакетом называется последовательность двоичных цифр, представляющих данные и управляющие сигналы, которые передаются и коммутируются через хост. Внутри пакета эта информация расположена в соответствии со специальным форматом.
- Дейтаграммы. Дейтаграмма — это отдельный, независимый пакет данных, несущий информацию, достаточную для передачи от источника до пункта назначения, поэтому никакого дополнительного обмена между источником, адресатом и транспортной сетью не требуется.
- MTU (Maximum Transmission Unit). MTU характеризует канальный уровень и соответствует максимальному числу байтов, которое можно передать в одном пакете. Другими словами MTU — это самый большой пакет, который может переносить данная сетевая среда. Например, Ethernet имеет фиксированный MTU, равный 1500 байтам. В UDP, если размер дейтаграммы больше MTU, протокол IP выполняет фрагментацию, разбивая дейтаграмму на более мелкие части (фрагменты) так, чтобы каждый фрагмент был меньше MTU.
- Порты. Чтобы поставить в соответствие входящим данным конкретный процесс, выполняемый в компьютере, UDP использует порты. UDP направляет пакет в соответствующее место, используя номер порта, указанный в UDP-заголовке дейтаграммы. Порты представлены 16-битными номерами и, следовательно, принимает значения в диапазоне от 0 до 65 535.
Порты, которые также называют конечными точками логических соединений, разделены на три категории:
- Хорошо известные порты - от 0 до 1023
- Регистрируемые порты — от 1024 до 49151
- Динамические / частные порты — от 49152 до 65535
Заметим, что порты UDP могут получать более одного сообщения в каждый промежуток времени. В некоторых случаях сервисы TCP и UDP могут использовать одни и те же номера портов, например 7 (Echo) или 23 (Telnet).
UDP использует следующие известные порты:
UDP порты | |
Номер порта |
Описание |
15 |
NETSTAT — Состояние сети |
53 |
DNS — Сервер доменных имен |
69 |
TFTP - Простейший протокол передачи файлов |
137 |
Служба имен NetBIOS |
138 |
Дейтаграммная служба NetBIOS |
161 |
SMTP |
- IP-адреса. Дейтаграмма IP состоит из 32-битных IP-адресов источника и назначения. IP-адрес назначения задает конечную точку для дейтаграммы UDP, а IP-адрес источника используется для получения информации о том, кто отправил сообщение. В пункте назначения пакеты фильтруются, и те из них, адреса источников которых не входят в допустимый набор адресов, отбрасываются без уведомления отправителя. Однонаправленный IP-адрес уникально определяет хост в сети, тогда как групповой IP-адрес определяет конкретную группу адресов в сети. Широковещательные IP-адреса получаются и обрабатываются всеми хостами локальной сети или конкретной подсети.
- TTL. Значение времени жизни, или TTL (time-to-live), позволяет установить верхний предел числа маршрутизаторов, через которые может пройти дейтаграмма. Значение TTL не дает пакетам попасть в бесконечные циклы. Оно инициализируется отправителем и уменьшается на единицу каждым маршрутизатором, обрабатывающим дейтаграмму. Когда значение TTL становится нулевым, дейтаграмма отбрасывается.
- Групповая рассылка. Групповая рассылка — это открытый, базирующийся на стандартах, метод одновременного распространения идентичной информации нескольким пользователям. Групповая рассылка является основным средством протокола UDP, она невозможна для протокола TCP. Групповая рассылка позволяет добиться взаимодействия одного со многими, например, делает возможными такие использования, как рассылка новостей и почты нескольким получателям, интернет-радио или демонстрационные программы реального времени. Групповая рассылка не так сильно нагружает сеть, как широковещательная передача, поскольку данные отправляются сразу нескольким пользователям:
Принцип работы UDP
Когда приложение, базирующееся на UDP, отправляет данные другому хосту в сети, UDP дополняет их восьмибитным заголовком, содержащим номера портов адресата и отправителя, общую длину данных и контрольную сумму. Поверх дейтаграммы UDP свой заголовок добавляет IP, формируя дейтаграмму IP:
На предыдущем рисунке указано, что общая длина заголовка UDP составляет восемь байтов. Теоретически максимальный размер дейтаграммы IP равен 65 535 байтам. С учетом 20 байтов заголовка IP и 8 байтов заголовка UDP длина данных пользователя может достигать 65 507 байтов. Однако большинство программ работают с данными меньшего размера. Так, для большинства приложений по умолчанию установлена длина приблизительно 8192 байта, поскольку именно такой объем данных считывается и записывается сетевой файловой системой (NFS). Можно устанавливать размеры входного и выходного буферов.
Контрольная сумма нужна, чтобы проверить были ли данные доставлены в пункт назначения правильно или были искажены. Она охватывает как заголовок UDP, так и данные. Байт-заполнитель используется, если общее число октетов дейтаграммы нечетно. Если полученная контрольная сумма равна нулю, получатель фиксирует ошибку контрольной суммы и отбрасывает дейтаграмму. Хотя контрольная сумма является необязательным средством, ее всегда рекомендуется включать.
На следующем шаге уровень IP добавляет 20 байтов заголовка, включающего TTL, IP-адреса источника и получателя и другую информацию. Это действие называют IP-инкапсуляцией.
Как упоминалось ранее, максимальный размер пакета равен 65 507 байтам. Если пакет превышает установленный по умолчанию размер MTU, то уровень IP разбивает пакет на сегменты. Эти сегменты называются фрагментами, а процесс разбиения данных на сегменты — фрагментацией. Заголовок IP содержит всю информацию о фрагментах.
Когда приложение-отправитель "выбрасывает" дейтаграмму в сеть, она направляется по IP-адресу назначения, указанному в заголовке IP. При проходе через маршрутизатор значение времени жизни (TTL) в заголовке IP уменьшается на единицу.
Когда дейтаграмма прибывает к заданному назначению и порту, уровень IP по своему заголовку проверяет, фрагментирована ли дейтаграмма. Если это так, дейтаграмма собирается в соответствии с информацией, имеющейся в заголовке. Наконец прикладной уровень извлекает отфильтрованные данные, удаляя заголовок.
Недостатки и преимущества UDP
По сравнению с TCP UDP имеет следующие недостатки:
Отсутствие сигналов квитирования. Перед отправкой пакета UDP, отправляющая сторона не обменивается с получающей стороной квитирующими сигналами. Следовательно, у отправителя нет способа узнать, достигла ли дейтаграмма конечной системы. В результате UDP не может гарантировать, что данные будут действительно доставлены адресату (например, если не работает конечная система или сеть).
Напротив, протокол TCP ориентирован на установление соединений и обеспечивает взаимодействие между подключенными к сети хостами, используя пакеты. В TCP применяются сигналы квитирования, позволяющие проверить успешность транспортировки данных.
Использование сессий. Ориентированность TCP на соединения поддерживается сеансами между хостами. TCP использует идентификатор сеанса, позволяющий отслеживать соединения между двумя хостами. UDP не имеет поддержки сеансов из-за своей природы, не ориентированной на соединения.
Надежность. UDP не гарантирует, что адресату будет доставлена только одна копия данных. Чтобы отправить конечной системе большой объем данных, UDP разбивает его на небольшие части. UDP не гарантирует, что эти части будут доставлены по назначению в том же порядке, в каком они создавались в источнике. Напротив, TCP вместе с номерами портов использует порядковые номера и регулярно отправляемые подтверждения, гарантирующие упорядоченную доставку данных.
Безопасность. TCP более защищен, чем UDP. Во многих организациях брандмауэры и маршрутизаторы не пропускают пакеты UDP. Это связано с тем, что хакеры могут воспользоваться портами UDP, не устанавливая явных соединений.
Управление потоком. В UDP управление потоком отсутствует, в результате плохо спроектированное UDP-приложение может захватить значительную часть пропускной способности сети.
По сравнению с TCP UDP имеет следующие преимущества:
Нет установки соединения. UDP является протоколом без организации соединений, поэтому он освобождает от накладных расходов, связанных с установкой соединений. Поскольку UDP не пользуется сигналами квитирования, то задержек, вызванных установкой соединений, также удается избежать. Именно поэтому DNS отдает предпочтение UDP перед TCP — DNS работала бы гораздо медленнее, если бы она выполнялась через TCP.
Скорость. UDP работает быстрее TCP. По этой причине многие приложения предпочитают не TCP, a UDP. Те же средства, которые делают TCP более устойчивым (например сигналы квитирования), замедляют его работу.
Топологическое разнообразие. UDP поддерживает взаимодействия "один с одним" и "один с многими", в то время как TCP поддерживает лишь взаимодействие "один с одним".
Накладные расходы. Работа с TCP означает повышенные накладные расходы, издержки, налагаемые UDP, существенно ниже. TCP по сравнению с UDP использует значительно больше ресурсов операционной системы, и, как следствие, в таких средах, где серверы одновременно обслуживают многих клиентов, широко используют UDP.
Размер заголовка. Для каждого пакета заголовок UDP имеет длину всего лишь восемь байтов, в то время как TCP имеет 20-байтовые заголовки, и поэтому UDP потребляет меньше пропускной способности сети.
Transmission Control Protocol
TCP или Transmission Control Protocol, используется как надежный протокол, обеспечивающий взаимодействие через взаимосвязанную сеть компьютеров. TCP проверяет, что данные доставляются по назначению и правильно.
TCP — это ориентированный на соединения протокол, предназначенный для обеспечения надежной передачи данных между процессами, выполняемыми или на одном и том же компьютере или на разных компьютерах. Термин "ориентированный на соединения" означает, что два процесса или приложения прежде чем обмениваться какими-либо данными должны установить TCP-соединение. В этом TCP отличается от протокола UDP, являющегося протоколом "без организации соединения", позволяющим выполнять широковещательную передачу данных неопределенному числу клиентов.
Когда приложение отправляет данные, используя TCP, они перемещаются вниз по стеку протоколов. Данные проходят по всем уровням и в конце концов передаются через сеть как поток битов. Каждый уровень в наборе протоколов TCP/IP добавляет к данным некоторую информацию в форме заголовков.
Когда пакет прибывает на конечный узел в сети, он снова проходит через все уровни снизу доверху. Каждый уровень проверяет данные, отделяя от пакета свою информацию в заголовке и наконец данные достигают серверного приложения в той же самой форме, в какой они покинули приложение-клиент:
Прежде чем рассматривать, как TCP устанавливает соединение с другим хостом TCP, приведем несколько терминов, которые необходимо определить:
- Сегмент. Порция данных, которую TCP отправляет IP, называется сегментом TCP.
- Дейтаграмма. Порция данных, которую IP отправляет уровню сетевого интерфейса, называется дейтаграммой IP.
- Порядковый номер. Каждый сегмент TCP, отправленный через соединение, имеет назначенное ему число, которое называется "порядковым номером" (sequence number). Оно используется, чтобы гарантировать прибытие данных в правильном порядке.
Чтобы понять, как работает TCP, вкратце рассмотрим структуру заголовка TCP:
Порядковые номера и номера подтверждений используются TCP, чтобы гарантировать, что все данные прибывают в правильном порядке, а биты управления содержат разнообразные флаги, указывающие статус данных. Таких битов управления (обычно представляемых трехбуквенными сокращениями) всего шесть:
URG — указывает, что сегмент содержит срочные д
анные.
ACK — указывает, что сегмент содержит номер под
тверждения.
PSH — указывает, что данные нужно протолкнуть к
получающему пользователю.
RST — сбрасывает соединение.
SYN — используется для синхронизац
ии порядковых номеров.
FIN — указывает конец данных.
Для установления соединения TCP использует процесс, называемый "трехфазным квитированием" (Three-Phase Handshake). Как следует из названия, этот процесс включает три шага:
Клиент инициирует взаимодействие с сервером, посылая сегмент с установленным битом SYN. Этот сегмент содержит начальный порядковый номер клиента.
Сервер отвечает отправкой сегмента с установленными битами SYN и ACK. Этот сегмент содержит начальный порядковый номер сервера (не связанный с порядковым номером клиента) и номер подтверждения, на единицу больший порядкового номера клиента (т.е. равный следующему порядковому номеру, ожидаемому от клиента).
Клиент должен подтвердить этот сегмент отправкой обратно сегмента с установленным битом ACK. Номер подтверждения будет на единицу больше порядкового номера сервера, а порядковый номер будет равен номеру подтверждения сервера (т. е. на единицу больше начального порядкового номера клиента).
Теперь, узнав в общих чертах, как TCP устанавливает соединения, рассмотрим немного подробнее несколько операций TCP, чтобы понять, как TCP передает данные.
TCP передает данные порциями,
которые называются сегментами.
Чтобы гарантировать правильное
и в должном порядке получение
сегментов, каждому из них назначается
порядковый номер. Получатель отправляет
подтверждение получения сегмента.
Если подтверждение не получено
до истечения интервала - тайм-аута,
данные отправляются еще раз.
Каждому октету (восьми битам) данных
назначается порядковый номер. Порядковый
номер сегмента равен порядковому
номеру первого октета данных
в сегменте и это число отправляется
в заголовке TCP данного сегмента.
TCP использует порядковые
номера, чтобы гарантировать, что
дублирующие данные получающему
приложению переданы не будут и данные
будут доставлены в правильном порядке.
Заголовок TCP содержит контрольную сумму,
чтобы гарантировать корректность данных
при доставке. Если получен сегмент с неверной
контрольной суммой, он просто отбрасывается,
и подтверждение не отправляется. Это
означает, что, когда значение тайм-аута
истечет, отправитель повторит передачу
сегмента.
TCP управляет объемом направляемых
ему данных, возвращая с каждым
подтверждением "размер окна".
"Окно" — это объем данных,
который может принять получатель.
Между прикладной программой
и потоком данных в сети
располагается буфер данных. "Размер
окна" фактически представляет
собой разность между размером
буфера и объемом сохраненных
в нем данных. Это число отправляется
в заголовке, чтобы информировать
удаленный хост о текущем размере
окна. Такой прием называется
"скользящим окном" ("Sliding Window").
На рисунке ниже показан алгоритм Sliding Window, управляющий потоком данных, передаваемых в сети:
Полученные данные сохраняются в этом буфере, и приложение может обращаться к буферу и считывать из него данные со свойственной ему скоростью. По мере того как приложение считывает данные, буфер опустошается и может принимать следующие данные, поступающие из сети.
Если приложение считывает данные из буфера слишком медленно, размер окна падает до нуля, и удаленный хост получает команду прекратить передачу данных. Как только локальное приложение обработает данные в буфере, размер окна возрастает и поступление данных из сета возобновляется. Если размер окна больше размера пакета, отправитель знает, что получатель может хранить одновременно несколько пакетов, что повышает производительность.
TCP дает возможность нескольким
процессам на одной машине
одновременно использовать сокет
TCP. Сокет TCP состоит из адреса
хоста и уникального номера
порта, а TCP-соединение включает два
сокета на разных концах сети.
Порт может использоваться для
нескольких соединений одновременно
— один сокет на одном конце
может использоваться для нескольких
соединений с разными сокетами на
другом конце. Примером этой ситуации
служит Web-cepвep, слушающий порт 80 и отвечающий
на запросы от нескольких компьютеров.

- Принцип работы редуктора
- Принцип работы теплового насосо
- Принцип работы теплоцентрали
- Принцип работы цифрового фотоаппарата
- Принцип работы цифровых камер
- Принцип работы цифровых фотоаппаратов
- Принцип работы электронной почты. Принцип организации всемирной паутины. Поиск информации в Интернет
- Принцип работы лазерного дальномера
- Принцип работы лазерного, струйного и матричного принтеров
- Принцип работы микроволновой печи
- Принцип работы на Гематологическом анализаторе Medonic-« М-10»
- Принцип работы ПК
- Принцип работы преобразователя частоты
- Принцип работы пропарочной камеры