Національний університет «Львівська політехніка»
Інститут комп’ютерних технологій, автоматики та метрології
ІКТА
Кафедра БІТ
Звіт
Лабораторна робота № 8
«Транспортні протоколи - TCP і UDP»
Львів – 2017
Мета роботи
У цій лабораторній роботі ми дослідимо поведінку протоколу TCP детальніше. Ми робитимемо це шляхом аналізу TCP пакетів при передачі файлу розміром 150KB з вашого комп'ютера на віддалений сервер. Ми вивчимо використання в TCP порядкових номерів та номерів підтвердження з метою забезпечення надійності передавання даних; побачимо алгоритм контролю швидкості передачі TCP пакетів в дії. Також, ми коротко розглянемо налаштування з'єднання TCP і дослідимо продуктивність (пропускну спроможність і час прийому-передачі) з'єднання TCP між вашим комп'ютером і сервером.
Теоретичні відомості
Transmission Control Protocol (TCP, протокол управління передачею) - один з основних протоколів передачі даних інтернету, призначений для управління передачею даних . Мережі і підмережі, в яких спільно використовуються протоколи TCP і IP , називаються мережами TCP / IP .
Механізм TCP надає потік даних з попередньою установкою з'єднання, здійснює повторний запит даних в разі втрати даних і усуває дублювання при отриманні двох копій одного пакета, гарантуючи тим самим, на відміну від UDP , цілісність переданих даних і повідомлення відправника про результати передачі.
Реалізації TCP зазвичай вбудовані в ядра ОС . Існують реалізації TCP, що працюють в просторі користувача .
Коли здійснюється передача від комп'ютера до комп'ютера через Інтернет, TCP працює на верхньому рівні між двома кінцевими системами, наприклад, браузером і веб-сервером. TCP здійснює надійну передачу потоку байтів від однієї програми на деякому комп'ютері до іншої програми на іншому комп'ютері (наприклад, програми для електронної пошти, для обміну файлами). TCP контролює довжину повідомлення, швидкість обміну повідомленнями, мережевий трафік.
User Datagram Protocol, UDP (укр. Протокол датаграм користувача) — один із протоколів в стеку TCP/IP. Від протоколу TCP він відрізняється тим, що працює без встановлення з'єднання. UDP — це один з найпростіших протоколів транспортного рівня моделі OSI, котрий виконує обмін повідомленнями (датаграмами — англ. datagram) без підтвердження та гарантії доставки. При використанні протоколу UDP відповідальність за обробку помилок і повторну передачу даних покладена на протокол рівнем вище. Але попри всі недоліки, протокол UDP є ефективним для серверів, що надсилають невеликі відповіді великій кількості клієнтів.
Завдання
Виклнати дослідження протоколу TCP.
Виклнати дослідження протоколу UDP.
Хід роботи
Дослідження протоколу TCP
1. Зайшов на http://gaia.cs.umass.edu/wireshark- labs/alice.txt.
/
2. Зберіг файл alice.txt.
/
3. Перевів скачаний файл в код ASCII.
/
4. Зайшов на eDisk та завантажив на сервер.
/
5. Запустив програму Wireshark та зупинив коли завантажував файл alice.txt.
/
6. Завантажив файл з http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip.
/
7. Запустив програму Wireshark та зупинив коли завантажував файл wireshark-traces.zip.
/
8. Для відображення пакетів TCP, я виконав наступне, вибрав пункт меню Analyze->Enabled Protocols Т та у вікні зняв галочку з HTTP.
/
9. Відображення ТСР-сегментів.
/
10. Графік передачі ТСР пакетів.
/
Дослідження протоколу UDP
1. Запустив програму Wireshark та зупинив перехоплення пакетів.
/
2. Прописав в полі пакет UPG.
/
3. Короткий огляд протоколу UDP.
/
Відповіді на контрольні питання
Яка IP адреса та номер TCP порту?
Номери порту TCP / IP джерела і порту призначення записуються в сегмент. Потім ці сегменти инкапсулируются в пакеті IP. У пакеті IP записується IP-адреса джерела і призначення. Комбінація IP-адрес джерела і призначення, а також номерів портів джерела і призначення називається сокетом. Сокет використовується для визначення сервера і служб, запропонованих клієнтом. Щодня тисячі вузлів взаємодіють з тисячами різних серверів. Їх взаємодії визначаються за допомогою сокетів.
Який номер порту використовується для прийому/відправлення TCP пакетів?
При встановленні з'єднання одна з сторін є ініціатором. Вона посилає запит до протоколу TCP на відкриття порту для передачі (active open). Після відкриття порту протокол TCP за процесса-ініціатора надсилає запит процесу, з яким потрібно встановити з'єднання. Протокол TCP на приймальній стороні відкриває порт для прийому даних (passive open) і повертає квитанцію, що підтверджує прийом запиту. Для того щоб передача могла вестися в обидві сторони, протокол на приймальній стороні також відкриває порт для передачі (active port) і також передає запит до протилежної сторони. Сторона-ініціатор відкриває порт для прийому і повертає квитанцію. З'єднання вважається встановленим. Далі відбувається обмін даними в рамках даного з'єднання. Концепція квитирования
Для того, щоб можна було організувати повторну передачу перекручених даних відправник нумерує відправляються одиниці даних (далі для простоти звані кадрами). Для кожного кадру відправник очікує від приймача так звану позитивну квитанцію - службове повідомлення, що сповіщає про те, що вихідний кадр був отриманий і дані в ньому виявилися коректними. Час цього очікування обмежена - при відправленні кожного кадру передавач запускає таймер, і якщо по його закінченню позитивна квитанція на отримана, то кадр вважається загубленим. У деяких протоколах приймач, у разі отримання кадру з перекрученими даними повинен відправити негативну квитанцію - явне зазначення того, що даний кадр потрібно передати повторно.
Який порядковий номер (sequence number) TCP SYN пакета?
Перший хост (А) відкриває з'єднання, посилаючи другому хосту (Б) пакет з початковим номером з'єднання і встановленим прапором SYN. Хост Б отримує SYN-пакет, записує номер (X) відповідає пакетом з порядковим номером X+1 і встановленими бітами SYN і ACK. Також хост Б вказує номер підтвердження (Y). Якщо цей номер рівний, наприклад, 40, то це означає що хост прийняв 39 байт і чекає 40-й байт. Ця технологія називається підтвердженням передачі даних. Потім хост А підтверджує прийом всіх байтів, надісланих хостом Б, вказуючи номер підтвердження Y+1 і встановлюючи прапор ACK. Лише після цього починається передача даних
Яка довжина кожного з шести TCP сегментів?
TCP містить шість однобітних полів прапорів. З трьома з них ми вже зустрічалися. Це прапори синхронізації (SYN), підтвердження (АСК) і прапор закінчення з'єднання (FIN).
Яку максимальну кількість байтів може переносити UDP пакет?
Максимальне значення становить 4 294 967 295 байт (2 32 - 1), з яких 8 байт відповідають заголовку, а решта 4 294 967 287 байт - даними.
Який номер протоколу відповідає UDP?
UDP забезпечує багатоканальну передачу (за допомогою номерів портів) і перевірку цілісності (за допомогою контрольних сум) заголовка та суттєвих даних. Надійна передача в разі необхідності повинна реалізовуватися користувальницьким додатком.
/
Висновок
У цій лабораторній роботі я дослідив поведінку протоколу TCP детальніше. Я робив це шляхом аналізу TCP пакетів при передачі файлу розміром 150KB з свого комп'ютера на віддалений сервер. Я вивчив використання в TCP порядкових номерів та номерів підтвердження з метою забезпечення надійності передавання даних; побачив алгоритм контролю швидкості передачі TCP пакетів в дії. Також, я коротко розглянув налаштування з'єднання TCP і дослідив продуктивність (пропускну спроможність і час прийому-передачі) з'єднання TCP між своїм комп'ютером і сервером.