Wireshark
Wireshark是非常流行的网络封包分析工具,可以帮助我们分析解决很多网络问题。
win10上安装之后可能会看不到网络接口,可以看我上篇文章
Wireshark安装好后打开没有找到接口
TCP协议
TCP协议运行在TCP/IP网络模型的传输层,提供端到端的连接,并且支持超时重传,拥塞控制,流量控制等等呢个。
TCP协议是一个面向连接的协议,在正式请求之前客户端需要与服务端进行“三次握手”,初始化双方的sequence number之后才能进行请求。
TCP/IP网络模型
TCP报文头部
TCP报文头部是支持TCP协议进行各种功能的基础,TCP头部里面包含了源端口和宿端口,sequence number和acknowledge number等等。
Wireshark抓包看TCP三次握手
以请求百度为例,首先设置wireshark的捕获过滤器(注意和显示过滤器区分开来)
开始捕获
开始捕获还是空白的,因为还没有请求百度,在bash里面发个请求来看看
看看wireshark捕获到了什么东东呢
一大堆的内容,别的先不管,就看前三个网络包,都是TCP包,这就对应上了我们要细讲的TCP三次握手啦。点击第一列,下面会出现详细信息
可以看到有四层,重点关注Tranmission Control Protocol层,也就是传输层。单击点开看看内容
可以和上面的图片TCP头部是对应的,源端口,宿端口,Flags等等。这里我们重点看三个内容:sequence number, acknowledgment number, flags。接下来再看看wireshark里面的第二行和第三行。
然后我们就可以理出这样一个逻辑:
三次握手之后客户端和服务端就可以愉快的交流啦。
总结
wireshark是一个很好用的工具,我才刚开始用,要学会使用捕获过滤器和显示过滤器的来得到我们想要的信息。
参考
https://wiki.wireshark.org/CaptureFilters
https://www.wireshark.org/docs/dfref/
https://juejin.im/book/5c70dbbe51882562046911bc/section/5c90d1d55188252d7e34d708