为了找出TCP在我的Linux (RHEL,内核2.6.18)服务器上连接到同一个交换机的原因。我让一对客户端服务器每隔200us向对方发送"Hello“,并在客户端机器上捕获带有tcpdump的数据包。我用来模拟客户端和服务器的命令是:
while [ 0 ]; do echo "Hello"; usleep 200; done | nc server 18510
while [ 0 ]; do echo "Hello"; usleep 200; done | nc -l 18510当服务器机器忙于处理其他请求时,客户端偶尔会发生突然的重传。但tcpdump的产出似乎是不合理的。
16:04:58.898970 IP server.18510 > client.34533: P 4531:4537(6) ack 3204 win 123 <nop,nop,timestamp 1923778643 3452833828>
16:04:58.901797 IP client.34533 > server.18510: P 3204:3210(6) ack 4537 win 33 <nop,nop,timestamp 3452833831 1923778643>
16:04:58.901855 IP server.18510 > client.34533: P 4537:4549(12) ack 3210 win 123 <nop,nop,timestamp 1923778646 3452833831>
16:04:58.903871 IP client.34533 > server.18510: P 3210:3216(6) ack 4549 win 33 <nop,nop,timestamp 3452833833 1923778646>
16:04:58.903950 IP server.18510 > client.34533: P 4549:4555(6) ack 3216 win 123 <nop,nop,timestamp 1923778648 3452833833>
16:04:58.905796 IP client.34533 > server.18510: P 3216:3222(6) ack 4555 win 33 <nop,nop,timestamp 3452833835 1923778648>
16:04:58.905860 IP server.18510 > client.34533: P 4555:4561(6) ack 3222 win 123 <nop,nop,timestamp 1923778650 3452833835>
16:04:58.908903 IP client.34533 > server.18510: P 3222:3228(6) ack 4561 win 33 <nop,nop,timestamp 3452833838 1923778650>
16:04:58.908966 IP server.18510 > client.34533: P 4561:4567(6) ack 3228 win 123 <nop,nop,timestamp 1923778653 3452833838>
16:04:58.911855 IP client.34533 > server.18510: P 3228:3234(6) ack 4567 win 33 <nop,nop,timestamp 3452833841 1923778653>
16:04:59.112573 IP client.34533 > server.18510: P 3228:3234(6) ack 4567 win 33 <nop,nop,timestamp 3452834042 1923778653>
16:04:59.112648 IP server.18510 > client.34533: P 4567:5161(594) ack 3234 win 123 <nop,nop,timestamp 1923778857 3452834042>
16:04:59.112659 IP client.34533 > server.18510: P 3234:3672(438) ack 5161 win 35 <nop,nop,timestamp 3452834042 1923778857>
16:04:59.114427 IP server.18510 > client.34533: P 5161:5167(6) ack 3672 win 126 <nop,nop,timestamp 1923778858 3452834042>
16:04:59.114439 IP client.34533 > server.18510: P 3672:3678(6) ack 5167 win 35 <nop,nop,timestamp 3452834044 1923778858>
16:04:59.116435 IP server.18510 > client.34533: P 5167:5173(6) ack 3678 win 126 <nop,nop,timestamp 1923778860 3452834044>
16:04:59.116444 IP client.34533 > server.18510: P 3678:3684(6) ack 5173 win 35 <nop,nop,timestamp 3452834046 1923778860>来自客户端的分组3228:3234(6)由于超时而被重新传输。我无法理解的是,在第一个3228:3234(6)数据包发送后,客户端机器没有发送任何数据包。
服务器机器公布了一个足够大的窗口。重新传输之前的数据传输是很好的,这意味着不应该有缓慢的启动。
是什么原因导致客户端机器停止发送直到数据包超时?顺便说一下,我无法在服务器机器上运行tcpdump。
发布于 2011-06-27 07:40:17
只是几个想法:在交换机上还是在服务器上形成流量?局域网上太多的流量到服务器上?
https://serverfault.com/questions/284404
复制相似问题