Коллизии порядковых номеров TCP в сеансах - PullRequest
0 голосов
/ 04 августа 2020

Что предотвращает коллизии порядковых номеров в нескольких сеансах TCP из одного и того же кортежа (IP-адрес источника, порт источника, IP-адрес назначения, порт назначения)? Более подробно, мне интересно, что предотвращает сценарий ios вроде следующего:

  1. Создан сеанс TCP S1.
  2. Некоторые пакеты отправляются на S1, в том числе один с последовательностью TCP номер N.
  3. TCP-сеанс S1 закрыт.
  4. TCP-сеанс S2 создан с тем же (sr c IP, sr c порт, dst IP, dst порт), что и S1.
  5. Пакет с шага (2) с порядковым номером TCP N все еще находится в полете и, наконец, достигает получателя, пока N находится в окне приема для сеанса S2.

Если это происходит, пакет с порядковым номером N из старого сеанса (S1) будет передан приложению вместо пакета с порядковым номером N из нового сеанса.

Я думаю, что этот сценарий такой же, как TCP захват сеанса. Но мне интересно, что мешает этому случиться случайно, только потому, что два последовательных сеанса для одних и тех же конечных точек выбирают одинаковые порядковые номера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...