TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
Ниже приведен результат выполнения команды netstat -па, выводящей локальные и удаленные адреса socket для текущих активных коммуникаций с системой tigger. Адреса socket записаны в форме IP-адрес.номер_порта.
Например,
9.4 Механизмы протокола UDP
Какой механизм необходим для запуска протокола User Datagram Protocol? Прежде всего, UDP должен быть присвоен уникальный идентификатор протокола (17). Это значение будет помещаться в поле протокола IP с названием Protocol во всех исходящих сообщениях UDP. Входящие сообщения со значением 17 в поле протокола IP доставляются в UDP. Протокол UDP формирует сообщение, добавляя простой заголовок к данным от приложения. В этом заголовке указываются номера портов источника и назначения.
9.4.1 Заголовок UDP
На рис. 9.3 представлен формат заголовка UDP. Заголовок содержит 16-разрядные номера портов источника и назначения, определяющие конечные точки коммуникации. Поле длины определяет общее количество октетов в заголовке и части для данных сообщения UDP. Поле контрольной суммы позволяет проверить корректность
Рис. 9.3. Заголовок UDP
9.4.2 Контрольная сумма
Вспомним, что заголовок IP содержит контрольную сумму для проверки корректности своих полей. Назначением контрольной суммы UDP является проверка содержимого сообщения UDP.
В UDP контрольная сумма вычисляется как комбинация специально сформированного псевдозаголовка (pseudo header), содержащего некоторую информацию IP, заголовка UDP и данных из сообщения.
Формат псевдозаголовка и его участие в вычислении контрольной суммы показаны на рис. 9.4. Отметим, что адрес источника, адрес назначения и поле протокола заимствуются из заголовка IP.
Рис. 9.4. Поля псевдозаголовка для контрольной суммы UDP
Использование контрольной суммы в коммуникации не является обязательным. Когда она не применяется, поле имеет нулевое значение. Если же контрольная сумма была вычислена и равна нулю, такое значение представляется последовательностью единиц.
9.4.3 Другие функции UDP
Кроме отправки и получения датаграмм, UDP должен руководствоваться здравым смыслом при пересылке данных вниз, от приложения к IP, и обеспечивать указание на ошибки от IP к приложению.
9.4.4 Пример сообщения UDP
Рис. 9.5 содержит совмещенный вывод IP и UDP частей запроса и соответствующих им ответов. Этот результат получен в мониторе локальной сети Sniffer компании Network General. Запрос содержал требование вывода статуса информации и был послан хостом на сетевую станцию управления. Часть для данных в сообщениях запроса и ответа не приведена.
Рис. 9.5. Заголовки IP и UDP для запроса и ответа
Запрос был послан из IP-адреса 128.1.1.1 и порта UDP с номером 1227 на IP-адрес назначения 128.1.1.10 и 161-й порт UDP (запросы сетевого обслуживания всегда направляются на порт UDP с номером 161).
В обоих заголовках IP поле протокола имеет значение 17, что указывает на использование протокола UDP. Контрольная сумма UDP не вычисляется для запроса, но присутствует в ответе.
Анализатор Sniffer распознает, что порт 161 назначен для сетевого обслуживания.