Сети и протоколы
TCP handshake: тест на воспроизведение
Воспроизведение бьёт перечитывание. На каждый вопрос проговори или запиши полный ответ по памяти, прежде чем открыть модельный — именно усилие припоминания закрепляет механику.
Восстанови ключевые механизмы юнита — почему три шага, почему случайные ISN, как ведут себя SYN cookie и TIME-WAIT на масштабе, когда BBR бьёт CUBIC и как TCP связан с QUIC — не подглядывая в уроки.
- 01Почему TCP нужны три сообщения, а не два, и что делает каждый шаг?
- 02Почему Initial Sequence Number рандомизируются на каждое соединение и как это делает RFC 6528?
- 03Что такое TIME-WAIT, зачем он, и какие production-фиксы при EADDRNOTAVAIL?
- 04Объясни, как работает SYN cookie, и что теряют легитимные соединения во время флуда.
- 05Почему BBR держит пропускную способность на пути с ~1% случайных потерь, где CUBIC обваливается?
- 06Как TCP связан с QUIC и почему QUIC переизобрёл механизмы TCP поверх UDP, а не расширил TCP?
Если ты смог восстановить каждый ответ по памяти, ты держишь хребет юнита: три шага, потому что оба направления должны подтвердить ISN; рандомизированные ISN, чтобы остановить инъекцию; TIME-WAIT, чтобы поглощать запоздалые сегменты (фиксится на масштабе пулингом и tcp_tw_reuse, никогда tw_recycle или коротким MSL); SYN cookie, чтобы пережить флуд ценой отброшенных опций; BBR вместо CUBIC там, где потеря случайна, а не congestive; и QUIC как те же идеи, перенесённые поверх UDP, чтобы уйти от оссификации протокола.