为何“三次握手,四次挥手”?

前言:网络

  若是你说你懂IT,你懂计算机网络,那么你会怎么解释“三次握手,四次挥手”?并发

----------------spa

1.TCP报文段首部格式:

2.TCP创建链接图

--------------------------------------------计算机网络

符号说明3d

seq:"sequance"序列号
ack:"acknowledge"确认号
SYN:"synchronize"请求同步标志
ACK:"acknowledge"确认标志"
FIN:"Finally"结束标志blog

 

为何收到Server端的确认以后,Client还须要进行第三次“握手”呢?
  在只有两次“握手”的情形下,假设Client想跟Server创建链接,可是却由于中途链接请求的数据报丢失了,故Client端不得不从新发送一遍;这个时候Server端仅收到一个链接请求,所以能够正常的创建链接。可是,有时候Client端从新发送请求不是由于数据报丢失了,而是有可能数据传输过程由于网络并发量很大在某结点被阻塞了,这种情形下Server端将前后收到2次请求,并持续等待两个Client请求向他发送数据...问题就在这里,Cient端实际上只有一次请求,而Server端却有2个响应,极端的状况可能因为Client端屡次从新发送请求数据而致使Server端最后创建了N多个响应在等待,于是形成极大的资源浪费!因此,“三次握手”颇有必要!资源

3.TCP断开链接图

---------------------------------------------------------------同步

为何须要“四次挥手”?
  试想一下,假如如今你是客户端你想断开跟Server的全部链接该怎么作?第一步,你本身先中止向Server端发送数据,并等待Server的回复。但事情尚未完,虽然你自身不往Server发送数据了,可是由于大家以前已经创建好平等的链接了,因此此时他也有主动权向你发送数据;故Server端还得终止主动向你发送数据,并等待你的确认。其实,说白了就是保证双方的一个合约的完整执行!请求

相关文章
相关标签/搜索