5.8.1 TCP概述
TCP是在Internet中TCP/IP协议家族中最为重要的协议之一,因特网中各种网络特性参差不齐,所以必须要有一个功能很强的互联网可靠传输协议的要求,TCP特点要与UDP特点对比来看。
UDP特点 | TCP特点 |
---|---|
无连接 | 面向连接 |
不可靠的服务 | 可靠的服务 |
点到点和多点通信 | 点到点的通信 |
首部8字节 | 首部固定部分20字节 |
面向报文 | 面向字节流 |
对TCP而言
- TCP是面向连接的,UDP是无连接的,TCP在通信之前双方必须建立TCP连接,这需要复杂的有限状态机来描述TCP所属的状态
- TCP提供可靠的传输服务,TCP协议可以保证在数据传输过程中的数据按发送数据到达,并且不出错不丢失不重复,因此能够做到可靠服务。
- TCP服务只能做到点到点的通信,而UDP不仅能够实现点到点的通信,还能够支持多点之间的通信,所以TCP不提供广播或者多播的服务。
- TCP首部固定部分是二十个字节开销,当然最多可以达到60个字节,开销方面比UDP要大一些。
- TCP是面向字节流的,发送方的TCP协议将应用进程交付下来的数据当成一个没有结构的字节流,并将其切割成TCP的报文段进行传送,在接收方的TCP协议向应用进程递交的也是字节流。
如图
如果主机的应用进程希望发送500个字节的数据,每一个TCP报文段最大报文段长度是一百个字节。
- TCP会将应用进程的数据切割成5个TCP报文段,每个报文段是100个字节
- 然后对每一个字节数据进行编号,假定编号是从1开始,第一个报文段的数据编号就是1到100,第二个报文段的数据编号就是101到200,以此类推。