合理使用带宽控制技术――让游戏与下载“和谐舒畅”

时间:2022-03-15 09:33:36

合理使用带宽控制技术――让游戏与下载“和谐舒畅”

在这个资讯爆炸的时代任何人都将不可避免地义无反顾地触网。那你上网一般都做什么呢?很多朋友会顺口说出玩游戏下载各种好看和好玩的东西但你知道么就是这么看似简单地玩游戏和下载放到一起都会起冲突――当你想畅快地玩游戏时后台运行的下载程序可能会将你的带宽全部抢完然后你就会看到延迟飙升,毫无乐趣可言……这是怎么一回事呢?

为什么玩网络游戏会跟下载起冲突呢?

现在我们已经知道了延迟产生的根本原因,那么为什幺平时我们玩网络游戏的时候打开下载程序就会造成严重的延迟问题呢?

这是因为数据在打包发送的时候是有一个。先来后到”的顺序。假如我们把玩游戏所产生的数据表示为深色的与块,把下载等程序产生的数据包用浅色来表示,就可以看到如果按照正常的顺序,它们会被依次要求通过网卡来发送,这就会造成很长的“排队”延迟――要知道下载时候的数据包是非常多的。反过来,接收的原理也是一样。

如何来解决延迟问题呢?

现在我们已经知道了问题的症结所在,那有没有办法来解决这个问题呢?答案是肯定的。通常我们遇到的网络延迟主要有两方面的原因,其一是本地封包或者解包的时候遇到的临时“交通堵塞”。其二则是数据包在互联网节点上转发时遇到的“大面积塞车”,二者的情况不同,所以解决方案也不完全一样。

本地问题

对于本地的问题,实际上就是下载时的大量数据包堆积在一起,造成长时间的排队等候。从上文的介绍中,我们知道了按照顺序排队时会造成游戏的数据包夹杂在大量其它数据包当中,有没有办法让游戏的数据包优先通过呢?简单来说就是制定一个规则,可让游戏数据包优先通过网卡发送出去,就好像消防车、救护车那样拥有较高的道路优先级,可以不受红绿灯的限制,别的车见到都要让路一样。

NVlDIA的FirstPacket技术就可以实现这种功能,它实际上就是提高了游戏数据封包的优先级。在同等条件下,使用FirstPacket技术让游戏的数据优先封包、优先发送,从而降低游戏数据包的等待延迟,而对于下载应用来说,它们对数据包优先级以及延迟并不敏感,所以慢一些也无所谓。

不过比较遗憾的是NVIDlA的FirstPaeket技术目前只应用在一些中高端的主板(芯片组)上,如nForce570/590/680等,而其中低端产品都不支持此技术。其它芯片组厂商目前还没有类似的技术跟进。

路由器上的网络优化技术

当我们把信号从计算机上打包发送出去之后,只是解决了在本机内部排队的问题,但是在网络的节点上转发时并没有优先权,大多数设备(如路由器)仍然会按照“先来后到”的顺序排队。

那要如何改变数据的优先级呢?其实很多路由器都支持QoS(Quality 0f Service,网络服务质量)技术,这是一项通用的网络协议,可以对各种网络数据包进行管理和分配,从面给指定的数据包提供较高的处理优先级以及通讯带宽。在家用级路由器市场上,大多数中高端路由器都支持QoS功能(也有少量低端产品因为成本问题没有这个功能),通过在QoS选项中设置相应的端口,我们就可以让指定游戏的数据封包快速通过。

远程问题

相对于本地问题而言,远程网络的延迟问题就非常棘手了一因为用户可以更改本机以及自己路由器的设置情况,但是却没有办法更改电信、网通这些ISP运营商的路由器设置,而这些远程大型路由器也只能按部就班地工作。

这也是为什么我们在上网高峰期玩游戏,比方说每天晚上19:30-22:00会比平时的延迟高,而节假日又会比其它非节假日的延迟高,碰到这种况也只有尽可能错开高峰期玩游戏(没办法,谁叫用的人多呢)。

独享带宽时如何合理控制延迟呢?

现在我们知道,我们能够控制的只有独享带宽时本地的延迟。很多朋友会说,我一没有能够调节延迟的主板,二没有调整数据包转发顺序的高档路由器,那我怎么实现延迟控制呢?其实没有这些硬件并没有关系,我们可以通过软件的方式来调整。市面上有很多“软路由”软件(即将一台PC模拟成一个路由器,实现更精确的管理),但这些软件对使用者的知识要求较高,在此我们不作讨论,只为新手朋友们介绍几点简单的技巧和经验。

网络延迟产生的根源在于数据包长时间排队,而不能迅速收发;所以我们可以从限制总带宽的角度出发,不要让下载程序把所有的带宽全部用尽。而事实上,多数下载软件默认是没有开启限速功能的,如网际快车(FlashGet),迅雷(Thunden、电驴(eMule)以及各种BT(BitTorrent)客户端。我们所要做的只是将这些程序的F载速度拉下来,比如说1Mbps的ADSU宽带,换算过来就是128KB/s的下行带宽,那么我们就可以把下载速度上限设置为80KB/s(事实证明70%左右的限速对于玩网络游戏的延迟来说影响并不大),以此类推。

其次就是限制发起连接的总数量,现在的下载软件已经不同于以往的“服务器-本地计算机”的模式;多数下载软件都拥有P2P(Point to Point,点对点)功能,即除了向服务器索取信息之外,它还会向其它拥有数据的客户端发出连接请求。如果发起的数量过高,就会严重拖累网卡和路由器的处理速度,进而造成较高的延迟。对于多数家用计算机来说,玩网络游戏时我们将发起连接的上限控制在100以内比较合理。

写在最后

大家在上网玩游戏的同时挂上一个下载程序,边玩游戏边下载,看似一个合理利用带宽的想法,却在现实生活中很难实现。其中就是因为玩游戏需要快速响应(比较低的延迟),而下载却会让网络的响应速度变慢,看似一对不可调和的矛盾,在技术人那里却变成了一种契机。而解决这个问题的方法(如FrstPacket等)充满了人性化的味道不外乎提高数据通过的优先级以及尽量对数据包“分流”和“限速”,看来IT世界还真是有趣。希望通过本文能让夫家对我们的网络世界有一个简单的了解,其实所有技术的原理都非常简单,非常的人性化。“科技以人为本”,难道不是么?

上一篇:环抱硬盘带来了什么? 下一篇:脱离PC听音乐