面试最常问的tcp三次握手策略

前端小伙伴找工做的时候是否是经常被问到http的tcp三次握手策略是怎么创建的啊。前端

看到篇文章之后在面试这块就不用怕了😁面试

其实TCP/IP按层分的话,分为4层,分别是微信

1 应用层网络

2 传输层tcp

3 网络层大数据

4 链路层cdn

关于这4层分别是什么,在这就很少说了,今天我们只看 传输层(TCP协议层)。blog

tcp做为传输层它主要提供了一下功能,three

  • 提供了可靠的字节流服务
  • 确保数据可以到达目标

一、TCP提供的可靠字节流服务。支付宝

1.1 、所谓的字节流服务,简单的理解就是身为传输层的tcp协议,可以把传输比较大的数据进行分块处理,按序号分块处理成网络传输的小单位。其实就是为了方便传输。

比较官方店的解释为:”为了方便传输,将大的数据分割成以报文段为单位的数据包进行管理“

1.2 、可靠的传输服务,简单的理解为tcp协议可以把大数据包已经分割成报文为单位的数据包准确可靠传给对方。

总结上面1.一、1.2得知tcp协议为了容易传送数据才把数据分割,并且tcp协议可以确认数据最终是否送达到对方。

二、确保数据可以到达目标

tcp的三次🤝就是立刻就要浮出真面目。

为了确保数据能后无误的送达目标处,tcp协议采用面试关常问的三次握手(three-way-handshaking)策略,用于tcp协议把数据包送出去后,tcp不会对传送的后的状况置之不理,它必定会向对方确认是否成功送达。

先简单的理解一下三次握手机制,简单的例子好比我们你们是否是都在支付宝或者微信上面进行过转帐啊,好比我有一个好朋友赵鑫,赵鑫打电话给我借钱,我得知这个消息后,要给他转钱,我选择在微信上面给他转帐了。

我把钱转给他之后,接着就给他发了一条信息”我把2000元已经转给你了,你注意查收一下“,

赵鑫看到信息之后就会回复:’钱收到了,下个月还你‘等这类的话

我看到信息后回复:’收到,好的‘

转帐加信息回复就是简单描述三次握手,接下来咱们看看在tcp层怎么实现的

在握手的过程当中使用了tcp的标志(flag)-SYN(synchronize,使.....同步)和ACK(acknowledgement,认可、确认)。

发送端在数据包发送之后,首先发送一个带SYC(synchronize)标志的数据包给对方,接收端收到后,回传一个带有SYN(synchronize)/ACK(acknowledgement)标志的数据包已传达接收端的确认信息。发送端在回传一个带有ACK标志的数据包,表明”握手结束“,

若在握手中某个阶段莫名中断,tcp协议会再次以相同的顺序发送相同的数据包

除了上述的三次握手,tcp协议还有其余各类手段来确保通讯的可靠性

相关文章
相关标签/搜索