描述TCP和UDP区别

少年击剑更吹箫,剑气箫心一例消。这篇文章主要讲述描述TCP和UDP区别相关的知识,希望能为你提供帮助。
    不同主机上进程与进程之间的数据传输,根据数据的大小分为两类:一类是待发送数据较短,单个数据包即可发送完成;另一类是待发送数据较长,需要划分成多个数据包发送。而这刚好就分别对应了UDP和TCP协议,即一个数据包能完成发送的使用UDP协议,分包发送的使用TCP协议。
    TCP和UDP的区别主要表现在是否连接、首部大小、传输可靠性、发送对象数量、传输形式和拥塞控制等方面。

  1. 是否连接
  TCP在传输数据之前必须建立连接,传输数据完毕后要关闭释放连接,即上一篇中提到的TCP三次握手和四次挥手。
    UDP在传输数据之前是不需要和对方建立好连接的,所以也没有关闭连接的过程。
【描述TCP和UDP区别】

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

(TCP首部)

(UDP首部)


  1. 传输可靠性
    TCP在数据传输时是建立在连接的基础上,它在传输数据时是可靠的,能保证数据不丢失,且能按照正确的顺序被对方接收。
    UDP只能尽量保证数据可到达对方,无法保证可靠的交付。主要还是因为没有建立连接,数据丢失后无法重传。


  1. 发送对象数量
    每一条TCP的连接都是点对点的,导致TCP的发送对象只能是一个。
    UDP无需建立连接,它的发送对象可以是一个,也可以是多个。


  1. 传输形式
    TCP是面向字节流模式的,它把数据看成是一串无结构的字节流。
    UDP是面向数据报的,它不会对数据进行合并或者拆分,一次直接传输一个报文,因而对于使用UDP协议的程序,必须使用大小合适的报文,如果报文太大,则会在IP层对其进行分片,从而导致IP的效率降低。


  1. 拥塞控制
    TCP为提高网络利用率、降低丢包率、保证网络资源对每条数据流的公平性,会采取拥塞控制。
    UDP没有拥塞控制,在网络出现拥塞的时候,源主机不会因此而降低发送速率,它的实时性会比较好。所以对于允许丢失一些数据,但又要求高实时性的场景,UDP更为适合,如视频会议等。

    推荐阅读