[計算機網絡] 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}

按照地理上的區域位置來劃分,有如下幾個分類 :

  1. LAN : Local Area Network(局域網),比如連接家用路由器的所有設備就組成了一個LAN。
  2. WAN : Wide Area Network(廣域網),比如路由器經過PPPoE連接到的寬帶運營商的網絡環境。
  3. WLAN : Wireless LAN(無線局域網),比如WiFi或WAPI。

3 分組交換(Packet Switching) {#3.packet-switching}

計算機網絡沒有採用傳統的電話網絡的電路交換的通信方式,而是採用了分組交換。理解分組交換是理解計算機網絡最重要的一步(沒有之一)。

  1. 電路交換 : 核心原理是為通信雙方建立一條可靠的專用的鏈路,供雙方通信使用。
  2. 分組交換 : 核心原理是把原始數據拆分成一個個小的數據包,然後通過轉發轉發再轉發的方式在通信雙方傳遞。

也正是分組交換這種設計思想,才得以支撐互聯網的爆炸式增長。

4 性能指標 {#4.performance}

計算機網絡的性能表現在一下幾個指標上。

4.1 速率(Bit Rate) {#4.1.bit-rate}

速率是數據傳輸的比特率(bit rate): 單位時間(秒)內傳輸的bit(binary digit)數量。單位是bit/sb/s或者bps

  1. Kbps : 每秒103個bit。
  2. Mbps : 每秒106個bit。
  3. 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}

延遲是指數據從鏈路的一端到另一端所消耗的時間。延遲由幾個不同的部分組成 :

  1. 排隊延遲 : 數據幀節點上的排隊等待被處理時所消耗的時間。
  2. 處理延遲 : 節點處理數據幀時所消耗的時間。
  3. 發送延遲 : 發送數據幀所消耗的時間(比如一共100個bit,從發送第1個bit開始到第100個bit發送完畢的時間)。發送延遲 = 數據幀長度(bit) / 發送速率(bit/s)
  4. 傳播延遲 : 電磁波在信道中傳播所需的時間。傳播延遲 = 信道長度(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。那麼 :

  1. 發送延遲 = 10/1000 = 10ms
  2. 往返傳播延遲 = (20mk / 200000km/s) * 2 = 20ms
  3. 信道利用率 = 10ms / (10ms + 20ms) = 33.33%

5 分層的體系結構 {#5.layered-architecture}

在計算機領域解決複雜問題時,有兩個屢試不爽的手段 : 抽象分層。如今現實中的計算機網絡通常是如下的一個層次結構。

參考

首發於 : https://linianhui.github.io/computer-networking/00-overview/