Переполнение счетчика последовательностей TCP

У меня следующий вопрос из курса:

"Предположим, что TCP-соединение осуществляется через Интернет с допустимой полосой пропускания 300 Мбит / с. Предположим, что некоторые пакеты транспортируются с очень большой задержкой. В какое время задержки могут возникнуть серьезные проблемы? Является ли это реальной проблемой?"

Я рассчитал, что при времени задержки ~2 минуты в счетчике последовательности произойдет переполнение (если вы предполагаете, что он начинается с 0). Согласно RFC счетчик последовательности будет переполнен до нуля. Я не нашел "что делать, если это произойдет" в RFC, но, возможно, я упустил это из виду.

Мой вопрос: что будет? Это просто ограничение TCP? Есть ли обходные пути (кроме использования большего счетчика последовательности)?

2 ответа

Хорошо, соответствующий RFC говорит вам, как сделать это правильно (и фактически решает проблему). См. http://www.apps.ietf.org/rfc/rfc1323.html раздел 4.

Я не думаю, что переполнение само по себе является проблемой, проблема будет возникать только тогда, когда вы получите пакет с порядковым номером, который находится внутри текущего окна приема, но фактически равен (кратному) 4 ГиБ назад поток данных. Чтобы это произошло, пакет должен быть отложен на две минуты в соответствии с вашими расчетами (звучит правдоподобно). На практике я не думаю, что это случается слишком часто, поскольку обычно во всех промежуточных системах не так много буферного пространства (оно также должно быть порядка 4 ГиБ).

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