TCP和UDP区别
TCP靠谱 | UDP不靠谱 |
---|---|
面向连接 | 面向无连接 |
不丢包,不重复,按顺序到达 | 直接发,不问后果 |
面向字节流 | 面向数据包 |
拥堵控制 | 无拥塞控制 |
有状态服务 | 无状态服务 |
- tcp面向连接,udp面向无连接。在互通之前,面向连接的协议会先建立连接,tcp会三次握手,而udp不会。
- tcp提供可靠交付:通过tcp连接传输的数据,无差错,不丢失,不重复,并按序到达。而udp不保证不丢失,不保证按顺序到达。
- TCP面向字节流。udp基于数据包,一个一个地发,一个一个地收。
- TCP有拥塞控制,UDP没有。
- TCP有状态服务,精确地记录着发送了没有,接收了没有,发送到哪个了,应该接收哪个了,错一点都不行。udp则是无状态的。发出去就发出去了,不计后果。
UDP特点
- 简单:不需要维护数据结构,处理逻辑,包头字段简单直接发包即可。
- 不需要建立连接:它不会建立连接,虽然有端口号,但是监听在这个地方,谁都可以传给他数据,他也可以传给任何人数据,甚至可以同时传给多个人数据。
- 没有拥塞控制,应用让发就发,不问网络情况,拥塞程度,丢包程度,该怎么发还怎么发。
UDP三大使用场景
- 需要资源少,在网络情况比较好的内网,或者对于丢包不敏感的应用。
- 不需要一对一沟通,建立连接,而是可以广播的应用。
- 需要处理速度快,时延低,可以容忍少数丢包,但是要求即便网络拥塞,也毫不退缩,一往无前的时候。