您的当前位置:首页正文

TCP协议三次握手过程分析

2021-05-18 来源:欧得旅游网
TCP协议三次握手过程分析

TCP(Transmission Control Protocol) 传输控制协议

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:SYN(synchronous建立联机)

ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

Sequence number(顺序号码-发送方首次发出为了确认接收方回应ack=seq+1;作为一个顺序号码---第三次握手需要用到。) Acknowledge number(确认号码--为了回应seq,等于seq+1,课本上的小写ack)

第一次握手:主机A发送位码为syn=1( 主机A告诉主机B我们需要建立联机),随机产生seq number=1234567( 完全是个随机数,一个主机有可能同时要进行与多个主机之间的联机)的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1=1234567+1),syn=1(主机B回应主机A好的,我们建立联机吧),Ack=1(确认我已经收到了!只有两钟情况,ACK=1表示它确认发来的数据已经接收无误;ACK=0表示不包含确认信息,一般不确认的话则会忽略不现实此字段),随机产生seq=7654321( 完全是个随机数,一个主机有可能同时要进行与多个主机之间的联机,与上面的seq number一个意思)的包。

第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack(与上面一个意思)是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,seq =1+1234567(作为顺序号码)主机B收到后确认seq值与ack=1则连接建立成功。 完成三次握手,主机A与主机B开始传送数据。

实例:

1. IP 192.168.1.116.3337 > 192.168.1.123.7788:

SYN=1; seq= 3626544836:

2. IP 192.168.1.123.7788 > 192.168.1.116.3337:

SYN=1; ACK=1; ack= 3626544837 seq=1739326486;

3. IP 192.168.1.116.3337 > 192.168.1.123.7788:

ACK=1;seq = 3626544837 ;ack=1739326487;

第一次握手:192.168.1.116发送位码syn=1,随机产生seq

number=3626544836的数据包到192.168.1.123,192.168.1.123由SYN=1知道192.168.1.116要求建立联机;

第二次握手:192.168.1.123收到请求后要确认联机信息,向192.168.1.116发送ack number=3626544837,syn=1,ack=1,随机产生seq=1739326486的包;

第三次握手:192.168.1.116收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,192.168.1.116会再发送seq=3626544837,ack number=1739326487,ack=1,192.168.1.123收到后确认seq=seq+1,ack=1则连接建立成功。 注意:

1.ACK=1和ack=随机数 不一样。

2.第三次握手seq=x+1是一个顺序号码。 3.整个过程是一个请求-回应-再次确认。

因篇幅问题不能全部显示,请点此查看更多更全内容