歡迎來到數據傳輸工具包!

大家好!這一章我們要探討資訊——從你最新串流的影片到簡單的短訊——是如何從一個地方移動到另一個地方的。

想像一下你要把整個圖書館的書寄到世界各地。你肯定不會把它們逐一發送,而且你需要確保它們全部正確抵達!數據傳輸也是如此:我們將海量的數碼資訊分解,高效地發送出去,檢查是否有錯誤,並確保它們保持機密。

如果有些術語看起來很陌生,別擔心;我們會用簡單、易懂的例子為你拆解。讓我們開始吧!

第一節:數據拆解 – 封包與封包交換 (課程大綱 2.1)

1.1 為什麼我們要使用封包 (Packets)

當你發送一個大型檔案(例如相片或文件)時,電腦並不會把它當作一大塊數據一次過發送。它會將數據拆解成細小、易於管理的小塊,我們稱之為封包 (Packets)

比喻: 把封包想像成一個標準化的快遞小盒子,裡面裝著你完整訊息的一部分。

數據封包的結構

每個封包都需要特定的資訊,以便它知道目的地在哪裡,以及如何重新組合。一個封包包含三個主要部分:

  • 封包標頭 (Packet Header): 就像箱子上的地址標籤,它包含路由資訊。
  • 負載 (Payload): 這是實際的數據——訊息中有用的部分。
  • 結尾 (Trailer): 通常放在結尾,用於錯誤檢查(我們稍後會在第三節詳細說明!)。

封包標頭包含:

  • 目的地地址 (Destination Address): 封包要去的目的地(IP 地址)。
  • 來源地址 (Originator's Address): 封包來自哪裡。
  • 封包編號 (Packet Number): 序列編號(例如 50 個封包中的第 1 個、第 2 個等)。這對於稍後重新排序至關重要!

1.2 封包交換 (Packet Switching):流程

在網絡(如互聯網)中發送這些個別封包的系統稱為封包交換 (Packet Switching)

封包交換步驟
  1. 原始數據被拆解成封包
  2. 每個封包都會被賦予地址和序列編號(寫在標頭中)。
  3. 每個封包被發送到網絡上。關鍵在於,每個封包可以採取不同的路徑到達目的地。
  4. 路由器 (Routers) 控制每個封包的路徑,並選擇當下最快或最不擁擠的路徑。
  5. 由於它們採取不同路徑,封包抵達時可能會順序錯亂
  6. 最後一個封包抵達後,目標設備會使用封包編號(從標頭中提取)將封包重新排序,還原成原始訊息。

為什麼這樣做有好處? 如果某條路徑繁忙或斷開,只有少數封包會受到影響,而不是整個傳輸過程。這使得網絡既高效又可靠。

快速回顧:封包重點

數據被拆解為封包(含標頭、負載、結尾)。封包交換容許這些封包採取不同路徑,由路由器管理,並在抵達後必須進行重新排序

第二節:數據如何發送 – 傳輸類型 (課程大綱 2.1)

數據可以通過幾種不同的物理和邏輯方法進行傳輸。我們需要了解每一種方法的適用性、優點和缺點。

2.1 並行傳輸 vs. 串列傳輸

並行傳輸 (Parallel Data Transmission)

在並行傳輸中,多個位元 (bits) 同時被發送,使用多條獨立的電線或通道。

比喻: 一條有八條車道的高速公路,8 輛車(位元)可以並排同時行駛。

優點:

  • 在短距離內速度非常快
缺點:
  • 電線必須完美同步。在長距離傳輸時,會出現數據偏斜 (data skew)(位元抵達的時間稍微不同),導致錯誤。
  • 因為需要多條電線,成本較高。
適用性: 用於極短距離,例如電腦內部(如 CPU 與內部組件之間)。

串列傳輸 (Serial Data Transmission)

在串列傳輸中,位元一個接一個地發送(順序地),通過單一電線或通道。

比喻: 一條單線行車路,車輛(位元)必須排成一列依序通過。

優點:

  • 長距離傳輸可靠,因為不會出現數據偏斜。
  • 更便宜且簡單(所需的電線較少)。
缺點:
  • 在短距離內比並行傳輸慢。
適用性: 用於長距離傳輸及連接外部設備(例如 USB、以太網、連接電腦至打印機)。

常見錯誤警告! 儘管串列傳輸一次只發送一個位元,但現代的串列通訊(如 USB)因為數據傳輸速率極快,可以達到很高的速度。對於 IGCSE 考試,請記住串列傳輸的主要好處是長距離的可靠性

2.2 方向性傳輸模式

這描述了數據在兩個設備之間流動的方向。

單工 (Simplex)

數據只在一個方向流動
例子: 廣播電台或電視,或從電腦發送到傳統打印機的數據。

半雙工 (Half-Duplex)

數據可以在兩個方向流動,但不能同時進行。你必須等待對方設備完成發送,才能回復。
例子: 對講機。每次只能有一個人說話。

全雙工 (Full-Duplex)

數據可以同時在兩個方向流動
例子: 電話通話或寬頻互聯網連接,雙方可以同時說話/發送數據。

2.3 通用序列匯流排 (USB) 介面

通用序列匯流排 (Universal Serial Bus, USB) 是一種標準介面,用於將周邊設備(如滑鼠、鍵盤和硬碟)連接到電腦。

顧名思義,USB 使用的是串列數據傳輸

USB 介面的優點:

  • 這是一項國際標準,使其能與許多不同設備和製造商兼容
  • 新設備會自動被偵測(隨插即用,Plug and Play)。
  • 它能為設備供電(因此小型設備不需要額外的電源)。
  • 連接器體積小且耐用。

USB 介面的缺點:

  • 最大線材長度較短(通常約 5 米),若超過則需要訊號增強器。
  • 數據傳輸速率可能受限於所使用的 USB 版本。
  • 它使用主從系統 (master-slave system);電腦(主)管理連接,這有時會限制同時連接的數量。

記憶小貼士:方向模式

Simplex 想成簡單的單行道。
Half-Duplex 想成對講機(一次只能完成「一半」的雙向通訊)。
Full-Duplex 想成完整的電話對話(雙方同時交談)。

第三節:錯誤檢查 (課程大綱 2.2)

當數據傳輸時,特別是在長距離或嘈雜的通道(如 Wi-Fi)中,可能會因為干擾而受損。這會導致數據遺失(位元消失)、數據增加(多出位元)或數據改變(位元反轉,例如 1 變成了 0)。

我們必須使用方法在傳輸後偵測這些錯誤。

3.1 錯誤偵測方法

同位檢查 (Parity Check)

一種簡單的錯誤偵測方法,其中一個額外的位元,稱為同位位元 (parity bit),會被加入到一個數據位元組中。

系統事先約定使用偶同位 (Even Parity)奇同位 (Odd Parity)

  • 偶同位: 位元組中 1 的總數(包括同位位元)必須是偶數
  • 奇同位: 位元組中 1 的總數(包括同位位元)必須是奇數

例子: 如果數據是 10110010(有四個 1),且我們使用偶同位:
我們加入一個 0 作為同位位元 (10110010 0),以保持 1 的總數(四個)為偶數。

局限性: 同位檢查只能偵測到奇數個位元發生反轉的錯誤。如果兩個位元同時反轉(1 變 0,0 變 1),同位檢查依然正確,錯誤便無法被偵測到。

同位區塊/同位位元組:
為了克服上述局限,我們可以使用同位位元組,對一整塊數據(位元組陣列)進行同位檢查。

  • 為每一行計算同位位元(檢查行完整性)。
  • 為每一列計算額外的一行(即同位位元組)(檢查列完整性)。
  • 如果發生錯誤,系統通常可以利用失敗的行與列交叉點,準確定位到具體的位元。

校驗和 (Checksum)

校驗和是通過對數據塊中所有數據位元組進行數學加總而計算出來的。

過程:

  1. 發送方計算校驗和(數據的總和)。
  2. 校驗和隨數據塊一起發送。
  3. 接收方根據接收到的數據重新計算校驗和。
  4. 接收方將自己計算的校驗和與接收到的校驗和進行比較。
  5. 如果兩者匹配,數據通常是正確的。如果不匹配,則說明發生了錯誤。

你知道嗎?校驗和非常有效,因為隨機數據錯誤導致總和恰好相同的機率非常低。

回音檢查 (Echo Check)

這是一種非常簡單的方法,接收設備將接收到的數據發送回(回傳/Echo)發送方。

發送方隨後將回傳的數據與原始發送的數據進行比較。如果匹配,傳輸即成功。

缺點: 如果通訊線路非常嘈雜,錯誤可能發生在去程(到接收方)*和*回程(回音)上,這意味著回傳的數據可能意外地被「修正」回原始狀態,導致一種錯誤的安全感。

3.2 檢查位數 (Check Digits)(用於數據輸入)

檢查位數 (Check Digit) 是加在長數字(如編碼)末尾的一個單獨數字,用於偵測在人工數據輸入過程中出現的錯誤。

這種方法使用特定的計算(演算法)對前面的數字進行處理,以產生檢查位數。

檢查位數的應用例子:

  • ISBN(國際標準書號)
  • 條碼和 EAN 碼

如果你輸入其餘編碼錯誤,檢查位數的計算就會失敗,立即提醒你發生錯誤。

3.3 自動重發請求 (ARQ)

ARQ 是一種確保數據無誤接收的系統,通常與上述的一種偵測方法(如校驗和)配合使用。

ARQ 如何運作(步驟):

  1. 發送方發送數據封包。
  2. 接收方執行錯誤檢查(例如同位檢查或校驗和)。
  3. 如果檢查通過,接收方會發送一個正面確認 (ACK) 回給發送方。
  4. 如果檢查失敗,接收方會發送一個負面確認 (NACK) 回給發送方。
  5. 如果發送方收到 NACK,或者在特定的逾時 (timeout) 期間內沒有任何回應(封包可能徹底遺失),發送方會自動重新發送該封包

快速回顧:錯誤偵測重點

同位檢查計算 1 的數量。校驗和使用數學運算。回音檢查將數據發送回來。ARQ 使用 ACK、NACK 和逾時機制,確保在發生錯誤時重新傳輸。

第四節:保持數據機密 – 加密 (課程大綱 2.3)

4.1 加密的目的

加密的需求產生是因為通過網絡傳輸的數據可能會被攔截(數據攔截/黑客入侵)。如果敏感數據(如密碼或財務資訊)以純文字形式發送,任何人都可以閱讀。

加密 (Encryption) 是利用演算法和金鑰將數據(明文, plaintext)打亂,轉變為不可讀數據(密文, ciphertext)的過程。其目的是確保即使數據被攔截,對於未經授權的第三方來說也是毫無意義的。

4.2 對稱加密 (Symmetric Encryption)

這是最簡單的加密形式。

  • 它只使用一把私密金鑰來加密明文和解密密文。
  • 發送方和接收方必須擁有這把相同的私密金鑰。

比喻: 對稱加密就像用一把鎖鎖住盒子,然後你需要安全地把這把鎖的鑰匙分享給接收盒子的人。

問題: 挑戰在於如何安全地與對方分享這把金鑰而不被攔截。

4.3 非對稱加密 (Asymmetric Encryption)

這也被稱為公開金鑰加密,這種方法使用兩把數學相關的金鑰:公開金鑰 (Public Key) 和私密金鑰 (Private Key)。

運作方式:

  • 公開金鑰: 這把金鑰可以自由地分享給任何人。它用於加密訊息。
  • 私密金鑰: 這把金鑰必須由擁有者絕對保密。它是唯一能解密由其對應的公開金鑰所加密之訊息的金鑰。

例子: 如果 Alice 想發送祕密訊息給 Bob:

  1. Bob 發布他的公開金鑰(任何人都可以看到)。
  2. Alice 使用 Bob 的公開金鑰來加密她的訊息。
  3. Alice 發送加密後的訊息(密文)。
  4. 只有擁有匹配私密金鑰的 Bob,才能解密並閱讀該訊息。

優點: 這解決了金鑰分享的問題,因為用於加密的金鑰(公開金鑰)並不是解密所需的金鑰。私密金鑰永遠不會離開擁有者的保管範圍。

最後總結:對稱 vs. 非對稱

對稱: 同一把金鑰進行加密和解密(較簡單、較快,但金鑰分發有風險)。
非對稱: 公開金鑰加密,私密金鑰解密(較複雜,但在傳輸中高度安全)。