一、简介
UDP协议和TCP协议都是传输层协议。下面简单先介绍一下TCP和UDP的概念:
- TCP(Transmission Control Protocol,传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据(有点类似于打电话必须先建立连接)。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
- UDP(User Datagram Protocol,用户数据报协议)是一个简单的面向数据报的运输层协议。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地(在网络不稳定的时候可能发生丢包)。由于UDP在传输数据报前不用建立连接,且没有超时重发等机制,所以数据传输效率比TCP高。
二、区别
以下是TCP和UDP的区别:
区别 |
TCP |
UDP |
概念 |
(Transmission Control Protocol) 传输控制协议 |
(User Datagram Protocol ) 用户数据报协议 |
是否面向连接 |
面向连接(发送数据之前需要先建立连接) |
无连接(发送数据之前不需要建立连接) |
数据模式 |
字节流模式(一连串无结构的字节流) |
数据报模式 |
是否支持广播和多播 |
每一条TCP连接只能有两个端点,只能是一对一通信 |
支持一对一、一对多、多对一和多对多交互通信 |
是否提供可靠传输服务 |
可靠传输,使用流量控制和拥塞控制 |
尽最大努力交付,不保证可靠性;不存在流量控制和拥塞控制; |
功能 |
存在建立连接(三次握手)、关闭连接(四次挥手)、保证可靠,在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源 |
|
性能 |
性能稍微差一点 |
性能比TCP高 |
优点 |
可靠,稳定,保证数据顺序 |
快,比TCP稍安全(因为不存在握手、确认、窗口、重传、拥塞控制等机制,所以不容易被攻击) |
缺点 |
慢,效率低,占用系统资源高,易被攻击 |
不可靠(网络不稳定很容易发生丢包),不稳定,不保证数据顺序 |
适用场景 |
整个数据要准确无误的传递给对方,如浏览器、邮件发送,文件传输等 |
对网络质量要求不高的时,要求数据尽快传输时,也就是实时性稍微高一点的场景,如qq语音、实时视频会议等 |