Автор: Пользователь скрыл имя, 27 Мая 2012 в 04:03, курс лекций
Работа содержит курс лекций по дисциплине "Сетевые технологии"
Протокол UDP
В отличие от TCP, он не ориентирован на соединение и не обеспечивает подтверждение приема, управление потоком, сегментацию и гарантированную доставку. В результате UDP намного проще TCP и создает гораздо меньше нагрузки на сеть. Это связано не только с тем, что заголовок UDP короче заголовка TCP (8 байтов против не менее 20). В UDP нет специальных управляющих сообщений, например, сообщений для установки или разрыва соединения. Транзакция UDP состоит всего из двух сообщений — запроса и ответа, причем последний служит также неявным подтверждением приема. По этим причинам, приложения, использующие UDP, могут передавать лишь небольшие порции данных, которые могут уместиться в единственное сообщение. В основном сообщения UDP применяются протоколами прикладного уровня DNS и DHCP. В определенных ситуациях UDP можно использовать и для передачи больших объемов данных, например, в аудио- и видеопотоках. В данном случае использование UDP допустимо, поскольку периодическая потеря пакетов важной роли не сыграет.
Рис. 9. Формат сообщения UDP
Функции полей сообщения UDP таковы.
• Порт источника (Source Port) (2 байта) — идентификатор процесса в передающей системе, который
сгенерировал информацию в поле данных.
• Порт приемника (Destination Port) (2 байта) — идентификатор процесса в принимающей системе, которому предназначается информация в поле данных.
• Длина (Length) (2 байта) — длина заголовка и данных UDP в байтах.
• Контрольная сумма (Checksum)(2 байта) — код CRC, вычисленный передающей системой. Целевая система использует его для обнаружения ошибок в заголовке UDP, данных и частях заголовка IP.
• Данные (Data) (переменной длины) — данные, сгенерированные процессом прикладного уровня, номер которого указан в поле Source Port.
Поля Source Port и Destination Port в заголовке UDP выполняют те же функции, что и в заголовке TCP. В поле Length указано количество данных, включенных в сообщение UDP. Как и в TCP, контрольная сумма вычисляется для заголовка сообщения, данных и псевдозаголовка IP. В стандарте UDP использование контрольной суммы не является обязательным. Если она не используется, передающая система заполняет поле Checksum нулями. По поводу включения контрольной суммы в сообщения UDP было много споров. В документе RFC 768 указано, что во все системы UDP должна включаться возможность проверки контрольной суммы, и этот метод обнаружения ошибок действительно используется в большинстве реализации протокола UDP.
Как видно из нашего далеко не полного описания двух протоколов транспортного уровня стека TCP/IP, на один из них — TCP — возложена сложная и очень важная задача обеспечение надежной передачи данных через ненадежную сеть.
С другой стороны, функциональная простота протокола UDP обусловливает простоту алгоритма его работы, компактность и высокое быстродействие. Поэтому те приложения, в которых реализован собственный, достаточно надежный, механизм обмена сообщениями, основанный на установлении соединения, предпочитают для непосредственной передачи данных по сети использовать менее надежные, но более быстрые средства транспортировки, в качестве которых по отношению к протоколу TCP и выступает протокол UDP. Протокол UDP может быть использован и в том случае, когда хорошее качество линий связи обеспечивает достаточный уровень надежности и без применения дополнительных приемов наподобие установления логического соединения и квитирования передаваемых пакетов. Заметим также, что поскольку протокол TCP основан на логических соединениях, он, в отличие от протокола UDP, не годится для широковещательной и групповой рассылки.
Выводы
В то время как задачей протокола IP является передача данных между любой парой сетевых интерфейсов в составной сети, задача протоколов TCP и UDP заключается в передаче данных между любой парой прикладных процессов.
Системные очереди к точкам входа прикладных процессов называют портами. Порты идентифицируются номерами и однозначно определяют приложение в пределах компьютера.
Приложения, которые передают данные на уровень IP, используя протокол UDP, получают номера, называемые портами UDP. Аналогично, приложениям, обращающимся к протоколу TCP, выделяются порты TCP.
Если процессы представляют собой популярные общедоступные службы, такие как FTP, telnet, HTTP, TFTP, DNS и т. п., то за ними централизовано закрепляются стандартные присвоенные (assigned) номера.
Для тех служб, которые еще не стали столь распространенными, чтобы закреплять за ними стандартные номера, номера портов выделяются локальной операционной системой. Такие номера называют динамическими (dynamic).
Процессы, выполняющиеся на двух конечных узлах, устанавливают по протоколу TCP надежную связь через составную сеть, все узлы которой используют для передачи сообщений ненадежный дейтаграммный протокол IP.
Надежность передачи данных протоколом TCP достигается за счет того, что он основан на установлении логических соединений между взаимодействующими процессами.
Прикладной процесс в сети однозначно определяется сокетом (socket), который представляет собой пару (IP-адрес, номер порта). В свою очередь, пара сокетов взаимодействующих процессов идентифицирует соединение. Каждый процесс одновременно может участвовать в нескольких соединениях.
В рамках TCP-соединения происходит договорный процесс о следующих параметрах процедуры обмена данными между двумя процессами: максимальном размере сегмента, максимальном объеме данных, которые можно передавать без получения подтверждения (окне приема), о начальном порядковом номере байта, с которого начинается отсчет потока данных в рамках данного соединения.
Сторона-приемник передает стороне отравителю размер окна приема, исходя из того, с какой скоростью она сможет обрабатывать присылаемые данные. Однако управлять окном приема может и сторона-отправитель. Если отправляющая сторона фиксирует ненадежную работу линии связи, то она может по собственной инициативе уменьшить окно. В таких случаях действует правило: в качестве действующего размера окна выбирается минимальное из двух значений — значения, диктуемого приемной стороной, и значения, определяемого «на месте» отправителем.
9