4.7 拥塞控制
CoAP的基本拥塞控制由指数回退机制提供,见4.2节 。
为了避免拥塞,客户端(包括代理)应该严格限制他们同时与指定的服务器(包括代理)维持的未完成交互的数量(即NSTART值)。一个未完成的交互可以是一个仍在等待ACK的CON消息;也可以是一个在等待响应消息或者ACK的请求(这两种情况可以同时出现,做为同一个未完成的交互)。在本协议里NSTART的默认值为1.
另外,在未来拥塞控制可能会进一步得到考虑和优化,CoAP传输参数(如4.8节中定义)可以自动初始化,因此可能允许NSTART值大于1。
当EXCHANGE_LIFETIME超时后,如果该CON请求还没有收到响应,客户端就会停止等待。客户端停止等待一个已经收到ACK的CON请求(单独响应情况)或者对一个NON请求的响应的策略还未被定义。除非有额外的拥塞控制优化,否则它向其他未响应端的平均发送速率必须不超过PROBING_RATE。
注意:CoAP协议中,拥塞控制主要由客户端实现。然而,客户端可能会出现故障(或者客户端实际上就是攻击者),例如,在第11.3节中提到的放大攻击。为了将损失(网络带宽及能耗)降到最低,对合理的应用请求,服务器应该对响应限速。对于行为异常的端来说限速是有且最有效的办法了。
最后更新于
这有帮助吗?