我在debian 8.1 kernel 3.16.0-4-amd64上使用HTTPS时托pipe的服务器速度非常缓慢Apache 2.4.10-10
这个架构是:CLIENT XXXX => NAT ON FIREWALL:YYYY => HTTP(S)WEB SERVER LAN IP:10.254.248.101
使用HTTPS进行testing:
wget --no-check-certificate https://YYYY/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跟踪(跟踪如下)时,客户端XXXX要求10.254.248.101多次重新发送数据包。 服务器等待几乎4秒钟以重新发送客户端请求的数据包。 这就是为什么我在服务器上如此缓慢地下载。 我不明白的是为什么服务器需要很长时间才能重新发送数据包。 Linux内核3中有什么新的TCP? 在Apache 2.4中有什么新东西? 有人认为防火墙无法pipe理?
请注意,在这些情况下我们没有这个问题:
使用HTTP进行testing:
wget http://YYYY//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 XXXX 10.254.248.101 66 TCP 33426 > 443 [ACK] Seq=831 Ack=223341 Win=248576 Len=0 TSval=94668402 TSecr=44657604 369 7.931293 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 10.254.248.101 60 TCP 65259 > 443 [ACK] Seq=1251 Ack=2197 Win=65700 Len=0 428 8.373938 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 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 XXXX 62.61.231.82 1454 TCP [TCP Retransmission] 443 > 33426 [ACK] Seq=223341 Ack=831 Win=31104 Len=1388 TSval=44658396 TSecr=94668678
感谢您发送这些截图。
您的吞吐量问题似乎是由TCP序列号随机化的错误实现引起的。 过去,我在思科ASA上看到过这种情况。
为了给出一些背景知识,过去曾经观察到一些TCP实现在select初始序列号(ISN)时没有使用足够的随机性,这使得攻击者更容易通过对序列号进行有根据的猜测来操纵TCP连接将会。
为了解决这个问题,一些防火墙提供商实现了一个称为TCP序列号随机化的function,当TCP数据包通过防火墙时,它会将序列号(SEQ)重写为一个更随机的值。 不幸的是,这个function的一些实现有点bug,并没有考虑TCPselect性确认(SACK)function。
您可以在跟踪中看到序列号随机化。 查看来自服务器的SYN / ACK数据包(数据包#51服务器捕获),您可以在其中看到select的ISN是2847541373 。 但是,在客户端(包#8客户端捕获)接收到相同的SYN / ACK数据包时,ISN已更改为2098751282 !
这种行为没有问题,直到networking上出现数据包丢失。
在客户端,查看数据包259处的第一个重复确认(Dup ACK)。可以看到已经设置了一个SACK块,覆盖字节2098977399-2098978787。 这个数据包有效地告诉服务器,我正在等待数据包与SEQ 2098974623,但是我已经收到2098977399-2098978787,所以你不需要再发送这些。
现在,如果您查看与服务器端收到的相同的Dup ACK(#369),则可以看到防火墙已正确转换了ACK编号(2098974623> 2847764714),但是SACK块还没有,还是显示2098977399-2098978787!
当接收到一个无效的SACK块的Dup ACK时,Dup ACK被忽略。
因此,您将失去使用快速重传(在重复收到3个ACK之后重新发送)的能力,而仅仅依靠重发超时。 这对性能来说真的很糟糕,会大大降低吞吐量。
您可以调查TCP序列号随机化是否仍然是您的目的,如果不是,请考虑禁用它的testing。 也许这个问题已经在较新的固件中解决了?
您也可以closures服务器上的TCP SACK选项,以防止客户端首先使用SACK /proc/sys/net/ipv4/tcp_sack但请注意,SACK 旨在用于改善TCP性能,实际的问题是随着序列号随机化的防火墙(越野车)的实施。 closuresSACK将意味着来自客户端的Dup ACK将不再被忽略,并且连接将能够更快地从丢失中恢复。 吞吐量应该上升。