Я очень медленно загружаю некоторые серверы, которые мы размещаем при использовании HTTPS на ядре debian 8.1 3.16.0-4-amd64 Apache 2.4.10-10
Архитектура: КЛИЕНТ X.X.X.X => NAT НА ФЕЙЕРВЕРЕ: Y.Y.Y.Y => HTTP (S) ВЕБ-СЕРВЕР LAN IP: 10.254.248.101
Тест с HTTPS:
wget --no-check-certificate https://Y.Y.Y.Y/test/debian-8.5.0-amd64-netinst.iso
debian-8.5.0-amd64-netinst.iso.5 0%[ ] 632.00K 15.5KB/s eta 4h 30m
При запуске трассировки tcpdump на сервере (трассировка ниже) клиент X.X.X.X запрашивает 10.254.248.101 повторно отправить пакет много раз. Сервер ждет почти 4 секунды, чтобы повторно отправить пакет, запрошенный клиентом. Вот почему я так медленно скачиваю на сервер. Я не понимаю, почему серверу требуется так много времени для повторной отправки пакета. Есть ли что-то новое в Linux Kernel 3 для TCP? Что-то новое в Apache 2.4? Что-то, что FIREWALL не умеет управлять?
Обратите внимание: у нас нет этой проблемы в следующих случаях:
Тест с HTTP:
wget http://Y.Y.Y.Y//test/debian-8.5.0-amd64-netinst.iso
debian-8.5.0-amd64-netinst.iso.6 35%[=============================> ] 86.53M 1.34MB/s eta 2m 2s
След сервера:
366 7.930488 X.X.X.X 10.254.248.101 66 TCP 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668402 TSecr=44657604
369 7.931293 X.X.X.X 10.254.248.101 78 TCP [TCP Dup ACK 366#1] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668402 TSecr=44657604 SLE=3546403322 SRE=3546404710
370 7.933094 X.X.X.X 10.254.248.101 78 TCP [TCP Dup ACK 366#2] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668402 TSecr=44657604 SLE=3546403322 SRE=3546406098
371 7.933984 X.X.X.X 10.254.248.101 78 TCP [TCP Dup ACK 366#3] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668402 TSecr=44657604 SLE=3546403322 SRE=3546407486
372 7.934031 X.X.X.X 10.254.248.101 78 TCP [TCP Dup ACK 366#4] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668402 TSecr=44657604 SLE=3546403322 SRE=3546408874
373 7.935729 X.X.X.X 10.254.248.101 78 TCP [TCP Dup ACK 366#5] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546403322 SRE=3546410262
374 7.936154 X.X.X.X 10.254.248.101 78 TCP [TCP Dup ACK 366#6] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546403322 SRE=3546411650
375 7.937320 X.X.X.X 10.254.248.101 78 TCP [TCP Dup ACK 366#7] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546403322 SRE=3546413038
376 7.938613 X.X.X.X 10.254.248.101 86 TCP [TCP Dup ACK 366#8] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546414426 SRE=3546415814 SLE=3546403322 SRE=3546413038
377 7.940425 X.X.X.X 10.254.248.101 86 TCP [TCP Dup ACK 366#9] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546414426 SRE=3546417202 SLE=3546403322 SRE=3546413038
378 7.941661 X.X.X.X 10.254.248.101 86 TCP [TCP Dup ACK 366#10] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546414426 SRE=3546418590 SLE=3546403322 SRE=3546413038
379 7.942561 X.X.X.X 10.254.248.101 86 TCP [TCP Dup ACK 366#11] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546414426 SRE=3546419978 SLE=3546403322 SRE=3546413038
380 7.943155 X.X.X.X 10.254.248.101 86 TCP [TCP Dup ACK 366#12] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546414426 SRE=3546421366 SLE=3546403322 SRE=3546413038
381 7.945145 X.X.X.X 10.254.248.101 86 TCP [TCP Dup ACK 366#13] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
382 7.945992 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#14] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546424142 SRE=3546425530 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
383 7.946974 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#15] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668403 TSecr=44657604 SLE=3546424142 SRE=3546426918 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
384 7.948476 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#16] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546428306 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
385 7.949704 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#17] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546429694 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
386 7.950628 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#18] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546431082 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
387 7.951890 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#19] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546432470 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
388 7.953365 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#20] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546433858 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
389 7.954028 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#21] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546435246 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
390 7.955327 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#22] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546436634 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
391 7.956139 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#23] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546438022 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
392 7.957504 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#24] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546439410 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
393 7.958271 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#25] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546440798 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
394 7.963017 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#26] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668404 TSecr=44657604 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754 SLE=3546403322 SRE=3546413038
395 7.963080 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#27] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668405 TSecr=44657604 SLE=3546443574 SRE=3546444962 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
396 7.963091 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#28] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668405 TSecr=44657604 SLE=3546443574 SRE=3546446350 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
397 7.963127 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#29] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668405 TSecr=44657604 SLE=3546443574 SRE=3546447738 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
398 7.963912 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#30] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668405 TSecr=44657604 SLE=3546443574 SRE=3546449126 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
399 7.965634 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#31] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668405 TSecr=44657604 SLE=3546443574 SRE=3546450514 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
400 7.966653 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#32] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668405 TSecr=44657604 SLE=3546443574 SRE=3546451902 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
401 7.967402 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#33] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668405 TSecr=44657604 SLE=3546443574 SRE=3546453290 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
402 7.968499 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#34] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668405 TSecr=44657604 SLE=3546443574 SRE=3546454678 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
403 7.969984 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#35] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668405 TSecr=44657604 SLE=3546443574 SRE=3546456066 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
404 7.971168 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#36] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668405 TSecr=44657604 SLE=3546443574 SRE=3546457454 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
405 7.972479 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#37] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546443574 SRE=3546458842 SLE=3546424142 SRE=3546442186 SLE=3546414426 SRE=3546422754
406 7.973633 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#38] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546460230 SRE=3546461618 SLE=3546443574 SRE=3546458842 SLE=3546424142 SRE=3546442186
407 7.974609 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#39] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546460230 SRE=3546463006 SLE=3546443574 SRE=3546458842 SLE=3546424142 SRE=3546442186
408 7.975828 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#40] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842 SLE=3546424142 SRE=3546442186
409 7.976604 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#41] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546465782 SRE=3546467170 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
410 7.977806 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#42] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546465782 SRE=3546468558 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
411 7.979200 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#43] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546465782 SRE=3546469946 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
412 7.982792 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#44] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546465782 SRE=3546471334 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
413 7.982817 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#45] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546465782 SRE=3546472722 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
414 7.983331 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#46] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546465782 SRE=3546474110 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
415 7.983631 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#47] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668406 TSecr=44657604 SLE=3546465782 SRE=3546475498 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
416 7.984371 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#48] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668407 TSecr=44657604 SLE=3546465782 SRE=3546476886 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
417 7.986238 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#49] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668407 TSecr=44657604 SLE=3546465782 SRE=3546478274 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
418 7.987165 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#50] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668407 TSecr=44657604 SLE=3546465782 SRE=3546479662 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
419 7.988157 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#51] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668407 TSecr=44657604 SLE=3546465782 SRE=3546481050 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
421 8.113745 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#52] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668420 TSecr=44657604 SLE=3546465782 SRE=3546482438 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
424 8.150664 X.X.X.X 10.254.248.101 60 TCP 65259 > 443 [ACK] Seq=1251 Ack=2197 Win=65700 Len=0
428 8.373938 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#54] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668446 TSecr=44657604 SLE=3546465782 SRE=3546485214 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
434 8.504768 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#55] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668459 TSecr=44657604 SLE=3546465782 SRE=3546486602 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
436 8.630589 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#56] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668472 TSecr=44657604 SLE=3546465782 SRE=3546487990 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
439 8.759603 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#57] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668485 TSecr=44657604 SLE=3546465782 SRE=3546489378 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
441 8.886688 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#58] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668498 TSecr=44657604 SLE=3546465782 SRE=3546490766 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
443 9.015359 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#59] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668510 TSecr=44657604 SLE=3546465782 SRE=3546492154 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
445 9.141981 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#60] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668523 TSecr=44657604 SLE=3546465782 SRE=3546493542 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
447 9.271283 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#61] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668536 TSecr=44657604 SLE=3546465782 SRE=3546494930 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
449 9.398242 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#62] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668549 TSecr=44657604 SLE=3546465782 SRE=3546496318 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
451 9.525714 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#63] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668562 TSecr=44657604 SLE=3546465782 SRE=3546497706 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
453 9.653846 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#64] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668574 TSecr=44657604 SLE=3546465782 SRE=3546499094 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
455 9.782376 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#65] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668587 TSecr=44657604 SLE=3546465782 SRE=3546500482 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
457 9.909855 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#66] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668600 TSecr=44657604 SLE=3546465782 SRE=3546501870 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
459 10.038509 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#67] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668613 TSecr=44657604 SLE=3546465782 SRE=3546503258 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
461 10.166752 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#68] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668626 TSecr=44657604 SLE=3546465782 SRE=3546504646 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
467 10.303645 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#69] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668639 TSecr=44657604 SLE=3546465782 SRE=3546506034 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
474 10.430023 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#70] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668652 TSecr=44657604 SLE=3546465782 SRE=3546507422 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
476 10.557951 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#71] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668665 TSecr=44657604 SLE=3546465782 SRE=3546508810 SLE=3546460230 SRE=3546464394 SLE=3546443574 SRE=3546458842
478 10.689920 X.X.X.X 10.254.248.101 94 TCP [TCP Dup ACK 366#72] 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668678 TSecr=44657604 SLE=3546507422 SRE=3546508810 SLE=3546465782 SRE=3546508810 SLE=3546460230 SRE=3546464394
482 11.045636 X.X.X.X 62.61.231.82 1454 TCP [TCP Retransmission] 443 > 33426 [ACK] Seq=223341 Ack=831 Win=31104 Len=1388 TSval=44658396 TSecr=94668678
Спасибо, что прислали эти снимки.
Проблемы с пропускной способностью, по-видимому, вызваны ошибочной реализацией рандомизации порядкового номера TCP. Я видел это в прошлом на Cisco ASA.
Чтобы дать немного предыстории, в прошлом было замечено, что некоторые реализации TCP не использовали достаточную случайность при выборе начального порядкового номера (ISN), что облегчало злоумышленникам манипулирование TCP-соединениями, делая обоснованные предположения о том, какой порядковый номер было бы.
Чтобы попытаться решить эту проблему, некоторые поставщики межсетевых экранов реализовали функцию, называемую рандомизацией порядковых номеров TCP, которая переписывает порядковый номер (SEQ) на более случайное значение, когда видит, что TCP-пакеты проходят через межсетевой экран. К сожалению, некоторые реализации этой функции содержат несколько ошибок и не учитывают функцию выборочного подтверждения TCP (SACK).
Вы можете увидеть рандомизацию порядковых номеров в действии в своей трассировке. Посмотрите на пакет SYN / ACK с сервера (пакет № 51, захват сервера), где вы можете увидеть, что выбранный ISN 2847541373. Однако посмотрите на тот же пакет SYN / ACK, когда он получен на стороне клиента (захват клиента пакета # 8), ISN был изменен на 2098751282!
Это нормально до тех пор, пока в сети не произойдет потеря пакетов.
На стороне клиента посмотрите на первое дублирующее подтверждение (Dup ACK) в пакете 259. Вы можете видеть, что блок SACK был установлен, охватывая байты 2098977399-2098978787. Этот пакет эффективно сообщает серверу, что я жду пакет с SEQ 2098974623, однако я получил 2098977399-2098978787, поэтому вам не нужно отправлять их снова.
Теперь, если вы посмотрите на тот же Dup ACK, который был получен на стороне сервера (# 369), вы увидите, что номер ACK был правильно преобразован брандмауэром (2098974623> 2847764714), однако блок SACK не имеет и по-прежнему показывает 2098977399-2098978787!
Когда Dup ACK получен с недопустимым блоком SACK, Dup ACK игнорируется.
В результате вы теряете возможность использовать быструю повторную передачу (повторную передачу после получения 3 дублирующих ACK) и полагаетесь исключительно на тайм-ауты повторной передачи. Это действительно плохо сказывается на производительности и существенно снижает пропускную способность.
Вы можете выяснить, требуется ли для ваших целей рандомизация порядковых номеров TCP, а если нет, рассмотрите возможность тестирования с отключенной функцией. Возможно, эта проблема решена в более новой прошивке?
Вы также можете отключить параметр TCP SACK на своем сервере (ах), чтобы клиенты не использовали SACK в первую очередь. /proc/sys/net/ipv4/tcp_sack
однако учтите, что SACK означало будет использоваться для улучшения производительности TCP, и реальная проблема связана с брандмауэрами (ошибочной) реализацией рандомизации порядковых номеров. Отключение SACK будет означать, что Dup ACK от клиентов больше не будет игнорироваться, и соединение сможет восстанавливаться после потери намного быстрее. Пропускная способность должна увеличиться.