root@ubuntu-512mb-lon1-01:~# curl -T /usr/bin/passwd http://v0.api.upyun.com/file201503/passwd -u fangwenjun:xxxxxx-v * Trying 43.230.89.190... * Connected to v0.api.upyun.com (43.230.89.190) port 80 (#0) * Server auth using Basic with user 'fangwenjun' >PUT /file201503/passwd HTTP/1.1 >Host: v0.api.upyun.com >Authorization: Basic xxxxx== >User-Agent: curl/7.47.0 >Accept: */* >Content-Length: 54256 >Expect: 100-continue > < HTTP/1.1 100 Continue * We are completely uploaded and fine * Empty reply from server * Connection #0 to host v0.api.upyun.com left intact curl: (52) Empty reply from server
同时抓包
root@ubuntu-512mb-lon1-01:~# tcpdump -i eth0 -nnXSs 0 'host 43.230.89.190 and port 80' -w 3.cap tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
发现往43.230.89.190发送 PUT 请求时出现Empty reply from server
root@ubuntu-512mb-lon1-01:~# ping 43.230.89.190 PING 43.230.89.190 (43.230.89.190) 56(84) bytes of data. 64 bytes from 43.230.89.190: icmp_seq=1 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=2 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=3 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=4 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=5 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=6 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=7 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=8 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=9 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=10 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=11 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=12 ttl=46 time=279 ms 64 bytes from 43.230.89.190: icmp_seq=13 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=14 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=15 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=16 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=17 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=18 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=19 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=20 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=21 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=22 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=23 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=24 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=25 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=26 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=27 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=28 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=29 ttl=46 time=275 ms 64 bytes from 43.230.89.190: icmp_seq=30 ttl=46 time=275 ms ^C --- 43.230.89.190 ping statistics --- 31 packets transmitted, 30 received, 3% packet loss, time 30044ms rtt min/avg/max/mdev = 275.387/275.678/279.776/1.025 ms
有点丢包,不过没超时的
数据包分析
发现大量TCP segment of a reassembled PDU wireshark
常见 tcp 报错
1.TCP previous segment lost (tcp先前的分片丢失) 到达分组中的序列号高于下一期望的序列号,指示至少一个段被丢弃/丢失。接收站通过针对其接收的每个附加分组发送重复ACK来纠正这种情况,直到发送方重传丢失的分组为止。
2.TCP acked lost segment(tcp应答丢失) 发送方发送了报文之后等待接收方给出ACK应答,在规定的等待时间内没有收到接收方的ACK会提示该信息。