Какой протокол стека tcp ip используется для передачи сообщений об ошибках

Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.

Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую. Чтобы обеспечить такую возможность, был разработан стек интернет-протоколов, известный как TCP/IP.

Разработка сетевой модели осуществлялась при содействии Министерства обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:

Сравнение моделей

Выше мы уже упоминали, что модель TCP/IP разделена на уровни, как и OSI, но отличие двух моделей в количестве уровней. Документами, определяющими сертификацию модели, являются RFC 1122 и RFC1123. Эти стандарты описывают четыре уровня абстракции модели TCP/IP: прикладной, транспортный, межсетевой и канальный. Существуют и другие версии описания модели, в том числе включающие иное количество уровней и их наименований. Однако в этой статье мы придерживаемся оригинальной версии и далее рассмотрим четыре уровня модели.

Канальный уровень (link layer)

Предназначение канального уровня — дать описание тому, как происходит обмен информацией на уровне сетевых устройств, определить, как информация будет передаваться от одного устройства к другому. Информация здесь кодируется, делится на пакеты и отправляется по нужному каналу, т.е. среде передачи.

Этот уровень также вычисляет максимальное расстояние, на которое пакеты возможно передать, частоту сигнала, задержку ответа и т.д. Все это — физические свойства среды передачи информации. На канальном уровне самым распространенным протоколом является Ethernet, который мы рассмотрим в конце статьи.

Межсетевой уровень (internet layer)

Глобальная сеть интернет состоит из множества локальных сетей, взаимодействующих между собой. Межсетевой уровень используется, чтобы описать обеспечение такого взаимодействия.

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

Именно на межсетевом уровне функционирует протокол IP, позволивший объединить разные сети в глобальную. Как и протокол TCP, он дал название модели, рассматриваемой в статье.

Маска подсети и IP-адреса

IPv4 и IPv6

Маска подсети помогает маршрутизатору понять, как и куда передавать пакет. Подсетью может являться любая сеть со своими протоколами. Маршрутизатор передает пакет напрямую, если получатель находится в той же подсети, что и отправитель. Если же подсети получателя и отправителя различаются, пакет передается на второй маршрутизатор, со второго на третий и далее по цепочке, пока не достигнет получателя.

Протокол IP (Internet Protocol) используется маршрутизатором, чтобы определить, к какой подсети принадлежит получатель. Свой уникальный IP-адрес есть у каждого сетевого устройства, при этом в глобальной сети не может существовать два устройства с одинаковым IP. Протокол имеет две действующие версии, первая из которых — IPv4 (IP version 4, версии 4) — была описана в 1981 году.


IPv4 предусматривает назначение каждому устройству 32-битного IP-адреса, что ограничивало максимально возможное число уникальных адресов 4 миллиардами (2^32). В более привычном для человека десятичном виде IPv4 выглядит как четыре блока (октета) чисел от 0 до 255, разделенных тремя точками. Первый октет IP-адреса означает класс сети, классов всего 5: A, B, C, D, E. Gри этом адреса сети D являются мультикастовыми, а сети E вообще не используются.


Рассмотрим, например, IPv4 адрес класса С 223.135.100.7. Первые три октета определяют класс и номер сети, а последний означает номер конечного устройства. Например, если необходимо отправить информацию с компьютера номер 7 с IPv4 адресом 223.135.100.7 на компьютер номер 10 в той же подсети, то адрес компьютера получателя будет следующий: 223.135.100.10.

В связи с быстрым ростом сети интернет остро вставала необходимость увеличения числа возможных IP-адресов. В 1995 году впервые был описан протокол IPv6 (IP version 6, версии 6), который использует 128-битные адреса и позволяет назначить уникальные адреса для 2^128 устройств.

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

2dab:ffff:0000:0000:01aa:00ff:dd72:2c4a.

Так как IPv6 адреса длинные, их разрешается сокращать по определенным правилам, которые также описываются RFC:

  • Для написания адреса используются строчные буквы латинского алфавита: a, b, c, d, e, f.
  • Ведущие нули допускается не указывать — например, в адресе выше :00ff: можно записать как :ff:.
  • Группы нулей, идущие подряд, тоже допустимо сокращать и заменять на двойное двоеточие. На примере выше это выглядит так: 2dab:аааа::01aa:00ff:dd72:2c4a. Допускается делать не больше одного подобного сокращения в адресе IPv6 на наибольшей последовательности нулей. Если одинаково длинных последовательностей несколько — на самой левой из них.

IP предназначен для определения адресата и доставки ему информации. Он предоставляет услугу для вышестоящих уровней, но не гарантирует целостность доставляемой информации.

IP способен инкапсулировать другие протоколы, предоставлять место, куда они могут быть встроены. К таким протоколам, например, относятся ICMP (межсетевой протокол управляющих сообщений) и IGMP (межсетевой протокол группового управления). Информация о том, какой протокол инкапсулируется, отражается в заголовке IP-пакета. Так, ICMP будет обозначен числом 1, а IGMP будет обозначен числом 2.

ICMP

ICMP в основном используется устройствами в сети для доставки сообщений об ошибках и операционной информации, сообщающей об успехе или ошибке при связи с другим устройством. Например, именно с использованием ICMP осуществляется передача отчетов о недоступности устройств в сети. Кроме того, ICMP используется при диагностике сети — к примеру, в эксплуатации утилит ping или traceroute.

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

Транспортный уровень (transport layer)

Постоянные резиденты транспортного уровня — протоколы TCP и UDP, они занимаются доставкой информации.

TCP (протокол управления передачей) — надежный, он обеспечивает передачу информации, проверяя дошла ли она, насколько полным является объем полученной информации и т.д. TCP дает возможность двум конечным устройствам производить обмен пакетами через предварительно установленное соединение. Он предоставляет услугу для приложений, повторно запрашивает потерянную информацию, устраняет дублирующие пакеты, регулируя загруженность сети. TCP гарантирует получение и сборку информации у адресата в правильном порядке.

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

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

Протоколы транспортного уровня не интерпретируют информацию, полученную с верхнего или нижних уровней, они служат только как канал передачи, но есть исключения. RSVP (Resource Reservation Protocol, протокол резервирования сетевых ресурсов) может использоваться, например, роутерами или сетевыми экранами в целях анализа трафика и принятия решений о его передаче или отклонении в зависимости от содержимого.

Прикладной уровень (application layer)

В модели TCP/IP отсутствуют дополнительные промежуточные уровни (представления и сеансовый) в отличие от OSI. Функции форматирования и представления данных делегированы библиотекам и программным интерфейсам приложений (API) — своего рода базам знаний, содержащим сведения о том, как приложения взаимодействуют между собой. Когда службы или приложения обращаются к библиотеке или API, те в ответ предоставляют набор действий, необходимых для выполнения задачи и полную инструкцию, каким образом эти действия нужно выполнять.

Протоколы прикладного уровня действуют для большинства приложений, они предоставляют услуги пользователю или обмениваются данными с «коллегами» с нижних уровней по уже установленным соединениям. Здесь для большинства приложений созданы свои протоколы. Например, браузеры используют HTTP для передачи гипертекста по сети, почтовые клиенты — SMTP для передачи почты, FTP-клиенты — протокол FTP для передачи файлов, службы DHCP — протокол назначения IP-адресов DHCP и так далее.

Сети в Selectel

Узнайте, как устроена сетевая архитектура крупного провайдера.

Узнать

Зачем нужен порт и что означает термин «сокет»

Приложения прикладного уровня, общаются также с предыдущим, транспортным, но они видят его протоколы как «черные ящики». Для приема-передачи информации они могут работать, например, с TCP или UDP, но понимают только конечный адрес в виде IP и порта, а не принцип их работы.

Как говорилось ранее, IP-адрес присваивается каждому конечному устройству протоколом межсетевого уровня. Но обмен данными происходит не между конечными устройствами, а между приложениями, установленными на них. Чтобы получить доступ к тому или иному сетевому приложению недостаточно только IP-адреса, поэтому для идентификации приложений применяют также порты. Комбинация IP-адреса и порта называется сокетом, или гнездом (socket).

Кроме собственных протоколов, приложения на прикладном уровне зачастую имеют и фиксированный номер порта для обращения к сети. Администрация адресного пространства интернет (IANA), занимающаяся выделением диапазонов IP-адресов, отвечает еще за назначение сетевым приложениям портов.

Так почтовые приложения, которые общаются по SMTP-протоколу, используют порт 25, по протоколу POP3 — порт 110, браузеры при работе по HTTP — порт 80, FTP-клиенты — порт 21. Порт всегда записывается после IP и отделяется от него двоеточием, выглядит это, например, так: 192.168.1.1:80.

Что такое DNS и для чего используется эта служба

Чтобы не запоминать числовые адреса интернет-серверов была создана DNS — служба доменных имен. DNS всегда слушает на 53 порту и преобразует буквенные имена сетевых доменов в числовые IP-адреса и наоборот. Служба DNS позволяет не запоминать IP — компьютер самостоятельно посылает запрос «какой IP у selectel.ru?» на 53 порт DNS-сервера, полученного от поставщика услуг интернет.

DNS-сервер дает компьютеру ответ «IP для selectel.ru — XXX.XXX.XXX.XXX». Затем, компьютер устанавливает соединение с веб-сервером полученного IP, который слушает на порту 80 для HTTP-протокола и на порту 443 для HTTPS. В браузере порт не отображается в адресной строке, а используется по умолчанию, но, по сути, полный адрес сайта Selectel выглядит вот так: https://selectel.ru:443.

Декапсуляция и инкапсуляция

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

Инкапсуляция

Стек протоколов, снова канальный уровень

О канальном уровне модели TCP/IP мы рассказали меньше всего. Давайте вернемся еще раз к началу, чтобы рассмотреть инкапсуляцию протоколов и что значит «стек».

Большинству пользователей знаком протокол Ethernet. В сети, по стандарту Ethernet, устройства отправителя и адресата имеют определенный MAC-адрес — идентификатор «железа». MAC-адрес инкапсулируется в Ethernet вместе с типом передаваемых данных и самими данными. Фрагмент данных, составленных в соответствии с Ethernet, называется фреймом, или кадром (frame).

MAC-адрес каждого устройства уникален, и двух «железок» с одинаковым адресом не должно существовать. Совпадение может привести к сетевым проблемам. Таким образом, при получении кадра сетевой адаптер занимается извлечением полученной информации и ее дальнейшей обработкой.

После ознакомления с уровневой структурой модели становится понятно, что информация не может передаваться между двумя компьютерами напрямую. Сначала кадры передаются на межсетевой уровень, где компьютеру отправителя и компьютеру получателя назначается уникальный IP. После чего, на транспортном уровне, информация передается в виде TCP-фреймов либо UDP-датаграмм.

На каждом этапе, подобно снежному кому, к уже имеющейся информации добавляется служебная информация, например, порт на прикладном уровне, необходимый для идентификации сетевого приложения. Добавление служебной информации к основной обеспечивают разные протоколы — сначала Ethernet, поверх него IP, еще выше TCP, над ним порт, означающий приложение с делегированным ему протоколом. Такая вложенность называется стеком, названным TCP/IP по двум главным протоколам модели.

Point-to-Point протоколы

Протоколы модели TCP/IP

Отдельно расскажем о Point-to-Point (от точки к точке, двухточечный) протоколе, также известном как PPP. PPP уникален по своим функциям, он применяется для коммуникации между двумя маршрутизаторами без участия хоста или какой-либо сетевой структуры в промежутке. При необходимости PPP обеспечивает аутентификацию, шифрование, а также сжатие данных. Он широко используется при построении физических сетей, например, кабельных телефонных, сотовых телефонных, сетей по кабелю последовательной передачи и транк-линий (когда один маршрутизатор подключают к другому для увеличения размера сети).

У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM), интернет-провайдеры часто их используют для DSL соединений.

PPP и его старший аналог SLIP (протокол последовательной межсетевой связи) формально относятся к межсетевому уровню TCP/IP, но в силу особого принципа работы, иногда выделяются в отдельную категорию. Преимущество PPP в том, что для установки соединения не требуется сетевая инфраструктура, а необходимость маршрутизаторов отпадает. Эти факторы обуславливают специфику использования PPP протоколов.

Заключение

Стек TCP/IP регламентирует взаимодействие разных уровней. Ключевым понятием здесь являются протоколы, формирующие стек, встраиваясь друг в друга с целью передать данные. Рассмотренная модель по сравнению с OSI имеет более простую архитектуру.

Сама модель остается неизменной, в то время как стандарты протоколов могут обновляться, что еще дальше упрощает работу с TCP/IP. Благодаря всем преимуществам стек TCP/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 ��������� ��������� �����,
������������, ����� ��� ����
������� ? ������ ?

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


Большинство из нас знает TCP/IP как «клей», связующий Internet. Но не многие способны дать убедительное описание того, что этот протокол представляет собой и как работает. Итак, что же такое TCP/IP в действительности?

TCP/IP — это средство для обмена информацией между компьютерами, объединенными в сеть. Не имеет значения, составляют ли они часть одной и той же сети или подключены к отдельным сетям. Не играет роли и то, что один из них может быть компьютером Cray, а другой Macintosh. TCP/IP — это не зависящий от платформы стандарт, который перекидывает мосты через пропасть, лежащую между разнородными компьютерами, операционными системами и сетями. Это протокол, который глобально управляет Internet, и в значительной мере благодаря сети TCP/IP завоевал свою популярность.

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

  • Основы TCP/IP
  • Архитектура TCP/IP
  • Краткое заключение

TCP/IP — это аббревиатура термина Transmission Control Protocol/Internet Protocol (Протокол управления передачей/Протокол Internet). В терминологии вычислительных сетей протокол — это заранее согласованный стандарт, который позволяет двум компьютерам обмениваться данными. Фактически TCP/IP не один протокол, а несколько. Именно поэтому вы часто слышите, как его называют набором, или комплектом протоколов, среди которых TCP и IP — два основных.

Программное обеспечение для TCP/IP, на вашем компьютере, представляет собой специфичную для данной платформы реализацию TCP, IP и других членов семейства TCP/IP. Обычно в нем также имеются такие высокоуровневые прикладные программы, как FTP (File Transfer Protocol, Протокол передачи файлов), которые дают возможность через командную строку управлять обменом файлами по Сети.

TCP/IP — зародился в результате исследований, профинансированных Управлением перспективных научно-исследовательских разработок (Advanced Research Project Agency, ARPA) правительства США в 1970-х годах. Этот протокол был разработан с тем, чтобы вычислительные сети исследовательских центров во всем мире могли быть объединены в форме виртуальной «сети сетей» (internetwork). Первоначальная Internet была создана в результате преобразования существующего конгломерата вычислительных сетей, носивших название ARPAnet, с помощью TCP/IP.

Причина, по которой TCP/IP столь важен сегодня, заключается в том, что он позволяет самостоятельным сетям подключаться к Internet или объединяться для создания частных интрасетей. Вычислительные сети, составляющие интрасеть, физически подключаются через устройства, называемые маршрутизаторами или IP-маршрутизаторами. Маршрутизатор — это компьютер, который передает пакеты данных из одной сети в другую. В интрасети, работающей на основе TCP/IP, информация передается в виде дискретных блоков, называемых IP-пакетами (IP packets) или IP-дейтаграммами (IP datagrams). Благодаря программному обеспечению TCP/IP все компьютеры, подключенные к вычислительной сети, становятся «близкими родственниками». По существу оно скрывает маршрутизаторы и базовую архитектуру сетей и делает так, что все это выглядит как одна большая сеть. Точно так же, как подключения к сети Ethernet распознаются по 48-разрядным идентификаторам Ethernet, подключения к интрасети идентифицируются 32-разрядными IP-адресами, которые мы выражаем в форме десятичных чисел, разделенных точками (например, 128.10.2.3). Взяв IP-адрес удаленного компьютера, компьютер в интрасети или в Internet может отправить данные на него, как будто они составляют часть одной и той же физической сети.

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

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

Другой важный член комплекта TCP/IP — User Datagram Protocol (UDP, протокол пользовательских дейтаграмм), который похож на TCP, но более примитивен. TCP — «надежный» протокол, потому что он обеспечивает проверку на наличие ошибок и обмен подтверждающими сообщениями чтобы данные достигали своего места назначения заведомо без искажений. UDP — «ненадежный» протокол, ибо не гарантирует, что дейтаграммы будут приходить в том порядке, в котором были посланы, и даже того, что они придут вообще. Если надежность — желательное условие, для его реализации потребуется программное обеспечение. Но UDP по-прежнему занимает свое место в мире TCP/IP, и испльзуется во многих программах. Прикладная программа SNMP (Simple Network Management Protocol, простой протокол управления сетями), реализуемый во многих воплощениях TCP/IP, — это один из примеров программ UDP.

Другие TCP/IP протоколы играют менее заметные, но в равной степени важные роли в работе сетей TCP/IP. Например, протокол определения адресов (Address Resolution Protocol, ARP) ппреобразует IP-адреса в физические сетевые адреса, такие, как идентификаторы Ethernet. Родственный протокол — протокол обратного преобразования адресов (Reverse Address Resolution Protocol, RARP) — выполняет обеспечивает обратное действие, преобразуя физические сетевые адреса в IP-адреса. Протокол управления сообщениями Internet (Internet Control Message Protocol, ICMP) представляет собой протокол сопровождения, который использует IP для обмена управляющей информацией и контроля над ошибками, относящимися к передаче пакетов IP. Например, если маршрутизатор не может передать IP-дейтаграмму, он использует ICMP, с тем чтобы информировать отправителя, что возникла проблема. Краткое описание некоторых других протоколов, которые «прячутся под зонтиком» TCP/IP, приведено во врезке.

Краткое описание протоколов семейства TCP/IP с расшифровкой аббревиатур
ARP (Address Resolution Protocol, протокол определения адресов): конвертирует 32-разрядные IP-адреса в физические адреса вычислительной сети, например, в 48-разрядные адреса Ethernet.

FTP (File Transfer Protocol, протокол передачи файлов): позволяет передавать файлы с одного компьютера на другой с использованием TCP-соединений. В родственном ему, но менее распространенном протоколе передачи файлов — Trivial File Transfer Protocol (TFTP) — для пересылки файлов применяется UDP, а не TCP.

ICMP (Internet Control Message Protocol, протокол управляющих сообщений Internet): позволяет IP-маршрутизаторам посылать сообщения об ошибках и управляющую информацию другим IP-маршрутизаторам и главным компьютерам сети. ICMP-сообщения «путешествуют» в виде полей данных IP-дейтаграмм и обязательно должны реализовываться во всех вариантах IP.

IGMP (Internet Group Management Protocol, протокол управления группами Internet): позволяет IP-дейтаграммам распространяться в циркулярном режиме (multicast) среди компьютеров, которые принадлежат к соответствующим группам.

IP (Internet Protocol, протокол Internet): низкоуровневый протокол, который направляет пакеты данных по отдельным сетям, связанным вместе с помощью маршрутизаторов для формирования Internet или интрасети. Данные «путешествуют» в форме пакетов, называемых IP-дейтаграммами.

RARP (Reverse Address Resolution Protocol, протокол обратного преобразования адресов): преобразует физические сетевые адреса в IP-адреса.

SMTP (Simple Mail Transfer Protocol, простой протокол обмена электронной почтой): определяет формат сообщений, которые SMTP-клиент, работающий на одном компьютере, может использовать для пересылки электронной почты на SMTP-сервер, запущенный на другом компьютере.

TCP (Transmission Control Protocol, протокол управления передачей): протокол ориентирован на работу с подключениями и передает данные в виде потоков байтов. Данные пересылаются пакетами — TCP-сегментами, — которые состоят из заголовков TCP и данных. TCP — «надежный» протокол, потому что в нем используются контрольные суммы для проверки целостности данных и отправка подтверждений, чтобы гарантировать, что переданные данные приняты без искажений.

UDP (User Datagram Protocol, протокол пользовательских дейтаграмм): протокол, не зависящий от подключений, который передает данные пакетами, называемыми UDP-дейтаграммами. UDP — «ненадежный» протокол, поскольку отправитель не получает информацию, показывающую, была ли в действительности принята дейтаграмма.

Проектировщики вычислительных сетей часто используют семиуровневую модель ISO/OSI (International Standards Organization/Open Systems Interconnect, Международная организация по стандартизации/ Взаимодействие открытых систем), которая описывает архитектуру сетей. Каждый уровень в этой модели соответствует одному уровню функциональных возможностей сети. В самом основании располагается физический уровень, представляющий физическую среду, по которой «путешествуют» данные, — другими словами, кабельную систему вычислительной сети. Над ним имеется канальный уровень, или уровень звена данных, функционирование которого обеспечивается сетевыми интерфейсными платами. На самом верху размещается уровень прикладных программ, где работают программы, использующие служебные функции сетей.

На рисунке показано, как TCP/IP согласуется с моделью ISO/OSI. Этот рисунок также иллюстрирует уровневое строение TCP/IP и показывает взаимосвязи между основными протоколами. При переносе блока данных из сетевой прикладной программы в плату сетевого адаптера он последовательно проходит через ряд модулей TCP/IP. При этом на каждом шаге он доукомплектовывается информацией, необходимой для эквивалентного модуля TCP/IP на другом конце цепочки. К тому моменту, когда данные попадают в сетевую плату, они представляют собой стандартный кадр Ethernet, если предположить, что сеть основана именно на этом интерфейсе. Программное обеспечение TCP/IP на приемном конце воссоздает исходные данные для принимающей программы путем захвата кадра Ethernet и прохождения его в обратном порядке по набору модулей TCP/IP. (Один из наилучших способов разобраться во внутреннем устройстве TCP/IP стоит в использовании программы-«шпиона», чтобы найти внутри кадров, «пролетающих» по сети, информацию, добавленную различными модулями TCP/IP.)

Уровни сетей и протоколы TCP/IP

ISO/OSI                             TCP/IP
    _____________________________      __________________________
   | Уровень прикладных программ |    |                          |
   |_____________________________|    |  _________    _________  |
    _____________________________     | |Сетевая  |  |Сетевая  | | Уровень
   |    Уровень представления    |    | |программа|  |программа| | прикладных
   |_____________________________|    | |_________|  |_________| | программ
    _____________________________     |                          |
   |       Уровень сеанса        |    |                          |
   |_____________________________|    |__________________________|
                                            |             |
    _____________________________      _____|_____________|______
   |    Транспортный уровень     |    |    TCP           UDP     | Транспортный
   |_____________________________|    |_____|_____________|______| уровень
                                            |             |
    _____________________________      _____|_____________|______
   |       Сетевой уровень       |    |     |             |      | Сетевой
   |_____________________________|    |      ----> IP <---       | уровень
                                      |__________________________|
                                               _________
    _____________________________      _______| Сетевая |________
   |    Уровень звена данных     |    | ARP<->| плата   |<->RARP | Уровень
   |_____________________________|    |_______|_________|________| звена
                                                   |               данных
    _____________________________                  |
   |    Физический уровень       |    _____________|______________ Физический
   |_____________________________|      Кабельные соединения сети  уровень

В левой части этой диаграммы показаны уровни модели ISO/OSI. Правая часть диаграммы иллюстрирует корреляцию TCP/IP с этой моделью.

Для иллюстрации роли, которую TCP/IP играет в вычислительных сетях в реальном мире, рассмотрим, что происходит, когда Web-браузер использует HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) для извлечения страницы HTML-данных из Web-сервера, подключенного к Internet. Для формирования виртуального подключения к серверу браузер использует абстракцию программного обеспечения высокого уровня, называемую гнездом (socket). А чтобы извлечь страницу Web, он посылает на сервер команду GET HTTP, записывая ее в гнездо. Программное обеспечение гнезда, в свою очередь, применяет TCP для пересылки битов и байтов, составляющих команду GET на Web-сервер. TCP сегментирует данные и передает отдельные сегменты модулю IP, который пересылает сегменты в дейтаграммах на Web-сервер.

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

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

О TCP/IP можно было бы рассказать много больше, но есть три ключевых момента:

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

Официальная документация по Internet

RFC (Request for Comments) — официальная документация по Internet, можно найти по адресу http://www.rfc-editor.org/ или http://www.ietf.org/rfc.html .

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

Адресация в сети Internet.

Типы адресов.

Типы адресов:

  1. Физический (MAC-адрес)

  2. Сетевой (IP-адрес)

  3. Символьный (DNS-имя)

Компьютер в сети TCP/IP может иметь адреса трех уровней (но не менее двух):

  • Локальный адрес компьютера. Для узлов, входящих в локальные сети — это МАС-адрес сетевого адаптера. Эти адреса назначаются производителями оборудования и являются уникальными адресами.

  • IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов.

  • Символьный идентификатор-имя (DNS), например, www.kstu.ru.

IP-адреса

IPv4 — адрес является уникальным 32-битным идентификатором IP-интерфейса в Интернет.

IPv6 — адрес является уникальным 128-битным идентификатором IP-интерфейса в Интернет, иногда называют Internet-2, адресного пространства IPv4 уже стало не хватать, поэтому постепенно вводят новый стандарт.

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

10100000010100010000010110000011
записывается как

10100000.01010001.00000101.10000011 = 160.81.5.131

1-5

Перевод адреса из двоичной системы в десятичную

IP-адрес хоста состоит из номера IP-сети, который занимает старшую область адреса, и номера хоста в этой сети, который занимает младшую часть.

160.81.5.131 — IP-адрес

160.81.5. — номер сети

131 — номер хоста

Базовые протоколы (IP, TCP, UDP)

Стек протоколов TCP/IP 

TCP/IP — собирательное название для набора (стека) сетевых протоколов разных уровней, используемых в Интернет. Особенности TCP/IP:

  • Открытые стандарты протоколов, разрабатываемые независимо от программного и аппаратного обеспечения;

  • Независимость от физической среды передачи;

  • Система уникальной адресации;

  • Стандартизованные протоколы высокого уровня для распространенных пользовательских сервисов.

1-2

Стек протоколов TCP/IP

Стек протоколов TCP/IP делится на 4 уровня:

  • Прикладной,

  • Транспортный,

  • Межсетевой,

  • Физический и канальный.

Позже была принята 7-ми уровневая модель ISO.

Данные передаются в пакетах. Пакеты имеют заголовок и окончание, которые содержат служебную информацию. Данные, более верхних уровней вставляются, в пакеты нижних уровней.

1-3

Пример инкапсуляции пакетов в стеке TCP/IP

Физический и канальный уровень.

Стек TCP/IP не подразумевает использования каких-либо определенных протоколов уровня доступа к среде передачи и физических сред передачи данных. От уровня доступа к среде передачи требуется наличие интерфейса с модулем IP, обеспечивающего передачу IP-пакетов. Также требуется обеспечить преобразование IP-адреса узла сети, на который передается IP-пакет, в MAC-адрес. Часто в качестве уровня доступа к среде передачи могут выступать целые протокольные стеки, тогда говорят об IP поверх ATM, IP поверх IPX, IP поверх X.25 и т.п.

Межсетевой уровень и протокол IP.

Основу этого уровня составляет IP-протокол.

IP (Internet Protocol) – интернет протокол.

Первый стандарт IPv4 определен в RFC-760 (DoD standard Internet Protocol J. Postel Jan-01-1980)

Последняя версия IPv4 — RFC-791 (Internet Protocol J. Postel Sep-01-1981).

Первый стандарт IPv6 определен в RFC-1883 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden December 1995)

Последняя версия IPv6 — RFC-2460 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden December 1998).

Основные задачи:

  • Адресация

  • Маршрутизация

  • Фрагментация датаграмм

  • Передача данных

Протокол IP доставляет блоки данных от одного IP-адреса к другому.

Программа, реализующая функции того или иного протокола, часто называется модулем, например, “IP-модуль”, “модуль TCP”.

Когда модуль IP получает IP-пакет с нижнего уровня, он проверяет IP-адрес назначения.

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

  • Если же адрес назначения IP-пакета — чужой, то модуль IP может принять два решения: первое — уничтожить IP-пакет, второе — отправить его дальше к месту назначения, определив маршрут следования — так поступают маршрутизаторы.

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

Если модуль IP по какой-либо причине не может доставить IP-пакет, он уничтожается. При этом модуль IP может отправить компьютеру-источнику этого IP-пакета уведомление об ошибке; такие уведомления отправляются с помощью протокола ICMP, являющегося неотъемлемой частью модуля IP. Более никаких средств контроля корректности данных, подтверждения их доставки, обеспечения правильного порядка следования IP-пакетов, предварительного установления соединения между компьютерами протокол IP не имеет. Эта задача возложена на транспортный уровень.

1-6

Структура дейтограммы IP. Слова по 32 бита.

Версия — версия протокола IP (например, 4 или 6)

Длина заг. — длина заголовка IP-пакета.

Тип сервиса (TOS — type of service) — Тип сервиса (подробнее рассмотрен в лекции 8).

TOS играет важную роль в маршрутизации пакетов. Интернет не гарантирует запрашиваемый TOS, но многие маршрутизаторы учитывают эти запросы при выборе маршрута (протоколы OSPF и IGRP).

Идентификатор дейтаграммы, флаги (3 бита) и указатель фрагмента — используются для распознавания пакетов, образовавшихся путем фрагментации исходного пакета.

Время жизни (TTL — time to live) — каждый маршрутизатор уменьшает его на 1, что бы пакеты не блуждали вечно.

Протокол — Идентификатор протокола верхнего уровня указывает, какому протоколу верхнего уровня принадлежит пакет (например: TCP, UDP).

Коды некоторые протоколов RFC-1700 (1994)

Код Протокол Описание
0 Зарезервировано
1 ICMP Протокол контрольных сообщений
2 IGMP Групповой протокол управления
4 IP IP-поверх-IP (туннели)
6 TCP Протокол управления передачей
8 EGP Протокол внешней маршрутизации
9 IGP Протокол внутренней маршрутизации
17 UDP Протокол дейтограмм пользователя
35 IDRP Междоменный протокол маршрутизации
36 XTP Xpress транспортный протокол
46 RSVP Протокол резервирования ресурсов канала
88 IGRP внутренний протокол маршрутизации
89 OSPFIGP внутренний протокол маршрутизации
97 ETHERIP Ethernet-поверх-IP
101-254 не определены
255 зарезервировано

Маршрутизация.

Протокол IP является маршрутизируемый, для его маршрутизации нужна маршрутная информация.

Маршрутная информация, может быть:

  • Статической (маршрутные таблицы прописываются вручную)

  • Динамической (маршрутную информацию распространяют специальные протоколы)

Протоколы динамической маршрутизации:

  • RIP (Routing Information Protocol) — протокол передачи маршрутной информации, маршрутизаторы динамически создают маршрутные таблицы.

  • OSPF (Open Shortest Path First) — протокол «Открой кротчайший путь первым», является внутренним протоколом маршрутизации.

  • IGP (Interior Gateway Protocols) — внутренние протоколы маршрутизации, распространяет маршрутную информацию внутри одной автономной системе.

  • EGP (Exterior Gateway Protocols) — внешние протоколы маршрутизации, распространяет маршрутную информацию между автономными системами.

  • BGP (Border Gateway Protocol) — протокол граничных маршрутизаторов.

Протокол ICMP

ICMP (Internet Control Message Protocol) — расширение протокола IP, позволяет передавать сообщения об ошибке или проверочные сообщения.

Другие служебные IP-протоколы

IGMP (Internet Group Management Protocol) — позволяет организовать многоадресную рассылку средствами IP.

RSVP (Resource Reservation Protocol) — протокол резервирования ресурсов.

ARP (Address Resolution Protocol) — протокол преобразования IP-адреса и адреса канального уровня.

Транспортный уровень

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

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

На транспортном уровне работают два основных протокола: UDP и TCP.

Протокол надежной доставки сообщений TCP

TCP (Transfer Control Protocol) – протокол контроля передачи, протокол TCP применяется в тех случаях, когда требуется гарантированная доставка сообщений.

Первая и последняя версия TCP — RFC-793 (Transmission Control Protocol J. Postel Sep-01-1981).

Основные особенности:

  • Устанавливается соединение.

  • Данные передаются сегментами. Модуль TCP нарезает большие сообщения (файлы) на пакеты, каждый из которых передается отдельно, на приемнике наоборот файлы собираются. Для этого нужен порядковый номер (Sequence Number — SN) пакета.

  • Посылает запрос на следующий пакет, указывая его номер в поле «Номер подтверждения» (AS). Тем самым, подтверждая получение предыдущего пакета.

  • Делает проверку целостности данных, если пакет битый посылает повторный запрос.

1-8

Структура дейтограммы TCP. Слова по 32 бита.

Длина заголовка — задается словами по 32бита.

Размер окна — количество байт, которые готов принять получатель без подтверждения.

Контрольная сумма — включает псевдо заголовок, заголовок и данные.

Указатель срочности — указывает последний байт срочных данных, на которые надо немедленно реагировать.

URG — флаг срочности, включает поле «Указатель срочности», если =0 то поле игнорируется.

ACK — флаг подтверждение, включает поле «Номер подтверждения, если =0 то поле игнорируется.

PSH — флаг требует выполнения операции push, модуль TCP должен срочно передать пакет программе.

RST — флаг прерывания соединения, используется для отказа в соединении

SYN — флаг синхронизация порядковых номеров, используется при установлении соединения.

FIN — флаг окончание передачи со стороны отправителя

Протокол UDP 

UDP (Universal Datagram Protocol) универсальный протокол передачи данных, более облегченный транспортный протокол, чем TCP.

Первая и последняя версия UDP — RFC-768 (User Datagram Protocol J. Postel Aug-28-1980).

Основные отличия от TCP:

  • Отсутствует соединение между модулями UDP.

  • Не разбивает сообщение для передачи

  • При потере пакета запрос для повторной передачи не посылается

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

1-7

Структура дейтограммы UDP. Слова по 32 бита.

Не все поля UDP-пакета обязательно должны быть заполнены. Если посылаемая дейтаграмма не предполагает ответа, то на месте адреса отправителя могут помещаться нули.

Протокол реального времени RTP

RTP (Real Time Protocol) — транспортный протокол для приложений реального времени.

RTCP (Real Time Control Protocol) — транспортный протокол обратной связи для приложения RTP..

Назначение портов

По номеру порта транспортные протоколы определяют, какому приложению передать содержимое пакетов.

Порты могут принимать значение от 0-65535 (два байта 2^16).

Номера портам присваиваются таким образом: имеются стандартные номера (например, номер 21 закреплен за сервисом FTP, 23 — за telnet, 80 — за HTTP), а менее известные приложения пользуются произвольно выбранными локальными номерами (как правило, больше>1024), некоторые из них также зарезервированы.

Некоторые заданные порты RFC-1700 (1994)

43%

Порт Служба Описание
0 Зарезервировано
13 Daytime Синхронизация времени
20 ftp-data Канал передачи данных для FTP
21 ftp Передача файлов
23 telnet Сетевой терминал
25 SMTP Передача почты
37 time Синхронизация времени
43 Whois Служба Whois
53 DNS Доменные имена
67 bootps BOOTP и DHCP — сервер
68 bootps BOOTP и DHCP — клиент
69 tftp Упрощенная передача почты
80 HTTP Передача гипертекста
109 POP2 Получение почты
110 POP3 Получение почты
119 NNTP Конференции
123 NTP Синхронизация времени
137 netbios-ns NETBIOS — имена
138 netbios-dgm NETBIOS Datagram Service
139 netbios-ssn NETBIOS Session Service
143 imap2 Получение почты
161 SNMP Протокол управления
210 z39.50 Библиотечный протокол
213 IPX IPX — протокол
220 imap3 Получение почты
443 HTTPs HTTP с шифрованием
520 RIP Динамическая маршрутизация
Диапазон 1024-65535
1024 Зарезервировано
6000-6063 X11 Графический сетевой терминал

Программа Ping

Программа для проверки соединения и работы с удаленным хостом. 

Программа TraceRoute позволяет проверить маршрут до удаленного хоста.

Программа nmap — позволяет сканировать порты. 

Работу порта, также можно проверить с помощью telnet.

Ликбез по сетям :octocat:

TCP/IP

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

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

Уровни стека TCP/IP

Стек протоколов TCP/IP включает в себя четыре уровня

  • Прикладной уровень (Application Layer)
  • Транспортный уровень (Transport Layer)
  • Межсетевой уровень (Сетевой уровень) (Internet Layer)
  • Уровень доступа к сети (Network Access Layer)

На стеке протоколов TCP/IP построено всё взаимодействие пользователей в IP-сетях.
Стек является независимым от физической среды передачи данных, благодаря чему,
в частности, обеспечивается полностью прозрачное взаимодействие между проводными
и беспроводными сетями.

Уровень Протоколы Описание
Application HTTP, FTP, SSH взаимодействие сети и пользователя — на данном уровне работает большинство сетевых приложений. Эти программы имеют свои собственные протоколы обмена информацией, например, интернет браузер для протокола HTTP, ftp-клиент для протокола FTP (передача файлов), почтовая программа для протокола SMTP (электронная почта), SSH (безопасное соединение с удалённой машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.
Transport TCP, UDP определяют, для какого именно приложения предназначены данные — протоколы транспортного уровня (Transport layer) могут решать проблему негарантированной доставки сообщений («дошло ли сообщение до адресата?»), а также гарантировать правильную последовательность прихода данных. В стеке TCP/IP транспортные протоколы определяют, для какого именно приложения предназначены эти данные.
Network IP, ICMP, IC-MP определения пути передачи данных — межсетевой уровень (Internet layer) изначально разработан для передачи данных из одной сети в другую. На этом уровне работают маршрутизаторы, которые перенаправляют пакеты в нужную сеть путем расчета адреса сети по маске сети. С развитием концепции глобальной сети в уровень были внесены дополнительные возможности по передаче из любой сети в любую сеть, независимо от протоколов нижнего уровня, а также возможность запрашивать данные от удалённой стороны
Link ARP, Ethernet, Wi-Fi отвечает за доставку кадров между устройствами, подключенными к одному сетевому сегменту — канальный (физический) уровень (Link layer) описывает способ кодирования данных для передачи пакета данных на физическом уровне (то есть специальные последовательности бит, определяющих начало и конец пакета данных, а также обеспечивающие помехоустойчивость). Ethernet, например, в полях заголовка пакета содержит указание того, какой машине или машинам в сети предназначен этот пакет. Кроме того, канальный уровень описывает среду передачи данных (будь то коаксиальный кабель, витая пара, оптическое волокно или радиоканал), физические характеристики такой среды и принцип передачи данных (разделение каналов, модуляцию, амплитуду сигналов, частоту сигналов, способ синхронизации передачи, время ожидания ответа и максимальное расстояние).

Уровень Application

Протокол верхнего (7-го) уровня сетевой модели OSI,
обеспечивает взаимодействие сети и пользователя.
Уровень разрешает приложениям пользователя иметь доступ к сетевым службам,
таким, как обработчик запросов к базам данных, доступ к файлам,
пересылке электронной почты.


Уровень Network

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

Сетевой уровень отвечает на запросы обслуживания от
Транспортного уровня и направляет запросы обслуживания на
Канальный уровень. (от Transport на Link)

Протоколы данного уровня могут быть разделены на два класса: протоколы с установкой соединения и без него.

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

IP-адрес

Для того, чтобы общаться по сети, необходимо знать адрес того, с кем общаешься.
У каждого есть такой адрес, IP-адрес (Internet Protocol). Он занимает 4 байта. Обозначается IPv4.

Пример: IP-адрес spbau.ru194.85.238.98.

Для всех устройств количество различных IP-адресов не хватает.

Есть запрещенные для использования IP-адреса, каждый из них подходит под один из паттернов:

  • 192.169.*.*
  • 10.*.*.*
  • 172.*.*.*
  • 100.*.*.*

Для чего нужно было вводить запрещенные на использования IP-адреса, если их и так не всем хватает?

В связи с проблемой нехватки IP-адресов было решено ввести
механим различия передачи данных по локальной сети (например, планшет-роутер)
и по внешней сети (например, планшет-vk.com).
Поэтому для общения по локальной сети используются IP-адреса из запрещенного диапазона.

Они могу называться внутренними, внутрисетевыми, локальными или «серыми».

Английский вариант — private IP adress

Когда Igor через планшет хочет выйти в интернет, роутер преобразует IP-адреса локальной
сети в свой IP-адрес. Со стороны внешнего мира кажется, что пакеты идут не от планшета,
а от роутера.

Пакеты с разных устройств поступают на роутер, после чего адреса их отправителей подменяются на один общий.
Когда приходит ответ на запрос, адрес подменяется обратно и ответ приходит тому, кому надо.
Этот механизм называется NAT (Network Address Translation).

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

Более формально — таблица маршрутизации обычно содержит:

Адрес Маска сети назначения Шлюз Интерфейс Метрика
адрес сети или узла назначения, либо указание, что маршрут является маршрутом по умолчанию (для IPv4-сетей маска /32 (255.255.255.255) позволяет указать единичный узел сети) обозначает адрес маршрутизатора в сети, на который необходимо отправить пакет, следующий до указанного адреса назначения интерфейс, через который доступен шлюз (в зависимости от системы, это может быть порядковый номер, GUID или символьное имя устройства; интерфейс может быть отличен от шлюза, если шлюз доступен через дополнительное сетевое устройство, например, сетевую карту) числовой показатель, задающий предпочтительность маршрута. Чем меньше число, тем более предпочтителен маршрут (интуитивно представляется как расстояние)

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

Пример таблицы NAT:

«Белый» IP-адрес «Серый» IP-адрес
209.165.200.226:1444 192.168.1.15:1444
209.165.200.226:1445 192.168.1.26:1444

Port

Порт — это натуральное число, записываемое в заголовках протоколов
транспортного уровня модели OSI. Используется для определения процесса-получателя
пакета в пределах одного хоста.

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

Процесс программы, желающей обмениваться данными по сети, может

  • потребовать у ОС в своё распоряжение порт с определённым номером.
    ОС может либо предоставить порт с этим номером, либо отказать программе
    (например, в случае, когда порт с этим номером уже отдан в распоряжение другому процессу);
  • потребовать у ОС в своё распоряжение свободный порт с любым номером.
    ОС в этом случае сама выберет свободный порт, ещё не занятый никаким
    процессом, и предоставит его в распоряжение запрашивающей программе.

Если на хосте какой‑либо процесс постоянно использует один номер порта
(например, процесс программы, реализующей web-сервер, может использовать
порт 80 для приёма и передачи данных), говорят, что порт является «открытым».

Если процесс получил номер порта у ОС («открыл порт») и «держит его открытым»
для приёма и передачи данных, говорят, что процесс «прослушивает»
порт.


В реальности пользователь подключен к провайдеру, который может быть подключен к
более общему провайдеру, и т.д. Тогда при передаче пакета, IP-адрес может заменяться несколько
раз. Можно у провайдера купить ”белый” IP-адрес, который можно использовать в интернете,
и он подменяться не будет.

Наряду с 4-байтовым протоколом IPv4, есть протокол IPv6. В нем адрес занимает 16 бай-
тов, и таких адресов хватит на всех. Но этот протокол не поддерживается почти никакими
провайдерами.

Mask

У каждого устройства в сети есть еще и маска. Она также, как и IP-адрес, занимает 4 байта.
Всегда маска устроена следующим образом: сначала идет определенное число 1, а оставшееся
место занимают 0.

Маску можно записывать следующими способами:

  1. либо в десятичной системе счисления через 4 числа — 255.255.254.0
  2. либо приписывать к IP-адресу количество единиц — 194.85.248.10/24

Маску используют чтобы определить, лежат ли два устройства в одной сети. Для этого
Считают побитовые & адресов с маской и сравнивают результаты.

Gateway

Common

Наряду с 4-байтовым протоколом IPv4, есть протокол IPv6. В нем адрес занимает 16 бай-
тов, и таких адресов хватит на всех. Но этот протокол не поддерживается почти никакими
провайдерами.

Рассмотрим подробнее, как устроено облачко. От коробочки с антеннами идет провод к
маршрутизатору, общему на один дом. От него идет провод к центральному маршрутизатору
в районе, итд. У каждого маршрутизатора в этой цепочке есть IP-адрес, маска и шлюз. Когда
приходит пакет, маршрутизатор смотрит адрес получателя. Если этот адрес лежит с ним в
одной сети, пакет отправляется по адресу. Иначе пакет через шлюз отправляется на следующий
маршрутизатор более глобальной сети.

Когда запрос Алисы пришел на сервер ВК, тот формирует ответ и хочет его отправить
обратно Алисе. Для этого ему нужен её IP-адрес. Этот адрес был отправлен вместе с запросом.
Не забываем, что при передаче запроса, IP-адрес отправителя может меняться.

Таким образом, на уровне Network внешняя обертка содержит IP1 – адрес отправителя и
IP2 – адрес получателя.


Уровень Transport

Протоколы транспортного уровня (Transport layer) могут решать
проблему негарантированной доставки сообщений («дошло ли сообщение до адресата?»),
а также гарантировать правильную последовательность прихода данных.
В стеке TCP/IP транспортные протоколы определяют,
для какого именно приложения предназначены эти данные
.

  • TCP (IP идентификатор 6) — «гарантированный» транспортный механизм с
    предварительным установлением соединения
    , предоставляющий приложению надёжный
    поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий
    данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать
    нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие
    расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно
    в такой же последовательности. В этом его главное отличие от UDP.

  • UDP (IP идентификатор 17) протокол передачи датаграмм без установления соединения.
    Также его называют протоколом «ненадёжной» передачи, в смысле невозможности
    удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов.
    В приложениях, требующих гарантированной передачи данных, используется протокол TCP.
    UDP обычно используется в таких приложениях, как потоковое видео и компьютерные игры,
    где допускается потеря пакетов, а повторный запрос затруднён или не оправдан, либо в
    приложениях вида запрос-ответ (например, запросы к DNS), где создание соединения
    занимает больше ресурсов, чем повторная отправка.


Уровень Link

второй уровень сетевой модели OSI, предназначенный для передачи данных узлам,
находящимся в том же сегменте локальной сети.

Канальный уровень отвечает за доставку кадров между устройствами,
подключенными к одному сетевому сегменту
.

Кадр — фрагмент данных протокола канального уровня модели OSI,
передаваемый по линии связи.
Кадр состоит из следующий частей:

Название Размер (байты) Описание
Преамбула 7 Последовательность бит, определяющее начало кадра
Начало кадра 1 Байт, с которого начинается кадр
MAC получателя 6 Адрес сетевой карты получателя
MAC отправителя 6 Адрес сетевой карты отправителя
…..
Данные 46 — 1500
Контрольная сумма кадра 4 Используется для проверки целостности данных

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


Как происходит отправка данных на всех уровнях стека протоколов TCP/IP?

ы


Корневой DNS-сервер — это сервер, который отвечает за корневую зону
(.ru, .com и т.д.). Всего в мире 13 корневых DNS-серверов. Как и остальные DNS-сервера,
он отвечает на соответствующие DNS-запросы (например, получение IP-адреса по имени хоста (доменному имени)).

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

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

Например, каждая машина (такая, как маршрутизатор), которая перенаправляет
IP-пакеты, уменьшает Time to live (TTL) поля заголовка IP на единицу,
если TTL достигает 0, ICMP-сообщение о превышении TTL отправляется на источник пакета.

Использование протокала ICMP:

  • ICMP-сообщения (тип 3) генерируются маршрутизатором при отсутствии маршрута к адресату.
  • Утилита Ping, служащая для проверки возможности доставки IP-пакетов.
  • ICMP-сообщения с типом 5 используются маршрутизаторами для обновления записей в таблице маршрутизации отправителя.

TTL — (Time To Live) — предельный период времени или число итераций или
переходов, за который набор данных (пакет) может существовать до своего исчезновения.

Определяет максимальное количество хопов (hop, то есть прыжок, участок
между маршрутизаторами), которые пакет может пройти.
Наличие этого параметра не позволяет пакету бесконечно ходить по сети.
Каждый маршрутизатор при маршрутизации должен уменьшать значение TTL на единицу,
но некоторые шлюзы можно настроить, чтобы игнорировать это.
Пакеты, не достигшие адресата, но время жизни которых стало равно нулю,
уничтожаются, а отправителю посылается сообщение ICMP Time Exceeded

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

Протокол ICMP описал в RFC 792 от 1981 года Jon Postel (с дополнениями в RFC 950). ICMP является стандартом Интернета (входит в стандарт STD 5 вместе с IP). Хотя формально протокол использует IP (ICMP-пакеты инкапсулируются в IP пакеты), он является неотъемлемой частью IP и обязателен при реализации стека TCP/IP. Текущая версия ICMP для IPv4 называется ICMPv4. В IPv6 существует аналогичный протокол ICMPv6.

Протокол обмена управляющими сообщениями ICMP (Internet Control Message Protocol) позволяет маршрутизатору сообщить конечному узлу об ошибках, с которыми машрутизатор столкнулся при передаче какого-либо IP-пакета от данного конечного узла.

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

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

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

Формат сообщений протокола ICMP

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

Поле типа может иметь следующие значения:

ICMP-сообщение Описание сообщения
Тип Код
0 Эхо-ответ (ping-отклик)
3 Адресат недостижим
0 * Сеть недостижима
1 * ЭВМ не достижима
2 * Протокол не доступен
3 * Порт не доступен
4 * Необходима фрагментация сообщения
5 * Исходный маршрут вышел из строя
6 * Сеть места назначения не известна
7 * ЭВМ места назначения не известна
8 * Исходная ЭВМ изолирована
9 * Связь с сетью места назначения административно запрещена
10 * Связь с ЭВМ места назначения административно запрещена
11 * Сеть не доступна для данного вида сервиса
12 * ЭВМ не доступна для данного вида сервиса
13 * Связь административно запрещена с помощью фильтра.
14 * Нарушение старшинства ЭВМ
15 * Дискриминация по старшинству
4 0 * Отключение источника при переполнении очереди (quench)
5 Переадресовать (изменить маршрут)
0 Переадресовать дейтограмму в сеть (устарело)
1 Переадресовать дейтограмму на ЭВМ
2 Переадресовать дейтограмму для типа сервиса (tos) и сети
3 Переадресовать дейтограмму для типа сервиса и ЭВМ
8 0 Эхо запроса (ping-запрос).
9 0 Объявление маршрутизатора
10 0 Запрос маршрутизатора
11 Для дейтограммы время жизни истекло (ttl=0):
0 *при передаче
1 * при сборке (случай фрагментации).
12 * Проблема с параметрами дейтограммы
0 * Ошибка в ip-заголовке
1 * Отсутствует необходимая опция
13 Запрос временной метки
14 Временная метка-отклик
15 Запрос информации (устарел)
16 Информационный отклик (устарел)
17 Запрос адресной маски
18 Отклик на запрос адресной маски

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

Эхо-протокол

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

Во многих операционных системах используется утилита ping, которая предназначена для тестирования достижимости узлов. Эта утилита обычно посылает серию эхо-запросов к тестируемому узлу и предоставляет пользователю статистику об утерянных эхо-ответах и среднем времени реакции сети на запросы.

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

Когда маршрутизатор не может передать или доставить IP-пакет, он отсылает узлу, отправившему этот пакет, сообщение “Узел назначения недостижим” (тип сообщения – 3). Это сообщение содержит в поле кода значение, уточняющее причину, по которой пакет не был доставлен. Причина кодируется следующим образом:

Код Причина
0 Сеть недостижима
1 Узел недостижим
2 Протокол недостижим
3 Порт недостижим
4 Требуется фрагментация, а бит DF установлен
5 Ошибка в маршруте, заданном источником
6 Сеть назначения неизвестна
7 Узел назначения неизвестен
8 Узел-источник изолирован
9 Взаимодействие с сетью назначения административно запрещено
10 Взаимодействие с узлом назначения административно запрещено
11 Сеть недостижима для заданного класса сервиса
12 Узел недостижим для заданного класса сервиса

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

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

Недостижимость протокола и порта означают отсутствие реализации какого-либо протокола прикладного уровня в узле назначения или же отсутствие открытого порта протоколов UDP или TCP в узле назначения.

Ошибка фрагментации возникает тогда, когда отправитель послал в сеть пакет с признаком DF, запрещающим фрагментацию, а маршрутизатор столкнулся с необходимостью передачи этого пакета в сеть со значением MTU меньшим, чем размер пакета.

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

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

Для корректировки поведения компьютеров маршрутизатор может использовать сообщение протокола ICMP, называемое “Перенаправление маршрута” (Redirect).

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

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

В сообщении “Перенаправление маршрута” маршрутизатор помещает IP-адрес маршрутизатора, которым нужно пользоваться в дальнейшем, и заголовок исходного пакета с первыми 64 битами его поля данных. Из заголовка пакета узел узнает, для какой сети необходимо пользоваться указанным маршрутизатором.

Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.

Основы TCP/IP

Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую. Чтобы обеспечить такую возможность, был разработан стек интернет-протоколов, известный как TCP/IP.

Разработка сетевой модели осуществлялась при содействии Министерства обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:

Сравнение моделей

Уровневая модель TCP/IP

Выше мы уже упоминали, что модель TCP/IP разделена на уровни, как и OSI, но отличие двух моделей в количестве уровней. Документами, определяющими сертификацию модели, являются RFC 1122 и RFC1123. Эти стандарты описывают четыре уровня абстракции модели TCP/IP: прикладной, транспортный, межсетевой и канальный. Существуют и другие версии описания модели, в том числе включающие иное количество уровней и их наименований. Однако в этой статье мы придерживаемся оригинальной версии и далее рассмотрим четыре уровня модели.

Канальный уровень (link layer)

Предназначение канального уровня — дать описание тому, как происходит обмен информацией на уровне сетевых устройств, определить, как информация будет передаваться от одного устройства к другому. Информация здесь кодируется, делится на пакеты и отправляется по нужному каналу, т.е. среде передачи.

Этот уровень также вычисляет максимальное расстояние, на которое пакеты возможно передать, частоту сигнала, задержку ответа и т.д. Все это — физические свойства среды передачи информации. На канальном уровне самым распространенным протоколом является Ethernet, который мы рассмотрим в конце статьи.

Межсетевой уровень (internet layer)

Глобальная сеть интернет состоит из множества локальных сетей, взаимодействующих между собой. Межсетевой уровень используется, чтобы описать обеспечение такого взаимодействия.

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

Именно на межсетевом уровне функционирует протокол IP, позволивший объединить разные сети в глобальную. Как и протокол TCP, он дал название модели, рассматриваемой в статье.

Маска подсети и IP-адреса

IPv4 и IPv6

Маска подсети помогает маршрутизатору понять, как и куда передавать пакет. Подсетью может являться любая сеть со своими протоколами. Маршрутизатор передает пакет напрямую, если получатель находится в той же подсети, что и отправитель. Если же подсети получателя и отправителя различаются, пакет передается на второй маршрутизатор, со второго на третий и далее по цепочке, пока не достигнет получателя.

Протокол IP (Internet Protocol) используется маршрутизатором, чтобы определить, к какой подсети принадлежит получатель. Свой уникальный IP-адрес есть у каждого сетевого устройства, при этом в глобальной сети не может существовать два устройства с одинаковым IP. Протокол имеет две действующие версии, первая из которых — IPv4 (IP version 4, версии 4) — была описана в 1981 году.


IPv4 предусматривает назначение каждому устройству 32-битного IP-адреса, что ограничивало максимально возможное число уникальных адресов 4 миллиардами (2^32). В более привычном для человека десятичном виде IPv4 выглядит как четыре блока (октета) чисел от 0 до 255, разделенных тремя точками. Первый октет IP-адреса означает класс сети, классов всего 5: A, B, C, D, E. При этом адреса сети D являются мультикастовыми, а сети E вообще не используются.


Рассмотрим, например, IPv4 адрес класса С 223.135.100.7. Первые три октета определяют класс и номер сети, а последний означает номер конечного устройства. Например, если необходимо отправить информацию с компьютера номер 7 с IPv4 адресом 223.135.100.7 на компьютер номер 10 в той же подсети, то адрес компьютера получателя будет следующий: 223.135.100.10.

В связи с быстрым ростом сети интернет остро вставала необходимость увеличения числа возможных IP-адресов. В 1995 году впервые был описан протокол IPv6 (IP version 6, версии 6), который использует 128-битные адреса и позволяет назначить уникальные адреса для 2^128 устройств.

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

2dab:ffff:0000:0000:01aa:00ff:dd72:2c4a.

Так как IPv6 адреса длинные, их разрешается сокращать по определенным правилам, которые также описываются RFC:

  • Для написания адреса используются строчные буквы латинского алфавита: a, b, c, d, e, f.
  • Ведущие нули допускается не указывать — например, в адресе выше :00ff: можно записать как :ff:.
  • Группы нулей, идущие подряд, тоже допустимо сокращать и заменять на двойное двоеточие. На примере выше это выглядит так: 2dab:аааа::01aa:00ff:dd72:2c4a. Допускается делать не больше одного подобного сокращения в адресе IPv6 на наибольшей последовательности нулей. Если одинаково длинных последовательностей несколько — на самой левой из них.

IP предназначен для определения адресата и доставки ему информации. Он предоставляет услугу для вышестоящих уровней, но не гарантирует целостность доставляемой информации.

IP способен инкапсулировать другие протоколы, предоставлять место, куда они могут быть встроены. К таким протоколам, например, относятся ICMP (межсетевой протокол управляющих сообщений) и IGMP (межсетевой протокол группового управления). Информация о том, какой протокол инкапсулируется, отражается в заголовке IP-пакета. Так, ICMP будет обозначен числом 1, а IGMP будет обозначен числом 2.

ICMP

ICMP в основном используется устройствами в сети для доставки сообщений об ошибках и операционной информации, сообщающей об успехе или ошибке при связи с другим устройством. Например, именно с использованием ICMP осуществляется передача отчетов о недоступности устройств в сети. Кроме того, ICMP используется при диагностике сети — к примеру, в эксплуатации утилит ping или traceroute.

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

Транспортный уровень (transport layer)

Постоянные резиденты транспортного уровня — протоколы TCP и UDP, они занимаются доставкой информации.

TCP (протокол управления передачей) — надежный, он обеспечивает передачу информации, проверяя дошла ли она, насколько полным является объем полученной информации и т.д. TCP дает возможность двум конечным устройствам производить обмен пакетами через предварительно установленное соединение. Он предоставляет услугу для приложений, повторно запрашивает потерянную информацию, устраняет дублирующие пакеты, регулируя загруженность сети. TCP гарантирует получение и сборку информации у адресата в правильном порядке.

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

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

Протоколы транспортного уровня не интерпретируют информацию, полученную с верхнего или нижних уровней, они служат только как канал передачи, но есть исключения. RSVP (Resource Reservation Protocol, протокол резервирования сетевых ресурсов) может использоваться, например, роутерами или сетевыми экранами в целях анализа трафика и принятия решений о его передаче или отклонении в зависимости от содержимого.

Прикладной уровень (application layer)

В модели TCP/IP отсутствуют дополнительные промежуточные уровни (представления и сеансовый) в отличие от OSI. Функции форматирования и представления данных делегированы библиотекам и программным интерфейсам приложений (API) — своего рода базам знаний, содержащим сведения о том, как приложения взаимодействуют между собой. Когда службы или приложения обращаются к библиотеке или API, те в ответ предоставляют набор действий, необходимых для выполнения задачи и полную инструкцию, каким образом эти действия нужно выполнять.

Протоколы прикладного уровня действуют для большинства приложений, они предоставляют услуги пользователю или обмениваются данными с «коллегами» с нижних уровней по уже установленным соединениям. Здесь для большинства приложений созданы свои протоколы. Например, браузеры используют HTTP для передачи гипертекста по сети, почтовые клиенты — SMTP для передачи почты, FTP-клиенты — протокол FTP для передачи файлов, службы DHCP — протокол назначения IP-адресов DHCP и так далее.

Узнайте, как устроена сетевая архитектура крупного провайдера.

Зачем нужен порт и что означает термин «сокет»

Приложения прикладного уровня, общаются также с предыдущим, транспортным, но они видят его протоколы как «черные ящики». Для приема-передачи информации они могут работать, например, с TCP или UDP, но понимают только конечный адрес в виде IP и порта, а не принцип их работы.

Как говорилось ранее, IP-адрес присваивается каждому конечному устройству протоколом межсетевого уровня. Но обмен данными происходит не между конечными устройствами, а между приложениями, установленными на них. Чтобы получить доступ к тому или иному сетевому приложению недостаточно только IP-адреса, поэтому для идентификации приложений применяют также порты. Комбинация IP-адреса и порта называется сокетом, или гнездом (socket).

Кроме собственных протоколов, приложения на прикладном уровне зачастую имеют и фиксированный номер порта для обращения к сети. Администрация адресного пространства интернет (IANA), занимающаяся выделением диапазонов IP-адресов, отвечает еще за назначение сетевым приложениям портов.

Так почтовые приложения, которые общаются по SMTP-протоколу, используют порт 25, по протоколу POP3 — порт 110, браузеры при работе по HTTP — порт 80, FTP-клиенты — порт 21. Порт всегда записывается после IP и отделяется от него двоеточием, выглядит это, например, так: 192.168.1.1:80.

Что такое DNS и для чего используется эта служба

Чтобы не запоминать числовые адреса интернет-серверов была создана DNS — служба доменных имен. DNS всегда слушает на 53 порту и преобразует буквенные имена сетевых доменов в числовые IP-адреса и наоборот. Служба DNS позволяет не запоминать IP — компьютер самостоятельно посылает запрос «какой IP у selectel.ru?» на 53 порт DNS-сервера, полученного от поставщика услуг интернет.

DNS-сервер дает компьютеру ответ «IP для selectel.ru — XXX.XXX.XXX.XXX». Затем, компьютер устанавливает соединение с веб-сервером полученного IP, который слушает на порту 80 для HTTP-протокола и на порту 443 для HTTPS. В браузере порт не отображается в адресной строке, а используется по умолчанию, но, по сути, полный адрес сайта Selectel выглядит вот так: https://selectel.ru:443.

Декапсуляция и инкапсуляция

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

Инкапсуляция

Стек протоколов, снова канальный уровень

О канальном уровне модели TCP/IP мы рассказали меньше всего. Давайте вернемся еще раз к началу, чтобы рассмотреть инкапсуляцию протоколов и что значит «стек».

Большинству пользователей знаком протокол Ethernet. В сети, по стандарту Ethernet, устройства отправителя и адресата имеют определенный MAC-адрес — идентификатор «железа». MAC-адрес инкапсулируется в Ethernet вместе с типом передаваемых данных и самими данными. Фрагмент данных, составленных в соответствии с Ethernet, называется фреймом, или кадром (frame).

MAC-адрес каждого устройства уникален, и двух «железок» с одинаковым адресом не должно существовать. Совпадение может привести к сетевым проблемам. Таким образом, при получении кадра сетевой адаптер занимается извлечением полученной информации и ее дальнейшей обработкой.

После ознакомления с уровневой структурой модели становится понятно, что информация не может передаваться между двумя компьютерами напрямую. Сначала кадры передаются на межсетевой уровень, где компьютеру отправителя и компьютеру получателя назначается уникальный IP. После чего, на транспортном уровне, информация передается в виде TCP-фреймов либо UDP-датаграмм.

На каждом этапе, подобно снежному кому, к уже имеющейся информации добавляется служебная информация, например, порт на прикладном уровне, необходимый для идентификации сетевого приложения. Добавление служебной информации к основной обеспечивают разные протоколы — сначала Ethernet, поверх него IP, еще выше TCP, над ним порт, означающий приложение с делегированным ему протоколом. Такая вложенность называется стеком, названным TCP/IP по двум главным протоколам модели.

Point-to-Point протоколы

Протоколы модели TCP/IP

Отдельно расскажем о Point-to-Point (от точки к точке, двухточечный) протоколе, также известном как PPP. PPP уникален по своим функциям, он применяется для коммуникации между двумя маршрутизаторами без участия хоста или какой-либо сетевой структуры в промежутке. При необходимости PPP обеспечивает аутентификацию, шифрование, а также сжатие данных. Он широко используется при построении физических сетей, например, кабельных телефонных, сотовых телефонных, сетей по кабелю последовательной передачи и транк-линий (когда один маршрутизатор подключают к другому для увеличения размера сети).

У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM), интернет-провайдеры часто их используют для DSL соединений.

PPP и его старший аналог SLIP (протокол последовательной межсетевой связи) формально относятся к межсетевому уровню TCP/IP, но в силу особого принципа работы, иногда выделяются в отдельную категорию. Преимущество PPP в том, что для установки соединения не требуется сетевая инфраструктура, а необходимость маршрутизаторов отпадает. Эти факторы обуславливают специфику использования PPP протоколов.

Заключение

Стек TCP/IP регламентирует взаимодействие разных уровней. Ключевым понятием здесь являются протоколы, формирующие стек, встраиваясь друг в друга с целью передать данные. Рассмотренная модель по сравнению с OSI имеет более простую архитектуру.

Сама модель остается неизменной, в то время как стандарты протоколов могут обновляться, что еще дальше упрощает работу с TCP/IP. Благодаря всем преимуществам стек TCP/IP получил широкое распространение и использовался сначала в качестве основы для создания глобальной сети, а после для описания работы интернета.

  • 05.02.2021
  • 11 243
  • 0
  • 16
  • 16
  • 0

Протокол ICMP

  • Содержание статьи
    • Что такое протокол ICMP?
    • Структура заголовка ICMP сообщения
    • Добавить комментарий

Что такое протокол ICMP?

ICMP (Internet Control Message Protocol — протокол межсетевых управляющих сообщений) — этот протокол является вспомогательным сетевым протоколом, включенным в стек протоколов TCP/IP.

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

Компенсируют недостаточную надежность протокола IP – протоколы верхних уровней, в частности протокол TCP (транспортный уровень) и DNS (прикладном уровне).

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

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

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

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

При передаче по сети, сообщения ICMP инкапсулируются в поле данных IP-пакетов.

Структура заголовка ICMP сообщения

Заголовок ICMP-сообщения состоит из 8 байт:

  • тип (1 байт) – числовой идентификатор типа сообщения: 0 или 8, где 0 — ICMP reply (ответ), 8 — ICMP request (запрос);
  • код (1 байт) – числовой идентификатор, более точно определяющий тип ошибки
  • контрольная сумма (2 байта) – вычисляется для всего ICMP-сообщения
  • Оставшиеся 4 байта и поле данных зависит от значений полей типа и кода.

Рассмотрим структуру заголовка ICMP запроса (request) на примере перехваченного пакета с помощью сетевого анализатора Wireshark

Рассмотрим структуру заголовка ICMP ответа (reply) на примере перехваченного пакета с помощью сетевого анализатора Wireshark

  • Какой программой читать ошибки
  • Какой программой проверить телефон на ошибки
  • Какой программой проверить озу на ошибки
  • Какой подход должна применить компания для исправления ошибок согласно мсфо
  • Какой ошибки стоит избегать при использовании противопоставления