Transmission Control Protocol (TCP — протокол управления передачей) — один из основных протоколов передачи данных Интернета. Предназначен для управления передачей данных Интернета. Пакеты в TCP называются сегментами [1, с. 125].
TCP-протокол требует подтверждения от сервера и клиента, что сетевое соединение активно, путем отправки проверочных пакетов через определенные промежутки времени. В случае если время ответа превышает определенный разработчиком интервал, соединение разрывается, после чего требуется повторное подключение. Таким образом, требуется подтверждение, что каждый отправленный сервером или клиентом сетевой пакет был доставлен, что порождает дополнительный сетевой трафик. Объем пересылаемых данных увеличивается, но при этом гарантируется, что данные доставлены в полном и неизменном виде: данные приходят в тех объемах и порядке, как и были отправлены.
UDP (User Datagram Protocol — протокол пользовательских датаграмм) — один из ключевых элементов набора сетевых протоколов для Интернета. С UDP компьютерные приложения могут посылать сообщения (в данном случае называемые датаграммами) другим хостам по IP-сети без необходимости предварительного сообщения для установки специальных каналов передачи или путей данных. Протокол был разработан Дэвидом П. Ридом в 1980 году и официально определен в RFC 768 [1, с. 203].
UDP-протокол, в отличие от TCP-протокола, не требует какого-либо подтверждения, что данные были доставлены. Клиент или сервер, отправив данные, не дожидаются ответа о получении другой стороной данных. Более того, соединение создается только в момент отправки сетевых пакетов, после чего может быть сразу закрыто. По этой причине UDP-протокол не является надежным, так как нет никакой гарантии, что отправленные данные будут получены в первоначальном виде. В силу этого принимающая сторона должна производить проверку полученных данных, например, с помощью контрольной суммы, а также производить проверку перегрузки сетевого буфера, так как данные могут прийти в любом порядке и объеме. При этом объем сетевого трафика между клиентом и сервером уменьшается, так как не требуется подтверждения доставки данных, что иногда позволяет существенно снизить нагрузку на сетевую инфраструктуру.