[实践OK]tcp/ip三次握手实践学习,自己截三次握手抓包图。

jackxiang 2016-8-23 09:35 | |
一)过滤出三次握手的第一次:
tcp.flags.syn == 1  //YN置1就表示这是一个连接请求或连接接受报文。首先由Client发出请求连接即 SYN=1 ACK=0  (请看头字段的介绍), TCP规定SYN=1时不能携带数据,但要消耗一个序号,因此声明自己的序号是 seq=0
二)跟踪一个IP和另一个IP的数据包:
(ip.addr eq 123.130.127.180 and ip.addr eq 172.20.156.35) and (tcp.port eq 80 and tcp.port eq 16616)

ip.addr == 123.130.127.180 and ip.addr == 172.20.156.35 //注意,一是两个等号,二是ip不用双引或单引号想起来,否则属于错误语句。
(ip.addr == 123.130.127.180 and ip.addr == 172.20.156.35) and (tcp.port == 80 and tcp.port == 16616)

ip.addr==123.130.127.180 and ip.addr==172.20.156.35


三)三次握手分析:
(1)frame也就是帧编号值并不是1,2,3可以是任意值。
(2)下图:
首先,由Client发出请求连接即 SYN=1 ACK=0  (请看头字段的介绍), TCP规定SYN=1时不能携带数据,但要消耗一个序号,因此声明自己的序号是 seq=0:
点击在新窗口中浏览此图片

然后,Server 进行回复确认,即 SYN=1 ACK=1 seq=y=0, ack=x+1=0+1=1:
点击在新窗口中浏览此图片

再然后 Client 再进行一次确认,但不用SYN 了,这时即为 ACK=1, seq=x+1=0+1=1, ack=y+1=0+1=1.
然后连接建立
点击在新窗口中浏览此图片


ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1
SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。
FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/8908/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2016-9-21 09:53
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]