用Wireshark来分析tcp连接三次握手

Wireshark

Wireshark是非常流行的网络封包分析工具,可以帮助我们分析解决很多网络问题。

wireshark官网

win10上安装之后可能会看不到网络接口,可以看我上篇文章
Wireshark安装好后打开没有找到接口

TCP协议

TCP协议运行在TCP/IP网络模型的传输层,提供端到端的连接,并且支持超时重传,拥塞控制,流量控制等等呢个。
TCP协议是一个面向连接的协议,在正式请求之前客户端需要与服务端进行“三次握手”,初始化双方的sequence number之后才能进行请求。

TCP/IP网络模型


TCP/IP网络模型

TCP报文头部

TCP报文头部是支持TCP协议进行各种功能的基础,TCP头部里面包含了源端口和宿端口,sequence number和acknowledge number等等。


TCP报文头部

Wireshark抓包看TCP三次握手

以请求百度为例,首先设置wireshark的捕获过滤器(注意和显示过滤器区分开来)

设置捕获过滤器

开始捕获


开始捕获

开始捕获还是空白的,因为还没有请求百度,在bash里面发个请求来看看


请求百度

看看wireshark捕获到了什么东东呢


wireshark捕获到的内容

一大堆的内容,别的先不管,就看前三个网络包,都是TCP包,这就对应上了我们要细讲的TCP三次握手啦。点击第一列,下面会出现详细信息

网络包详情

可以看到有四层,重点关注Tranmission Control Protocol层,也就是传输层。单击点开看看内容


传输层详情

可以和上面的图片TCP头部是对应的,源端口,宿端口,Flags等等。这里我们重点看三个内容:sequence number, acknowledgment number, flags。接下来再看看wireshark里面的第二行和第三行。


第二行的TCP层
第三行的TCP层

然后我们就可以理出这样一个逻辑:


三次握手

三次握手之后客户端和服务端就可以愉快的交流啦。

总结

wireshark是一个很好用的工具,我才刚开始用,要学会使用捕获过滤器和显示过滤器的来得到我们想要的信息。

参考

https://wiki.wireshark.org/CaptureFilters
https://www.wireshark.org/docs/dfref/
https://juejin.im/book/5c70dbbe51882562046911bc/section/5c90d1d55188252d7e34d708

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容