邂逅TCP的三次握手

TCP的三次握手

TCP的三次握手的三次握手和四次挥手是大家最容易遇到的问题,那么TCP的三次握手和四次挥手究竟是怎么回事呢?今天我们来说说TCP的三次握手。
首先我们要了解所谓的握手是怎么一种怎样的进程,然后就是为啥得握三次才行?
两台主机要进行通信,要先证明两台主机都具备“收”和“发”的能力。所以,TCP的三次握手的目的是为了确认:两台主机都具备“”和“的能力。
三次握手实际就是主机A和主机B之间发了三条信息。主机A需要确认B既可以发也可以收,B也需要确认A既可以发也可以收之后,才会开始真正的通信。如果有任何一方的收发存在问题,通信都无法成功。

TCP的第一次握手

第一次握手: 主机A给主机B发送请求建立连接,二是发出一个序列号。(这里我们假设为249)
在实际连接中,请求连接用SYN=1表示,序列号用seq = n表示,其中n为一个数也就是这里的249,。
在主机A给序列号赋值为249,并请求建立连接。
第一次握手是为了让B主机知道A具备发的能力,即A可以发出信息。

TCP的第二次握手

第二次握手:主机B回复信息给主机A 收到250 发送序号99.
在实际情况中,这次回复一共有三条信息,一是同意和A主机建立连接(SYN=1),二是确认收到刚才的信息(ack = 刚才的seq+1 为250),三是自己发出自己的序列号(seq=x,其中x为一个数)。主机B同意建立连接并发出“收到250”表示收到刚才的信息,但是记住一定要对刚才A返回的序列号做+1处理,所以收到A的序列号是249,回复A的序列号是250.“发送序列号99”是主机B发送给A的序列号。
在第一次传送信息的过程中,B知道A可以发,第二次发送信息,A接到之后,A就知道了B可以接收也可以发出。那最后只有一个未证明,那就是B还不知道A能不能接收到自己的信息。虽然主机A接收到了信息,但是B并不知道,所以B要生成一个数,让A回复这个数+1才能确认A也能收到信息,这就是B要发出序列号的原因。
第二次握手让A知道B能接受到,也能发出。

TCP的第三次握手

第三次握手:主机A发送信息给主机B 收到序号100 这次序号是250
第三次回复也有三条信息,一是表示现在开始发送(SYN=0),二是成功收到B信息(ack=刚才的seq+1),三是这次的信息的序号是250(seq=最开始发出的序列号+1)
第三次握手让B知道A能接收到。

图例

如果你理解了上面的内容,那么图表将会让你更能深刻理解。

主机A主机B
第三次握手第二次握手
第一次握手第二次握手

在这里插入图片描述

第一次:SYN = 1 请求建立连接 seq = n 发送序列号
第二次: SYN = 1 同意建立连接 ack= seq +1回复收到 seq = x 发送新的序列号
第三次:SYN = 0 开始发送 ack = x+1 成功收到信息 seq = n+1这次信息的序号 即最开始发出的序号+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值