标签:Seq ACK 握手 SYN TCP 数据包 连接 抓包 Wireshark
一、TCP三次握手连接建立过程
Step1:客户端发送一个SYN数据包(SYN=1,Seq=X,ACK=0)给服务端,请求进行连接,这是第一次握手;
Step2:服务端收到请求并且允许连接的话,就会发送一个SYN+ACK的数据包(SYN=1,Seq=Y,ACK=X+1)给发送端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手;
Step3:服务端发送一个ACK数据包(SYN=1,Seq=Z,ACK=Y+1)给客户端,告诉它连接已被确认,这就是第三次握手。TCP连接建立,开始通讯。
二、抓包过程
我们以访问网站:fanyi-pro.baidu.com为例,在Edge下使用开发工具查看网络对应的IP:
得到网站对应的IP为:180.101.49.50 端口号为80
在过滤器中输入过滤表达式:
ip.addr==180.101.49.58&&tcp.port==80
图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。
三、分析
在分析之前可以开启或关闭Wireshark工具的默认相对序列号,以此显示实际序列号,比如在包1中产生的实际序列号为:2159471844,开启默认序列号为0,按需更改:
1.第一个握手数据包
SYN=1:标志位置1,表示请求建立连接
Seq=2159471844:随机序列号
Ack=0:初始建立连接值为0,表示当前没有接收到数据
2.第二个握手数据包
SYN=1:标志位置1,表示请求连接
Seq=2865270383
ACK=2159471844:请求包中的随机顺序号X+1
3.第三次握手的数据包
SYN:标志位,表示已经收到记录
Seq =2159471845 :随机顺序号Z
Ack = 2865270384:请求包中的随机顺序号Y+1
就这样通过了TCP三次握手,建立了连接。开始进行数据交互
数据包的关键属性如下:
其中,对于我们日常的分析有用的就是前面的五个字段。
它们的含义是:
SYN表示建立连接,
FIN表示关闭连接,
ACK表示响应,
PSH表示有DATA数据传输,
RST表示连接重置。
标签:Seq,ACK,握手,SYN,TCP,数据包,连接,抓包,Wireshark 来源: https://blog.csdn.net/caizhih/article/details/121338965
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。