首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows发送SYN的时间太长

Windows发送SYN的时间太长
EN

Server Fault用户
提问于 2017-12-16 11:55:21
回答 1查看 691关注 0票数 4

我们有一个Windows 2012 R2,它在IIS上承载我们的网站。我们还有一个Ubuntu16.04服务器,它运行Nginx1.10.3将传入的请求代理到我们的后端Windows服务器。这两台服务器都以VM的形式在ESXi上运行。

我们已经注意到,我们的Windows有时需要太长时间才能发送SYNs来响应传入的系统。

下面是Windows服务器上的windump输出(如您所见,仅在63秒和7个SYNs之后,Windows已经发送了相应的SYNs):

代码语言:javascript
运行
复制
11:26:59.080471 IP 192.168.20.129.41784 > 192.168.20.2.80: Flags [S], seq 3338047317, win 29200, options [mss 1460,sackOK,TS val 60011765 ecr 0,nop,wscale 7], length 0
11:27:00.075553 IP 192.168.20.129.41784 > 192.168.20.2.80: Flags [S], seq 3338047317, win 29200, options [mss 1460,sackOK,TS val 60012015 ecr 0,nop,wscale 7], length 0
11:27:02.078881 IP 192.168.20.129.41784 > 192.168.20.2.80: Flags [S], seq 3338047317, win 29200, options [mss 1460,sackOK,TS val 60012516 ecr 0,nop,wscale 7], length 0
11:27:06.086875 IP 192.168.20.129.41784 > 192.168.20.2.80: Flags [S], seq 3338047317, win 29200, options [mss 1460,sackOK,TS val 60013518 ecr 0,nop,wscale 7], length 0
11:27:14.094838 IP 192.168.20.129.41784 > 192.168.20.2.80: Flags [S], seq 3338047317, win 29200, options [mss 1460,sackOK,TS val 60015520 ecr 0,nop,wscale 7], length 0
11:27:30.126966 IP 192.168.20.129.41784 > 192.168.20.2.80: Flags [S], seq 3338047317, win 29200, options [mss 1460,sackOK,TS val 60019528 ecr 0,nop,wscale 7], length 0
11:28:02.224731 IP 192.168.20.129.41784 > 192.168.20.2.80: Flags [S], seq 3338047317, win 29200, options [mss 1460,sackOK,TS val 60027552 ecr 0,nop,wscale 7], length 0
11:28:02.224789 IP 192.168.20.2.80 > 192.168.20.129.41784: Flags [S.], seq 2819099122, ack 3338047318, win 8192, options [mss 1460,nop,wscale 8,sackOK,TS val 215763098 ecr 60027552], length 0
11:28:02.225363 IP 192.168.20.129.41784 > 192.168.20.2.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 60027552 ecr 215763098], length 0
11:28:02.225900 IP 192.168.20.129.41784 > 192.168.20.2.80: Flags [P.], seq 1:76, ack 1, win 229, options [nop,nop,TS val 60027552 ecr 215763098], length 75: HTTP: GET /ping?id=141 HTTP/1.1[!http]
11:28:02.248577 IP 192.168.20.2.80 > 192.168.20.129.41784: Flags [FP.], seq 1:224, ack 76, win 260, options [nop,nop,TS val 215763100 ecr 60027552], length 223: HTTP: HTTP/1.1 200 OK
11:28:02.253096 IP 192.168.20.129.41784 > 192.168.20.2.80: Flags [F.], seq 76, ack 225, win 237, options [nop,nop,TS val 60027559 ecr 215763100], length 0
11:28:02.253144 IP 192.168.20.2.80 > 192.168.20.129.41784: Flags [.], ack 77, win 260, options [nop,nop,TS val 215763101 ecr 60027559], length 0

奇怪的是,如果我们更改源IP (通过Nginx的proxy_bind)或目标端口(在IIS中),响应时间就会大大增加。

我们怎么才能找出导致这种行为的原因呢?

更新1:我们将TcpTimedWaitDelay参数更改为30秒,现在的情况要好得多,但我们仍然有问题。

更新2:以下是netstats报告的连接状态之和:

代码语言:javascript
运行
复制
  64 CLOSE_WAIT
1371 ESTABLISHED
   1 FIN_WAIT_1
  51 LISTENING
3188 TIME_WAIT
EN

回答 1

Server Fault用户

发布于 2017-12-18 12:43:49

据我所知,好的老纳格尔可能就是这里的踢你的球。我建议你试着关掉它,同时也减少内部回复计数器。

这是在登记册中完成的:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{YOUR-NIC}
    • 创建一个值为“1”的DWORD TCPNoDelay
    • 创建一个值为“1”的DWORD TcpAckFrequency
    • 创建一个DWORD TcpDelAckTicks,其值为“0”(更多)

需要重新启动才能激活这些。您可以使用Get-NetTCPSetting检查设置。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/888428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档