ios - iOS 上的退避算法

标签 ios sockets

在 iOS 上使用 TCP 套接字重新连接的退避算法有什么优势吗?例如,5 秒的最大延迟与 30 秒的最大延迟会对电池使用产生明显影响吗?在我看来,退避算法主要用于避免服务器暂时无法处理负载时出现 DOS。从客户的角度来看,好处似乎并不明显。

最佳答案

退避算法(指数退避)还可以帮助客户端处理服务器上任何持续的拥塞。如果客户端等待 T 秒后服务器正忙,那么下一次,如果在 2T 秒后尝试,它有更多机会到达服务器。这是一个链接:http://en.wikipedia.org/wiki/Exponential_backoff

其次,对于 TCP,服务器上的挂起连接队列也可能已满,在这种情况下,TCP 服务器将隐式丢弃 SYN 数据包(在 Linux/Unix 中)。退避允许客户端有足够的时间,以便 TCP 服务器上的应用程序可以使那些挂起的连接出队(通过调用accept()),从而在队列中为客户端进行退避创建空间。

关于ios - iOS 上的退避算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18649906/

相关文章:

ios - 如何获得一个圆形图层,一个边缘作为渐变,另一个边缘作为全色

ios - 算术运算符和键值编码

ios - RxSwift - 获取列表中的每一项

java - 未绑定(bind)套接字的目的是什么?

c# - 如何在 C# 中使用 tcp 确定数据包接收是第一个数据包的一部分

ios - CollectionView标题滚动时停止刷新/重新加载数据

ios - Google Analytics iOS 是否需要 AdSupport 才能使用 IDFA

linux - UDP 套接字上的接收通知

c# - 通过套接字在 C++ 和 C# 应用程序之间传输图像

Java erlang套接字通信