描述TCP和UDP区别

Posted JohnnyFang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了描述TCP和UDP区别相关的知识,希望对你有一定的参考价值。

    不同主机上进程与进程之间的数据传输,根据数据的大小分为两类:一类是待发送数据较短,单个数据包即可发送完成;另一类是待发送数据较长,需要划分成多个数据包发送。而这刚好就分别对应了UDP和TCP协议,即一个数据包能完成发送的使用UDP协议,分包发送的使用TCP协议。

    TCP和UDP的区别主要表现在是否连接、首部大小、传输可靠性、发送对象数量、传输形式和拥塞控制等方面。

  1. 是否连接

  TCP在传输数据之前必须建立连接,传输数据完毕后要关闭释放连接,即上一篇中提到的TCP三次握手和四次挥手。

    UDP在传输数据之前是不需要和对方建立好连接的,所以也没有关闭连接的过程。


  1. 首部大小

    TCP首部固定20字节,而UDP首部开销小,仅有8字节,相比较而言,UDP的效率要更高一点。

描述TCP和UDP区别_拥塞控制

(TCP首部)

描述TCP和UDP区别_数据_02

(UDP首部)


  1. 传输可靠性

    TCP在数据传输时是建立在连接的基础上,它在传输数据时是可靠的,能保证数据不丢失,且能按照正确的顺序被对方接收。

    UDP只能尽量保证数据可到达对方,无法保证可靠的交付。主要还是因为没有建立连接,数据丢失后无法重传。


  1. 发送对象数量

    每一条TCP的连接都是点对点的,导致TCP的发送对象只能是一个。

    UDP无需建立连接,它的发送对象可以是一个,也可以是多个。


  1. 传输形式

    TCP是面向字节流模式的,它把数据看成是一串无结构的字节流。

    UDP是面向数据报的,它不会对数据进行合并或者拆分,一次直接传输一个报文,因而对于使用UDP协议的程序,必须使用大小合适的报文,如果报文太大,则会在IP层对其进行分片,从而导致IP的效率降低。


  1. 拥塞控制

    TCP为提高网络利用率、降低丢包率、保证网络资源对每条数据流的公平性,会采取拥塞控制。

    UDP没有拥塞控制,在网络出现拥塞的时候,源主机不会因此而降低发送速率,它的实时性会比较好。所以对于允许丢失一些数据,但又要求高实时性的场景,UDP更为适合,如视频会议等。

以上是关于描述TCP和UDP区别的主要内容,如果未能解决你的问题,请参考以下文章

比较TCP和UDP

TCP/UDP区别(不定期增加内容)

描述TCP和UDP区别

TCP和UDP的区别

TCP和UDP的区别

java面试题-tcp和udp