Для авторов
Архив рассылки
Русский
English
   Путь: Panvasoft / Блог / Как на самом деле работает Ping?
[Новости] [Linux] [Windows XP] [Windows Vista] [Windows Server] [Windows 7] [Администрирование] [Сеть и интернет] [Безопасность] [Tricks & Tips] [Мультимедиа] [Железо] [Книги] [Проечее] 10:16:59, Четверг, 19 Октября 2017 

his comment is here |

Ping – стандартная Internet-программа, которую большинство из нас использует ежедневно. Но вас интересовало, как она работает? Не знаю, как вы, а я начинаю беспокоиться, если не знаю, как на самом деле что-то работает. Назначение этой статьи – решить все затянувшиеся вопросы и поднять ваше понимание на новый уровень. Даже если вы не программист, не пугайтесь! Поверьте, я не собираюсь вам рассказывать, как написать собственную версию ping.

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

ICMP – это программный компонент межсетевого взаимодействия TCP/IP; по существу, это компаньон IP (Internet Protocol) на этом уровне. Фактически, ICMP полагается на IP-протокол для перемещения по сети. Если вы наблюдаете данный вид сетевого трафика, скажем, в сети Ethernet, то ваш анализатор протокола зафиксирует блок данных Ethernet, переносящий дейтаграмму IP с сообщением ICMP внутри.

Вникните в проблему: программа ping выполняется на уровне приложений. Так как же она заставляет ICMP проделывать такие фокусы? Может вы вспомните, если раньше изучали TCP/IP, что уровень хост-хост заключен между этими объектами? Обходится ли он? Если да, то как именно? Кто ответственен за форматирование этих сообщений (эхо-запроса и эхо-отклика)?

Когда на эхо–запрос возникают ответы ICMP, отличные от обычного эхо-отклика, как они попадают в программу ping? Последний вопрос может показаться очевидным, но это не так. ICMP-сообщения не содержат адресной информации, позволяющей стеку протокола TCP/IP разглядеть программу, которая получает сообщение. TCP и UDP для этой цели используют номера портов. Так как это работает?

Общая информация

Стек протокола TCP/IP образуется четырехуровневой моделью (см. Рис. 1). Самый нижний уровень, обычно называемый сетевым интерфейсом или уровнем сетевого доступа, аналогичен уровням 1 и 2 модели OSI, физическому и канальному. Он включает носитель данных, соединения, передачу сигналов, физическую адресацию и управление общим доступом к носителю данных. Для большинства из нас это означает Ethernet и кабельную систему.

Как на самом деле работает Ping?
Рисунок 1


Уровень, стоящий над уровнем сетевого доступа, уровень межсетевого взаимодействия, больше всего похож на уровень 3 модели OSI, сетевой уровень. Здесь присутствуют логическая адресация и маршрутизация: то, что способствует коммуникации через границы сетей. Вот здесь и используются IP-протокол и его механизмы, как и ICMP.

ICMP – необходимый компонент любой реализации TCP/IP. Для поставки информации более высокоуровневым протоколам (TCP или UDP), чтобы сделать их надежней, он не используется. Скорее, возможности диагностики сети и обратной связи для тех, кто ответственен за администрирование и работу, предостаявляет ICMP. Посмотрите RFC 792, если вас это действительно заинтересовало.

Над уровнем сетевого доступа находится уровень хост-хост, копирующий уровень 4 модели OSI, транспортный. Мне кажется, он также частично включает в себя часть функций уровня 5, сеансового. Вот где мы можем найти возможности для обмена данными из конца в конец, дополнительную проверку на ошибки и средства для отличения одной программы от другой (используя номера портов). TCP и UDP находятся на этом уровне.

На вершине стека находится прикладной уровень, и здесь мы можем найти реализацию протоколов высокого уровня (таких как SMTP, HTTP и FTP). Здесь также выполняются приложения. Так, что когда вы «пингуете», программа ping должна быть воспринята для функционирования на этом уровне.

Небольшая загадка

Kак мы можем обойти уровень хост-хост, имея ICMP, работающий на межсетевом уровне взаимодействия и программу ping на прикладном? Ответ лежит в понимании того, что мы знаем о raw-сокетах. "Ну а что такое сокет?",-спросят новички. Теоретически, сокет – конечная точка соединения, которая обычно состоит из IP-адреса и номера порта, идентифицирующих определенные хост и программу. Но программист немного по-другому смотрит на сокет. Для него «сокет» - системная функция, распределяющая ресурсы, благодаря которым программа может взаимодействовать с лежащим под ней стеком протокола TCP/IP. Адресная информация ассоциируется с ним только после того, как сделан вызов сокета (для тех, кто хочет знать, это роль «связывающей» функции»). Так что, заметьте, возможно назначить сокет и незаметно ассоциировать адресную информацию с ним.

Есть три часто встречающихся вида сокетов: stream, datagram, и raw. TCP использует тип stream, а UDP – тип datagram. Raw-сокеты используются любым приложением, если ему необходимо взаимодействовать непосредственно с IP, минуя TCP и UDP. Потребители включают в себя реализации протокола маршрутизации, такие как routed и gated (включающие RIP и OSPF). Здесь же находится и наш друг ping.

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

Что же происходит на самом деле?

Когда начинается выполнение программы ping, она открывает raw-сокет, чувствительный только к ICMP. Это означает две вещи:

На выходе: посылка эхо запросов ICMP, нужна программа, чтобы форматировать сообщение ICMP. Система предоставит заголовок IP и заголовок Ethernet (обычно).
На входе: программа должна проверить все входящие сообщения ICMP и выбрать нужные. Ожидаемый вход – ICMP эхо-отклики.

Давайте посмотрим на это с другой стороны.

На противоположной стороне эхо-запросы форматируются способом, показанным на рисунке 2. Тип сообщения всегда кодируется цифрой восемь (8). Поле кода всегда содержит ноль. Контрольная сумма используется для нахождения ошибок. В ее подсчет включаются заголовок сообщения ICMP и его данные. Программа ping выполняет эти подсчеты и заполняет пустоты. Затем идет поле идентификации, содержащее ID (PID) процесса, который идентифицирует выполнение программы ping для операционной системы. Для систем Windows, это поле содержит постоянное значение 256. Следующим идет поле последовательного номера, значение которого начинается с 0 и увеличивается на 1 при каждом отосланном эхо-запросе. После этих необходимых полей следуют необязательные тестовые данные. В реализации ping, которую я тестировал (Slackware Linux), это была временная отметка, используемая в расчете полного времени при получении эхо-отклика.

Как на самом деле работает Ping?
Рисунок 2


Что касается прибывающих ICMP-сообщений, то задача ping немного усложняется. Так как ping использует raw-сокет ICMP, то программе предоставляются копии всех входящих ICMP-сообщений, кроме особых случаев, когда входящие эхо-запросы формируются другими людьми, «пингующими» нас (последние контролируются системой). Это означает, что ping видит не только ожидаемые эхо-отклики, когда они приходят, но также и такие сообщения, как "Получатель недоступен" (Destination Unreachable), "Источник остановлен" (Source Quench), и "Время ожидания превышено" (Time Exceeded). (На рисунке 3 показаны сообщения ICMP всех типов.)

Как на самом деле работает Ping?
Рисунок 3


Задумайтесь над этим на минуту. Если у вас одновременно выполняются две копии программы ping, то каждая из них будет эхо-отклики другой и другие неприятные сообщения (nastygram)
Каждая копия программы должна идентифицировать сообщения, значимые для нее. Кто думает, что для этого используется поле PID (идентификации), тот абсолютно прав.
А как программа ping справляется с этим в Windows, если у нее нет PID? Вы меня поймали. Звучит как тема для будущей статьи. К этому вопросу мы еще вернемся.

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

Заключение

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

Повторим основные моменты:

• При инициализации программы ping, она открывает raw-сокет ICMP и может напрямую обращаться к IP, минуя TCP и UDP.
• Ping форматирует ICMP-сообщение типа 8, эхо-запрос и посылает его (используя функцию «sendto») на желаемый адрес назначения. Система предоставляет IP-заголовок и конверт (envelope) канального уровня.
• При получении ICMP-сообщений, у ping есть возможность проверить каждый пакет и выбрать нужное
• Обычное поведение – брать ICMP-сообщения типа 0, эхо-отклики, у которых значение поля идентификатора совпадает с PID программы.
Ping использует временную метку в области данных эхо-отклика чтобы вычислить полное (туда-обратно) время. Он также сообщает о времени жизни TTL из IP-заголовка отклика.
• Когда что-то идет не так, ping может сообщать о ICMP-сообщениях других типов, появляющихся на входе. Такие сообщения включают в себя "Получатель недоступен" (Destination Unreachable) и "Время ожидания превышено" (Time Exceeded).

Категория: Сеть и интернет
Источник: globalknowledge.com Опубликовал: Feeder, Дата: 17.12.2007, Просмотров сегодня: 2, Просмотров всего: 29214, Рейтинг: 2.67 (Проголосовало: 9) Теги: TCP IP, Ping, Icmp

Расскажи друзьям:


Еще статьи на угад:
Установка Transmission на WD MyBook Live
Как на самом деле работает Ping?
Установка Transmission на WD MyBook World Edition
Установка и настройка службы TFTP (Trivial File Transfer Protocol).
Браузер Firefox 3.0 впервые занял первое место популярности браузеров worldwide, то есть по всему миру.
QIP (Quiet Internet Pager)
Проверка на невидимость в ICQ

Ваши комментарии:
CraigDuarp, ma.ng[at]bigatel.info в 12.10.2017 22:42:29
Приобрести сироп Mangoosteen можно на веб-сайте http://mangystin.bxox.info/

Предлагаем нашим клиентам чудодейственное средство для похудения Mangoosteen. С ним возможно сжечь около 15 кг за 2 недели. Дерево мангостин растет на Филиппинах. Плоды данного дерева имеют удивительные особенности. Во флакончике имеется более 25 плодов данного удивительного растения. Плоды с дерева гарциния помогают растопить чрезмерную жировую ткань. И положительно влияют на человека в комплексе. Специфика производства средства, а также специальная упаковка позволяют сохранить все полезные свойства дерева. Основным действующим компонентом сиропа Mangoosteen являются фрукты с растения мангкут, в которых имеется большое число питательных веществ. Благодаря компоненту окиси дифениленкетона, которое в больших количествах имеется во фрукте, сильно притормаживаются процессы окисления в теле. Окись дифениленкетона является одним из наиболее сильных антиокислителей. В плоде дерева мангостин к тому же есть разные витамины и микроэлементы. Приобрести сироп Мансустина можно на веб-сайте http://xurls.in/c1x
DwayneGlisk, xez.ne.r.[at]hceap.info в 7.10.2017 04:23:20
Хотим предложить нашим клиентам инновационное средство для снижения веса сироп Мангустина. С ним можно избавиться от 10 кг за 2 недели.

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

Главным компонентом сиропа Мангустина являются плоды с растения гарциния, в которых содержится большое число питательных веществ. Благодаря веществу окиси дифениленкетона, которое в огромных дозах имеется в плодах, сильно притормаживаются окислительные процессы в организме. Ксантон считается одним из самых мощных антиоксидантов. В плодах растения гарциния к тому же есть различные витамины и элементы. Купить сироп Мансустина можно на веб-сайте http://mangoo77.mangoosteen.com.


<b>Официальный сайт:</b> http://mangystin.bxox.info
<b>Вам будет интересно:</b> http://b.lolalo.info
DwayneGlisk, x.e.z.ner[at]hceap.info в 7.10.2017 01:51:34
Предлагаем вам чудодейственное средство для похудения Mangoosteen. С ним реально избавиться от 10 kg за недели.

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

Основным компонентом сиропа Мангустина являются плоды с дерева мангостан, в которых содержится огромное число полезных микроэлементов. Благодаря компоненту окиси дифениленкетона, которое в больших количествах имеется в плодах, сильно притормаживаются окислительные процессы в организме. Окись дифениленкетона признана одним из наиболее мощных антиокислителей. В плоде дерева мангкут также содержатся разнообразные группы витаминов и микроэлементы. Приобрести сироп Mangoosteen возможно на сайте http://mangjoo77.mangoosteen.com.


<b>Официальный сайт:</b> http://mangystin.bxox.info
Вам будет интересно: http://eroctive.bxox.info
DwayneGlisk, xez.ner[at]hceap.info в 4.10.2017 14:27:23
Рады предложить нашим покупателям удивительное средство для похудения Mangoosteen. С ним возможно сжечь около 10 kg за недели.

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

Основным действующим компонентом сиропа Mangoosteen являются плоды с растения мангостан, в них имеется большое число полезных микроэлементов. Благодаря веществу окиси дифениленкетона, которое в больших дозах имеется в плодах, сильно замедляются окислительные процессы в организме. Ксантон признается одним из самых мощных антиоксидантов. В плоде дерева мангостин к тому же имеются разные витамины и элементы. Приобрести сироп Мансустина возможно на сайте http://mangoo77.mangoosteen.com.


[b]Официальный сайт:[/b] http://mangystin.bxox.info
http://stikbox.bxox.info
RalphLiz, ralphLaw[at]canadianpharmacyseo.us в 6.9.2017 00:13:43
pastilla cialis wikipedia

<a href="http://cialisxrm.com/">cialis generic</a>

cialis bilgi

[url=http://cialisxrm.com/]cialis coupon[/url]
Добавить свое мнение о данной программе:
Имя
Email
Сообщение:
Введите символы:
вверх страницы

  Подпишитесь на лист рассылки и стань одним из 16384, кто узнает о новых программах по почте!!

 Введтите ваш e-mail:

Подписаться
Отписаться



© 1999 - 2017 Panva Web Studio
(0.01340 секунд) Написать письмо вебмастеру