Стек протоколов tcp/ip: структура, уровни, настройка. интернет-протоколы

Синдром узкого окна

Существует еще одна проблема при пересылке данных по каналам TCP, которая называется синдром узкого окна (silly window syndrome; Clark, 1982). Такого рода проблема возникает в том случае, когда данные поступают отправителю крупными блоками, а интерактивное приложение адресата считывает информацию побайтно. Предположим, что в исходный момент времени буфер адресата полон и передающая сторона знает об этом (window=0). Интерактивное приложение считывает очередной октет из TCP-потока, при этом TCP-агент адресата поcылает уведомление отправителю, разрешающее ему послать один байт. Этот байт будет послан и снова заполнит до краев буфер получателя, что вызовет отправку ACK со значением window=0. Этот процесс может продолжаться сколь угодно долго, понижая коэффициент использования канала ниже паровозного уровня.

TCP[править]

TCP протокол базируется на IP для доставки пакетов, но добавляет две важные вещи:

  • установление соединения — это позволяет ему, в отличие от IP, гарантировать доставку пакетов
  • порты — для обмена пакетами между приложениями, а не просто узлами

Протокол TCP предназначен для обмена данными — это «надежный» протокол, потому что:

  1. Обеспечивает надежную доставку данных, так как предусматривает установления логического соединения;
  2. Нумерует пакеты и подтверждает их прием квитанцией, а в случае потери организует повторную передачу;
  3. Делит передаваемый поток байтов на части — сегменты — и передает их нижнему уровню, на приемной стороне снова собирает их в непрерывный поток байтов.

Прикладной уровень

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

Самые распространенные протоколы:

  • HTTP;
  • FTP;
  • SMTP;
  • DNS.

Каждый протокол определяет собственный порядок и принципы работы с данными.

HTTP (HyperText Transfer Protocol) предназначен для передачи данных. По нему отправляются, например, документы в формате HTML, которые служат основой веб-страницы. Упрощенно схема работы представляется как «клиент – сервер». Клиент отправляет запрос, сервер его принимает, должным образом обрабатывает и возвращает конечный результат.

FTP (File Transfer Protocol) служит стандартом передачи файлов в сети. Клиент посылает запрос на некий файл, сервер ищет этот файл в своей базе и при успешном обнаружении отправляет его как ответ.

  1. Определение адреса отправителя. Это необходимо для возвращения писем.
  2. Определение получателя. Этот шаг может повторяться некоторое количество раз при указании нескольких адресатов.
  3. Определение содержимого сообщения и отправка. В качестве служебной информации передаются данные о типе сообщения. Если сервер подтверждает готовность принять пакет, то совершается сама транзакция.

Стек протоколов, снова канальный уровень

О канальном уровне модели TCP/IP мы рассказали меньше всего, давайте вернемся еще раз к началу, чтобы рассмотреть инкапсуляцию протоколов и, что значит «стек».

Большинству пользователей знаком протокол Ethernet. В сети, по стандарту Ethernet, устройства отправителя и адресата имеют определенный MAC-адрес — идентификатор «железа». MAC-адрес инкапсулируется в Ethernet вместе с типом передаваемых данных и самими данными. Фрагмент данных, составленных в соответствии с Ethernet называется фреймом или кадром (frame).

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

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

На каждом этапе, подобно снежному кому, к уже имеющейся информации добавляется служебная информация, например, порт на прикладном уровне, необходимый для идентификации сетевого приложения. Добавление служебной информации к основной обеспечивают разные протоколы — сначала Ethernet, поверх него IP, еще выше TCP, над ним порт, означающий приложение с делегированным ему протоколом. Такая вложенность называется стеком, названным TCP/IP по двум главным протоколам модели.

Функциональность

Протокол управления передачей данных (TCP) работает с Интернет-протоколом (IP). Отправка пакетов данных с одного компьютера на другой является его основной функцией. TCP и IP, вместе взятые, являются двумя протоколами, которые управляют Интернетом. В документе № 793 о стандартах Запроса комментариев (RFC) протокол управления передачей определен Целевой группой по инженерно-техническому обеспечению Интернета (IETF).

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

В некоторых случаях пакеты теряются или доставляются не по назначению. Это связано с непредсказуемым сетевым поведением. Чтобы свести эту проблему к минимуму, ПТС запрашивает повторный заказ и доставку товаров. Это, однако, меняет скорость доставки на пару секунд. Необходимость в повторном упорядочении пакетов и ретрансляции после их получения создает задержку в потоке TCP. Согласно исследованиям, такие приложения, как FTP, Telnet, электронная почта и World Wide Web (WWW), предпочитают именно эту транспортную услугу — около 90% трафика этих сетей.

TCP/IP Адресация

Интернет-адреса, такие как IP (интернет-протокол), имеют полный механизм и являются одним из наиболее распространенных. TCP, с другой стороны, не нуждается в одной сложной системе адресации. TCP использует только номера, также называемые «портами», которые предоставляются устройством, с которым он в данный момент работает. Это делается для того, чтобы определить, для какой службы предназначены отправка и получение пакетов.

Например, порт 80 для TCP используется в основном для веб-браузеров, а порт 25 — для электронной почты. Для данной услуги вводится IP-адрес и номер порта, например 192.168.66.5:80.

IPsec

Internet Protocol Security (IPsec) — это набор протоколов для обеспечения защиты данных, передаваемых по IP-сети. В отличие от SSL, который работает на прикладном уровне, IPsec работает на сетевом уровне и может использоваться нативно со многими операционными системами, что позволяет использовать его без сторонних приложений (в отличие от OpenVPN).

IPsec стал очень популярным протоколом для использования в паре с L2TP или IKEv2, о чем мы поговорим ниже.

IPsec шифрует весь IP-пакет, используя:

  • Authentication Header (AH), который ставит цифровую подпись на каждом пакете;
  • Encapsulating Security Protocol (ESP), который обеспечивает конфиденциальность, целостность и аутентификацию пакета при передаче.

Обсуждение IPsec было бы неполным без упоминания утечки презентации Агентства Национальной Безопасности США, в которой обсуждаются протоколы IPsec (L2TP и IKE). Трудно прийти к однозначным выводам на основании расплывчатых ссылок в этой презентации, но если модель угроз для вашей системы включает целевое наблюдение со стороны любопытных зарубежных коллег, это повод рассмотреть другие варианты. И все же протоколы IPsec еще считаются безопасными, если они реализованы должным образом.

Теперь мы рассмотрим, как IPsec используется в паре с L2TP и IKEv2.

L2TP/IPsec

Layer 2 Tunneling Protocol (L2TP) был впервые предложен в 1999 году в качестве обновления протоколов L2F (Cisco) и PPTP (Microsoft). Поскольку L2TP сам по себе не обеспечивает шифрование или аутентификацию, часто с ним используется IPsec. L2TP в паре с IPsec поддерживается многими операционными системами, стандартизирован в RFC 3193.

L2TP/IPsec считается безопасным и не имеет серьезных выявленных проблем (гораздо безопаснее, чем PPTP). L2TP/IPsec может использовать шифрование 3DES или AES, хотя, учитывая, что 3DES в настоящее время считается слабым шифром, он используется редко.

У протокола L2TP иногда возникают проблемы из-за использования по умолчанию UDP-порта 500, который, как известно, блокируется некоторыми брандмауэрами.

Протокол L2TP/IPsec позволяет обеспечить высокую безопасность передаваемых данных, прост в настройке и поддерживается всеми современными операционными системами. Однако L2TP/IPsec инкапсулирует передаваемые данные дважды, что делает его менее эффективным и более медленным, чем другие VPN-протоколы.

IKEv2/IPsec

Internet Key Exchange version 2 (IKEv2) является протоколом IPsec, используемым для выполнения взаимной аутентификации, создания и обслуживания Security Associations (SA), стандартизован в RFC 7296. Так же защищен IPsec, как и L2TP, что может говорить об их одинаковом уровне безопасности. Хотя IKEv2 был разработан Microsoft совместно с Cisco, существуют реализации протокола с открытым исходным кодом (например, OpenIKEv2, Openswan и strongSwan).

Благодаря поддержке Mobility and Multi-homing Protocol (MOBIKE) IKEv2 очень устойчив к смене сетей. Это делает IKEv2 отличным выбором для пользователей смартфонов, которые регулярно переключаются между домашним Wi-Fi и мобильным соединением или перемещаются между точками доступа.

IKEv2/IPsec может использовать ряд различных криптографических алгоритмов, включая AES, Blowfish и Camellia, в том числе с 256-битными ключами.

IKEv2 поддерживает Perfect Forward Secrecy.

Во многих случаях IKEv2 быстрее OpenVPN, так как он менее ресурсоемкий. С точки зрения производительности IKEv2 может быть лучшим вариантом для мобильных пользователей, потому как он хорошо переустанавливает соединения. IKEv2 нативно поддерживается на Windows 7+, Mac OS 10.11+, iOS, а также на некоторых Android-устройствах.

Адресации. Порты

Для адресации на транспортном уровне используются порты. Это просто число от 1 до 65 535. Номера у процессов на одном хосте не должны повторяться, иначе мы не сможем понять к какому конкретно процессу отправить пришедший пакет.  

Записываются порты, следующим образом 192.168.1.3:80. Выделенные жирным это IP-адрес, а 80 — это порт. Чтобы в интернете подключиться к какому-нибудь сервису и к службе необходимо указать ip адрес и соответствующий порт. 

Типы портов

Если мы хотим подключиться к какому-нибудь сервису в интернете нам нужно знать не только ip адрес, но и порт. Поэтому договорились, что популярные сервисы будут работать на одних и тех же портах. Эти порты называются хорошо или широко известные порты 1-1024. 

Если вы разрабатываете свой сервис, и хотите, чтобы пользователи знали на каком порту он работает, вы можете зарегистрировать этот порт в организации IANA и выбрать себе порт из диапазона зарегистрированные. Но нужно смотреть, чтобы этот порт не был зарегистрирован  никаким другим разработчиком приложения. 

Использование, как хорошо известных портов, так и зарегистрированных это просто договоренность. Например Web сервер может работать не только на 80 порту, но и на любом другом. Часто используется support номер 88 или 8080. При этом, когда вы подключаетесь к такому веб-серверу Вы должны указать порт на котором он работает. 

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

IP-адреса и порты

Рассмотрим пример сетевого взаимодействия с использованием ip адресов и портов. Есть сервер на котором работает web сервер на порту №80. И есть клиент, который хочет подключиться к этому веб серверу. 

Клиент открывает браузер, операционная система автоматически назначает ему порт 50298. Браузер выполняет соединение с веб сервером, запрашивает веб страницу. Web сервер отправляет ему эту страницу. 

Предположим, что дальше клиент решил открыть еще один браузер и зайти на тот же самый сервер, на ту же самую веб-страницу. Операционная система автоматически назначила браузеру порт 50302. Браузер соединяется с веб-сервером, Web сервер видит в запросе не только ip клиента, но и его порт. Поэтому, когда приходит ответ он отправляется именно в тот браузер, из которого был направлен запрос, а не в другой браузер. Благодаря использованию не только ip адресов, но и портов, никакой путаницы не будет.

Описание модели TCP/IP в технической литературе

В модели TCP/IP, в отличие от модели OSI, физический уровень никак не описывается. Тем не менее, в некоторых учебниках, для лучшего понимания, описывается «гибридная модель TCP/IP — OSI» из 5 уровней, содержащая дополнительный — физический уровень.

Следующая таблица показывает различные вариации в описании модели TCP/IP. Количество уровней варьируется от трёх до семи.

Kurose, Forouzan Comer, Kozierok Stallings Tanenbaum Cisco Academy OSI model
Пять уровней Четыре + 1 уровень Пять уровней Пять уровней Четыре уровня Четыре уровня Три уровня Семь уровней
«Five-layer Internet model» or «TCP/IP protocol suite» «TCP/IP 5-layer reference model» «TCP/IP model» «TCP/IP 5-layer reference model» «Internet model» «Internet model» «Arpanet reference model» OSI model
Application Application Application Application Application (Прикладной) Application Application/Process Application
Presentation
Session
Transport Transport Host-to-host or transport Transport Transport (Транспортный) Transport Host-to-host Transport
Network Internet Internet Internet Internet (Сетевой) Internetwork Network
Data link Data link (Network interface) Network access Data link Link (Канальный) Network interface Network interface Data link
Physical (Hardware) Physical Physical Physical

Адресация

Для адресации в стеке протоколов TCP/IP используются три типа адресов:

  1. Локальные.
  2. Сетевые.
  3. Доменные имена.

Локальными называются MAC-адреса. Они используются для адресации в таких технологиях локальной сети как, например, Ethernet. В контексте TCP/IP слово «локальные» означает, что они действуют лишь в пределах подсети.

Сетевым адресом в стеке протоколов TCP/IP является IP-адрес. При отправке файла из его заголовка считывается адрес получателя. С его помощью маршрутизатор узнает номер хоста и подсеть и, основываясь на этой информации, прокладывает маршрут к конечному узлу.

Доменные имена – это удобочитаемые адреса веб-сайтов в Интернете. Веб-сервера в сети Интернет доступны по публичному IP-адресу. Он успешно обрабатывается компьютерами, однако для людей представляется слишком неудобным. Для того чтобы избежать подобных сложностей, используются доменные имена, которые состоят из областей, называемых «доменами». Они располагаются в порядке строгой иерархии, от верхнего уровня к нижнему.

Домен первого уровня представляет конкретную информацию. Общие (.org, .net) не ограничены какими-либо строгими границами. Обратная ситуация — с локальными (.us, .ru). Они, как правило, привязаны территориально.

Домены низших уровней – это все остальное. Он может быть любого размера и содержать любое количество значений.

Например, «www.test.quiz.sg» – корректное доменное имя, где «sg» — локальный домен первого (верхнего) уровня, «quiz.sg» — домен второго уровня, «test.quiz.sg» — домен третьего уровня. Доменные имена также могут называться DNS-именами.

DNS (Domain Name System) устанавливает соответствие между доменными именами и публичным IP-адресом. При наборе доменного имени в строке браузера DNS обнаружит соответствующий IP-адрес и сообщит устройству. Устройство обработает этот машинный код и вернет его в виде веб-страницы.

Point-to-Point протоколы

Отдельно расскажем о Point-to-Point (от точки к точке, двухточечный) протоколе также известном как PPP. PPP уникален по своим функциям, он применяется для коммуникации между двумя маршрутизаторами без участия хоста или какой-либо сетевой структуры в промежутке. При необходимости, PPP обеспечивает аутентификацию, шифрование, а также сжатие данных. Он широко используется при построении физических сетей, например, кабельных телефонных, сотовых телефонных, сетей по кабелю последовательной передачи и транк-линий (когда один маршрутизатор подключают к другому для увеличения размера сети).

У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM), интернет-провайдеры часто их используют для DSL соединений.

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

Зачем сравнивать TCP или что с ним не так

  • packet loss — примерно 0,6% пакетов, которые мы отправляем, теряются по пути;
  • reordering — перестановка пакетов местами, в реальной жизни довольно редкое явление, но случается в 0,2% случаев;
  • jitter — когда пакеты отправляются равномерно, а приходят очередями с задержкой примерно в 50 мс.

Как вычислить RTT

RIPE Atlasбеспроводные сети популярны и нестабильны

  • Более 80% пользователей используют беспроводной интернет;
  • Параметры беспроводных сетей динамично меняются в зависимости, например, от того, что пользователь повернул за угол;
  • Беспроводные сети имеют высокие показатели packet loss, jitter, reordering;
  • Фиксированный ассиметричный канал, смена IP-адреса.

TCP в нестабильных сетях

меньше половины канала

  • Беспроводные мобильные сети победили и нестабильны.
  • TCP не до конца утилизирует канал в нестабильных сетях.
  • Потребление контента зависит от скорости интернета: чем выше скорость интернета, тем больше пользователи смотрят, а мы очень любим наших пользователей и хотим, чтобы они смотрели больше.

Transmission Control Protocol

Transmission Control Protocol (TCP) (протокол управления передачей) — является обязательным протоколом стандарт TCP/IP, определенный в стандарте RFC 793, «Transmission Control Protocol (TCP)».

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

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

TCP обеспечивает свою надежность благодаря следующему:

  • Данные от приложения разбиваются на блоки определенного размера, которые будут отправлены.
  • Когда TCP посылает сегмент, он устанавливает таймер, ожидая, что с удаленного конца придет подтверждение на этот сегмент. Если подтверждение не получено по истечении времени, сегмент передается повторно.
  • Когда TCP принимает данные от удаленной стороны соединения, он отправляет подтверждение. Это подтверждение не отправляется немедленно, а обычно задерживается на доли секунды
  • TCP осуществляет расчет контрольной суммы для своего заголовка и данных. Это контрольная сумма, рассчитываемая на концах соединения, целью которой является выявить любое изменение данных в процессе передачи. Если сегмент прибывает с неверной контрольной суммой, TCP отбрасывает его и подтверждение не генерируется. (Ожидается, что отправитель отработает тайм-аут и осуществит повторную передачу.)
  • Так как TCP сегменты передаются в виде IP датаграмм, а IP датаграммы могут прибывать беспорядочно, также беспорядочно могут прибывать и TCP сегменты. После получения данных TCP может по необходимости изменить их последовательность, в результате приложение получает данные в правильном порядке.
  • Так как IP датаграмма может быть продублирована, принимающий TCP должен отбрасывать продублированные данные.
  • TCP осуществляет контроль потока данных. Каждая сторона TCP соединения имеет определенное пространство буфера. TCP на принимающей стороне позволяет удаленной стороне посылать данные только в том случае, если получатель может поместить их в буфер. Это предотвращает от переполнения буферов медленных хостов быстрыми хостами.

Настройка приложения

  • Любая передача данных занимает время >0. Ищите способы уменьшить объем отправляемых данных.
  • Приблизьте ваши данные к клиентам географически
  • Повторное использование TCP-соединений может быть важнейшим моментом в улучшении производительности.
  • Обновите ОС сервера
  • Убедитесь, что параметр cwnd установлен равным 10
  • Убедитесь, что масштабирование окон включено
  • Отключите медленный старт после простоя соединения
  • Включите TCP Fast Open, если это возможно
  • Исключите передачу ненужных данных
  • Сжимайте передаваемые данные
  • Расположите серверы ближе к клиентам географически, чтобы снизить круговую задержку
  • Используйте повторно TCP-соединения, где это возможно
  • Изучите рекомендации Рабочей группы по HTTP

Пример запроса HTTP

Рассмотрим примеры запроса и ответа HTTP. 

HTTP работают в текстовом режиме, нам необходимо подключиться к веб-серверу, например www.zvondozvon.ru к порту 80 по протоколу TCP. Дальше мы пишем запрос, используем метод GET хотим получить ресурс /tehnologii/protokoli и указываем версию протокола по которой мы хотим работать HTTP 1.1. Так как мы используем версию 1.1 нам необходимо указать заголовок host, доменное имя сервера с которым мы работаем www.zvondozvon.ru, этого вполне достаточно для того чтобы веб-сервер нам ответил. 

Ответ веб-сервера начинается со статуса 200 ok, обработка запроса произошла успешно, также вначале указываются версия протокола, которая используется HTTP 1.1. Затем идут несколько заголовков реализации веб-сервера nginx, тип передаваемой страницы текста html кодировка utf-8, длина страницы 5161 байт, также здесь могут идти другие заголовки, которые вам передал сервер. 

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

Продолжение про протокол HTTP читайте в статье постоянное соединение и кэширование протокола HTTP.

Установление соединения TCP

Давайте теперь посмотрим, как устанавливается TCP-соединения. Предположим, что процесс, работающий на одном хосте, хочет установить соединение с другим процессом на другом хосте. Напомним, что хост, который инициирует соединение называется «клиентом», в то время как другой узел называется «сервером».

Перед началом передачи каких-либо данных, согласно протоколу TCP, стороны должны установить соединение. Соединение устанавливается в три этапа (процесс «трёхкратного рукопожатия» TCP).

  • Запрашивающая сторона (которая, как правило, называется клиент) отправляет SYN сегмент, указывая номер порта сервера, к которому клиент хочет подсоединиться, и исходный номер последовательности клиента (ISN).
  • Сервер отвечает своим сегментом SYN, содержащим исходный номер последовательности сервера. Сервер также подтверждает приход SYN клиента с использованием ACK (ISN + 1). На SYN используется один номер последовательности.
  • Клиент должен подтвердить приход SYN от сервера своим сегментов SYN, содержащий исходный номер последовательности клиента (ISN+1) и с использованием ACK (ISN+1). Бит SYN установлен в 0, так как соединение установлено.

После установления соединения TCP, эти два хоста могут передавать данные друг другу, так как TCP-соединение является полнодуплексным, они могут передавать данные одновременно. 

Сравнительная таблица

Сравнительная таблица TCP и UDP
TCP UDP
Акроним для Протокол управления передачей Протокол пользовательских дейтаграмм или универсальный протокол дейтаграмм
соединение Протокол управления передачей — это протокол, ориентированный на соединение. Протокол пользовательских дейтаграмм — это протокол без установления соединения.
функция Как сообщение проходит через Интернет с одного компьютера на другой. Это на основе соединения. UDP также является протоколом, используемым при передаче или передаче сообщений. Это не основано на соединении, что означает, что одна программа может отправлять загрузку пакетов другой, и это будет концом отношений.
использование TCP подходит для приложений, которые требуют высокой надежности, а время передачи относительно менее критично. UDP подходит для приложений, которым нужна быстрая и эффективная передача, таких как игры. Характер UDP без сохранения состояния также полезен для серверов, которые отвечают на небольшие запросы огромного числа клиентов.
Использование другими протоколами HTTP, HTTP, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Упорядочение пакетов данных TCP переставляет пакеты данных в указанном порядке. UDP не имеет собственного порядка, так как все пакеты независимы друг от друга. Если заказ требуется, он должен управляться прикладным уровнем.
Скорость передачи Скорость для TCP ниже, чем для UDP. UDP работает быстрее, потому что восстановление после ошибки не предпринимается. Это протокол «лучшее из возможного».
надежность Существует абсолютная гарантия того, что переданные данные остаются нетронутыми и поступают в том же порядке, в котором они были отправлены. Нет никакой гарантии, что отправленные сообщения или пакеты дойдут вообще.
Размер заголовка Размер заголовка TCP составляет 20 байт. Размер заголовка UDP составляет 8 байт.
Общие поля заголовка Исходный порт, порт назначения, контрольная сумма Исходный порт, порт назначения, контрольная сумма
Потоковая передача данных Данные считываются как поток байтов, отличительные признаки не передаются к границам сигнального сообщения (сегмента). Пакеты отправляются индивидуально и проверяются на целостность только в случае их поступления. Пакеты имеют определенные границы, которые учитываются при получении, что означает, что операция чтения в сокете-получателе приведет к тому, что сообщение будет полностью отправлено.
Вес TCP тяжелый. TCP требует три пакета для установки сокетного соединения, прежде чем любые пользовательские данные могут быть отправлены. TCP управляет надежностью и контролем перегрузки. UDP легкий. Нет упорядочения сообщений, отслеживания соединений и т. Д. Это небольшой транспортный уровень, разработанный поверх IP.
Контроль потока данных TCP делает управление потоком. TCP требует три пакета для установки сокетного соединения, прежде чем любые пользовательские данные могут быть отправлены. TCP управляет надежностью и контролем перегрузки. У UDP нет опции для управления потоком
Проверка ошибок TCP проверяет и исправляет ошибки. Ошибочные пакеты повторно передаются от источника к месту назначения. UDP выполняет проверку ошибок, но просто отбрасывает ошибочные пакеты. Ошибка восстановления не предпринимается.
поля 1. Порядковый номер, 2. Номер ACK, 3. Смещение данных, 4. Зарезервировано, 5. Бит управления, 6. Окно, 7. Срочный указатель 8. Опции, 9. Заполнение, 10. Контрольная сумма, 11. Порт источника, 12. Порт назначения 1. Длина, 2. Порт источника, 3. Порт назначения, 4. Контрольная сумма
Подтверждение Сегменты подтверждения Нет подтверждения
Рукопожатие SYN, SYN-ACK, ACK Нет рукопожатия (протокол без установления соединения)
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector