Протокол UDP не поддерживает управляющих операций и перенаправляет вызовы своему элементу pr_ctloutput() непосредственно в протокол IP. У него есть простая процедура pr_ctlinput(), которая получает уведомление о любых асинхронных ошибках. Ошибки передаются любому сокету дейтаграмм с указанным местом назначения.
Сетевые протоколы
Система FreeBSD поддерживает несколько основных коммуникационных доменов, включая IPv4, IPv6, Xerox Network Systems (NS), ISO/OSI и локальный домен (известный ранее как домен UNIX). Локальный домен не включает сетевые протоколы, поскольку он работает всецело внутри одной системы.
Набор протоколов IPv4 был первым набором протоколов, реализованным в рамках сетевой архитектуры 4.2BSD. Вслед за выпуском 4.2BSD в рамках сетевой архитектуры производителями было реализовано несколько собственных семейств протоколов. Однако лишь с добавлением протоколов Xerox NS в 4.3BSD была явно продемонстрирована способность системы поддерживать множество семейств сетевых протоколов.
Хотя некоторые части интерфейса протоколов раньше не использовались и поэтому не были реализованы, изменения, потребовавшиеся для добавления второго семейства сетевых протоколов, не изменили существенным образом сетевую архитектуру. Реализация сетевых протоколов ISO/OSI, а также другие меняющиеся требования привели к дальнейшему усовершенствованию сетевой архитектуры в 4.4BSD. Два новых протокола, которые были добавлены к системе, IPv6 и IPSec, потребовали некоторых изменений из-за необходимости их одновременного сосуществования с протоколом IPv4.
Вывод и ввод UDP. Блок протокола.
Вывод UDP
Системный вызов, отправляющий данные, достигает UDP в виде вызова процедуры udp_send(), которая принимает цепочку mbuf, содержащих данные для дейтаграммы. Если вызов предоставил адрес назначения, он также передается, в противном случае используется адрес из предшествующего вызова connect.
UDP. Протокол пользовательских дейтаграмм
Протокол пользовательских дейтаграмм (User Datagram Protocol - UDP) является простым, ненадежным протоколом дейтаграмм, предусматривающим лишь сквозную адресацию и необязательную контрольную сумму данных. В FreeBSD контрольные суммы включаются или отключаются для всей системы в целом и не могут включаться или отключаться для отдельных сокетов.
Еще статьи...
Страница 9 из 12
Сетевые протоколы