一个配置导致的HTTP(TCP)连接超时

本文介绍了作者在开发HTTP服务时遇到的一个问题,即安卓设备访问服务时经常出现连接超时,而iOS设备则正常。通过Wireshark分析网络包发现大量TCP重传,原因是服务器端同时开启TCP时间戳和TCP时间等待回收,导致操作系统主动丢包。解决方案是关闭TCP时间等待回收选项。
摘要由CSDN通过智能技术生成

一个配置导致的HTTP(TCP)连接超时

这个是之前写http服务的时候测试遇到的一个问题。当时这个bug的现象是,办公室内某台安卓手机访问http服务经常出现连接超时,而过一会儿之后又可以使用了。而同时,办公室内的iOS设备,Mac设备又能正常使用服务。甚至登陆到http服务实时监控日志,会发现安卓的设备的请求确实没有到达http服务,没有access日志。

简单抓包

这个时候实在没法,在服务端tcpdump一下对应的http端口的请求,还好是开发环境。dump过程中,仅一分钟,安卓手机就又遇到了相同的情况。这时结束dump,下载dump出来的内容到本机用wireshark进行分析。

分析包内容

大量重传

打开包,按照时间顺序排列,看到大片的黑色记录,也就是有大量TCP重传。照说办公室到测试服务器的网络是稳定的,而且是在服务器上面抓的包。所以不应该存在大量的重传才对。所以先从这里着手。trace一下出现重传的tcp stream。其中编号为10的tcp流很有意思:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值