🚀 學習筆記:通訊 (Communications, 9645) 🚀

各位未來的電腦科學家好!本章節至關重要,因為我們將從單台電腦的內部運作,轉向探討電腦之間如何進行「對話」——這正是整個互聯網的基石!別擔心「波特率 (baud)」或「非同步 (asynchronous)」這些術語聽起來很專業,我們會用簡單的日常類比來拆解它們。讓我們一起來看看數據是如何傳輸的吧!

3.14.1 通訊 (Communications)

3.14.1.1 通訊方法:數據如何移動

序列傳輸 (Serial) 與 平行傳輸 (Parallel)

當電腦向另一台設備發送數據(一系列位元,例如 10110010)時,主要有兩種選擇:

1. 平行傳輸 (Parallel Transmission):想像一條多車道高速公路。

  • 數據通過多條導線同時發送(例如,8 位元透過 8 條獨立導線同時傳送)。
  • 優點:在短距離內非常快速,因為一個完整的位元組可以在一個時鐘週期內傳送完畢。
  • 缺點:在長距離下,時序誤差會成為主要問題。這稱為偏移 (skew),即由於導線長度不完全相同,導致位元抵達的時間不一致。此外,它還需要更昂貴且笨重的線纜。

2. 序列傳輸 (Serial Transmission):想像一條單車道公路。

  • 數據透過單一導線或通道,一次一個位元地發送。
  • 優點:在長距離下非常可靠成本低廉。由於所有位元都走同一條路徑,不存在偏移風險。
  • 缺點:在極短距離下,傳輸速度比平行傳輸慢。

💡 現實生活中的例子
你每天都在使用序列傳輸!USB (通用序列匯流排) 就是一種序列技術。乙太網路線 (Ethernet) 也是序列傳輸。儘管它看起來較慢,但其在長距離傳輸下的可靠性,使其成為網絡連接和外部設備的首選。

重點總結:序列傳輸適用於長距離和追求可靠性的場合;平行傳輸則適用於短距離、內部的任務(例如從 CPU 向內部 RAM 發送數據)。

同步 (Synchronous) 與 非同步 (Asynchronous) 數據傳輸

確定了使用多少條導線後,我們需要決定如何控制數據傳輸的時間。

1. 同步傳輸 (Synchronous Transmission)

  • 數據以大型區塊或資料流形式發送。
  • 發送端和接收端共享一個共同的時鐘訊號 (clock signal) 或時間參考。接收端根據此時鐘精確知道下一個數據區塊何時到達。
  • 數據塊之間不需要額外的起始位元或停止位元,因此對於大量數據傳輸而言非常有效率
  • 類比:韻律泳隊。每個人都隨著同一個節拍器行動。

2. 非同步傳輸 (Asynchronous Transmission)

  • 數據以單個位元組或小數據包形式發送。
  • 發送端和接收端不共享共同時鐘。每一塊數據的時間安排都是獨立決定的。
  • 這需要額外的控制位元(起始位元 Start bit停止位元 Stop bits)來定義數據幀。
  • 類比:發送一條文字訊息。每則訊息都是獨立的,並附帶其自己的定址資訊。

起始位元與停止位元的目的

非同步通訊中,這些額外的位元對於接收端正確解讀數據至關重要:

  • 起始位元 (Start Bit):這是一個特殊訊號(通常為 0),在實際數據位元組之前發送。其目的是立即將接收端的計時機制(其內部時鐘)與發送端的時鐘同步。它告訴接收端:「一個新的數據位元組現在要進來了!」
  • 停止位元 (Stop Bit(s)):這是一個在數據位元組之後立即發送的訊號(通常為 1 個或多個位元)。
    • 它告訴接收端:「這個位元組結束了。」
    • 在舊式或較慢的系統中,它還提供必要的時間間隔,讓接收端處理剛收到的位元組,並準備迎接下一個潛在的起始位元。
💡 快速複習:序列/平行 vs. 同步/非同步

序列/平行 (Serial/Parallel) 決定了「使用多少條導線」(物理配置)。

同步/非同步 (Synchronous/Asynchronous) 決定了「如何控制時間」(邏輯結構)。

3.14.1.2 通訊基礎:效能衡量

當我們討論網絡效能時,會使用幾個關鍵術語來衡量速度、容量和延遲。

關鍵定義

掌握以下術語的精確定義非常重要:

1. 協定 (Protocol)
是一套共同約定的規則和標準,規範設備之間如何發送和接收數據。協定確保所有設備都能使用同一種「語言」。
例子:TCP/IP, HTTP。

2. 波特率 (Baud Rate)
在傳輸介質上,每秒發生的訊號事件(或符號變更)數量。
類比:紅綠燈每分鐘狀態改變的次數。

3. 位元率 (Bit Rate)
每秒傳輸的位元數 (bps)。這衡量的是數據移動的*實際*數量。
類比:每秒經過某一點的汽車實際數量。

4. 頻寬 (Bandwidth)
數據在網絡路徑上傳輸的最大速率。通常被形象化為「水管的大小」。
注意:通常以每秒位元數 (bps) 為單位,代表容量上限。

5. 延遲 (Latency)
在發出傳輸指令後,到數據傳輸開始前的時間延遲。本質上是第一個位元從源頭傳送到目的地所需的時間。
類比:快遞的送貨時間——從點擊「發送」到接收者開始收到數據之間的延遲。

波特率 vs. 位元率:關鍵區別

這是學生最容易混淆的地方。

核心區別在於:位元率可以高於波特率

  • 波特率衡量訊號*變更*了多少次狀態。
  • 位元率衡量實際承載了多少個*位元*。

為什麼會有差別?先進的編碼技術(如現代數據機所使用的技術)可以在單次訊號變更(符號)中編碼多於一個位元的數據。

例子:如果一次訊號變更承載 4 個位元(例如使用 16 種不同的電壓級別),且訊號每秒變更 1000 次(1000 Baud):

位元率 = 1000 (Baud) $\times$ 4 (每個訊號變更承載的位元數) = 4000 bps。

記住:始終專注於位元率作為衡量數據吞吐量的真實標準。如果未特別說明,1 Baud 通常等於 1 bps,但在高速通訊中,位元率往往遠高於波特率。

位元率與頻寬的關係

位元率直接與頻寬成正比

將頻寬想像為通訊通道的理論最大容量。位元率則是實際達到的速度。較大的頻寬允許較高的潛在位元率(每秒可傳輸更多數據)。如果你增加了頻寬(把「水管」加粗),你就能增加位元率(泵送更多數據通過)。

你知道嗎?
「Baud」一詞源自 Émile Baudot,他發明了早期形式的電報碼。這個術語的存在時間比現代數位通訊還要久遠!

✅ 通訊總結重點

  • 序列傳輸是網絡首選,因為它避免了長距離下的偏移 (skew)(時序誤差)。
  • 非同步傳輸需要起始/停止位元來管理每個位元組的時序。
  • 位元率 (bps) 是實際數據速度;波特率 (Baud Rate) 是訊號變更速度。位元率 $\ge$ 波特率。
  • 頻寬是容量上限,直接限制了可實現的位元率