Сети → Протокол IP и адресация в IP-сетях (часть 1)

Протокол IP входит в состав комплекса протоколов TCP/IP и соответствует уровню 3 сетевой модели (межсетевой уровень, RFC 791) и определяет логику IP-адресации и маршрутизации. Используется для ненадёжной доставки данных (разделяемых на пакеты) от одного узла сети к другому. Это означает, что на уровне этого протокола (3 уровень модели OSI) не даётся гарантий надёжной доставки пакета до адресата. В частности, пакеты могут прийти не в том порядке, в котором были отправлены, оказаться повреждёнными или не прибыть вовсе. Гарантии безошибочной доставки пакетов дают протоколы более высокого (транспортного) уровня сетевой модели, например, TCP — которые используют IP в качестве транспорта.

протокол IPIP требует, чтобы каждое сетевое устройство имело уникальный IP-адрес, дабы избежать путаницы при доставке данных нужному адресату.

Каждый сетевой интерфейс на компьютере должен иметь свой уникальный IP-адрес. Сетевой интерфейс (network interface) – это просто плата  в компьютере, которая имеет физический соединитель для подключения к сети некоторого типа, например это может быть сетевая плата. Эта плата интерфейса сети выполняет функции уровня сетевого интерфейса TCP/IP, который является эквивалентом уровней 1 и 2 модели OSI. Межсетевой уровень TCP/IP, реализуемый в соответствии с протоколом IP, определяет логические IP-адреса.

Большинство компьютеров имеет только один интерфейс, это означает, что компьютер имеет только один IP-адрес. Однако любое устройство, которое имеет хотя бы один IP-адрес, уже может посылать и получать IP-пакеты, и такое устройство называют хост TCP/IP (TCP/IP host).

Устройства, которые имеют более одного сетевого интерфейса — имеют несколько IP-адресов. Маршрутизаторы обычно имеют много сетевых интерфейсов, некоторые серверы также имеют несколько интерфейсов.

IP-адреса – это 32-разрядные двоичные числа, которые записываются в виде десятичных чисел в каноническом формате (десятичный формат с точками). Каждое из десятичных чисел в IP-адресе называют октетом (octet, эквивалент термина байт). Каждый десятичный октет представляет 8 бит IP‑адреса, а все 4 октета (отделенные точками) образуют полный IP-адрес, представляющий 32 бита.

Протокол IP (как и протокол TCP), определяет свой, 20-байтовый, заголовок. Который включает 4-байтовый IP-адрес отправителя и 4-байтовый IP-адрес получателя. IP-пакет (IP packet) включает IP-заголовок, а также некоторые данные, которые следуют за заголовком IP.

Существует отличие между полями с Ethernet-адресами получателя и отправителя в заголовке Ethernet (поля размером 6 байт) и IP-адресами. IP-адреса совершенно другие, они используются, чтобы сетевые устройства могли отправлять данные по большей сети, которая помимо Ethernet может включать физические сети других типов.

При отправке пакета именно поле IP-адреса получателя в IP-заголовке определяет, куда нужно послать пакет. Компьютеры и маршрутизаторы, расположенные в сети между ними, определяю, куда должен быть отправлен пакет, основываясь на IP-адресе получателя. IP-адрес отправителя используется при ответе и также важен.

Под «пакетом» подразумевают данные, которые включают заголовок уровня 3 и какие-то инкапсулированные данные. В сетевой модели TCP/IP, IP является протоколом уровня 3, таким образом, IP-заголовок и данные, которые за ним следуют, образуют IP-пакет.

Термин «сегмент» относиться данным, которые включают заголовок уровня 4 (TCP-заголовок) и какие-то инкапсулированные данные. Различие между пакетом и сегментом состоит в том, что сегмент не включает заголовок уровня 3, а пакет включает.

Под «фреймом» подразумеваются – заголовок канального уровня и инкапсулированные данные. Заголовок Ethernet и концевик инкапсулируют данные таким образом, что бы их можно было послать по локальной сети Ethernet.

Термин «фрейм» используют по отношению к заголовку, концевику и данным канального уровня; термин «пакет» — по отношению к заголовку и данным сетевого уровня (IP); термин «сегмент» — по отношению к заголовку и данным транспортного уровня (TCP).

Отправляя данные, программное обеспечение IP инкапсулирует данные более высокого уровня в IP-пакет. Для того чтобы послать HTTP сообщение на Web-сервер, необходимо использовать TCP (занимается сегментацией и исправлением ошибок и т.д.), а для того чтобы доставить сегмент другому компьютеру TCP должен использовать IP (сквозная доставка адресату).