Поведение TCP в отношении сегментации и повторной передачиLinux

Ответить
Anonymous
 Поведение TCP в отношении сегментации и повторной передачи

Сообщение Anonymous »


In a scenario where a TCP message was attempted by A, but it was larger than the MSS, the TCP message is segmented into 2 (comprising of one larger segment just under the MSS, and once smaller segment approximately 20 bytes).

Both segments are sent by A to B, and normally B sends a single ACK after the 2nd segment.

In one instance, there is an observation that B did not immediately send an ACK at all. In this scenario, A has continued to retransmit the first segment, but B does not ACK this for approximately 8 seconds. Eventually B does send the ACK, then A retransmits the second segment, and B immediately sends another ACK.

In the above scenario, is it possible that B has received the first segment, but not the second, and is waiting for the second segment before sending its ACK?

Meanwhile, A does not seem to retransmit the second segment until after it's got the ACK for the first segment. Is this expected?

Could it be that there is confusion between A and B, where B is waiting for the second segment, but A thinks that B has not got the first segment, and is not retransmitting the second segment until the first segment is acknowledged.

Both A and B are Netty based Java applications running on OL6 and CentOS7 respectively. A and B are separated by a latency of approximately 40ms.

I expected that A would retransmit both segments, and B would ACK the first segment earlier.


Источник: https://stackoverflow.com/questions/780 ... ansmission
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»