论文部分内容阅读
在这个资讯爆炸的时代任何人都将不可避免地义无反顾地触网。那你上网一般都做什么呢?很多朋友会顺口说出玩游戏下载各种好看和好玩的东西但你知道么就是这么看似简单地玩游戏和下载放到一起都会起冲突——当你想畅快地玩游戏时后台运行的下载程序可能会将你的带宽全部抢完然后你就会看到延迟飙升,毫无乐趣可言……这是怎么一回事呢?
如何来解决延迟问题呢?
现在我们已经知道了问题的症结所在,那有没有办法来解决这个问题呢?答案是肯定的。通常我们遇到的网络延迟主要有两方面的原因,其一是本地封包或者解包的时候遇到的临时“交通堵塞”。其二则是数据包在互联网节点上转发时遇到的“大面积塞车”,二者的情况不同,所以解决方案也不完全一样。
本地问题
对于本地的问题,实际上就是下载时的大量数据包堆积在一起,造成长时间的排队等候。从上文的介绍中,我们知道了按照顺序排队时会造成游戏的数据包夹杂在大量其它数据包当中,有没有办法让游戏的数据包优先通过呢?简单来说就是制定一个规则,可让游戏数据包优先通过网卡发送出去,就好像消防车、救护车那样拥有较高的道路优先级,可以不受红绿灯的限制,别的车见到都要让路一样。
NVlDIA的FirstPacket技术就可以实现这种功能,它实际上就是提高了游戏数据封包的优先级。在同等条件下,使用FirstPacket技术让游戏的数据优先封包、优先发送,从而降低游戏数据包的等待延迟,而对于下载应用来说,它们对数据包优先级以及延迟并不敏感,所以慢一些也无所谓。
不过比较遗憾的是NVIDlA的FirstPaeket技术目前只应用在一些中高端的主板(芯片组)上,如nForce570/590/680等,而其中低端产品都不支持此技术。其它芯片组厂商目前还没有类似的技术跟进。
独享带宽时如何合理控制延迟呢?
现在我们知道,我们能够控制的只有独享带宽时本地的延迟。很多朋友会说,我一没有能够调节延迟的主板,二没有调整数据包转发顺序的高档路由器,那我怎么实现延迟控制呢?其实没有这些硬件并没有关系,我们可以通过软件的方式来调整。市面上有很多“软路由”软件(即将一台PC模拟成一个路由器,实现更精确的管理),但这些软件对使用者的知识要求较高,在此我们不作讨论,只为新手朋友们介绍几点简单的技巧和经验。
网络延迟产生的根源在于数据包长时间排队,而不能迅速收发;所以我们可以从限制总带宽的角度出发,不要让下载程序把所有的带宽全部用尽。而事实上,多数下载软件默认是没有开启限速功能的,如网际快车(FlashGet),迅雷(Thunden、电驴(eMule)以及各种BT(BitTorrent)客户端。我们所要做的只是将这些程序的F载速度拉下来,比如说1Mbps的ADSU宽带,换算过来就是128KB/s的下行带宽,那么我们就可以把下载速度上限设置为80KB/s(事实证明70%左右的限速对于玩网络游戏的延迟来说影响并不大),以此类推。
其次就是限制发起连接的总数量,现在的下载软件已经不同于以往的“服务器-本地计算机”的模式;多数下载软件都拥有P2P(Point to Point,点对点)功能,即除了向服务器索取信息之外,它还会向其它拥有数据的客户端发出连接请求。如果发起的数量过高,就会严重拖累网卡和路由器的处理速度,进而造成较高的延迟。对于多数家用计算机来说,玩网络游戏时我们将发起连接的上限控制在100以内比较合理。
写在最后
大家在上网玩游戏的同时挂上一个下载程序,边玩游戏边下载,看似一个合理利用带宽的想法,却在现实生活中很难实现。其中就是因为玩游戏需要快速响应(比较低的延迟),而下载却会让网络的响应速度变慢,看似一对不可调和的矛盾,在技术人那里却变成了一种契机。而解决这个问题的方法(如FrstPacket等)充满了人性化的味道不外乎提高数据通过的优先级以及尽量对数据包“分流”和“限速”,看来IT世界还真是有趣。希望通过本文能让夫家对我们的网络世界有一个简单的了解,其实所有技术的原理都非常简单,非常的人性化。“科技以人为本”,难道不是么?
如何来解决延迟问题呢?
现在我们已经知道了问题的症结所在,那有没有办法来解决这个问题呢?答案是肯定的。通常我们遇到的网络延迟主要有两方面的原因,其一是本地封包或者解包的时候遇到的临时“交通堵塞”。其二则是数据包在互联网节点上转发时遇到的“大面积塞车”,二者的情况不同,所以解决方案也不完全一样。
本地问题
对于本地的问题,实际上就是下载时的大量数据包堆积在一起,造成长时间的排队等候。从上文的介绍中,我们知道了按照顺序排队时会造成游戏的数据包夹杂在大量其它数据包当中,有没有办法让游戏的数据包优先通过呢?简单来说就是制定一个规则,可让游戏数据包优先通过网卡发送出去,就好像消防车、救护车那样拥有较高的道路优先级,可以不受红绿灯的限制,别的车见到都要让路一样。
NVlDIA的FirstPacket技术就可以实现这种功能,它实际上就是提高了游戏数据封包的优先级。在同等条件下,使用FirstPacket技术让游戏的数据优先封包、优先发送,从而降低游戏数据包的等待延迟,而对于下载应用来说,它们对数据包优先级以及延迟并不敏感,所以慢一些也无所谓。
不过比较遗憾的是NVIDlA的FirstPaeket技术目前只应用在一些中高端的主板(芯片组)上,如nForce570/590/680等,而其中低端产品都不支持此技术。其它芯片组厂商目前还没有类似的技术跟进。
独享带宽时如何合理控制延迟呢?
现在我们知道,我们能够控制的只有独享带宽时本地的延迟。很多朋友会说,我一没有能够调节延迟的主板,二没有调整数据包转发顺序的高档路由器,那我怎么实现延迟控制呢?其实没有这些硬件并没有关系,我们可以通过软件的方式来调整。市面上有很多“软路由”软件(即将一台PC模拟成一个路由器,实现更精确的管理),但这些软件对使用者的知识要求较高,在此我们不作讨论,只为新手朋友们介绍几点简单的技巧和经验。
网络延迟产生的根源在于数据包长时间排队,而不能迅速收发;所以我们可以从限制总带宽的角度出发,不要让下载程序把所有的带宽全部用尽。而事实上,多数下载软件默认是没有开启限速功能的,如网际快车(FlashGet),迅雷(Thunden、电驴(eMule)以及各种BT(BitTorrent)客户端。我们所要做的只是将这些程序的F载速度拉下来,比如说1Mbps的ADSU宽带,换算过来就是128KB/s的下行带宽,那么我们就可以把下载速度上限设置为80KB/s(事实证明70%左右的限速对于玩网络游戏的延迟来说影响并不大),以此类推。
其次就是限制发起连接的总数量,现在的下载软件已经不同于以往的“服务器-本地计算机”的模式;多数下载软件都拥有P2P(Point to Point,点对点)功能,即除了向服务器索取信息之外,它还会向其它拥有数据的客户端发出连接请求。如果发起的数量过高,就会严重拖累网卡和路由器的处理速度,进而造成较高的延迟。对于多数家用计算机来说,玩网络游戏时我们将发起连接的上限控制在100以内比较合理。
写在最后
大家在上网玩游戏的同时挂上一个下载程序,边玩游戏边下载,看似一个合理利用带宽的想法,却在现实生活中很难实现。其中就是因为玩游戏需要快速响应(比较低的延迟),而下载却会让网络的响应速度变慢,看似一对不可调和的矛盾,在技术人那里却变成了一种契机。而解决这个问题的方法(如FrstPacket等)充满了人性化的味道不外乎提高数据通过的优先级以及尽量对数据包“分流”和“限速”,看来IT世界还真是有趣。希望通过本文能让夫家对我们的网络世界有一个简单的了解,其实所有技术的原理都非常简单,非常的人性化。“科技以人为本”,难道不是么?