IP
IP (англ. Internet Protocol — межсетевой протокол) — маршрутизируемый сетевой протокол, основа стека протоколов TCP/IP.
Протокол IP (RFC 791) используется для ненадёжной доставки данных (разделяемых на так называемые пакеты) от одного узла сети к другому. Это означает, что на уровне этого протокола не даётся гарантий надёжной доставки пакета до адресата. В частности, пакеты могут прийти не в том порядке, в котором были отправлены, оказаться повреждёнными или не прибыть вовсе. Гарантии безошибочной доставки пакетов дают протоколы более высокого (транспортного) уровня — например, TCP — которые используют IP в качестве транспорта.
В современной сети Интернет используется IP четвёртой версии, также известный как IPv4. В протоколе IP этой версии каждому узлу сети ставится в соответствие IP-адрес длиной 4 октета (иногда говорят «байта», подразумевая распространённый восьмибитовый минимальный адресуемый фрагмент памяти ЭВМ). При этом компьютеры в подсетях объединяются общими начальными битами адреса. Количество этих бит, общее для данной подсети, называется маской подсети (ранее использовалось деление пространства адресов по классам — A, B, C; класс сети определялся диапазоном значений старшего октета и определял число адресуемых узлов в данной сети, сейчас используется бесклассовая адресация).
В настоящее время вводится в эксплуатацию шестая версия протокола — IPv6, которая позволяет адресовать значительно большее количество узлов, чем IPv4. Эта версия отличается повышенной разрядностью адреса, встроенной возможностью шифрования и некоторыми другими особенностями. Переход с IPv4 на IPv6 связан с трудоёмкой работой операторов связи и прозводителей программного обеспечения и не может быть выполнен одномоментно. На начало 2007 года в Интернете присутствовало около 760 сетей, работающих по протоколу IPv6. Для сравнения, на то же время в адресном пространстве IPv4 присутствовало более 203 тысяч сетей, но в IPv6 сети гораздо более крупные, нежели в IPv4.
IP-пакет[править | править код]
IP-пакет — форматированный блок информации, передаваемый по вычислительной сети. Соединения вычислительных сетей, которые не поддерживают пакеты, такие как традиционные соединения типа «точка-точка» в телекоммуникациях, просто передают данные в виде последовательности байтов, символов или битов. При использовании пакетного форматирования, сеть может передавать длинные сообщения более надежно и эффективно.
Структура IP-датаграммы (пакета)[править | править код]
В протоколе четвертой версии (IPv4)[править | править код]
Версия (4 бит) | Длина (4 бит) | Тип обслуживания (8 бит) | |||||||||||||
Длина пакета | |||||||||||||||
Идентификатор | |||||||||||||||
0 | DF | MF | Смещение фрагмента | ||||||||||||
Число переходов (TTL) | Протокол | ||||||||||||||
Контрольная сумма заголовка | |||||||||||||||
IP-адрес отправителя (32 бита) | |||||||||||||||
IP-адрес получателя (32 бита) | |||||||||||||||
Параметры (до 320 бит) | |||||||||||||||
Данные (до 65535 байт минус заголовок) |
- Версия — для IPv4 значение поля должно быть равно 4.
- Длина — длина заголовка IP-пакета в 32-битных словах (dword). Именно это поле указывает на начало блока данных в пакете. Минимальное корректное значение для этого поля равно 5.
- Идентификатор — значение, определяемое отправителем пакета и предназначенное для определения корректной последовательности пакетов.
- 3 бита флагов. Первый бит должен быть всегда равен нулю, второй бит DF (don’t fragment) определяет возможность фрагментации пакета и третий бит MF (more fragments) показывает, не является ли этот пакет последним в цепочке пакетов.
- Смещение фрагмента — значение, определяющее позицию фрагмента в потоке данных.
- Протокол — идентификатор интернет-протокола следующего уровня (см. IANA protocol numbers и RFC 1700). В IPv6 называется «Next Header».
В протоколе 6 версии (IPv6)[править | править код]
Версия (4 бита) | Класс трафика (8 бит) | Метка потока (20 бит) | |||||||||||||||||||||||||||||
Длина полезной нагрузки (16 бит) | След. заголовок (8 бит) | Число переходов | |||||||||||||||||||||||||||||
IP-адрес отправителя (128 бит) | |||||||||||||||||||||||||||||||
IP-адрес получателя (128 бит) | |||||||||||||||||||||||||||||||
Данные |
- Версия — для IPv6 значение поля должно быть равно 6.
- Класс трафика — определяет приоритет трафика (QoS, класс обслуживания).
- Метка потока — уникальное число, одинаковое для однородного потока пакетов.
- Длина полезной нагрузки — длина данных (заголовок IP-пакета не учитывается).
- Следующий заголовок — Определяет следующий инкапсулированный протокол.
- Число переходов — максимальное число роутеров, которые может пройти пакет. При прохождении роутера это значение уменьшается на единицу и по достижению нуля пакет отбрасывается.
Диапазоны для локальных сетей[править | править код]
При подключении пользовательского компьютера к Интернету, IP-адреса выбираются из диапазона, предоставленного провайдером. Компьютеры, не имеющие IP-адреса, выданного провайдером, могут (при правильной настройке маршрутизации) работать с другими локальными компьютерами, имея IP-адреса из диапазонов, зарезервированных для локальных сетей (RFC 1918):
- сеть класса А 10.0.0.0 — 10.255.255.255 (маска подсети 255.0.0.0)
- сеть класса B 172.16.0.0 — 172.31.255.255 (маска подсети 255.240.0.0)
- сеть класса C 192.168.0.0 — 192.168.255.255 (маска подсети 255.255.0.0)
- сеть класса D 2001:0DB8::/32 в IPv6 — зарезервировано для будущих поколений
Компьютеры с такими адресами могут получать доступ к Интернету посредством прокси-серверов или NAT.
При построении сетей, составляющих Интернет (например сетей провайдеров), выбираются строго определённые диапазоны адресов, назначенные организацией ICANN. ICANN является «высшей инстанцией» в вопросах резервирования диапазонов и имеет свои представительства по всему миру — например, в Европе распределение адресов координирует RIPE NCC.
Ссылки[править | править код]
- RFC 791 — IP
- RFC 1918
- RFC 3330 — Специальные диапазоны адресов в IPv4.