UDP (User Datagram Protocol) обеспечивает негарантированную доставку пользовательских дейтаграмм без установления соединения между заданными процессами передающего и принимающего узлов. Взаимодействующие процессы идентифицируются протокольными портами (protocol ports) — целочисленными значениями в диапазоне 1-65535. Порты 1-255 закреплены за широко известными приложениями (well-known port assignments), остальные назначаются динамически перед посылкой дейтаграммы. UDP-дейтаграмма имеет заголовок, включающий номера порта источника (для возможности корректного ответа), порта назначения и поле данных. Длина поля данных UDP-дейтаграммы произвольна, протокол обеспечивает ее инкапсуляцию (помещение в поле данных) в одну или несколько IP-дейтаграмм и обратную сборку на приемной стороне. UDP позволяет множеству клиентов использовать совпадающие порты: дейтаграмма доставляется клиенту (процессу) с заданным IP-адресом и номером порта. Если клиент не находится, то дейтаграмма отправляется по адресу 0.0.0.0 (обычно это «черная дыра»).
TCP (Transmission Control Protocol) обеспечивает гарантированный поток данных между клиентами, установившими виртуальное соединение. Поток представляет собой неструктурированную последовательность байт, их интерпретация согласуется передающей и приемной сторонами предварительно. Для идентификации используются порты, аналогично UDP-портам. Активная сторона (инициатор обмена) обычно использует произвольный порт, пассивная — известный порт, соответствующий используемому протоколу верхнего уровня. Комбинация IP-адреса и номера порта называется гнездом TCP (TCP Socket). TCP буферизует входящий поток, ожидая перед посылкой заполнения большой дейтаграммы. Поток сегментируется, каждому сегменту назначается последовательный номер. Передающая сторона ожидает подтверждения приема каждого сегмента, при его длительном отсутствии делает повторную передачу сегмента. Процесс, использующий TCP, получает уведомление о нормальном завершении передачи только после успешной сборки потока приемником. Протокол обеспечивает полный дуплекс, это означает, что потоки данных могут идти одновременно во встречных направлениях.