如何处理大量数据包丢失?

如何处理大量数据包丢失?

我目前住在宿舍里,这里的网络连接非常差。速度还不错,但大约 25% 的数据包会随机丢失。管理层知道这个问题,但他们并不关心。

Web 浏览器大多可以处理它,但 FTP、Skype 等...则没用。

我想用软件来解决这个问题。我可以连接到 Linux 服务器(在大学里)。我没有管理员权限,但我可以访问互联网。

解决方案可能是在 Linux 服务器上设置一个代理,并将每个包发送两次,或者如果其中一个包丢失,则自动重新发送。

或者是否可以不使用另一台计算机来管理它?

答案1

假设您已经正确诊断了问题,这几乎(但不完全)不可能做到 - 您有多个问题。

首先是 tcp 与 udp - 交互式流量(如 Skype)通常使用 UDP,而网页浏览和 FTP 使用 TCP。UDP 是“发射后不管”的,而 TCP 会重新发送。

此外,对于 Skype 类型的流量,您必须处理抖动 - 即延迟需要相当一致,发送多个数据包 - 如果您能弄清楚如何做,仍可能会因数据包无序和抖动问题而导致丢失。

话虽如此,从您的粗略描述来看,我觉得问题更可能是路由器上的 QoS/流量类别 - 即提高网络流量的优先级。(DNS 通常也是 UDP,因此您会认为网站会随机不加载,而 TCP 流量会非常慢,加载时数据包会少很多)。您还应该知道,有时会限制 ICMP/某些类型的 UDP 数据包的数量,以防止 DoS 攻击 - 您所说的可能与此有关。

在做任何过于复杂的事情之前,你应该尝试找出确切的性能特征。如果如我所料,HTTP 和 HTTPS 流量被优先考虑,那么最简单的方法可能是在端口 443 上通过 TCP 设置 OpenVPN 隧道,然后通过该隧道进行 Skype 通信。

相关内容