您的位置:首页 > 理论基础 > 计算机网络

http read time out一次事故

2017-09-17 22:10 295 查看
先介绍下业务背景:

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

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



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

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

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

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



由于时间紧迫,对方提出了用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: