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

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

Похожие вопросы