Протокол управления передачей (TCP или TCP/IP) и протокол пользовательских дейтаграмм (UDP или UDP/IP) являются транспортными протоколами, расположенными поверх протокола IP. Интерфейсы TCP/IP и UDP используются для чтения и записи как двоичных данных, так и данных ASCII. Вы можете читать и писать на серверы, компьютеры, инструменты и использовать такие приложения, как потоковое видео и аудио, системы точек продаж и другие бизнес-приложения.
Интерфейсы TCP/IP и UDP поддерживаются на следующих платформах.
Linux ®
macOS
Windows ® 10
Ниже приведено сравнение TCP/IP и UDP:
Соединение против соединения - TCP/IP является протоколом на основе соединения, в то время как UDP является протоколом без соединения. В TCP/IP два конца канала связи должны быть подключены в течение всего времени связи. Приложение, использующее UDP, готовит пакет и отправляет его по адресу получателя без предварительной проверки, готов ли приемник принять пакет. Если принимающая сторона не готова к приему пакета, пакет теряется.
Stream Versus Packet - TCP/IP является потоковым протоколом, в то время как UDP является пакетным протоколом. Это означает, что TCP/IP рассматривается как длинный поток данных, который передается с одного конца соединения на другой конец, и другой длинный поток данных, текущий в противоположном направлении. Стек TCP/IP отвечает за разбиение потока данных на пакеты и передачу этих пакетов, в то время как стек на другом конце отвечает за повторную сборку пакетов в поток данных с использованием информации в заголовках пакетов. UDP, с другой стороны, является пакетным протоколом, где приложение само делит данные на пакеты и отправляет их на другой конец. На другом конце нет необходимости повторно собирать данные в поток. Следует отметить, что некоторые приложения могут представлять данные в виде потока, когда базовым протоколом является UDP. Однако это наслоение дополнительного протокола поверх UDP, и это не является чем-то, присущим самому протоколу UDP.
TCP/IP - надежный протокол, UDP - ненадежный - пакеты, отправляемые TCP/IP, содержат уникальный порядковый номер. Начальный порядковый номер передается другой стороне в начале связи. Приемник подтверждает каждый пакет, и подтверждение содержит порядковый номер, так что отправитель знает, какой пакет был подтвержден. Это означает, что любые пакеты, потерянные в пути, могут быть переданы повторно (отправитель должен знать, что они не достигли места назначения, поскольку он не получил подтверждение). Кроме того, пакеты, поступающие из последовательности, могут быть повторно собраны в надлежащем порядке приемником.
Кроме того, тайм-ауты могут быть установлены, поскольку отправитель знает (из первых нескольких пакетов), сколько времени в среднем занимает посылка пакета и получение его подтверждения. UDP, с другой стороны, отправляет пакеты и не отслеживает их. Таким образом, если пакеты поступают из последовательности или теряются в передаче, принимающая сторона (или передающая сторона) не имеет возможности узнать.
Отметим, что «ненадежный» используется в смысле «не гарантированно преуспеть» в отличие от «провалится много времени». На практике UDP является достаточно надежным, пока приемный сокет активен и обрабатывает данные так же быстро, как и поступает.