[計算機網絡] 00 概述
- 2019 年 10 月 3 日
- 筆記
1969年11月美國國防部建立了一個名為ARPANET(Internet的雛形)的分組交換網絡,當前時間是2019年,50年過去了,如今的網絡已經融入了社會的方方面面,其重要性不言而喻。本系列博客專註於計算機網絡的核心概念和體系結構,並不涉及網絡編程的概念。
1 標準化 {#1.standardization}
計算機網絡由節點(node : 計算機、集線器、交換機或路由器)和連接它們的鏈路(link)組成。這些眾多的設備之間如何通信?其中離不開各種各樣的標準,標準的意義在於統一的規則,遵循相同標準的設備之間可以互聯互通,從而避免一些不兼容的問題。IETF(Internet Engineering Task Force)是負責標準化的一個重要機構,IP、TCP、UDP、DNS、HTTP等等眾多協議都是由IETF標準化的。
2 常見的分類 {#2.categories}
按照地理上的區域位置來劃分,有如下幾個分類 :
LAN
: Local Area Network(局域網),比如連接家用路由器的所有設備就組成了一個LAN。WAN
: Wide Area Network(廣域網),比如路由器經過PPPoE
連接到的寬帶運營商的網絡環境。WLAN
: Wireless LAN(無線局域網),比如WiFi或WAPI。
3 分組交換(Packet Switching) {#3.packet-switching}
計算機網絡沒有採用傳統的電話網絡的電路交換的通信方式,而是採用了分組交換。理解分組交換是理解計算機網絡最重要的一步(沒有之一)。
電路交換: 核心原理是為通信雙方建立一條可靠的專用的鏈路,供雙方通信使用。- 分組交換 : 核心原理是把原始數據拆分成一個個小的數據包,然後通過轉發、轉發、再轉發的方式在通信雙方傳遞。
也正是分組交換這種設計思想,才得以支撐互聯網的爆炸式增長。
4 性能指標 {#4.performance}
計算機網絡的性能表現在一下幾個指標上。
4.1 速率(Bit Rate) {#4.1.bit-rate}
速率是數據傳輸的比特率(bit rate): 單位時間(秒)內傳輸的bit(binary digit)數量。單位是bit/s
、b/s
或者bps
。
Kbps
: 每秒103個bit。Mbps
: 每秒106個bit。Gbps
: 每秒109個bit。
4.2 帶寬(Bandwidth) {#4.2.bandwidth}
帶寬原指信號的頻帶寬度,比如300Hz~600Hz, 此時的單位是赫茲(Hz)。
在計算機網絡中,帶寬通常指的是鏈路的最高速率,對,就是上面提到的# 4.1 速率(Bit Rate)。
4.3 吞吐量(Throughput) {#4.3.throughput}
吞吐量是單位時間(秒)內通過某個鏈路的實際的數據量。它的單位通常也是和# 4.1 速率(Bit Rate)是一樣的。
比如對於一個10Gb/s
的網絡,它的實際吞吐量可能是100Mb/s
,但是最高不可能超過10Gb/s
。
4.4 延遲(Delay) {#4.4.delay}
延遲是指數據從鏈路的一端到另一端所消耗的時間。延遲由幾個不同的部分組成 :
- 排隊延遲 : 數據幀在節點上的排隊等待被處理時所消耗的時間。
- 處理延遲 : 節點處理數據幀時所消耗的時間。
- 發送延遲 : 發送數據幀所消耗的時間(比如一共100個bit,從發送第1個bit開始到第100個bit發送完畢的時間)。發送延遲 =
數據幀長度(bit) / 發送速率(bit/s)
。 - 傳播延遲 : 電磁波在信道中傳播所需的時間。傳播延遲 =
信道長度(m) / 傳播速度(m/s)
。電磁波在真空中的的傳播速度是光速300000km/s
,在光纖中大概是200000km/s
。比如光纖200km
,那麼延遲大約1ms
=(200000km/s) / 200km
。
總延遲 = 排隊延遲 + 處理延遲 + 發送延遲 + 傳播延遲
。速率相同的情況下,延遲越低越好。在速率不同的情況下,有時候一個低速率 + 低延遲的網絡也優於一個高速率 + 高延遲的網絡。
4.5 往返時間(RTT) {#4.5.round-trip-time}
一次往返通信所需的時間,粗略的等於2個(# 4.4 延遲(Delay))的時間。
4.6 信道利用率(Channel Utilization) {#4.6.channel-utilization}
公式 : 信道利用率 = 發送延遲 / (發送延遲 + 往返傳播延遲)
。比如要發送10kb
的數據, 發送速率是1000kb/s
, 光纖長度20km
。那麼 :
- 發送延遲 =
10/1000
=10ms
。 - 往返傳播延遲 =
(20mk / 200000km/s) * 2
=20ms
。 - 信道利用率 =
10ms / (10ms + 20ms)
=33.33%
。
5 分層的體系結構 {#5.layered-architecture}
在計算機領域解決複雜問題時,有兩個屢試不爽的手段 : 抽象和分層。如今現實中的計算機網絡通常是如下的一個層次結構。
參考
首發於 : https://linianhui.github.io/computer-networking/00-overview/