Симплекс метод 3

Заголовок, добавляемый протоколом IP к данным, полученным от протокола транспортного уровня, обычно имеет длину 20 байт.

	Version

	IHL

	Type of Service

	

заголовок IPTotal Lenght

	Identification

	Flags

	Fragment Offset

	Time to Live

	Protocol

	Header Checksum

	Source IP Address

	Destantion IP Address

	

	Options

	

	

	Data

	

Поля дейтаграммы выполняют следующие функции.

• Version (4 бита) — версия протокола IP, использованная для создания дейтаграммы. 

• Internet Header Length (IHL) (4 бита) — длина заголовка дейтаграммы, выраженная в 32-битовых (4-байтовых) словах. 

• Type of Service (I байт) — код приоритета дейтаграммы. Это поле позволяет присвоить дейтаграмме приоритет, который будет учитываться маршрутизаторами при ее пересылке по интерсети.

• Total Length (2 байта) — длина дейтаграммы в байтах с учетом данных и всех полей заголовка.

• Identification (2 байта) — уникальный идентификатор дейтаграммы. Целевая система использует эту величину при сборке дейтаграмм, которые были фрагментированы в процессе передачи.

• Flags (3 бита) — флаги, управляющие процессом фрагментации дейтаграммы.

• Fragment Offset (13 битов) — значение, определяющие положение фрагмента во фрагментированной дейтаграмме.

• Time to Live (1 байт) — количество сетей, которые дейтаграмме разрешается пройти на пути к целевой системе. Каждый маршрутизатор, пересылающий дейтаграмму, уменьшает значение в этом поле на 1. Когда значение становится равным 0, дейтаграмма прекращает существование.

• Protocol (1 байт) — код протокола, сгенерировавшего информацию в поле данных.

• Header Checksum (2 байта) — контрольная сумма для полей заголовка IP, используемая для обнаружения ошибок.

• Source IP Address (4 байта) — IP-адрес системы, создавшей дейтаграмму.

• Destination IP Address (4 байта) — IP-адрес системы, в которую направляется дейтаграмма.

• Options (переменной длины) — необязательное поле для одного или нескольких из 16 IP-параметров. Размер и содержимое этого поля определяются количеством и типом параметров.

• Data (переменной длины) — информация, сгенерированная протоколом, код которого указан в поле Protocol. Размер этого поля зависит от протокола канального уровня, используемого сетью, в которую система передает дейтаграмму.

	Уникальность IP по сравнению с другими протоколами сетевого уровня состоит в том, что он обладает собственной системой адресов для идентификации компьютеров в интерсети почти любого размера (в других протоколах сетевого уровня, например, в NetBEUI или IPX, для идентификации компьютеров в ЛВС используются имена или аппаратные адреса). Адрес IP имеет длину 32 бита и состоит из идентификатора сети и идентификатора хоста. Хостом (host) в TCP/IP называется сетевой адаптер компьютера или другого устройства. Обычно говорят об IP-адресе компьютера, но в действительности адрес принадлежит сетевому адаптеру (чаще всего сетевой плате). Если на компьютере (например, маршрутизаторе) установлено два адаптера или адаптер и модем для удаленного соединения с сетью, у него будет два IP-адреса — по одному для каждого интерфейса, IP-адреса, записанные системой в поля Source IP Address и Destination IP Address заголовка IP, идентифицируют систему, создавшую пакет, и систему, которой он предназначен. Если пакет не покинет пределов ЛВС, целевой IP-адрес указывает на ту же систему, что и целевой адрес в заголовке протокола канального уровня. Если пакет адресован системе в другой сети, целевые адреса протоколов сетевого и канального уровней различаются. IP — сквозной протокол, т. е. он полностью отвечает за доставку данных целевой системе, не ограничиваясь их перемещением по локальной сети, как протокол канального уровня.

	Протоколы канального уровня с IP-адресами не работают, поэтому для передачи дейтаграммы IP должен сообщить протоколу канального уровня аппаратный адрес системы в локальной сети. Для этого IP прибегает к помощи другого протокола из набора TCP/IP — протокола разрешения адреса ARP (Address Resolution Protocol). ARP рассылает широковещательное сообщение с IP-адресом системы в локальной сети. Система, которой принадлежит этот IP-адрес, отвечает на него, подставляя в ответное сообщение свой аппаратный адрес.

	Если целевая система дейтаграммы находится в локальной сети, в сообщении ARP содержится ее IP-адрес. Если целевая система находится в другой сети, IP-адрес в сообщении ARP принадлежит маршрутизатору. Получив ответ на сообщение ARP, протокол IP в системе источнике передает дейтаграмму протоколу канального уровня, сопроводив ее аппаратным адресом, необходимым для построения кадра.

	Маршрутизация — самая важная и сложная функция протокола IP. Когда TCP/IP-система передает данные компьютеру в другой сети, пакетам предстоит пройти через маршрутизаторы, которыми эти сети соединяются. Отправитель и получатель данных называются оконечными, а маршрутизаторы — промежуточными системами. Проходя через промежуточную систему, пакеты поднимаются по стеку протоколов только до сетевого уровня. Там IP принимает решение, куда пакет отправить дальше. Если маршрутизатор входит в сеть, в которую включена целевая система, он передает пакет туда, и путешествие пакета на этом закончено. Если целевая система находится в другой сети, маршрутизатор передает пакет другому маршрутизатору, и пакет оказывается  на шаг ближе к цели. В сложных интерсетях на пути к месту назначения пакет может проходить через десятки маршрутизаторов.

	Поскольку в промежуточной системе пакет достигает только сетевого уровня, дейтаграмма не открывается и не используется. Маршрутизатор удаляет кадр канального уровня и заменяет его собственным кадром, но ≪конверт≫ дейтаграммы остается запечатанным, пока она не достигнет места назначения. И все-таки каждая промежуточная система вносит в заголовок IP незначительные изменения. Самое важное из них касается поля Time to Live (TTL), определяющего ≪время жизни≫ пакета. Компьютер, сгенерировавший пакет, записывает в него заданное значение. Каждый машрутизатор, обрабатывающий пакет, уменьшает это значение на 1. Когда величина TTL достигает нуля, очередной маршрутизатор дальше пакет не передает. Это позволяет избежать зацикливания пакетов в сети в случае каких-либо сбоев.

	Маршрутизатор, в котором величина TTL достигла нуля, с помощью протокола ICMP генерирует сообщение об ошибке Time to Live  Exceeded in Transit и посылает его системе-источнику пакета. Так отправитель узнает, что пакет не достиг места назначения. В большую часть реализаций TCP/IP включается программа Traceroute, которая с помощью поля TTL составляет список маршрутизаторов на пути к определенной целевой системе. Посылая по заданному адресу серию пакетов с последовательно увеличивающимися значениями TTL, Traceroute заставляет встретившиеся маршрутизаторы по очереди генерировать сообщения об ошибке. Из этих сообщений Traceroute извлекает адреса маршрутизаторов и отображает полный путь к целевой системе.

	Маршрутизатор способен соединять сети с различными сетевыми средами и протоколами канального уровня, но, чтобы направить пакеты из одной сети в другую, ему часто приходится переупаковывать дейтаграмму в другой кадр канального уровня. Иногда это выливается в удаление старого кадра и создание нового. В других случаях протоколы канального уровня различаются настолько сильно, что процесс переупаковки усложняется, как, например, при соединении сети Token Ring с сетью Ethernet. Дело в том, что в сети Token Ring дейтаграмма может иметь длину до 4500 байтов, а в сети Ethernet — не более 1500 байтов. Для решения этой проблемы маршрутизатор разделяет дейтаграмму, пришедшую из сети Token Ring, на несколько фрагментов. Каждый из них обладает собственным заголовком IP и пересылается в отдельном кадре канального уровня. 

	

	Создавая систему NetWare, компания Novell разработала собственный набор протоколов, называемый обычно IPX (Internetwork Packet Exchange) пo имени протокола сетевого уровня. Протоколы IPX никогда не публиковались в виде открытых стандартов, подобных TCP/ IP или Ethernet, и по сей день остаются собственностью Novell. Протокол IPX не ориентирован на соединение. Он похож на IP в том смысле, что функционирует на сетевом уровне эталонной модели OSI и переносит по сети данные, сгенерированные другими протоколами. Тем не менее сам IPX и другие протоколы из этого стека предназначены для применения в ЛВС, тогда как протоколы TCP/IP спроектированы для сетей, которые в наши дни стали Интернетом. Это означает, что в IPX нет собственной системы адресации, подобной IP-адресации. Другие же функции протокола IP, например, маршрутизация и идентификация протокола, сгенерировавшего данные, в IPX также поддерживаются

	

	Самый популярный внутренний протокол маршрутизации из набора TCP/IP — RIP (Routing Information Protocol) — применяется в сетях по всему миру. Изначально он разрабатывался для UNIX-систем, но со временем был перенесен на многие другие платформы. Действие RIP основано главным образом на сообщениях двух типов — запросах и ответах, которые передаются в пакетах UDP. При запуске RIP-маршрутизатор генерирует RIP-запрос и передает его как широковещательное сообщение на все свои сетевые интерфейсы. Получив это сообщение, все маршрутизаторы в сетях, поддерживающих RIP, посылают ответное сообщение с информацией из своих таблиц маршрутизации.