kirill_782
@kirill_782
Днем я Маринетт

Как обрабатывать наложение данных в разных сегментах TCP?

Изучаю механизм работы TCP и возникло один интересный случай. Есть 3 сегмента с данными

1) Seq = 1, Len = 10 (заливка данных 0x00)
2) Seq = 11, Len = 10 (заливка данных 0x01 байтом)
3) Seq = 15, Len = 10 (заливка 0x02 байтом)

В приемник пришли сегменты в следующем порядке: 1, 3, 2

Данные второго сегмента накладываются на данные третьего. Как должен поступить приемник? Как должен поступить приемник, если данные пришли в порядке 1, 2, 3
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 1
vvpoloskin
@vvpoloskin Куратор тега Компьютерные сети
Инженер связи
Очевидно, что сегменты забуферизируются.
Вот Очень хороший обширный материал по работе TCP. Прочитайте все главы вдумчиво и внимательно.
Если благополучно доставлены байты с номерами 0-N, а затем получен сегмент с номерами байтов (N+k) - (N+k+m), такой сегмент будет буферизован, но подтверждения его получения не последует. Вместо этого посылается отклик, с кодом номер октета, который должен прийти следующим =(N+1). В случае получения сегмента с неверной контрольной суммой будет послан отклик, идентичный предыдущему. Дублированные отклики позволяют детектировать потерю пакета.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы