ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
549547 Топик полностью
OlegPowerC (27.09.2014 00:40 - 13:00, просмотров: 402) ответил Sylvan на до IE теперь только в понедельник дойду.
Проверьте в вашей ОС ключ реестра TcpAckFrequency - так как в Windows по умолчанию включена "задержка ACK" Винда по идее делает следующее: При приеме пакета взводится таймер 200мс. и если по истечении этого времени более данных не пришло, то отправляется ACK. То есть с момента приема пакета до его подтверждения пройдет 200мс. Однако если до истечения таймера, прийдет еще 1 или 2 пакета (в зависимости от параметра TcpAckFrequency) то ACK будет послан немедленно. По умолчанию должно быть 2 пакета - именно поэтому ваш Кеил бъет пакеты на два (можно его заставить это делать). Это сделано в расчете на то что ACK будет приходить на каждый второй пакет. Однако если есть данные в обратную сторону, то пакет с PUSH так же будет с ACK. Говорят если параметра TcpAckFrequency нет то его можно создать, и задать ему значение 1. Поищите в инете по этому параметру. Но это все ущербно, нужно чтоб стек делал следующее: Если есть данные для посылки, они посылаются и без получения ACK если конечно их суммарный размер, не привысит размер окна, объявленного приемником, после приема ACK и проверки не изменилось ли окно, можно снова начинать слать пакеты до размера нового окна, по той же схеме - но кейл тут пролетает.