TCP的三次握手(建立链接)

TCP的三次握手(建立链接)

1.第一次握手:主机A向主机B申请TCP链接,其中包含主机A的初始序列号seq(主机A)=x(随机),其中报文中同步标志位SYN=1,ACK=0,表示TCP的链接请求的数据报文,序号seq(主机A)=x,(表明传输数据时的第一个字节的序号是x)
2第二次握手:主机B收到主机A的链接申请后会发回一个链接确认数据包,此时SYN=1,ACK=1,且包含主机B的初始序列号seq(主机B)=y(随机)及主机B对主机A初始序列号的确认号(ack(B)=seq(A)=x+1)
第三次握手:主机A收到确认后,还要向主机B给出确认。确认报文的ACK=1,ack=y+1,自己的序列号seq=x+1,此时,TCP连接建立,主机A进入已建立连接状态。TCP规定,ACK报文段可以携带数据,当主机B收到主机A的确认后也进入已连接状态,此后双方就可以通信了

TCP是双向的所以最开始的时候两台主机都是处于未开放状态,所以两台主机可以是发送方又可以是接收方

总结:

第一次握手:
主机A要建立链接所以SYN=1,seq=x(随机)因为还没有建立链接且没有数据所以是随机的
第二次握手:
主机B同意连结所以SYN=1
链接建立所以ACK都必须为1
seq=y(随机)因为双方刚刚建立链接还没有数据
ack(B)=seq(A)=x+1,主机B接收到的序列号虽然是随机的但是主机B要的是x=1位数据
第三次握手:
SYN=0:SYN只有在建立连接时才为1,其他时候均设为0
ACK=1:链接建立所以ACK都必须为1
seq=x+1:主机A发送的报文段的第一个字节就是x+1
ack=y+1:主机B发送的是第y(x+1)位数据,所以主机A要的是y+1位数据

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值