Що таке sliding window?
Sliding window (ковзне вікно) - це механізм TCP, який дозволяє надсилати кілька сегментів поспіль, не чекаючи підтвердження кожного, при цьому не перевантажуючи отримувача.
Просто і доступно: ковзне вікно - це обмеження на те, скільки даних можна надіслати «вперед», не дочекавшись ACK.
Навіщо потрібне sliding window
Без вікна TCP працював би так:
- надіслав сегмент
- почекав підтвердження
- надіслав наступний
Це було б дуже повільно.
Sliding window дозволяє:
- передавати дані потоком
- ефективно використовувати пропускну здатність мережі
Як працює sliding window
1. Отримувач оголошує розмір вікна
Отримувач у кожному ACK повідомляє:
- Window Size - скільки байтів він готовий прийняти
Це захист отримувача від перевантаження.
2. Відправник може надіслати дані в межах вікна
Відправник:
- може надіслати кілька сегментів
- поки їхній сумарний розмір не перевищує розмір вікна
Підтвердження кожного сегмента не обов'язкове одразу.
3. Вікно «ковзає»
Коли отримувач:
- підтверджує отримання частини даних
вікно:
- зсувається вперед
- звільняючи місце для нових даних
Звідси й назва - sliding window.
Приклад для розуміння
- Розмір вікна: 10 байт
- Відправник може надіслати байти 1-10
- Отримувач підтверджує байти 1-5
- Вікно зсувається → тепер можна надіслати 11-15
Передача триває без зупинок.
Що саме контролює sliding window
Важливо. Sliding window в TCP відповідає за:
- керування потоком (flow control)
- не за маршрутизацію
- не за виправлення помилок напряму
Втрати обробляються окремо - через:
- ACK
- тайм-аути
- повторні передачі
Зв'язок з перевантаженням мережі
У TCP є два обмеження:
- Вікно отримувача (receiver window)
- скільки може прийняти отримувач
- Вікно перевантаження (congestion window)
- скільки дозволяє мережа
Фактично відправник використовує:
мінімум із цих двох значень
Чому це важливо для застосунків
Sliding window:
- підвищує швидкість передачі
- робить TCP масштабованим
- дозволяє працювати однаково добре:
- і в локальній мережі
- і через Інтернет
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.