如何在局域网内抢带宽

标签: 局域网 带宽 | 发表时间:2012-10-06 10:42 | 作者:
出处:http://www.iteye.com

事情的起因是最近家里买了一台60寸的智能电视,支持点播(VOD)功能,家里的网络带宽理论上只有4M,在播放的时候,就会占用大量网络带宽,导致我同时上网浏览网页都很困难。

有没有办法给限制局域网内某台主机的流量?首先,还是得从TCP的原理说起。

TCP拥塞控制

TCP是个君子协议,在拥塞控制的设计(RFC 2851)中包括慢开始、拥塞避免、快重传和快恢复4种算法。

如何在局域网内抢带宽

拥塞窗口(cwnd)和接收端窗口(rwnd)二者的最小值确定了发送窗口的上限值,而实际上对于现今的网卡,接收端窗口的大小是可以很大的,也就是说,拥塞主要寄希望于拥塞窗口来控制,拥塞窗口直接决定了传输的速率。从上面这张图可以看到:

  1. 慢开始增加到门限初始值的这段过程中,拥塞窗口的增长是比较快的。
  2. 之后的增长由指数式变成了保持线性缓慢增长,直到出现网络拥塞超时。
  3. 超时以后重新慢开始的过程,但是门限值发生了改变,变成了拥塞发生值的一半大小。

为了改进上述拥塞控制算法的弊端,又加入了快重传和快恢复算法。快重传指的是:

  1. 对于msg1和msg2,接收端收到以后,就分别回复ack2和ack3,但是这时候msg3丢失了(或者由于网络原因很久还未到达);
  2. 接收端又收到了msg4,那就可以接收下msg4,但是依然回复ack3(ack3依旧是意味着告诉发送端只收到了msg1和msg2);
  3. 发送端继续发送msg5和msg6,可是接收端依然回复ack3;
  4. 但是发送端只要发现一连3个重复的ack3,就知道估计msg3丢失了,得重传msg3了。

而快恢复算法是为了解决在发生网络拥塞时,拥塞窗口一下子跌到谷底(为1),导致不能很快恢复网络正常通信流量状态,所以做了一个改进——

  1. 在拥塞发生的时候,只是把拥塞窗口置为ssthresh+n×MSS(其中n表示收到重复的ack报文的个数,MSS指的是最长报文段);
  2. 同时,这以后当收到新的ack报文时,就将拥塞窗口置为ssthresh的值。

TCP协议在这样的拥塞控制机制下保证了对质量较差的网络也有较好的适应性,但是UDP协议就不具备这种拥塞控制机制(除非你在协议之上的应用中自己设计),而流媒体往往是基于UDP来实现的,因为它更快、无连接,而且偶尔丢帧也可以接受。在这种争夺带宽的场景下,君子TCP就没有办法争夺到较好的流量了。

多端口多连接

这是迅雷的主要做法之一,开启多个端口,建立多个连接,靠这种简单粗暴的方式来占取带宽。

ARP欺骗

Google搜索局域网抢带宽以后,映入眼帘的是P2P终结者这样的“杀器”,它的原理就是基于ARP欺骗,即是说,通过ARP攻击等使局域网内其它机器产生大量本地盲包,减少对公用网络资源的占用。

 

ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议。某节点的IP地址的ARP请求被广播到网络上后,这个节点会收到确认其物理地址的应答,这样的数据包才能被传送出去。也就是说,在这个过程中,发送方用目标IP地址去换取了接收方的MAC地址,之后MAC地址存放到本地的缓存中(在一定的生存期时间内)。

由于在局域网中是使用MAC地址进行传输的,因此P2P终结者就伪造这样的一个ARP应答,把P2P终结者所在的机器A的MAC地址告诉目标机B(目标机B在任意时候都可以接收ARP请求的应答),让目标机以为本机才是网关,这样B接收后就会更新本地缓存,以后所有本该走到网关去的包都会从机器A走,这就是一个简单的ARP欺骗的原理。

ARP欺骗是黑客常用的攻击手段之一,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。

如何在局域网内抢带宽

MSS

在TCP的选项字段中,有一个是最大报文长度(MSS),在TCP建立连接的时候,双方就要约定好这个数值,每一个报文段都希望尽可能大,这样在带宽有限的情况下,相同数量的报文段可以承载更多的信息,但是MSS是有限制的,限制的值=MTU-IP头长度-TCP头长度,所以对于以太网来说就是1500-20-20=1460。

文章系本人原创,转载请注明作者和出处( http://www.raychase.net/

注:本博客已经迁移到个人站点  http://www.raychase.net/ ,欢迎大家访问收藏,本ITEye博客在数日后将不再更新。

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [局域网 带宽] 推荐:

如何在局域网内抢带宽

- - ITeye博客
事情的起因是最近家里买了一台60寸的智能电视,支持点播(VOD)功能,家里的网络带宽理论上只有4M,在播放的时候,就会占用大量网络带宽,导致我同时上网浏览网页都很困难. 有没有办法给限制局域网内某台主机的流量. 首先,还是得从TCP的原理说起. TCP是个君子协议,在拥塞控制的设计(RFC 2851)中包括慢开始、拥塞避免、快重传和快恢复4种算法.

Java局域网远程控制

- - ITeye博客
JOptionPane.showMessageDialog(null, "被控制端已断开连接,或网络异常!");. JFrame frame = new JFrame("远程控制");. String ip = JOptionPane.showInputDialog("请输入远程连接IP");. ip = JOptionPane.showInputDialog("请输入远程连接IP");.

Nginx带宽控制

- - 火丁笔记
有个老项目,通过 Squid 提供文件下载功能,利用  delay_parameters 实现带宽控制,问题是我玩不转 Squid,于是盘算着是不是能在 Nginx 里找到类似的功能. 好消息是 Nginx 提供了  limit_rate 和  limit_rate_after,举个例子来说明一下:.

百度和谷歌:局域网战胜互联网

- rainboat - 月光博客
  5年前,也就是2006年04月,百度李彦宏曾经预言,“5年以后,Google和百度之间的关系是百度一枝独秀,从市场份额来说,大家很难看到Google了.   5年后的今天,CNZZ统计,Google搜索引擎在中国的使用率和占有率已经低至10%,而百度则高达76%,李彦宏的预言从某种角度上被验证了.

Linux 3.1 内核将支持无线局域网唤醒

- bamerl - Wow! Ubuntu
Linux 操作系统早已支持局域网唤醒 (WOL) ,而下一版本的 Linux 3.1 Kernel 系统内核将会引入无线局域网唤醒,简称 WWOL. 和有线版本类似,无线局域网唤醒可以让系统在进入挂起状态 (ACPI S3) 或者另一种低功耗状态的同时继续保持无线连接处于开启状态,而一旦接到用户的特定操作,或者从AP断开连接,就会将系统唤醒,并恢复到原始状态.

Linux 3.1内核将支持无线局域网唤醒

- longman - cnBeta.COM
Linux操作系统早已支持局域网唤醒(WOL),而下一版本的Linux 3.1 Kernel系统内核将会引入无线局域网唤醒,简称WWOL. 和有线版本类似,无线局域网唤醒可以让系统在进入挂起状态(ACPI S3)或者另一种低功耗状态的同时继续保持无线连接处于开启状态,而一旦接到用户的特定操作,或者从AP断开连接,就会将系统唤醒,并恢复到原始状态.

各种打不开,属于局域网时代的“Loading”T恤

- Vendi - 理想生活实验室
虽然各种主流媒体一直宣传“我们大力发展网络事业”乱七八糟的,事实上大家都知道,中国不仅网速在全球排名后段班,而且各种和谐啊打不开的事情也比比皆是,因此经常我们就只能看到不断的“Loading”、“Loading”……但网站就是打不开. 这下我们至少有个发泄的渠道了,把“Loading”图样做到衣服上,让衣服代替我们时而想摔鼠标的冲动.

局域网共享一键修复工具(支持win7)

- TENTiN - 软件志
一、局域网共享一键修复工具: 相信大家肯定遇到过局域网无法共享的问题,相信这款局域网共享一键修复工具能够帮上小忙,且支持win7. 很多时候使用了各种方法设置,我们都无法实现局域网共享,的确是这样,感觉会被搞得一头雾水,相信这款小工具能够帮上大家的忙. 二、局域网共享一键修复工具安装及简单使用: 1、下载及安装:下载后解压文件到任意文件夹,因为是绿色软件,所以无需安装,直接运行文件夹内的主程序就能启动该软件; 2、轻松修复局域网的共享问题: 按照软件主界面所显示要求的五点要求完成局域网修复的基本工作,然后按任意键就能开始修复.

Linux 下查看局域网内所有主机IP和MAC

- - 操作系统 - ITeye博客
用nmap对局域网扫描一遍,然后查看arp缓存表就可以知道局域内ip对应的mac了. nmap比较强大也可以直接扫描mac地址和端口. 执行扫描之后就可以 cat /proc/net/arp查看arp缓存表了. 进行ping扫描,打印出对扫描做出响应的主机:  . 仅列出指定网络上的每台主机,不发送任何报文到目标主机: .

[来自异次元] LogMeIn Hamachi – 免费的虚拟局域网工具解决方案 (实现远程游戏局域网联机等)

- Chinaxingwei - 异次元软件世界
在04、05年那阵,笔者沉迷于《游戏王》这个游戏,其中某个PC版本只提供了局域网联机功能. 而当时的浩方之类的游戏平台也没有如今成熟,因此,一个虚拟局域网软件便是必须的了. 那个时候所用的软件叫做VNN,个人免费虚拟局域网软件,连接稳定,速度超赞……结果没过几年,做VNN的公司放弃了个人用户,转而专供企业客户.