描述TCP和UDP区别
Posted JohnnyFang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了描述TCP和UDP区别相关的知识,希望对你有一定的参考价值。
不同主机上进程与进程之间的数据传输,根据数据的大小分为两类:一类是待发送数据较短,单个数据包即可发送完成;另一类是待发送数据较长,需要划分成多个数据包发送。而这刚好就分别对应了UDP和TCP协议,即一个数据包能完成发送的使用UDP协议,分包发送的使用TCP协议。
TCP和UDP的区别主要表现在是否连接、首部大小、传输可靠性、发送对象数量、传输形式和拥塞控制等方面。
- 是否连接
TCP在传输数据之前必须建立连接,传输数据完毕后要关闭释放连接,即上一篇中提到的TCP三次握手和四次挥手。
UDP在传输数据之前是不需要和对方建立好连接的,所以也没有关闭连接的过程。
- 首部大小
TCP首部固定20字节,而UDP首部开销小,仅有8字节,相比较而言,UDP的效率要更高一点。
(TCP首部)
(UDP首部)
- 传输可靠性
TCP在数据传输时是建立在连接的基础上,它在传输数据时是可靠的,能保证数据不丢失,且能按照正确的顺序被对方接收。
UDP只能尽量保证数据可到达对方,无法保证可靠的交付。主要还是因为没有建立连接,数据丢失后无法重传。
- 发送对象数量
每一条TCP的连接都是点对点的,导致TCP的发送对象只能是一个。
UDP无需建立连接,它的发送对象可以是一个,也可以是多个。
- 传输形式
TCP是面向字节流模式的,它把数据看成是一串无结构的字节流。
UDP是面向数据报的,它不会对数据进行合并或者拆分,一次直接传输一个报文,因而对于使用UDP协议的程序,必须使用大小合适的报文,如果报文太大,则会在IP层对其进行分片,从而导致IP的效率降低。
- 拥塞控制
TCP为提高网络利用率、降低丢包率、保证网络资源对每条数据流的公平性,会采取拥塞控制。
UDP没有拥塞控制,在网络出现拥塞的时候,源主机不会因此而降低发送速率,它的实时性会比较好。所以对于允许丢失一些数据,但又要求高实时性的场景,UDP更为适合,如视频会议等。
以上是关于描述TCP和UDP区别的主要内容,如果未能解决你的问题,请参考以下文章