電腦網路與 Internet 通訊

課程大綱

課程定位與成果

本課程從一臺電腦連上遠端服務的完整過程出發,依序建立區域網路、位址與路由、名稱解析、可靠傳輸、安全通訊及代理/VPN 的知識。每個模型都連到可以觀察或量測的現象。

完成課程後,學習者應能:

  1. 畫出一次通訊的拓樸,逐跳追蹤 IP 封包、鏈路訊框與代理連線。
  2. 根據位址、子網與路由表判斷下一跳,並說明 DNS 與資料流的關係。
  3. 用延遲、視窗、頻寬延遲乘積與遺失模型分析傳輸行為。
  4. 用 Socket 建立可重現的小型網路應用,分析 TCP 與 UDP 的差異。
  5. 區分驗證、加密、前向保密、重放防護及流量可觀察性。
  6. 比較代理協定、承載方式、安全機制、接管方式與 IP 層 VPN。
  7. 以封包、日誌及受控制的量測作為故障診斷與設計選擇的依據。

先備知識與入門補充

不要求先修網路課。附錄補充二進位、單位換算、Python 程式啟動、命令列路徑與 Socket 的基本概念。必修程式以標準函式庫為主。路由演算法用小型圖例與虛擬碼說明;實作密碼學不是本課必修工作。

閱讀採兩層深度:正文提供完整的問題、模型與例題;「延伸」提供規範細節、演算法推導及版本差異。先完成正文再進入延伸。

評量與自學

自學者可用相同規準檢核。解答獨立成冊,說明推理過程與常見錯法。基本題、分析題及延伸題分開標示;延伸題不作為完成零基礎路線的必要條件。

項目比例核心證據
習題15%正確假設、推導與解釋
實驗25%預測、紀錄、差異分析與可重現性
期中20%概念、計算與路徑追蹤
期末題組15%10 至 22 單元的概念、計算與故障定位
期末專題25%設計、量測、故障定位與取捨

24 週核心進度與兩個 LAN 補充單元

週次/單元問題與內容可觀察成果
01 網路全貌主機、交換器、路由器、AP、ISP;端點與路徑家庭拓樸圖及服務路徑假設
02 分層與效能封裝、封包交換、傳送/傳播/排隊延遲、吞吐量、BDP計算與受控延遲模型
03 IPv4CIDR、子網、最長前綴匹配、預設路由、ICMP、MTU位址設定與下一跳判斷
04 區域網路Ethernet、MAC、ARP、交換表、VLAN、迴路與 STP 概念逐跳訊框表與交換演練
05 DHCP 與 DNS租約、遞迴/權威解析、快取、TTL、名稱與位址DHCP 時序圖及 DNS 回應分析
06 Socket 與 UDP埠、端點、多工、資料報與位元組串流的應用介面本機 UDP 與 TCP 小型服務
07 可靠傳輸校驗、序號、ACK、逾時、重傳、滑動視窗ARQ 模擬與視窗效率圖
08 TCP建連、關閉、序號、流量控制、壅塞控制、RTTTCP 串流與離線遺失模型分析
09 期中整合網路設定到取得內容;概念、計算與證據期中題組與路徑診斷報告
10 路由演算法轉送/路由、距離向量、鏈路狀態、OSPF、BGP 政策最短路徑與路由選擇演練
11 IPv6位址、NDP、SLAAC、DHCPv6、雙協定、ICMPv6IPv6 位址與路徑分析
12 NAT 與防火牆對映/過濾、連線狀態、CGNAT、STUN、TURN、ICENAT 表與穿透可行性分析
13 密碼學概念對稱/非對稱、雜湊、MAC、簽章、DH、AEAD、PFS、重放安全性需求與信任分析
14 TLS 與 HTTPS信任鏈、名稱驗證、握手、SNI、0-RTT、可見資訊本機 TLS 驗證與憑證觀察
15 HTTP 與 QUICHTTP/1.1/2/3、串流、DATAGRAM、快取、CDN、WebSocket/gRPC 承載隊首阻塞與快取決策分析
16 無線、量測與排錯Wi-Fi 媒介競爭、AP、家庭分段、分層排錯、量測誤差最低路線做排錯;無線細節列延伸
17 代理基礎HTTP CONNECT、SOCKS5、目的位址、名稱解析位置、正向/反向代理本機代理與連線路徑
18 加密代理Shadowsocks AEAD 2017/2022、VMess AEAD、驗證、時間與重放封裝與安全機制對照
19 VLESS/Trojan 與分層組合VLESS、Trojan、TLS/REALITY、Vision、WebSocket/gRPC/XHTTP、VLESS Encryption;AnyTLS/NaïveProxy 延伸分欄辨認 protocol、encryption、transport、security、flow
20 QUIC 代理Hysteria 2、TUIC v5、串流/資料報、UDP 轉送、壅塞與填充同條件量測設計
21 IP 層 VPNWireGuard、AllowedIPs、路由、MTU、OpenVPN、IKEv2/IPsecIP 隧道與代理的路徑對照
22 接管與整合系統代理、TUN/TAP、透明代理、分流、Fake IP、DoH/DoT、鏈式代理;軟路由整合DNS/IPv6/UDP 路徑檢查
23 專題設計拓樸、服務、量測、受控故障、報告專題初稿與證據
24 綜合評量設計取捨、故障定位、協定組合與反思完整專題與期末題組

專題於第 17 週選題,第 19 週交拓樸,第 21 週交量測計畫,第 23 週完成初稿,第 24 週整合。這些里程碑與每週實驗共用成果。

LAN 補充的正式位置

LAN 補充包含必讀 03A「單介面多 IP、來源選擇與政策路由」及 04A「單播、多播、廣播與 LAN 服務探索」,以及 L15、L16 與獨立解答。完整自學可用 26 次學習,03A 接 03、04A 接 04;4A.5 的 DNS-SD 在 05 後回讀,政策路由細節可在 10 後回讀。

若維持 24 週,將 03A 分在第 03 與 10 週,04A 分在第 04 與 05 週,每個補充單元約另需 3 小時,完整 Linux 延伸另計。這兩單元是完整課程的必讀內容;需在 09 期中前完成基礎,在 22 整合前完成來源政策與探索分析。LAN 評量題組可替換原期中/期末部分題目,維持總比例。

新增成果:能追蹤同介面兩個來源的規則、表與下一跳;能預測 FDB/MDB/VLAN 的資料出口;能分開畫探索、單播服務及代理上游路徑。

每章結構

每章依序包含:學習目標與先備關係、具體問題、原理與模型、完整例題、圖解或時序表、常見誤解、實驗連結、習題、章末檢核及來源。抽象模型會明示假設與限制;實作特性會標示版本與平臺。

必修環境與實驗

必修環境:macOS、Windows 或 Linux 的 Python 3.10 以上;僅使用標準函式庫。L13 的本機憑證實驗另需 OpenSSL 相容指令,提供憑證資料的離線條件表替代路線。Wireshark 為延伸工具,非必修前提。每週最低路線為正文、基本題與指定實驗步驟,約 5 至 6 小時;完整分析與延伸約 7 至 8 小時,代理單元可拆成兩次學習。

必修實驗提供本機可執行版本或離線資料分析:

每份實驗包含預測、步驟、預期現象、紀錄表、判讀題與驗證範圍。模擬結果只能支持模型內的結論;真實代理/VPN 的效能與可辨識性需要指定實作及實際網路資料。

Linux 虛擬環境延伸提供封包擷取、多網段、NAT/防火牆與 WireGuard/代理設定的指引。它們不列為零基礎讀者完成必修課程的環境前提。將清楚區分已在本機驗證的程式、可離線分析的範例與尚未執行的跨平臺延伸。

代理與 VPN 的評估方法

對每個協定使用相同欄位:設計目標、轉送單位、目的位址、驗證方式、加密位置、金鑰與前向保密、重放防護、TCP/UDP 承載、多工、DNS 解析位置、可觀察資訊、實作相容性、效能條件與失敗案例。

協定名稱、承載方式、安全機制、流量接管及軟體核心分開描述。TLS 與 REALITY 不當作和 VLESS 等價的代理協定;TUN 不被當作加密保證。各種組合的有效性以指定實作及版本核對,不能將工具中的一個標籤當作普遍標準。

不以一次測速排列「最快協定」。比較要控制硬體、實作版本、路徑、延遲、遺失、頻寬、工作負載與並行連線數;同時紀錄延遲分布、吞吐量、CPU 與額外流量。安全、匿名性、偽裝與可用性分別分析。