看来 UDP 数据包可以在没有负载的情况下发送。
我能想到的唯一不需要负载的就是 NAT 打洞。
这还能用来做什么?
这与我之前的问题有关在 Linux 下,recv 能否在 UDP 上返回 0? https://stackoverflow.com/questions/12505892/under-linux-can-recv-ever-return-0-on-udp
我想更重要的是,如果它被指定为某个标准的一部分,那么它就被认为在某个地方有用,对吗?
任何事物! UDP 数据包不是空的——它带有发送者的身份。因此,这样的数据包可以用作一种原始信号:可能是你好、再见或保持活动状态。
具有像这样的接口sendmsg
,可以使用空数据包来发送辅助数据,例如cmsg
结构(可用于在 Linux 上的两个进程之间传输文件描述符等)。
编辑:另一种用途:NAT 遍历算法,例如STUN http://en.wikipedia.org/wiki/STUN或 UDP 打洞。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)