1 / 17

Комп'ютерні мережі

Комп'ютерні мережі. Лекція 1 3 Протоколи транспортного рівня. План лекції. TCP та UDP порти Протокол UDP – функції і формат заголовку Протокол TCP Формат заголовку Керування логічним з'єднанням. Порти.

gitano
Télécharger la présentation

Комп'ютерні мережі

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Комп'ютерні мережі Лекція 13 Протоколи транспортного рівня

  2. План лекції • TCP та UDP порти • Протокол UDP – функції і формат заголовку • Протокол TCP • Формат заголовку • Керування логічним з'єднанням Лекція 13

  3. Порти • Протоколи транспортного рівня здійснюють мультиплексування-демультиплексування інформаційних потоків • Відправники і одержувачі пакетів ідентифікуються за номерами портів • Номери портів ≤1023 призначаються централізовано (організація IANA – Internet Assigned Numbers Authority) • Офіційний сайт організації IANA. Номери портів:http://www.iana.org/assignments/port-numbers Лекція 13

  4. Схема мультиплексування-демультиплексування Telnet FTP HTTP DNS TFTP SNMP 23 21 80 53 69 161 Протокол TCP Протокол UDP Протокол IP Лекція 13

  5. UDP • Протокол UDP є дуже простим дейтаграмним протоколом • Стандарт протоколу визначений у RFC 768: RFC-0768, User Datagram Protocol / J. Postel. – August 1980 • Основні функції UDP обмежуються мультиплексуванням і демультиплексуванням інформаційних потоків. • UDP дозволяє передавати в мережу одночасно дані від різних програм і приймати з мережі дані, що призначені різним програмам • Ідентифікація програм-відправників і програм-одержувачів здійснюється за номерами UDP-портів • Заголовок пакета (дейтаграми) UDP має довжину 8 байтів Лекція 13

  6. Заголовок UDP (8 байт) • Максимальна довжина пакета 65535 байтів (16 двійкових розрядів) • UDP повністю покладається на ідентифікацію відправника засобами мережного рівня, тобто за IP-адресою • 16-розрядна контрольна сума захищає від помилок при передаванні даних, але жодним чином не захищає від цілеспрямованої модифікації даних • UDP не гарантує доставку і не має засобів контролю доставки — це покладається на протокол вищого (прикладного) рівня Лекція 13

  7. TCP • Протокол TCPє протоколом із встановленням логічного з’єднання • У межах з’єднання здійснюються реєстрація послідовності пакетів, підтвердження доставки кожного пакета, керування потоком пакетів, повторна передача спотворених пакетів. Деякі із зазначених функцій надають сервіс із захисту від підміни суб’єктів з’єднання. • RFC-0793, Transmission Control Protocol / J. Postel. – September 1981 • За прийнятою термінологією, порція даних, яка передається як одне ціле, в протоколі TCP називається сегментом • Пакет TCP має заголовок мінімум 20 байтів завдовжки, після якого розміщуються дані Лекція 13

  8. Заголовок TCP Лекція 13

  9. Прапорці TCP • В заголовку присутні командні біти — прапорці, за допомогою яких здійснюється керування з’єднанням • CWR (Congestion Window Reduced) – встановлюється хостом, щоб показати, що було одержано TCP сегмент з установленим прапором ECE • ECE (ECN-Echo)вказує: • Якщо встановлено прапорець SYN (1) – хост підтримує ECN (явне повідомлення про перевантаження) • Якщо прапорець SYN не встановлено (0) – у ході звичайного обміну одержано пакет з прапорцемCongestion Experienced(повідомлення про перевантаження мережі) в заголовку IP • URG (Urgent Pointer field significant) – термінове повідомлення, у полі Urgent Pointerміститься 16-розрядний покажчик (зміщення від Sequence #)на кінець термінових байтів • ACK (Acknowledgment field significant) – поле Acknowledgement #містить значущі дані – квитанція на сегмент, що був прийнятий • PSH (Push Function) – запит на відправлення повідомлення без очікування заповнення буфера • RST (Reset the connection) ­– запит на закриття з’єднання • SYN (Synchronize sequence number) – повідомлення, що використовується для синхронізації лічильників переданих даних при встановленні з’єднання • FIN (No more data from sender) – ознака передачі останнього байта даних • Перші 2 з прапорців додані RFC 3168, останні 6 були впроваджені з самого початку Лекція 13

  10. Сеанс ТСР • Виконання протоколу TCP можна розділити на три стадії • Встановлення з’єднання (connection establishment) • З’єднання повинно бути встановлено шляхом процедури рукостискання у три кроки • Передавання даних (data transfer) • Здійснюється контроль послідовності переданих даних і підтвердження доставки, а також керування з’єднанням на підставі завантаженості мережі • Завершення з’єднання (connection termination) • Після завершення передавання даних на цій стадії здійснюється закриття встановлених віртуальних каналів і звільнення усіх виділених ресурсів Лекція 13

  11. Стани сеансу ТСР Лекція 13

  12. Стани сеансу ТСР (діаграма) Лекція 13

  13. Процедура встановлення TCP-з’єднання • Для встановлення TCР-з’єднання передбачена процедура рукостискання (Handshake) у три кроки Перший крок: A → B(клієнт серверу): SYN, ISSa • З прапорців встановлений лише SYN (так званий SYN-пакет) • У полі Номер послідовності установлено початкове 32-розрядне значення ISSa (ISN — Initial Sequence Number) • Сервер отримує сегмент, запам’ятовує номер послідовності і намагається створити сокет (буфери і керуючі структури пам’яті) для обслуговування нового клієнта Лекція 13

  14. Процедура встановлення TCP-з’єднання (другий крок) B → A(сервер клієнту): • Якщо сервер успішно створив сокет, він надсилає пакетSYN, ACK, ISSb, ACK(ISSa+1) • Встановлені прапорці SYN і ACK • У полі Номер послідовності міститься початкове значення ISSb, обране хостом В • У полі Номер підтвердження міститься значення, яке підтверджує одержання хостом В першого пакета • (а саме ISSa+1 — це значення, яке хост В очікує в наступному пакеті) • Сервер переходить у стан SYN-RECEIVED • Якщо сервер не може створити сокет, він надсилає пакет з прапором RST Лекція 13

  15. Процедура встановлення TCP-з’єднання (третій крок) A → B(клієнт серверу): • Якщо клієнт отримав сегмент з прапорами SYN і ACK, він надсилає пакет ACK, ISSa+1, ACK(ISSb+1) • Встановлено прапорець ACK • Поле Номер послідовності містить ISSa+1 • Поле Номер підтвердження містить ISSb+1 • Клієнт переходить у стан ESTABLISHED • Після цього: • Якщо сервер у стані SYN-RECEIVED отримує сегмент з прапором ACK, то він переходить у стан ESTABLISHED • Інакше після тайм-ауту він закриває сокет і переходить у стан CLOSED • Якщо клієнт отримує сегмент з прапором RST, він припиняє спроби з’єднатися • Якщо клієнт не отримує відповідь протягом 10 секунд, він повторює процес з’єднання з початку Лекція 13

  16. Поля Номер послідовностіі Номер підтвердження • 32-розрядні поля Номер послідовності і Номер підтвердження відіграють роль ідентифікаторів пакета, з’єднання і суб’єкта з’єднання, а також відіграють роль лічильника пакетів • Після встановлення з’єднання лічильники Номер послідовності і Номер підтвердження відраховують кількість переданих/прийнятих байтів інформації • Хост А, який передає дані, відправляє пакет, що містить N байтів даних, із значенням Номер послідовностіISSa • Хост В, який приймає дані, надсилає у відповідь пакет (квитанцію), в якому в полі Номер підтвердження міститься значення ISSa+N • Наступний пакет від хосту А повинен містити значення Номер послідовності ISSa+N, інакше хост В не прийме такий пакет як коректний • Якщо хост А не отримає квитанцію із очікуваним значенням Номер підтвердження протягом встановленого тайм-ауту, буде вважати, що пакет не був доставлений належним чином і повторить відправлення послідовності даних, починаючи з першого байту, на який не було отримано квитанцію. Лекція 13

  17. Обмін даними • Є кілька принципових особливостей, що відрізняютьпротокол TCP від UDP • Передавання упорядкованих даних – хост-одержувач переупорядковує отримані дані у відповідності до номерів послідовності • Повторне передавання втрачених пакетів – будь-які дані, що не були підтверджені квитанцією, будуть надіслані повторно • Передавання даних без помилок • Керування потоком – обмежує швидкість з якою відправник передає дані з метою гарантування надійної доставки. • Одержувач постійно інформує відправника скільки даних може бути отримано (керування здійснюється встановленням розміру вікна). • Коли буфер хосту-одержувача заповнюється, у наступному пакеті-підтвердженні вказують розмір вікна 0 для призупинення передавання і надання можливості для оброблення даних, що містяться у буфері • Керування перевантаженням мережі (Congestion control) Лекція 13

More Related