
5.6.
Протоколы
IIуровня стека TCP/IP
места назначения, так как UDP-заголовок определяет только номер протоколь-
ного порта. Таким образом, чтобы проверить место назначения, UDP на
компьютере-источнике вычисляет контрольную сумму, которая учитьюает IP-
адрес назначения, а так же саму UDP-дейтаграмму. При получении дейтаг-
раммы в месте назначения программы UDP проверяют контрольную сумму,
используя IP-адрес назначения, полученный из заголовка 1Р-дейтаграммы,
которая содержала UDP-сообщение. Если контрольные суммы одинаковы,
дейтаграмма действительно достигла нужного хост-компьютера и нужного порта
в нем.
Если контрольная сумма равна нулю, то это означает, что отправитель дей-
таграммы ее не подсчитывал, и, следовательно, ее нужно игнорировать. Если
два модуля UDP взаимодействуют только через одну сеть Ethernet, то от кон-
трольного суммирования можно отказаться, так как средства Ethernet обеспе-
чивают достаточную степень надежности обнаружения ошибок передачи. Это
снижает накладные расходы, связанные с работой UDP. Однако рекомендует-
ся всегда вьшолнять контрольное суммирование, так как возможно в какой-то
момент изменения в таблице маршрутов приведут к тому, что дейтаграммы
будут посьшаться через менее надежную среду.
Если контрольная сумма правильная (или равна нулю), то проверяется порт
назначения, указанный в заголовке дейтаграммы. Если к этому порту подклю-
чен прикладной процесс, то прикладное сообщение, содержащееся в дей-
таграмме, встает в очередь для прочтения. В остальных случаях дейтаграм-
ма отбрасьшается. Если дейтаграммы поступают быстрее, чем их успевает
обрабатывать прикладной процесс, то при переполнении очереди сообщений
поступающие дейтаграммы отбрасьюаются модулем UDP.
UDP-сообщения, включающие UDP-заголовок и данные, инкапсулируются
в IP-дейтаграммах при передаче по сети.
Мультиплексирование и демультиплексирование прикладных про-
токолов с помощью протокола UDP. Протокол UDP ведет для каждого
порта две очереди: очередь пакетов, поступающих в данный порт из сети, и
очередь пакетов, отправляемых данным портом в сеть. Процедура обслужи-
вания протоколом UDP-запросов, поступающих от нескольких различных при-
кладных сервисов, называется мультиплексированием. Распределение про-
токолом UDP поступающих от сетевого уровня пакетов между набором
высокоуровневых сервисов, идентифицированных номерами
портов,
называет-
ся демультиплексированием.
Концептуально все процессы мультиплексирования и демультиплексирования
между UDP и прикладными программами осуществляются с помощью меха-
низма
портов.
На практике каждая прикладная программа должна договориться
с операционой системой о получении протокольного порта и связанного с ним
номера перед посьшкой UDP-дейтаграммы. Когда порт выделен, прикладная
программа посьшает любую дейтаграмму через порт, номер которого указан в
поле «Порт отправителя» UDP-заголовка. В ходе обработки входных данных
409