Номер протокола хранится в одном из байтов третьего слова заголовка дейтаграммы. Значение определяет протокол уровня над IP, которому сле- дует передавать данные.
Номера протоколов для Unix-систем определяются в файле /etc/protocols. Файл имеет простую табличную структуру и содержит пары, состоящие из имен протоколов и связанных с ними номеров. Каждая строка таблицы содержит одну запись: формальное имя протокола, отделенное от номера протокола пробельными символами. Номер протокола отделен пробельными символами от «псевдонима» протокола. Комментарии в таблице начинаются с символа #. Пример файла /etc/protocols приводится ниже:
111
Приведенная распечатка представляет содержимое файла /etc/protocols рабочей станции под управлением Solaris 8. Данный перечень номеров никоим образом не претендует на полноту. Если заглянуть в раздел Protocol Numbers веб-сайта организации IANA, можно обнаружить гораздо больше номеров протоколов. Однако система может включать лишь те номера протоколов, которые используются в работе. Даже приведенный пример содержит больше номеров, чем на практике потребуется данной конкретной рабочей станции; так, вторая половина таблицы может использоваться только в системах, работающих по протоколу IPv6. Разумеется, если ваша система не работает с IPv6 или какими-либо вообще протоколами из перечисленных, поводов для опасений нет - лишние записи не причинят вреда.
Каков же смысл этой таблицы? Когда поступает дейтаграмма, адрес получателя которой совпадает с локальным IP-адресом, уровень IP обязан передать дейтаграмму одному из транспортных протоколов, расположенных уровнем выше. Решение о том, какому протоколу передать дейтаграмму, IP принимает на основе номера протокола, содержащегося в дейтаграмме. Из таблицы можно видеть, что если номер протокола для дейтаграммы равен 6, протокол Internet доставляет дейтаграмму протоколу TCP; если номер протокола равен 17, IP доставляет дейтаграмму протоколу UDP. TCP и UDP - это те две службы транспортного уровня, которые нас интересуют, но все протоколы, перечисленные в первой половине таблицы, напрямую используют службу доставки дейтаграмм протокола IP. Некоторые из таких протоколов - ICMP, EGP и GGP - упоминались ранее. О других речь не шла, но, по правде говоря, второстепенные протоколы не имеют значения для настройки и сопровождения сети TCP/IP.