網(wǎng)絡(luò)帶寬頭疼?ISP開(kāi)通帶寬

2021-03-10 16:37:45

放眼整個(gè)人類歷史,互聯(lián)網(wǎng)對(duì)人類文明的影響怎么評(píng)價(jià)也不為過(guò)的,而其發(fā)端不過(guò)是實(shí)驗(yàn)室的產(chǎn)物。所以,一開(kāi)始根本沒(méi)有考慮運(yùn)營(yíng)的問(wèn)題,如與質(zhì)量相關(guān)的帶寬、時(shí)延等QOS技術(shù)根本沒(méi)有考慮,由于設(shè)計(jì)的理念和先天不足,即使后期修補(bǔ)改進(jìn),也難以實(shí)施。比如最重要的協(xié)議之一:IP協(xié)議,網(wǎng)絡(luò)中如果評(píng)選最差員工獎(jiǎng),IP協(xié)議無(wú)疑拔得頭籌,這哥們的理念是盡力而為,聽(tīng)上去蠻不錯(cuò)的,實(shí)際上卻是毫不負(fù)責(zé)。不管IP包是丟失或者損壞,IP協(xié)議從不負(fù)責(zé),那出了問(wèn)題怎么辦?交給上會(huì)的傳輸層或應(yīng)用層,由別人來(lái)背黑鍋。想象一下XX快遞公司,把你寄的包裹弄丟了,或是損壞了,一概不管,一切居然要你自己負(fù)責(zé),重新發(fā)貨,那不把你氣得七竅生煙?

在談?wù)搸捛埃覀兪紫纫私鈳挼亩x,澄清一些問(wèn)題:

帶寬的定義:指在固定的時(shí)間可傳輸?shù)臄?shù)據(jù)量,單位是bps(bit per second)。首先要搞清楚單位問(wèn)題,帶寬肯定是以bit為單位的,比如100M帶寬,就是100M bit,而平常我們下載軟件所顯示的單位都是byte,1byte=8bit,這有個(gè)換算。常常有個(gè)無(wú)知而憤怒的聲音:媽的,我的寬帶是4M的,下載速率才400K左右,電信騙子!

再次,我們要明白ISP給我們開(kāi)通帶寬的真正含義:它僅僅是指從你家到本地ISP最近接入設(shè)備間線路的帶寬,一般這是你唯一可獨(dú)享的線路帶寬,除此這外,全世界任何一個(gè)ISP也無(wú)法承諾。這是真正和大眾有關(guān)且能控制的,其它很多問(wèn)題當(dāng)?shù)豂SP也無(wú)法解決的。

TCP/IP協(xié)議本來(lái)就是基于包交換的,換句話說(shuō),是一種帶寬共享的協(xié)議,只能是在線路上獨(dú)享帶寬,從來(lái)沒(méi)有說(shuō)能在網(wǎng)絡(luò)中獨(dú)享帶寬。10年前,ATM協(xié)議還有個(gè)虛電路的概念,理論上比IP協(xié)議能更好的承諾帶寬,可惜最后被IP廢成渣了,目前ATM僅在ADSL接入層還有應(yīng)用,大家常常要在ADSL貓里要設(shè)置的VPI,VCI就是ATM協(xié)議最重要的參數(shù),隨著光纖的普及,ATM將徹底消失了。

假設(shè)以10M帶寬為例,理論上下載速率可以達(dá)到10/8=1.25M,但實(shí)際上根本不可能,能達(dá)到1M就不錯(cuò)了,這是為什么呢?這其中的原因很復(fù)雜,大概有以下幾個(gè)方面:

一、協(xié)議開(kāi)銷

TCP/IP是一個(gè)協(xié)議族,當(dāng)然核心的是TCP和IP協(xié)議,讓我們像剝洋蔥一樣,一層層剝開(kāi)每一層協(xié)議:

TCP協(xié)議報(bào)文格式

由上可見(jiàn),TCP最小協(xié)議開(kāi)銷為5X32=160bit(20byte),

IP協(xié)議報(bào)文格式

由上可見(jiàn),IP最小協(xié)議開(kāi)銷為5X32=160bit(20byte),

Ethernet II幀格式

注此處單位是byte, Ethernet II類型以太網(wǎng)幀的最小長(zhǎng)度為64字節(jié)(6+6+2+46+4),最大長(zhǎng)度為1518字節(jié)(6+6+2+1500+4)。Ethernet II最小協(xié)議開(kāi)銷為6+6+2+4=18byte(144bit)

完整數(shù)據(jù)包

總結(jié)一下:所有協(xié)議的開(kāi)銷為:14+20+20+4=58byte,按以太網(wǎng)最小數(shù)據(jù)包(46byte)算:其協(xié)議開(kāi)銷占比58/104=56%,按最大數(shù)據(jù)包(1518byte)算,也就是最大效率:其協(xié)議開(kāi)銷占比58/1518=3.8%。當(dāng)然每秒在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包大小并無(wú)規(guī)律可言,由于應(yīng)用不同,也無(wú)法統(tǒng)計(jì)出一個(gè)大致平均的協(xié)議開(kāi)銷占比。其實(shí)這種算法并不嚴(yán)謹(jǐn),數(shù)據(jù)鏈路層也并不是只有以太網(wǎng)協(xié)議,比如ADSL所用的PPPOE,WIFI的802.11n等等,其中還少算了應(yīng)用層和物理層的開(kāi)銷,尤其是應(yīng)用層各種協(xié)議種類繁多(難于計(jì)算統(tǒng)計(jì)),另外,傳輸層UDP協(xié)議的開(kāi)銷也會(huì)更小一些。這些開(kāi)銷全部要占用網(wǎng)絡(luò)帶寬,就好比到郵局寄包裹,包裹也是要算重量和費(fèi)用的。

除此之外,為了維護(hù)物理鏈路的連接和各種協(xié)議和應(yīng)用軟件的連接,會(huì)定時(shí)地傳輸各種協(xié)議報(bào)文,類似心跳的報(bào)文,有時(shí)我們聯(lián)網(wǎng)后,并沒(méi)有任何上網(wǎng)動(dòng)作,但很多協(xié)議已經(jīng)開(kāi)始工作,有流量和連接產(chǎn)生,可以在DOS窗口下用netstat –a查看傳輸層的連接情況。比如,在思科的設(shè)備上,某些類型的端口(比如最常用的以太口)默認(rèn)實(shí)際只能使用75%的帶寬,剩下那25%是拿來(lái)給網(wǎng)絡(luò)間的各種協(xié)議和設(shè)備間的通訊用的,如果無(wú)法保證并預(yù)留以上系統(tǒng)應(yīng)用的帶寬,那設(shè)備都宕機(jī)或脫網(wǎng)了,帶寬再多又有什么用呢?

二、傳輸問(wèn)題

傳輸問(wèn)題也分為幾部分:

1. 接入線路問(wèn)題。

傳統(tǒng)的寬帶ADSL對(duì)線路的要求高,既有距離、介質(zhì)的要求,對(duì)電氣干擾也有要求,有一部分ADSL的線路是不達(dá)標(biāo)的,自然其帶寬也不夠。比如電話線的線徑,最初只有電話時(shí),線徑記得只有0.3或0.4毫米,這對(duì)通話質(zhì)量基本沒(méi)什么影響。但有了ADSL后,影響就大了,中國(guó)電信集團(tuán)要求采用0.5毫米的電話線,同時(shí)采用類似網(wǎng)線的雙絞線,以減少干擾。曾經(jīng)看見(jiàn)太平洋網(wǎng)的一篇首頁(yè)文章,居然認(rèn)為電話線太細(xì)造成中國(guó)帶寬不達(dá)標(biāo),真是外行的笑話,讓人無(wú)語(yǔ)。關(guān)于ADSL線路質(zhì)量是一個(gè)很專業(yè)的領(lǐng)域,線徑只是其中一個(gè)小小的指標(biāo)而已,還有諸如雙絞線或平行線方式,主電纜的質(zhì)量,開(kāi)線率等等指標(biāo)。同時(shí)ADSL經(jīng)過(guò)不斷升級(jí),各版本對(duì)線路質(zhì)量要求也不同。比如版本ADSL2反而比ADSL支持的線路距離要短,但帶寬增加不少。而線路質(zhì)量也只是帶寬問(wèn)題中的一小部分。以我在電信工作10幾年的經(jīng)驗(yàn),告訴大家一個(gè)最靠譜的辦法:在ADSL貓里面可以查看到2種速率,一種是ISP給你配置的帶寬(也就是你向ISP申請(qǐng)的帶寬,一般是1024的整數(shù)倍),另一種是實(shí)際適配的速率,這表示你家的ADSL線路實(shí)際能達(dá)到的帶寬。如果實(shí)際適配速率>配置速率,恭喜,你家的ADSL線路質(zhì)量很好,是達(dá)標(biāo)的。否則,你可以向ISP投訴,要求整改。僅對(duì)ADSL而言,其它任何測(cè)速方法全是扯蛋。由于ADSL貓的種類太多,查看的方法無(wú)法一一舉例,一般在網(wǎng)絡(luò)狀態(tài)里可以查看到。當(dāng)然這僅是針對(duì)你家到ISP這短短幾公里的線路而言,影響帶寬的因素遠(yuǎn)不止這些。

目前光纖入戶已經(jīng)開(kāi)始大量普及,衡量的指標(biāo)又完全不同,主要是光衰,一般

2. ADSL終端匹配。

ADSL的標(biāo)準(zhǔn)版本很多:ADSL,ADSL2,ADSL2+,ADSL貓和電信DSLAM之間就需要協(xié)商,匹配一個(gè)大家都支持的版本。電信的DSLMA設(shè)備都是頂級(jí)的設(shè)備制造商的產(chǎn)品,而ADSL貓的質(zhì)量就參差不齊了,在ADSL版本匹配上影響很大,相同條件下,速率不達(dá)標(biāo),也許只是換個(gè)貓,速率就達(dá)標(biāo)了,甚至速率會(huì)有成倍的提升。其中的原因是很復(fù)雜的,牽涉到硬件芯片和協(xié)議版本的兼容性,我也只是個(gè)門外漢。

3. 干線的傳輸

中國(guó)幅員遼闊,城市之間經(jīng)過(guò)成百上千公里的光纜連接,遠(yuǎn)非彈丸小國(guó)可比。在這幾百甚至上千公里的距離,只有光纜嗎?那你就想錯(cuò)了,光是有衰耗的,所以每隔一段距離都會(huì)有中繼站,重新放大光信號(hào)。同時(shí)為了更大的帶寬,也會(huì)設(shè)置光復(fù)用的傳輸設(shè)備。對(duì)于傳輸對(duì)網(wǎng)絡(luò)的影響,我想起一件事:當(dāng)時(shí)在新疆某市開(kāi)通骨干路由器到烏魯木齊的電路,一般最少是2條電路,走不同路由的干線光纜。在測(cè)試的時(shí)候發(fā)現(xiàn)(路由器和電路均無(wú)負(fù)載),一條電路的時(shí)延在10ms左右,另一條卻在20ms左右,難道是傳輸?shù)膯?wèn)題?但經(jīng)過(guò)傳輸專業(yè)人員的檢查,指標(biāo)正常,沒(méi)有任何問(wèn)題。仔細(xì)一問(wèn),原來(lái)第2條光纜的距離有近千公里(實(shí)際某市到烏魯木齊的距離不過(guò)300多公里),我很奇怪:光的速度不是30萬(wàn)公里/秒嗎?這點(diǎn)距離的時(shí)間差幾乎可以忽略。但實(shí)際上,每臺(tái)傳輸設(shè)備大部分都有光電轉(zhuǎn)換的過(guò)程,在經(jīng)過(guò)無(wú)數(shù)個(gè)中繼站和波分復(fù)用設(shè)備后,信號(hào)被大大的遲延了。由此可見(jiàn),這只是一個(gè)省內(nèi)的情況,對(duì)于全中國(guó)呢?一個(gè)北方的用戶如果訪問(wèn)南方的游戲服務(wù)器,那會(huì)增加多少時(shí)延呢?對(duì)于傳輸,我是外行,希望有專家能指教一二。

三、設(shè)備問(wèn)題

主要是網(wǎng)絡(luò)中各種設(shè)備,分2個(gè)方面:

1. 轉(zhuǎn)發(fā)性能問(wèn)題。數(shù)據(jù)包從設(shè)備入口進(jìn)來(lái),再?gòu)某隹谵D(zhuǎn)發(fā)出去,這之間的時(shí)間差就是設(shè)備轉(zhuǎn)發(fā)的時(shí)延,時(shí)延是帶寬的殺手。網(wǎng)絡(luò)工程師都知道,在衡量設(shè)備性能上,有背板帶寬和包轉(zhuǎn)發(fā)速率等主要參數(shù)。交換機(jī)是純硬件轉(zhuǎn)發(fā)的,是最快的,電信級(jí)的路由器也基本上是硬件轉(zhuǎn)發(fā)的,而防火墻就慢多了,它要對(duì)每個(gè)數(shù)據(jù)包進(jìn)行分析并控制,效率就差多了,所以在ISP骨干網(wǎng)里,是不會(huì)有防火墻的。

除了網(wǎng)絡(luò)設(shè)備外,光傳輸設(shè)備的影響也非常大,小到本地網(wǎng),大到省內(nèi),甚至國(guó)家骨干網(wǎng)。每臺(tái)設(shè)備都要經(jīng)歷光-電-光的轉(zhuǎn)換,時(shí)延也在一次次的累加。純光的運(yùn)算仍只在理論和實(shí)驗(yàn)室中。其中涉及到光網(wǎng)絡(luò)的協(xié)議開(kāi)銷,已不在我所熟悉的領(lǐng)域了。

2. 除了ip及以上協(xié)議,每個(gè)數(shù)據(jù)包在進(jìn)入一臺(tái)設(shè)備上時(shí)先要對(duì)數(shù)據(jù)鏈路層協(xié)議進(jìn)行解包,而在離開(kāi)設(shè)備時(shí)要重新封裝數(shù)據(jù)鏈路層協(xié)議,這都是造成時(shí)延的因素。在DOS下有個(gè)tracert命令,可以查看經(jīng)過(guò)的三層以上的設(shè)備(如路由器),但這其中根本不包括二層及以下的設(shè)備,像交換機(jī),網(wǎng)絡(luò)接入設(shè)備FTTH等,其它傳輸設(shè)備根本不支持ICMP協(xié)議,更無(wú)法體現(xiàn)出來(lái),其實(shí)我們隨便訪問(wèn)一個(gè)頁(yè)面,都要經(jīng)過(guò)10臺(tái)以上的路由器,而實(shí)際每個(gè)數(shù)據(jù)包經(jīng)過(guò)的設(shè)備要乘以N倍。

綜上所述,網(wǎng)絡(luò)中設(shè)備成百上千,每臺(tái)設(shè)備都不停地處理數(shù)據(jù)包,不斷地累加時(shí)延,而帶寬就只有2個(gè)參數(shù):數(shù)據(jù)量/時(shí)間,而時(shí)延無(wú)疑嚴(yán) 重影響了帶寬。

四、測(cè)速問(wèn)題

我們常常用軟件或在網(wǎng)站上測(cè)速,但在我看來(lái),這并不科學(xué),也不靠譜。本質(zhì)上所有的測(cè)速原理都是通過(guò)下載一個(gè)大的文件來(lái)計(jì)算帶寬的,是應(yīng)用層的,而我們的帶寬是純物理層的。比如用迅雷,它計(jì)算的下載速率是你下載的文件大小除以時(shí)間,這其中根本不管物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層,傳輸層和應(yīng)用層的所有協(xié)議開(kāi)銷,而且也不管PC中是否有其它程序同時(shí)也在占用網(wǎng)絡(luò)帶寬。真正科學(xué)的方法是從PC的網(wǎng)卡上抓取流量來(lái)計(jì)算帶寬,但這也僅僅解決了PC側(cè)的計(jì)算問(wèn)題。那么對(duì)端呢?測(cè)速網(wǎng)站的服務(wù)器帶寬是否夠用?假設(shè)服務(wù)器的帶寬只有100M,而同時(shí)有100個(gè)人在測(cè)速,那每個(gè)人測(cè)出的最大帶寬也不過(guò)只有1M,哪怕你一個(gè)人就有100M帶寬。另外服務(wù)器的硬件也可能是瓶頸,目前大部分服務(wù)器還是用傳統(tǒng)硬盤,當(dāng)有成百上千的用戶請(qǐng)求時(shí),即使帶寬足夠,但硬盤的傳輸速率也可能是瓶頸。其實(shí),以上都不是最主要的問(wèn)題,最主要的是這些測(cè)試都是測(cè)量PC到遠(yuǎn)端服務(wù)器的帶寬,這些服務(wù)器可能在北京,也可能在廣州,可能長(zhǎng)達(dá)幾千公里的距離。而ISP根本不可能給你承諾幾千公里距離的帶寬,它承諾的只是短短幾公里從你家到ISP設(shè)備間的帶寬。

其實(shí)簡(jiǎn)單地說(shuō),我們所感知的實(shí)際帶寬分2部分:接入帶寬和骨干網(wǎng)性能,接入帶寬就是ISP辦理業(yè)務(wù)時(shí)承諾的帶寬。對(duì)于ISP來(lái)說(shuō),接入帶寬隨著光纖的普及,將不會(huì)成為瓶頸了,骨干網(wǎng)的性能只能通過(guò)不斷擴(kuò)大帶寬,優(yōu)化網(wǎng)絡(luò)來(lái)解決。

而骨干網(wǎng)性能就是ISP骨干網(wǎng)的帶寬、容量和優(yōu)化情況,這就是大家所不了解的了。舉個(gè)最簡(jiǎn)單的例子:某年和某設(shè)備制造商技術(shù)員聊天,談到骨干傳輸帶寬,他說(shuō)某ISP正準(zhǔn)備擴(kuò)容新疆到北京的互聯(lián)網(wǎng)骨干帶寬,增加一條155M,我笑道:這么可憐的帶寬?要知道電信當(dāng)時(shí)到北京的帶寬已經(jīng)是40G了,就算是此ISP擴(kuò)容完,其骨干帶寬也只有電信的1%。就這么點(diǎn)可憐的帶寬,也因?yàn)楫?dāng)時(shí)此ISP老舊的國(guó)外設(shè)備難以和新的國(guó)產(chǎn)設(shè)備對(duì)接而久拖未決。當(dāng)然此ISP的寬帶價(jià)格比電信便宜了將近一半,很多老百姓覺(jué)得便宜而選擇了此ISP,但他們永遠(yuǎn)無(wú)法了解這些真相。所以常常有人說(shuō)某ISP的10M帶寬還不如另一ISP 2M的快,在中國(guó),論骨干網(wǎng)的性能,北方的聯(lián)通和南方的中國(guó)電信比其它ISP強(qiáng)出幾條街,其實(shí)這就是中國(guó)電信拆分前的那張網(wǎng)絡(luò)。

總之,對(duì)大眾來(lái)說(shuō),帶寬是不靠譜的測(cè)試和應(yīng)用上的感知,而真正理性分析后,會(huì)發(fā)現(xiàn)這是個(gè)非常復(fù)雜的問(wèn)題,即使羅列了以上因素,我仍然覺(jué)得遠(yuǎn)遠(yuǎn)不夠。只是希望大家能通過(guò)這篇文章,大家能理性地探討帶寬的問(wèn)題,牢騷和叫罵是不能解決問(wèn)題。也希望此文能拋磚引玉,和其它領(lǐng)域的專家一起探討,以便更全面地看待這個(gè)問(wèn)題。

知乎用戶:

補(bǔ)充幾個(gè)啊。

首先樓主沒(méi)有澄清帶寬和速率的問(wèn)題。這個(gè)問(wèn)題非常有意思。

比如我們買了10M的帶寬(大家都叫帶寬,我先借用一下,等一下做進(jìn)一步澄清),但網(wǎng)線用百兆以太網(wǎng)接入網(wǎng)絡(luò)的時(shí)候(可能是光纖也可能是銅線),我們的傳輸?shù)乃俾势鋵?shí)是100M的!你沒(méi)看錯(cuò),是100M的。但是你的電腦顯示出來(lái)的bps為什么頂多10M?是因?yàn)槟闶瞻臅r(shí)候是抽瘋似的一會(huì)兒發(fā)一個(gè)包,然后靜默一段時(shí)間。電腦上測(cè)試的是平均速率,而不是真實(shí)速率。

100M以太網(wǎng)只能按100M收發(fā),不可能降速率收發(fā)。這一點(diǎn)非常有趣,但也經(jīng)常把人搞暈。

接下來(lái)說(shuō)帶寬怎么回事。帶寬其實(shí)是運(yùn)營(yíng)商設(shè)備在某一級(jí)設(shè)備(一般是最后一跳)上,設(shè)置了限速。說(shuō)是限速,其實(shí)就是限制平均速度。再解釋一層就是他不停地計(jì)算發(fā)給你的byte數(shù),到了限定的值就緩存,緩存滿了就丟包。注意,如果對(duì)端以200M的速率向你發(fā)包,這個(gè)包基本上也能到你最后一跳的設(shè)備上,但設(shè)備會(huì)根據(jù)設(shè)置丟包。最后的平均值,就是你簽約的值。

下面才說(shuō)到服務(wù)器和你的電腦最后形成的一個(gè)基本傳輸速率。tcp連接建立的時(shí)候,雙方會(huì)根據(jù)“收包確認(rèn)ack”的成功率去調(diào)整速率。如果發(fā)端有能力限制(例如網(wǎng)卡是10M的或者其他程序占了網(wǎng)絡(luò)發(fā)包緩存),包在發(fā)端主機(jī)內(nèi)就被丟。如果發(fā)端上行限速,那么他發(fā)出來(lái)的包在他的網(wǎng)絡(luò)里就被丟了。否則可能在收方的最后一跳設(shè)備或者收端的主機(jī)內(nèi)丟掉。無(wú)論哪種丟包,最后都通過(guò)tcp的ack去判斷。如果發(fā)現(xiàn)丟的多,發(fā)端會(huì)降速,如果丟的少,發(fā)端會(huì)嘗試提高發(fā)送速率。

這就是我們看到的電腦顯示出來(lái)的網(wǎng)速的由來(lái)。有很多因素影響:發(fā)送端計(jì)算能力,網(wǎng)絡(luò)能力,以及繁忙程度;發(fā)送端下一跳的限速,發(fā)送端接入他的業(yè)務(wù)服務(wù)商的限速,網(wǎng)絡(luò)服務(wù)商網(wǎng)絡(luò)擁塞程度,接收端被網(wǎng)絡(luò)服務(wù)商的限速,接收端自己的網(wǎng)絡(luò)繁忙程度,接收端自己的網(wǎng)卡能力,計(jì)算能力,以及其他程序占用網(wǎng)絡(luò)程度,以及接收端自身處理數(shù)據(jù)的能力。

先寫這么多吧,細(xì)節(jié)上有不少不準(zhǔn)確的地方,后面有空完善一下。

答:

帶寬即速率,單位是bps(bit per second)

不明白什么叫電腦顯示速率?在windows系統(tǒng)中顯示的速率是你的電腦和網(wǎng)線另一端設(shè)備協(xié)商出來(lái)的,一般是100M或1G,但并沒(méi)多少用,因?yàn)镮SP提供的速率遠(yuǎn)低于此,這不是瓶頸。

談到限速,就比較復(fù)雜了,我也不是太清楚,從限制的位置看,大概有幾種吧:

1.端口限速,直接在用戶端口上限速,但這種辦法最笨,現(xiàn)在早不用了,成千上萬(wàn)的端口都要做數(shù)據(jù),用戶的端口也會(huì)更改,結(jié)果就是完全無(wú)法控制和管理。

2.賬號(hào)限速,原理不是很清楚,Radius大概是和BRAS聯(lián)動(dòng),并沒(méi)有作用到用戶端口上。

以上是限速的手段,但限速的算法可多了去了,單桶雙桶三桶,cisco很多算法是不公開(kāi)的,3層和2層設(shè)備又是不同的算法,更復(fù)雜,我學(xué)藝不精,無(wú)法深入討論。

另,TCP滑動(dòng)窗口,只是TCP層面上的,端到端協(xié)議上的,不是設(shè)備硬件的上的。

標(biāo)簽: 網(wǎng)絡(luò)帶寬

關(guān)閉
新聞速遞