Утиліта PING .
Умова завдання:
Розробити систему діагностики мережі, тобто перелік параметрів для визначення оцінки її працездатності. Скласти схему алгоритму для конкретної перевірки. Привести програму її реалізації.
Теоретичні питання
1. Розробити схему діагностики мережі, тобто перелік параметрів для визначення оцінки її працездатності (аналог - утиліта PING).
Утиліта призначена для тестування комп'ютерних з'єднань у мережі шляхом посилки через протокол по визначеній адресі повідомлення й очікування від нього відповіді.
Параметри:
1) Відправлення пакетів на зазначений вузол. Перегляд статистики.
2) Визначення числа запросiв, якi вiдсилаються
Також, повинна бути реалізована здатність завдання характеристики пакетів, а саме:
· Число запитів, що відправляють
· Розмір буфера відправлення
· Завдання часу життя пакета
· Інтервал очікування кожної відповіді в мс
2. Привести дослівний опис узагальненого алгоритму роботи програми діагностики (аналог - утиліта PING -n) та привести опис протоколу, що використовується.
1) Створення заголовка IP
2) Створення буфера для посилки-відповіді луна - запиту
3) Заповнення буфера
4) Визначення числа запросiв, якi вiдсилаються
5) Заповнення заголовка IP
6) Посилка луна - запиту з одержанням відповіді
7) Розшифровка відповіді (читання буфера): IP адреса що відповідає, помилки передачі
Протокол Internet (IP) використається для обробки датаграми, переданої між хост-комп’ютерами в системі об'єднаних мереж, якi називаються Catenet. Пристрої, що здійснюють з'єднання різних мереж, називаються шлюзами. Для забезпечення керування шлюзи спілкуються один з одним за допомогою протоколу Gateway to Gateway Protocol (GGP). Часом шлюз або хост-комп’ютер, що одержує дані, обмінюється інформацією з хост-комп’ютером, що відправляє ці дані. Саме для таких цілей використовується даний протокол - протокол контрольних повідомлень Internet (ICMP). ICMP використовує основні властивості протоколу Internet (IP) так, якби ICMP був протоколом більш високого рівня. Однак фактично ICMP є складовою частиною протоколу Internet і повинен бути складовою частиною кожного модуля IP.
Повідомлення ICMP повинні відправлятися в деяких скрутних ситуаціях. Наприклад, коли датаграма не може досягти свого адресата, коли шлюз не має досить місця у своєму буфері для передачі якої-небудь датаграми, або коли шлюз наказує хост-комп’ютеру відправляти інформацію з більш короткого маршруту.
Протокол Internet не створений для того, щоб забезпечувати абсолютну надійність передачі інформації. Метою же даних контрольних повідомлень є забезпечення зворотного зв'язку, оповіщення відправника даних про проблеми, що виникають у комунікаційному встаткуванні. Їхньою метою не є додавання надійності протоколу IP. Протокол не дає гарантій, що датаграма досягне свого адресата або що контрольне повідомлення буде повернуто комп'ютеру, що відправив дані. Деякі з датаграм можуть зникнути в мережі, не викликавши при цьому ніяких оповіщень. Протоколи більш високого рівня, що використовують протокол IP, повинні застосовувати свої власні процедури для забезпечення надійності передачі даних, якщо така потрібно.
Повідомлення ICMP протоколу, як правило, сповіщають про помилки, що виникають при обробці датаграм. Щоб проблеми з передачею повідомлень не викликали появи нових повідомлень, щоб це у свою чергу не привело до лавиноподібного росту кількості повідомлень, що циркулюють у мережі, констатується, що не можна посилати повідомлення про повідомлення. Також констатується, що ICMP повідомлення можна посилати тільки про проблеми, що виникають при обробці нульового фрагмента в сегментованій датаграмі (нульовий фрагмент має нуль у полi зсуву фрагмента).
3. Скласти пооператорну схему алгоритму (у порядку використання операторів) для програми тестування мережі (аналог - утиліта PING -n).
Для написання функцiї пiнга використаємо бiблiотеку ICMP (icmp.dll), яка надає iнтерфейс для роботи з однойменим протоколом. В цiй бiблiотецi реалiзованi три функцiї, з якими в подальшому ми будемо працювати. В iнтерпретацiї Delphi їх об’ява виглядає наступним чином:
function IcmpCreateFile:Thandle; StdCall;
function IcmpCloseHandle (H:Thandle):Bool; StdCall;
function IcmpSendEcho
(IcmpHandle:Thandle;
DestinationAddress:TipAddr;
RequestData:pointer;
RequestSize:word;
RequestOptions:POption_Information;
ReplyBuffer:pointer;
ReplySize:integer;
Timeout:integer):Integer; stdcall;
Функцiя IcmpCreateFile створює з’єднання, з яким ми збираємось працюватии.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.