TCP和UDP的区别
和UDP相比,TCP有三大核心特性:
- 面向连接。所谓的连接,指的是客户端和服务器的连接,在双方互相通信之前,TCP需要三次握手建立连接,而UDP没有相应建立连接的过程。
- 可靠性。TCP花了非常多的功夫保证连接的可靠,主要体现在
有状态
和可控制
。- TCP会精准记录那些数据发送了,哪些数据被对方接收了,哪些没有被接收到,而且保证数据包按序到达,不允许半点差错。这是有状态。
- 当意识到丢包了或者网络环境不佳,TCP会根据具体情况调整自己的行为,控制自己的发送速度或者重发。这是可控制。
- UDP就是
无状态
,不可控
的
- 面向字节流。UDP的数据传输是基于数据报的,这是因为仅仅只是继承了IP的特性,而TCP为了维护状态,将一个个IP包变成了字节流。