Icmp сообщение об ошибке посылается если ошибка возникла при передаче ip пакета

�� ��� ������, ��� ���������� �������� ������������ ���������� �������� �������� ��� ������������ ����������, � ��� ����������� ������������ �� ����� � ����� �� ��� ���, ���� ��� �� ��������� �����, ������� ����� �������� ��������� �� � ��������� ����� ����������. ���� ���� �� ����� ���������������� ��� ��������� �����������, ��� ���� ���� ��������� ��������� ������� ��� ������, ����� ��� ������������ ����, �������� �� ��� ����������� ���������� �����������, ��� ����� �������� ��������������� ���������, ��� ��������� ����������� �������� ��� ������� ��������� ��������. ��� ����� ������������� ��������, ������������ ������� � ��� ��� �������� ����������� ���������� � ���������� �� �������. �� ������, ��� ����� ���������� ���� ��������, ����� �������� � ��������� ��� ��������, � ��� ��� ���������� ��� ��� �������� ������������ ����������.

����� 9 ����������
��������: ������ � �����������
���������(ICMP)

  • 9.1 ��������
  • 9.2 ���������� ��������
    ����������� ���������
  • 9.3 ��������� �� ������
    ������ ����������� ������
  • 9.4 �������� ���������
    ICMP
  • 9.5 ������ ��������� ICMP
  • 9.6 ������������
    ������������ ���������� � ���
    ���������
  • 9.7 ������ ���������
    ������� ��� � ������ ���
  • 9.8 ��������� �
    �������������� ����������
  • 9.9 ���������� �������
    ���������� � ������������ ����
  • 9.10 ������ ����������
    ���������
  • 9.11 ������� ���������
    �������� �� ������
  • 9.12 �����������
    ����������� ��� �������
    ������� �����
  • 9.13 ��������� � ������
    ���������
  • 9.14 �������������
    ����� � ������ �������
    ��������
  • 9.15 ��������� �������
    � ������ ����������
  • 9.16 ��������� �����
    �������
  • 9.17 �����
  • ��� �����������
    ��������
  • ����������

9.1 ��������

�� ��� ������, ��� ����������
�������� ������������ ����������
�������� �������� ��� ������������
����������, � ��� �����������
������������ �� ����� � ����� ��
��� ���, ���� ��� �� ���������
�����, ������� ����� ��������
��������� �� � ��������� �����
����������. ���� ���� �� �����
���������������� ��� ���������
�����������, ��� ���� ����
��������� ��������� ������� ���
������, ����� ��� ������������
����, �������� �� ��� �����������
���������� �����������, ��� �����
�������� ���������������
���������, ��� ���������
����������� �������� ��� �������
��������� ��������. ��� �����
������������� ��������,
������������ ������� � ��� ���
�������� ����������� ���������� �
���������� �� �������. �� ������,
��� ����� ���������� ���� ��������,
����� �������� � ��������� ���
��������, � ��� ��� ���������� ���
��� �������� ������������
����������.

9.2 ���������� ��������
����������� ���������

� ������� ��� ������������
����������, ������� �� �������,
������ ���� �������� ��������� ���
������������� ��� ��������
����������� ����������, ��
����������� ���� �������� �
�������� ������������. ��� �������
������ ��������, ���� ���
������������� ��������� �
����������� �������������, �� ����
�� ���������� ������, ���������
���������� ��� �����. ������ �����
����� �������� � �����������, IP
�������� ��������� ��������
����������, ����� ������
���������� �������� ��� ���������
��������� �� ����, ����� ����������
������� ������� �����, ��� �����
������������� ����� ���
�������������, ��� �� �����
���������� ���������� �������.
������ �������� ����� ��������,
���������� ����� � ����������,
���������� �� �����������
�����������, ����������� � ���, ���
� ������ ����������� ����� �����
���������� �� ������� ������������
��� ��������� �� ����� �
������������� �������. � ���������,
�� ������� ������ �����������
���������, ����������� �� �����
�������, ������ �� �������� ������
��� �������� ���� �� ���������
������ ��� ���������. �������
���������� ������ �������. � �����
��������� IP ��� ������, ��� ����� ��
������ ����������� ���������
��������� ��� ������ � �����
�������.

����� ���� ����������� ������ �
��������� �������� �� ������� ���
������������� ���������� �
������������� �������� ������,
������������ �������� ��������
��������� ������������ ����������
� ��������� TCP/IP. ���� ��������,
��������� ��� ���������� ��������
����������� ���������(ICMP),
��������� ����������� ������ IP �
������ ���������� � ������
���������� IP.

��� � ���� ������ �������,
��������� ICMP ���������� ��
��������� � ���� ������
IP-����������. �������� �����������
��������� ICMP, ��� �� �����, ��������
�� ���������� ��������� ���
������������ �� ������ ����������,
� ����������� ����������� IP �� ����
������. �� ����, ����� ���������
��������� ICMP �� ������, ���
������������ ������ ������������
����������� ICMP. �������, ���� ICMP
���������, ��� ������ ���� �������
���������� ���������� �����
�������� ������ ��� ����������
����������, �� ������� �� ����
���������������� ������. ��������
�����:

���������� �������� �����������
��������� ��������� ������
�������� ����������� ��������� ���
��������� �� ������� �� ������
����� ��� ���; ICMP ������������
�������������� ����� �����������
������������ �����������
��������� ������ �����.

������������� ������������� ���
�������������� ������ �����������
�������� � �������� ������
�������� ���, ICMP �� ������������
������ ��� ������. ���� �����������
������������ �������������
��������� ��������� ICMP, �����
������ ����� ������� ��������� ICMP
�� ����� ������ ������. �������, ���
����� ������������ ICMP ��� ����� ��
������ ��� ������ ���. �������
������ �� ���������� ���
������������ ICMP ����������� � ���,
��� �� ������������ �������
��������, ������������ ��� ����
����������� � ��������������
���������.

9.3 ��������� �� ������
������ ����������� ������

������ ����������� ������, ICMP —
��� �������� ��������� �� �������.
�� ������������ ��� ������,
�������������� ������, ������
�������� �� ������ ���������������
���������. ���� ������������
��������� ���������� ����������
������� ������������� ICMP �
���������� �������� ���������
�������� � ����� �� ������, ICMP ��
������������� ��������� ��������,
������� ����� ����������� � �����
�� ��� ��������� ������. ������
������:

ICMP ������ �������� � ���������
������� ��������������� ���������;
�������� ��� ������ ������� ������
� ����������� �����������
����������� � ����������� ��������
�� ����������� ������.

������� ����� ������ ������� ��
��������������� ���������, ��
������ — ���. ��� ��� ICMP �������� ��
������� ��������������� ���������,
�� �� ����� ��������������, �����
������������� ������������� �����
�� �������. ��������, ����������,
��� ����������� ������� �� ����
����� ����� G1,G2,…,Gk. ���� Gk ��������
������������ ���������� �
��������� � �������� ��������
����������� �� ���� G�, �� Ge �����
���� �������� �� ������
��������������� ���������. �
���������, �������� �� �������� ��
��� �������� � �� ����� ���������
����������� ������� ���� ������.
����������, �������� �� ������ ����
����������, ����� ���� ������ ���
��������.

����� ������������ ICMP
��������������� � ��������������
���������� ? ����� ������ ����
��������, ���� ���������
������������ ���� ��������
����������� � ������������� �
���������� ������. �����������
�������� ����, ������� ����������
������ ��������������� ��������� �
��������� ����������; ��� ��
�������� ������� �������� ������
���� ����� ��������(�����
��������� �������, �����
������������ ����� ������
��������).

����� ����, ��� ��� ����� �����
��������� � ������ ���� �������
�������������, �� ����������
����������� ������������� � �����.
�������, ����� �����������
��������� ������� �����, ������
������, ����� ���� ��� ������ ��
�����. ���� ���� ������������
������, �� �� ����� ������ �����
������������� ������ ������������
��� �����������, � ������� �� �����
�������� �� �� ������. ������
�������� �������� ����������� ����
���� ���������� ICMP, ����� ��������
��������������� ��������� �
��������� ��������, �������� �� ��,
��� �������������� ��� �����
����������������� �
���������������� ����, �����
������������ � ��������� ������.

9.4 �������� ��������� ICMP

��������� ICMP ������� ���� �������
������������, ��� �������� ��
������� 9.1. ������ ��������� ICMP
���������� �� ��������� � ����
������ IP-�����������, ������� ����
���������� �� ������ ����������
���� � ���� ������ �����.
�����������, ������� ��������� ICMP
���������������� ����� ��� ��, ���
� �����������, ������� ����������
��� �������������; ��� ��� ��
������������ ��������������
��������� ��� ����������. �������,
���� ��������� �� ������� �����
���� �������� ��� �������. �����
����, � ��� ������������� ����
��������� �� ������� ����� �������
�������������� ������������.
���������� �������� ��� ��������
��������� ������, ����
IP-�����������, ������� ���������
ICMP, ������� ������. ��� ����������,
������������� ��� ����, �����
�������� �������� ���������
��������� �� �������, ��������� �
���� ������� ����������� ��
�������, ����������, ��� ���������
ICMP �� ������������ ��� ������,
����������� ��-�� ����������,
������� ��������� �� ������� ICMP.

                    --------------------------------------
                    |���������  |    ������  ICMP       |
                    | ICMP      |                       |
                    --------------------------------------
                    V                                   V
         -------------------------------------------------
         | ���������|    ������� ������ �����������     |
         |����������|                                   |
         -------------------------------------------------
         V                                              V
-----------------------------------------------------------
|���������|        ������� ������ �����                  |
|�����    |                                              |
-----------------------------------------------------------

������� 9.1 ��� ������
������������ ICMP. ��������� ICMP
��������������� � IP-�����������,
������� � ���� �������
��������������� � ����� ���
��������. ��� ������������� ICMP ����
��������� ����������� ��������
�������� 1.

����� �������, ��� �������� �� ��,
��� ��������� ICMP ��������������� �
����������, ��������� IP, ICMP ��
��������� ���������� �����
�������� ������ — �� ��������
����������� ������ IP. �������
������������� IP ���
��������������� ��������� ICMP
����������� � ���, ��� ��
������������ �������� ���������
���������� ����� ��� ����, �����
������� ������ ���������
����������. �������, ��� �� �����
���� ���������� ������ � �������
���������� ��������.

9.5 ������ ��������� ICMP

���� ������ ��������� ICMP �����
���� ����������� ������, ��� ���
���������� � ���� ���������� �����:
8-�������� �������������� ���� ���,
������� �������������� ���������,
8-�������� ���� ���, �������
������������ ����� ������
���������� � ���� ���������, �
16-�������� ����
�����������_�����(ICMP ����������
��� �� ����� ���������� ��������,
��� � IP, �� ����������� ����� ICMP
��������� ������ ��������� ICMP).
������ ����, ��������� ICMP,
���������� �� �������, ������
�������� ��������� � ������ 64 ����
������ �����������, ���������
������.

�������� ����������� �� ������
��������� �����������, ���������
������, �������� ������� ���������
���������� ����� ����� ����������,
����� ��������� � ����� ����������
��������� ������������ ��
��������� ���� �����������. ��� ��
������ �����, ��������� �����
�������� ������ � ������ TCP/IP
��������������� ����� �������, ���
����������� ����������
������������ � ������ 64 �����.

���� ��� ICMP ���������� �����
���������, � ����� ��� ������. ���
���� ��������:

���� ��� ��� ��������� ICMP
0 ����� �� ���
3 ���������� �����������
4 ���������� ���������
5 ��������������(���������
��������)
8 ������ ���
11 ��������� ����� ���
�����������
12 ������ ��������� �
�����������
13 ������ ��������� �������
14 ����� ��� ��������� �����
15 ������ ����������(��
���������)
16 ����� �� ������
����������(�� ���������)
17 ������ ����� ������
18 ����� �� ������ ����� ������

��������� ������ ���������
������ �� ���� ���������, �������
��� ���� ��������� ��������
������� ��������� � �� �����.

9.6 ������������
������������ ���������� � ���
���������

��������� TCP/IP ������������
��������, ���������� �������
��������������� ��� �������������
���������������� �������� � ����.
���� �� ����� ��������
������������ ������� �������
�������� ��������� ICMP ������ ��� �
����� ���. ��� ��� ���� ��������
��������� ������� ��� ����������
����� ����������. ����� ������,
���������� ������ ���, ����������
����� �� ��� � ���������� ���
��������������� �����������. ����
������ �������� ��������������
������� ������; ����� ��������
����� ������, ��������� � �������.
������ ��� � ��������� � ��� �����
����� �������������� ��� ��������
������������ ���������� � ���
����������� �������� �� �������.
��� ��� � ������ ���, � ����� �� ����
���������� � IP-������������,
�������� ����� ������
��������������� �
����������������� �������� ������
������������ �������. ��-������,
����������� ����������� IP ��
������ ��������� ���������
������������� �����������.
��-������, ������������� �����
����� ���������� � �����������
�������������� � ���������
�������������� �����������.
�-�������, ������ ����������
�������� (�� ������� ����, ���
������������ ����������) �
����������� ����������� ��� IP, ���
� ICMP ��������� ���� �������. �
�������, ������� ��������� � ������
�� ���� �������� ���� ���������.

�� ������ �������� �������,
������� ������������ �������� ���
������� ������� ��� ICMP, ����������
ping. ����������� ������ ����
��������� �������� ����� ��������
��� ICMP, ��������� ������ � ������
���������� � ������� ����������.
��� ��������� ������������
��������� ����� ���������� ������
� ��������� ������� �����
���������. ����� ������� ������
������ �������� ������ ��� ICMP �
���� ������.

9.7 ������ ���������
������� ��� � ������ ���

������� 9.2 �������� ������
��������� ������� ��� � ������ ��
������ ���.

0            8            16
------------------------------------------------------------
|���(8 ��� 0)| ���(0)      |   ����������� �����          |
------------------------------------------------------------
|    �������������         | ���������������� �����       |
------------------------------------------------------------
|         �������������� ������                           |
------------------------------------------------------------
|                   ......                                |
------------------------------------------------------------

������� 9.2 ������
��������� ������� ��� � ������ ��
����

����, ��������� ��������������
������ ����� ���������� ����� �
�������� ������, ������� ����
������� �����������. ����� �� ���
������ ���������� �� �� �����
������, ��� ���� �������� �� �
�������. ���� ������������� �
���������������� �����
������������ ������������ ���
�������� ������������ �������
��������. �������� ���� ���
����������, �������� �� ���������
��������(8) ��� �������(0).

9.8 ��������� �
�������������� ����������

����� ���� �� ����� ���������
IP-�����������, �� ��������
��������� «����������
�����������» �������
��������������� �����������,
��������� ������, ����������� ��
������� 9.3.

0            8            16
------------------------------------------------------------
|���(3)      | ���(0-5)    |   ����������� �����          |
------------------------------------------------------------
|    �� ������������(������ ���� ����� ����)              |
------------------------------------------------------------
| ���������� ��������� ���� ������ 64 ���� �����������    |
------------------------------------------------------------
|                   ......                                |
------------------------------------------------------------

������� 9.3 ������
��������� � ��������������
����������

���� ��� � ��������� �
�������������� ����������
�������� ����� �����, �������
��������� �������. ��������
��������� ��������:

�������� �����
0 ���� �����������
1 ��� ����������
2 �������� ����������
3 ���� ����������
4 ��������� ������������
5 ������ ��� �������������
���������
6 ���� ���������� ����������
7 ��� ���������� ����������
8 ��� ��������� ����������
9 �������������� � �����
���������� ���������������
���������
10 �������������� � ���
���������� ���������������
���������
11 ���� ����������� �� ������
������������
12 ��� ���������� ��-�� ������
������������

���� IP �������� ����������
���������� ��������, �����������
�� ������������ ������ ���. ������
���, ����� ������ ������ �����
���������� ������������� ���
�������� �����������, ����
�������� ��������� �
�������������� ���������� �������
��� ���������, � ����� ����������
�����������. ������ ��������������
���� ������ �������� ����������
������ �������������; ������
�������������� ��� — ���������
������ ��� ��������(�����������
�������� ������, ����� �����
���������� ����� ���������
��������, ��������� � ����� 16. ���
�������� �� ������ ���
������������� � ������� � �������
��������� ICMP � �������������� ���).
��� ��� ��������� ��������
�������� ������� �����������,
��������� ������, �� �������� �����
����� �����, ����� �����
����������.

���������� ����� ����
������������� ��-�� ����, ���
������������ ���� ��������
����������������, ��-�� ����, ���
����������� ������ ��������������
����� ����������, ��� ( � ������
�������) ��-�� ����, ��� � ����� ��
������� �������� � ���� ����������.
�������, ��� ���� ����� �������� ��
�������, ������� ��� ����������,
��� ����� �� ����� ��� ���� �������
��������. ��������, ���� ������
���������� ������������ � ����
Ethernet, �� ������� ������������ ��
������������� �������������
��������� �����������. �������,
���� ����� ���������� ��������
������ ���������� ���� ����� ����,
��� ��� ���������, �� ������� ���
���� ������� ���������� � ���, ���
������ �� ������������. ��������
�����:

���� ����� �������� ��������� �
�������������� ����������, ����
��� �� ����� ����������
������������� ��� ��������
�����������, �� ��� �������� ������
��������������.

����� ��������� � ��������������
����� � ��������� ������ ����,
����� �� ������, ��� ���������
����� �������� ������ ����������
���������� ����� ���������,
���������� ������. ����� �������
����� ��������� ��������� �������
��� �� �� ��������. ����
����������� �������� �����
������������� ��������� �
������������ ���������, �� ���
����� �������� � ���������
��������� �� ������ �������������
���������. ���� ����� �����
��������������� �����������, ��
���������� ��� «��
���������������», �� ����
�������� ��������� «���������
������������» ������� ���������.

9.9 ���������� �������
���������� � ������������ ����

��� ��� IP �������� ���������� ���
������������ ����������, �� �����
�� ����� ������������� ������ ���
���������������� ������� ��
��������� ����������. � ����������,
������� ����� ������� ����������
������, ��������, ����������
������������� ����(congestion). �����
��������, ��� ������������ ����
����� ��������� ��-�� ����
���������� ������ ������.
��-������, ����������������
��������� ����� ������������
������� �������, ��� ���� �����
���������� ���. ��������,
���������� ��������������,
������������ ���������� �������.
������������, ���������� ��, �����
������������� �������� � ��������
����� �� ��������� ����������
����(WAN), ���� ��� ��������������
����� ���� ����������� �
���������������� ��������� ����.
������������ ����� ��������� �
�����, �������������� � ����������
����, ��� ��� ����������� �����
��������� �������, ��� �� �����
�������. ��-������, ���� ��������
����� ����������� ������������
����� �������� ����������� �����
���� ����, ���� ���� �����
��������� �������������, ���� ��
���� �������� � ����������� � ��
�������� ��� ��������.

����� ����������� ��������� ��
���� ��� ��� �������, ��� ��
�������� �� ������������, ��
�������� ������ �� � ������� �
����� ������. ���� ��� ����������� —
��� ����� ���������� ���� ���
�������� ����������, �� �����
����������� ������ ��������. ����
�� ������� ���������� ���������, ��
�� � �������� ����� ��� ��� ����
������ ��� ������ ��� ������� �
�������� ����� ������� �����
����������� �����������. �����
������ ���������� ��������� �
���������� ��������� ��� ������ ��
��������� ������������.

��������� � ���������� ���������
������� �� ��������� ���������
�������� �������� ����������.
������ ������������� �����
�������� �� ������ ��������� �
���������� ��������� �� ������
��������� �����������. ����� �����
����� ������������ ����� �������
���������� ������ �� ������������.
��������� ��������� �� ����������
��������� � ��������� ��������� �
���������� ���������� ��������.
������ �������� ��������
������������ � ��������, �������
������� ���������� ��������� � ���
������, ����� �� ������� ��������
����������� ������� ��������, �� ��
����, ��� ��� ������������.

�� ���������� ��������� ICMP,
����������� ������, ��������
���������� ���������. ������ �����
���, ��������� ��������� �
���������� ��������� �� ���������
������, �, ������� ��������, �
������� �� �������� ����������� ��
� �� ��� ���, ���� � ���� ��
���������� ��������� ��������� �
���������� ���������; ����� ��
���������� ����������� �������� ��
��� ���, ���� �� ����� �� �������
��������� � ���������� ���������.

9.10 ������ ����������
���������

������ ������� ����� ICMP ���, ��� �
����������� �����, �
��������������� 32-�������� ����,
��������� � ���������� ���������
����� ����, ���������� �������
�����������. ������� 9.4
������������ ���� ������. ��� � �
������ ���������� �� ������� ICMP
���� �������� ����������� ��������
������� �����������, ���������
���� ������ ���������� ���������.

0            8            16                              31
------------------------------------------------------------
|���(4)      | ���(0)      |   ����������� �����           |
------------------------------------------------------------
|    �� ������������(������ ���� ����� ����)               |
------------------------------------------------------------
| ���������� ��������� ���� ������ 64 ���� �����������     |
------------------------------------------------------------
|                   ......                                 |
------------------------------------------------------------

������� 9.4 ������
��������� � ���������� ���������
ICMP. ������������� ����� ��������
���� ��������� � ����������
��������� ������ ���, ����� ���
������� �����������; �������
����������� ��������������
��������� �����������.

9.11 ������� ���������
�������� �� ������

������� ������������� ���������
������ �� �������� � �������
�������� ���������� �������. ���
�������������� �� � ������� �����
������������ ��� �������� �������,
� ������� �������������� ����
������� ������ � ��� ��������� ���
���������� ������. ��� ���������
��������� ���� �������
������������� � ��� ��� ����� �����
����� �������������. ���������
����� ���� ���������(��������,
����� �������� �����������
������������) ���
����������(��������, ����� �����
���� ����������� � ���������). ���
�� ������ �����, ����� ������������
������������ ����������� �
�������������, ����� �����������
��������� � ���� � ������������
������ ��������. ������� �����
�������������� ����� �������:

��������������, ��� ����� �����
���������� ��������; ��� ��������
��������, ���� ������� ���������� �
���������, �� ������������ ������
����� �������� �� ������.

����� ������ ��������������
����� ������� � ����� ��������
������������ ���������� �
������������� � ����� ������������
������� ���, � ���������
������������ ��� �����������
������� ���������� �
�������������, ����������� ���
�������������� (��������, �����
������ �����). ������� ��� ��������
��������, ���� �����������
����������, � ���������� �� ��, ���
����� ������� �������� ��� �������
�������������. ���� ����
������������, ��� ��� ����������
������������� �������, �� ��������
��� ��������� ICMP, ����������
«���������������»,
������������� ��������� �������� �
������� ������������� ���. ����
���� ����� ���������� ��������
����������� � �� ����������.
������������� �����
�������������� ICMP �������� ��
��������: ��� ��������� ��� �����
������� ����� ������ ������ ����� �
��������� ����. ���� ��������� ����
���������� ��������� ICMP �
�������������� ������ ���, �����
��� �������� �����������, ���
������� ���������� ������ �������.
������� ������������� ���
��������� ���������, �� �����
��������� ����������� �������� ���
���� ������������ ����������.

��������� � ��������������, ���
�� �����, �� ������ ��������
��������������� ���������� �
��������� ���������, ��� ��� ���
������������� ������ ���
�������������� ����� ������ � ��� �
����� ���������� ����. ������� 9.5
������������ ��� ��������.
�������� ������� ��������������,
��� �������� � ��������
����������� ���������� �. �����
���� �1 ����������� ����������
����������� ����� ���� �2 ������
����� �4(�� ���� �1 �� ������ ������
����� ������� ����). ����� ���� �5
��������� �����������, �� �� �����
������� ��������� ��������������
ICMP �1, ��� ��� �� �� ����� �����
����� �1. ����������� �����
���������� ��������, ���
���������������� ���������� �
��������� ����� �����������
������.

          |   --  |  --  |
     --   |--|�1|-|-|�2|-|  --  |        |
    | �|--|   --  |  --  |-|�3|-|    --  |
     --   |       |         --  |---|�5|-|   --
          |       |     --      |    --  |--| �|
          |       |----|�4|-----|        |   --
          |       |     --      |

������� 9.5 ��������� �
�������������� ICMP �� ��������
������������� ����� �������. � ����
������� ���� �5 �� ����� ���������
�1 ������������ ����� �������� ����
��� ���������� ����� � � �.

������ �����-���������� ���, ��� �
����������� �����, ������
��������� � ��������������
�������� 32-������� ���� ����������
����� ����� � ���� �������
�����������, ��� ��� �������� ��
������� 9.6

0            8            16                              31
------------------------------------------------------------
|���(5)      |���(�� 0 �� 3)|   ����������� �����          |
------------------------------------------------------------
|     ���������� ����� �����                               |
------------------------------------------------------------
| ���������� ��������� ���� ������ 64 ���� �����������     |
------------------------------------------------------------
|                    ......                                |
------------------------------------------------------------

������� 9.6 ������
��������� � �������������� ICMP

���� ���������� ����� �����
�������� ����� �����, �������
������ ������������ ��� ���
����������� ����������� �
����������, ���������� � ���������
�����������. ���� ����������
��������� �������� ��������� IP �
��������� 64 ���� �����������,
������� ������� � ��������� �����
���������. ������� ���, �����������
��������� � �������������� ICMP,
������ �������� ����� ����������
����������� �� ��������
�����������. ���� ��� � ��������� �
�������������� ICMP ����� ���������
���������, ��� ����������������
����� ����������, ��� ���� ��������
����� ��������� �����:

�������� ���� ����� ���������
0 �������������� ����������
��� ���� ����(��������)
1 �������������� ����������
��� ����� ���
2 �������������� ����������
��� ����� ���� ������� � ����
3 �������������� ����������
��� ����� ���� ������� � ���

���������. ��������, ���
������ ��������� IP ��������� ���
�������, ������������� ���
�������������

��� �������, ����� ��������
������� �������������� ICMP ������
�� ���, � �� �� ������ �����. �����
�� ������, ��� ����� ����������
������ ��������� ��� ������
����������� � �������������.

9.12 �����������
����������� ��� ������� �������
�����.

��� ��� ���������� �����
��������� ����� ��������� ������
��� ����������� ����������� ��
������ ��������� ������, ������ �
������� ������������� �����
�������� � ����� ������������� �
��������� ����� ����������, D. ����
������������� ����� �������� ��
���� ������, ������ �� �������
���������� ����������� � �������
���������� D ������� �����, ���
����� �������� �� �������� �����
������. ����� ��������� ������
��������� ���� �������������,
������ �� ��� ����������
����������� � ����������� � �
���������� ����� �� �����. ����
����������� ������ � ����
�������������, ��� �����
������������ �� ���� ����������.
��� ���� �������� �����, ��� ������
���������� �� ������������
������������ �� ��������� TCP/IP
������ ����������� ����� �������
����� �����, ������ ����������
����� �������. ���� ��������������
������� ������� ����� ������ ���,
����� �� ������������ �����������,
� ������� �����������, �����
������� ���������� �������.

���������� �� ����, ������ �� ����
����������� ��-�� ���������
�������� ������� ����� ��� ��-��
���������� ������� ��������
���������� �����������, ��
�������� ��������� ICMP «���������
�����» ��������� �����������,
��������� ������, ���������� ��
������� 9.7

0            8            16                              31
------------------------------------------------------------
|���(11)     |���(0 ��� 1)  |   ����������� �����          |
------------------------------------------------------------
|     �� ������������(������ ���� �����)                   |
------------------------------------------------------------
| ���������� ��������� ���� ������ 64 ���� �����������     |
------------------------------------------------------------
|                   ......                                 |
------------------------------------------------------------

������� 9.7 ������
��������� ICMP � ���������� �������.
���� �������� ��� ��������� ������
���, ����� ������� �����������
��-�� ��������� ���� ������� �����
� ��������� ����������� ��� ��-��
��������� ������� ������ ���
�������� ���������� �����������.

���� ��� ��������� �������
���������:

�������� ���� �����
0 ��������� �������� ��������
������� �����
1 ��������� ����� ��������
��������� ��� ������

������� ���������� ��������
������ ����� ���� ����������
�����������. ����� ���������
������ �������� �����������,
����������� ��� ��������� ������ �
������� ������� ��� ��������� ��
������� ���� ����������
�����������. �������� ���� 1
������������ ��� ����, �����
�������� ����������� � �����
������; ��� ������ ������
���������� ��������� ���������.

9.13 ��������� � ������
���������

����� ���� ��� ��� ������������ �
���������, ��������� �
������������, �� �������������� �
����� ��������� ��������� ��
������� ICMP( ��������, ������������
��������� �����������), �� ��������
��������� «������ ����������»
��������������� �����������. �����
�� ��������� ������ ����� ��������
����� ���� ��������������
���������� �����. ���������, ������
�������� �������� �� ������� 9.8,
���������� ������ � ��� ������,
���� ����������� ������ ����
������� ��-�� ���� ������.

0            8            16
------------------------------------------------------------
|���(12)     | ���(0 ��� 1) |   ����������� �����          |
------------------------------------------------------------
|���������   |  �� ������������(������ ���� ����� ����)    |
------------------------------------------------------------
| ���������� ��������� ���� ������ 64 ���� �����������     |
------------------------------------------------------------
|                   ......                                 |
------------------------------------------------------------

������� 9.8 ������
��������� ICMP ������ ����������.
����� ��������� ���������� ������
� ��� ������, ����� ��-�� ����
������ ����������� ���������.

��� ������������� ���������
����������� ���������� ����
��������� � ��������� ���������
��� ������������� ������ �
�����������, ���������� ������. ���
1 ������������ ��� ������, �����
��������� ����� �����������(
��������, ����� ����������� �
������� �����); ���� ��������� ��
������������ ��� ���� 1.

9.14 ������������� ����� �
������ ������� ��������

���� ������ � ��������� �����
�����������������, ������ ���
�������� ���������� ���� �� �����,
������ � ������ ������ ���� �������
� ������� �������. ������
������������ ���� ����� �������
������������� ��������������
������. ���� ���������� TCP/IP
�������� ��������� ����������,
������� ����� �������������� ���
������������� �����. ���� ��
���������� ���������� ����������
��������� ICMP ��� ���������
�������� ������� �� ������ ������.
������������� ������ ��������
��������� ICMP «������ ���������
�����» ������ ������, ������, ���
������ ������ ������ �� �������
�������� �������. �����������
������ ���������� «�����
��������� �����» ������,
�������� ������. ������� 9.9
���������� ������ ���������
������� � ������ ��������� �����.

0            8            16
------------------------------------------------------------
|���(13, 14) | ���(0)      |   ����������� �����           |
------------------------------------------------------------
|    �������������         |  ���������������� �����       |
------------------------------------------------------------
| ���������� ��������� ���� ������ 64 ���� �����������     |
------------------------------------------------------------
|            ��������� ����� �����������                   |
------------------------------------------------------------
|            ��������� ����� ������                        |
------------------------------------------------------------
|            ��������� ����� ��������                      |
------------------------------------------------------------

������� 9.9 ������
��������� ICMP ������� � ������
��������� �����

���� ��� ��������������
��������� ��� ������(13) ��� �����(14);
���� ������������� �
���������������� �����
������������ ���������� ��� �����
����� �������� � ���������.
���������� ���� �������������
�������, ��������� � �������������
����� ��������, �� ��������. ����
��������� ����� �����������
����������� ��������������
������������ ����� ���������
������, ���� ��������� ����� ������
����������� ����� ����� ������
�������, � ���� ��������� �����
�������� �����������
��������������� ����� ���������
������.

��� ���������� ��� ��� ����
��������� ����� ��� �����������
���������� ������� �������� �����
���� � ������������� ����� �����.
��� ��� ����� �������� ����
��������� ����� �����������, ���
����� ��������� ����� �����,
��������� ��� �������� ������� �
����������, ������������ ������ ��
���� � ����������� ������. ��� ���
����� �������� ��� ����� �������
������� �� ��������� ������, ��� �
����� ������ ������, ��� �����
��������� ����� �������� �� ����, �
�� ��� ������ — ������� ����� ������
� ���������� ������. �� ��������
������ ������ ����� ������� �����
�������� �� ����, ��� ������������
���������� ��������� ICMP �
��������� ������. �������, ���
��������� ������ ������ �������
�������� �� ���� ����� �������
����� ��������� � ��������� ��. ���
�� �����, ����� �������� �� ����
����� ����� ��������,
��������������� � ��������
���������, ����� ������ ��������,
���� �� �������� ������� �������.
����� ����, ��������, ��� ��� ��� IP
�������� ����������� �
����������������� ���������,
����������� ����� ���� ��������,
��������� ��� ���������� �� ��
�������. �������, ������� ���������
�� ����������� ���������������;
��������� ������� ��������������
������ ��� ������ ������.

9.15 ��������� ������� �
������ ����������

��������� ICMP ������� ���������� �
������ ����������( ��� 15 � 16)
��������� � ��������� �����
����������� � �� ������
��������������. ���
��������������� ��� �����������
��� ����� ���������� ������� ���
��������. ������ ��� �����������
������ ������������ ���������
RARP(����� 6), � BOOTP(����� 19).

9.16 ��������� �����
�������

����� 16 ���������� �������
��������� ��������, � ����� ������
�� ����������. � ���� ������ �����
��������, ��� ����� ��� ����������
��������� ��������, ��������� ����
� ���� �������������� ��� ��
IP-������ �������������� ����������
����. ��� ���������� ���������
�������� ��� ���� �����, ����� ����
�� 32-������� ����������� ������
������������� ���������� ����, �
����� — �������������� ���.
����������, ��������� ���
������������� ������, ������������
����� 32-������� ��������,
���������� ������ �������.

����� ������ ����� �������,
������������ � ��������� ����,
������ ����� ������� ���������
������� ����� ������ ����� �
�������� ����� ����� ������.
������, �������� ������, ����� ����
������� ��������� ��������, ����
��� ����� ����� �����, ��� �������
����������������� ���������, ����
�� ����� ���. ������� 9.10 ����������
������ ��������� ����� ������.

0            8            16
------------------------------------------------------------
|���(17, 18) | ���(0)      |   ����������� �����           |
------------------------------------------------------------
|    �������������         |  ���������������� �����       |
------------------------------------------------------------
|                    ����� ������                          |
------------------------------------------------------------

������� 9.10 ������
��������� ������� ����� ������ �
������ ����� ������. ������, ���
�������� ����������������� ������,
�� ����, ����� ���� ����� ��������
��.

���� ��� � ��������� ����� ������
���������, �������� �� ���������
��������(17) ��� �������(18). �����
�������� ����� ������ ������� ����
� ���� ����� ������. ��� �������,
���� ������������� �
���������������� ����� ���������
������ ������� ����� � ��������.

9.17 �����

������� �������������� �����
�������� �������� �������
��������� �� �����������������
�������� �� ����� ���
����������������� �������� ��
������ ���. ������ �����
������������ ������
�������������� � �������
����������� ������������ ��
���������� ��� ��� ��������� ��� ��
������� ��� ��� ������� ��� �����
���������� � ���������.

ICMP ������������ �����������
�������������� ����� ������� � ���;
�� �������� ����������� ������ IP.
ICMP �������� � ���� ��������� �
«���������� ���������»,
������������ �������� ��������,
��������� «��������������»,
��������� �� ��� ��������� ������
�������������, ���������
«�������/������ ���», �������
��� ����� ������������, �����
����������, ��������� ��
����������. ��������� ICMP
���������� � ���� ������
����������� IP � ����� ��� ����
������������� ����� � ������
���������: ���� ���� ��������� ICMP,
���� ���� � ���� ����������� �����
ICMP. ��� ��������� ���������� ������
��������� ����� ��������� � ���
�����.

��� ����������� ��������

��� Tanenbaum[1981], ��� � Stallings[1985]
������������� �����������
��������� �-����� � ��������� �� �
���������� �������� �����������.
������� �������� �������� �� ��,
��� �������� �����������
���������, � �����. Grange � Gien[1979], �
����� Driver, Hopewell, � Iaquinto[1979]
����������������� �� ��������
���������� �������, ��� �������
����������� ��������� ����������.
Gerla � Kleinrock[1980] ������������
���������� ��������� ����������
�������.

ICMP, ��������� ����� ��� ��������
TCP/IP, ���������� Postel[RFC 792]. Nagle[RFC 896]
������������� ���������
���������� ��������� � ����������,
��� ����� ������ ������������ ��
��� ���������� ���������� ����. Prue
� Postel[RFC 1016] ������������� �����
����� ����������, �������
���������� ����� ��� ����������
���������. Nagle[1987] ����������, ���
���������� ������ ��������
��������� � ����� � ��������
�����������. Mogul � Postel[RFC 950]
������������� ��������� ������� �
������ ����� �������. �������, Jain,
Ramakrishnan � Chui [1987] ����������, ���
����� � ������������ ���������
����� ����������������� ���
���������� ���������� ����.

����� �������� ���������
������������� ����� ������� � Mills[RFC
956, 957 � 958].

����������

9.1 ���������� ���������� �������
��������� ICMP � ������ ����
���������� � ����� ��������� ���� �
������� ���.

9.2 ����������, ������� �� ��
�������� ������ ����� ���� ���
������, ��� �������� ��������� ICMP �
���������� ���������.

9.3 ������������ ��������,
���������������� ���� �� ���������
��������� ICMP � ��������� ������.

9.4 ����������, �������� �� ����
������������ ������� ������� ping.
����� �� ������� �� ������ ?

9.5 �����������, ��� ������������
������� �������� ��������� ICMP �
���������� ������� ����������
����������. ����������� �� ���
���������� ������� traceroute, ��������
������ ������ ����� ���������� �
����������� ������������.

9.6 ���� �� ������������ �
���������, ���������� ���������
������� ping ��� ��� 128.10.2.1 ( ������ �
������)

9.7 ������ �� ���� ������
���������� ICMP ����� �������
��������� �� ��������� � �������
��������� ? ������ ?

9.8 ���������� Ethernet, ������� ����
��� � 12 ������, �������������� �
����. ����������, �����
����(������� ������������),
���������� IP-����� � ��������� ���,
�������� ��� ������� 24 ������.

9.9 �������� ������ ����������
��������� ICMP � ����������� ������
Jaina. ����� �� ��������� ����� ������
��� ���������� ���������� ���� ?
������ ?

9.10 �� ���������� ��������� ICMP,
����������� ������ �������������
��������, ��� ������ ��������
�������� � ����, ��� �����������
����������� ������������. ���
����� �������� ����� ���������
����� ���� �������� ?

9.11 ������ �� ��������� �� �������
ICMP ��������� ��������� �����,
������������, ����� ��� ����
������� ? ������ ?

����� | ���������� | ������


Internet Control Message Protocol (ICMP) works in the network layer of the OSI model and the internet layer of the TCP/IP model. It is used to send control messages to network devices and hosts. Routers and other network devices monitor the operation of the network. When an error occurs, these devices send a message using ICMP. Messages that can be sent include «destination unreachable», «time exceeded», and «echo requests».

  • ICMP is a network layer protocol.
  • ICMP messages are not passed directly to the data link layer. The message is first encapsulated inside the IP datagram before going to the lower layer.

Types of ICMP messages

  • Information Messages − In this message, the sender sends a query to the host or router and expects an answer. For example, A host wants to know if a router is alive or not.
  • Error-reporting message − This message report problems that a router or a host (destination) may encounter when it processes an IP packet.
  • Query Message − It helps a router or a network manager to get specific information from a router or another host.
Category Type Message
Error-Reporting Messages 3 Destination unreachable
4 Source quench
11 Time Exceeded
12 Parameter Problem
5 Redirection
Query Message 8 or 0 Echo request or reply
13 or 14 Timestamp request or reply
17 or 18 Address mask request or reply
10 or 9 Router Solicitation or advertisement
  • Source Quench − It requests to decrease the traffic rate of message sending from source to destination.
  • Time Exceeded − When fragments are lost in a network the fragments hold by the router will be dropped and then ICMP will take the source IP from the discarded packet and inform the source, that datagram is discarded due to the time to live field reaches zero, by sending time exceeded message.
  • Fragmentation Required − When a router is unable to forward a datagram because it exceeds the MTU of the next-hop network and the DF (Don’t Fragment) bit is set, the router is required to return an ICMP Destination Unreachable message to the source of the datagram, with the Code indicating fragmentation is needed and DF (Don’t Fragment) set.
  • Destination Unreachable − This error message indicates that the destination host, network, or port number that is specified in the IP packet is unreachable. This may happen due to the destination host device is down, an intermediate router is unable to find a path to forward the packet, and a firewall is configured to block connections from the source of the packet.
  • Redirect Message − A redirect error message is used when a router needs to tell a sender that it should use a different path for a specific destination. It occurs when the router knows a shorter path to the destination.

ICMP Basic Error Message Format

A basic ICMP error message would have the following format −

  • Type − The type field identifies the type of the message.
  • Code − The code field in ICMP describes the purpose of the message.
  • Checksum − The checksum field is used to validate ICMP messages.

Internet Control Message Protocol (ICMP) works in the network layer of the OSI model and the internet layer of the TCP/IP model. It is used to send control messages to network devices and hosts. Routers and other network devices monitor the operation of the network. When an error occurs, these devices send a message using ICMP. Messages that can be sent include «destination unreachable», «time exceeded», and «echo requests».

  • ICMP is a network layer protocol.
  • ICMP messages are not passed directly to the data link layer. The message is first encapsulated inside the IP datagram before going to the lower layer.

Types of ICMP messages

  • Information Messages − In this message, the sender sends a query to the host or router and expects an answer. For example, A host wants to know if a router is alive or not.
  • Error-reporting message − This message report problems that a router or a host (destination) may encounter when it processes an IP packet.
  • Query Message − It helps a router or a network manager to get specific information from a router or another host.
Category Type Message
Error-Reporting Messages 3 Destination unreachable
4 Source quench
11 Time Exceeded
12 Parameter Problem
5 Redirection
Query Message 8 or 0 Echo request or reply
13 or 14 Timestamp request or reply
17 or 18 Address mask request or reply
10 or 9 Router Solicitation or advertisement
  • Source Quench − It requests to decrease the traffic rate of message sending from source to destination.
  • Time Exceeded − When fragments are lost in a network the fragments hold by the router will be dropped and then ICMP will take the source IP from the discarded packet and inform the source, that datagram is discarded due to the time to live field reaches zero, by sending time exceeded message.
  • Fragmentation Required − When a router is unable to forward a datagram because it exceeds the MTU of the next-hop network and the DF (Don’t Fragment) bit is set, the router is required to return an ICMP Destination Unreachable message to the source of the datagram, with the Code indicating fragmentation is needed and DF (Don’t Fragment) set.
  • Destination Unreachable − This error message indicates that the destination host, network, or port number that is specified in the IP packet is unreachable. This may happen due to the destination host device is down, an intermediate router is unable to find a path to forward the packet, and a firewall is configured to block connections from the source of the packet.
  • Redirect Message − A redirect error message is used when a router needs to tell a sender that it should use a different path for a specific destination. It occurs when the router knows a shorter path to the destination.

ICMP Basic Error Message Format

A basic ICMP error message would have the following format −

  • Type − The type field identifies the type of the message.
  • Code − The code field in ICMP describes the purpose of the message.
  • Checksum − The checksum field is used to validate ICMP messages.

Как видно из табл. 3.5, в ICMP определено множество различных типов сообщений, включая пять типов сообщений об ошибках.

Сообщения об ошибках «пункт назначения недоступен»

Изначально ICMP требовался для того, чтобы маршрутизатор мог сообщить о проблемах при доставке пакета. Если маршрутизатор не в состоянии направить пакет по нужному пути, он генерирует сообщение об ошибке типа 3 и посылает его компьютеру-источнику. Поскольку генерация такого рода сообщений была основной задачей ICMP, сообщения «пункт назначения недоступен» имеют наибольшее количество вариантов. Шестнадцать (0—15) кодов ошибок сообщения «пункт назначения недоступен» приведены в табл. 3.6.

Таблица 3.6

Сообщения об ошибках ICMP типа пункт назначения недоступен

Код

Описание

0

Сеть недоступна (network unreacnable)

1

Компьютер недоступен (host unreachable)

2

Протокол недоступен (protocol unreachable)

3

Порт недоступен (port unreachable)

4

Фрагментация необходима, но запрещена (fragmentation needed and DF set)

5

Маршрутизация на заказ не удалась (source route failed)

6

Сеть назначения неизвестна (destination network unknown)

7

Компьютер назначения неизвестен (destination host unknown)

8

Компьютер-источник изолирован (устарело) (source host isolated)

9

Доступ в сеть назначения запрещен (destination network administratively prohibited)

10

Доступ в компьютер назначения запрещен (destination host administratively prohibited)

11

Для этого типа службы сеть недоступна (network unreachable ,for type-of-service, TOS)

12

Для этого типа службы компьютер недоступен (host unreachable for type-of-service, TOS)

13

Связь запрещена из-за фильтрации (communication administratively prohibited by filtering)

14

He соблюдается приоритет хоста (host precedence violation)

15

Снижение приоритета (precedence cutoff in effect)

Протокол IP не гарантирует доставку данных. С другой стороны, он почти всегда успешно справляется с доставкой. Если IP не удается доставить датаграмму, значит, возникла сетевая проблема, например ошибки при маршрутизации. Если вы внимательно изучили табл. 3.6, то, наверное, заметили, что большинство сообщений об ошибках относятся либо к компьютеру, либо к сети. Как правило, сообщения, относящиеся к компьютеру, означают проблему с доставкой, а сообщения, относящиеся к сети, — проблему с маршрутизацией. Так, например, код ошибки «сеть недоступна» означает проблему с маршрутизацией. На рис. 3.13 изображен формат ICMP-сообщения «пункт назначения недоступен».

Формат сообщения подобен общему формату, изображенному на рис. 3.12. Тип сообщения в поле типа равен трем, а поле кода (Code) соответствует коду ошибки от 0 до 15. Кроме того, в ICMP-сообщении содержится заголовок IР-датаграммы, вызвавшей его появление, и первые 64 бита (восемь байт) ее данных.

32 бита

Позиции битов

0                   7

8                   15

16                                              31

Тип (3)

Код (0-15)

Контрольная сумма

Не используется (заполняется нулями)

IP-заголовок, включая опции и первые 64 бита данных их первоначальной датаграммы

Рис. 3.13. Формат ICMP-сообщения «пункт назначения недоступен»

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

Сообщения об ошибках перенаправления

Чтобы выяснить, по какому маршруту послать пакет, переключатели пакетов TCP/IP пользуются таблицами маршрутизации. Маршрутизация пакета основывается на номере сети назначения, а идентификатор сети назначения — это часть IP-адреса. Каждый маршрутизатор знает своего соседа, то есть следующую «остановку», которых может быть несколько, на пути пакета данных. В некоторых случаях к определенной сети могут вести несколько маршрутов. Для постоянного слежения за состоянием сети маршрутизаторы периодически обмениваются сообщениями. Тем не менее таблицы маршрутизации обновляются не очень часто. Исходные данные для них хранятся в местных файлах конфигурации — это минимально необходимая для начала работы маршрутизатора информация, как правило, адрес другого маршрутизатора или шлюза.

Компьютеры обновляют свои таблицы, основываясь на информации от маршрутизаторов и сообщения о перенаправлении ICMP — один из способов решать эту задачу.

Предположим, что ваш компьютер посылает датаграмму на компьютер коллеги, расположенный, как показано на рис. 3.14, в другой физической сети. Чтобы послать датаграмму, необходимо обратиться к маршрутизатору. Предположим, что датаграмма посылается маршрутизатору номер 2. Исследовав свою таблицу, маршрутизатор обнаружит, что компьютер коллеги находится на расстоянии одного «прыжка» от маршрутизатора номер 1 и что именно ему следует послать датаграмму. В результате датаграмма отправляется к маршрутизатору номер 1.

Кроме того, маршрутизатор номер 2 знает (из содержимого датаграммы и собственной таблицы), что ваш компьютер подсоединен к маршрутизатору номер 1 напрямую, а следовательно, датаграмму можно слать сразу ему — это будет оптимальный маршрут. Как только маршрутизатор определит, что существует лучший маршрут, он отправит ICMP-сообщение о перенаправлении компьютеру-источнику датаграммы. На рис. 3.15 показан формат сообщения о перенаправлении.

32 бита

Позиции битов

0                    7

8                     15

16                                          31

Тип (5)

Код (0-3)

Контрольная сумма

IP-адрес маршрутизатора

IP-заголовок, включая опции и первые 64 бита данных их первоначальной датаграммы

Рис.

3.15. ICMP-сообщение о перенаправлении (тип 5)

Компьютер-передатчик выясняет, что следующие датаграммы лучше слать маршрутизатору, IP-адрес которого содержится в ICMP-сообщении. Другими словами, получив ICMP-сообщение о перенаправлении, ICMP-модуль компьютера должен исследовать содержимое заголовка IP-датаграммы (в теле сообщения) и IP-адрес маршрутизатора (второе 32-битное слово в заголовке сообщения). IP-заголовок даст адрес, по которому датаграммы шли неверным маршрутом, а IP-адрес маршрутизатора — тот маршрутизатор, который нужно использовать следующим. Эта информация может потребоваться для обновления таблицы маршрутизации сетевого компьютера. В табл. 3.7 приведены четыре кода сообщений о перенаправлении (тип 5). В примере на рис. 3.14 маршрутизатор пошлет сообщение типа 5 с кодом 1 (перенаправление для хоста).

Таблица 3.7

ICMP-сообщения об ошибках перенаправления (тип 5)

Код

Описание

0

Перенаправление для сети

1

Перенаправление для хоста (сетевого компьютера)

2

Перенаправление для сети по типу сетевой службы (TOS)

3

Перенаправление для хоста по типу сетевой службы (TOS)

Как видим, маршрутизатор может перенаправить сообщение, основываясь на содержимом поля «тип сетевой службы» (TOS) IP-заголовка датаграммы. Поле TOS заголовка датаграммы определяет ее приоритет. Хотя это поле применяется редко, в будущем, несомненно, его значение возрастет. Поэтому в ICMP заложена возможность помогать сетевым компьютерам обновлять таблицы маршрутизации, в зависимости от типа сетевой службы, которой принадлежит та или иная датаграмма. Протокол ICMP ограничивает сферу применения сообщений о перенаправлении. Каждый сетевой компьютер, в принципе, может работать маршрутизатором. Однако только системы, сконфигурированные как маршрутизаторы, могут посылать ICMP-сообщения о перенаправлении. Обыкновенный сетевой компьютер сделать этого не может. Далее, маршрутизаторы не обновляют свои таблицы, основываясь на сообщениях о перенаправлении. Вместо этого маршрутизаторы используют специальные протоколы.

Ошибки типа «лимит времени исчерпан»

Как известно, ошибки в таблицах маршрутизации могут привести к зацикливанию пакета между двумя маршрутизаторами. Это может случиться, когда каждый из них считает, что соседний маршрутизатор — наилучшее место для передачи пакета по назначению. Заголовок IP-датаграммы содержит специальное поле «время существования» (Time-to-Live, TTL), в котором время существования датаграммы ограничивается. Каждый маршрутизатор на пути пакета уменьшает время его существования. Время существования также уменьшается каждую секунду, которую пакет проводит во входной или выходной очереди маршрутизатора.

Как только время существования в поле TTL IP-датаграммы сравняется с нулем, сетевые программы уничтожат пакет и вышлют ICMP-сообщение «лимит времени исчерпан» (тип 11) компьютеру-источнику пакета. Формат ICMP-сообщения «лимит времени исчерпан» такой же, как у сообщения «пункт назначения недоступен», но поле Туре равно 11 вместо 3. Сообщения «лимит времени исчерпан» бывают двух видов, как показано в табл. 3.8. Код 0 устанавливается в случае, если датаграмма исчерпала время существования во время пересылки (например, из-за описанного выше зацикливания). Код 1 устанавливается, если произошел сброс таймера сборки фрагментов датаграммы до того, как все фрагменты прибыли.

Таблица 3.8

ICMP-сообщения об ошибках «лимит времени исчерпан» (тип 11)

Код

Описание

0

Поле время существования (TTL) сравнялось с нулем во время передачи датаграммы

1

Таймер сборки фрагментов истек

Когда компьютер-получатель принимает датаграмму с установленным флагом «фрагмент-продолжение», запускается таймер сборки фрагментов. Все фрагменты обязаны появиться до того, как этот таймер истечет. Если таймер истек, а датаграмма все еще не собрана, она уничтожается. В этом случае генерируется ICMP-сообщение типа 11 с кодом 1.

Ошибки «неверный параметр»

Компьютеры и маршрутизаторы высылают такое сообщение, если источник проблемы с маршрутизацией или доставкой неизвестен. Существуют два типа таких ICMP-сообщений, как показано в табл. 3.9.

Таблица 3.9

ICMP-сообщение об ошибке «неверный параметр» (тип 12)

Код

Описание

0

Неверный IP-заголовок

1

Необходимая опция отсутствует

Сообщение с кодом 1 генерируется, если датаграмма не содержит всех необходимых для нормальной работы TCP/IP атрибутов (опций). Предположим, вы разработали криптозащищенный протокол для работы с приложениями государственной важности. Если программа-клиент попытается передать запрос к серверу и не приложит специального секретного ключа к датаграмме, сервер ответит сообщением об ошибке типа «необходимая опция отсутствует». Сообщение типа «неверный IP-заголовок» генерируется во всех остальных случаях, когда источник ошибки невозможно распознать. На рис. 3.16 приведен формат сообщения ICMP «неверный параметр». Поле указателя (pointer) идентифицирует тот байт датаграммы, который привел к возникновению ICMP-сообщения. Для сообщений с кодом 1 («необходимая опция отсутствует») поле указателя равно нулю.

32 бита

Позиции битов

0                 7

8                    15

16                                        31

Тип (12)

Код (0-1)

Контрольная сумма

Указатель

Не используется (заполняется нулями)

IP-заголовок, включая опции и первые 64 бита данных их первоначальной датаграммы

Рис. 3.16. Формат ICMP -сообщения «неверный параметр» (тип 12)

Сообщение об ошибке «столкновение данных»

Механизм контроля потока данных гарантирует, что передатчик не будет передавать быстрее, чем приемник в состоянии принять и обработать. Другими словами, гарантируется, что входной буфер приемника не переполнится. Протокол TCP обеспечивает механизм управления потоком в качестве одной из сетевых служб. К сожалению, управление потоком возможно лишь тогда, когда протокол ориентирован на соединение. Поскольку IP не ориентирован на соединение, он не умеет управлять потоком данных. Поскольку маршрутизаторы работают на уровне IP, в их входных очередях может создаваться аналог транспортной пробки в часы пик в результате слишком большого количества вновь приходящих IP-пакетов. Если маршрутизатор не успевает обработать все приходящие пакеты, то «лишние» пакеты уничтожаются, а компьютеру-источнику пакета направляется ICMP-сообщение об ошибке «столкновение данных» (тип 4). Сообщение «столкновение данных» указывает компьютеру на необходимость снизить скорость передачи. На самом деле, механизм сообщений «столкновение данных» является некоторым подобием управления потоком данных на уровне IP. Для каждого уничтоженного в результате столкновения пакета, маршрутизатор высылает ICMP-сообщение. Как только компьютер получает его, он тут же снижает скорость передачи.

Если маршрутизатор продолжает передавать ICMP-сообщения «столкновение данных», компьютер продолжает снижать скорость передачи. Как только ICMP-сообщения перестают появляться, компьютер вновь начинает увеличивать скорость. И так до тех пор, пока не будет достигнута оптимальная скорость. Формат сообщения

ICMP «столкновение данных» тот же, что и у сообщения «пункт назначения недоступен», только поле типа имеет значение 4. Сообщение «столкновение данных» бывает только единственного вида, то есть поле кода у него всегда имеет значение 0 — других кодов не бывает.

ICMP (Internet Control Message Protocol — межсетевой протокол управляющих сообщений). ICMP является протоколом контрольных сообщений Структура межсетевого протокола IPv4. Протокол ICMP используется устройствами сети для отправки управляющих сообщений и сообщений об ошибках на компьютеры и серверы. Существует несколько областей применения протокола ICMP, например, объявление об ошибках в сети, объявление о перегрузке сети и устранение неполадок.

Каждое сообщение протокола ICMP передается по сети внутри пакета IP. Пакеты IP с сообщениями ICMP маршрутизируются точно так же, как и любые другие пакеты, без приоритетов, поэтому они также могут теряться. Мало того, при большой загруженности сети они могут вызывать дополнительную загрузку маршрутизаторов. Для того, чтобы не вызывать лавины сообщения об ошибках, предусмотрели, что в случае потери пакетов IP, которые сами «несут» сообщения ICMP об ошибках, новые сообщения ICMP об ошибке рождаться не будут.

ICMP только сообщает о возникших ошибках отправителю пакета; отправитель сам должен связать ошибки с конкретными прикладными программами и предпринять действия по исправлению ошибок.

Надо отметить, что большая часть ошибок исходит от отправителя, но другие — нет. Так как ICMP сообщает об ошибках отправителю, он не может использоваться, чтобы информировать промежуточные маршрутизаторы об ошибках. Например, пакет следует по пути через маршрутизаторы М1,М2,…,Мk. Если Мk содержит некорректную информацию о маршрутах и ошибочно отправит пакет на маршрутизатор Ме, то маршрутизатор Мe может лишь сообщить об ошибке отправителю пакета. К сожалению, отправитель не отвечает за эту проблему и не может управлять некорректно ведущим себя маршрутизатором Мk. Фактически, отправитель не сможет даже определить, какой маршрутизатор вызвал эту проблему.

Почему ограничивают протокол ICMP взаимодействием только с отправителем? Потому что IP- пакет содержит поля, которые определяют только отправителя и получателя; он не содержит полного описания своего пути через сеть (кроме необычных случаев, о которых мы скажем позже).

Если маршрутизатор обнаруживает ошибку, он просто не может узнать, какие промежуточные машины обрабатывали этот пакет, и поэтому не может сообщить им об ошибке. Вместо простого удаления пакета этот маршрутизатор использует протокол ICMP, чтобы сообщить отправителю о возникшей проблеме, надеясь на то, что администратор сети затем локализует и исправит ошибку.

Расшифровка кодов ICMP сообщений:

Ответ на некоторые ICMP-сообщения может привести к разглашению некоторой информации о хосте, в то время как другие — привести к модификации таблицы маршрутизации, поэтому их необходимо запретить.

Обычно выход во внешний мир разрешают ICMP-сообщениям 3, 8, 12, в то время как на вход принимают только 0, 3, 4, 11, 12.

Разрешение ICMP в Packet Filter Firewall (PF) (обновление 2018.08).

  1. Пример

    # Разрешить входящие ICMP ping пакеты. Остальные ICMP относятся к
    # TCP/UDP и разрешаются их статами.
    #
    pass in on $ext_if inet proto icmp to ($ext_if) icmp-type echoreq code 0
  2. Пример

    # ICMP Echo
    pass in log quick inet proto icmp from any to $AllIFs 
    icmp-type 8 keep state
${fwcmd} add 00300 allow icmp from any to внешний_IP in via внешний_интерфейс icmptype 0,3,4,11,12
${fwcmd} add 00301 allow icmp from внешний_IP to any out via внешний_интерфейс icmptype 3,8,12
${fwcmd} add 00304 allow icmp from внешний_IP to any out via внешний_интерфейс frag
${fwcmd} add 00305 deny log icmp from any to any in via внешний_интерфейс

Правила для Правила iptables. Список возможных типов выводится по команде

# iptables -p icmp -h

Valid ICMP Types:
any
echo-reply (pong)
destination-unreachable
   network-unreachable
   host-unreachable
   protocol-unreachable
   port-unreachable
   fragmentation-needed
   source-route-failed
   network-unknown
   host-unknown
   network-prohibited
   host-prohibited
   TOS-network-unreachable
   TOS-host-unreachable
   communication-prohibited
   host-precedence-violation
   precedence-cutoff
source-quench
redirect
   network-redirect
   host-redirect
   TOS-network-redirect
   TOS-host-redirect
echo-request (ping)
router-advertisement
router-solicitation
time-exceeded (ttl-exceeded)
   ttl-zero-during-transit
   ttl-zero-during-reassembly
parameter-problem
   ip-header-bad
   required-option-missing
timestamp-request
timestamp-reply
address-mask-request
address-mask-reply

Можно указать стандартный числовой код или сообщение. Пропустить все входящие ICMP-эхо-запросы (пинги).

# iptables -I INPUT -p icmp --icmp-type 8 -j ACCEPT
# iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT

Блокирует фрагменты ICMP-пакетов

iptables -I INPUT -p icmp -f -j DROP

Рекомендуемые правила для ICMP:

#!/bin/sh

IPT="/sbin/iptables"

$IPT -A INPUT -p icmp --icmp-type 3 -j ACCEPT # destination-unreachable 3/4
$IPT -A INPUT -p icmp --icmp-type 8 -j ACCEPT # echo request
$IPT -A INPUT -p icmp --icmp-type 12 -j ACCEPT # IP header bad 
$IPT -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT #

В отличие от цели DROP, где пакет просто отбрасывается, в данном случае отправителю будет отправлено IСМР-сообщение «Port unreachable / icmp port unreachable» («Порт недоступен»). С помощью опции –reject-with можно изменить тип ICMP-сообщения:

# iptables -A INPUT -s 1.2.3.4 -j REJECT --reject-with icmp-net-unreachable

У опции –reject-with есть следующие аргументы:

icmp-net-unreachable — сеть недоступна;
icmp-host-unreachable — узел недоступен;
icmp-port-unreachable — порт недоступен;
icmp-proto-unreahable — неподдерживаемый протокол;
icmp-net-prohibited — сеть запрещена;
icmp-host-prohibited — узел запрещен.

По умолчанию будет передано сообщение port-unreachable.
Вышеперечисленные аргументы являются ICMP error messages.В дополнение к опции –reject-with TCP-пакеты можно отклонить с помощью аргумента tcp-reset, который отправляет RST-сообщения отправителю. Это наилучший с точки зрения безопасности способ, нужно обязательно использовать именно его. TCP RST пакеты используются для закрытия TCP соединений.

Межсетевой
протокол управляющих сообщений (ICMP
— Internet
Control
Message
Protocol)
разработан для того, чтобы маршрутизаторы
в Интернете сообщали об ошибках или
предоставляли информацию о нестандартных
усло­виях работы сети. Он является
необходимой частью протокола IP.
И обеспе­чивает обратную связь,
оповещение отправителя данных о
проблемах, возни­кающих в коммуникационном
оборудовании.

Протокол
ICMP
— это механизм сообщения об ошибках. Он
обеспечивает маршрутизаторам,
обнаруживающим ошибки, способ сообщения
об ошибке первоначальному источнику.
Хотя спецификация протокола определяет
допус­тимые способы использования
ICMP
и предлагает варианты возможных дей­ствий
в ответ на ошибки, ICMP
не специфицирует полностью действия,
кото­рые необходимо предпринять в
ответ на все возможные ошибки. Таким
образом, ICMP
только сообщает о возникших ошибках
первоначальному источнику; ис­точник
сам должен связать ошибки с конкретными
прикладными программа­ми и предпринять
действия по исправлению ошибок.

Протокол
ICMP
выполняет следующие основные функции:

  • обмен
    тестовыми сообщениями для выяснения
    наличия и активности уз­лов сети;

  • анализ
    достижимости узлов и сброс пакетов,
    направленных к недостижи­мым узлам;

  • изменение
    маршрутов (Redirect);

  • уничтожение
    пакетов с истекшим временем жизни
    (Time-To-Live);

  • синхронизация
    времени в узлах сети;

  • управление
    трафиком (регулирование частоты отправки
    пакетов).

С
точки зрения уровневых протоколов, ICMP
является частью сетевого уровня. Но по
отношению к IP
ICMP
протокол более высокого уровня, так как
он пользуется услугами IP
для доставки своих сообщений. Другими
словами, каждое сообщение ICMP
передается по сети внутри 1Р-дейтаграммы.

ICMP-сообщения
бывают двух видов: сообщение-запрос и
сообщение об ошибке. Сообщение об ошибке
тесно связано с породившей его
дейтаграм­мой и всегда содержит
заголовок этой IP-дейтаграммы
и первые 64 бит ее данных. Это необходимо
для того, чтобы узел-источник смог более
точно проанализировать причину ошибки,
так как все прикладные протоколы стека
TCP/IP содержат наиболее важную информацию
для анализа в первых 8 байт своего
сообщения. Сообщения-запросы передают
информацию об определен­ной сети и
об определенном компьютере или их
используют для диагностичес­ких
целей.

IP-пакеты
с сообщениями ICMP
передаются по сети «на общих основани­ях»,
без приоритетов, поэтому они тоже могут
теряться. В загруженной сети они могут
вызвать дополнительную загрузку
маршрутизаторов, когда потеря сообщения
об ошибке приводит к порождению нового
сообщения и т. д., пока канал связи не
исчерпает своей пропускной способности.
Для того чтобы пре­дотвратить подобные
ситуации, в спецификации четко определены
правила, руководствуясь которыми
компьютер может решить, передавать его
ICMP-
сообщение или нет.

Правило
1:

потеря пакета с ICMP-сообщением
никогда не генерирует ново­го
ICMP-сообщения.

Правило
2:

сообщения об ошибке никогда не генерируются
в ответ на IP-
дейтаграммы с широковещательными или
групповыми адресами, чтобы не вызвать
полную перегрузку сети — широковещательный
шторм (broadcast
storm).

Правило
3
:
при повреждении фрагментированной
дейтаграммы, 1СМР-со- общение отправляют
только после первого поврежденного
фрагмента (так как источник все равно
повторит передачу всей дейтаграммы
целиком).

Доставка
ICMP-пакетов
требует двух уровней инкапсуляции.
ICMP-пакеты
инкапсулируются внутрь IP-дейтаграммы,
которая сама передается по каж­дой
физической сети в поле данных кадра
(рис. 5.29).

Несмотря
на то, что сообщения ICMP
инкапсулируются и посылаются, ис­пользуя
IP,
ICMP
не считают протоколом более высокого
уровня — он является

необходимой
частью IP.
Протокол IP
необходим для транспортировки сообще­ний
ICMP,
так как им, чтобы достичь своего конечного
назначения, надо пере­сечь несколько
физических сетей. Поэтому, они не могут
быть доставлены только с помощью
физической передачи.

Формат
ICMP-пакетов.
Хотя каждое сообщение ICMP
имеет свой соб­ственный формат, все
они начинаются с трех одинаковых полей:
8-битового целочисленного поля «Тип»,
идентифицирующего сообщение, 8-битового
поля «Код», обеспечивающего более точную
информацию о типе сообщения, и 16­битового
поля «Контрольная сумма» (рис. 5.30). Помимо
того, сообщения ICMP,
сообщающие об ошибках, всегда включают
заголовок и первые 64 бит данных
дейтаграммы, вызвавшей ошибку. Это
необходимо для того, чтобы узел-от­правитель
смог более точно проанализировать
причину ошибки, так как все протоколы
прикладного уровня стека TCP/IP содержат
наиболее важную ин­формацию для
анализа в первых 64 бит своих сообщений.

Сетевые
программы распознают ICMP-сообщения
по двум признакам: зна­чению поля
«Тип» и значению поля «Код». Контрольная
сумма вычисляется не только для
ICMP-заголовка,
но и для всего сообщения.

Таблица
5.12.

Типы сообщений ICMP

Тип

сообщения

ICMP

Описание

0

Ответ
на эхо (Echo
Reply)

3

Узел
назначения недостижим (Destination
Unreachable)

4

Подавление
источника (Source
Quench)

5

Перенаправление
маршрута (Redirect)

8

Запрос
эха (Echo
Request)

9

Информация
о маршрутизаторах (Router
Advertisement)

10

Регистрация
маршрутизатора (Router
Solicitation)

И

Лимит
времени для дейтаграммы превышен
(Time
Exceeded for a Data- gramm)

12

Проблема
с
параметром
пакета
(Parameter Problem on a Datagramm)

13

Запрос
метки времени (Timestamp
Request)

14

Ответ
для метки времени (Timestamp
Reply)

15

Запрос
информации (не действует)

16

Ответ
на запрос информации (не действует)

17

Запрос
маски
адреса
(Address Mask Request)

18

Ответ
на запрос маски адреса (Address
Mask
Reply)

Типы
сообщений ICMP
представлены в табл. 5.12. Рассмотрим
каждое из этих сообщений и его формат
подробнее.

Тестирование
достижимости места назначения. Протоколы
TCP/IP обеспечивают средства, помогающие
сетевым администраторам или пользо­вателям
идентифицировать проблемы в сети.
Пользователь в качестве одного из широко
используемых средств отладки применяют
команду, которая вызы­вает сообщения
ICMP
запроса эха и ответа эха. Компьютер или
маршрутиза­тор посылает сообщение
запроса эха указанному месту назначения.
Любая машина, получившая запрос эха,
генерирует ответ на эхо и возвращает
его пер­воначальному отправителю.
Этот запрос содержит необязательную
область данных; ответ содержит копию
данных, посланных в запросе. Запрос эха
и свя­занный с ним ответ можно
использовать для проверки достижимости
назначе­ния и его способности отвечать
на запросы. Так как и запрос эха, и ответ
на него передаются в IP-дейтаграммах,
успешный прием ответа свидетельству­ет
о работоспособности основных частей
транспортной системы. Во-первых,
программное обеспечение IP
на машине источника выполнило
маршрутиза­цию дейтаграммы. Во-вторых,
промежуточные маршрутизаторы между
ис­точником и получателем работоспособны
и корректно маршрутизируют дей­таграммы.
В-третьих, машина получателя работает
(по крайней мере, она обрабатывает
прерывания) и программное обеспечение,
как IP,
так и ICMP,
выполняет свои функции. И, наконец,
таблицы маршрутов в маршрутизаторах
на всем обратном пути корректны.

Во
многих системах команда, которую
пользователи вызывают для посыл­ки
запроса эха ICMP,
называется ping.
Усложненные версии этой программы
посылают серии запросов эха ICMP,
принимают ответы и выдают статистику
о потерях дейтаграмм. Они позволяют
пользователю указывать длину посы­лаемых
данных и интервалы времени между
запросами. Менее сложные вер­сии
просто посылают запрос эха ICMP
и ждут ответа.

Формат
сообщения запроса эха и ответа эха.

Средства для тестирова­ния достижимости
узлов сети представляют собой очень
простой эхо-прото­кол, включающий
обмен двумя типами сообщений: эхо-запрос
и эхо-ответ. Ком­пьютер или маршрутизатор
посылают по интерсети эхо-запрос, в
котором указывают IP-адрес
узла, достижимость которого нужно
проверить. Узел, по­лучающий эхо-запрос,
формирует и отправляет эхо-ответ и
возвращает сооб­щение узлу — отправителю
запроса. В запросе могут содержаться
некоторые данные, которые должны быть
возвращены в ответе.

Рис.
5.30 иллюстрирует формат сообщений запроса
эха и ответа на запрос эха. Поле
«Необязательные данные» имеет переменную
длину и содержит дан­ные, которые надо
вернуть отправителю. Ответ на эхо всегда
возвращает те же самые данные, что были
получены им в запросе. Поля «Идентификатор»
и «Последовательный номер» отправитель
использует для проверки соответствия
ответов запросам. Значение поля «Тип»
определяет, является ли сообщение
запросом (8) или ответом (0).

Сообщения
о недостижимости назначения.

Когда маршрутизатор не может доставить
IP-дейтаграмму,
он посылает сообщение «назначение
недо­стижимо» первоначальному
отправителю, используя формат, приведенный
на рис. 5.31. Поле «Код» в сообщении о
недостижимости назначения содержит
целое число, которое описывает причину.
Возможные значения представлены в табл.
5.13.

Таблица
5.13.

Коды сообщений о недостижимости

Код

сообщения

Пояснения

0

Сеть
недостижима

1

Компьютер
недостижим

2

Протокол
недостижим

3

Порт
недостижим

4

Необходима
фрагментация

5

Ошибка
при маршрутизации источника

6

Сеть
назначения неизвестна

7

Компьютер
назначения неизвестен

8

Компьютер
источника изолирован

9

Взаимодействие
с сетью назначения административно
запрещено

10

То
же с компьютером назначения

И

Сеть
недостижима из-за класса обслуживания

12

Компьютер
недостижим из-за класса обслуживания

Хотя
протокол ЕР является механизмом
ненадежной доставки, дейтаграм­мы не
уничтожаются просто так. Всякий раз,
когда ошибка мешает маршрути­затору
произвести маршрутизацию или доставку
дейтаграммы, маршрутиза­тор посылает
сообщение о недостижимости назначения
его источнику, а затем уничтожает
дейтаграмму. Ошибки недостижимости
сети обычно являются следствием ошибок
маршрутизации; ошибки недостижимости
компьютера — следствие ошибок при
доставке.

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

Если
дейтаграмма содержит опцию маршрутизации
источника с некоррект­ным маршрутом,
то это может привести к появлению
сообщения об ошибке маршрутизации
источника. Если шлюзу нужно фрагментировать
дейтаграмму, но установлен бит «не
фрагментировать», то шлюз посылает
сообщение «тре­буется фрагментация»
обратно источнику.

Управление
потоком дейтаграмм и переполнение сети.
Так как IP-
протокол не устанавливает соединения,
то маршрутизаторы не могут резерви­ровать
память или коммуникационные ресурсы
до получения дейтаграмм. В результате,
трафик может вызвать перегрузку
маршрутизаторов, ситуацию, на­зываемую
переполнением сети (congestion).
Переполнение сети происходит по двум
совершенно разным причинам. Во-первых,
высокоскоростной компью­тер может
генерировать трафик быстрее, чем сеть
может передавать его. На­пример,
представим суперкомпьютер, генерирующий
межсетевой трафик. Дей­таграммам,
посылаемым им, может потребоваться
передача, в конечном счете, по медленной
глобальной сети (WAN),
хотя сам суперкомпьютер может быть
присоединен к высокоскоростной LAN.
Переполнение будет возникать в
мар­шрутизаторе, присоединенном к
глобальной сети, так как дейтаграммы
будут прибывать быстрее, чем их можно
послать. Во-вторых, если большому числу
компьютеров одновременно нужно посылать
дейтаграммы через один марш­рутизатор,
этот маршрутизатор может оказаться
переполненным, хотя ни один источник в
отдельности не вызывает эту проблему.

Когда
дейтаграммы прибывают на шлюз или
маршрутизатор быстрее, чем он успевает
их обрабатывать, он временно ставит их
в очередь в своей памя­ти. Если эти
дейтаграммы создают небольшую пиковую
нагрузку при переда­че дейтаграмм,
то такая буферизация решает проблему.
Если же трафик про­должает поступать,
то, в конечном счете, маршрутизатор или
шлюз займет всю память под очередь и
вынужден будет удалять новые прибывающие
дей­таграммы. Тогда машина для выхода
из состояния переполнения использует
сообщения о подавлении источника.

Сообщение
о подавлении источника требует от
источника уменьшить ско­рость передачи
дейтаграмм. Обычно переполненные
маршрутизаторы посы­лают по одному
сообщению о подавлении источника на
каждую удаляемую дейтаграмму или
используют более сложные технологии
выхода из переполне­ния. Формат
подавления источника представлен на
рис. S.32.
Помимо обыч­ных полей ICMP
«Тип», «Код» и «Контрольная сумма» и
неиспользуемого 32-битового поля,
сообщения о подавлении источника имеют
поле, содержащее

префикс
дейтаграммы. Как и в других сообщениях
об ошибках ICMP
поле префикса дейтаграммы содержит
префикс дейтаграммы, вызвавшей этот
зап­рос подавления источника.

Сообщения
ICMP,
вызывающего эффект, обратный подавлению
источника, не существует. Вместо этого,
компьютер, принявший сообщения о
подавлении источника от некоторой
машины, снижает скорость, с которой он
посылает ей дейтаграммы. Это происходит
до тех пор, пока к нему не перестанут
прихо­дить сообщения о подавлении
источника. Затем он постепенно увеличивает
скорость пока снова не получит сообщения
о подавлении источника.

Перенаправление
маршрута. Маршрутные таблицы у компьютеров
обыч­но статические, так как их
конфигурирует администратор сети, а у
маршрути­заторов — динамические,
формируемые автоматически с помощью
протоколов обмена маршрутной информации.
Поэтому с течением времени при изменении
топологии сети маршрутные таблицы
компьютеров могут устаревать.

При
изменении топологии сети таблицы
маршрутизации в маршрутизаторе или
компьютере могут стать некорректными.
Изменение может быть времен­ным
(например, нужно заменить неисправное
оборудование) или постоянным (например,
когда в межсетевое взаимодействие
включается новая сеть). Мар­шрутизаторы
периодически обмениваются информацией
о маршрутизации, чтобы отслеживать
изменения в сети и своевременно менять
маршруты. Для корректировки поведения
компьютеров маршрутизатор может
использовать сообщение протокола ICMP,
называемое «перенаправлением» (Redirect),
зап­рашивающее изменение маршрута в
таблице маршрутизации компьютера.

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

Преимуществом
схемы перенаправления ICMP
является ее простота: она позволяет
компьютеру знать вначале адрес только
одного маршрутизатора в локальной сети.
Этот начальный маршрутизатор возвращает
сообщение ICMP
о перенаправлении всякий раз, когда
компьютер посылает дейтаграмму, для
которой существует лучший маршрут.
Таблица маршрутизации компьютера
останется маленькой, но содержит
оптимальные маршруты для всех использу­емых
назначений.

Сообщения
о перенаправлении, тем не менее, не
решают проблему распро­странения
информации о маршрутах полностью, так
как они предназначены только для
взаимодействия между маршрутизатором
и компьютером в одной физической сети.
Каждое сообщение о перенаправлении
содержит 32-битовое поле «IP-адрес
маршрутизатора» и поле «Префикс
дейтаграммы», как это по­казано на
рис. 5.33.

Поле
«Межсетевой адрес маршрутизатора»
содержит IP-адрес
маршрути­затора, который должен
использовать компьютер при отправлении
дейтаграм­мы к назначению, указанному
в заголовке дейтаграммы. Поле «Префикс
дей­таграммы» содержит заголовок IP
и следующие 8 байт дейтаграммы, которая
привела к появлению этого сообщения.
Поэтому компьютер, принимающий сообщение
о перенаправлении ICMP,
должен выделить адрес назначения
дей­таграммы из префикса дейтаграммы.
Поле «Код» в сообщении о перенаправ­лении
ICMP
более конкретно указывает, как
интерпретировать адрес назначе­ния,
при этом значения имеют следующий смысл:
0 — перенаправление дейтаграмм для этой
сети (устарело), 1 — перенаправление
дейтаграмм для этого компьютера, 2 —
перенаправление дейтаграмм для этого
типа сервиса и сети, 3 — перенаправление
дейтаграмм для этого типа сервиса и
компьютера. Напомним, что каждый заголовок
IP
указывает тип сервиса, используемого
при маршрутизации. Как правило,
маршрутизаторы посылают запросы
пере­назначения ICMP
только на компьютеры, а не на другие
маршрутизаторы.

Изменение
маршрута является одной из наиболее
интересных функций про­токола ICMP
— по существу, это один из механизмов
автоматической оптими­зации доставки
пакетов и адаптации сетей TCP/IP к изменениям
топологии.

Запросы
«Информация
о маршрутизаторах»
(типы
9 и
10).

Информация
о маршрутизации находится в местных
конфигурационных фай­лах и загружается
оттуда при запуске компьютера. Чтобы
таблица маршрути­зации не содержала
устаревших данных она обновляется
динамически. ICMP-
протокол реализует один из способов ее
обновления.

Существует
2 типа сообщений маршрутизаторов:

  • 9
    — информация о маршрутизации;

  • 10-регистрация
    маршрутизатора.

Всякий
раз, когда компьютер запускают, он
генерирует сообщения о регис­трации.
В ответ маршрутизаторы, находящиеся в
той же локальной сети, посы­лают
сообщения с информацией о маршрутизации,
позволяющие правильно сконфигурировать
маршрутную таблицу.

Формат
сообщения «Информация о маршрутизации»
(тип 9) описан в RFC
1256 (рис. 5.34).

В
одном ICMP-сообщении
может содержаться описание нескольких
адре­сов, количество которых указано
в поле «Количество адресов». Поле «Размер
адреса» задает длину адреса в 32-битовых
словах. В настоящее время «Длина поля
адреса» всегда равна 2.

Поле
«Время существования» задает интервал
времени, в течение которо­го информация
еще не устарела. Как правило, это 1800 с.

Поле
«Приоритет» указывает, какой из адресов
следует использовать пер­вым и более
интенсивно. Как правило, чем больше
значение поля, тем выше приоритет.
Маршрутизаторы передают информационные
сообщения широко­вещательно через
случайные интервалы времени. Обычно
через 450…600 с. Поле «Время существования»
можно использовать для уведомления,
что дан­ный маршрутизатор выключается.
При этом содержимое данного поля
уста­навливается равным 0.

Формат
сообщения «Регистрация» (тип 10) представлен
на рис. 5.35.

Запрос
«Регистрация» передается 3 раза с
интервалом 3 с при запуске мар­шрутизатора
и продолжает (при необходимости)
передаваться, пока маршру­тизатор не
получит информационного сообщения с
нужной маршрутной инфор­мацией.

Обнаружение
циклических или слишком длинных путей.

Как было от­мечено выше для защиты
Интернета от перегрузок каждая дейтаграмма
име­ет счетчик времени жизни TTL
(Time-To-Live).
Маршрутизатор декременти­рует счетчик
времени жизни всякий раз, когда он
обрабатывает дейтаграмму, и удаляет
ее, когда счетчик становится нулевым.

Независимо
от того, удалил ли маршрутизатор
дейтаграмму из-за обнуле­ния счетчика
времени жизни или из-за превышения
времени ожидания фраг­ментов
дейтаграммы, он посылает сообщение ICMP
«Лимит времени для дейта­граммы
превышен» источнику дейтаграммы
определенного формата (рис. 5.36).

Поле
«Код» объясняет причину сообщения: 0 —
превышено значение счет­чика времени
жизни; 1 — превышено время ожидания
фрагмента при сборке.

Сообщения
о других ситуациях.

Когда маршрутизатор или компьютер
стал­кивается с проблемой, не
укладывающейся в рамки описанных
сообщений об ошибках ICMP
(например, некорректный заголовок
дейтаграммы), связанной с дейтаграммой,
он посылает сообщение «Проблема с
параметром пакета» первоначальному
отправителю. Такую ситуацию может
вызвать некоррект­ность аргументов
опции. Сообщение, формат которого показан
на рис. 5.37, посылается только в том
случае, если дейтаграмма должна быть
удалена из- за этой ошибки. Для уточнения
места ошибки в дейтаграмме отправитель
ис­пользует поле «Указатель» в
заголовке сообщения для идентификации
октета в дейтаграмме, содержащего
ошибку.

Синхронизация
часов и оценка времени передачи.

Стек протоколов TCP/IP включает несколько
протоколов, которые могут использоваться
для синхрони­зации часов. В сети для
этого используется несколько технологий.
Одна из про­стейших технологий
реализуется сообщениями ICMP
для получения значения времени от другой
машины. Запрашивающая машина посылает
сообщение ICMP
«Запрос метки времени» другой машине,
ожидая, что вторая машина вернет ей
текущее значение времени. Принимающая
машина возвращает «От­вет для метки
времени» машине, выдавшей запрос. Рис.
5.38 иллюстрирует формат сообщений запроса
и ответа временной метки. Поле «Тип»
идентифи­цирует сообщение как запрос
(13) или ответ (14); поля «Идентификатор»
и «Пос­ледовательный номер» используют
источник для связи между ответами и
зап­росами. Оставшиеся поля специфицируют
времена, указанные в миллисекундах
после полуночи, по Гринвичу. Поле
«Временная метка отправителя» заполняет

первоначальный
отправитель перед передачей пакета,
поле «Временная метка приема» заполняется
сразу после приема запроса, а поле
«Временная метка передачи» — непосредственно
перед отправкой ответа.

Компьютеры
используют эти три поля временных меток
для определения ожидаемого времени
передачи между ними и синхронизации
своих часов. Так как ответ включает поле
«Временная метка отправителя», компьютер
может вычислить общее время, требуемое
для передачи запроса к назначению,
фор­мирования ответа на него и
возвращения ответа. Так как ответ
содержит как время прихода запроса на
удаленную машину, так и время выдачи
ответа, ком­пьютер может вычислить
время передачи по сети, а на его основе
— разницу между своими и удаленными
часами. На практике бывает трудно точно
оце­нить время передачи по сети, так
как ГР является технологией с
негарантиро­ванной доставкой,
дейтаграммы могут бьггь потеряны,
задержаны или достав­лены не по
порядку, что ограничивает полезность
сообщений ICMP
о временных метках.

Сообщения
запроса и ответа информации. Сообщения
ICMP
запроса информации и ответа информации
(тип 15 и 16) в настоящее время устарели и
их использовать не рекомендуется. Они
предназначались для обнаружения
компьютерами своих IP-адресов
при загрузке. Сейчас для определения
адреса используют протоколы RARP
и ВООТР.

Получение
маски подсети.

Для применения адресации подсетей
компью­теру надо знать, какие биты их
32-битного IP-адреса
соответствуют физичес­кой сети, а
какие — адресу компьютера. Информация,
требуемая для интерпре­тации адреса,
представляет собой 32-битовую величину,
называемую маской подсети. Чтобы узнать
маску подсети, используемую в локальной
сети, маши­на может послать сообщение
запроса маски адреса маршрутизатору и
полу­чить ответ маски адреса. Машина,
формирующая запрос, может либо послать
сообщение напрямую, если она знает адрес
маршрутизатора, либо послать
ши­роковещательное сообщение, если
не знает его. Рис. 5.39 иллюстрирует фор­мат
сообщений маски адреса. Поле «Тип» в
сообщении маски адреса указыва­ет,
является ли сообщение запросом (17) или
ответом (18). Ответ содержит маску адреса
подсети в поле «Маска адреса». Как
правило, поля «Идентифи­катор» и
«Последовательный номер» позволяют
машине связать ответ с зап­росом.

Недостатком
протокола ICMP
является сохраняющаяся возможность
не­санкционированной посылки ложного
ICMP
Redirect
сообщения о смене марш­рута от имени
маршрутизатора.

Понравилась статья? Поделить с друзьями:
  • Ide error occurred android studio как исправить
  • Icmp error received 6 host unreachable
  • Ide drives installation error
  • Icmp error does not match an existing connection
  • Ide disk read error occurred