數據的網絡傳輸學習筆記

兩臺主機通信,數據從一臺主機傳到另一臺主機主要有以下三步工作:

1、主機A發送的數據進入線路

2、數據在線路中傳輸

3、數據從線路的另一端進入主機B中

其實第3步與第1步所做的事正好相反,先來看第1步中數據是怎麼流動的?這個過程主要經過了以下步驟:

1、應用程序將要發送的數據寫到進程的地址空間(用戶態內存區);

2、應用程序通過系統調用將數據從用戶態的內存區複製到內核維護的一段內核緩衝區中,由於內核緩衝區通常是有限的,所以這個過程需要排隊。內核緩衝區的數據可能來自於多個進程;

3、內核通知網卡控制器來取數據,網卡驅動器根據網卡驅動程序得到內核緩衝的地址,並將數據複製到網卡緩衝區,這個過程按連接兩端的內部總線寬度來複制,比如32位總線每次複製32位比特;

4、網卡緩衝區將數據發送到線路中,釋放緩衝區準備下一輪複製,這些數據在這步都會轉爲2進制,因爲只有2進制的數字信號纔可以在線路中傳輸。發送時,網卡會根據介質產生各種信號。

數據在線路中的傳播速度取決於傳播介質,光纖的速度快於銅線,一般接近光速。

並不是進入線路有多少數據,介質中就傳播多少數據,這裏有出口帶寬的限制。衆所周知,運營商在所有的基礎交換節點上會設置關卡,用於限制數據從主機流入路由器轉發隊列的速度,只要流入路由器轉發隊列的數據,都會按路由器的出口帶寬,流入其他網絡。這種關卡設置實際上限制了你的主機發送數據的速度,也就是限制了主機的出口帶寬。所以雖然主機發送數據的速度很快,但由於出口帶寬的限制,這些數據要分批發送出去。

這些數據不會直接到達目的地,而是要通過多次排隊轉發到達目的地,轉發之前可能要先排隊。如果兩主機在同一個城市或者接入的是同一個運營商,轉發的次數或許會少一點。如果城市不同,會進入骨幹網進行轉發;如果接入不同的運營商(電信或者網通),這些數據必須進入骨幹網再進入互聯互通網絡,由互聯互通網絡的交換機進行轉發。

什麼是帶寬

帶寬一般指出口帶寬或者入口帶寬,指的是路由器或者交換機接收數據的能力,往往受運營商控制,價格昂貴。如果拿高速公路來做比喻,帶寬類似調整公路的收費站,要知道收費人員也不是免費幹活的。

共享帶寬與獨享帶寬

共享帶寬,顧名思義,多臺主機共用一定量的帶寬。比如小區共享10M帶寬,如果只有一臺主機接入,這臺主機數據出口速度理論上可達到10Mbit/s,換算成字節是1.25MB/s,即便只有一臺主機接入,交換機對於共享帶寬也會限制最高峯值的,所以實際速度要低於1.25MB/s。如果多臺主機接入,這些主機輸出數據之和接近1.25MB/s,這些數據不分你我地夾雜在一起從主機進入路由器,分別前往不同的目的地。

如果使用的是獨享帶寬,交換機會以這個速度(比如1Mbit/s)來接收來自主機的數據。這個交換機上的數據都來自同一主機,當然這些數據也是要排隊的。

互聯互通

如果把互聯網比做高速公路,電信和網絡是兩條不相連的高速公路,兩大運營商早實現了互聯互通,但是帶寬少得可憐,所以如果你是網通用戶在下載資源的時候選擇網通服務站點下載,理論上速度會快點。

響應時間

響應時間=發送時間+傳播時間+處理時間

發送時間取決於帶寬=數據量/帶寬,比如發送100Mbit的數據,帶寬爲10Mbit/s,大約需要10s;

傳播時間取決於主機間的距離=傳播距離/傳播速度;

處理時間包括排隊轉發時間(包括運營商互聯互通的排隊轉發時間,骨幹網上的排隊轉發時間,交換機排隊轉發時間等)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章