文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
UDP 协议
当来自客户端的连接数远大于 TCP 连接的上限时,可以使用基于 UDP 的接口。UDP 接口不能保证传输到位,所以只有在不要求成功的操作中使用;比如被用于一个“get”请求时,会因不当的缓存处理而发生错误或回应有遗失。
每个 UDP 数据包都包含一个简单的帧头,数据之后的内容与 TCP 协议的描述类似。在执行所产生的数据流中,请求必须被包含在单独的一个 UDP 数据包中,但是回应可能跨越多个数据包。(只有 get
和 set
请求例外,跨越了多个数据包)
帧头有 8 字节长,如下(均由 16 位整数组成,网络字节顺序,高位在前):
- 0-1 请求 ID
- 2-3 序号
- 4-5 该信息的数据包总数
- 6-7 保留位,必须为 0
请求 ID 有客户端提供。一般它会是一个从随机基数开始的递增值,不过客户端想用什么样的请求 ID 都可以。服务器的回应会包含一个和请求中的同样的 ID。客户端使用请求 ID 来区分每一个回应。任何一个没有请求 ID 的数据包,可能是之前的请求遭到延迟而造成的,应该被丢弃。序号的返回是从 0
到 n- 1
, n
是该条信息的数据包数量。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论