Чем отличается протокол TCP от UDP: настройка серверов windows и linux

Определение TCP и UDP

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

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

TCP— Transmission Control Protocol

Обмен данными, ориентированный на соединения, может использовать надежную связь, для обеспечения которой протокол уровня 4 посылает подтверждения о получении данных и запрашивает повторную передачу, если данные не получены или искажены. Протокол TCP использует именно такую надежную связь. TCP используется в таких прикладных протоколах, как HTTP, FTP, SMTP и Telnet.

Протокол TCP требует, чтобы перед отправкой сообщения было открыто соединение. Серверное приложение должно выполнить так называемое пассивное открытие (passive open), чтобы создать соединение с известным номером порта, и, вместо того чтобы отправлять вызов в сеть, сервер переходит в ожидание поступления входящих запросов. Клиентское приложение должно выполнить активное открытие (active open), отправив серверному приложению синхронизирующий порядковый номер (SYN), идентифицирующий соединение. Клиентское приложение может использовать динамический номер порта в качестве локального порта.

Это интересно:  Где хранятся и как посмотреть пароли в браузере Google Chrome

Сервер должен отправить клиенту подтверждение (ACK) вместе с порядковым номером (SYN) сервера. В свою очередь клиент отвечает АСК, и соединение устанавливается.

После этого может начаться процесс отправки и получения сообщений. При получении сообщения в ответ всегда отправляется сообщение АСК. Если до получения АСК отправителем истекает тайм-аут, сообщение помещается в очередь на повторную передачу.

Поля заголовка TCP перечислены в следующей таблице:

Заголовок TCP ПолеДлинаОписание
Порт источника 2 байта Номер порта источника
Порт назначения 2 байта Номер порта назначения
Последовательный номер 4 байта Последовательный номер генерируется источником и используется назначением, чтобы переупорядочить пакеты для создания исходного сообщения и отправить подтверждение источнику.
Номер подтверждения 4 байта Если установлен бит АСК поля «Управление», в данном поле содержится следующий ожидаемый последовательный номер.
Смещение данных 4 бита Информация о начале пакета данных.
Резерв 6 битов Резервируются для будущего использования.
Управление 6 битов Биты управления содержат флаги, указывающие, верны ли поля подтверждения (АСК), указателя срочности (URG), следует ли сбрасывать соединение (RST), послан ли синхронизирующий последовательный номер (SYN) и т. д.
Размер окна 2 байта В этом поле указывается размер приемного буфера. Используя подтверждающие сообщения, получатель может информировать отправителя о максимальном размере данных, которые тот может отправить.
Контрольная сумма 2 байта Контрольная сумма заголовка и данных; по ней определяется, был ли искажен пакет.
Указатель срочности 2 байта В этом поле целевое устройство получает информацию о срочности данных.
Опции переменная Необязательные значения, которые указываются при необходимости.
Дополнение переменная В поле дополнения добавляется столько нулей, чтобы заголовок заканчивался на 32-битной границе.

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

Протокол TCP имеет встроенную возможность надежной доставки. Если сообщение не отправлено корректно, мы получим сообщение об ошибке. Протокол TCP определен в RFC 793.

UDP — User Datagram Protocol

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

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

Так в чем же преимущества UDP, зачем может понадобиться такой ненадежный протокол? Чтобы понять причину использования UDP, нужно различать однонаправленную передачу, широковещательную передачу и групповую рассылку.

Однонаправленное (unicast) сообщение отправляется из одного узла только в один другой узел. Это также называется связью «точка-точка». Протокол TCP поддерживает лишь однонаправленную связь. Если серверу нужно с помощью TCP взаимодействовать с несколькими клиентами, каждый клиент должен установить соединение, поскольку сообщения могут отправляться только одиночным узлам.

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

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

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

Заголовок UDP гораздо короче и проще заголовка TCP:

Заголовок UDP ПолеДлинаОписание
Порт источника 2 байта Указание порта источника для UDP необязательно. Если это поле используется, получатель может отправить ответ этому порту.
Порт назначения 2 байта Номер порта назначения
Длина 2 байта Длина сообщения, включая заголовок и данные.
Контрольная сумма 2 байта Контрольная сумма заголовка и данных для проверки

UDP — это быстрый протокол, не гарантирующий доставки. Если требуется поддержание порядка сообщений и надежная доставка, нужно использовать TCP. UDP главным образом предназначен для широковещательной и групповой передачи. Протокол UDP определен в RFC 786.

Как работают TCP и UDP?

TCP протокол чаще используется в интернете, потому что считается более надежным. Вот что он делает, чтобы отправить ваши данные:

  1. TCP присваивает каждому пакету данных уникальный идентификатор и порядковый номер. Это позволяет получателю определить, какой пакет был получен и какой из них прибывает следующим.
  2. Как только пакет данных получен, и если он находится в правильном порядке, получатель посылает подтверждение отправителю.
  3. Теперь отправитель может отправить еще один пакет.
  4. Если пакет потерян или отправлен в неправильном порядке, получатель молчит, указывая, что тот же самый пакет данных должен быть отправлен повторно.

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

UDP выполняет ту же самую работу без необходимости использования уникальных идентификаторов или порядковых номеров. Он посылает данные в потоке и контролирует, чтобы данные были получены без сбоев. UDP практически не исправляет ошибки, но отправляет данные намного быстрее, чем TCP.

VPN: TCP или UDP?

Совместимы ли протоколы UDP и TCP с VPN услугами? Да, оба они работают с VPN и обеспечивают конфиденциальность и безопасность. Какой из них выбрать, зависит от того, для чего вы используете VPN. TCP более надежен, поэтому можно предположить, что это лучший вариант, но бывают случаи, когда предпочтение следует отдать UDP.

UDP – это отличный вариант, если вы играете и используете потоковые или VoIP-сервисы. Он может потерять один или два пакета, но это не окажет большого влияния на ваше интернет-соединение. Использование TCP для таких сервисов может привести к задержке (особенно если вы подключены к серверам, расположенным на другом конце света). Поэтому VPN через TCP рекомендуется для использования электронной почты, просмотра веб-страниц и передачи файлов.

На видео: Все о TCP и UDP протоколах

Разница между протоколами TCP и UDP

Разница между протоколами TCP и UDP – в так называемой “гарантии доставки”. TCP требует отклика от клиента, которому доставлен пакет данных, подтверждения доставки, и для этого ему необходимо установленное заранее соединение. Также протокол TCP считается надежным, тогда как UDP получил даже именование “протокол ненадежных датаграмм. TCP исключает потери данных, дублирование и перемешивание пакетов, задержки. UDP все это допускает, и соединение для работы ему не требуется. Процессы, которым данные передаются по UDP, должны обходиться полученным, даже и с потерями. TCP контролирует загруженность соединения, UDP не контролирует ничего, кроме целостности полученных датаграмм.

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

Что такое основной шлюз или Default gateway?

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

  1. Предположим, что у вас в организации есть два сегмента, один серверный, а другой пользовательский. С точки зрения зрения безопасности сетевые инженеры их разделяю друг от друга, чтобы оба сегмента были автономны и независимы. И вот, чтобы пользователь мог получить доступ к серверу, он должен обратиться к своему шлюзу, у которого есть маршрут до серверного сегмента, благодаря этому клиент получает доступ, Default gateway в данном случае выступает как посредник.
  2. Более простой способ понять шлюз по умолчанию — подумать о нем как, о промежуточном устройстве между локальной сетью и Интернетом. Это необходимо для передачи внутренних данных в Интернет, а затем обратно. У каждого из вас дома есть провайдерский интернет. Ваш компьютер для других пользователей интернета не доступен, так как он находится в вашей локальной, внутренней сети или же сети провайдера, и скрыт Firewall-ом и маршрутизаторами, но это вам не мешает получать доступ в интернет, так как все эти задачи вы перекладываете на ваш основной шлюз в системе.

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

основной шлюз-Default gateway

Как узнать основной шлюз через реестр

Данный метод больше для понимания системных администраторов, в какой ветке реестра лежат настройки с сетевыми интерфейсами. Откройте редактор реестра и перейдите в ветку:

HKLM/System/CurrentControlSet/Services/Tcpip/Parameters/Interfaces/

У вас тут будет GUID имена ваших сетевых интерфейсов, вам необходимо найти свой. В нужном интерфейсе будет ключ реестра «DhcpDefaultGateway»

Основной шлюз реестр Windows

Или если у вас статический IP-адрес, то ключ будет назваться Default gateway.

Default gateway regedit

Универсальный метод для Windows платформ

  • Самый простой и быстрый метод определения шлюза по умолчанию, можно считать просмотр свойств сетевого интерфейса из «Центра управления сетями и общим доступом». Для того, чтобы открыть данное меню. Нажмите одновременно клавишу WIN и R. В окне выполнить, введите ncpa.cpl и нажмите Enter.

ncpa.cpl

В итоге у вас откроется окно «Панель управленияСеть и ИнтернетСетевые подключения» со списком ваших сетевых интерфейсов.

Сетевые подключения Windows 10

Так же добраться до этих списков вы можете и через значок сети в правом углу. Данный метод, подойдет для Windows 7 и Windows 8.1. Кликаем по нему правой кнопкой мыши и выбираем из контекстного меню «Центр управления сетями и общим доступом»

Центр управления сетями и общим доступом

Нажимаем пункт «Изменение параметров адаптера», после чего у вас появятся все ваши сетевые интерфейсы.

Изменение параметров адаптера

Теперь выбрав любой из них, щелкните по нему правым кликом мыши и выберите пункт «Состояние».

узнать адрес основного шлюза Windows 10

В окне состояния нажмите кнопку «Сведения», чтобы посмотреть подробные настройки. Найдите пункт «Шлюз по умолчанию». На против него будет показан IP-адрес вашего Default gateway. В моем случае, это 192.168.31.254.

Шлюз по умолчанию Windows 10

Как узнать ip адрес основного шлюза в Windows 10

Так как компания Microsoft всеми правдами и неправдами пытается избавится от панели управления и всех входящих в нее средств, в пользу нового универсального интерфейса, то в Windows 10, есть свой метод получения информации, об адресе основного шлюза. Называется данная настройка «Параметры сети и Интернет», попасть в нее вы можете, по прежнему из контекстного меню значка сети.

Параметры сети и интернет

Либо нажав одновременно клавиши WIN и I, тем самым вызвав «Параметры Windows». Находите там пункт «Сеть и Интернет (Wi-Fi, режим в самолете, VPN)»

адрес основного шлюза

В пункте «Состояние» находим настройку «Просмотр свойств сети»

Основной шлюз в Windows 10

Откроется новое окно, где вы увидите огромное количество сетевых данных, в том числе и ip адрес основного шлюза. Я выделил его красной чертой.

ip адрес основного шлюза

Как узнать ip адрес основного шлюза через командную строку

Любой системный администратор просто обязан знать утилиту командной строки IPCONFIG. Благодаря ей вы можете за пару секунд получить все данные по шлюзу по умолчанию в Windows, любой версии. Откройте командную строку cmd и введите.

ipconfig

В итоге вы получите вот такую информацию:

  • Адаптер Ethernet Ethernet0:
  • DNS-суффикс подключения . . . . . : root.pyatilistnik.org
  • Локальный IPv6-адрес канала . . . : fe80::2050:8cd7:31f6:eae8%8
  • IPv4-адрес. . . . . . . . . . . . : 192.168.31.51
  • Маска подсети . . . . . . . . . . : 255.255.255.0
  • Основной шлюз. . . . . . . . . : 192.168.31.254

Согласитесь, что данный метод определения шлюза, куда быстрее.

основной шлюз ipconfig

Если хотите вывести информацию только по адресам Default gateway, то введите команду:

ipconfig | findstr «Основной шлюз»

основной шлюз через командную строку

Источники
  • https://zen.yandex.ru/media/id/5da18d27118d7f00ae94b958/5decb571f557d000adb8067c
  • https://professorweb.ru/my/csharp/web/level1/1_4.php
  • https://bezopasnik.info/%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB-tcp-%D0%B8-udp/
  • http://pyatilistnik.org/chem-otlichaetsya-protokol-tcp-ot-udp/
  • https://www.tirika.ru/articles/nastrojka-lokalnoj-seti/nastroyka-tcp-ip.html
  • http://pyatilistnik.org/how-to-find-the-address-of-the-main-gateway/
Оцените статью
IT Портал
Добавить комментарий