Протокол управления передачей (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, подготавливает пакет и отправляет его на адрес приемника без предварительной проверки, чтобы увидеть, готов ли приемник к приему пакета. Если приемник не готов к приему пакета, пакет теряется.
Поток против пакета - TCP/IP является протоколом, ориентированным на поток, в то время как UDP является протоколом, ориентированным на пакеты. Это означает, что TCP/IP рассматривается как длинный поток данных, который передается от одного конца соединения к другому концу, и другой длинный поток данных, протекающий в противоположном направлении. Стек TCP/IP отвечает за разбиение потока данных на пакеты и отправку этих пакетов, в то время как стек на другом конце отвечает за перекомпоновку пакетов в поток данных с использованием информации в заголовках пакетов. UDP, с другой стороны, является пакетно-ориентированным протоколом, где приложение само делит данные на пакеты и отправляет их на другой конец. Другой конец не должен собирать данные в поток. Обратите внимание, что некоторые приложения могут представлять данные как поток, когда базовый протокол является UDP. Однако это слоистость дополнительного протокола поверх UDP, и это не то, что присуще самому протоколу UDP.
TCP/IP является надежным протоколом, в то время как UDP является ненадежным - пакеты, которые отправляются TCP/IP, содержат уникальный порядковый номер. Начальный порядковый номер передается на другую сторону в начале передачи. Приемник подтверждает каждый пакет, и подтверждение содержит порядковый номер, так что отправитель знает, какой пакет был подтвержден. Это означает, что любые пакеты, потерянные в пути, могут быть повторно переданы (отправитель знал бы, что они не достигли места назначения, потому что он не получил подтверждение). Кроме того, пакеты, которые поступают вне последовательности, могут быть собраны в надлежащем порядке приемником.
Кроме того, тайм-ауты могут быть установлены, потому что отправитель знает (из первых нескольких пакетов), сколько времени требуется в среднем для отправки пакета и получения его подтверждения. UDP же отправляет пакеты и не отслеживает их. Таким образом, если пакеты поступают вне последовательности или теряются при передаче, приемный конец (или передающий конец) не имеет никакого способа знать.
Отметим, что «ненадежный» используется в смысле «не гарантированно преуспел» в отличие от «подведет много времени». На практике UDP достаточно надежен, пока приемный разъем активен и обрабатывает данные так быстро, как он приходит.