Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Методичні вказівки до лабораторної роботи з дисципліни
”Комп’ютерні мережі”
Аналізатор протоколів
Львів-2009
Методичка до виконання лабораторної роботи на тему
«Аналізатор протоколів»
Тема: Аналізатор протоколів.
Мета: Демонстрація та закріплення архітектурних принципів побудови комп'ютерних мереж шляхом аналізу реального мережевого трафіку.
Вивчення стеку протоколів TCP/IP, протоколів цього стеку.
Ознайомлення з програмами-аналізаторами пакетів.
Мережева архітектура TCP/IP
Оскільки стек TCP/IP був розроблений до появи моделі взаємодії відкритих систем ISO/OSI, то, хоча він також має багаторівневу структуру, відповідність рівнів стеку TCP/IP рівням моделі OSI достатньо умовні.
Структура протоколів стеку TCP/IP наведена на малюнку. Протоколи TCP/IP діляться на 4 рівні:
Самий нижній (рівень IV) відповідає фізичному і канальному рівням моделі OSI. Цей рівень в протоколах TCP/IP не регламентується, але підтримує всі популярні стандарти фізичного і канального рівня: для локальних мереж це Ethernet, Token Ring, FDDI, Fast Ethernet, 100VG-AnyLAN, для глобальних мереж - протоколи з'єднань "точка-точка" SLIP і PPP, протоколи територіальних мереж з комутацією пакетів X.25, frame relay.
Наступний рівень (рівень III) - це рівень міжмережевої взаємодії, який займається передачею пакетів з використанням різних транспортних технологій локальних мереж, територіальних мереж, ліній спеціального зв'язку і т.п.
Як основний протокол мережевого рівня (в термінах моделі OSI) в стеку використовується протокол IP, який спочатку проектувався як протокол передачі пакетів в складених мережах, що складаються з великої кількості локальних мереж, об'єднаних як локальними, так і глобальними зв'язками. Тому протокол IP добре працює в мережах з складною топологією, раціонально використовуючи наявність в них підсистем і економно витрачаючи пропускну спроможність низькошвидкісних ліній зв'язку.
До рівня міжмережевої взаємодії відносяться і всі протоколи, пов'язані з складанням і модифікацією таблиць маршрутизації, такі як протоколи збору маршрутної інформації RIP (Routing Internet Protocol) і OSPF (Open Shortest Path First), а також протокол міжмережевих повідомлень ICMP, що управляють (Internet Control Message Protocol).
Наступний рівень (рівень II) називається основним. На цьому рівні функціонують протокол управління передачею TCP (Transmission Control Protocol) і протокол дейтаграмм користувача UDP (User Datagram Protocol).
Верхній рівень (рівень I) називається прикладним. За довгі роки використання в мережах різних країн і організацій стек TCP/IP накопичив велику кількість протоколів і сервісів прикладного рівня. До них відносяться такі широко використовувані протоколи, як протокол копіювання файлів FTP, протокол емуляції терміналу telnet, поштовий протокол SMTP, використовуваний в електронній пошті мережі Internet, гіпертекстові сервіси доступу до видаленої інформації, такі як WWW і багато інших.
1.Протокол Ethernet
Формат кадру
Нижче в таблиці наведено поля кадру Ethernet, що поміщаються між стартовою преамбулою і хвостовиком кадру. Перший байт кожного поля старший.
Размір поля в байтах
Призначення
6
MAC - адреса одержувача
6
MAC - адреса відправника
2
тип наступного протоколу у відповідності з RFC-1700
45 - 1500
дані
2. Протокол IP
Internet Protocol(Протокол Internet) створений для використання в об'єднаних системах комп'ютерних комунікаційних мереж з комутацією пакетів. Протокол Internet забезпечує передачу блоків даних, званих датаграмами, від відправника до одержувачів, де відправники і одержувачі є хост-комп’ютерами, адресами фіксованої довжини, що ідентифікуються. Протокол Internet забезпечує при необхідності також фрагментацію і збірку датаграм для передачі даних через мережі з малим розміром пакетів.
Протокол Internet спеціально обмежений завданнями забезпечення функцій, необхідних для передачі бітового пакету (датаграми Internet) від відправника до одержувача через об'єднану систему комп'ютерних мереж. Немає механізмів для збільшення достовірності кінцевих даних, управління протоколом, синхронізації або інших послуг, зазвичай вживаних в протоколах передачі від хоста до хосту. Протокол Internet може узагальнити послуги мереж, що підтримують його, з метою надання послуг різних типів і
Формат заголовку IP-пакету
Розряди
Опис
7
6
5
4
3
2
1
0
Версія=4
протоколу
Довжинна
заголовку
дейтаграми
1 байт
Type of Service
Вид обслуговування
старший байт
Загальна довжина дейтаграми в байтах
молодший байт
старший байт
Identification
Ідентифікатор дейтаграми
Формується абонентом, що формирує
дейтаграму, служить для ідентифікації
конкретної дейтаграми.
Виглядає, як 16-ти розрядний лічильник.
молодший байт
O DF MF
Flags
Зміщення
фрагменту
Поле прапорців і поле зміщення фрагменту
даних від початку першого блоку даних
(використовується при сегментації)
молодший байт
1 байт
Time to Live
Час життя.
Поле показує кількість переходів через
маршрутизатори
1 байт
Protocol.
Тип наступного протоколу
2 байти
Header Checksum
Контрольна сума заголовку
старший байт
Source Address
Адреса відправника
1 байт
1 байт
молодший байт
старший байт
Адрес одержувача
Destination Address
1 байт
1 байт
молодший байт
. . .
Options
Поле додаткових послуг (може бути відсутнім)
Довжина поля додаткових послуг визначається
як різниця заданої довжини заголовку і розміру
фіксованої частини.
1, 2 чи 3 байти
Padding (Вирівнювання заголовку)
Використовується, щоб переконатись, що
Internet заголовок закінчиться на 32-байтній
границі.Вирівнювання нулями.
3.Транспортний рівень TCP/IP
Транспортний рівень Internet реалізується ТСР і Протоколом Дейтаграмм Користувача (User Datagram Protocol - UDP).
ТСР забезпечує транспортування даних зі встановленням з'єднання, тоді як UDP працює без встановлення з'єднання.
3.1 Протокол ТСР
Протокол TCP надає транспортні послуги, що відрізняються від послуг UDP. Замість ненадійної доставки датаграм без встановлення з'єднань, він забезпечує гарантовану доставку зі встановленням з'єднань у вигляді байтових потоків.
Протокол TCP використовується в тих випадках, коли потрібна надійна доставка повідомлень. Він звільняє прикладні процеси від необхідності використовувати таймаути і повторні передачі для забезпечення надійності. Найбільш типовими прикладними процесами, використовуючими TCP, є FTP (File Transfer Protocol - протокол передачі файлів) і TELNET. Крім того, TCP використовують система X-Window, rcp (remote copy - видалене копіювання) і інші "r-команди".
Коли прикладний процес починає використовувати TCP, то модуль TCP на машині клієнта і модуль TCP на машині сервера починають спілкуватися. Ці два крайові модулі TCP підтримують інформацію про стан з'єднання, званого віртуальним каналом. Цей віртуальний канал споживає ресурси обох крайових модулів TCP. Канал є дуплексним; дані можуть одночасно передаватися в обох напрямах. Один прикладний процес пише дані в TCP-порт, вони проходять по мережі, і інший прикладний процес читає їх з свого TCP-порту.
Протокол TCP розбиває потік байт на пакети; він не зберігає меж між записами. Наприклад, якщо один прикладний процес робить 5 записів в TCP-порт, то прикладний процес на іншому кінці віртуального каналу може виконати 10 читань для того, щоб отримати всі дані. Але цей же процес може отримати всі дані відразу, зробивши тільки одну операцію читання. Не існує залежності між числом і розміром записуваних повідомлень з одного боку і числом і розміром прочитуваних повідомлень з іншого боку.
Протокол TCP вимагає, щоб всі відправлені дані були підтверджені стороною, що прийняла їх. Він використовує таймаути і повторні передачі для забезпечення надійної доставки. Відправникові дозволяється передавати деяку кількість даних, не чекаючи підтвердження прийому раніше відправлених даних. Таким чином, між відправленими і підтвердженими даними існує вікно вже відправлених, але ще непідтверджених даних. Кількість байт, які можна передавати без підтвердження, називається розміром вікна. Як правило, розмір вікна встановлюється в стартових файлах мережевого програмного забезпечення. Оскільки TCP-канал є дуплексним, то підтвердження для даних, що йдуть в одному напрямі, можуть передаватися разом з даними, що йдуть в протилежному напрямі. Приймачі на обох сторонах віртуального каналу виконують управління потоком передаваних даних для того, щоб не допускати переповнювання буферів.
Формат заголовку TCP-сегменту
Передача TCP-сегментів здійснюється у вигляді Internet датаграм. Заголовок датаграми в Internet протоколі має декілька інформаційних полів, включаючи адреси що відправляє і приймає хост- комп'ютерів. Заголовок TCP слідує за Internet заголовком і доповнює його інформацією, специфічною для TCP протоколу. Таке ділення допускає використання на рівні хост-комп’ютерів протоколів, інших ніж TCP.
Формат TCP заголовка
Кожна мітка вказує тут місце для відповідного біта.
Source Port (порт відправника) -16 біт
Destination Port (порт одержувача) -16 біт
Sequence Number (послідовний номер) 32 біти
Acknowledgment Number (номер підтвердження) 32 біти
Header Length (довжина заголовку в 32-бітних словах) 4 біти
Reserved 6 біт
Control Bits (контрольні біти) 6 біт
Біти цього поля зліва направо
URG:
поле термінового покажчика задіяне
ACK:
поле підтвердження задіяне
PSH:
функція проштовхування
RST:
перезавантаження даного з'єднання
SYN:
синхронізація номерів черги
FIN:
немає більше за дані для передачі
Window (вікно) 16 біт
Checksum (контрольна сума) 16 біт
Поле контрольної суми - це 16-бітове доповнення суми всіх 16- бітових слів заголовка і тексту. Якщо сегмент містить в заголовку і тексті непарну кількість октетів, що підлягають обліку в контрольній сумі, останній октет буде доповнений нулями справа з тим, щоб утворити для надання контрольній сумі 16-бітове слово. Виниклий при такому вирівнюванні октет не передається разом з сегментом по мережі. Перед обчисленням контрольної суми поле цієї суми заповнюється нулями.
Контрольна сума, крім всього іншого, враховує 96 біт псевдозаголовку, який для внутрішнього вживання ставиться перед TCP заголовком. Цей псевдозаголовок містить адресу відправника, адресу одержувача, протокол і довжину TCP сегменту. Такий підхід забезпечує захист протоколу TCP від сегментів, що помилилися в маршруті. Цю інформацію обробляє Internet протокол. Вона передається через інтерфейс протокол TCP/локальная мережа як аргументи або результати запитів від протоколу TCP до протоколу IP.
Адреса відправника
Адреса отримувача
Нулі
PTCL
довжина TCP
Довжина TCP сегменту - це довжина TCP заголовка і поля даних, зміряна в октетах. Це не є точною вказівкою кількості передаваних по мережі октетів, вона не враховує 12 октетів псевдозаголовка, але проте розрахунок цього параметра все ж таки проводиться.
Urgent Pointer (терміновий покажчик) 16 біт
Options (опції) довжина змінна
Опції можуть розташовуватися в кінці TCP заголовка, а їх довжина кратна 8 біт. Всі опції враховуються при розрахунку контрольної суми.
Padding (вирівнювання) довжина змінна.
3.2 Протокол UDP
Протокол UDP набагато простіший, ніж ТСР; він корисний в ситуаціях, коли потужні механізми забезпечення надійності протоколу ТСР не обов'язкові. Заголовок UDP має всього чотири поля: поле порту джерела (source port), поле порту пункту призначення (destination port), поле довжини (length) і поле контрольної суми UDP (checksum UDP). Поля порту джерела і порту призначення виконують ті ж функції, що і в заголовку ТСР. Поле довжини позначає довжину заголовка UDP і даних; поле контрольної суми забезпечує перевірку цілісності пакету. Контрольна сума UDP є факультативною можливістю.
Головним застосуванням протоколу UDP є системи Internet Name Server, і Trivial File Transfer, SNMP.
Байти
Розряди
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
0
Порт відправника
Порт одержувача
4
Довжина протокольного блоку
Перевірочна сума
8 . .
Дані
4.Відображення фізичних адрес на IP-адреси: протоколи ARP і RARP
У протоколі IP-адреса вузла, тобто адреса комп'ютера або порту маршрутизатора, призначається довільно адміністратором мережі і прямо не пов'язаний з його локальною адресою, як це зроблено, наприклад, в протоколі IPX. Підхід, використовуваний в IP, зручно використовувати в крупних мережах і унаслідок його незалежності від формату локальної адреси, і унаслідок стабільності, оскільки інакше, при зміні на комп'ютері мережевого адаптера цю зміну повинні б були враховувати всі адресати усесвітньої мережі Internet (в тому разі, звичайно, якщо мережа підключена до Internet'у).
Для визначення локальної адреси по IP-адресі використовується протокол дозволу адреси Address Resolution Protocol, ARP. Протокол ARP працює різним чином залежно від того, який протокол канального рівня працює в даній мережі - протокол локальної мережі (Ethernet, Token Ring, FDDI) з можливістю широкомовного доступу одночасно до всіх вузлів мережі, або ж протокол глобальної мережі (X.25, frame relay), що як правило не підтримує широкомовний доступ. Існує також протокол, вирішальний зворотне завдання, - знаходження IP-адреси за відомою локальною адресою. Він називається реверсивний ARP - RARP (Reverse Address Resolution Protocol) і використовується при старті бездіськових станцій, що не знають в початковий момент своєї IP-адреси, але що знають адресу свого мережевого адаптера.
У локальних мережах протокол ARP використовує широкомовні кадри протоколу канального рівня для пошуку в мережі вузла із заданою IP-адресою.
Вузол, якому потрібно виконати відображення IP-адреси на локальну адресу, формує ARP запит, вкладає його в кадр протоколу канального рівня, указуючи в нім відому IP-адресу, і розсилає запит широкомовно. Всі вузли локальної мережі отримують ARP запит і порівнюють вказану там IP-адресу з власною. У разі їх збігу вузол формує ARP-відповідь, в якій указує своя IP-адреса і своя локальна адреса і відправляє його вже направлено, оскільки в ARP запиті відправник указує свою локальну адресу. ARP-запити і відповіді використовують один і той же формат пакету. Оскільки локальні адреси можуть в різних типах мереж мати різну довжину, то формат пакету протоколу ARP залежить від типу мережі. На малюнку 3.2 показаний формат пакету протоколу ARP для передачі по мережі Ethernet.
Тип мережі
Тип протоколу
Довжина локальної адреси
Довжина мережевої адреси
Операція
Локальна адреса відправника (байти 0 - 3)
Локальна адреса відправника (байти 4 - 5)
IP-адреса відправника (байти 0-1)
IP-адреса відправника (байти 2-3)
Шукана локальна адреса (байти 0 - 1)
Шукана локальна адреса (байти 2-5)
Шукана IP-адреса (байти 0 - 3)
У полі типу мережі для мереж Ethernet указується значення 1. Поле типу протоколу дозволяє використовувати пакети ARP не тільки для протоколу IP, але і для інших мережевих протоколів. Для IP значення цього поля рівне 080016.
У полі операції для ARP запитів указується значення 1 для протоколу ARP і 2 для протоколу RARP.
Вузол, що відправляє ARP-запит, заповнює в пакеті всі поля, окрім поля шуканої локальної адреси (для RARP-запиту не указується шукана IP-адреса). Значення цього поля заповнюється вузлом, що пізнав свою IP-адресу.
5.Протокол ICMP
Протокол Internet (IP) використовується для обробки датаграми, передаваної між хост-комп’ютерами в системі об'єднаних мереж. Пристрої, що здійснюють з'єднання різних мереж, називаються шлюзами. Для забезпечення управління шлюзи спілкуються один з одним за допомогою протоколу Gateway to Gateway Protocol (GGP). Деколи шлюз або хост-комп'ютер, одержуючий дані, обмінюється інформацією з хост-комп’ютером, що відправляє ці дані. Саме для таких цілей використовується даний протокол - протокол контрольних повідомлень Internet (ICMP). ICMP використовує основні властивості протоколу Internet (IP), неначебто ICMP був протоколом вищого рівня. Проте фактично ICMP є складовою частиною протоколу Internet і повинен бути складовою частиною кожного модуля IP.
Повідомлення ICMP повинні відправлятися в деяких складних ситуаціях. Наприклад, коли датаграма не може досягти свого адресата, коли шлюзу не має достатньо місця в своєму буфері для передачі якої-небудь датаграми, або коли шлюз наказує хост-комп’ютеру відправляти інформацію по коротшому маршруту.
Протокол Internet не створений для того, щоб забезпечувати абсолютну надійність передачі інформації. Метою ж даних контрольних повідомлень є забезпечення зворотного зв'язку, сповіщення відправника даних про проблеми, що виникають в комунікаційному устаткуванні. Їх метою не є додання надійності протоколу IP. Протокол не дає гарантій, що датаграма досягає свого адресата або що контрольне повідомлення буде повернено комп'ютеру, що відправив дані. Деякі з датаграм можуть зникнути в мережі, не викликавши при цьому ніяких сповіщень. Протоколи вищого рівня, що використовують протокол IP, повинні застосовувати свої власні процедури для забезпечення надійності передачі даних, якщо така потрібна.
Повідомлення ICMP протоколу, як правило, оповіщають про помилки, що виникають при обробці датаграм. Щоб проблеми з передачею повідомлень не викликали появу нових повідомлень, щоб це у свою чергу не привело до лавиноподібного зростання кількості повідомлень, циркулюючих в мережі, констатується, що не можна посилати повідомлення про повідомлення. Також констатується, що ICMP повідомлення можна посилати тільки про проблеми, що виникають при обробці нульового фрагмента в сегментованій датаграмі (нульовий фрагмент має нуль в полі зсуву фрагмента).
ICMP повідомлення посилаються за допомогою стандартного IP заголовка. Перший октет в полі даних датаграми - це поле типу ICMP повідомлення. Значення цього поля визначає формат решти всіх даних в датаграмі. Будь-яке поле, яке помічене "unused", зареєстроване для подальших розробок і повинне при відправленні містити нулі. Проте одержувач не повинен використовувати значення цих полів (за винятком процедури обчислення контрольної суми).
Формат ICMP повідомлення
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
Тип
Код
Контрольна сума
Не використовується
Дані
Список типів повідомлень
0 відповідь на запит ехо
3 адресат недосяжний
4 пауза відправника
5 переадресація
8 ехо-запит
11 перевищення контрольного часу
12 проблеми з параметрами
13 штамп часу
14 відповідь на запит штампу часу
15 запит інформації
16 відповідь на запит інформації
6.Програми-аналізатори пакетів
6.1 EtherSnoop
1. Вибір мережевого адаптера(модем, мережева карта…).
2. Запуск перехоплення пакетів.
3. Фільтр пакетів по типах.
4. Дослідник пакетів.
6.2 EtherScan Analyzer
1. Вибір мережевого адаптера(модем, мережева карта…).
2. Запуск перехоплення пакетів.
3. Фільтр пакетів по типах.
4. Дослідник пакетів.
5. Вид : сесія чи пакети.
Практикум
1. Запустіть програму EtherSnoop.
2. Ознайомтесь з інтерфейсом програми.
3. Виберіть в якості мережевого адаптера мережеву карту.
4. У фільтрі пакетів відзначке галочкою «Others».
5. Запустіть перехоплення пакетів.
6. Перехопіть пакет типу «IPv4-TCP».
7.Зарисуйте структуру заголовку Ethernet в таблицю
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Dst Mac Adress(0-3)
Dst Mac Adress(4-5)
Src Mac Adress(0-1)
Src Mac Adress(2-5)
Type
DATA…
8. Поясніть значення кожного поля.
9. Зарисуйте структуру заголовку IP в таблицю, поясніть значення кожного поля.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
IHL
Version
Type of Service
Total Length
Identification
Flags
Offset
Time to live
Protocol
Header Checksum
Source Address
Destination Address
IP Options(Optional)…
10. Зарисуйте структуру TCP заголовку в таблицю, поясніть значення кожного поля.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Source Port
Destination Port
Sequence Number
Acknowledgement Number
Offset
Reserved
Flags
Window
Checksum
Urgent Point
Options(Optional)…
11. Зарисуйте структуру поля “Options” в таблицю, поясніть, що означає кожна опція.
URG:
ACK:
PSH:
RST:
SYN:
FIN:
12. Напишіть яка довжина даних в даному пакеті.
13. Перехопіть пакет типу «IPv4-UDP».
14. Зарисуйте структуру UDP заголовку в таблицю, поясніть, що означає кожне поле.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Source Port
Destination Port
Message Length
Checksum
Data….
15. Перехопіть пакет типу «ARP».
16. Зарисуйте структуру ARP заголовку в таблицю, поясніть, що означає кожне поле.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Hardware Type
Protocol Type
Hardware Adress
Length
Protocol Adress Length
Operation
Sender Hardware Adress(0-3)
Sender Hardware Adress(4-5)
Sender Protocol Adress
Sender Protocol Adress(2-4)
Target Hardware Adress(0-1)
Target Hardware Adress(2-5)
Target Protocol Adress(0-3)
17. Перехопіть пакет типу «ICMP».
18. Зарисуйте структуру ICMP заголовка в таблицю, поясніть, що означає кожне поле.
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
Тип
Код
Контрольна сума
Не використовується
Дані
19. Оформіть звіт з лабораторної роботи.
Контрольні питання:
На скільки рівнів діляться протоколи TCP/ІP?
Яким рівням моделі OSI відповідає найнижчий четвертий рівень протоколів TCP/ІP?
Які стандарти фізичного і канального рівня моделі OSI підтримує четвертий рівень протоколів TCP/ІP?
Чим займається ІІІ рівень протоколів TCP/ІP?
Які протоколи функціонують на ІІ рівні протоколів TCP/ІP?
Які протоколи та сервіси прикладного рівня відносяться до І рівня протоколів TCP/ІP?
З якою метою створено IP?
Що забезпечує IP?
Що спричинило появу IPv6?
Які oсновні відмінності між IPv6 та IPv4?
Чим відрізняється протокол TCP від UDP?
Яка різниця в адресації протоколу IP від IPX?
Для чого застосовується протокол ARP?
Яке призначення протоколу ICMP?
Скільки існує типів ICMP повідомлень?
Література
Буров Є.В. Комп’ютерні мережі: Підручник. - Львів: “Магнолія плюс” 2006 - 264 c.
Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 3-е изд. - СПб: Питер, 2006. - 958 с.