趣谈网络协议02

tcp 和 udp的区别

TCP 提供可靠交付,而 UDP 继承了 IP 包的特性,不保证不丢失,不保证按顺序到达。

TCP 是面向字节流的。UDP 继承了 IP 的特性,基于数据报的,一个一个地发,一个一个地收。

TCP 是可以有拥塞控制的。UDP 就不会,应用让我发,我就发,管它洪水滔天。

TCP 其实是一个有状态服务。而 UDP 则是无状态服务。

 

UDP 的三大特点

UDP 就像小孩子一样,有以下这些特点:

第一,沟通简单,不需要一肚子花花肠子(大量的数据结构、处理逻辑、包头字段)。前提是它相信网络世界是美好的,秉承性善论,相信网络通路默认就是很容易送达的,不容易被丢弃的。

第二,轻信他人。它不会建立连接,虽然有端口号,但是监听在这个地方,谁都可以传给他数据,他也可以传给任何人数据,甚至可以同时传给多个人数据。

第三,愣头青,做事不懂权变。不知道什么时候该坚持,什么时候该退让。它不会根据网络的情况进行发包的拥塞控制,无论网络丢包丢成啥样了,它该怎么发还怎么发。

UDP 的三大使用场景

第一,需要资源少,在网络情况比较好的内网,或者对于丢包不敏感的应用。

第二,不需要一对一沟通,建立连接,而是可以广播的应用。

第三,需要处理速度快,时延低,可以容忍少数丢包,但是要求即便网络拥塞,也毫不退缩,一往无前的时候。

udp实际使用例子:

网页或者app的访问

流媒体协议

实时游戏

IoT 物联网

移动通信领域

如果将 TCP 比作成熟的社会人,UDP 则是头脑简单的小朋友。TCP 复杂,UDP 简单;

TCP 维护连接,UDP 谁都相信;TCP 会坚持知进退;

UDP 愣头青一个,勇往直前;

UDP 虽然简单,但它有简单的用法。它可以用在环境简单、需要多播、应用层自己控制传输的地方。例如 DHCP、VXLAN、QUIC 等。

posted @ 2021-09-22 19:26  大雄的脑袋  阅读(54)  评论(0编辑  收藏  举报