- Популярные видео
- Авто
- Видео-блоги
- ДТП, аварии
- Для маленьких
- Еда, напитки
- Животные
- Закон и право
- Знаменитости
- Игры
- Искусство
- Комедии
- Красота, мода
- Кулинария, рецепты
- Люди
- Мото
- Музыка
- Мультфильмы
- Наука, технологии
- Новости
- Образование
- Политика
- Праздники
- Приколы
- Природа
- Происшествия
- Путешествия
- Развлечения
- Ржач
- Семья
- Сериалы
- Спорт
- Стиль жизни
- ТВ передачи
- Танцы
- Технологии
- Товары
- Ужасы
- Фильмы
- Шоу-бизнес
- Юмор
Why every TCP connection starts at one packet (and doubles until something breaks)
Every fresh TCP connection deliberately under-uses your link, then doubles its send rate every round-trip until a packet drops. That crash isn't a failure mode — it's the entire algorithm. It's how TCP probes for available bandwidth without a measurement instrument.
The mechanism has two phases. First, slow-start: cwnd doubles each RTT (1, 2, 4, 8, 16, 32). When the pipe fills and a packet drops, the algorithm flips to congestion avoidance — cwnd halves, then ticks up by one per round-trip. The dashed line between the two phases is called ssthresh.
The honest limit is what makes this matter for anyone shipping production services. Short HTTP requests finish before cwnd has time to climb. You're paying for a gigabit link and delivering a kilobit, because the request ended before slow-start was done probing.
Three fixes the modern stack uses: the initial window is now 10 packets, not 1. Reused connections carry their cwnd over, so HTTP/2 and keep-alive skip the climb entirely. And BBR replaces loss-based detection with direct bandwidth and RTT estimation, so the sender doesn't have to crash a packet to discover its capacity.
Why this matters at work: when a first API call to a new endpoint feels slow but subsequent calls snap, that's slow-start. When latency budgets get blown by short requests on long-RTT paths, this is usually the cause.
Видео Why every TCP connection starts at one packet (and doubles until something breaks) канала Adam Rosler
The mechanism has two phases. First, slow-start: cwnd doubles each RTT (1, 2, 4, 8, 16, 32). When the pipe fills and a packet drops, the algorithm flips to congestion avoidance — cwnd halves, then ticks up by one per round-trip. The dashed line between the two phases is called ssthresh.
The honest limit is what makes this matter for anyone shipping production services. Short HTTP requests finish before cwnd has time to climb. You're paying for a gigabit link and delivering a kilobit, because the request ended before slow-start was done probing.
Three fixes the modern stack uses: the initial window is now 10 packets, not 1. Reused connections carry their cwnd over, so HTTP/2 and keep-alive skip the climb entirely. And BBR replaces loss-based detection with direct bandwidth and RTT estimation, so the sender doesn't have to crash a packet to discover its capacity.
Why this matters at work: when a first API call to a new endpoint feels slow but subsequent calls snap, that's slow-start. When latency budgets get blown by short requests on long-RTT paths, this is usually the cause.
Видео Why every TCP connection starts at one packet (and doubles until something breaks) канала Adam Rosler
Комментарии отсутствуют
Информация о видео
12 мая 2026 г. 6:55:58
00:00:55
Другие видео канала




















