Транспортний рівень
Завантажити презентаціюПрезентація по слайдам:
Транспортний рівень Послуги транспортного рівня Мультиплексування/демультиплексування Передача без встановлення з'єднань: UDP Принципи надійної передачі Передача, орієнтована на з'єднання: TCP Принципи контролю перевантаженістю каналів Управління перевантаженістю каналів TCP
1. Послуги транспортного рівня Забезпечують логічні зв'язки між програмними процесами, які працюють на різних ПК Транспортні протоколи працюють в основному на різних системах Протоколи транспортного та мережевого рівнів мережевий рівень — обмін даними між кінцевими системами транспортний рівень — обмін даними між процесами залежить від розширень, послуг мережевого рівня
1. Послуги транспортного рівня Послуги передачі Internet надійність, впорядкована групова доставка (TCP) перевантаженість каналів управління потоком встановлення з'єднань ненадійна (метод “найкращої спроби”), невпорядкована одноточкова або групова доставка: UDP недоступні послуги: реального часу надійності швидкості передачі достовірна групова доставка Протоколи транспортного рівня
2. Мультиплексування/ демультиплексування Поняття: сегмент — одиниця обміну даними між елементами транспортного рівня. або одиниця даних протоколу транспортного рівня (Transport Data Protocol Unit, TDPU) Демультиплексування — процес доставки отриманих сегментів до відповідного процесу прикладного рівня П2 Отримувач H t segment сегмент M П1 П3 П4 Заголовок сегменту Дані прикладного рівня
2. Мультиплексування/ демультиплексування мультиплексування/демультиплексування: базується на інформації про номери портів та IP-адреси відправника та отримувача номер портів відправника та отримувача у кожному сегменті Зверніть увагу: для певних програм є загальноприйнятий перелік портів збір даних від декількох прикладних процесів з подальшим “обгортанням” заголовка # порта відпр. # порту отрим. 32 біти Дані програми (повідомлення) Інші поля заголовку Формат сегменту TCP/UDP
2. Мультиплексування/ демультиплексування: приклади хост A server B використання портів: Telnet WWW клієнт хост A WWW сервер B WWW клієнт хост C Використання портів: WWW сервер
3. Передача без встановлення з'єднань: User Datagram Protocol (UDP) [RFC 768] Транспортний протокол Internet “без збирання” Послуга типу “найкраща спроба”, UDP сегменти можуть: загубитися отримуватися в іншому порядку без встановлення з'єднання: нема обміну даними між відправником/отримувачем UDP кожен UDP сегмент приймається незалежно від інших Чому UDP? не встановлюється з'єднання (нема затримки) простота: не враховується стан з'єднання відправника, отримувача малий заголовок сегменту нема контролю перевантажень: UDP рухаються з максимальною швидкістю
3. Передача без встановлення з'єднань: UDP: продовження Часто використовується для потокового мультимедійного ПЗ стійкий до втрат чутливий до швидкості інші приклади UDP: DNS SNMP надійністьт передачі через UDP: додає надійність на прикладному рівні відновлення помилок специфічне для прикладного рівня # порта відпр. # порта отр. 32 біти Дані ПЗ (повідомлення) Формат сегменту UDP довжина Контр. сума Довжина UDP сегменту із заголовком (в байтах)
3. Передача без встановлення з'єднань: UDP: Контрольна сума Відправник: розглядає вміст сегменту як послідовність 16-и бітних цілих чисел контрольна сума: додавання (сума наявних одиниць) вмісту сегменту відправник розміщує контрольну суму у поле контрольної суми UDP Отримувач: обчислює контрольну суму отриманого сегменту перевіряє чи обчислена контрольна сума дорівнює значенню з поля контрольна сума: НІ – виявлено помилку ТАК – помилку не виявлено. А може помилка таки є? Мета: виявити у переданому сегменті “помилки” (напр. віддзеркалені біти)
4. Принципи надійної передачі важлива для прикладного, транспортного та канального рівнів Список ТОП-10 важливих мережевих тем! характеристики ненадійного каналу визначатимуть складність протоколу надійної передачі даних (reliable data transfer protocol, rdt)
4. Принципи надійної передачі: основи Визначимо: зростаюча розробка rdt протоколу для кожної сторони приймемо до уваги лише односторонню передачу даних однак інформація про управління буде рухатися в дві сторони! використаємо кінцевий стан машин для визначення кінцевого відправника та отримувача подія, яка спричиняє зміну стану дія при зміні стану стан: при перебуванні в даному “стані”, наступний стан буде унікально визначатися наступною подією
4. Принципи надійної передачі: Rdt1.0: надійна передача через надійний канал нижчі рівні мають чудову надійність нема помилок в бітах пакети не втрачаються окремі кінцеві стани машин (FSM) для відправника, отримувача відправник відсилає дані по нижчому каналу отримувач приймає дані від нижчого рівня
4. Принципи надійної передачі: Rdt2.0: канал з помилками бітів нижній канал може спотворювати біти у пакеті зверніть увагу: для виявлення помилок бітів використовується контрольна сума UDP Питання: яким чином відновити інформацію, яка зазнала спотворення: підтвердження (ACKs): отримувач підтверджує цілісність отримання пакету негативне підтвердження (NAKs): отримувач повідомляє про наявність помилок у пакетах відправник знову надсилає пакет, на який отримавNAK людські сценарії з використанням ACK, NAK? нові механізми у rdt2.0 (над rdt1.0): виявлення помилок зворотний зв'язок: контрольні повідомлення (ACK, NAK) відправник -> отримувач
4. Принципи надійної передачі: rdt2.0: в дії (виникнення помилок) FSM відправника FSM отримувача
4. Принципи надійної передачі: rdt2.0 зазнає фатальної помилки! Що відбувається якщо пошкоджено ACK/NAK? відправник не знає що сталося з отримувачем! не можна просто надіслати ще раз: можливе дублювання Що робити? Відправник надсилає ACKs/NAKs отримувачу? А якщо цей ACK/NAK втратиться? нова передача, однак в даному випадку можна продублювати правильний пакет! Обслуговування копій: відправник додає до кожного пакету номер послідовності відправник передає знову поточний пакет якщо спотворено ACK/NAK відправник скидає (не надсилає) дубльований пакет Відправник надсилає один пакет, а тоді чекає на відповідь
4. Принципи надійної передачі: rdt2.1: обговорення Відправник: # послідовності додається до пакету Двох # послідовності (0,1) достатньо. Чому? слід перевіряти чи пошкоджено отриманий ACK/NAK подвійна кількість станів стан повинен “пам'ятати” # поточного пакету 0 або 1 Отримувач: повинен перевірити чи дублюється отриманий пакет стан визначає який номер пакету очікується 0 чи 1 Заввага: отримувач не може знати чи правильно отримано останній ACK/NAK
4. Принципи надійної передачі: rdt2.2: протокол без NAK така ж функціональність як і у rdt2.1 при використанні лише ACK замість NAK, отримувач надсилає ACK для останнього пакету, який було успішно отримано отримувач повинен включати точний номер послідовності пакету, на який надсилається ACK дублювання ACK відправником має таку ж дію, як і NAK: передати поточний пакет FSM відправника !
4. Принципи надійної передачі: rdt3.0: канали з помилками та втратами даних Нове припущення: нижні канали можуть також втрачати пакети (дані або ACK) контрольна сума, # послідовності, ACK, повторна передача корисні, але чи достатньо? П: Що робити з втраченими даними? відправник чекає поки не буде втрачено певні дані або ACK, тоді повторно передає Кхмс: недоліки? Метод: відправник чекає “розумний” проміжок часу на ACK здійснює повторну передачу, якщо за цей час не отримано ACK Якщо пакет (або ACK) просто затримується (не втрачено): повторна передача відбудеться, однак використання # послідовності опрацює дублювання отримувач мусить зазначити, що на пакет надіслано ACK Необхідний таймер зворотнього відліку
4. Принципи надійної передачі: швидкодія rdt3.0 rdt3.0 працює, однак швидкодія є низькою наприклад: З'єднання 1 Гбіт/с, прогнозована затримка 15 мс, розмір пакету 1Kб: Пакет розміром 1Kб передається кожні 30 мсек -> 33kБ/с пропускна здатність через з'єднання 1 Гб/с мережеві протоколи обмежують використання фізичних ресурсів!
4. Принципи надійної передачі: конвеєрні протоколи Конвеєр: відправник надсилає декілька можливих для підтвердження пакетів “на льоту” діапазон номерів послідовностей повинен збільшитися буферизація у відпривника та/або отримувача Дві загальні форми конвеєрних протоколів: go-Back-N, вибіркове повторення
4. Принципи надійної передачі: Go-Back-N Відправник: k-бітний # послідовності у заголовку пакету “вікно” зростає до N, допустимі послідовні підтвердження пакетів ACK(n): ACK всі пакети в порядку зростання, включаючи # послідовності - “кумулятивний ACK” можна обманути подвійні ACK (див. на роботу Отримувача) таймер для кожного відісланого пакету timeout(n): передача пакету n та всі пакети з більшим # послідовності у вікні
4. Принципи надійної передачі: GBN: відправник розширює FSM відправник діє простіше: лише-ACK: завжди надсилає ACK для коректно прийнятих пакетів з найвищим порядковим # послідовності може генерувати копії ACK необхідно лише пам'ятати expectedseqnum позапорядковий пакет: відкинути (не буферизувати) -> отримувач не буферизує! пакет ACK з найвищим порядковим # послідовності
4. Принципи надійної передачі: Вибіркове повторення отримувач індивідуально підтверджує всі коректно отримані пакети буферизація пакетів при потребі, для ймовірної впорядкованої передачі до верхнього рівня відправник повторно надсилає лише ті пакети, для яких не отримано ACK відправник встановлює таймер для кожного непідтвердженого пакету вікно відправника N послідовних # послідовностей знову обмежує # послідовностей для відісланих, непідтверджених пакетів
4. Принципи надійної передачі: Вибіркове повторення дані згори: якщо наступний # послідовності у вікні, надіслати пакет timeout(n): знову надіслати пакет n, перезапустити таймер ACK(n) у [sendbase,sendbase+N]: позначити пакет n як отриманий якщо n найменший непідтверджений пакет, поширити базове вікно на наступний непідтверджений # послідовності Пакет n у [rcvbase, rcvbase+N-1] надіслати ACK(n) позапорядковий: буфер порядковий: доставити (також буферизовані порядкові пакети), розширити вікно на наступний ще не отриманий пакет Пакет n у [rcvbase-N,rcvbase-1] ACK(n) інакше: ігнорувати
4. Принципи надійної передачі: Вибіркова передача: дилема Приклад: # послідовності: 0, 1, 2, 3 розмір вікна=3 отримувач не бачить різниці між двома прикладами! некоректна передача дублює дані як нові у (a) Q: який взаємозв'язок між # послідовності та розміром вікна?
Схожі презентації
Категорії