您的位置:首页 > 理论基础 > 计算机网络

TCP的主要特性

2017-05-16 00:44 197 查看
摘自:《深入理解计算机网络》 王达著 机械工业出版社

TCP的主要特性

TCP是TCP/IP体系结构中最主要的传输协议,在功能上与本章具体介绍OSI网络中的TP4类传输层协议类似,但TCP只能提供面向连接的数据传输服务,而且TCP还具有以下主要特性:

面向连接型的传输协议

也就是说,应用程序在使用TCP之前,必须先建立TCP传输连接,在传输数据完毕后,必须释放已建立的TCP传输连接。

仅支持单播传输

每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播(multicast)和广播(broadcast)传输方式。

传输单位为数据段

TCP仍采用传统的“数据段”作为数据传输单元。由于数据段大小受应用层传送的报文大小和所途经网络中MTU(Maximum Transmission Unit)值大小决定,所以每次发送的TCP数据段大小是不固定的。在一个具体的网络中,有一个MSS(Maximum Segment Size,最大数据段大小),最小的数据段可能仅有21字节(其中20字节属于TCP数据段头部,数据部分仅1字节)。

仅一种TPDU格式

TCP的数据传输数据单元称为“数据段”,其实也可以按照OSI/RM中的说法称为TPDU(Transport Protocol Data Unit,传送协议数据单元),因为在TCP数据段头部已包括了各种TPDU所需的特征字段,只要是通过其中的多个控制位来实现的,具体说明在会在TCP数据段格式时介绍。

支持全双工传输

TCP允许通信双方的应用程序在任何时候都能发送数据,因为TCP连接的两端都设有缓存,用来临时存放双向通信的数据。当然,TCP可以立即发送一个数据段,也可以缓存一段时间以便一次发送更多的数据段(最大的数据段大小取决于MSS)。

TCP连接是基于字节流的,而非报文

TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输。

每次发送的TCP数据段大小和数据段数都是可变的

在TCP中,因为每次发送多少字节的数据不是固定的,也不是由主机当前可用缓存决定的,而是根据双方给出的窗口大小和当前网络的拥塞程度决定的(后面会介绍UDP发送的报文长度是由应用进程给出的),所以每次可以发送的TCP数据大小是不固定的。

TCP的传输单元是数据段,数据段又是在应用层传送的数据基础上进行封装的,每次的TCP数据段大小取决于不同的应用进程。当然,如果应用层传送的报文太长,超出了MSS,则需要对报文进行分段,总的来说,每次传输的TCP数据段大小是由应用层数据和MSS双重决定的。

这样一来,每次可以发送的TCP数据段数也是不固定的,可以一次仅发送一个TCP数据段,也可以一次发送多个TCP数据段,只要在当前可用的“发送窗口大小”限制之内即可。另外,如果应用进程传送到TCP缓存中的数据太长,TCP可以对它分段,反之,如果传到TCP缓存中的数据太小,则TCP会等待缓存中有足够多的数据后在组成一个数据段发送。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tcp 计算机网络