计算机网络-5-3-TCP协议主要特点

传输控制层TCP协议

TCP协议最主要的特点

  1. TCP是面向连接的运输层协议。这就是说,应用程序在使用TCP协议之前,必须要建立TCP连接,且在传输完毕后,还要断开连接。

  2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点(一对一),并且按序到达。

  3. TCP提供全双工通信。TCP允许通信双方的应用进程可以在任何时候都能发送数据。TCP连接的两端都设有发送缓存接收缓存,用来临时存放双向通信的数据。在发送的时候,应用进程把数据传送给TCP缓存后,就可以做自己的事情,而TCP会在合适的时候把数据发送出去。在接收时,TCP把接收到的数据放入接收缓存中,上层的应用进程会在合适的时候读取缓存中的数据。

  4. 面向字节流,TCP中的”流“指的是流入到进程或者从进程流出的字节序列。”面向字节流“的含义是:虽然应用进程和TCP交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅仅看成一连串的无结构的字节流“。TCP并不知道所传送的字节流的含义。

如图5-8 TCP连接是一条虚连接(逻辑连接):并不是真正的物理连接。TCP报文段先要传送到IP层,加上IP首部,再传送到数据链路层。再加上数据链路层的首部和尾部,才能离开主机发送到物理链路。image

图5-8指出,TCP和UDP在发送报文的时候所采用的方式完全不同。TCP并不关心应用进程一次把多长的报文发送到TCP缓存中,而是根据对方给出的窗口值和当前网络的拥塞程度来决定一个报文段应该包含多少个字节(UDP发送的报文长度是应用进程给出的)。如果应用进程一次只发来一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。关于TCP报文段的长度问题,在后面据悉讨论。

TCP的连接

TCP把连接作为最基本的抽象,TCP许多的特性都与TCP面向连接这个基本特性相关。

每一条TCP连接有两个端点,TCP连接的端点,不是主机,不是主机IP,不是应用进程,也不是运输层的协议端口,而是叫做套接字(socket)或者插口,根据RFC793规定:端口号拼接到IP地址即构成了套接字,即:套接字socket=(IP地址:port端口号)。

每一条TCP连接唯一地址通信的两端(及两个套接字所规定):

TCP连接::={socket1,socket2}={(IP1:Port1),(IP2:Port2)}

posted @ 2022-01-22 20:37  LilyFlower  阅读(291)  评论(0编辑  收藏  举报