
-
Версия 4 (iPv4)
Рис.1 Поля пакета IPv4
Поля:
-
Версия — для IPv4 значение поля должно быть равно 4.
-
IHL — длина заголовка IP-пакета в 32-битных словах (dword). Именно это поле указывает на начало блока данных в пакете. Минимальное корректное значение для этого поля равно 5.
-
Идентификатор — значение, назначаемое отправителем пакета и предназначенное для определения корректной последовательности фрагментов при сборке датаграммы.
-
3 бита флагов. Первый бит должен быть всегда равен нулю, второй бит DF (don’t fragment) определяет возможность фрагментации пакета и третий бит MF (more fragments) показывает, не является ли этот пакет последним в цепочке пакетов.
-
Смещение фрагмента — значение, определяющее позицию фрагмента в потоке данных.
-
Протокол — идентификатор интернет-протокола следующего уровня (см. IANA protocol numbers и RFC 1700). В IPv6 называется «Next Header».
-
Версия 6 (iPv6)
Рис.2 Поля пакета IPv6
Поля:
-
Версия — для IPv6 значение поля должно быть равно 6.
-
Класс трафика — определяет приоритет трафика (QoS, класс обслуживания).
-
Метка потока — уникальное число, одинаковое для однородного потока пакетов.
-
Длина полезной нагрузки — длина данных (заголовок IP-пакета не учитывается).
-
Следующий заголовок — Определяет следующий инкапсулированный протокол.
-
Число переходов — максимальное число роутеров, которые может пройти пакет. При прохождении роутера это значение уменьшается на единицу и по достижению нуля пакет отбрасывается.
-
Диапазоны для локальных сетей
При подключении пользовательского компьютера к Интернету, IP-адреса выбираются из диапазона, предоставленного провайдером. Компьютеры, не имеющие IP-адреса, выданного провайдером, могут (при правильной настройке маршрутизации) работать с другими локальными компьютерами, имея IP-адреса из диапазонов, зарезервированных для локальных сетей (RFC 1918):
-
10.0.0.0 — 10.255.255.255 (одна сеть класса A)
-
172.16.0.0 — 172.31.255.255 (шестнадцать сетей класса B)
-
192.168.0.0 — 192.168.255.255 (256 сетей класса C)
-
сеть 2001:0DB8::/32 в IPv6 — зарезервировано для примеров и документации
Компьютеры с такими адресами могут получать доступ к Интернету посредством прокси-серверов или NAT.
При построении сетей, составляющих Интернет (например, сетей провайдеров), выбираются строго определённые диапазоны адресов, назначенные организацией IANA (подконтрольна ICANN, «высшей инстанции» в вопросах резервирования диапазонов адресов) и имеет свои представительства по всему миру — например, в Европе распределение адресов координирует RIPE NCC.
-
ICMP
Internet Control Message Protocol — межсетевой протокол управляющих сообщений) — сетевой протокол, входящий в стек протоколов TCP/IP. В основном ICMP используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных. Также на ICMP возлагаются некоторые сервисные функции.
-
Icmp-пакет
Рис.3 Поля ICMP-пакета
-
ARP
Address Resolution Protocol — протокол разрешения адресов — сетевой протокол канального уровня, предназначенный для преобразования IP-адресов (адресов сетевого уровня) в MAC-адреса (адреса канального уровня) в сетях TCP/IP. Он определён в RFC 826.
Информация пересылаемая от одного компьютера другому по сети содержит в себе физический адрес отправителя, IP-адрес отправителя, физический адрес получателя и IP-адрес получателя. ARP-протокол обеспечивает связь между этими двумя адресами. Существует четыре типа ARP-сообщений: ARP-запрос (ARP request), ARP-ответ (ARP reply), RARP-запрос (RARP-request) и RARP-ответ (RARP-reply). Локальный хост при помощи ARP-запроса запрашивает физический адрес хоста-получателя. Ответ (физический адрес хоста-получателя) приходит в виде ARP-ответа. Хост-получатель, вместе с ответом, шлёт также RARP-запрос, адресованный отправителю, для того, чтобы проверить его IP-адрес. После проверки IP-адреса отправителя начинается передача пакетов данных.
Перед тем, как создать подключение к какому-либо устройству в сети, IP-протокол проверяет свой ARP-кеш, чтобы выяснить, не зарегистрирована ли в нём уже нужная для подключения информация о хосте-получателе. Если такой записи в ARP-кеше нет, то выполняется широковещательный ARP-запрос. Этот запрос для устройств в сети имеет следующий смысл: «Кто-нибудь знает физический адрес устройства, обладающего следующим IP-адресом?» Когда получатель примет этот пакет, то должен будет ответить: «Да, это мой IP-адрес. Мой физический адрес следующий: …» После этого отправитель обновит свой ARP-кеш, и будет способен передать информацию получателю.
Записи в ARP-кеше могут быть статическими и динамическими. Пример, данный выше, описывает динамическую запись кеша. Хост-отправитель автоматически послал запрос получателю, не уведомляя при этом пользователя. Записи в ARP-кеш можно добавлять вручную, создавая статические записи кеша. Это можно сделать при помощи команды:
arp -s <IP адрес> <MAC адрес>
После того, как IP-адрес прошёл процедуру разрешения адреса, он остаётся в кеше в течение 2-х минут. Если в течение этих двух минут произошла повторная передача данных по этому адресу, то время хранения записи в кеше продлевается ещё на 2 минуты. Эта процедура может повторяться до тех пор, пока запись в кеше просуществует до 10 минут. После этого запись будет удалена из кеша и будет отправлен повторный ARP-запрос.