Как порядковые номера TCP работают в двунаправленном сообщении / скользящем окне?

Пытался понять, как работает TCP (конечно, не в подробностях). Я искал в Интернете понятные блок-схемы, и возник вопрос, на который я не мог найти прямого ответа.

Предположим, у нас есть этот красивый поток, в котором все синхронизировано (игнорируйте конечную часть с FIN и пересекающимися пакетами):

Как порядковые номера TCP работают в двунаправленном сообщении / скользящем окне?

Я хотел бы знать, что произойдет, если и A, и B захотят отправлять пакеты одновременно (насколько я понимаю, TCP является двунаправленным протоколом, поэтому каждый объект может отправлять, когда захочет). В основном, как будут вести себя порядковые номера. Наличие пересекающихся пакетов данных.

Также я читал, что TCP - это SWP (протокол скользящего окна), я хотел бы знать, как формируются ACK в этом случае. TCP отвечает количеством байтов в основном как номер Seq, я не могу себе представить, как это может происходить внутри окна (где вы можете получать в любом порядке). Использует ли реализация два набора порядковых номеров и два окна для получателя и отправителя?

Любые ссылки на спецификации или другие полезные ресурсы более чем приветствуются.

Не думаю, что вопрос здесь по теме. Спецификация, которую вы просите, стандартная - RFC 793. Но в основном TCP представляет собой поток байтов, и ACK отправителя указывает текущую позицию в потоке байтов отправителя (есть некоторое начальное смещение - начальный порядковый номер в подтверждении связи), а ACK указывает последнюю позицию, полученную потоком байтов однорангового узла. Окно к этому не имеет отношения.

Steffen Ullrich 01.04.2021 00:08

В каждом направлении есть отдельный порядковый номер.

user207421 01.04.2021 02:05
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
30
0

Другие вопросы по теме