通俗易懂的TCP里面的三次握手以及四次挥手

通过三次握手来建立连接。 连接建立之后,就会传送数据! 四次握手来释放TCP连接

比较通俗易懂的一个讲解:https://www.bilibili.com/video/BV1h7411A7tG

三次握手:【发送三个包】

 答复:ack是上一个序列增加一的结果

至于为什么必须有三次握手:

不要二次握手的原因:

而在计算机中TCP是安全的,当要进行两个进程之间的通讯时候,这时需要进行建立连接。就发起了三次握手。发送建立连接报文中有SYN和ACK,Seq,下一个返回报文信息的ACK = Seq+1。而如果有一种情况, 客户端发出的第一个连接请求报文段并没有丢失,而是在某个网络结点上停滞了一会儿,导致延误到连接关闭后的某个时间才到达服务端。本来这是一个早已失效的报文段。但服务端收到此失效的连接请求报文段后,就误认为是客户端再一次发送一个新的连接请求。于是就向客户端发出确认报文段,同意建立连接。若不采用“三次握手”,那么只要服务端发出确认,新的连接就建立了。由于现在客户端并没有发出建立连接的请求,因此客户端像大爷一样,你干啥呢,我都没跟你通信呢,就不鸟服务端。就如打电话不说话一样,浪费了大量资源。

不要四次握手的原因:

通信不可能100%可靠, 而上面的三次握手已经做好了通信的准备工作, 再增加握手, 并不能显著提高可靠性, 而且也没有必要。 

四次挥手:【发送四个包】

 答复:ack是上一个序列增加一的结果【小写的】

数据传送完成之后,通过四次挥手断开连接!

  1. 第一次是客户机发来的。

  2. 中间两次,都是服务器发出的。

  3. 最后一次,还是终止于客户机。

猜你喜欢

转载自blog.csdn.net/weixin_42859280/article/details/105920396
今日推荐