如何在局域網(wǎng)內(nèi)搶帶寬的圖文方法介紹
事情的起因是最近家里買了一臺60寸的智能電視,支持點播(VOD)功能,家里的網(wǎng)絡(luò)帶寬理論上只有4M,在播放的時候,就會占用大量網(wǎng)絡(luò)帶寬,導(dǎo)致我同時上網(wǎng)瀏覽網(wǎng)頁都很困難。
有沒有辦法給限制局域網(wǎng)內(nèi)某臺主機的流量?首先,還是得從TCP的原理說起。
TCP擁塞控制
TCP是個君子協(xié)議,在擁塞控制的設(shè)計(RFC 2851)中包括慢開始、擁塞避免、快重傳和快恢復(fù)4種算法。
擁塞窗口(cwnd)和接收端窗口(rwnd)二者的最小值確定了發(fā)送窗口的上限值,而實際上對于現(xiàn)今的網(wǎng)卡,接收端窗口的大小是可以很大的,也就是說,擁塞主要寄希望于擁塞窗口來控制,擁塞窗口直接決定了傳輸?shù)乃俾?。從上面這張圖可以看到:
慢開始增加到門限初始值的這段過程中,擁塞窗口的增長是比較快的。
之后的增長由指數(shù)式變成了保持線性緩慢增長,直到出現(xiàn)網(wǎng)絡(luò)擁塞超時。
超時以后重新慢開始的過程,但是門限值發(fā)生了改變,變成了擁塞發(fā)生值的一半大小。
為了改進上述擁塞控制算法的弊端,又加入了快重傳和快恢復(fù)算法??熘貍髦傅氖牵?/p>
對于msg1和msg2,接收端收到以后,就分別回復(fù)ack2和ack3,但是這時候msg3丟失了(或者由于網(wǎng)絡(luò)原因很久還未到達);
接收端又收到了msg4,那就可以接收下msg4,但是依然回復(fù)ack3(ack3依舊是意味著告訴發(fā)送端只收到了msg1和msg2);
發(fā)送端繼續(xù)發(fā)送msg5和msg6,可是接收端依然回復(fù)ack3;
但是發(fā)送端只要發(fā)現(xiàn)一連3個重復(fù)的ack3,就知道估計msg3丟失了,得重傳msg3了。
而快恢復(fù)算法是為了解決在發(fā)生網(wǎng)絡(luò)擁塞時,擁塞窗口一下子跌到谷底(為1),導(dǎo)致不能很快恢復(fù)網(wǎng)絡(luò)正常通信流量狀態(tài),所以做了一個改進——
在擁塞發(fā)生的時候,只是把擁塞窗口置為ssthresh+n×MSS(其中n表示收到重復(fù)的ack報文的個數(shù),MSS指的是最長報文段);
同時,這以后當(dāng)收到新的ack報文時,就將擁塞窗口置為ssthresh的值。
TCP協(xié)議在這樣的擁塞控制機制下保證了對質(zhì)量較差的網(wǎng)絡(luò)也有較好的適應(yīng)性,但是UDP協(xié)議就不具備這種擁塞控制機制(除非你在協(xié)議之上的應(yīng)用中自己設(shè)計),而流媒體往往是基于UDP來實現(xiàn)的,因為它更快、無連接,而且偶爾丟幀也可以接受。在這種爭奪帶寬的場景下,君子TCP就沒有辦法爭奪到較好的流量了。
多端口多連接
這是迅雷的主要做法之一,開啟多個端口,建立多個連接,靠這種簡單粗暴的方式來占取帶寬。
ARP欺騙
Google搜索局域網(wǎng)搶帶寬以后,映入眼簾的是P2P終結(jié)者這樣的“殺器”,它的原理就是基于ARP欺騙,即是說,通過ARP攻擊等使局域網(wǎng)內(nèi)其它機器產(chǎn)生大量本地盲包,減少對公用網(wǎng)絡(luò)資源的占用。
ARP(Address Resolution Protocol,地址解析協(xié)議)是獲取物理地址的一個TCP/IP協(xié)議。某節(jié)點的IP地址的ARP請求被廣播到網(wǎng)絡(luò)上后,這個節(jié)點會收到確認其物理地址的應(yīng)答,這樣的數(shù)據(jù)包才能被傳送出去。也就是說,在這個過程中,發(fā)送方用目標(biāo)IP地址去換取了接收方的MAC地址,之后MAC地址存放到本地的緩存中(在一定的生存期時間內(nèi))。
由于在局域網(wǎng)中是使用MAC地址進行傳輸?shù)?,因此P2P終結(jié)者就偽造這樣的一個ARP應(yīng)答,把P2P終結(jié)者所在的機器A的MAC地址告訴目標(biāo)機B(目標(biāo)機B在任意時候都可以接收ARP請求的應(yīng)答),讓目標(biāo)機以為本機才是網(wǎng)關(guān),這樣B接收后就會更新本地緩存,以后所有本該走到網(wǎng)關(guān)去的包都會從機器A走,這就是一個簡單的ARP欺騙的原理。
ARP欺騙是黑客常用的攻擊手段之一,ARP欺騙分為二種,一種是對路由器ARP表的欺騙;另一種是對內(nèi)網(wǎng)PC的網(wǎng)關(guān)欺騙。
MSS
在TCP的選項字段中,有一個是最大報文長度(MSS),在TCP建立連接的時候,雙方就要約定好這個數(shù)值,每一個報文段都希望盡可能大,這樣在帶寬有限的情況下,相同數(shù)量的報文段可以承載更多的信息,但是MSS是有限制的,限制的值=MTU-IP頭長度-TCP頭長度,所以對于以太網(wǎng)來說就是1500-20-20=1460
版權(quán)聲明:
本站所有文章和圖片均來自用戶分享和網(wǎng)絡(luò)收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系網(wǎng)站客服處理。