$ 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
如图:
一、特性
UDP
设计简单。
在协议头中,只有端口号、包长度和校验码等少量信息,总共 8个字节。
如图:
(1)优点
UDP
携带的净数据较多。由于UDP
协议头长度还不到TCP
头的一般。- 省去了建立连接的负担。由于
UDP
没有Seq
号和Ack
号等概念,无法维持一个连接。
(2)带来的问题
- 不在乎双发方
MTU
的大小
它拿到应用层的数据之后,直接打上
UDP
头就交给下一层了。若超过
MTU
怎么办?
发送方的网络层负责分片,接收方收到分片后再组装起来,这个过程会消耗资源。
UDP
没有重传机制
丢包需要由应用层来处理
- 分片机制存在弱点,会成为黑客的攻击目标
接收方根据每个包里的
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
协议代价过大。
(5)移动通信领域
在 4G 网络里,移动流量上网的数据面对的协议GTP-U
是基于UDP