Транспортный уровень
Непосредственно над уровнем Internet расположен транспортный уровень узел-узел, или просто транспортный уровень. Наиболее важными протоколами транспортного уровня являются протокол управления передачей TCP (Transmission Control Protocol) и протокол пользовательских дейтаграмм UDP (User Datagram Protocol). TCP обеспечивает надежную доставку данных со сквозным обнаружением и устранением ошибок. UDP - это нетребовательная к ресурсам служба доставки дейтаграмм, работающая без образования логических соединений. Оба протокола выполняют доставку данных между прикладным уровнем и уровнем Internet. Разработчики приложений вольны выбирать, какая из этих служб точнее отвечает задачам приложения в каждом конкретном случае.
UDP, протокол пользовательских дейтаграмм
Протокол пользовательских дейтаграмм (User Datagram Protocol, UDP) да- ет прикладным программам прямой доступ к службе доставки дейтаграмм, работающей подобно службе доставки IP. Приложения получают возможность обмениваться протоколами по сети с минимальными «накладными расходами».
UDP - это ненадежный протокол доставки дейтаграмм без организации логических соединений. Повторимся, характеристика «ненадежный» говорит лишь о том, что средствами протокола невозможно убедиться, что данные корректно получены адресатом. В пределах одного компьютера UDP выполняет доставку данных безукоризненно. Для доставки данных соответствующим процессам приложений в UDP применяются 16-битные номера для исходного и целевого портов в первом слове заголовка сообщения. Формат сообщения UDP приведен на рисунке.
111
Зачем разработчикам приложений использовать UDP в качестве службы доставки данных? Есть ряд веских причин. Если объем передаваемых данных невелик, издержки на создание соединений и отслеживание надежности доставки могут оказаться больше, чем затраты на повторную передачу всех данных. В таком случае UDP становится оптимальным протоколом транспортного уровня. Другими явными кандидатами на использование UDP являются приложения, работающие по принципу запрос-ответ. Ответ можно считать подтверждением приема запроса. Если ответ не поступил в течение определенного промежутка времени, приложение просто повторяет запрос. Кроме того, существуют приложения, в которых реализуются собственные методы обеспечения надежной доставки данных, так что они не ищут подобной функциональности в протоколах транспортного уровня. Для каждого из упомянутых типов приложений дополнительный уровень подтверждения приема станет причиной снижения производительности.