TCP-представление для неподтвержденных данных в буфере отправителя - PullRequest
0 голосов
/ 02 декабря 2010

Каков наилучший способ сохранить неподтвержденный буфер данных (буфер отправителя) в TCP?

Я думаю о хранении самих данных и хранении пакетов (заголовок + данные)?

Этокажется, что повторная передача пакетов будет трудной, если я сохраню только байты данных, в отличие от хранения пакетов.

Язык: C

1 Ответ

1 голос
/ 02 декабря 2010

Границы пакета не имеют смысла в TCP: возможно, что половина данных пакета будет подтверждена (скажем, из-за фрагментации), а затем вам придется повторно передать оставшуюся половину.должен хранить необработанные данные, а не пакеты.Реальный вопрос, который вы должны задать: как мне узнать, какие данные были подтверждены.Вам нужна битовая маска для каждого байта данных в вашем окне, и вы можете пометить подтвержденные данные как 1, а остальные как 0. Когда вы обнаружите, что непрерывный блок данных в начале вашего окна был подтвержден, эта частьможно выдвинуть.

...