事情的起因是最近家里買了一臺(tái)60寸的智能電視,支持點(diǎn)播(VOD)功能,家里的網(wǎng)絡(luò)帶寬理論上只有4M,在播放的時(shí)候,就會(huì)占用大量網(wǎng)絡(luò)帶寬,導(dǎo)致我同時(shí)上網(wǎng)瀏覽網(wǎng)頁都很困難。
有沒有辦法給限制局域網(wǎng)內(nèi)某臺(tái)主機(jī)的流量?首先,還是得從TCP的原理說起。
TCP擁塞控制
TCP是個(gè)君子協(xié)議,在擁塞控制的設(shè)計(jì)(RFC 2851)中包括慢開始、擁塞避免、快重傳和快恢復(fù)4種算法。
擁塞窗口(cwnd)和接收端窗口(rwnd)二者的最小值確定了發(fā)送窗口的上限值,而實(shí)際上對(duì)于現(xiàn)今的網(wǎng)卡,接收端窗口的大小是可以很大的,也就是說,擁塞主要寄希望于擁塞窗口來控制,擁塞窗口直接決定了傳輸?shù)乃俾?。從上面這張圖可以看到:
為了改進(jìn)上述擁塞控制算法的弊端,又加入了快重傳和快恢復(fù)算法。快重傳指的是:
而快恢復(fù)算法是為了解決在發(fā)生網(wǎng)絡(luò)擁塞時(shí),擁塞窗口一下子跌到谷底(為1),導(dǎo)致不能很快恢復(fù)網(wǎng)絡(luò)正常通信流量狀態(tài),所以做了一個(gè)改進(jìn)——
TCP協(xié)議在這樣的擁塞控制機(jī)制下保證了對(duì)質(zhì)量較差的網(wǎng)絡(luò)也有較好的適應(yīng)性,但是UDP協(xié)議就不具備這種擁塞控制機(jī)制(除非你在協(xié)議之上的應(yīng)用中自己設(shè)計(jì)),而流媒體往往是基于UDP來實(shí)現(xiàn)的,因?yàn)樗臁o連接,而且偶爾丟幀也可以接受。在這種爭(zhēng)奪帶寬的場(chǎng)景下,君子TCP就沒有辦法爭(zhēng)奪到較好的流量了。
多端口多連接
這是迅雷的主要做法之一,開啟多個(gè)端口,建立多個(gè)連接,靠這種簡(jiǎn)單粗暴的方式來占取帶寬。
ARP欺騙
Google搜索局域網(wǎng)搶帶寬以后,映入眼簾的是P2P終結(jié)者這樣的“殺器”,它的原理就是基于ARP欺騙,即是說,通過ARP攻擊等使局域網(wǎng)內(nèi)其它機(jī)器產(chǎn)生大量本地盲包,減少對(duì)公用網(wǎng)絡(luò)資源的占用。
ARP(Address Resolution PRotocol,地址解析協(xié)議)是獲取物理地址的一個(gè)TCP/ip協(xié)議。某節(jié)點(diǎn)的IP地址的ARP請(qǐng)求被廣播到網(wǎng)絡(luò)上后,這個(gè)節(jié)點(diǎn)會(huì)收到確認(rèn)其物理地址的應(yīng)答,這樣的數(shù)據(jù)包才能被傳送出去。也就是說,在這個(gè)過程中,發(fā)送方用目標(biāo)IP地址去換取了接收方的MAC地址,之后MAC地址存放到本地的緩存中(在一定的生存期時(shí)間內(nèi))。
由于在局域網(wǎng)中是使用MAC地址進(jìn)行傳輸?shù)模虼薖2P終結(jié)者就偽造這樣的一個(gè)ARP應(yīng)答,把P2P終結(jié)者所在的機(jī)器A的MAC地址告訴目標(biāo)機(jī)B(目標(biāo)機(jī)B在任意時(shí)候都可以接收ARP請(qǐng)求的應(yīng)答),讓目標(biāo)機(jī)以為本機(jī)才是網(wǎng)關(guān),這樣B接收后就會(huì)更新本地緩存,以后所有本該走到網(wǎng)關(guān)去的包都會(huì)從機(jī)器A走,這就是一個(gè)簡(jiǎn)單的ARP欺騙的原理。
ARP欺騙是黑客常用的攻擊手段之一,ARP欺騙分為二種,一種是對(duì)路由器ARP表的欺騙;另一種是對(duì)內(nèi)網(wǎng)PC的網(wǎng)關(guān)欺騙。
MSS
在TCP的選項(xiàng)字段中,有一個(gè)是最大報(bào)文長(zhǎng)度(MSS),在TCP建立連接的時(shí)候,雙方就要約定好這個(gè)數(shù)值,每一個(gè)報(bào)文段都希望盡可能大,這樣在帶寬有限的情況下,相同數(shù)量的報(bào)文段可以承載更多的信息,但是MSS是有限制的,限制的值=MTU-IP頭長(zhǎng)度-TCP頭長(zhǎng)度,所以對(duì)于以太網(wǎng)來說就是1500-20-20=1460。
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注