📌 Шпаргалка #02
🔗 Принцип работы TCP
🤝 Трёхстороннее рукопожатие
TCP работает как телефонный разговор — сначала устанавливается связь, потом передаются данные.
Ты: SYN → хочу подключиться
Сервер: SYN + ACK → хочу тоже + подтверждаю
Ты: ACK → подтверждаю, поехали
SYN и ACK от сервера летят одним пакетом — поэтому 3 шага, а не 4.
📦 Гарантии TCP
- Все пакеты дойдут — если потерялся, получатель попросит повторить
- Порядок сохранится — пакеты могут прийти вразнобой, TCP соберёт правильно
- Дубли отбросятся — если пришёл дважды, второй игнорируется
Каждый пакет подтверждается. Нет подтверждения — отправляется повторно.
🚪 Завершение соединения
Максимум 4 шага (если сервер ещё досылает данные):
Ты: FIN → я закончил
Сервер: ACK → понял, секунду...
Сервер: FIN → теперь и я закончил
Ты: ACK → ок, закрываем
Если обе стороны закончили одновременно — сервер совмещает FIN + ACK в один пакет и получается 3 шага.
⚡ TCP vs UDP
| TCP | UDP | |
|---|---|---|
| Соединение | Да (хендшейк) | Нет |
| Гарантия доставки | Да | Нет |
| Порядок пакетов | Да | Нет |
| Скорость | Медленнее | Быстрее |
| Примеры | HTTP, SSH, FTP | DNS, VoIP, игры |
🎯 Почему пентестеру важно
Весь Nmap строится на манипуляции TCP-хендшейком:
-sS(SYN-скан) — отправляешь SYN, получаешь SYN-ACK = порт открыт. Полное соединение не устанавливаешь.-sA(ACK-скан) — отправляешь ACK без SYN. Нормальный хост ответит RST. Фаервол — дропнет.-sF/-sX/-sN— «неправильные» комбинации флагов. По реакции определяешь состояние порта.
Зная как работает TCP — понимаешь логику каждого типа скана.