WireShark对TCP进行抓包,发现一次未知的没有数据传输的连接过程,这次请求的原因和意义是什么?

发布于 2022-01-03 09:19:46 字数 1227 浏览 991 评论 7

 

问题描述

其实问题来源是我在进行搭建简易服务器的时候出现的,在调试过程中我发现每一次访问url,通过

client = server.accept();

 

都会接收到除了正常连接进来的外,一个没有数据传输的客户端socket,对上面接收到的socket,进行下面操作为结果为空。

client.getInputStream()

 

这里请求url的方式用的是postman,不是用的浏览器,所有可以排除掉浏览器对各种css,js,favicon.ico的请求,

如下图,是我发起的一个/login请求:

这里访问的是我上面提到的简易服务器,服务器采用的是BIO模式实现的短连接,并且在检查到`client.getInputStream()==null`后关闭了客户机的socket。

如上图中,深色区域内客户机端口号为32623的报文段,就是我指的未知的TCP连接,未标深色的端口号为:32624就是正常的访问/login的TCP请求。

可以看到这个特殊的socket,没有传输任何数据,而且连接后立即关闭了

(这里我在服务端确实在判断了其输入流为空后对其socket进行了close操作,但是报文端显示它却是从客户端先发起的,所以现在也不确定它是我在服务端造成立即关闭,还是客户端造成的)

 

然后我考虑到是否是由于我服务器代码的某个bug造成的,然后我测试了本机的一个JavaWeb项目,以Tomcat作为服务器,我再次进行抓包,得到如下结果:

 

 

上图发现,还是有这么一个特殊的TCP连接,这似乎存在着共性,并且特殊请求的端口和正常请求的端口号是相连的。

所有我考虑这难道是什么来自协议或者什么的约束? 哎,学浅!

查了一些资料,未果。

于是寻求各路大侠帮助!答疑解惑,感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

谢绝鈎搭 2022-01-08 04:36:11

tcp的三次握手和四次挥手?

本王不退位尔等都是臣 2022-01-08 04:18:33

图一:

图二

尐偏执 2022-01-08 04:17:46

我现在考虑这次特殊请求的原因可能是:
1)避免再发新的连接重试。可将异常检测时间缩短
2)浏览器用来检测RTT发起的
3)浏览器的多连接并发进行访问
4)浏览器用来检测服务器是否支持某种机制的一次检测

顾忌 2022-01-08 04:04:18

现在应该可以看到了

兮颜 2022-01-08 04:01:40

回复
哈哈,这种图有防盗链的,只能你一个人看到的啦

倾城泪 2022-01-08 03:55:25

回复
@南湖船老大 : 我上传到评论了

把昨日还给我 2022-01-07 11:07:52

图破了 看不到

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文