「帶寬」的本質是什麼?
又是什麼決定了「帶寬」?web
互聯網上兩臺電腦要相互通訊,它們須要有一個物理鏈接,提供信號傳輸介質。這種物理層線路,常見的傳導材料有銅線和光纖,咱們經常使用的雙絞線是銅線,它傳輸的是電信號,光纖傳輸的是光信號,但並非說光纖對信號的傳播速度就比銅線更快。編程
不論是電信號仍是光信號,只要進入線路後,便可以進行快速的傳播,這個速度稱爲傳播速度,它的單位是「m/s」,即單位時間傳播的距離。傳播速度只與傳播介質有關,銅線中電信號傳播速度大約是2.3x10^8m/s,光纖中信號的傳播速度大約爲2.0x10^8m/s。服務器
這或許有點奇怪,光在真空中的傳播速度不是3.0x10^8m/s嗎?的確是,它不只僅只是可見光的傳播速度,也是全部電磁波在真空中的傳播速度,全部電磁波(包括可見光)在真空中的傳播速度是常數,便是光速。網絡
那爲何光纖中的光信號傳播速度要低一些呢?這是由於光纖在傳播光信號時,利用了光的全反射原理,因此光信號在光纖中實際傳播距離要大於光纖的長度。也就是說,看起來這段光纖長度只有1m,但這個光信號實際上可能傳播了2m或者3米甚至4米更多,也就是彎彎曲曲的傳播花了更多的時間才傳輸完這實際的1m,那速度天然是慢了點。函數
因而可知,不一樣的傳播介質中信號的傳播速度幾乎等於常量,恆定的,也就是說,不論數據發送裝置(網卡)以多快的發送速度讓數據以信號的形式進入物理線路,在物理線路中信號的傳播速度幾乎能夠認爲是同樣快的而且恆定的。那爲何又還要使用價格更昂貴的光纖,這涉及到一個信號衰減的問題。阿里雲
信號在傳播介質中的衰減,與傳播介質以及信號傳播方式有着密切的關係。好比咱們通常使用的雙絞線,傳輸距離只能達到100m,更長的距離就須要經過中繼器來延續信號,並且只能使用有限次的中繼器,每次中繼器轉發信號又會消耗一些發送時間。光纖利用了光的全反射原理,微細的光纖封裝在塑料套中,使得它可以彎曲而不影響光信號的傳播。光纖中光的傳導損耗比電信號在電線傳導的損耗低的多,它的傳輸距離通常在數公里以上,因此光纖通常被用做長距離的傳輸,跨越太平洋的海底就是用的光纜。spa
咱們通常說的100M帶寬,全稱應該是100Mbit/s,或者100Mbps,後面的bit/s常常省略。接口
若是數據要從主機進入線路,通常會通過如下這些環節。隊列
咱們所講的「帶寬」是指數據的發送數度,準確說又分爲「上行帶寬」和「下行帶寬」。上行帶寬,又稱出口帶寬,就是本地電腦發送數據到外部的速度,上傳文件的時候,本地可以以多塊的速度把文件上傳到遠程服務器,這就取決於本地的上行帶寬。下行帶寬,也稱爲入口帶寬,通俗的說就是下載速度。進程
不論是上行帶寬仍是下行帶寬,這些數據都是網卡發送和接收的,而它在實際中能有多塊的速度,取決於幾個因素。
這裏以上行帶寬,即本地把數據發送出去的發送速度爲例,這個發送速度能有多塊,有以下幾個因素:
限制這個「帶寬」其實是交換機,交換機能夠限制入口速度和出口速度。
不少web站點都是託管在諸如阿里雲等,它們會將咱們的服務器主機鏈接到交換機以接入互聯網。這時候咱們服務器擁有本身的IP地址,當用戶向這臺服務器請求數據後,數據會從服務器流經交換機到達指定的路由器最後進入用戶的電腦,而數據從服務器主機上發送出來,首先是發送到了交換機,交換機的須要進行存儲和轉發。也就是交換機從鏈接服務器的端口接收數據,存儲到交換機內部的高速緩衝隊列中,而後將其從鏈接路由器的端口發送出去,再通過路由器的轉發進入另外一個網絡,依次重複這個過程直到數據進入用戶的電腦。
若是全世界就只有這一臺服務器,用戶訪問就只這一臺服務器,那麼這部分數據流經每一個交換節點都會全心全意的作好轉發工做,此時數據在各節點的發送速度均可以達到理論上設備所能達到的最大值。但實際上每處交換節點都有會同時轉發來自其餘主機的數據,這些不一樣主機的數據都會匯進交換機的轉發隊列,交換機按照轉發隊列中的順序來交錯的發送這些來自不一樣主機的數據,因此單歷來自不一樣主機的數據而言,交換機將其中一個主機的數據轉發出去的速度,要小於這個主機將數據發到這個交換機的速度。
這個意思是說,比方,主機A會源源不斷的發送數據到交換機,主機B和C也會源源不斷的發送數據到交換機,它們會在交換機中排隊,交換機只能按照隊列來一個個處理,把主機A的數據發送出去,在後面排隊的主機B的數據就等到很着急,A的數據發完了,而後下一個再發送主機B的數據,而後再按照隊列順序,將主機C的數據發送出去。也就是說主機C的數據是等的最長的,對於排隊的這每一個主機數據來講,它們每一個都想最早最快的出門,可是門就這麼點大,總有個前後順序,那麼這個交換機的上行帶寬(出口帶寬)就是個關鍵。
顯然,這個交換機的出口帶寬是有限的,它毫無疑問是個槍手貨,而且互聯網運營商不會白白的搭建網絡,因此運營商在全部的基礎交換節點上設置關卡,其中交換機就會對每一個主機進行限速,也就是限制數據從你的主機流入交換機轉發隊列的速度,而只要流入交換機轉發隊列的數據,都會按照交換機的出口速度流入其餘網絡。這種關卡設置實際上等於限制了你的主機發送數據的速度,也就是限制了主機的出口帶寬(上行帶寬),而這種限制就是經過限制交換機對你主機的數據的接收速度,來將你的發送速度緊緊控制在手裏,由於數據鏈路層的流量控制是經過控制接收方來實現的。
若是一臺主機獨享10Mb帶寬,也就是10Mbit/s的數據發送速度,換算的話就是1250kb/s,這種狀況下,若是交換機的出口帶寬是100Mb,那麼交換機的設置應該保證來自廣播域內其餘主機的數據發送速度綜合不超過90Mbit/s,以保證該主機任什麼時候刻均可以以10Mbit/s的速度發送數據,這才叫獨享帶寬,它獨享的是交換機的一部分出口帶寬(上行帶寬)。爲了保證每臺主機的獨享帶寬,那麼這個交換機最多就只能容許10臺主機連到這個交換機。
以上所說的這些發送速度(帶寬)都是針對從發送端發出的全部數據而言,也就是上行帶寬,可是這些數據每每來自於主機的多個進程,並且也要發往五湖四海不一樣目的地,好比北京上海深圳三個用戶經過http同時下載主機上的數據文件,這些數據不分你我地夾雜在一塊兒從主機進入交換機,當它們進入某城市的交換節點時,你們就會分道揚鑣分別前往三個不一樣的目的地。從各個目的地的角度而言,單位時間接收到的數據必定比從服務器發出的數據少,這種從最終端體驗到的速度通常稱爲「下載速度」,準確說是下行速度,用戶端下載速度不管如何都小於服務器端的發送速度,在剛纔的例子中,即使是三個目的地的下載速度總和也必定小於服務器對這些數據的發送速度。
對於家用帶寬的限制也同樣,寬帶服務商會在你家接入的交換機上進行帶寬限制,好比安裝的是1Mb獨享帶寬,那麼交換機鏈接到你家電腦的端口,將會以1Mbit/s的速度接收來自服務器的數據,而後再發送給你的主機,不管服務器發送數據有多塊,也不管你的主機網卡是100Mb/s仍是更高,但實際上每秒可以接收多少,就是交換機每秒發送過來的1M的數據。固然,你的下載速度是受到運營商交換機的限制,可是要訪問的遠程站點的服務器的數據發送速度基本不變,由於它發出的數據不僅是到這一家,它會以它的最高速度源源不斷的發送數據往五湖四海,只不過當前你主機的交換機本身減慢了對它的接收速度,遠程服務器的發現你這裏的交換機接收速度比較慢,那麼它就會下降發往你這裏交換機的頻率,而以它本身最高的速度,優先把數據發往其餘地區其餘用戶的交換機。