天天看点

【Network】之 UDP

文章目录

  • ​​一、特性​​
  • ​​(1)优点​​
  • ​​(2)带来的问题​​
  • ​​二、应用场景​​
$ nslookup
> baidu.com
Server:   127.0.0.53
Address:  127.0.0.53#53

Non-authoritative answer:
Name: baidu.com
Address: 220.181.38.148
Name: baidu.com
Address: 39.156.69.79      

​wirshark​

​ 如图:

【Network】之 UDP

一、特性

​UDP​

​​设计简单。

在协议头中,只有端口号、包长度和校验码等少量信息,总共 8个字节。

如图:

【Network】之 UDP

(1)优点

  • ​UDP​

    ​​携带的净数据较多。由于​

    ​UDP​

    ​​协议头长度还不到​

    ​TCP​

    ​头的一般。
  • 省去了建立连接的负担。由于​

    ​UDP​

    ​​没有​

    ​Seq​

    ​​号和​

    ​Ack​

    ​号等概念,无法维持一个连接。

(2)带来的问题

  1. 不在乎双发方​

    ​MTU​

    ​ 的大小
它拿到应用层的数据之后,直接打上 ​

​UDP​

​头就交给下一层了。

若超过 ​

​MTU​

​​ 怎么办?

发送方的网络层负责分片,接收方收到分片后再组装起来,这个过程会消耗资源。

  1. ​UDP​

    ​没有重传机制
丢包需要由应用层来处理
【Network】之 UDP
【Network】之 UDP
  1. 分片机制存在弱点,会成为黑客的攻击目标
接收方根据每个包里的 ​

​More fragments​

​​ 的​

​flag​

​​,把分片组装起来。

​​

​1​

​​表示后续还有分片,​

​0​

​表示这是最后一个分片(可以组装了)

若黑客持续快速地发送 ​

​flag​

​​为​

​1​

​​的​

​UDP​

​包,接收方一直无法把这些包组装起来,就有可能耗尽内存。

二、应用场景

(1) 网页或者APP的访问

例如:​

​QUIC​

​(Quick UDP Internet Connections,快速 UDP 互联网连接)

QUIC:是一种基于 ​

​UDP​

​改进的通信协议,其目的是降低网络通信的延迟,提供更好的用户互动体验

QUIC 在应用层上,自己实现了:快速连接建立、减少重传时延、自适应拥塞控制

(2)流媒体的协议

直播,讲究实时,过时的包丢了就丢了。

(3)实时游戏

游戏对实时要求较为严格的情况下,采用自定义的可靠 UDP 协议,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响。

(4)​

​IoT​

​物联网

物联网领域终端资源少,很可能只是个内存非常小的嵌入式系统,维护​

​TCP​

​协议代价过大。

继续阅读