КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Основи протоколу ICMP
Протокол ICMP (Internet Control Message Protocol) використовується для діагностики мережевих підключень, а також для передачі видаленим системам повідомлень про виняткові ситуації, що виникають в процесі роботи стеку TCP/IP. ICMP працює на мережевому рівні моделі мережевої взаємодії; при цьому ICMP інкапсулює свої повідомлення в IP -пакеты; реалізація ICMP є обов'язковою для стека TCP/IP. ICMP -повідомлення складається із заголовка (містить ідентифікатори типу і коду повідомлення, а також контрольну суму) і поля даних, вміст якого залежить від призначення повідомлення. Умовно ICMP -сообщения можна розділити на дві групи: повідомлення про помилки і інформаційні повідомлення. Перша група включає такі типи повідомлень як: напрям недоступний (Destination Unreachable); пригнічення джерела (Source Quench); витікання часу (Time Exceeded); проблема параметрів (Parameter Problem) і так далі. Прикладом повідомлень другої групи є повідомлення перенаправлення (Redirect); эхо-запроса (Echo) і эхо-ответа (Echo Reply). Всього відомі близько 40 типів ICMP -повіідомлень. Більшість типів повідомлень містять набори уточнюючих кодів, що конкретизують проблему. Так повідомлення "Напрям недоступний" інформує про недоступність видаленого вузла з тієї або іншої причини: недоступність вузла, протоколу або порту; великий розмір пакету з порівнянню з MTU передавального середовища при неможливості фрагментації пакетів; відсутність у проміжного шлюзу маршрутів до видаленого вузла або мережі; активні фільтри пакетів на шлюзі і так далі Нехай на вузлі A встановлений IP -адрес з мережі 192.168.1.0/24 і шлюз за умовчанням 192.168.1.1. Якщо, наприклад шлюз "не знає" маршруту до мережі 192.168.2.0/24, то при спробі взаємодії вузла А з вузлом 192.168.2.10 (наприклад, за допомогою утиліти ping), вузол А отримуватиме від шлюзу ICMP -сообщения про недоступність мережі призначення (Destination Net Unreachable). # # ping 192.168.2.10PING 192.168.2.10 (192.168.2.10) 56(84) bytes of data.From 192.168.1.1 icmp_seq=1 Destination Net UnreachableFrom 192.168.1.1 icmp_seq=2 Destination Net Unreachable^C--- --- 192.168.2.10 ping statistics ---2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1023msЛістинг 11.1 – ICMP -повідомлення про недоступність мережі У цьому прикладі один з шлюзів фільтрує доступ до мережі Інтернет і відправляє відповідні ICMP –повідмлення вузлу локальної мережі. $ $ ping www.yandex.ruPING www.yandex.ru (213.180.204.3) 56(84) bytes of data.From 10.31.46.1 icmp_seq=1 Packet filteredFrom 10.31.46.1 icmp_seq=2 Packet filtered^C--- --- www.yandex.ru ping statistics ---2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 10074ms
Лістинг 11.2 – ICMP -повідомлення про фільтрацію пакетів Примітка. Функціональність ICMP на цьому вузлі є такою, що настроюється. Наприклад, налаштування маршрутизатора дозволяють вказати яке ICMP -повідомлення відправляти на цю помилку протоколу IP, і чи відправляти взагалі які-небудь повідомлення. 11.1.2. Перевірка доступності видаленої системи за допомогою команди ping Найпростіший спосіб тестування зв'язку між двома системами полягає в перевірці можливості відправки системами повідомлень один одному. Для цього перший вузол відправляє другому вузлу тестове повідомлення, отримавши яке другий вузол повинен відправити повідомлення у відповідь. У протоколі ICMP для відправки тестового повідомлення використовується повідомлення типу ехо-камера-запит (Echo), для відправки відповіді на тестове повідомлення - ехо-камеру-відповідь (Echo Reply). Функція відповіді на эхо-запросы інтегрована в мережевий стек операційної системи і в більшості випадків включена за умовчанням. Для реалізації цього типу перевірки використовується утиліта ping, яка в Debian встановлюється за умовчанням (приклад 11.3.). Основним параметром ping є доменне ім'я видаленої системи або її IP -адрес. $ $ ping www.yandex.ruPING www.yandex.ru (87.250.250.3) 56(84) bytes of data.64 bytes from www.yandex.ru (87.250.250.3): icmp_req=1 ttl=52 time=42.8 ms64 bytes from www.yandex.ru (87.250.250.3): icmp_req=2 ttl=52 time=42.5 ms64 bytes from www.yandex.ru (87.250.250.3): icmp_req=3 ttl=52 time=50.0 ms^C--- --- www.yandex.ru ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2002msrtt min/avg/max/mdev = 42.514/45.124/50.044/3.481 ms
Лістинг 11.3 – Перевірка доступності видаленої системи
У Linux команда ping за умовчанням відправляє ехо-запити до тих пір, поки користувач не перерве її роботу, наприклад комбінацією клавіш Ctrl+C (можна використовувати параметр -с з вказівкою кількості запитів, що відправляються, наприклад: ping - c 3 www.yandex.ru - будуть відправлений 3 запити). Якщо відповідь на запит отримана, то на екран виводиться інформація про розмір ехо-відповіді (у даному випадку 64 байт), доменне ім'я вузла і(чи) IP -адрес, порядковий номер запиту, параметри TTL і RTT (див. нижче). При завершенні своєї роботи команда ping виводить статистику: кількість відправлених (transmitted) і отриманих (received) пакетів, відсоток втрат (packet loss), а також статистику RTT. Параметр TTL (Time - To - Live) визначає час "життя" пакету і на вузлі-джерелі встановлюється в ціле число (максимальна кількість маршрутизаторів, яка може бути пройдена пакетом, - стрибків). При кожному стрибку значення TTL зменшується на одиницю. Коли значення стає рівним нулю, пакет знищується. Цей підхід дозволяє уникнути петель маршрутизації (нескінченного переміщення пакету між двома вузлами маршрутизації), що виникають, наприклад, при помилках конфігурації. Примітка. Різні системи первинне значення TTL встановлюють в різні значення (255 - мережеве устаткування Cisco, 128 - Windows, Unix -системы - 64, деяке мережеве устаткування - 30), завдяки чому в деяких випадках в першому наближенні можна визначити тип видаленої системи. Параметр RTT (Round Trip Time) - час між відправкою запиту і отриманням відповіді на цей запит. Інформація, що надається командою ping, дозволяє зробити певні висновки про якість каналу зв'язку між двома вузлами. Наприклад, високий відсоток втрат пакетів або значення RTT, що змінюється у великих межах, є вказівкою на наявність проблем із зв'язком. У той же час на основі хороших показників втрат пакетів і RTT не завжди можна зробити висновок про придатність каналу зв'язку для використання цим транспортним або прикладним протоколом, т. б. вони можуть пред'являти вищі вимоги до якості каналу зв'язку. Порівняєте, наприклад, значення параметр RTT для коротких пакетів і пакетів, розмір яких близький до максимального можливого (приклад 11.4.) в сегменті мережі Ethernet.
Лістинг 11.4. Використання ключа - s для вказівки розміру тестових повідомлень в команді ping
Для порівняння ping в тих же умовах з малим розміром повідомлення: # # ping - c 3 10.31.16.103PING 10.31.16.103 (10.31.16.103) 56(84) bytes of data.64 bytes from 10.31.16.103: icmp_seq=1 ttl=64 time=0.328 ms64 bytes from 10.31.16.103: icmp_seq=2 ttl=64 time=0.231 ms64 bytes from 10.31.16.103: icmp_seq=3 ttl=64 time=0.583 ms--- --- 10.31.16.103 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2000msrtt min/avg/max/mdev = 0.231/0.380/0.583/0.150 ms
Вибір початкового IP -адреса для відправки пакетів в системах з декількома IP -адресами залежить від налаштувань таблиць маршрутизації і особливостей операційної системи. Для явної вказівки початкового IP -адреса в команді ping слід використовувати ключ - I з вказівкою IP -адреси (в даному випадку 192.168.1.11): # # ping - c 1 - I 192.168.1.11 192.168.1.1PING 192.168.1.1 (192.168.1.1) from 192.168.1.11: 56(84) bytes of data.64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=3.09 ms--- --- 192.168.1.1 ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 3.091/3.091/3.091/0.000 ms
Лістинг 11.5. Вказівка початкової адреси в ping за допомогою ключа - I
Слід зазначити, що відсутність відповіді від видаленої системи на ехо-запити не є гарантованою ознакою її непрацездатності: протокол ICMP може бути фільтруватися на якому-небудь проміжному вузлі або відключений на видаленому вузлі. У той же час доступність видаленої системи по протоколу ICMP не означає працездатність прикладних мережевих служб на ній: доступ до сервісу може блокуватися міжмережевим екраном або сервіс може бути відключений і так далі
Дата добавления: 2014-01-07; Просмотров: 435; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |