Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsiya_6.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
187.16 Кб
Скачать

Ковзне вікно передавача

Розглянемо тепер, як передавач змінює позицію вікна передавача. У нашому прикладі, припустимо, передавач посилає ще два байти (203 і 204) і отримує з приймача підтвердження на успішний прийом байтів 200-202. Тепер очікують підтвердження два байти (203 і 204). Якщо розмір вікна приймача не змінюється (поки ще дорівнює 7), то передавач може тепер зрушувати своє вікно і звільнити місця, зайняті байтами 200-202, які можуть бути використані повторно. Рис. 5.7 показує стан буфера передавача і вікно передавача перед і після цієї події. У другій частині цього малюнка передавач може тепер посилати байти з 205 до 209 (5 наступних байт).

Рис. 5.7.  "Ковзне вікно" передавача

Розширення "ковзного вікна"

Якщо процес приймача приймає дані швидше, ніж вони надходять, розмір вікна може бути розширений (в буфер можна додати вільні місця). Ця ситуація може призвести до збільшення (розширення) розміру вікна в передавачі. На Рис. 5.8 приймач надіслав підтвердження ще на 2 байти (тепер очікує підтвердження байт 205), і в той же самий час розмір вікна приймача збільшений до 10. Таке збільшення дозволяє процесу передачі ввести додатково 5 байт і передати 5 байт.

Рис. 5.8.  Расширение окна передатчика

Зменшення вікна передавача

Якщо процес приймача приймає дані повільніше, ніж вони надходять, розмір вікна приймача зменшується (стискується). На малюнку приймач приймає 5 байт (з 205 до 209); однак процес прийому бере на обслуговування тільки один байт - це означає, що число вільних місць зменшується в порівнянні з показаним на Рис. 5.5. до 6 (10-5 +1). Він підтверджує байти з 205 до 209 (чекаючий байт 210), але інформує передавач, що треба стиснути розмір свого вікна і не посилати більше ніж 6 байтів. Якщо передавач вже послав 2 байти, коли він прийняв нові, а отримав на три більше від процесу передавача, ми будемо мати вікно і буфер, показаний на мал. 5.9.

Рис. 5.9. Зменшення вікна передавача

Закриття вікна передавача

Що відбудеться, якщо буфер приймача заповнений? У цьому випадку розмір вікна приймача має значення нуль. Коли це транслюється передавача, передавач закриває вікно (ліва і права стінки перекриваються). Передавач не може передати жодного байта, поки приймач не передасть значення розміру вікна приймача, не рівне нулю.

Синдром "дурного вікна"

Серйозна проблема може виникнути при роботі зі "ковзним вікном", коли яка-небудь передавальна прикладна програма повільно створює дані, або приймальна прикладна програма повільно приймає дані, або мають місця обидва випадки. У будь-якій з цих ситуацій результат полягає в посилці дуже маленьких сегментів, які зменшують ефективність роботи. Наприклад, якщо TCP посилає сегмент, що містить один байт даних, це означає, що ми посилаємо дейтаграму 41 байт (20 байт – TCP-заголовок і 20 байт – IP-заголовок), яка передає тільки 1 байт для користувача даних. Співвідношення заголовок/ інформація (41/1) вказує, що продуктивність мережі використовується дуже неефективно. Ця проблема називається синдром "дурного вікна". Розглянемо детальніше, як створюється ця проблема, а потім - як вона може бути вирішена.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]