TGViewer
System Design World System Design World @system_design_world · 6.02K subscribers
Post #111 1.8K
🔌 TCP соединение для System Design. Как всё начинается и почему так дорого?

🚚 TCP является протоколом транспортного уровня. В модели OSI располагается на уровне L4. Является базой для верхнеуровневых протоколов - HTTP, WebSocket, ...

Он обеспечивает в том числе:
✅ Гарантию доставки пакетов
✅ Гарантию сохранения порядка следования пакетов

Для реализации таких гарантий сторонам необходимо договориться о стартовых номерах - sequence number. Для этого придётся сделать 3 пересылки.

Junior level:
1. Клиент выражает своё желание установить соединение для отправки сообщений.
2. Сервер отвечает согласием и желанием отправлять сообщения со своей стороны.
3. Клиент отвечает, что согласие и желание принял.
🤝 Отсюда и возник термин "Трёхкратное рукопожатие".

Middle level:
1. Клиент отсылает пакет с:
• Проставленным флагом SYN(SYNхронизировать стартовый номер)
• Сгенерированным sequence number(client).
2. Сервер отвечает пакетом с:
• Проставленным флагом ACK: "Подтверждаю, что принял"
• Acknowledgment number = sequence number(client) + 1
• Проставленным флагом SYN и своим сгенерированным sequence number(server)
3. Клиент отвечает пакетом с:
• Проставленным флагом ACK
• Acknowledgment number = sequence number(server) + 1
• sequence number(client) + 1
После этого соединение считается установленным.

Senior level
Далее sequence number будут служить для реализации логики подтверждения доставки и упорядочения пакетов в случае, если они пришли не по порядку, потерялись. Число выбирается по определенному алгоритму. Это не полный random и не ноль. Хотя в том же wireshark для удобства рассмотрения первому sequence number присваивается 0 с пометкой "relative".

Итого
В контексте рассмотрения TCP соединения можно выделить:
✅ Преимущество протокола - создание сессии, гарантированная доставка пакетов в ней
❌ Недостаток - относительно "дорогая" процедура создания сессии.

▶️ Как часто на интервью Вас спрашивают про протоколы?

👏 - формат поста с графикой и описанием зашёл полностью
👍 - пост нормальный, больше графики
⚡️- пост нормальный, больше текста
🤔 - есть ещё идеи, напишу в комментариях

#Protocols
  • 👍 22
  • 👏 15
  • ⚡ 8
More from @system_design_world
  1. Oct 11, 2026🍁 Excalidraw не только лишь для System Design Распарсили с сыном стихотворение Тютчева "Е…
  2. Oct 9, 2026Если вдруг новость про это вот всё обошла вас стороной... Возможно, и к лучшему. Хочется в…
  3. Oct 8, 2026Архитектурные диаграммы без боли: C4, Sequence, ER Как вам начало? Сразу сделал монтаж. Сд…
  4. Oct 8, 2026Post #782
  5. Oct 7, 2026Константин из Авито в гостях! Константин Воливач — E6 Engineer из Авито. Покажет своё диаг…
  6. Oct 6, 2026System Design. Back to Basic. Балансировка. Пробую новый формат. Посмотрите, пожалуйста, к…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →