TCP的三次握手

TCP被称为可靠的数据传输协议,主要是通过许多机制来实现的,其中最重要的就是三次握手的功能。如何利用TCP的报头来确认这个数据包已经被对方接受,并进一步与对方主机实现连接呢?看下图:
这里写图片描述
我们把上述过程分为A.B.C.D四个阶段来说明:
A:数据包发起
当客户端想要对服务器端发起连接时,就必须要送出一个要求连接的数据包,此时客户端需要随机取用一个大于1024的端口来作为程序沟通的接口。然后在TCP的报头当中,必须要带有SYN的主动连接(SYN=1),并且记下发送出连接数据包给服务器端的序号(Sequence number=10001)。

B:数据包接收与确认数据包传递
当服务器接到这个数据包,并且确定要接收这个数据包后,就会开始制作一个同时带有SYN=1,ACK=1的数据包,其中那个Acknowledge的号码是要给Client端确认用的,那我们服务器也必须要确认客户端确实可以接收我们的数据包才行,所以也会发送出一个Sequence number(Seq=20001)给客户端,并且开始等待客户端给我们服务器端的回应。

C:回送确认数据包
当客户端收到来自服务器端的ACK数字后(10002)就能够确认之前那个要求数据包被正确接收了,接下来如果客户端也同意与服务器端简历连接时,就会再次发送一个确认数据包(ACK=1)给服务器,亦即是Acknowledge=20001+1=20002.

D:取得最后的确认
若一切顺利,在服务器端收到带有ACK=1且ack=20002序号的数据包后,就能够建立起这次的连接了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值