歡迎來到互聯網:網絡核心概念 (9645)
你好!在這個關鍵的章節中,我們將從編程概念轉向令人興奮的網絡與網絡安全 (Networking and Cyber Security) 領域。我們將深入探討互聯網的實際運作方式——其基本架構、定址系統,以及讓全球數十億設備能夠順暢通訊的重要協定。 理解互聯網不僅僅是理論,它是現代計算機科學的基石。讓我們開始吧!
1. 互聯網結構與數據傳輸 (3.14.3)
1.1 分組交換與路由器 (Packet Switching and Routers)
互聯網並非單一實體;它是一個由無數個相互連接的網絡所組成的龐大網絡。為了處理流經其中的海量數據,互聯網使用了一種稱為分組交換 (Packet Switching) 的機制。
什麼是分組交換?
想像一下,你想寄一封很長的信(你的數據)到世界各地。與其將整封信塞進一個沉重的信封裡發送,不如將它拆分成許多細小、便於處理的明信片(數據包,即 Packets)。
- 定義: 分組交換將數據拆解為細小且易於管理的區塊,稱為數據包 (Packets)。
- 這些數據包會被獨立發送到網絡中,它們可能會採取不同的路徑,最後在目的地重新組合。
比喻:試想舊式的電話通訊(電路交換,Circuit Switching),你必須全程佔用一條專用線路;而分組交換則是發送多個獨立的信息,共享網絡資源,從而大幅提升效率!
路由器的角色
如果數據包走不同的路徑,是誰在指揮它們呢?這就是路由器 (Router) 的工作。
- 路由器是專門用來連接不同網絡(例如將你的家居 Wi-Fi 連接到互聯網服務供應商的網絡)的設備。
- 它們會讀取每個傳入數據包中的目的地地址 (Destination Address)。
- 透過複雜的路由表,它們能為該數據包決定最佳路徑(最有效率的下一跳),確保其最終到達目的地。
1.2 數據包的結構
為了讓數據包能找到路並成功重新組合,它必須攜帶重要的資訊(即元數據,Metadata),連同實際的數據內容(即有效載荷,Payload)。
一個標準互聯網數據包的主要組成部分包括:
- 來源地址 (Source Address): 發送設備的 IP 地址。
- 目的地地址 (Destination Address): 接收設備的 IP 地址。
- 數據包序號 (Packet Sequence Number): 由於數據包可能會亂序到達,此編號會告訴接收設備該數據包的原始位置,以便正確重建數據。
- 生存時間 (TTL - Time to Live): 一個計數器,用於限制數據包可以經過的跳數(路由器數量)。如果 TTL 歸零,路由器會丟棄該數據包,防止數據包在網絡中無限循環(這是常見需避免的錯誤!)。
- 有效載荷 (Payload): 實際傳輸的數據片段(例如網頁的一部分或電子郵件的一部分)。
- 錯誤檢測/糾正資訊: 接收者用於檢查數據包是否完整且未受損的數據(如校驗和,Checksum)。
1.3 路由是如何實現的?
路由是選擇網絡路徑以發送網絡流量的過程。
當路由器收到一個數據包時,它會查閱內部路由表 (Routing Table) 中的目的地 IP 地址。路由表包含目的地網絡與應發送到的下一個路由器(即「下一跳,Next Hop」)之間的對應關係。這個過程會逐跳重複,直到數據包到達目的地設備所在的本地網絡為止。
重點重溫:數據包要點
路由是透過路由器讀取數據包標頭中的目的地地址來決定下一跳,並利用生存時間 (TTL) 計數器來防止無限循環。
2. 互聯網上的命名與定址 (3.14.3, 3.14.4.3, 3.14.4.4)
當你想造訪 www.google.com 時,你輸入的是名稱,但計算機之間是用數字進行通訊的。本節將解釋這些名稱與數字如何協作。
2.1 統一資源定位符 (URLs) 與域名
統一資源定位符 (URL) 是在互聯網上下文中,用於定位資源(如網頁或文件)的人類可讀地址。
URL 範例:https://www.oxfordaqa.com/cs/index.html
域名與 FQDN
- 域名 (Domain Name) 是識別網站的唯一名稱(例如 oxfordaqa.com)。
- 完全限定域名 (FQDN) 包含主機名稱與域名,指定了資源的確切位置,並以最後一個點結尾(但在瀏覽器中通常會省略)。
- 範例: www.oxfordaqa.com. (www 是主機,oxfordaqa 是二級域名,com 是頂級域名)。
域名的組織方式
域名是層級化的,並由右至左組織:
- 根域 (Root): (隱形的頂層)。
- 頂級域名 (TLD): 例如 .com, .org, .uk。
- 二級域名: 例如 google.com 中的 google。
- 主機名稱 (子域名): 例如 www 或 mail。
2.2 域名系統 (DNS)
域名系統 (DNS) 的核心目的是將人類可讀的 FQDN 轉換為機器可讀的 IP 地址。
比喻:DNS 是互聯網的電話簿。你查閱某人的名字(域名)以找到他們的電話號碼(IP 地址)。
DNS 如何透過域名伺服器運作
- 使用者在瀏覽器中輸入 FQDN(例如 www.example.com)。
- 設備向域名伺服器 (DNS Server) 發送請求。
- 如果本地 DNS 伺服器不知道該 IP 地址,它會查詢其他伺服器(從根伺服器開始),直到找到該域名的授權伺服器。
- 授權伺服器會返回與該 FQDN 對應的 IP 地址。
- IP 地址返回到用戶的設備,讓設備能夠直接與該網頁伺服器通訊。
2.3 IP 定址 (3.14.4.3)
IP 地址 (Internet Protocol address) 是分配給參與計算機網絡的每個設備的唯一數字標籤。
網絡識別碼 vs 主機識別碼
IP 地址分為兩部分:
- 網絡識別碼 (Network Identifier): 識別該設備所屬的特定網絡。同一個本地網絡中的所有設備共享此部分。
- 主機識別碼 (Host Identifier): 識別該網絡中的特定設備(主機)。這在該網絡中的每個設備都必須是唯一的。
範例:如果你的 IP 是 192.168.1.50,可能 192.168.1 識別你的家庭網絡,而 50 識別你的手提電腦。
子網掩碼 (Subnet Mask) 的角色
計算機如何知道哪部分是網絡,哪部分是主機?它使用子網掩碼。
子網掩碼是用於「遮蓋」IP 地址的數字。透過執行按位與 (bitwise AND) 運算,設備可以立即分離出 IP 地址中的網絡識別碼部分。
IPv4 與 IPv6
- IPv4 (IP 第 4 版): 使用 32 位元,通常顯示為四個以點分隔的十進制數字(例如 192.168.1.1)。它提供約 43 億個唯一地址。
- IPv6 (IP 第 6 版): 使用 128 位元,提供幾乎無限數量的唯一地址。
為什麼要引入 IPv6?
由於連接到互聯網的設備數量龐大(手機、物聯網設備等),世界上的 IPv4 地址已經用完了。IPv6 是確保互聯網持續增長與功能性的必要條件。
可路由與不可路由的 IP 地址
- 可路由 IP 地址 (公共 IP): 在全球互聯網上是唯一的。由 ISP 分配,供路由器在世界各地的不同網絡之間傳導數據包。
- 不可路由 IP 地址 (私有 IP): 保留用於私有網絡(如你的家庭或學校區域網絡 LAN)。它們在公共互聯網上不可見,也不能直接路由。它們允許內部設備進行通訊,無需每個設備都有全球唯一的地址(這節省了寶貴的公共地址)。
2.4 互聯網註冊管理機構
互聯網註冊管理機構 (Internet Registries)(如 ICANN、IANA 和地區性互聯網註冊機構)是管理全球 IP 地址與域名分配的重要機構。
它們確保每個分配的 IP 地址和域名都是全球唯一的,防止衝突並維持互聯網結構化的組織。
3. 傳輸控制協定/互聯網協定 (TCP/IP) 模型 (3.14.4)
通訊需要規則。在互聯網上,這些規則稱為協定 (Protocols)。最基礎的協定集是 TCP/IP 堆疊 (Stack),它規定了數據如何被封裝、定址、發送及接收。
3.1 為什麼要使用協定分層?
像 TCP/IP 這樣的網絡協定採用分層結構,主要基於以下原因:
- 分解與簡化: 複雜的網絡任務(例如發送文件)被分解為更小、更簡單、獨立的任務,由不同層級處理。
- 標準化與互操作性: 每一層只負責其特定功能,允許開發者創建兼容的硬件與軟件,而無需同時考慮整個堆疊。
- 模組化: 如果某一層的技術發生變化(例如從銅線升級為光纖),只需要更新該特定層的協定,其他層級不受影響。
比喻:試想蓋房子。基礎層 (Foundation) 負責地基,框架層 (Frame) 負責牆壁等。每一層都有特定的規則,且不會干擾其他層。
3.2 TCP/IP 堆疊的四個層級
TCP/IP 堆疊通常描述為四個層級,從頂層(最靠近用戶)到最底層(最靠近物理硬件):
-
應用層 (Application Layer):
- 角色: 直接為用戶的應用程序(如網頁瀏覽器或郵件客戶端)提供服務。
- 此處使用的協定包括 HTTP, FTP, SMTP, POP3, IMAP 等。
-
傳輸層 (Transport Layer) (TCP 或 UDP):
- 角色: 管理端對端的連線。它將數據拆分為區段 (Segments)(在 TCP 中),並確保數據傳輸的可靠性(正確順序、無遺失)或快速但不可靠的傳輸(在 UDP 中)。
- TCP (傳輸控制協定) 負責重組數據包並確認成功送達。
-
互聯網層 (Internet Layer) (IP):
- 角色: 處理定址與路由。這是使用 IP 地址確保數據包到達正確目的地網絡的地方。
- 此處的主要協定是 IP (互聯網協定)。路由器主要在此層運作。
-
連結層 (Link Layer) (網絡存取層):
- 角色: 負責同一本地網絡區段中設備之間的數據物理傳輸(例如處理 Wi-Fi 或乙太網電纜)。
- 此層使用 MAC 地址。
3.3 Sockets 與 MAC 地址
Socket 的角色
在 TCP/IP 堆疊(特別是傳輸層)中,Socket 定義了通訊的終點。
一個 Socket 由 IP 地址 與 端口號 (Port Number) 的組合(IP:Port)來定義。這確保了數據不僅到達正確的計算機(IP 地址),還能到達該計算機上運行的正確*應用程序*(端口號)。
範例:如果你造訪網站,IP 地址將數據送達該伺服器,而端口號 80 (HTTP) 或 443 (HTTPS) 確保數據送到網頁伺服器軟件。
MAC 地址的角色
MAC (媒體存取控制) 地址 是永久嵌入在設備網絡介面卡 (NIC) 中的唯一物理地址。
如果說 IP 地址處理不同網絡之間的路由(第 3 層),那麼 MAC 地址處理的則是同一本地網絡區段內的通訊(連結層,第 2 層)。
記住: IP 地址就像郵寄地址(邏輯的,會改變),而 MAC 地址就像汽車的引擎序號(物理的,通常是永久的)。
4. 標準應用層協定 (3.14.4.2)
這些協定位於 TCP/IP 堆疊的頂端,定義了諸如瀏覽、郵件和文件共享等常見互聯網服務的特定規則。
4.1 網頁通訊:HTTP 與 HTTPS
用於檢索和顯示網頁的核心協定:
- HTTP (超文本傳輸協定): 瀏覽器從網頁伺服器檢索網頁時使用的標準協定。
- 網頁伺服器角色: 儲存網頁,並在瀏覽器請求時提供它們(通常以文字形式)。
- 網頁瀏覽器角色: 使用 HTTP/HTTPS 檢索網頁及其所有關聯資源(圖片、腳本),然後將其渲染 (Render)(顯示)給用戶。
- HTTPS (安全超文本傳輸協定): 這是 HTTP 的安全版本。它使用 SSL/TLS 加密來確保通訊通道的安全,保護密碼和信用卡資訊等敏感數據。
4.2 文件傳輸與遠端管理
- FTP (文件傳輸協定): 用於在 FTP 客戶端與 FTP 伺服器之間傳輸文件。存取可以是匿名的(公共文件)或經身份驗證的(需要用戶名和密碼)。
- 關於 FTP 安全性的註記: FTP 因安全風險而逐漸被淘汰,因為它以明文方式傳輸數據(包括密碼)。它正被諸如 SFTP (安全文件傳輸協定) 等使用加密的替代方案所取代。
- SSH (安全外殼協定): 用於安全的遠端管理。它允許用戶透過加密連線安全地登入遠端計算機並執行指令。
4.3 電子郵件協定
發送或接收電子郵件時,過程通常涉及兩個關鍵步驟,以及幾個依賴郵件伺服器的協定:
-
發送郵件:
- 發送者的郵件客戶端使用 SMTP (簡單郵件傳輸協定) 將郵件發送到他們當地的郵件伺服器。
- 然後本地伺服器使用 SMTP 與收件人的郵件伺服器進行通訊。
-
接收郵件:
- 收件人的郵件客戶端使用 POP3 或 IMAP 從他們的郵件伺服器檢索郵件。
POP3 與 IMAP (區別)
- POP3 (郵局協定 v3): 通常將郵件從伺服器下載到一台設備,並常會將其從伺服器上刪除。如果你只在一台機器上檢查郵件,這很適合。
- IMAP (互聯網信息存取協定): 在伺服器與多台設備之間同步郵件。郵件保留在伺服器上,允許從手機、手提電腦或桌面電腦進行存取。
5. 動態主機設定協定 (DHCP) (3.14.4.4)
5.1 DHCP 的目的與運作
動態主機設定協定 (DHCP) 系統實現了網絡配置過程的自動化。
- 目的: DHCP 自動為連接到網絡的設備分配唯一的 IP 地址、子網掩碼、網關地址和 DNS 伺服器資訊。
- 運作方式: 當設備連接時,它會發送廣播請求。DHCP 伺服器透過向設備提供配置租約(IP 地址的臨時分配)來回應。
5.2 DHCP 的優勢
與手動(靜態)配置相比,DHCP 具有顯著優勢:
- 減少管理工作: 網絡管理員不需要手動為每個設備分配 IP 配置,節省大量時間。
- 消除錯誤: 手動配置常導致錯誤,例如將相同的 IP 地址分配給兩台不同的設備(IP 衝突),導致兩台設備都無法運作。DHCP 可以防止這些衝突。
- 靈活性: 當設備離開網絡時,DHCP 伺服器會收回其 IP 地址,允許其稍後供新設備重複使用。
網絡關鍵總結
互聯網依賴由路由器指揮的分組交換。TCP/IP 堆疊將通訊組織為四層:應用層(用戶服務)、傳輸層(可靠性/順序)、互聯網層(IP 定址/路由)和連結層(物理傳輸/MAC)。DNS 將名稱 (FQDN) 轉換為地址 (IP)。