## TCP是可靠的
`TCP` 是传输控制协议,是面向连接的,可靠的,基于字节流的传输层通信协议。必须先在双方之间建立一个TCP连接,之后才能传输数据,TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
<br/>
## UDP是不可靠的
`UDP` 中文名是用户数据报协议,是OSI开放式系统互联 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证他们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
![](https://img.kancloud.cn/a2/a9/a2a912378a1b91035f86664b4715a5c5_907x346.png)
TCP和UDP在传输协议层
![](https://img.kancloud.cn/bb/91/bb9192d4d991a62960157175491225c5_1002x593.png)
![](https://img.kancloud.cn/33/c5/33c531d0b87039ea3dbcf732c4566b99_713x534.png)
## TCP 数据传输前需要3次握手,能保证可以到达目的地
![](https://img.kancloud.cn/03/4b/034bec6864bb7edbd8ebcf008e30e91e_687x735.png)
## UDP不需要握手之接传输 保证不了对方能否收到
# TCP与UDP区别总结:
1.TCP面向连接(如打电话需要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2.TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
TCP通过校验和,重传控制,序号标识,滑动窗口,确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行序列控制。
3.UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对以和多对多的交互通信。
5.TCP对系统资源要求比较多,UDP对系统资源要求较少。
![](https://img.kancloud.cn/7c/63/7c63faba73589d3ceef072a23ab4b326_832x420.png)