IPv4
Internet Protocol или IP — маршрутизируемый сетевой протокол, протокол сетевого уровня семейства TCP/IP. Протокол IP используется для негарантированной доставки данных, разделяемых на так называемые пакеты от одного узла сети к другому. Это означает, что на уровне этого протокола (третий уровень сетевой модели OSI) не даётся гарантий надёжной доставки пакета до адресата. В частности, пакеты могут прийти не в том порядке, в котором были отправлены, продублироваться (когда приходят две копии одного пакета; в реальности это бывает крайне редко), оказаться повреждёнными (обычно повреждённые пакеты уничтожаются) или не прибыть вовсе. Гарантию безошибочной доставки пакетов дают протоколы более высокого (транспортного уровня) сетевой модели OSI — например, TCP — которые используют IP в качестве транспорта.
В современной сети Интернет используется IP четвёртой версии, также известный как IPv4. В протоколе IP этой версии каждому узлу сети ставится в соответствие IP-адрес длиной 4 октета (4 байта). При этом компьютеры в подсетях объединяются общими начальными битами адреса. Количество этих бит, общее для данной подсети, называется маской подсети (ранее использовалось деление пространства адресов по классам — A, B, C; класс сети определялся диапазоном значений старшего октета и определял число адресуемых узлов в данной сети, сейчас используется бесклассовая адресация).
Формат пакета
Заголовок IP пакета 4 версии имеет 13 основных полей, рассмотрим подробно структуру заголовка пакета:
1)Версия — в данном поле должно быть указано, какая именно версия протокола IP используется, для IPv4 там должно быть4.
2)IHL — Длина заголовка IP-пакета в 32-битных словах (dword). Именно это поле указывает на начало блока данных в пакете. Минимальное корректное значение для этого поля равно 5
3)Тип обслуживания — байт, содержащий набор критериев, определяющих тип обслуживания IP-пакетов. Байт побитно:
0-2 — приоритет (precedence) данного IP-сегмента
3 — требование ко времени задержки (delay) передачи IP-сегмента
(0 — нормальная, 1 — низкая задержка)
4 — требование к пропускной способности (throughput) маршрута, по которому должен отправляться IP-сегмент (0 — низкая, 1 — высокая пропускная способность)
5 — требование к надежности (reliability) передачи IP-сегмента (0 — нормальная, 1 — высокая надежность)
6-7 — ECN — явное сообщение о задержке (управление IP-потоком).
4)Длина пакета — общая длина пакета учитывая поля заголовка и поле данных, максимальная длина пакета может составить 65535 байт.
5)Идентификатор — значение, назначаемое отправителем пакета и предназначенное для определения корректной последовательности фрагментов при сборке датаграммы. Для фрагментированного пакета все фрагменты имеют одинаковый идентификатор, все части одного фрагмента будут иметь одинаковый идентификатор
6)Флаги — состоит из 3 бит, из которых первый всегда равен нулю, второй бит DF (don’t fragment) определяет возможность фрагментации пакета и третий бит MF (more fragments) показывает, не является ли этот пакет последним в цепочке пакетов.
7)Смещение фрагмента — определяется номером первого байта данных в части большого пакета, служит для правильной сборки фрагмента.
8)Число переходов — предельный период времени или число переходов, который пакет может существовать до своего исчезновения, служит для уничтожения "заблудившихся" пакетов, чтобы они не создавали излишней нагрузки на сеть.
9)Протокол — имя протокола верхнего уровня, который разместил свои данные в этом пакете, здесь может быть указан например протокол UDP, TCP, протокол сигнализации и т.д.
10)Контрольная сумма заголовка — рассчитывается только для заголовка, служит для проверки правильности приёма заголовка IP пакета, и соответственно обнаружения пакетов с ошибками в заголовке.
11)IP-адрес отправителя — про это поле стоит поговорить отдельно, в IPv4 существет несколько типов адресов. IP адрес состоит из 32 бит и делится на 2 части: № сети, № Рабочей станции в этой сети.
Класс |
Номер сети, байт |
Номер РС, байт |
Первые разряды |
Максимальное число сетей |
Максимальное число РС |
A |
8 |
24 |
0 |
128 |
16 777 216 |
B |
16 |
16 |
10 |
16384 |
65534 |
C |
24 |
8 |
110 |
2 097 152 |
254 |
Также стоит отметить класс D (первые разряды 1111) для групповой рассылки и класс E для Экспирементов. Существуют также специальные адреса такие как 1.1.1.1 -- широковещательный адрес, 0.0.0.0 -- никому не предназначенный адрес (служит для тестирования оборудования)
12)IP-адрес получателя -- имеет такую же структуру как и адрес отправителя.
13)Параметры -- дополнительные опции, например можно прописать маршрут следования пакета, длина данного поля может быть переменной, максимальное значение 320 бит.
14)Поле данные -- непосредственно передаваемые данные.
Общие недостатки протокола IPv4:
1)Дефицит адресного пространства - количество различных устройств, подключаемых к сети Internet, растет экспоненциально, размер адресного пространства быстро истощается;
2)Слабая расширяемость протокола - недостаточный размер заголовка IPv4, не позволяющий разместить требуемое количество дополнительных параметров в нем;
3)Проблема безопасности коммуникаций - не предусмотрено каких-либо средств для разграничения доступа к информации, размещенной в сети.
4)Отсутствие поддержки качества обслуживания - не поддерживается размещение информации о пропускной способности, задержках, требуемой для нормальной работы некоторых сетевых приложений;
5)Проблемы, связанные с механизмом фрагментации - не определяется размер максимального блока передачи данных по каждому конкретному пути;
6)Отсутствие механизма автоматической конфигурации адресов;
7)Проблема перенумерации машин.