美文网首页
传输控制协议TCP原理

传输控制协议TCP原理

作者: LU7IN | 来源:发表于2018-05-27 20:25 被阅读0次
    传输控制协议是啥?

    传输控制协议其实就是我们嘴上老是说的TCP,但是以前压根就没了解过,也就是跟着别人说而已。上了计算机网络这门课程之后终于对其有所了解,这次的博客就相当于做个笔记吧。

    TCP协议(Transport control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

    TCP的工作原理

    TCP的原理分为三部分:TCP建立连接,报文传输以及TCP连接释放。其中TCP连接建立需要经过“三次握手”。

    TCP连接建立

    原理图如下:

    TCP握手过程.png

    ”三次握手“如下:

    (1)一开始客户端TCO进程是处于CLOSED状态。当客户端准备发起一次TCP连接时,进入SYN-SEND(准备发送)的状态,客户端首先相处于LISTEN(监听)状态的服务器端TCP进程发送第一个控制位SYN=1的“连接请求报文”。

    (2)服务器端在接收到”连接请求报文“之后,如果对方同意建立连接,则向客户端发送第二个控制位SYN=1,ACK=1的”连接建立请求确认报文“。

    (3)在接收到”连接建立请求确认报文“之后,客户端发送第三个控制位ACK=1”连接建立请求确认报文“。这时,客户端进入了ESTABLISHED(已建立连接)状态,服务器在接受到ACK报文之后也进入了ESTABLISHED(已建立连接)状态。

    报文传输

    当客户进程与服务器进程之间的TCP传输连接建立之后,客户端的应用进程与服务器端的应用进程就可以使用这个连接,进行全双工的字节流传输。为了保证TCP工作正常、有序地进行,TCP设置了保持计时器(keep timer),用来防止TCP连接处以长时期空闲。

    TCP连接释放

    TCP传输连接的释放过程比较复杂,客户端与服务器都可以主动提出连接释放的请求。下面是客户主动提出请求的连接释放“四次握手”的过程。

    (1)当客户准备结束一次数据传输,主动提出释放TCP连接时,进入FIN-WAIT-1(释放等待-1)状态。它向服务器端发送第一个控制位FIN=1的“连接释放请求报文”,提出连接释放请求,停止发送数据。

    (2)服务器在接受到“连接释放请求报文”之后,需要向客户端发回“连接释放请求确认报文”,表示对接收第一个连接释放请求报文的确认。

    (3)服务器的高层应用没有数据需要发送时,它会通知TCP可以释放连接,这时服务器向哭护短发送“连接释放请求报文”。()

    (4)客户在收到FIN报文之后,向服务器发送“连接释放请求确认报文”,表示对服务器“连接释放请求报文”的确认。

    注:

    TCP报文格式.gif

    ACK(确认位):TCP在确认连接建立后发送的所有报文段的ACK都要置1.

    SYN(同步位):同步位在连接建立时用来同步序号。例如:当SYN=1,ACK=0时,表示这是一个建立连接的请求报文;当SYN=1,ACK=1时,表示这是一个同一连接建立的相应报文。

    FIN(终止位):FIN=1时表示发送端的报文发送完毕,请求释放TCP连接。

    相关文章

      网友评论

          本文标题:传输控制协议TCP原理

          本文链接:https://www.haomeiwen.com/subject/jexijftx.html