结合wireshark分析TCP和三次握手
分析之前首先是安装wireshark,我用的是ubuntu16的系统. wireshark下载地址https://1.na.dl.wireshark.org/src/wireshark-2.2.3.tar.bz2.
安装过程很简单就是./configure && make && make install ,但是这个过程需要花费一点时间.
wireshark是一个网络封包分析软件,可以抓取网络数据包,并详细的显示出来数据包的相关信息. 我用wireshark主要是复习tcp协议流程以及帮助分析http请求信息,当然查看http请求信息这一块使用谷歌浏览器也可以出色的完成.
wireshark的使用
7层模式
启动wireshark,ipconfig查看当前网路入口-选择wireshark监听入口:
选择一条请求,各行信息分为(如图正在捕获enp0s25):
还记得当年背过的网络七层吧(应用层,表示层,会话层,传输层,网络层,数据链路层,物理层)
Frame I: 物理层的数据帧概况
Ethernet II, Src: 数据链路层以太网帧头部信息
Internet Protocol Version 4, Src: 互联网层IP包头部信息
Transmission Control Protocol, Src Port: 传输层T的数据段头部信息,此处时TCP
Hypertext Transfer Protocol: 应用层的信息,此处时HTTP协议
TCP数据包详细内容
三次握手
第一次握手
client发送一个TCP标识为为SYN,序号为0的请求,表示client请求建立链接:
第二次握手
server回复确认数据包标识位为SYN,ACK.并将确认序号Acknowledgement Number设置为client的ISN加1的值:
第三次握手
client再次发送确认包ACK,SYN标识位为0,ACK标识位为1.把server发来的ACK序号加1发送给server并且在数据端写ISN加1:
第四次就是HTTP了.