目录
准备
本科的时候实验课做过抓包实验,但是现在都忘完了,于是对照博客重新学下。
首先选择实验的网站,选择 https://blog.csdn.net/ ,在 http://ip.tool.chinaz.com/ 中可以解析出对应的ip地址。(???阿里云牛逼)
在Wireshark 中开启抓包,浏览器访问网站后关闭网站,停止抓包,通过 tcp and ip.addr==47.95.47.253 可以筛选出对应的报文。
可以发现,前3条报文就是TCP的三次握手。
三次握手
首先,客户端提出请求,SYN,seq=x(0),期待的ack=x+1(1)。
接着,服务端向客户端发送一个数据包,SYN,ACK,同时要确认上一个报文 ack = x+1(1),发送自己的seq y(0)。
第三次握手,客户端应答ACK,发送自己的seq x+1(1),确认第二条报文 ack = y + 1(1)。
至此,三次握手结束,到第4条报文就是TLSv1.2(https)了,这里就不分析了(我还不大会)。
四次挥手
四次挥手应该有4条报文,但是我试了几次都只收到3条,百度一下说是因为服务器把第二和第三条报文合并了(因为客户端申请断开连接时,服务端没有啥需要传的了)
第一次挥手,客户端申请断开连接,发送FIN、ACK(这个其实和嵌入式配置寄存器很像,对应的位上置1),序列号x=5052,确认序列号z=9528。
第二次挥手,服务端发送FIN和ACK,ack=x+1(5053),seq=z(9528)。
第三次挥手,客户端发送ACK,ack=z+1(9529),seq为收到的ack(5053)。至此,三次挥手结束。