Чем отличается протокол TCP от UDP, простым языком
Всем привет сегодня расскажу чем отличается протокол TCP от UDP. Протоколы транспортного уровня, следующие в иерархии за IP, используются для передачи данных между прикладными процессами, реализующимися в сетевых узлах. Пакет данных, поступивший от одного компьютера другому через Интернет, должен быть передан процессу-обработчику, и именно по конкретному назначению. Транспортный уровень принимает на себя ответственность за это. На этом уровне два основных протокола – TCP и UDP.
Что означают TCP и UDP
TCP – транспортный протокол передачи данных в сетях TCP/IP, предварительно устанавливающий соединение с сетью.
UDP – транспортный протокол, передающий сообщения-датаграммы без необходимости установки соединения в IP-сети.
Напоминаю, что оба протокола работают на транспортном уровне модели OSI или TCP/IP, и понимание того чем они отличаются очень важно.
Разница между протоколами TCP и UDP
Разница между протоколами TCP и UDP – в так называемой “гарантии доставки”. TCP требует отклика от клиента, которому доставлен пакет данных, подтверждения доставки, и для этого ему необходимо установленное заранее соединение. Также протокол TCP считается надежным, тогда как UDP получил даже именование “протокол ненадежных датаграмм. TCP исключает потери данных, дублирование и перемешивание пакетов, задержки. UDP все это допускает, и соединение для работы ему не требуется. Процессы, которым данные передаются по UDP, должны обходиться полученным, даже и с потерями. TCP контролирует загруженность соединения, UDP не контролирует ничего, кроме целостности полученных датаграмм.
С другой стороны, благодаря такой не избирательности и бесконтрольности, UDP доставляет пакеты данных (датаграммы) гораздо быстрее, потому для приложений, которые рассчитаны на широкую пропускную способность и быстрый обмен, UDP можно считать оптимальным протоколом. К таковым относятся сетевые и браузерные игры, а также программы просмотра потокового видео и приложения для видеосвязи (или голосовой): от потери пакета, полной или частичной, ничего не меняется, повторять запрос не обязательно, зато загрузка происходит намного быстрее. Протокол TCP, как более надежный, с успехом применяется даже в почтовых программах, позволяя контролировать не только трафик, но и длину сообщения и скорость обмена трафиком.
Tcp Udp отличия
Давайте рассмотрим основные отличия tcp от udp.
- TCP гарантирует доставку пакетов данных в неизменных виде, последовательности и без потерь, UDP ничего не гарантирует.
- TCP нумерует пакеты при передаче, а UDP нет
- TCP работает в дуплексном режиме, в одном пакете можно отправлять информацию и подтверждать получение предыдущего пакета.
- TCP требует заранее установленного соединения, UDP соединения не требует, у него это просто поток данных.
- UDP обеспечивает более высокую скорость передачи данных.
- TCP надежнее и осуществляет контроль над процессом обмена данными.
- UDP предпочтительнее для программ, воспроизводящих потоковое видео, видеофонии и телефонии, сетевых игр.
- UPD не содержит функций восстановления данных
Примерами UDP приложений, например можно привести, передачу DNS зон, в Active Directory, там не требуется надежность. Очень часто такие вопросы любят спрашивать на собеседованиях, так, что очень важно знать tcp и udp отличия.
Заголовки TCP и UDP
Давайте рассмотрим как выглядят заголовки двух транспортных протоколов, так как и тут отличия кардинальные.
Заголовок UDP
- 16 битный порт источника > Указание порта источника для UDP необязательно. Если это поле используется, получатель может отправить ответ этому порту.
- 16 битный порт назначения > Номер порта назначения
- 16 битная длина UDP > Длина сообщения, включая заголовок и данные.
- 16 битная контрольная сумма > Контрольная сумма заголовка и данных для проверки
Заголовок TCP
- 16 битный порт источника > Номер порта источника
- 16 битный порт назначения > Номер порта назначения
- 32 битный последовательный номер > Последовательный номер генерируется источником и используется назначением, чтобы переупорядочить пакеты для создания исходного сообщения и отправить подтверждение источнику.
- 32 битный номер подтверждения > Если установлен бит АСК поля "Управление", в данном поле содержит следующий ожидаемый последовательный номер.
- 4 бита длина заголовка > Информация о начале пакета данных.
- резерв > Резервируются для будущего использования.
- 16 битная контрольная сумма > Контрольная сумма заголовка и данных; по ней определяется, был ли искажен пакет.
- 16 битный указатель срочности > В этом поле целевое устройство получает информацию о срочности данных.
- Параметры > Необязательные значения, которые указываются при необходимости.
В UDP протоколе размер окна не используется. Размер окна относится к TCP протоколу, где он определяет количество байтов данных, которые можно отправить без подтверждения получения. Размер окна позволяет экономить трафик, рассмотрим когда его значение равно 1, тут на каждый отправленный ответ, отправитель ждет подтверждения, не совсем рационально.
При размере окна 3, отправитель отправляет уже по 3 кадра, и ждет 4, который подразумевает, что все три кадра у него есть, +1.
Материал сайта pyatilistnik.org
Неплохая статья. Затронута важная тема, т. к. даже выбор протокола передачи данных в популярной программе uTorrent версии выше 2.0 требует пояснений. Различные сетевые игры используют указанные протоколы. Т. е. тема актуальная и нужно просвещать людей.
Некоторые замечания:
1) к сожалению, не указаны источники;
2) оформление сайта «игрушечное», нет нейтральности.
Учитывая это, я не могу безоговорочно рекомендовать эту статью студентам.
Но в целом впечатление от статьи хорошее. Спасибо!
Добрый день, источники, это опыт, а на счет оформления, тут у всех свое видение. Но тоже думаю, над улучшением. Спасибо за отзыв.
Позвольте мне написать отзыв об оформлении сайта.
Взглянул на статью и сайт ещё раз. Теперь я понял, что это за игрушки: это пингвинята, их много и они разные, это как сборки Линукса. А игрушки они потому, что некоторые изучают компьютеры, «ломая» или изменяя компьютерные игры.
Но это я написал про игрушки над менюшкой. Однако по бокам страницы ещё две игрушки, они немного отвлекают от серьёзной статьи своим туповатым взглядом. При первом посещении сайта не очень приятно смотреть на них, извините.
Есть ещё пингвинёнок-шарик, точнее эллипсоид, на каждой авторской картинке. У него глазки-бусинки и это не особо отвлекает, это даже забавляет.
Ещё одна мысль возникла. Возможно, игрушки изображены, чтобы не пугать детей и всех людей, плохо разбирающихся в компьютерах. Многие не понимают и боятся всякие компьютерные железки и пр.
Когда я был ребёнком, я изучал программирование по книжке «Бейсик — это просто». _http://coollib.com/b/233279
Там был забавный персонаж-робот, иллюстрирующий работу ЭВМ. С ним чтение книжки было приятным и увлекательным.
Если проводить аналогию, то забавные персонажи-игрушки на этом сайте как бы говорят: «Правильная настройка ПК — это просто».
В общем, чувствуется авторский подход к оформлению.
Спасибо за отзыв, очень приятно слушать мнение людей, а пингвины сверху, это символы linux, и вместе образуют слово Pyatilistnik.org, задумка такая была))
а как смотреть работает udp или нет? если он соединения не устанавливает?
netstat или tcp view, попытки же должны быть
попытки-то есть, не знаю как вывод показать, против всех UDP внешний адрес *:* вот так
на TCP перенаправление то работает, но чаще нет
я вот думаю, можно нет такой доступ к интернету полноценным назвать?
Как же вы доступно объясняете
Спасибо огромное.
А по мне так хорошее оформление, этот сайт располагает и пингвинчики забавляют)) Все красиво!! Так же нужно понимать, что данная статья явно не для профи, так-как все это им уже известно! Короче все супер и сайт и статья!! Спасибо!
На мой взгляд, все очень доступно и подробно описано, спасибо автору.
Вы мне очень помогли, разобраться в теме. Спасибо вам огромное.
Отличный сайт, отличная статья! Так держать!
Большое спасибо!
Очень полезная статья!Спасибо большое.
Подскажите, а чем отличается сканирование этих протоколов друг от друга?
Добрый день! НЕ совсем понятно, что вы имеете ввиду?