Протокол
IP является протоколом сетевого уровня
стека протоколов TCP/IP. Функции протокола
IP определены следующим образом: “Протокол
IP обеспечивает передачу блоков данных,
называемых дейтаграммами, от отправителя
к получателям, где отправители и
получатели являются компьютерами,
идентифицируемыми адресами фиксированной
длины (IP-адресами).
Протокол IP обеспечивает при необходимости
также фрагментацию
и сборку
дейтаграмм для передачи данных через
сети с малым размером пакетов”.
Вместо термина дейтаграмма мы далее
будем употреблять термин пакет, как и
договаривались ранее.
Протокол
IP является ненадежным
протоколом без
установления соединения.
Это означает, что протокол IP не подтверждает
доставку данных, не контролирует
целостность полученных данных и не
производит операцию обмена служебными
сообщениями, подтверждающими установку
соединения с узлом назначения и его
готовность к приему данных. Протокол
IP обрабатывает каждый пакет как
независимую единицу, не имеющую связи
ни с какими другими пакетами в Интернет.
После того, как пакет отправляется в
сеть, его дальнейшая судьба никак не
контролируется отправителем (на уровне
протокола IP). Если пакет не может быть
доставлен, он уничтожается. Узел,
уничтоживший дейтаграмму, может оправить
по обратному адресу специальное
ICMP-сообщение
о причине сбоя.
Гарантию
правильной передачи данных могут
предоставлять протоколы вышестоящих
уровней (например, протокол TCP транспортного
уровня), которые имеют для этого
необходимые механизмы.
Одна
из основных задач, решаемых протоколом
IP, — маршрутизация пакетов, т.е. определение
пути следования пакета от одного узла
сети к другому на основании адреса
получателя.
Ip- адрес
IP-
адрес — это 32-битное двоичное число.
Принята
десятичная нотация адресов. Каждый из
4 байтов адреса представляется
эквивалентным десятичным числом. Числа
разделяются точками. Так для IP-адреса
11010100
11000001 00100000 00000100
имеем
в десятичном виде
212.193.32.4
IP-адрес
может быть форматирован или 5 классическими
способами (классы A, B C, D,
E)
или маской переменной длины (бесклассова
адресация).
|
8 |
8 |
8 |
8 |
|||
|
Класс |
0 |
№ сети |
№ узла |
|||
|
Класс |
1 |
0 |
№ сети |
№ узла |
||
|
Класс |
1 |
1 |
0 |
№ сети |
№ узла |
|
|
Класс |
1 |
1 |
1 |
0 |
Адрес |
|
|
Класс |
1 |
1 |
1 |
1 |
0 |
Зарезервировано |
Существуют
дополнительные правила формирования
IP-
адресов.
Для
номера сети:
-
первый
октет идентификатора сети не может
быть равен 127
(адреса вида 127.x.y.z
предназначены для отправки узлом
пакетов самому себе и используются как
правило для отладки сетевых приложений,
такие адреса называются loopback-адресами,
или адресами обратной связи); -
все
разряды идентификатора сети не могут
состоять из одних 1
(IP-адреса, все биты которых установлены
в 1, используются при широковещательной
передаче информации); -
все
разряды идентификатора сети не могут
состоять из одних 0
(в IP-адресах все биты, установленные в
ноль, соответствуют либо данному
устройству, либо данной сети);
Для
номера узла:
-
все
разряды идентификатора узла не могут
состоять из одних 1
(идентификатор узла, состоящий из одних
1,
используется для широковещательных
адресов, или broadcast-адресов); -
все
разряды идентификатора узла не могут
состоять из одних 0
(если разряды идентификатора узла равны
0,
то такой адрес обозначает всю сеть,
например, адрес 192.168.1.0
обозначает всю сеть с идентификатором
сети 192.168.1;
Из
структуры адреса класса А следует, что
в первом октете он может иметь значения
от 0 до 127. С учетом вышеперечисленных
ограничений значения 0 и 127 недопустимы.
Существует, таки образом, только 126 сетей
класса А. Остальные 24 бита адресуют
хосты в сети класса А. Для классических
сетей А,В и С таким образом имеем:
|
сети |
Наименьший |
Наибольший |
Количество |
|
Класс |
1.0.0.0 |
126.0.0.0 |
126 |
|
Класс |
128.0.0.0 |
191.255.0.0 |
16384 |
|
Класс |
192.0.0.0 |
223.255.255.0 |
2097152 |
Соответственно
для узлов в этих сетях:
|
сети |
Наименьший |
Наибольший |
Количество |
|
Класс |
w.0.0.1 |
w.255.255.254 |
16777214 |
|
Класс |
w.x.0.1 |
w.x.255.254 |
65534 |
|
Класс |
w.x.y.1 |
w.x.y.254 |
254 |
Номера
сетей назначаются корпорацией по
присвоению имен и номеров ICANN
(Internet
Corporation
for
Assigned
Names
and
Numbers)
и региональными организациями. В Европе
RIPЕ,
в России RIPN.
Серые
адреса – способ экономии адресного
пространства
Когда
в начале 90-х появились проблемы с адресным
пространством, в марте 1994 г было принято
решение об адресном «сегментировании»
общего пространства — выделении для
локальных сетей отдельных диапазонов
IP-адресов и исключение этих IP-адресов
из использования в интернете:
Соседние файлы в папке Лекции
- #
- #
- #
- #
- #
- #
������ ������������ �������
����� ���������� TCP/IP ����������
�������� �����������
�������������� — Internet Protocol (IP). �
�������� �������� ��������� IP
���������:
- ������� ����� ������ ���������
����� �������� ���������� �
��������������� �����, - ������ � �������� ������� ���
�������� �� ����� ������ �
��������� ������������
��������� ����� ������.
������ ������ IP
����� IP ������� �� ��������� �
���� ������. ��������� ������ �����
��������� ����:
- ���� ����� ������ (VERS)
��������� ������ ��������� IP.
������ �����������
������������ ������ 4 �
��������� ������� �� ������ 6,
���������� ����� IPng (IP next
generation). - ���� ����� ��������� (HLEN)
������ IP �������� 4 ���� �
��������� �������� �����
���������, ���������� �
32-������� ������. ������
��������� ����� ����� � 20 ����
(���� 32-������� ����), �� ���
���������� ������ ���������
���������� ��� ����� �����
���� ��������� �� ����
������������� ��������������
���� � ���� ������ (IP OPTIONS). - ���� ��� ������� (SERVICE TYPE)
�������� 1 ���� � ������
�������������� ������ � ���
�������� ������ ��������.
������ ��� ���� ����� ����
�������� ������� ����������
������ (PRECEDENCE). ��������� �����
����� �������� �� 0 (����������
�����) �� 7 (����� �����������
����������). �������������� �
���������� ����� ��������� ��
�������� ��������� ������ �
������������ ����� ������
������ � ������ �������. ����
��� ������� �������� ����� ���
����, ������������ ��������
������ ��������. �������������
��� D (delay) ������� � ���, ���
������� ������ ���������� ���
����������� �������� ��������
������� ������, ��� T — ���
������������ ����������
�����������, � ��� R — ���
������������ ����������
��������. - ���� ����� ����� (TOTAL LENGTH)
�������� 2 ����� � ���������
����� ����� ������ � ������
��������� � ���� ������. - ���� ������������� ������
(IDENTIFICATION) �������� 2 ����� �
������������ ���
������������� �������,
�������������� �����
������������ ��������� ������.
��� ��������� ������ �����
���������� �������� �����
����. - ���� ����� (FLAGS) �������� 3 ����,
��� ��������� �� �����������
������������ ������
(������������� ��� Do not Fragment — DF —
��������� ��������������
��������������� ������ �����),
� ����� �� ��, �������� ��
������ ����� ������������� ���
��������� ����������
��������� ������
(������������� ��� More Fragments — MF —
������� � ��� ����� ���������
������������� ��������). - ���� �������� ��������� (FRAGMENT
OFFSET) �������� 13 ���, ���
������������ ��� �������� �
������ �������� ���� ������
����� ������ �� ������ ������
���� ������ ��������� ������,
������������� ������������.
������������ ���
������/�������� ����������
������� ��� ��������� �� �����
������ � ���������� ����������
������������ ����� ������. - ���� ����� ����� (TIME TO LIVE)
�������� 1 ���� � ���������
���������� ����, � �������
�������� ����� �����
������������ �� ����. �����
����� ������� ������
���������� � �������� �
�������� ���������� ��������
���������� ��������� IP. ��
������ � � ������ ����� ���� ��
��������� ������ ������� ��
�������� ������� �����
���������� �������; �������
���������� ����� ��� ������
���������� �������� (���� ����
�� ������ �������). ���
��������� ������� ����� �����
������������. - ������������� ���������
�������� ������ (PROTOCOL) ��������
1 ���� � ���������, ������
��������� �������� ������
����������� ����� (��������,
��� ����� ���� ��������� TCP, UDP
��� RIP). - ����������� ����� (HEADER CHECKSUM)
�������� 2 �����, ���
�������������� �� �����
���������. - ���� ����� ��������� (SOURCE IP
ADDRESS) � ����� ���������� (DESTINATION
IP ADDRESS) ����� ���������� ����� —
32 ����, � ���������� ���������. - ���� ������ (IP OPTIONS) ��������
�������������� � ������������
������ ������ ��� ������� ����.
��� ���� ������� �� ����������
��������, ������ �� �������
����� ���� ������ �� ������
���������������� �����. � ����
�������� ����� ���������
������ ������� �����������
���������������,
�������������� ����������
������� ��������������,
�������� ������ �������
������������, � �����
��������� �������. ��� ���
����� �������� ����� ����
������������, �� � ����� ����
������ ������ ���� ���������
��������� ���� ���
������������ ��������� ������
�� 32-������ �������.
������������ ����� ���� ������
������ ���������� ������������
����, ������������� ��� ��������, �
���������� 65535 ������, ������ ���
�������� �� ����� ���������� ����
����� ������ ���������� � ������
������������ ����� ������
��������� ������� ������, ��������
IP-������. ���� ��� ����� Ethernet, ��
���������� ������ � ������������
������ � 1500 ������, ����������� �
���� ������ ����� Ethernet.
����������
�������������
��������� ������������� ������
(��������� TCP ��� UDP), ������������
������� ������� ��� ��������
�������, �������, ��� ������������
������ ���� ������ IP-������ �����
65535, � ������� ����� �������� ���
��������� ����� ����� ���
��������������� ����� ���������. �
������� ������ IP ������ ���������
������� �������� ��� �����������
���� ������������ ���� ���������
�� ����� �������� ������ �
��������� ���������������
��������� �����, ������ ���
����������� ������ ���������� �
�������� ���������.
� ����������� ����� ��������� �
���������� ����� ������������
����� ������� ��� ������������
������ ���� ������ ����� ���
������, � ������� ������
��������������� ���� �����
�������� IP. ��� �������� ������
�������� ������������ ��������
��������������� — Maximum Transfer Unit, MTU.
���� Ethernet ����� �������� MTU, ������
1500 ����, ���� FDDI — 4096 ����, � ���� �.25
���� ����� �������� � MTU � 128 ����.
������ ��������� IP ��
������������ ������� � ������ �
��������������� ��������������
�������� 4.1.
����� ��������� 1 ������ � �����,
������� �������� MTU � 4096 ������,
��������, � ����� FDDI. ���
����������� �� IP-�������
���������� 1 ��������� ��
������������� ������ �������� � 5600
������, �������� IP ����� ��� �� ���
IP-������, ������������ � ������
������ ������� ������������ �
���������� ������ ����������
�������������, ��������, 486. �
������ ������ �������� ����
�������� ����� 0, � �� ������ — 2800.
������� ������������ �� ������
������ ����� ����, ��� ����������,
��� ��� ��������� �������� ������.
����� �������� IP-������ ����������
2800+20 (������ ��������� IP), �� ���� 2820
������, ��� ��������� � ���� ������
����� FDDI.
���. 4.1. ������������
IP-������� ��� �������� ����� ������
� �������
������������� ��������� �������. �1
� �1 ��������� � ���������� �������
���� 1,
�2 � �2 ��������� � ����������
������� ���� 2
����� ��������� 1 �������� ���
������ �� ��������� ������� �1, �
����� � �� ���������� ������� �1,
������� ���������� ��
��������������, ���������� �
������ �����.
������������� ����� �� ��������
������, ��� ��������� ��� ������
����� �������� � ���� 2, �������
����� ������� �������� MTU, ������
1500. ��������, ��� ���� Ethernet.
������������� ��������� ��������
������������� ��������� �� �������
������ FDDI � ����� ��� ��� �������,
����� ������ ����� ���������� �
���� ������ ����� Ethernet. ����� ��
��������� ����� ������ IP, ������ ��
������� ����� ����� 1400 + 20 = 1420
������, ��� ������ 1500 ������,
������� ��� ��������� ���������� �
���� ������ ������ Ethernet.
� ���������� � ��������� 2 �� ����
Ethernet �������� ������ IP-������ �
����� ��������������� 486, ���
��������� ��������� IP, �����������
� ���������� 2, ��������� �������
�������� ���������. ���� ������
������ �� � ��� �������, � �������
���� �������, �� �������� ������
���������� ������� �� �����������.
�������, ��� IP-�������������� ��
�������� ��������� ������� � �����
������� ������, ���� ���� �� ����
����������� ����, �����������
����� ����������. ��� ������� � ���,
��� ��������� ��������� ���������
����� ������������ �� ��������� ��
��������� ���������, ������� ���
��������, ��� ��� ���������
�������� ����� �����-����
������������� ������������� �� ��
����.
��� ������� ������� ���������
������ ���� ���������� ���������
������, ������� ����������
����������� ���������� �����
�������� ������� ���������
���������� ����� ������. ����
������ �������� ������ ��������
���������� ���������, �� ���
���������� � ����� �������
��������� ������ �������������, � �
����, ��������� �������� �����,
������������ ��������� �� ������ �
������� ��������� ICMP.
������������� � �������
IP-�������
���������� ������ ��������, ��
��������� ������� � ����� IP
���������� ����� �������� ��������
������ ����� ������.
������� ���������� ��������
�������� �� ��� ����, ��� �� ������
��������������, �� � �������� ���� —
���������� — ������ ���������
������� � ������ ��������. ������,
����������� �� ������� 4.2,
������������� ��� �������������.
����� � ��������� ���� �������
��������� ���������������, �
��������� ������ ��������, ������
�� ��� ������� ��������� �����.
���. 4.2. �����
�������������� �������� �����
����� �������� ����� �����������
���������� � ����������� �� ����,
����� ������������� �������
��������� ��� �������� ������
������ �� ������, �������������,
��������, � ��������, ����
������������� 1 ��������
���������� ������ �
��������������� � �����������, �
������������� 2 ����� �����������
�����, ����������� ��� � �����.
� ����� TCP/IP �������������� �
�������� ���� ��������� ������� �
���, ���� ���������� ����� ��� ���
�������� �������� ���� ����������,
�� ��������� ��� ���������� ������
������������� (routing tables).
��������� ������� ������������
����� �������� ������ �������
���������, ������������ IP-������
�����:
| ����� ���� ���������� |
����� ���������� �������������� |
����� ��������� ����� |
���������� �� ���� ���������� |
| 56.0.0.0 | 198.21.17.7 | 1 | 20 |
| 56.0.0.0 | 213.34.12.4. | 2 | 130 |
| 116.0.0.0 | 213.34.12.4 | 2 | 1450 |
| 129.13.0.0 | 198.21.17.6 | 1 | 50 |
| 198.21.17.0 | — | 2 | 0 |
| 213. 34.12.0 | — | 1 | 0 |
| default | 198.21.17.7 | 1 | — |
� ���� ������� � ������� «�����
���� ����������» �����������
������ ���� �����, ������� ������
������������� ����� ����������
������. � ����� TCP/IP ������ ���
���������� ����������� ������
� ����������� �������� �����������
������ (next-hop routing) — ������
������������� � �������� ����
��������� ������� � ������ ������
������ ���� �������� ������.
������� � ������ ������ �������
������������� ����������� �� ����
������� � ���� ������������������
IP-������� ���������������, �����
������� ������ ������ �����, �
������ ���� IP-����� — �����
���������� ��������������,
�������� ����� �������� �����.
������ � ������� ����������
�������������� ����������
��������������� �� �����
���������� ���� �������������.
����������� ������ � �������������
�������� �������������� �������
������ ������ ��������. ��� �������
����������� �� ������������
���������� ����������
��������������� �� ���� ������.
(������������� ������������
������� �������� �������� � ������
���� ������������������
���������������, ������� �����
������ ������ �� ����� ����. �����
������ ���������� ��������������
�� ��������� — Source Routing. � ����
������ ����� �������� ������������
�������� ����� ��� ������
��������������� �� ���� ������, �
��� ��������� ��������������
������ ������������ ���������
�������, ����������� ����������
�������, �� ���� �������� �� �
������ ����� �� ������. ��������
Source Routing ����������� � ����� IP
������ ��� �������, ����� �������
�������� � ���� ������ (IP OPTIONS)
������.)
� ������, ���� � ������� ���������
������� ����� ����� ������,
��������������� ������ � ���� ��
������ ���� ����������, �� ���
�������� ������� � �������� ������
������������ �� ������, � �������
������� ���������� �������� � ����
«���������� �� ����
����������».
��� ���� ��� �����������
���������� ����� �������,
������������ � ������������ �
�������� � ������� ������ �������
�������. ��� ����� ���� ����������
���������� ��������������� �
������ �������� (���������� �����
�� hop — ������), ����� �����������
������ �� ������ �����, ����������
����� �����, ��� ������ ��������,
���������� �������� �������
�������� �� ��������� �
����������� ������ �������. ����
������������� ������������
��������� ������� ������� �������,
�� ������� ��������� ������������
� ����������� �������� ��� �������
���� ������� (�������� ������
��������).
��� �������� ������ ����������
�������������� ��������� ������
��� ���������� ������, �� � �����
TCP/IP � �������� �������������
������� ������������� ������
IP-������� ��� ���������� ��
�������������� �������, ��
���������� �� ���� �����, ��������
� ���������. ��� ����������
���������� ������ �� ����������
IP-������ ����������
��������������� ���������� ARP.
�������� ����, ��� �
�������������, ����� � �����
������������ ������� ���������
���������������� ������� � ��
��������� �� ������ ���������
�������, ������ ��������������
����� ���������� ����� ��� ���� N.
������� � ���, ��� ���� ����� �����
������ ����������������, ���������
��������� � ��� ������, ����� ��
�����, ��� ����� ���� ����������
������ ���������� �� ������ ���
����������� ���� (�������
���������� ��� ����������������
������������� ����������� ���
IP-����� ��� ��������� IP-�������,
���� ��������� ������������
��������� � ���������� �����).
����� ��������� ������ ���������
�������������, �� �� �������������
���-������� ������� ������
��������� ARP �, ����� ����, �������
��� ������������ IP-������
���������� �������������� ���
MAC-������. ���� �� ���, �� ��
��������� ���� ����������
����������������� ARP-������ �
��������� ����� ����������� ��
ARP-������.
����� ����� ��������� ���������
���� ���������, ������������� ��
��������� �����, ��������, ����
Ethernet, � ������� �������� ���-�����
��������������. �������������
��������� ���� Ethernet, ��������� ��
���� ����� IP � ������������� ����
������� ������������� ���
���������� ����������
��������������. ��� ���� ��
��������� �� �� ��������, ��� �
�������� ����.
����������� �������������
�������� ��� ����� ������������� —
��� ��������� ��������� �����
������ ������������� � ��������
����� � ��������������� �� ����
������������� � �������� ������
���� ���������� ��� �����������
�������� �� ��������� — default,
������� ������ �������� � �������
������������� ��������� ������.
���� � ������� ������������� ����
����� ������, �� ��� ������ �
�������� �����, �������
����������� � �������
�������������, ����������
��������������, ���������� �
������ default. �������
�������������� ����� ������ �
����� �������� ������������
���������� � ����� ���������,
��������� ������ ��� ���������
����� � ���� � �������������,
������������ �� ���������.
���������������, ���
�������������, ������������ ��
���������, �������� ����� ��
������������� ����, �
��������������, ������������ �
����������, ����� ������
���������� � ������� ���������.
�������� ����� �������
������������� �� ���������
���������� �������� ����. ���� ���
����� � ����� ������ ����� � �����
������������ �������
�������������, �� ����� ������
������������, ��� ���
������������� ��� ���������� — ��
�������� �������. ������� ���� �
������������� ������� � ���������
��������� IP ���������, �����������,
���������������, ������� ������
�������� ������� ����� �������
��������� �������������, ���
�������� ����. �������� ���� �����
������ �������� ��� �������
�������������, ���� ������
�������� �� IP-������
�������������� �� ���������. ���
������� ������ �������������� �
��������� ���� ���� ������� —
����������� ��������� ��� ����
�������� �����. �� ���� ��� �������
���������� ��������������� �
��������� ����, ����� �������� ��
������ ����� ����� �������� �����,
������� �������� �� ���������
����� ������������ � �����������
��� ���������� ������ ��
���������� �������.
������ �������� ���������
���������� �� �������������
������� ������� ������
������������� �������� ���������
�� �������������� �������� �
������������ �������� ���
�����-������ ���������� ���� �
������� ��������� ICMP.
����� �������� default, � �������
������������� ����� �����������
��� ���� ����������� ������� —
������ � ����������� ��� ����
�������� � ������ �� ������� �����,
��������������� ������������ �
������ ��������������.
����������� ��� ���� �������
�������� ������ ������ ���� ������
IP-�����, �� ���� �����, �������
��������� ���������� �� ������ �
���� ������ ����, �� � � ���� ������
����. ��������������, ��� ���
������ ��������� ���� �������
������ ���������� �� ���, ��� ���
���� ��������� ����� ����, �
������� �� ���������. � ������,
����� � ������� ���� ������ ������
� ����������� ������� ��� ���� ����
N � �� ���������� ����, ��������
����� N,D, ��� ����������� ������,
������������� ���� N,D,
������������� ������ ������������
������ ��� N,D.
������ � ������� �������������,
����������� � �����,
��������������� ������������ �
��������������, � ����
«���������� �� ����
����������» �������� ����.
��� ����� �������� ������
�������������� � ��������� ����
��� ������ �������� ��������
������ ���������� �������
�������������. ���� ��������������
������ ������������� �������
������� �������������, �����������
��������� �����������, �� ���
�������� ����� �������
������������� ���������, ���
�������, ������� ����������������,
� �������� � ���� ���������� ������
�� ������.
���������� ��������� ���������
���������� ������ ��� �����������
�������������. �� ����� ���������
�� ��� ������:
- ��������� �������������
�������������, - ��������� �������
�������������, - ��������� ����������
�������������.
���������� �� ���������,
������������� ��� ����������
������� �������������, ���������
�� ������ ����� ������ ������. ��
���� ����� � ����� � ��� �� ����
��������� ���� ����� �������
������� ������������� �� �����
����������, � ����� ������������
����� ����� ������������ �������,
��� ��� ������� ���� ������
�����������. �������
�������������, ���������� ��
��������� ����������
�������������, ����� ��������
�������� ����, �����������
�������� �������������
�������������, ���������� � ���� �
����, � ������� �������� ����
������ �� �����.
������������� �������������
���� �������� ����������� � �����
� ������� ���������� ������ �
������� �� ������ �����������
������� �������������
��������������� ����. ��������
����� ���������� �������� �����
��� ����������� ������� �����, ���
��� ���� ���������� ����� �����
������� ��������� � ����������
���������� ������ ����������
������� � �������, �������������� �
����������.
��������� ��������������
�������, � ������� ��� �������
�������� ����� ���� ����, �
��������������� �������,
������������ ���������
�������������� ����� ��� �������
��������. ��� �������������
��������������� ������ ������ ����
������ ������� ������ ������ ��
���. ���� ����� ���� ���� ��������
��������, � ��������� — ����������.
������� �������������
��������� ������� �������������
�������������� �� ��� ���������:
- ��������� ������������� —
������ ���������� � �����,
��������� �����������, �����
���������. - �������� ������������� —
������ ���������� �� ����
������������, ����� ���������
(����������� � ������ ���
������� � ����������� �������
��������). - ������������� �� �����������
����� — ������� ���������
������������ �� ���������
������, ������������ �
���������� �����
������������� �������. ������
��� �������� ���������� �����,
������� �������� �� �������
�����, �������� � ��������
����. ����� ������
������������� ��������
��������� ��������������� �
���������� ��������� ����.
���������� �������������
��� �������� ��� ����������
�������������, �������������
���������������� � �����������
����� �� ������� ����������.
���������� ������������� ��������
�� ���, ��� ��������������
������������ ������������
����������� ��������������
����������� �� ��������� �
��������� �����, � ����� � ������
����� ����������������. ������
����������� �� ������ ���������
������, �� � �� ����������
����������� � ���������.
���������� ��������� ���������
���� ��������������� ��������
���������� � ��������� ������ �
����, ���������� ����������� ���
��������� ������������ ������. ���
��������� ����� ��������������
��������, ������� ���������� � ���,
��� � ���� ����������� �����-����
���������� ��������������, �������
�� �������� � ��������
�������������� ����������: ���
������ ������������ ����� �����
����������������.
������ ��������������
����� � �������������� ��������� IP
���������� �� ������� ���������,
����������� �� ������� 4.3, �����
������� ���������� ��������������
����������� ����� �������������� �
�������� ������� ����������
����������.
���. 4.3. ������
�������������� ����������� �����
���������
����� � ����������� �������
������������ ���������� cit.dol.ru,
����������� � ���� Ethernet � IP-�������
194.87.23.0 (����� ������ �), �����
����������������� �� ��������� FTP �
����������� s1.msk.su, �������������
���� Ethernet � IP-������� 142.06.0.0 (�����
������ �). ��������� cit.dol.ru �����
IP-����� 194.87.23.1.17, � ��������� s1.msk.su —
IP-����� 142.06.13.14.
1. ������������ ���������� cit.dol.ru
����� ���������� ��� ����������
s1.msk.su, �� �� ����� ��� IP-������,
������� �� �������� �������
> ftp s1.msk.su
��� ����������� ftp-������.
� ���������� cit.dol.ru ������ ����
������ ��������� ��������� ���
����� TCP/IP, ����� �� ��� ���������
������������ ����� ��� ������.
� ����� ���� ���������� ������
������� ����������� IP-�����,
IP-����� DNS-������� � IP-�����
�������������� �� ���������. ���
��� � ���� Ethernet, � ������� ���������
��������� cit.dol.ru, ��������� ������
���� �������������, �� �������
������������� �������� ����� ����
���� �� �����, ���������� �����
IP-����� �������������� ��
���������. � ������ ������� ��
����� 194.87.23.1.
��� ��� ������������ � ������� ftp
�� ����� IP-����� ����, � ������� ��
����� �����������������, �� ����
TCP/IP ������ ���������� ���
��������������. �� ����� �������
������ � ������� DNS �� ���������� �
���� IP-������, �� ������ ������
��������� ������� �������������
���� ����������� �������
������������ ���������� ���� �
IP-�������. ����� ������� ��������
���� ����� � ���� ���������� �����
������� ��������� — ������ ���
������ �������� ������ �� �����
���������� ����� � ��� IP-������. �
�� Unix ����� ���� ����������� �����
��� HOSTS.
2. ����� �������, ��� ���������
cit.dol.ru ����� ���� HOSTS, � � ��� ����
������
142.06.13.14 s1.msk.su.
������� ���������� �����
����������� ��������, ��� ���
�������� IP ����� ������
����������� IP-������ � �������
���������� 142.06.13.14 ���
�������������� � ����������� s1.msk.su.
3. �������� IP ���������� cit.dol.ru
���������, ����� ��
���������������� ������ ��� ������
142.06.13.14. ��� ��� ����� ����
���������� ����� 142.06.0.0, � �����
����, � ������� �����������
���������, ����� 194.87.23.0, ��
������������� ����������.
4. ��������� cit.dol.ru ��������
����������� ���� Ethernet ��� ��������
IP-������ �������������� ��
��������� � IP-������� 194.87.23.1. ���
����� ��� ����� ���-����� �����
��������������, ������������� �
��� ����. ���� ����� ������ �����
��� ��������� � ���-�������
��������� ARP ����������, ���� ��
���� �� ��� �� ��������� ���������
����������� ������� � ������������
������ �����. ����� ���� ����� �
����� ������� ��� ������ ������ �
���-������. ��������� ��� ���11,
� ������������ � �������
�������������� � ��� �����.
5. � ���������� ��������� cit.dol.ru
���������� �� ��������� ���� ����
Ethernet, ������� ��������� ����:
| DA (Ethernet) | … | DESTINATION IP | … | … |
| ���11 |
|
142.06.13.14 |
|
|
6. ���� ����������� ������ 1
�������������� 1 � ������������ �
���������� Ethernet, ��� ��� ���-����
����� ����� ���������� ���� �����
���11. �������� Ethernet ���������
�� ����� ����� IP-����� � ��������
��� ������������ �����������
��������������, ������������
�������� IP. �������� IP ��������� ��
������ ����� ���������� �
������������� ������ ����� �������
�������������. ����� �������������
1 ����� � ����� �������
������������� ������
142.06.0.0 135.12.0.11 2 1,
������� ������� � ���, ��� ������
��� ���� 142.06. 0.0 ����� ����������
�������������� 135.12.0.11,
������������� � ��� �� ����, ��� �
���� 2 �������������� 1.
7. ������������� 1 �������������
��������� ����� 2 � �������, ��� ��
��������� � ���� FDDI. ��� ��� ���� FDDI
����� �������� �������������
����������������� ����� MTU ������,
��� ���� Ethernet, �� ������������ ����
������ IP-������ �� ���������.
������� ������������� 1 ���������
���� ������� FDDI, � �������
��������� MAC-����� �����
�������������� 2, ������� ��
������� � ����� ���-�������
��������� ARP:
| DA (FDDI) | … | DESTINATION IP | … | … |
| ���21 |
|
142.06.13.14 |
|
|
8. ���������� ���������
������������� 2, �������� ���� Ethernet
��� �������� ������ ��������������
3 �� ���� Ethernet c IP-������� 203.21.4.0:
| DA (Ethernet) | … | DESTINATION IP | … | … |
| ���32 |
|
142.06.13.14 |
|
|
9. �������, ����� ����, ��� �����
�������� � ������������� ����
���������� — ������������� 3,
���������� ����������� ��������
����� ������ ����������
����������. ������������� 3 �����,
��� ����� ����� �������� � ����
142.06.0.0, ������� ���������������
���������� � ��� ������� �����.
������� �� �������� ARP-������ ��
���� Ethernet c IP-������� ����������
s1.msk.su (�������, ��� ���� ����������
� ��� ���� ���), �������� �����,
���������� ����� MACs1, �
��������� ���� Ethernet, ������������
IP-����� �� ��������� ���� ��������.
| DA (Ethernet) | … | DESTINATION IP | … | … |
| ���s1 |
|
142.06.13.14 |
|
|
�������������� ����� IP �
������� �����
����� �������������� �����
���������� ����������, ��-�� ����,
��� ���������� ��������������
���������� �� ������� �����
������������ ��� ����, �����
��������������� ���� ����������
�������, ��������, ���������� ���
����� �����������������
���������� �� ������ �����.
� ����� �������� �������� ���
����. ������ �� ��� ������ �
���������� �� NIC ��������������
������� �����. ������ ������,
��������������� ����� �����,
������ � �������������� ���
���������� �����, �������
��������� ��������� ���� ���� ��
��������� �����.
����� — ��� �����, �������� ������
�������� �������� ������� � ���
��������, ������� ������
������������������ ��� ����� ����.
��������, ��� ����������� �������
����� ����� ����� ���������
��������:
255.0.0.0 — ����� ��� ���� ������ �,
255.255.0.0 — ����� ��� ���� ������ �,
255.255.255.0 — ����� ��� ���� ������ �.
� ������, ������� ����������
������������� ��� ���������� �����
�����, ���������� ������ �
������������������, ������������
������� ������ ����, �� �����������
������ ���� ������� 8, �����
��������� ������� ������ �� �����.
�����, ��������, ����� �����
�������� 255.255.192.0 (11111111 11111111 11000000
00000000). � ����� ���� ����� �����
129.44.0.0 (10000001 00101100 00000000 00000000), ��
�������� �����, ��� ��� ��������� �
������ �. ����� ��������� ����� ��
���� ����� ����� ��������,
���������������� ��� ����� ����,
����������� � 16 �� 18, �� ����
������������� ������� �����������
������������ ������ ������,
��������������� ��������� ���
������ ����, ������:
129.44.0.0 (10000001 00101100 00000000 00000000)
129.44.64.0 (10000001 00101100 01000000 00000000)
129.44.128.0 (10000001 00101100 10000000 00000000)
129.44.192.0 (10000001 00101100 11000000 00000000)
��������, IP-����� 129.44.141.15 (10000001
00101100 10001101 00001111), ������� ��
���������� IP ������ ����� ����
129.44.0.0 � ����� ���� 0.0.141.15, ������,
��� ������������� �����, �����
������������������ ��� ����:
129.44.128.0 — ����� ����, 0.0. 13.15 — �����
����.
����� �������, ��������� �����
�������� �����, ����� ���������
������������� ��-�������
���������������� IP-�����. ��� ����
��� �������������� ��������� ����
������ ���� ����� ����������������
��� ������ ��������.
��� ���� ������. ����� ���������
���� ��������� � ������ � � �����
����� 128.10.0.0 (������� 4.4). ����
����� ������������
���������������, ����������� ����
� ��������� ������ ���������. �
����� ����� ���� ������� ���� ����
�������, ����� �����������������
����� �����. �� ���������� ���� ��
����������� � ������ �����. ���
����� ���� ����� ��������� �� ���
����, ��������� �� �
��������������� ������
��������������, � ������ ��� ����
������ � �������� �����, ��������,
����� 255.255.255.0, �� ���� ������������
������ �������� ���� �
�������������� �������� �������
��� ������� ������ C (����� ���� ��
������� � ������ ������ ��� ����
������ �������). ����� ����
��-�������� ����� ���������, ���
������ ���� ������ �, � �� �������
������ ��� ����� ��� ��������� ����
������ �. ���������� ����� ������
����� ����������� �������
��������������� ����� ���������.
���. 4.4. ������
������������� ����� ���
���������������� ����
���������� ��������, ���, ����
����������� ������� ��
������������� ��������� �����, ��
��������������� ������� ������
���� ���������������� �
��������������, � ���������� ����.
����������
����� | ����������
| ��������� �����
From Wikipedia, the free encyclopedia
The Internet Protocol (IP) is the network layer communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
IP has the task of delivering packets from the source host to the destination host solely based on the IP addresses in the packet headers. For this purpose, IP defines packet structures that encapsulate the data to be delivered. It also defines addressing methods that are used to label the datagram with source and destination information.
IP was the connectionless datagram service in the original Transmission Control Program introduced by Vint Cerf and Bob Kahn in 1974, which was complemented by a connection-oriented service that became the basis for the Transmission Control Protocol (TCP). The Internet protocol suite is therefore often referred to as TCP/IP.
The first major version of IP, Internet Protocol Version 4 (IPv4), is the dominant protocol of the Internet. Its successor is Internet Protocol Version 6 (IPv6), which has been in increasing deployment on the public Internet since c. 2006.[1]
Function[edit]
![]()
Encapsulation of application data carried by UDP to a link protocol frame
The Internet Protocol is responsible for addressing host interfaces, encapsulating data into datagrams (including fragmentation and reassembly) and routing datagrams from a source host interface to a destination host interface across one or more IP networks.[2] For these purposes, the Internet Protocol defines the format of packets and provides an addressing system.
Each datagram has two components: a header and a payload. The IP header includes source IP address, destination IP address, and other metadata needed to route and deliver the datagram. The payload is the data that is transported. This method of nesting the data payload in a packet with a header is called encapsulation.
IP addressing entails the assignment of IP addresses and associated parameters to host interfaces. The address space is divided into subnetworks, involving the designation of network prefixes. IP routing is performed by all hosts, as well as routers, whose main function is to transport packets across network boundaries. Routers communicate with one another via specially designed routing protocols, either interior gateway protocols or exterior gateway protocols, as needed for the topology of the network.[3]
Version history[edit]
![]()
A timeline for the development of the transmission control Protocol TCP and Internet Protocol IP.
![]()
In May 1974, the Institute of Electrical and Electronics Engineers (IEEE) published a paper entitled «A Protocol for Packet Network Intercommunication».[4] The paper’s authors, Vint Cerf and Bob Kahn, described an internetworking protocol for sharing resources using packet switching among network nodes. A central control component of this model was the «Transmission Control Program» that incorporated both connection-oriented links and datagram services between hosts. The monolithic Transmission Control Program was later divided into a modular architecture consisting of the Transmission Control Protocol and User Datagram Protocol at the transport layer and the Internet Protocol at the internet layer. The model became known as the Department of Defense (DoD) Internet Model and Internet protocol suite, and informally as TCP/IP.
IP versions 1 to 3 were experimental versions, designed between 1973 and 1978.[5] The following Internet Experiment Note (IEN) documents describe version 3 of the Internet Protocol, prior to the modern version of IPv4:
- IEN 2 (Comments on Internet Protocol and TCP), dated August 1977 describes the need to separate the TCP and Internet Protocol functionalities (which were previously combined). It proposes the first version of the IP header, using 0 for the version field.
- IEN 26 (A Proposed New Internet Header Format), dated February 1978 describes a version of the IP header that uses a 1-bit version field.
- IEN 28 (Draft Internetwork Protocol Description Version 2), dated February 1978 describes IPv2.
- IEN 41 (Internetwork Protocol Specification Version 4), dated June 1978 describes the first protocol to be called IPv4. The IP header is different from the modern IPv4 header.
- IEN 44 (Latest Header Formats), dated June 1978 describes another version of IPv4, also with a header different from the modern IPv4 header.
- IEN 54 (Internetwork Protocol Specification Version 4), dated September 1978 is the first description of IPv4 using the header that would be standardized in RFC 760.
The dominant internetworking protocol in the Internet Layer in use is IPv4; the number 4 identifies the protocol version, carried in every IP datagram. IPv4 is described in RFC 791 (1981).
Versions 2 and 3, and a draft of version 4, allowed an address length of up to 128 bits,[6] but this was mistakenly[citation needed] reduced to 32 bits in the final version of IPv4.
Version number 5 was used by the Internet Stream Protocol, an experimental streaming protocol that was not adopted.[5]
The successor to IPv4 is IPv6. IPv6 was a result of several years of experimentation and dialog during which various protocol models were proposed, such as TP/IX (RFC 1475), PIP (RFC 1621) and TUBA (TCP and UDP with Bigger Addresses, RFC 1347). Its most prominent difference from version 4 is the size of the addresses. While IPv4 uses 32 bits for addressing, yielding c. 4.3 billion (4.3×109) addresses, IPv6 uses 128-bit addresses providing c. 3.4×1038 addresses. Although adoption of IPv6 has been slow, as of September 2021, most countries in the world show significant adoption of IPv6,[7] with over 35% of Google’s traffic being carried over IPv6 connections.[8]
The assignment of the new protocol as IPv6 was uncertain until due diligence assured that IPv6 had not been used previously.[9] Other Internet Layer protocols have been assigned version numbers,[10] such as 7 (IP/TX), 8 and 9 (historic). Notably, on April 1, 1994, the IETF published an April Fools’ Day joke about IPv9.[11] IPv9 was also used in an alternate proposed address space expansion called TUBA.[12] A 2004 Chinese proposal for an «IPv9» protocol appears to be unrelated to all of these, and is not endorsed by the IETF.
Reliability[edit]
The design of the Internet protocol suite adheres to the end-to-end principle, a concept adapted from the CYCLADES project. Under the end-to-end principle, the network infrastructure is considered inherently unreliable at any single network element or transmission medium and is dynamic in terms of the availability of links and nodes. No central monitoring or performance measurement facility exists that tracks or maintains the state of the network. For the benefit of reducing network complexity, the intelligence in the network is purposely located in the end nodes.[13]
As a consequence of this design, the Internet Protocol only provides best-effort delivery and its service is characterized as unreliable. In network architectural parlance, it is a connectionless protocol, in contrast to connection-oriented communication. Various fault conditions may occur, such as data corruption, packet loss and duplication. Because routing is dynamic, meaning every packet is treated independently, and because the network maintains no state based on the path of prior packets, different packets may be routed to the same destination via different paths, resulting in out-of-order delivery to the receiver.
All fault conditions in the network must be detected and compensated by the participating end nodes. The upper layer protocols of the Internet protocol suite are responsible for resolving reliability issues. For example, a host may buffer network data to ensure correct ordering before the data is delivered to an application.
IPv4 provides safeguards to ensure that the header of an IP packet is error-free. A routing node discards packets that fail a header checksum test. Although the Internet Control Message Protocol (ICMP) provides notification of errors, a routing node is not required to notify either end node of errors. IPv6, by contrast, operates without header checksums, since current link layer technology is assumed to provide sufficient error detection.[14][15]
Link capacity and capability[edit]
The dynamic nature of the Internet and the diversity of its components provide no guarantee that any particular path is actually capable of, or suitable for, performing the data transmission requested. One of the technical constraints is the size of data packets possible on a given link. Facilities exist to examine the maximum transmission unit (MTU) size of the local link and Path MTU Discovery can be used for the entire intended path to the destination.[16]
The IPv4 internetworking layer automatically fragments a datagram into smaller units for transmission when the link MTU is exceeded. IP provides re-ordering of fragments received out of order.[17] An IPv6 network does not perform fragmentation in network elements, but requires end hosts and higher-layer protocols to avoid exceeding the path MTU.[18]
The Transmission Control Protocol (TCP) is an example of a protocol that adjusts its segment size to be smaller than the MTU. The User Datagram Protocol (UDP) and ICMP disregard MTU size, thereby forcing IP to fragment oversized datagrams.[19]
Security[edit]
During the design phase of the ARPANET and the early Internet, the security aspects and needs of a public, international network could not be adequately anticipated. Consequently, many Internet protocols exhibited vulnerabilities highlighted by network attacks and later security assessments. In 2008, a thorough security assessment and proposed mitigation of problems was published.[20] The IETF has been pursuing further studies.[21]
See also[edit]
- ICANN
- IP routing
- List of IP protocol numbers
- Next-generation network
- New IP (proposal)
References[edit]
- ^ OECD (2014-11-06). «The Economics of Transition to Internet Protocol version 6 (IPv6)». OECD Digital Economy Papers. doi:10.1787/5jxt46d07bhc-en.
- ^ Charles M. Kozierok, The TCP/IP Guide
- ^ «IP Technologies and Migration — EITC». www.eitc.org. Retrieved 2020-12-04.
- ^ Cerf, V.; Kahn, R. (1974). «A Protocol for Packet Network Intercommunication» (PDF). IEEE Transactions on Communications. 22 (5): 637–648. doi:10.1109/TCOM.1974.1092259. ISSN 1558-0857.
The authors wish to thank a number of colleagues for helpful comments during early discussions of international network protocols, especially R. Metcalfe, R. Scantlebury, D. Walden, and H. Zimmerman; D. Davies and L. Pouzin who constructively commented on the fragmentation and accounting issues; and S. Crocker who commented on the creation and destruction of associations.
- ^ a b Stephen Coty (2011-02-11). «Where is IPv1, 2, 3,and 5?». Archived from the original on 2020-08-02. Retrieved 2020-03-25.
- ^ Postel, Jonathan. «Internet Protocol Version 2» (PDF). rfc-editor. Retrieved 6 October 2022.
- ^ «IPv6 Adoption in 2021». RIPE Labs. Retrieved 2021-09-20.
- ^ «IPv6 – Google». www.google.com. Retrieved 2021-09-20.
- ^ Mulligan, Geoff. «It was almost IPv7». O’Reilly. O’Reilly Media. Archived from the original on 5 July 2015. Retrieved 4 July 2015.
- ^ «Version Numbers». www.iana.org. Retrieved 2019-07-25.
- ^ RFC 1606: A Historical Perspective On The Usage Of IP Version 9. April 1, 1994.
- ^ Ross Callon (June 1992). TCP and UDP with Bigger Addresses (TUBA), A Simple Proposal for Internet Addressing and Routing. doi:10.17487/RFC1347. RFC 1347.
- ^ «internet protocols». hfhr.pl. Retrieved 2020-12-04.
- ^ RFC 1726 section 6.2
- ^ RFC 2460
- ^ Rishabh, Anand (2012). Wireless Communication. S. Chand Publishing. ISBN 978-81-219-4055-9.
- ^ Siyan, Karanjit. Inside TCP/IP, New Riders Publishing, 1997. ISBN 1-56205-714-6
- ^ Bill Cerveny (2011-07-25). «IPv6 Fragmentation». Arbor Networks. Retrieved 2016-09-10.
- ^ Parker, Don (2 November 2010). «Basic Journey of a Packet». symantec.com. Symantec. Retrieved 4 May 2014.
- ^ Fernando Gont (July 2008), Security Assessment of the Internet Protocol (PDF), CPNI, archived from the original (PDF) on 2010-02-11
- ^ F. Gont (July 2011). Security Assessment of the Internet Protocol version 4. doi:10.17487/RFC6274. RFC 6274.
External links[edit]
- Manfred Lindner. «IP Technology» (PDF). Retrieved 2018-02-11.
- Manfred Lindner. «IP Routing» (PDF). Retrieved 2018-02-11.
From Wikipedia, the free encyclopedia
The Internet Protocol (IP) is the network layer communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
IP has the task of delivering packets from the source host to the destination host solely based on the IP addresses in the packet headers. For this purpose, IP defines packet structures that encapsulate the data to be delivered. It also defines addressing methods that are used to label the datagram with source and destination information.
IP was the connectionless datagram service in the original Transmission Control Program introduced by Vint Cerf and Bob Kahn in 1974, which was complemented by a connection-oriented service that became the basis for the Transmission Control Protocol (TCP). The Internet protocol suite is therefore often referred to as TCP/IP.
The first major version of IP, Internet Protocol Version 4 (IPv4), is the dominant protocol of the Internet. Its successor is Internet Protocol Version 6 (IPv6), which has been in increasing deployment on the public Internet since c. 2006.[1]
Function[edit]
![]()
Encapsulation of application data carried by UDP to a link protocol frame
The Internet Protocol is responsible for addressing host interfaces, encapsulating data into datagrams (including fragmentation and reassembly) and routing datagrams from a source host interface to a destination host interface across one or more IP networks.[2] For these purposes, the Internet Protocol defines the format of packets and provides an addressing system.
Each datagram has two components: a header and a payload. The IP header includes source IP address, destination IP address, and other metadata needed to route and deliver the datagram. The payload is the data that is transported. This method of nesting the data payload in a packet with a header is called encapsulation.
IP addressing entails the assignment of IP addresses and associated parameters to host interfaces. The address space is divided into subnetworks, involving the designation of network prefixes. IP routing is performed by all hosts, as well as routers, whose main function is to transport packets across network boundaries. Routers communicate with one another via specially designed routing protocols, either interior gateway protocols or exterior gateway protocols, as needed for the topology of the network.[3]
Version history[edit]
![]()
A timeline for the development of the transmission control Protocol TCP and Internet Protocol IP.
![]()
In May 1974, the Institute of Electrical and Electronics Engineers (IEEE) published a paper entitled «A Protocol for Packet Network Intercommunication».[4] The paper’s authors, Vint Cerf and Bob Kahn, described an internetworking protocol for sharing resources using packet switching among network nodes. A central control component of this model was the «Transmission Control Program» that incorporated both connection-oriented links and datagram services between hosts. The monolithic Transmission Control Program was later divided into a modular architecture consisting of the Transmission Control Protocol and User Datagram Protocol at the transport layer and the Internet Protocol at the internet layer. The model became known as the Department of Defense (DoD) Internet Model and Internet protocol suite, and informally as TCP/IP.
IP versions 1 to 3 were experimental versions, designed between 1973 and 1978.[5] The following Internet Experiment Note (IEN) documents describe version 3 of the Internet Protocol, prior to the modern version of IPv4:
- IEN 2 (Comments on Internet Protocol and TCP), dated August 1977 describes the need to separate the TCP and Internet Protocol functionalities (which were previously combined). It proposes the first version of the IP header, using 0 for the version field.
- IEN 26 (A Proposed New Internet Header Format), dated February 1978 describes a version of the IP header that uses a 1-bit version field.
- IEN 28 (Draft Internetwork Protocol Description Version 2), dated February 1978 describes IPv2.
- IEN 41 (Internetwork Protocol Specification Version 4), dated June 1978 describes the first protocol to be called IPv4. The IP header is different from the modern IPv4 header.
- IEN 44 (Latest Header Formats), dated June 1978 describes another version of IPv4, also with a header different from the modern IPv4 header.
- IEN 54 (Internetwork Protocol Specification Version 4), dated September 1978 is the first description of IPv4 using the header that would be standardized in RFC 760.
The dominant internetworking protocol in the Internet Layer in use is IPv4; the number 4 identifies the protocol version, carried in every IP datagram. IPv4 is described in RFC 791 (1981).
Versions 2 and 3, and a draft of version 4, allowed an address length of up to 128 bits,[6] but this was mistakenly[citation needed] reduced to 32 bits in the final version of IPv4.
Version number 5 was used by the Internet Stream Protocol, an experimental streaming protocol that was not adopted.[5]
The successor to IPv4 is IPv6. IPv6 was a result of several years of experimentation and dialog during which various protocol models were proposed, such as TP/IX (RFC 1475), PIP (RFC 1621) and TUBA (TCP and UDP with Bigger Addresses, RFC 1347). Its most prominent difference from version 4 is the size of the addresses. While IPv4 uses 32 bits for addressing, yielding c. 4.3 billion (4.3×109) addresses, IPv6 uses 128-bit addresses providing c. 3.4×1038 addresses. Although adoption of IPv6 has been slow, as of September 2021, most countries in the world show significant adoption of IPv6,[7] with over 35% of Google’s traffic being carried over IPv6 connections.[8]
The assignment of the new protocol as IPv6 was uncertain until due diligence assured that IPv6 had not been used previously.[9] Other Internet Layer protocols have been assigned version numbers,[10] such as 7 (IP/TX), 8 and 9 (historic). Notably, on April 1, 1994, the IETF published an April Fools’ Day joke about IPv9.[11] IPv9 was also used in an alternate proposed address space expansion called TUBA.[12] A 2004 Chinese proposal for an «IPv9» protocol appears to be unrelated to all of these, and is not endorsed by the IETF.
Reliability[edit]
The design of the Internet protocol suite adheres to the end-to-end principle, a concept adapted from the CYCLADES project. Under the end-to-end principle, the network infrastructure is considered inherently unreliable at any single network element or transmission medium and is dynamic in terms of the availability of links and nodes. No central monitoring or performance measurement facility exists that tracks or maintains the state of the network. For the benefit of reducing network complexity, the intelligence in the network is purposely located in the end nodes.[13]
As a consequence of this design, the Internet Protocol only provides best-effort delivery and its service is characterized as unreliable. In network architectural parlance, it is a connectionless protocol, in contrast to connection-oriented communication. Various fault conditions may occur, such as data corruption, packet loss and duplication. Because routing is dynamic, meaning every packet is treated independently, and because the network maintains no state based on the path of prior packets, different packets may be routed to the same destination via different paths, resulting in out-of-order delivery to the receiver.
All fault conditions in the network must be detected and compensated by the participating end nodes. The upper layer protocols of the Internet protocol suite are responsible for resolving reliability issues. For example, a host may buffer network data to ensure correct ordering before the data is delivered to an application.
IPv4 provides safeguards to ensure that the header of an IP packet is error-free. A routing node discards packets that fail a header checksum test. Although the Internet Control Message Protocol (ICMP) provides notification of errors, a routing node is not required to notify either end node of errors. IPv6, by contrast, operates without header checksums, since current link layer technology is assumed to provide sufficient error detection.[14][15]
Link capacity and capability[edit]
The dynamic nature of the Internet and the diversity of its components provide no guarantee that any particular path is actually capable of, or suitable for, performing the data transmission requested. One of the technical constraints is the size of data packets possible on a given link. Facilities exist to examine the maximum transmission unit (MTU) size of the local link and Path MTU Discovery can be used for the entire intended path to the destination.[16]
The IPv4 internetworking layer automatically fragments a datagram into smaller units for transmission when the link MTU is exceeded. IP provides re-ordering of fragments received out of order.[17] An IPv6 network does not perform fragmentation in network elements, but requires end hosts and higher-layer protocols to avoid exceeding the path MTU.[18]
The Transmission Control Protocol (TCP) is an example of a protocol that adjusts its segment size to be smaller than the MTU. The User Datagram Protocol (UDP) and ICMP disregard MTU size, thereby forcing IP to fragment oversized datagrams.[19]
Security[edit]
During the design phase of the ARPANET and the early Internet, the security aspects and needs of a public, international network could not be adequately anticipated. Consequently, many Internet protocols exhibited vulnerabilities highlighted by network attacks and later security assessments. In 2008, a thorough security assessment and proposed mitigation of problems was published.[20] The IETF has been pursuing further studies.[21]
See also[edit]
- ICANN
- IP routing
- List of IP protocol numbers
- Next-generation network
- New IP (proposal)
References[edit]
- ^ OECD (2014-11-06). «The Economics of Transition to Internet Protocol version 6 (IPv6)». OECD Digital Economy Papers. doi:10.1787/5jxt46d07bhc-en.
- ^ Charles M. Kozierok, The TCP/IP Guide
- ^ «IP Technologies and Migration — EITC». www.eitc.org. Retrieved 2020-12-04.
- ^ Cerf, V.; Kahn, R. (1974). «A Protocol for Packet Network Intercommunication» (PDF). IEEE Transactions on Communications. 22 (5): 637–648. doi:10.1109/TCOM.1974.1092259. ISSN 1558-0857.
The authors wish to thank a number of colleagues for helpful comments during early discussions of international network protocols, especially R. Metcalfe, R. Scantlebury, D. Walden, and H. Zimmerman; D. Davies and L. Pouzin who constructively commented on the fragmentation and accounting issues; and S. Crocker who commented on the creation and destruction of associations.
- ^ a b Stephen Coty (2011-02-11). «Where is IPv1, 2, 3,and 5?». Archived from the original on 2020-08-02. Retrieved 2020-03-25.
- ^ Postel, Jonathan. «Internet Protocol Version 2» (PDF). rfc-editor. Retrieved 6 October 2022.
- ^ «IPv6 Adoption in 2021». RIPE Labs. Retrieved 2021-09-20.
- ^ «IPv6 – Google». www.google.com. Retrieved 2021-09-20.
- ^ Mulligan, Geoff. «It was almost IPv7». O’Reilly. O’Reilly Media. Archived from the original on 5 July 2015. Retrieved 4 July 2015.
- ^ «Version Numbers». www.iana.org. Retrieved 2019-07-25.
- ^ RFC 1606: A Historical Perspective On The Usage Of IP Version 9. April 1, 1994.
- ^ Ross Callon (June 1992). TCP and UDP with Bigger Addresses (TUBA), A Simple Proposal for Internet Addressing and Routing. doi:10.17487/RFC1347. RFC 1347.
- ^ «internet protocols». hfhr.pl. Retrieved 2020-12-04.
- ^ RFC 1726 section 6.2
- ^ RFC 2460
- ^ Rishabh, Anand (2012). Wireless Communication. S. Chand Publishing. ISBN 978-81-219-4055-9.
- ^ Siyan, Karanjit. Inside TCP/IP, New Riders Publishing, 1997. ISBN 1-56205-714-6
- ^ Bill Cerveny (2011-07-25). «IPv6 Fragmentation». Arbor Networks. Retrieved 2016-09-10.
- ^ Parker, Don (2 November 2010). «Basic Journey of a Packet». symantec.com. Symantec. Retrieved 4 May 2014.
- ^ Fernando Gont (July 2008), Security Assessment of the Internet Protocol (PDF), CPNI, archived from the original (PDF) on 2010-02-11
- ^ F. Gont (July 2011). Security Assessment of the Internet Protocol version 4. doi:10.17487/RFC6274. RFC 6274.
External links[edit]
- Manfred Lindner. «IP Technology» (PDF). Retrieved 2018-02-11.
- Manfred Lindner. «IP Routing» (PDF). Retrieved 2018-02-11.
🔍 Простой поиск по базе знаний
Протокол IP — основной протокол стека протоколов TCP/IP и основной протокол сетевого уровня. Именно он отвечает за передачу информации по сети и между отдельными сетями (подсетями). В его основе заложен дейтаграммный метод, который не гарантирует доставку пакета.
Функции протокола IP определены в стандарте RFC-791 следующим образом:
“Протокол IP обеспечивает передачу блоков данных, называемых дейтаграммами, от отправителя к получателям, где отправители и получатели являются компьютерами, идентифицируемыми адресами фиксированной длины (IP-адресами). Протокол IP обеспечивает при необходимости также фрагментацию и сборку дейтаграмм для передачи данных через сети с малым размером пакетов”.
Протокол IP является ненадежным протоколом без установления соединения. Это означает, что протокол IP не подтверждает доставку данных, не контролирует целостность полученных данных и не производит операцию квитирования (handshaking) – обмена служебными сообщениями, подтверждающими установку соединения с узлом назначения и его готовность к приему данных.
Протокол IP обрабатывает каждую дейтаграмму как независимую единицу, не имеющую связи ни с какими другими дейтаграммами в Интернет.
После того, как дейтаграмма отправляется в сеть, ее дальнейшая судьба никак не контролируется отправителем (на уровне протокола IP). Если дейтаграмма не может быть доставлена, она уничтожается. Узел, уничтоживший дейтаграмму, может оправить по обратному адресу ICMP-сообщение о причине сбоя.
Гарантию правильной передачи данных предоставляют протоколы вышестоящего уровня (например, протокол TCP или сервисы прикладного уровня), которые имеют для этого необходимые механизмы.
Одна из основных задач, решаемых протоколом IP, – маршрутизация дейтаграмм, т.е. определение пути следования дейтаграммы от одного узла сети к другому на основании адреса получателя.
Общий сценарий работы модуля IP на каком-либо узле сети, принимающего дейтаграмму из сети, не зависимо от конкретной реализации, то-есть операционной системы, таков:
- с одного из интерфейсов уровня доступа к среде передачи (например, с Ethernet-интерфейса) в модуль реализующий протокол IP поступает дейтаграмма;
- модуль IP анализирует заголовок дейтаграммы;
- если пунктом назначения дейтаграммы является данный компьютер:
- если дейтаграмма является фрагментом большей дейтаграммы, ожидаются остальные фрагменты, после чего из них собирается исходная большая дейтаграмма;
- из дейтаграммы извлекаются данные и направляются на обработку одному из протоколов вышележащего уровня (какому именно – указывается в заголовке дейтаграммы);
- если дейтаграмма не направлена ни на один из IP-адресов данного узла, то дальнейшие действия зависят от того, разрешена или запрещена ретрансляция (forwarding) “чужих” дейтаграмм;
- если ретрансляция разрешена, то-есть узел выполняет маршрутизирующие функции, то определяются следующий узел сети, на который должна быть переправлена дейтаграмма для доставки ее по назначению, и интерфейс нижнего уровня, после чего дейтаграмма передается на нижний уровень этому интерфейсу для отправки; при необходимости может быть произведена фрагментация дейтаграммы;
- если же дейтаграмма ошибочна или по каким-либо причинам не может быть доставлена, она уничтожается; при этом, как правило, отправителю дейтаграммы отсылается ICMP-сообщение об ошибке.
При получении данных от вышестоящего уровня для отправки их по сети IP-модуль формирует дейтаграмму с этими данными, в заголовок которой заносятся адреса отправителя и получателя (также полученные от транспортного уровня) и другая информация; после чего выполняются следующие шаги:
- если дейтаграмма предназначена этому же узлу, из нее извлекаются данные и направляются на обработку одному из протоколов транспортного уровня (какому именно – указывается в заголовке дейтаграммы);
- если дейтаграмма не направлена ни на один из IP-адресов данного узла, то определяются следующий узел сети, на который должна быть переправлена дейтаграмма для доставки ее по назначению, и интерфейс нижнего уровня, после чего дейтаграмма передается на нижний уровень этому интерфейсу для отправки; при необходимости может быть произведена фрагментация дейтаграммы;
- если же дейтаграмма ошибочна или по каким-либо причинам не может быть доставлена, она уничтожается.
Формат заголовка дейтаграммы IP (v4):
Октет 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 Версия IHL Тип обслуживания Длина пакета 4 Идентификатор Флаги Смещение фрагмента 8 Время жизни (TTL) Протокол Контрольная сумма заголовка 12 IP-адрес отправителя 16 IP-адрес получателя 20 Параметры (от 0 до 10-и 32-х битных слов) Данные
- Версия — для IPv4 значение поля должно быть равно 4.
- IHL — (Internet Header Length) длина заголовка IP-пакета в 32-битных словах (dword). Именно это поле указывает на начало блока данных (англ. payload — полезный груз) в пакете. Минимальное корректное значение для этого поля равно 5.
- Тип обслу́живания (Type of Service, акроним TOS) — байт, содержащий набор критериев, определяющих тип обслуживания IP-пакетов. Поле в заголовке пакета IPv4, которое с годами приобретало различные цели, и описывалось почти в пяти RFC. В настоящее время TOS поле имеет 6 bit поля DiffServ Code Point (DSCP) и 2-bit поля Explicit Congestion Notification.Тип обслуживания позволяет приоритизировать IP-трафик на сетевых маршрутизаторах, с целью обеспечения высокого качества передачи данныхБайт побитно (0 – старший, 7 – младший):
- 0-2 — приоритет (precedence) данного IP-сегмента
- 3 — требование ко времени задержки (delay) передачи IP-сегмента (0 — нормальная, 1 — низкая задержка)
- 4 — требование к пропускной способности (throughput) маршрута, по которому должен отправляться IP-сегмент (0 — низкая, 1 — высокая пропускная способность)
- 5 — требование к надежности (reliability) передачи IP-сегмента (0 — нормальная, 1 — высокая надежность)
- 6-7 — ECN — явное сообщение о задержке (управление IP-потоком).
На практике в большинстве реализаций протокола IP данное поле почти всегда равно 0.
- Длина пакета — (Total Length) длина пакета в октетах, включая заголовок и данные. поле содержит общую длину пакета, размер которого не может превышать 65535 байт. Практически пакеты такой длины никогда не используются, поскольку технологии канального уровня накладывают свои ограничения. Так, Ethernet не допускает кадров с длиной более 1500 байт, FDDI – 4096 байт и т.д. В этой связи, протокол IP выполняет фрагментацию сегментов данных, поступающих к нему от TCP и UDP протоколов. Следует отметить, что маршрутизатор не выполняет сборку пакетов, даже если следующая сеть имеет параметр MTU (Maximum Transmission Unit), допускающий более крупные пакеты. Сборка пакетов в исходный сегмент производится на месте назначения.
- Идентификатор — (Identification) значение, назначаемое отправителем пакета и предназначенное для определения корректной последовательности фрагментов при сборке пакета. Для фрагментированного пакета все фрагменты имеют одинаковый идентификатор.
- 3 бита флагов. Первый бит должен быть всегда равен нулю, второй бит DF (don’t fragment) определяет возможность фрагментации пакета и третий бит MF (more fragments) показывает, не является ли этот пакет последним в цепочке пакетов.
- Смещение фрагмента — (Fragment Offset) значение, определяющее позицию фрагмента в потоке данных. Смещение задается количеством восьмибайтовых блоков, поэтому это значение требует умножения на 8 для перевода в байты.
- Время жизни (TTL) — поле, определяющее максимальное время, которое пакет может существовать в сети. Значение этого поля (в секундах) устанавливается при отправке пакета и уменьшается на единицу по мере прохождения им маршрутизаторов. При достижении нулевого значения этого поля пакет уничтожается. Максимальное значение поля – 255 секунд. Этот механизм помогает избежать перегрузок сети при возникновении ошибок в таблицах маршруизации, приводящих к образованию петель.
- Протокол — идентификатор интернет-протокола следующего уровня указывает, данные какого протокола содержит пакет, например, TCP, UDP, или ICMP.
- Контрольная сумма заголовка — (Header Checksum) поле содержит значение контрольной суммы, рассчитанной только по заголовку. Поскольку значения некоторых полей заголовка изменяются по мере прохождения пакета по маршруту (поле TTL, например), то значения рассматриваемого поля проверяются и пересчитываются на каждом маршрутизаторе. Этот механизм является единственным средством обеспечения достоверности передачи, содержащимся в протоколе IP.
- Адрес отправителя (Source IP address) и Адрес получателя (Destination IP address) – поля одинаковой длины (32 бита), содержащие соответствующие адреса. Правила адресации в IP-сетях будут рассмотрены далее.
- Опции (Options) – необязательное поле, используемое при отладке сетей и для запроса определенных специфических процедур обработки. В настоящее время используется крайне редко. В связи с разработкой новых протоколов, обеспечивающих большую гибкость в обработке IP-трафика, возможность использования этих полей вновь стала предметом обсуждения комитетов по стандартизации.При получении пакета маршрутизатор вычисляет контрольную сумму заголовка пакета и, если она не совпадает со значением поля «Контрольная сумма», то пакет отбрасывается. При положительном результате проверки, производится изменение некоторых полей и рассчитывается новое значение поля «Контрольная сумма». Затем по таблице маршрутизации определяется адрес следующего маршрутизатора, на который должен быть направлен этот пакет, и он передается на соответствующий интерфейс.

IP (Internet Protocol) — протокол сетевого уровня стека TCP/IP. Протокол был создан в 1981 году и описан в RFC 791. Основной задачей протокола является доставка датаграмм между хостами сетей TCP/IP через произвольное число промежуточных узлов (маршрутизаторов).
Функции, реализуемые IP:
- Основа передачи данных.
- Адресация.
- Маршрутизация.
- Фрагментация датаграмм.
Протокол IP не гарантирует надежной доставки пакета: пакеты могут прийти в неправильном порядке, пакет может быть утерян, пакет может продублироваться или оказаться поврежденным. За надежность доставки пакетов отвечают протоколы транспортного уровня.
На данный момент наиболее распространена четвертая версия протокола (IPv4), однако ведутся активные работы по внедрению более совершенного IPv6.
Содержание
- 1 IPv4
- 1.1 Структура пакета
- 1.2 Пример
- 2 IPv6
- 2.1 Структура пакета
- 3 IP-адрес
- 3.1 IPv4-адрес
- 3.2 Сетевые адреса, адреса интерфейсов и широковещательные адреса
- 3.3 IPv6-адрес
- 3.4 Типы IPv6 адресов
- 3.5 Фрагментация
- 4 Маршрутизация
- 4.1 Маска подсети
- 4.2 Бесклассовая междоменная маршрутизация
- 4.3 Классы IP-сетей
- 5 Полезные ссылки
IPv4
IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет протокола (IP). Описан в IETF в статье RFC 791 (сентябрь 1981 года). Это один из самых используемых интернет протоколов. Был введен в использование в ARPANET в 1983 году.
Функция протокола — передавать дейтаграммы по множеству соединенных сетей.
Структура пакета
Рассмотрим формат IPv4-дейтаграмм.
Дейтаграмма состоит из заголовка и основной части (данных). Биты передаются слева направо и сверху вниз (big-endian порядок). В настоящее время ясно, что лучше было бы использовать обратный (little-endian) порядок, но во время создания протокола это не было очевидно. Так на Intel x86 требуется программное преобразование, как при передаче, так и при приеме.
Рассмотрим структуру заголовка:
| 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Версия | IHL | Дифференциальное обслуживание (Тип службы) | Полная длина | ||||||||||||||||||||||||||||
| Идентификатор | Флаги | Смещение фрагмента | |||||||||||||||||||||||||||||
| Время жизни | Протокол | Контрольная сумма заголовка | |||||||||||||||||||||||||||||
| IP-адрес источника | |||||||||||||||||||||||||||||||
| IP-адрес назначения | |||||||||||||||||||||||||||||||
| Опции | Остаток |
- Версия: 4 бита
- Поле Версия содержит версию протокола, к которому принадлежит пакет. В случае IPv4 это 4.
- IHL: 4 бита
- Поле IHL (англ. Internet Header Length) содержит длину заголовка (в нем указано число 32 -разрядных слов). Следовательно, оно указывает на начало данных. Минимальное значение длины равно 5 . Максимальное — 15, что соответствует заголовку длиной 60 байт. Так, максимальный размер необязательного поля равен 40 байтам.
- Дифференциальное обслуживание (Тип службы): 8 битов
- Изначально это поле называлось Тип службы. По спецификации оно предназначено для различения классов обслуживания. Но поскольку никто не знал, что с ним делать, оно много лет не использовалось. Теперь, когда появилось дифференцированное обслуживание, ему нашли другое применение. Первые 6 бит задают класс обслуживания (DSCP), а в последние 2 помещаются явные уведомления о перегруженности (ECN).
- Полная длина: 16 бит
- Поле Полная длина содержит длину всей дейтаграммы, включая как заголовок, так и данные. Минимальная длина равна 20 байтам. Максимальное допустимое значение равно 65535 байт. Такие длинные дейтаграммы непрактичны для большинства хостов и сетей. Так, все хосты должны уметь принимать дейтаграммы до 576 байтов. Рекоммендуется отправлять дейтаграммы большего размера, только если есть уверенность, что принимающая сторона сможет их обработать.
- Идентификатор: 16 бит
- Идентификатор позволяет хосту-получателю определить какому пакеты принадлежат полученные им фрагменты. Все фрагменты одного пакета содержат одно и то же значение идентификатора.
- Флаги: 3 бита
- Бит 0: зарезервированное значение, должны быть равно 0.
- Бит 1 (DF): Не фрагментировать (англ. Don’t Fragment). 0 — можно фрагментировать, 1 — нельзя. Также может использоваться при определении путевого значения MTU, которое равно максимальному размеру пакета, передаваемого по пути без фрагментации. Пометив этот бит, отправитель гарантирует, что либо дейтаграмма дойдет единым блоком, либо отправитель получит сообщение об ошибке.
- Бит 2 (MF): Продолжение следует (англ. More Fragments). 0 — в последнем фрагменте, 1 — в предыдущих.
- Смещение фрагмента: 13 битов
- Это поле указывает положение фрагмента в исходном пакете. Длина всех фрагментов в байтах должна быть кратна 8 (кроме последнего). Позволяет (2^13−1)×8=65528 байт смещения, что превышает максимальный размер пакета.
- Время жизни: 8 битов
- Поле Время жизни (TTL, англ. Time To Live) представляет собой счетчик, ограничивающий время жизни пакета. По спецификации он отсчитывает время в секундах, таким образом допуская максимальное время жизни пакета в 255 с. На каждом маршрутизаторе значение должно уменьшаться как минимум на единицу плюс время стояния в очереди. Но на практике этот счетчик считает количество переходов черех маршрутизаторы. Когда значение равно 0, пакет отвергается, а отправителю отсылается сообщение ICMP Time Exceeded. Таким образом удается избежать вечного странствования пакетов.
- Протокол: 8 битов
- Это поле указывает, какому процес транспортного уровня передать этот пакет, например TCP, UDP, ICMP. Присвоенные номера протоколов можно найти на сайте IANA.
- Контрольная сумма заголовка: 16 бит
- Это поле хранит контрольную сумму только заголовка. Так как некоторые поля меняются (например, TTL), то оно пересчитывается на каждом транзитивном участке. Используется следующий алгоритм: складываются все 16-разрядные полуслова заголовка в дополнительном коде, преобразуя результат также в дополнительный код. Таким образом проверяемая получателем контрольная сумма заголовка (вместе с этим полем) должна быть равна нулю. Более подробно алгоритм описан в RFC 1071.
- IP-адрес источника: 32 бита.
- IP-адрес получателя: 32 бита.
- Опции: переменная длина
- В начале поля всегда располагается однобайтный идентификатор. Иногда за ним может располагаться также однобайтное поле длины, а затем один или несколько информационных байтов. Размер этого поля должен быть кратен 4 байтам. Поле опции имеет следующий формат:
- 1 бит — флаг копирования. Показывает, если опция скопирована во все фрагменты.
- 2 бита — класс опции. Могут быть следующие классы: 0 — control, 2 — debugging и измерение, 1 и 3 — зарезервированы на будущее.
- 5 бит — номер опции.
- Приведем примеры опций:
- Безопастность — указывет уровень секретности дейтаграммы. Но на практике все его игнорируют.
- Строгая маршрутизация от источника — задает полный путь следования дейтаграммы.
- Свободная маршрутизация от источника — задает список маршрутизаторв, которыенельзя миновать.
- Запомнить маршрут — требует от всех маршрутизаторов добавлять свой IP-адрес.
- Временной штамп — требует от всех маршрутизаторв добавлять свой IP-адрес и текущее время.
- Обычно маршрутизаторы либо игнорируют опции, либо обрабатывают неэффективно, отодвигая в стороны как нечто необычное.
- В начале поля всегда располагается однобайтный идентификатор. Иногда за ним может располагаться также однобайтное поле длины, а затем один или несколько информационных байтов. Размер этого поля должен быть кратен 4 байтам. Поле опции имеет следующий формат:
- Остаток (Padding): переменная длина
- Часть из нулей, гарантирующая, что длина заголовка заканчивается на 32 бите.
Пример
IPv4 и его расположение внутри кадра.
IPv6
IPv6 (англ. Internet Protocol version 6) — новая версия интернет протокола (IP), являющаяся результатом развития IPv4. Протокол был создан IETF в 1996 году. Описан в спецификации RFC 2460.
Основной причиной для создания новой версии протокола послужил факт скорого исчерпания пула IPv4 адресов (по разным оценкам последние выделенные IANA адреса будут заняты в период с 2016 по 2020 года).
Основные отличия IPv6 от IPv4:
- В IPv6 заголовок имеет фиксированную длину 40 октетов.
- Поле общей длины заменено полем длины области данных.
- В IPv6 предусмотрена передача пакетов, длины которых превышают 64 кбайт.
- Заголовки надстроек.
- Поле времени жизни заменено полем ограничения количества переходов.
- Многие дополнения IPv4 были оформлены как отдельные протоколы.
Структура пакета
| Отступ в байтах | 0 | 1 | 2 | 3 | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Отступ в битах | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | |
| 0 | 0 | Версия | Класс трафика | Метка потока | |||||||||||||||||||||||||||||
| 4 | 32 | Длина полезной нагрузки | Следующий заголовок | Лимит кол-ва переходов | |||||||||||||||||||||||||||||
| 8 | 64 | Адрес отправителя | |||||||||||||||||||||||||||||||
| C | 96 | ||||||||||||||||||||||||||||||||
| 10 | 128 | ||||||||||||||||||||||||||||||||
| 14 | 160 | ||||||||||||||||||||||||||||||||
| 18 | 192 | Адрес получателя | |||||||||||||||||||||||||||||||
| 1C | 224 | ||||||||||||||||||||||||||||||||
| 20 | 256 | ||||||||||||||||||||||||||||||||
| 24 | 288 |
- Весрия (Version)
- 4 бита. Версия протокола. Для IPv6 — 0110 (6).
- Класс трафика (Traffic class)
- 8 бит. Хранит два значения: старшие 6 бит используются DSCP для классификации пакетов, младшие 2 используются ECN для контроля перезагрузки.
- Метка потока (Flow Label)
- 20 бит. Используется для передачи информации маршрутизаторам и коммутаторам о необходимости поддержания одного и того же пути для пути для потока пакетов, чтобы избежать переупорядочивания.
- Длина полезной нагрузки (Payload length)
- 16 бит. Размер всего пакета, включая заголовок и дополнительные расширения.
- Следующий заголовок (Next header)
- 8 бит. Тип расширенного заголовка (extension), идущего следующим. В последнем расширенном заголовке это поле хранит тип транспортного протокола.
- Лимит кол-ва переходов (Hop limit)
- 8 бит. Поле, уменьшаемое на единицу каждым маршрутизатором. Когда поле счетчик равным 0, пакет отбрасывается.
- Адрес отправителя (Source address)
- 128 бит. IPv6 адрес отправителя.
- Адрес получателя (Destination address)
- 128 бии. IPv6 адрес получателя.
IP-адрес
| Определение: |
| IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной по протоколу IP. |
IPv4-адрес
IPv4 использует 32-битные адреса, ограничивающие адресное пространство 4 294 967 296 (232) возможными уникальными адресами. У каждого хоста и маршрутизатора в Интеренете есть IP-адрес. IP-адрес не имеет отношения к хосту. Он имеет отношение к сетевому интерфейсу, поэтому иногда хост или маршрутизатор могут иметь несколько IP-адресов.
IP-адреса имеют иерархическую организацию. Первая часть имеет переменную длину и задает сеть, а последняя указывает на хост.
Обычно IP-адреса записываются в виде 4 десятичных чисел, каждое в диапозоне от 0 до 255, разделенными точками (dot-decimal notation). Каждая часть представляет один байт адреса. Например, шестнадцатиричный адрес 80D00297 записывается как 128.208.2.151.
| Определение: |
| Префикс — непрерывный блок пространства IP-адресов, соответствующий сети, в которой сетевая часть совпадает для всех хостов. |
Префикс задается наименьшим IP-адресом в блоке и размером блока. Размер определяется числом битов в сетевой части, оставшиеся биты в части хоста могут варьироваться. Таким образом, размер является степенью двойки. Он записывается после префикса IP-адреса в виде слэша и длины сетевой части в битах. В предыдущем примере префикс содержит 28 адресов и поэтому для сетевой части отводится 24 бита. Записывается так: 128.208.2.0/24.
Сетевые адреса, адреса интерфейсов и широковещательные адреса
IP адрес может означать одно из трех:
- Адрес IP сети (группа IP устройств, имеющих доступ к общей среде передаче — например, все устройства в сегменте Ethernet). Сетевой адрес всегда имеет биты интерфейса (хоста) адресного пространства установленными в 0 (если сеть не разбита на подсети);
- Широковещательный адрес IP сети (адрес для ‘разговора’ со всеми устройствами в IP сети). Широковещательные адреса для сети всегда имеют интерфейсные (хостовые) биты адресного пространства установленными в 1 (если сеть не разбита на подсети).
- Адрес интерфейса (например Ethernet-адаптер или PPP интерфейс хоста, маршрутизатора, сервера печать итд). Эти адреса могут иметь любые значения хостовых битов, исключая все нули или все единицы — чтобы не путать с адресами сетей и широковещательными адресами.
IPv6-адрес
Адрес в IPv6 представляется как восемь групп из четырех шестнадцатеричных чисел, разделенных двоеточиями.
При записи адреса используются следующие правила:
- Если одна и более групп, идущих подряд, равны 0000, то они опускаются и заменяются на двойное двоеточие.
- Незначащие старшие нули в группах опускаются.
- Для записи встроенного или отображенного IPv4 адреса последние две группы цифр заменяются на IPv4 адрес.
- При использовании IPv6 адреса в URL он помещается в квадратные скобки.
- Порт в URL пишется после закрывающей квадратной скобки.
Типы IPv6 адресов
- Одноадресный (Unicast) — для отправки пакет на конкретный адрес устройства.
- Global unicast — глобальные адреса. Могут находиться в любом не занятом диапазоне.
- Link loсal — локальный адрес канала. Позволяет обменивать данными по одному и тому же каналу (подсети). Пакеты с локальным адресом канала не могут быть отправлены за пределы этого канала.
- Unique local — уникальный локальные адреса. Используются для локальной адресации в пределах узла или между ограниченным количеством узлов.
- Многоадресный (Multicast) — для отправки пакетов на группу адресов.
- Assigned — назначенные адреса. Зарезервированные для определённых групп устройств Multicast адреса.
- Solicited — запрошенные адреса. Остальные адреса, которые устройства могут использовать для прикладных задач.
- Групповой (Anycast) — для отправки пакета на «любой» индивидуальный адрес. Такой адрес может быть назначен нескольким устройствам. Пакет будет доставлен ближайшему устройству с этим адресом.
Фрагментация
Большинство каналов передачи данных устанавливают максимальную длину пакета (MTU). В случае, когда длина пакета превышает это значение, происходит фрагментация.
| Определение: |
| IP-фрагментация — разбиение пакета на множество частей, которые могут быть повторно собраны позже. |
Маршрутизация
Протокол IP требует, чтобы в маршрутизации участвовали все узлы (компьютеры). Длина маршрута, по которому будет передан пакет, может меняться в зависимости от того, какие узлы будут участвовать в доставке пакета. Каждый узел принимает решение о том, куда ему отправлять пакет на основании таблицы маршрутизации (routing tables).
| Определение: |
| Подсеть — логическое разбиение сети IP. |
Маска подсети
Длина префикса не выводится из IP-адреса, поэтому протоколу маршрутизации вынуждены передавать префиксы на маршрутизаторы. Иногда префиксы задаются с помощью указания длины.
| Определение: |
| Маска подсети — двоичная маска, соответствующая длине префикса, в которой единицы указывают на сетевую часть. |
То есть маска подсети определяет как будут локально интерпретироваться IP адреса в сегменте IP сети, что для нас весьма важно, поскольку определяет процесс разбивки на подсети.
Стандартная маска подсети — все сетевые биты в адресе установлены в ‘1’ и все хостовые биты установлены в ‘0’.
Выполненение операции И между маской и IP-адресом позволяет выделить сетевую часть.
О маске подсети нужно помнить три вещи:
- Маска подсети предназначена только для локальной интерпретации локальных IP адресов (где локальный значит — в том же сетевом сегменте);
- Маска подсети — не IP адрес — она используется для локальной модификации интерпретации IP адреса.
Бесклассовая междоменная маршрутизация
Изначально использовалась классовая адресация (INET), но со второй половины 90-х годов XX века она была вытеснена бесклассовой адресацией (CIDR), при которой количество адресов в сети определяется маской подсети.
Таблицы маршрутизации со временем сильно растут, и с этим нужно что-то делать. Маршрутизатор может узнавать о расположении IP-адресов по префиксам различной длины. Но вместо того чтобы разделять сеть на подсети, мы объединим несколько коротких префиксов в один длинный. Этот процесс называется агрегацией маршрута (route aggregation). Длинный префикс, полученный в результате, иногда называют суперсетью (supernet), в противоположность подсетям с разделением блоков адресов.

При агрегации IP-адреса содержатся в префиксах различной длины. Один и тот же IP-адрес может рассматриваться одним маршрутизатором как часть блока /22 (содержащего 210 адресов), а другим — как часть более крупного блока /20 (содержащего 212 адресов). Это зависит от того, какой информацией обладает маршрутизатор. Такой метод называется CIDR (Classless InterDomain Routing — бесклассовая междоменная маршрутизация).
Также префиксы могут пересекаться. Согласно правилу, пакеты передаются в направлении самого специализированного блока, или самого длинного совпадающего префикса (longest matching prefix), в котором находится меньше всего IP-адресов.
По сути CIDR работает так:
- Когда прибывает пакет, необходимо определить, относится ли данный адрес к данному префиксу; для этого просматривается таблица маршрутизации. Может оказаться, что по значению подойдет несколько записей. В этом случае используется самый длинный префикс. То есть если найдено совпадение для маски /20 и /24, то для выбора исходящей линии будет использоваться запись, соответствующая /24.
- Однако этот процесс был бы трудоемким, если бы таблица маршрутизации просматривалась запись за записью. Вместо этого был разработан сложный алгоритм для ускорения процесса поиска адреса в таблице (Ruiz-Sanchez и др., 2001).
- В маршрутизаторах, предполагающих коммерческое использование, применяются специальные чипы VLSI, в которые данные алгоритмы встроены аппаратно.
Классы IP-сетей

Раньше использовали классовую адресацию.
Сколько бит используется сетевым ID и сколько бит доступно для идентификации хостов (интерфейсов) в этой сети, определяется сетевыми классами.
Всего 5 классов IP-адресов: A, B, C, D, E.
Их структура и диапазоны указаны на рисунке.
Существует также специальные адреса, которые зарезервированы для ‘несвязанных’ сетей — это сети, которые используют IP, но не подключены к Internet. Вот эти адреса:
- Одна сеть класса A: 10.0.0.0
- 16 сетей класса B: 172.16.0.0 — 172.31.0.0
- 256 сетей класса С: 192.168.0.0 — 192.168.255.0
Стандартные маски подсети для трех классов сетей:
- A класс — маска подсети: 255.0.0.0
- B класс — маска подсети: 255.255.0.0
- C класс — маска подсети: 255.255.255.0
Полезные ссылки
- Information Sciences Institute, University of Southern California (September 1981). «RFC 791». Internet Engineering Task Force. Retrieved July 12, 2016.
- IP Sub-networking Mini-Howto
- Таненбаум Э, Уэзеролл Д. Компьютерные сети. — Питер, 2012. — 960 с
- Wiki
- IP-адресация
- Data Communication Lectures of Manfred Lindner – Part IP Technology Fundamentals
- Data Communication Lectures of Manfred Lindner – Part IP Routing Fundamentals
|
2.2.3. Протокол IP Протокол IP является самым главным во всей иерархии протоколов семейства TCP/IP. Именно он используется для управления рассылкой TCP/IP пакетов по сети Internet. Среди различных функций, возложенных на IP обычно выделяют следующие:
Главными особенностями протокола IP является отсутствие ориентации на физическое или виртуальное соединение. Это значит, что прежде чем послать пакет в сеть, модуль операционной системы, реализующий IP, не проверяет возможность установки соединения, т.е. никакой управляющей информации кроме той, что содержится в самом IP-пакете, по сети не передается. Кроме этого, IP не заботится о проверке целостности информации в поле данных пакета, что заставляет отнести его к протоколам ненадежной доставки. Целостность данных проверяется протоколами транспортного уровня (TCP) или протоколами приложений. Таким образом, вся информация о пути, по которому должен пройти пакет берется из самой сети в момент прохождения пакета. Именно эта процедура и называется маршрутизацией в отличии от коммутации, которая используется для предварительного установления маршрута следования данных, по которому потом эти данные отправляют. Принцип маршрутизации является одним из тех факторов, который обеспечил гибкость сети Internet и ее победу в соревновании с другими сетевыми технологиями. Надо сказать, что маршрутизация является довольно ресурсоемкой процедурой, так как требует анализа каждого пакета, который проходит через шлюз или маршрутизатор, в то время как при коммутации анализируется только управляющая информация, устанавливается канал, физический или виртуальный, и все пакеты пересылаются по этому каналу без анализа маршрутной информации. Однако, эта слабость IP одновременно является и его силой. При неустойчивой работе сети пакеты могут пересылаться по различным маршрутам и затем собираться в единое сообщение. При коммутации путь придется каждый раз вычислять заново для каждого пакета, а в этом случае коммутация потребует больше накладных затрат, чем маршрутизация. Вообще говоря, версий протокола IP существует несколько. В настоящее время используется версия Ipv4 (RFC791). Формат пакета протокола представлена на рисунке 2.8.
2.8. Формат пакета Ipv4 Фактически, в этом заголовке определены все основные данные, необходимые для перечисленных выше функций протокола IP: адрес отправителя (4-ое слово заголовка), адрес получателя (5-ое слово заголовка), общая длина пакета (поле Total Lenght) и тип пересылаемой датаграммы (поле Protocol). Используя данные заголовка, машина может определить на какой сетевой интерфейс отправлять пакет. Если IP-адрес получателя принадлежит одной из ее сетей, то на интерфейс этой сети пакет и будет отправлен, в противном случае пакет отправят на другой шлюз (см. раздел 2.6). Если пакет слишком долго «бродит» по сети, то очередной шлюз может отправить ICMP-пакет на машину-отправитель для того, чтобы уведомить о том, что надо использовать другой шлюз. При этом, сам IP-пакет будет уничтожен. На этом принципе работает программа ping, которая используется для деления маршрутов прохождения пакетов по сети. Зная протокол транспортного уровня, IP-модуль производит раскапсулирование информации из своего пакета и ее направление на модуль обслуживания соответствующего транспорта. При обсуждении формата заголовка пакета IP вернемся еще раз к инкапсулированию. Как уже отмечалось, при обычной процедуре инкапсулирования пакет просто помещается в поле данных фрейма, а в случае, когда это не может быть осуществлено, то разбивается на более мелкие фрагменты. Размер максимально возможного фрейма, который передается по сети, определяется величиной MTU (Maximum Transsion Unit), определенной для протокола канального уровня. Для того, чтобы потом восстановить пакет IP должен держать информацию о своем разбиении. Для этой цели используется поля «flags» и «fragmentation offset». В этих полях определяется, какая часть пакета получена в данном фрейме, если этот пакет был фрагментирован на более мелкие части. Обсуждая протокол IP и вообще все семейство протоколов TCP/IP нельзя не упомянуть, что в настоящее время перед Internet возникло множество по-настоящему сложных проблем, которые требуют изменения базового протокола сети. 2.2.4. IPing — новое поколение протоколов IP До сих пор, при обсуждении IP-технологии, основное внимание уделялось проблемам межсетевого обмена и путям их решения в рамках существующей технологии. Однако, все эти задачи, вызванные необходимостью приспособления IP к новым физическим средам передачи данных меркнут перед действительно серьезной проблемой — ростом числа пользователей Сети. Казалось бы, что тут страшного? Число пользователей увеличивается, следовательно растет популярность сети. Такое положение дел должно только радовать. Но проблема заключается в том, что Internet стал слишком большой, он перерос заложенные в него возможности. К 1994 году ISOC опубликовало данные, из которых стало ясно, что номера сетей класса B практически все уже выбраны, а остались только сети класса A и класса C. Класс A — это слишком большие сети. Реальные пользователи сети, такие как университеты или предприятия, не используют сети этого класса. Класс С хорош для очень небольших организаций. При современной насыщенности вычислительной техникой только мелкие конторы будут удовлетворены возможностями этого класса. Но если дело пойдет и дальше такими темпами, то класс C тоже быстро иссякнет. Самое парадоксальное заключается в том, что реально не все адреса, из выделенных пользователям сетей, реально используются. Большое число адресов пропадает из-за различного рода просчетов при организации подсетей, например, слишком широкая маска, или наоборот слишком «дальновидного планирования, когда в сеть закладывают большой запас «на вырост». Не следует думать, что эти адреса так и останутся невостребованными. Современное «железо» позволяет их утилизировать достаточно эффективно, но это стоит значительно дороже, чем простые способы, описанные выше. Одним словом, Internet, став действительно глобальной сетью, оказался зажатым в тисках своих собственных стандартов. Нужно было что-то срочно предпринимать, чтобы во время пика своей популярности не потерпеть сокрушительное фиаско. В начале 1995 года IETF, после 3-x лет консультаций и дискуссий, выпустило предложения по новому стандарту протокола IP — IPv6, который еще называют IPing. К слову, следует заметить, что сейчас Internet-сообщество живет по стандарту IPv4. IPv6 призван не только решить адресную проблему, но и попутно помочь решению других задач, стоящих в настоящее время перед Internet. Нельзя сказать, что до появления IPv6 не делались попытки обойти адресные ограничения IPv4. Например, в протоколах BOOTP (BOOTstrap Protocol) и DHCP (Dynamic Host Configuration Protocol) предлагается достаточно простой и естественный способ решения проблемы для ситуации, когда число физических подключений ограничено, или реально все пользователи не работают в сети одновременно. Типичной ситуацией такого сорта является доступ к Internet по коммутируемом каналу, например телефону. Ясно, что одновременно несколько пользователей физически не могут разговаривать по одному телефону, поэтому каждый из них при установке соединения запрашивает свою конфигурацию, в том числе и IP-адрес. Адреса выдаются из ограниченного набора адресов, который закреплен за телефонным пулом. IP-адрес пользователя может варьироваться от сессии. Фактически, DHCP — это расширение BOOTP в сторону увеличения числа протоколов, для которых возможна динамическая настройка удаленных машин. Следует заметить, что DHCP используют и для облегчения администрирования больших сетей, т.к. достаточно иметь только базу данных машин на одном компьютере локальной сети, и из нее загружать настройки удаленных компьютеров при их включении (под включением понимается, в данном случае не подключение к локальной компьютерной сети, а включение питания у компьютера, подсоединенного к сети). Совершенно очевидно, что приведенный выше пример — это достаточно специфическое решение, ориентированное на специальный вид подключения к сети. Однако, не только адресная проблема определила появление нового протокола. Разработчики позаботились и о масштабируемой адресации IP-пакетов, ввели новые типы адресов, упростили заголовок пакета, ввели идентификацию типа информационных потоков для увеличения эффективности обмена данными, ввели поля идентификации и конфиденциальности информации. Новый заголовок IP-пакета показан на рисунке 2.9.
Рис. 2.9. Заголовок IPv6 В этом заголовке поле «версия» — номер версии IP, равное 6. Поле «приоритет» может принимать значения от 0 до 15. Первые 8 значений закреплены за пакетами, требующими контроля переполнения, например, 0 — несимвольная информация; 1 — информация заполнения (news), 2 — не критичная ко времени передача данных (e-mail); 4 — передача данных режима on-line (FTP, HTTP, NFS и т.п.); 6 — интерактивный обмен данными (telnet, X); 7 — системные данные или данные управления сетью (SNMP, RIP и т.п.). Поле «метка потока» предполагается использовать для оптимизации маршрутизации пакетов. В IPv6 вводится понятие потока, который состоит из пакетов. Пакеты потока имеют одинаковый адрес отправителя и одинаковый адрес получателя и ряд других одинаковых опций. Подразумевается, что маршрутизаторы будут способны обрабатывать это поле и оптимизировать процедуру пересылки пакетов, принадлежащих одному потоку. В настоящее время алгоритмы и способы использования поля «метка потока» находятся на стадии обсуждения. Поле длины пакета определяет длину следующей за заголовком части пакета в байтах. Поле «следующий заголовок» определяет тип следующего за заголовком IP-заголовка. Заголовок IPv6 имеет меньшее количество полей, чем заголовок IPv4. Многие необязательные поля могут быть указаны в дополнительных заголовках, если это необходимо. Поле «ограничение переходов» определяет число промежуточных шлюзов, которые ретранслируют пакет в сети. При прохождении шлюза это число уменьшается на единицу. При достижении значения «0» пакет уничтожается. После первых 8 байтов в заголовке указываются адрес отправителя пакета и адрес получателя пакета. Каждый из этих адресов имеет длину 16 байт. Таким образом, длина заголовка IPv6 составляет 48 байтов. После 4 байтов IP-адреса стандарта IPv4, шестнадцать байт IP-адреса для IPv6 выглядят достаточными для удовлетворения любых потребностей Internet. Не все 2128 адресов можно использовать в качестве адреса сетевого интерфейса в сети. Предполагается выделение отдельных групп адресов, согласно специальным префиксам внутри IP-адреса, подобно тому, как это делалось при определении типов сетей в IPv4. Так, двоичный префикс «0000 010» предполагается закрепить за отображением IPX-адресов в IP-адреса. В новом стандарте выделяются несколько типов адресов: unicast addresses — адреса сетевых интерфейсов, anycast addresses — адреса не связанные с конкретным сетевым интерфейсом, но и не связанные с группой интерфейсов и multicast addresses — групповые адреса. Разница между последними двумя группами адресов в том, что anycast address это адрес конкретного получателя, но определяется адрес сетевого интерфейса только в локальной сети, где этот интерфейс подключен, а multicast-сообщение предназначено группе интерфейсов, которые имеют один multicast-адрес. Пока IPv6 не стал злобой дня, нет смысла углубляться в форматы новых IP-адресов. Отметим только, что существующие узлы Internet будут функционировать в сети без каких-либо изменений в их настройках и программном обеспечении. IPv6 предполагает две схемы включения «старых» адресов в новые. Предполагается расширять 4-х байтовый адрес за счет лидирующих байтов до 16-и байтового. При этом, для систем, которые не поддерживают IPv6, первые 10 байтов заполняются нулями, следующие два байта состоят из двоичных единиц, а за ними следует «старый» IP-адрес. Если система в состоянии поддерживать новый стандарт, то единицы в 11 и 12 байтах заменяются нулями. Маршрутизировать IPv6-пакеты предполагается также, как и IPv4-пакеты. Однако, в стандарт были добавлены три новых возможности маршрутизации: маршрутизация поставщика IP-услуг, маршрутизация мобильных узлов и автоматическая переадресация. Эти функции реализуются путем прямого указания промежуточных адресов шлюзов при маршрутизации пакета. Эти списки помещаются в дополнительных заголовках, которые можно вставлять вслед за заголовком IP-пакета. Кроме перечисленных возможностей, новый протокол позволяет улучшить защиту IP-трафика. Для этой цели в протоколе предусмотрены специальные опции. Первая опция предназначена для защиты от подмены IP-адресов машин. При ее использовании нужно кроме адреса подменять и содержимое поля идентификации, что усложняет задачу злоумышленника, который маскируется под другую машину. Вторая опция связана с шифрацией трафика. Пока IPv6 не стал реально действующим стандартом, говорить о конкретных механизмах шифрации трудно. Завершая описание нового стандарта, следует отметить, что он скорее отражает современные проблемы IP-технологии и является достаточно проработанной попыткой их решения. Будет принят новый стандарт или нет покажет ближайшее будущее. Во всяком случае первые образцы программного обеспечения и «железа» уже существуют. 2.2.5. ICMP (Internet Control Message Protocol) Данный протокол на ряду с IP и ARP относят к межсетевому уровню. Протокол используется для рассылки информационных и управляющих сообщений. При этом используются следующие виды сообщений: Flow control — если принимающая машина (шлюз или реальный получатель информации) не успевает перерабатывать информацию, то данное сообщение приостанавливает отправку пакетов по сети. Detecting unreachаble destination — если пакет не может достичь места назначения, то шлюз, который не может доставить пакет, сообщает об этом отправителю пакета. Информировать о невозможности доставки сообщения может и машина, чей IP-адрес указан в пакете. Только в этом случае речь будет идти о портах TCP и UDP, о чем будет сказано чуть позже. Redirect routing — это сообщение посылается в том случае, если шлюз не может доставить пакет, но у него есть на этот счет некоторые соображения, а именно адрес другого шлюза. Checking remote host — в этом случае используется так называемое ICMP Echo Message. Если необходимо проверить наличие стека TCP/IP на удаленной машине, то на нее посылается сообщение этого типа. Как только система получит это сообщение, она немедленно подтвердит его получение. Последняя возможность широко используется в Internet. На ее основе работает команда ping. Ix: {2} ping apollo.polyn.kiae.su
PING apollo.polyn.kiae.su (144.206.160.40): 56 data bytes
64 bytes from 144.206.160.40: icmp_seq=0 ttl=255 time=1.401 ms
64 bytes from 144.206.160.40: icmp_seq=1 ttl=255 time=0.844 ms
64 bytes from 144.206.160.40: icmp_seq=2 ttl=255 time=0.807 ms
64 bytes from 144.206.160.40: icmp_seq=3 ttl=255 time=0.912 ms
64 bytes from 144.206.160.40: icmp_seq=4 ttl=255 time=0.797 ms
64 bytes from 144.206.160.40: icmp_seq=5 ttl=255 ti^C
--- apollo.polyn.kiae.su ping statistics ---
6 packets transmitted, 6 packets received, 0% packet loss
round-trip min/avg/max = 0.797/0.930/1.401 ms
Ix: {3}
В приведенном выше примере сообщения посылаются на машину apollo.polyn.kiae.su, которая подтверждает их получение. Другое использование ICMP — это получение сообщения о «кончине» пакета на шлюзе. При этом используется время жизни пакета, которое определяет число шлюзов, через которые пакет может пройти. Программа, которая использует этот прием, называется traceroute. К более подробному обсуждению ее возможностей мы вернемся в разделе 2.5. Здесь же только укажем, что она использует сообщение TIME EXECEED протокола ICMP. quest:/usr/paul:[1]%traceroute www.netscape.com traceroute to www3.netscape.com (205.218.156.44), 30 hops max, 40 byte packets 1 Moscow-KIAE-4.Relcom.EU.net (144.206.136.12) 7 ms 4 ms 4 ms 2 Moscow-KIAE-3.Relcom.EU.net (193.125.152.14) 5 ms 4 ms 4 ms 3 Moscow-M9-2.Relcom.EU.net (193.124.254.37) 10 ms 8 ms 10 ms 4 StPetersburg-LE-1.Relcom.EU.net (193.124.254.33) 53 ms 24 ms 29 ms 5 Helsinki2.FI.EU.net (134.222.4.1) 33 ms 31 ms 39 ms 6 Pennsauken1.NJ.US.EU.net (134.222.228.30) 159 ms 292 ms 125 ms 7 mcinet-2.sprintnap.net (192.157.69.48) 528 ms 419 ms 400 ms 8 core2-hssi2-0.WestOrange.mci.net (204.70.1.49) 411 ms 495 ms 397 ms 9 borderx1-fddi-1.SanFrancisco.mci.net (204.70.158.52) 387 ms 342 ms 231 ms 10 borderx1-fddi-1.SanFrancisco.mci.net (204.70.158.52) 264 ms 265 ms 261 ms 11 netscape.SanFrancisco.mci.net (204.70.158.110) 250 ms 262 ms 252 ms 12 205.218.156.44 (205.218.156.44) 279 ms 295 ms 299 ms quest:/usr/paul:[2]% При посылке пакета через Internet traceroute устанавливает значение TTL (Time To Live) последовательно от 1 до 30 (значение по умолчанию). TTL определяет число шлюзов, через которые может пройти IP-пакет. Если это число превышено, то шлюз, на котором происходит обнуление TTL, высылает ICMP-пакет. Traceroute сначала устанавливает значение TTL равное единице — отвечает ближайший шлюз, затем значение TTL равно 2 — отвечает следующий шлюз и т. д. Если пакет достиг получателя, то в этом случае возвращается сообщение другого типа — Detecting unreachаble destination, т.к. IP-пакет передается на транспортный уровень, а на нем нет обслуживания запросов traceroute (см. раздел 2.5). После протоколов межсетевого уровня перейдем к протоколам транспортного уровня и первым из них рассмотрим протокол UDP. 2.2.6. User Datagram Protocol — UDP Протокол UDP — это один из двух протоколов транспортного уровня, которые используются в стеке протоколов TCP/IP. UDP позволяет прикладной программе передавать свои сообщения по сети с минимальными издержками, связанными с преобразованием протоколов уровня приложения в протокол IP. Однако при этом, прикладная программа сама должна заботиться о подтверждении того, что сообщение доставлено по месту назначения. Заголовок UDP-датаграммы (сообщения) имеет вид, показанный на рисунке 2.10.
Рис. 2.10. Структура заголовка UDP-сообщения Порты в заголовке определяют протокол UDP как мультиплексор, который позволяет собирать сообщения от приложений и отправлять их на уровень протоколов. При этом приложение использует определенный порт. Взаимодействующие через сеть приложения могут использовать разные порты, что и отражает заголовок пакета. Всего можно определить 216 разных портов. Первые 256 портов закреплены за, так называемыми «well known services», к которым относятся, например, 53 порт UDP, который закреплен за сервисом DNS. Поле Length определяет общую длину сообщения. Поле Checksum служит для контроля целостности данных. Приложение, которое использует протокол UDP должно само заботится о целостности данных, анализируя поля Checksum и Length. Кроме этого, при обмене данными по UDP прикладная программа сама должна заботится о контроле доставки данных адресату. Обычно это достигается за счет обмена подтверждениями о доставке между прикладными программами. Наиболее известными сервисами, основанными на UDP, является служба доменных имен BIND и распределенная файловая система NFS. Если возвратиться к примеру traceroute, то в этой программе также используется транспорт UDP. Собственно, именно сообщение UDP и засылается в сеть, но при этом используется такой порт, который не имеет обслуживания, поэтому и порождается ICMP-пакет, который и детектирует отсутствие сервиса на принимающей машине, когда пакет наконец достигает машину-адресата. 2.2.7. Transfer Control Protocol — TCP Если для приложения контроль качества передачи данных по сети имеет значение, то в этом случае используется протокол TCP. Этот протокол еще называют надежным, ориентированным на соединение и потокоориентированным протоколом. Прежде чем обсудить эти свойства протокола, рассмотрим формат передаваемой по сети датаграммы (рисунок 2.11). Согласно этой структуре, в TCP, как и в UDP, имеются порты. Первые 256 портов закреплены за WKS, порты от 256 до 1024 закреплены за Unix-сервисами, а остальные можно использовать по своему усмотрению. В поле Sequence Number определен номер пакета в последовательности пакетов, которая составляет все сообщение, за тем идет поле подтверждения Asknowledgment Number и другая управляющая информация.
Рис. 2.11. Структура пакета TCP Надежность TCP заключается в том, что источник данных повторяет их посылку, если только не получит в определенный промежуток времени от адресата подтверждение об их успешном получении. Этот механизм называется Positive Asknowledgement with Retransmission (PAR). Как мы ранее определили, единица пересылки (пакет данных, сообщение и т.п.) в терминах TCP носит название сегмента. В заголовке TCP существует поле контррольной суммы. Если при пересылке данные повреждены, то по контрольной сумме модуль, вычленяющий TCP-сегменты из пакетов IP, может определить это. Поврежденный пакет уничтожается, а источнику ничего не посылается. Если данные не были повреждены, то они пропускаются на сборку сообщения приложения, а источнику отправляется подтверждение. Ориентация на соединение определяется тем, что прежде чем отправить сегмент с данными, модули TCP источника и получателя обмениваются управляющей информацией. Такой обмен называется handshake (буквально «рукопожатие»). В TCP используется трехфазный hand-shake:
Графически этот процесс представлен на рисунке 2.12.
Рис. 2.12. Установка соединения TCP После установки соединения источник посылает данные получателю и ждет от него подтверждений о их получении, затем снова посылает данные и т.д., пока сообщение не закончится. Заканчивается сообщение, когда в поле флагов выставляется бит FIN, что означает «нет больше данных». Потоковый характер протокола определяется тем, что SYN определяет стартовый номер для отсчета переданных байтов, а не пакетов. Это значит, что если SYN был установлен в 0, и было передано 200 байтов, то номер, установленный в следующем пакете будет равен 201, а не 2. Понятно, что потоковый характер протокола и требование подтверждения получения данных порождают проблему скорости передачи данных. Для ее решения используется «окно» — поле — window. Идея применения window достаточно проста: передавать данные не дожидаясь подтверждения об их получения. Это значит, что источник предает некоторое количество данных равное window без ожидания подтверждения об их приеме, и после этого останавливает передачу и ждет подтверждения. Если он получит подтверждение только на часть переданных данных, то он начнет передачу новой порции с номера, следующего за подтвержденным. Графически это изображено на рисунке 2.13.
Рис. 2.13. Механизм передачи данных по TCP В данном примере окно установлено в 250 байтов шириной. Это означает, что текущий сегмент — сегмент со смещением относительно SYN, равном 250 байтам. Однако, после передачи всего окна модуль TCP источника получил подтверждение на получение только первых 100 байтов. Следовательно, передача будет начата со 101 байта, а не с 251. Таким образом, мы рассмотрели все основные свойства протокола TCP. Осталось только назвать наиболее известные приложения, которые использует TCP для обмена данными. Это в первую очередь TELNET и FTP, а также протокол HTTP, который является сердцем World Wide Web. Прервем немного разговор о протоколах и обратим свое внимание на такую важнейшую компоненту всей системы TCP/IP как IP-адреса. 2.3. Принципы построения IP-адресовIP-адреса определены в том же самом RFC, что и протокол IP. Именно адреса являются той базой, на которой строится доставка сообщений через сеть TCP/IP. IP-адрес — это 4-байтовая последовательность. Принято каждый байт этой последовательности записывать в виде десятичного числа. Например, приведенный ниже адрес является адресом одной из машин РНЦ «Курчатовский Институт»: 144.206.160.32 Каждая точка доступа к сетевому интерфейсу имеет свой IP-адрес. IP-адрес состоит из двух частей: адреса сети и номера хоста. Вообще говоря, под хостом понимают один компьютер, подключенный к Сети. В последнее время, понятие «хост» можно толковать более расширено. Это может быть и принтер с сетевой картой, и Х-терминал, и вообще любое устройство, которое имеет свой сетевой интерфейс. Существует 5 классов IP-адресов. Эти классы отличаются друг от друга количеством битов, отведенных на адрес сети и адрес хоста в сети. На рисунке 2.14 показаны эти пять классов.
Рис. 2.14. Классы IP-адресов Опираясь на эту структуру, можно подсчитать характеристики каждого класса в терминах числа сетей и числа машин в каждой сети.
Рис. 2.15. Характеристики классов IP-адресов При разработке структуры IP-адресов предполагалось, что они будут использоваться по разному назначению. Адреса класса A предназначены для использования в больших сетях общего пользования. Адреса класса B предназначены для использования в сетях среднего размера (сети больших компаний, научно-исследовательских институтов, университетов). Адреса класса C предназначены для использования в сетях с небольшим числом компьютеров (сети небольших компаний и фирм). Адреса класса D используют для обращения к группам компьютеров, а адреса класса E — зарезервированы. Среди всех IP-адресов имеется несколько зарезервированных под специальные нужды. Ниже приведена таблица зарезервированных адресов.
Рис. 2.16. Выделенные IP-адреса Особое внимание в таблице (рисунок 2.16) уделяется последней строке. Адрес 127.0.0.1 предназначен для тестирования программ и взаимодействия процессов в рамках одного компьютера. В большинстве случаев в файлах настройки этот адрес обязательно должен быть указан, иначе система при запуске может зависнуть (как это случается в SCO Unix). Наличие «петли» чрезвычайно удобно с точки зрения использования сетевых приложений в локальном режиме для их тестирования и при разработке интегрированных систем. Вообще, зарезервирована вся сеть 127.0.0.0. Эта сеть класса A реально не описывает ни одной настоящей сети. Некоторые зарезервированные адреса используются для широковещательных сообщений. Например, номер сети (строка 2) используется для посылки сообщений этой сети (т.е. сообщений всем компьютерам этой сети). Адреса, содержащие все единицы, используются для широковещательных посылок (для запроса адресов, например). Реальные адреса выделяются организациями, предоставляющими IP-услуги, из выделенных для них пулов IP-адресов. Согласно документации NIC (Network Information Centre) IP-адреса предоставляются бесплатно, но в прейскурантах наших организаций (как коммерческих, так и некоммерческих), занимающихся Internet-сервисом предоставление IP-адреса стоит отдельной строкой. 2.4. ПодсетиВажным элементом разбиения адресного пространства Internet являются подсети. Подсеть — это подмножество сети, не пересекающееся с другими подсетями. Это означает, что сеть организации (скажем, сеть класса С) может быть разбита на фрагменты, каждый из которых будет составлять подсеть. Реально, каждая подсеть соответствует физической локальной сети (например, сегменту Ethernet). Вообще говоря, подсети придуманы для того, чтобы обойти ограничения физических сетей на число узлов в них и максимальную длину кабеля в сегменте сети. Например, сегмент тонкого Ethernet имеет максимальную длину 185 м и может включать до 32 узлов. Как видно из рисунка 2.15, самая маленькая сеть — класса С — может состоять из 254 узлов. Для того, чтобы достичь этой цифры, надо объединить несколько физических сегментов сети. Сделать это можно либо с помощью физических устройств (например, репитеров), либо при помощи машин-шлюзов. В первом случае разбиения на подсети не требуется, т.к. логически сеть выглядит как одно целое. При использовании шлюза сеть разбивается на подсети (рисунок 2.17). На рисунке 2.17 изображен фрагмент сети класса B — 144.206.0.0, состоящий из двух подсетей — 144.206.130.0 и 144.206.160.0. В центре схемы изображена машина шлюз, которая связывает подсети. Эта машина имеет два сетевых интерфейса и, соответственно, два IP-адреса.
Рис. 2.17. Схема разбиения адресного пространства сети на подсети В принципе, разбивать сеть на подсети необязательно. Можно использовать адреса сетей другого класса (с меньшим максимальным количеством узлов). Но при этом возникает, как минимум, два неудобства:
Разбиение сети на подсети использует ту часть IP-адреса, которая закреплена за номерами хостов. Администратор сети может замаскировать часть IP-адреса и использовать ее для назначения номеров подсетей. Фактически, способ разбиения адреса на две части, теперь будет применятся к адресу хоста из IP-адреса сети, в которой организуется разбиение на подсети. Маска подсети — это четыре байта, которые накладываются на IP-адрес для получения номера подсети. Например, маска 255.255.255.0 позволяет разбить сеть класса В на 254 подсети по 254 узла в каждой. На рисунке 2.18 приведено маскирование подсети 144.206.160.0 из предыдущего примера. На приведенной схеме (рисунок 2.18) сеть класса B (номер начинается с 10) разбивается на подсети маской 255.255.224.0. При этом первые два байта задают адрес сети и не участвуют в разбиении на подсети. Номер подсети задается тремя старшими битами третьего байта маски. Такая маска позволяет получить 6 подсетей. Для нумерации подсети нельзя использовать номер 000 и номер 111. Номер 160 задает 5-ю подсеть в сети 144.206.0.0. Для нумерования машин в подсети можно использовать оставшиеся после маскирования 13 битов, что позволяет создать подсеть из 8190 узлов. Честно говоря, в настоящее время такой сети в природе не существует и РНЦ «Курчатовский Институт», которому принадлежит сеть 144.206.0.0, рассматривает возможность пересмотра маски подсетей. Перестроить сеть, состоящую из более чем 400 машин, не такая простая задача, так как ей управляет 4 администратора, которые должны изменить маски на всех машинах сети. Ряд компьютеров работает в круглосуточном режиме и все изменения надо произвести в тот момент, когда это минимально скажется на работе пользователей сети. Данный пример показывает насколько внимательно следует подходить к вопросам планирования архитектуры сети и ее разбиения на подсети. Многие проблемы можно решить за счет аппаратных средств построения сети.
Рис. 2.18. Схема маскирования и вычисления номера подсети К сожалению, подсети не только решают, но также и создают ряд проблем. Например, происходит потеря адресов, но уже не по причине физических ограничений, а по причине принципа построения адресов подсети. Как было видно из примера, выделение трех битов на адрес подсети не приводит к образованию 8-ми подсетей. Подсетей образуется только 6, так как номера сетей 0 и 7 использовать в силу специального значения IP-адресов, состоящих из 0 и единиц, нельзя. Таким образом, все комбинации адресов хоста внутри подсети, которые можно было бы связать с этими номерами, придется забыть. Чем шире маска подсети (чем больше места отводится на адрес хоста), тем больше потерь. В ряде случаев приходится выбирать между приобретением еще одной сети или изменением маски. При этом физические ограничения могут быть превышены за счет репитеров, хабов и т. п. Назад | |
Содержание
- 1 Место в моделях OSI и TCP/IP
- 2 Сервисы IP
- 3 Формат заголовка IP-пакета
- 3.1 Номер версии
- 3.2 Длина заголовка
- 3.3 Тип сервиса
- 3.4 Общая длина
- 3.5 Идентификатор пакета
- 3.6 Время жизни
- 3.7 Тип протокола
- 3.8 Контрольная сумма
- 3.9 IP адрес получателя и отправителя
- 3.10 Опции
IP расшифровывается как Internet Protocol, часто его называют протокол интернет. Но строго говоря это не совсем так, правильный перевод межсетевой протокол или протокол межсетевого взаимодействия.

Протокол Ip возник задолго до того, как появилась и стала набирать популярность сеть, которую мы называем интернет. В англоязычной терминологии internetworking означает объединение сетей, и цель протокола ip как раз объединить сети, построенные с помощью разных технологий канального уровня. У этой терминологии словом internet называлась объединенная сеть, а subnet — подсеть или отдельная сеть. Словом Internet с большой буквы сейчас называется самая крупная объединенная сеть построенная по протоколу ip.
Место в моделях OSI и TCP/IP
В модели взаимодействия открытых систем и в модели TCP/IP протокол IP, находится на одном и том же уровне — сетевом.

Сетевой уровень стека протоколов TCP/IP включая также и другие протоколы кроме ip. Это ARP, DHCP и ICMP, но для передачи данных используется только протокол ip, остальные протоколы служат для обеспечения корректной работы крупной составной сети.

Сервисы IP
IP также, как и Ethernet обеспечивают передачи данных без гарантии доставки, не гарантируется как доставка, так и порядок следования сообщений. Протокол Ip так же как и Ethernet использует передачу данных без установки соединения.
IP пакет просто отправляется в сеть в надежде, что он дойдет до получателя, если пакет по каким-то причинам не дошел, не предпринимается никаких попыток оповестить отправителя, и также не предпринимается попыток запросить этот пакет снова. Считается, что ошибка должна быть исправлена протоколами, которые находятся на вышестоящих уровнях.
Задачей IP является объединение сети, построенных на основе разных технологий канального уровня, которые могут значительно отличаться друг от друга в одну крупную объединенную сеть, в которой компьютеры могут свободно общаться друг с другом не взирая на различия конкретной сетевой технологии. Вторая важная задача протокола IP, это маршрутизация, то есть поиск маршрута от отправителя к получателю в крупной составной сети через промежуточные узлы маршрутизаторы. Также IP обеспечивает необходимое качество обслуживания.
Формат заголовка IP-пакета
Для того чтобы понять, как протокол IP реализует эту задачу, рассмотрим формат заголовка IP пакета.

Номер версии
Первое поле номер версии. Сейчас используется две версии протокола IP 4 и 6. Большая часть компьютеров использует IPv4. Длина адреса в этой версии 4 байта. Формат адреса IP версии 4 мы рассматривали подробно. Проблема в том, что адресов IPv4, четыре с небольшим миллиарда, что уже сейчас не хватает для всех устройств в сети, а в будущем точно не хватит. Поэтому была предложена новая версия IPv6 в которой длина IP адреса составляет 16 байт. Сейчас эта версия вводится в эксплуатацию, но процесс занимает очень долгое время.
Длина заголовка
Следующее поле длина заголовка. В отличии от Ethernet заголовок IP включает обязательные поля, а также может включать дополнительные поля, которые называются опции. В поле длина заголовка записывается полная длина, как обязательной части, так и опции.
Тип сервиса
Следующее поле тип сервиса. Это поле нужно для обеспечения необходимого качества обслуживания, но сейчас на практике используется очень редко.
Общая длина
Следующее поле общая длина. Общая длина содержит длину всего IP пакета, включая заголовок и данные. Максимальная длина пакета 65 535 байт, но на практике такие большие пакеты не используются, а максимальный размер ограничен размером кадра канального уровня, а для Ethernet это 1 500 байт. В противном случае для передачи одного IP пакета необходимо было бы несколько кадров канального уровня что неудобно.
Идентификатор пакета
Поля идентификатор пакета, флаги и смещение фрагмента используются для реализации фрагментации.
Время жизни
Дальше идет поле время жизни. Время жизни Time To Live или TTL — это максимальное время в течение которого пакет может перемещаться по сети. Оно введено для того чтобы пакеты не гуляли по сети бесконечно, если в конфигурации сети возникла какая-то ошибка. Например, в результате неправильной настройке маршрутизаторов в сети, может образоваться петля. Раньше, время жизни измерялось в секундах, но сейчас маршрутизаторы обрабатывают пакет значительно быстрее чем за секунду, поэтому время жизни уменьшается на единицу на каждом маршрутизаторе, и оно измеряется в количествах прохождения через маршрутизаторы по-английски (hop) от слова прыжок. Таким образом название время жизни сейчас стало уже некорректным.
Тип протокола
После времени жизни, указывается тип протокола следующего уровня. Это поле необходимо для реализации функции мультиплексирования и демультиплексирования, то есть передачи с помощью протокола IP данных от разных протоколов следующего уровня. В этом поле указывается код протокола следующего уровня, некоторые примеры кодов для TCP код 6, UDP — 17 и ICMP — 1.
Контрольная сумма
Затем идет контрольная сумма, которая используется для проверки правильности доставки пакета, если при проверке контрольные суммы обнаруженные ошибки, то пакет отбрасывается, никакой информации отправителю пакета не отправляется. Контрольная сумма рассчитывается только по заголовку IP пакета и она пересчитывается на каждом маршрутизаторе из-за того что данные в заголовке меняются. Как минимум изменяется время жизни пакета, а также могут измениться некоторые опции.
IP адрес получателя и отправителя
После контрольной суммы идут IP адрес отправителя, и IP адрес получателя. В IPv4 длина IP адреса четыре байта, 32 бита на этом обязательная часть IP заголовка заканчивается, после этого идут не обязательные поля которые в IP называются опции.
Опции
Некоторые примеры опций. Для диагностики работы сети используется опция — записать маршрут, при которой в IP пакет записывается адрес каждого маршрутизатора через которую он проходит.
И опция — временные метки, при установке которой, каждый маршрутизатор записывает время прохождения пакеты.
Также опции позволяют отказаться от автоматической маршрутизации, и задать маршрут отправитель:
- Это может быть жесткая маршрутизация, где в пакете явно указывается перечень маршрутизаторов через которые необходимо пройти.
- И свободные маршрутизации в этом случае указываются только некоторые маршрутизаторы, через которые пакет должен пройти обязательно, также при необходимости он может пройти через другие маршрутизаторы.
Опции в заголовке IP может быть несколько и они могут иметь разный размер. В то же время длина IP заголовка должна быть кратна 32, поэтому при необходимости, в конце IP заголовок заполняются нулями до выравнивание по границе 32 бита. Следует отметить, что сейчас опции в заголовке IP почти не используются.
В статье был рассмотрен протокол IP (Internet Protocol) — протокол межсетевого взаимодействия. Протокол IP является основой интернета. В OSI находится на сетевом уровне.









