http read time out一次事故

先介绍下业务背景:

   最近由于业务调整,加了个上传附件的功能,采用的是http form 表单提交。使用的工具是httpclient-4.4.1,MultipartEntityBuilder方式直接提交。每次上传文件成功之后,就大概率出现后面的post请求read time out。整个文件大小在100kb左右,耗费的时间大概是1s到2s。抓包发现每次要是文件上传出现tcp Retransmission/TCP Out_of_Order等错误情况下,后面的请求无法正常连接对方服务器,请求则出现read time out.、

分析下面的抓包情况(文章底部有WireShark错误说明):

http read time out一次事故_第1张图片

上面的情况很有可能是网络的原因,又由于时间紧迫,对方这个接口已经上线一年了。

说他们没问题,没法继续查。

一旦出现了上面这种情况,后面的请求只要是该端口发送到443,则一定会出现read time out.

http4以上,众所周知都是Apache自己去有连接池去连接,并不是我们手动去管理连接了。


http read time out一次事故_第2张图片



由于时间紧迫,对方提出了用sftp上传文件,还没找出为啥,这个问题就绕过去了。简单记录下吧。

WireShark出现的常见提示 

TCP Out_of_Order的原因分析: 
一般来说是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元,因为他们可能是由不同的路径到达你的电脑上面。 
TCP Retransmission原因分析: 
很明显是上面的超时引发的数据重传。 
TCP dup ack XXX#X原因分析: 
就是重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失。 
tcp previous segment not captured原因分析 

意思就是报文没有捕捉到,出现报文的丢失。 



参考:

http://blog.csdn.net/chenfengdejuanlian/article/details/53761004

你可能感兴趣的:(网络)