HTTP的三次握手和四次挥手

HTTP三次握手
位码即TCP标志位,有6中标示:
SYN     --建立联机(synchronous)
ACK    --确认(acknowledgement)
PSH    --传送(push)
FIN    --结束(finish)
RST     --重置(reset)
URG    --紧急(urgent)
Sequence number     --    顺序号码
Acknowledge number    --    确认号码

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立连接:
第一次握手:主机A发送位码syn=1,随机产生seq number=123456的数据包发送到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq + 1),syn=1,ack=1,随机产生seq=7654321的包

第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number +1 以及位码ack是否为1,若正确,主机A会再次发送ack number=(主机B的seq + 1),ack=1,主机B收到后确认seq的值与ack=1则建立连接

完成三次握手,主机A与主机B开始传送数据。

实例:

IP 192.168.1.116.3337 > 192.168.1.123.7788: S 3626544836:3626544836
IP 192.168.1.123.7788 > 192.168.1.116.3337: S 1739326486:1739326486 ack 3626544837
IP 192.168.1.116.3337 > 192.168.1.123.7788: ack 1739326487,ack 1
第一次握手: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(主机A的seq+1),syn=1,ack=1,随机产生seq=1739326486的包;
第三次握手:192.168.1.116收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,192.168.1.116会再发送ack number=1739326487(主机B的seq+1),ack=1,192.168.1.123收到后确认seq=seq+1,ack=1则连接建立成功。



TCP四次挥手过程

第一次挥手:Client 给 Server 发送TCP包。用来关闭 Client 到 Server 的数据传输。将标志位 FIN 和 ACK 置为1,确认序号为 Z=1

第二次挥手:Server 收到 FIN 后,发回一个 ACK (标志位 ACK =1),确认序号为收到的序号加1,即 X = X +1 =2,序号为收到的确认序号 = Z

第三次挥手:Server 关闭与 Client 的连接,发送一个 FIN。标志位 FIN 和 ACK 置为1,序号 Y=1,确认序号为 X=2

第四次挥手:Client 收到 Server 发送的 FIN 之后,发回 ACK 确认(标志位 ACK=1),确认序号为收到的序号加1,即 Y+1=2,序号为收到的确认序号 X=2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值