了解TCP协议的相关知识,如何建立连接与断开连接

      关于客户端与服务器端创立链接的三次握手。

  首先需要理解三个概念SYN,ACK,FIN。其中SYN代表建立连接的请求即建立连接时的同步信号,ACK是确认信号表达双方是否能接收到对方的信息,FIN表示后面是否还有信息需要传输通常意味着需要关闭连接。

  三次握手的原理如下。首先客户端发送SYN数据包(这里SYN的值为1,并假设发送序列号为x),服务器接收到后发送SYN与ACK,代表收到客户端的连接请求并进行确认(设这时的序列号为y,确认序列号为x+1),客户端接到信号后再次发送ACK(这时序列号为x+1,确认序列号为y+1)。其中第一次握手时服务器段测试了自己接受信号以及对方的发送信号的能力正常,第二次握手客户端确认自己发报能力,接收能力以及对方接收能力正常,发送能力正常,第三次验证了服务器发送接收以及客户端发送接受都正常。

通俗的说就是一个男生对女生表白,女生同意了并给了他一个定情信物。男生得到女生的反馈和信物后同样也给了女生一个定情信物。这里最后一次连接貌似有些多余,但其实大有用处。目的是防止脏连接。假如只有两次通信就可建立连接,将会发生客户第一次链接超时(还没有到达服务器),之后客户段重新发送了一个信号。服务器接收到重发信号后,向客户端发送信号进行确认后直接建立通信。这时如果超时的请求传送到服务器,服务器会错误的认为客户端还要进行连接,就会再次发出确认连接,但此时客户端并无此意。此时连接就无法成功。

  关闭通信时的四次握手原理如下。客户端想要关闭连接并将这个信号发给服务器端,这时客户端进入半关闭状态。服务器端接收请求后进行资源处理,并向客户端传递信号告诉客户端自己正在处理资源。当服务器端处理完毕后向客户端发送请求可以关闭了。这时服务器进入半关闭状态。客户端稍等片刻看看服务器是否还会传递信息,如果没有。就会向服务器端发送关闭的消息然后客户端关闭,收到消息的服务器段也会关闭

posted @ 2021-09-21 10:15  张子航  阅读(215)  评论(0)    收藏  举报