
2026 年的暑假,我修了 CS 6250 - Computer Networks。
春天連修了 KBAI 和 Game AI 兩堂課之後,我想找一堂輕鬆一點的暑期課,一方面讓自己喘口氣,一方面把 free elective 的學分補上。而電腦網路正好是我一直想補的一塊。做了這麼多年的 web service,其實我對 TCP 之下發生的事一直是半知半解。封包是怎麼從我的筆電走到雲端的機房?路由器到底在做什麼決定?這一層我平常都當作黑盒子。這堂課就是把黑盒子打開來看。
我是 2026 Summer 的學生。暑期是短學期,課程內容和作業可能每學期有所不同。
Summer 是 11 週左右的壓縮學期,但課程內容跟正常學期一樣,一共 12 個 lesson,大致分成四塊:
[1] Border Gateway Protocol,網際網路上不同網路之間交換路由資訊的協定,決定封包跨網路時實際走的路徑。
[2] Autonomous System,由單一組織管理的一組 IP 網路,例如一家 ISP 或一家雲端服務商。
[3] Software-Defined Networking,把網路的控制邏輯從硬體設備抽出來、集中在軟體裡管理的架構。
說實話,我修這堂課最大的收穫不是某個演算法,而是 BGP 那一章。以前我以為封包走的是「最短路徑」,其實不是。AS 之間是商業關係,封包走的是「最便宜的路徑」。Customer 付錢給 provider,同等級的 ISP 之間則是 settlement-free peering,而路由決策先看 business policy,再看路徑長短。知道這件事之後,再看雲端服務商寫的網路架構文章,突然就都看得懂了。
SDN 那兩章也很值得一看。如果你在工作上碰過 Kubernetes 的 CNI 或是 service mesh,你會發現那些概念在這裡都能找到源頭。
一共四個專案加一個 extra credit,全部用 Python 3.11,全部由 autograder 自動評分。程式量都不大,每個專案的核心程式碼大概都在 100 行以內。
[4] Mininet,一個在單一台電腦上模擬整個虛擬網路(host、switch、link)的工具,常用來做 SDN 實驗。
專案的難度在 OMSCS 裡算是入門級。把觀念搞懂之後,每個專案大概幾個小時就能寫完。唯一比較花時間的是 SDN Firewall,因為指令都要直接在 VM 裡面操作,還要開 Wireshark 抓封包、開好幾個 shell 模擬不同的 host,來回切換比寫程式本身還累。而其他三個專案,真正花時間的不是演算法,是 autograder 的邊界條件:tie-breaking 的順序、輸出格式這些。Ed 討論區上有很多人踩過的坑,先看一遍再動手可以省不少時間。
每個 lesson 後面有 quiz,考試則是有 proctoring 的閉卷選擇題。聽起來嚴肅,但題目難度跟 quiz 差不多,都直接來自課程影片內容。如果上課筆記有整理好,考前複習筆記就夠了。我沒有買教科書。學期初訂了兩本,看了幾週的課之後發現用不到,就退掉了 😏
輕。這是我目前在 OMSCS 修過的六堂課裡最輕鬆的一堂。專案通常一個週末就能搞定,剩下的時間主要花在看課程影片和整理筆記。輕到什麼程度?暑假出門旅行的時候,我在旅館裡就把其中一個專案寫完交出去了。
不過暑期有一個要注意的地方:學期短,deadline 就密。四個專案加上 extra credit 塞在 11 週裡,大約每兩週就要交一個。不難,但不能忘。
如果你是做後端或 infra 的工程師,而且跟我一樣對網路層一直是半知半解,我很推薦這堂課。它不會讓你變成網路專家,但它把你每天在用的東西背後的邏輯講清楚了。以後看到 latency 飆高、DNS 出問題、或是 CDN 的 cache 行為奇怪,你至少知道該從哪一層開始想。
而如果你是在找一堂輕鬆的課來平衡另一堂重課,或是像我一樣想在暑假喘口氣,CS 6250 也是一個很好的選擇。
你有修過這堂課嗎?或是你也有那種「用了很多年,卻一直沒真正搞懂」的技術?歡迎留言或私訊我,跟我分享你的想法。
我是小貓貓工程師
希望我的分享能給正在考慮繼續深造的你一些啟發
找到自己繼續學習的動力
本文由小貓貓工程師與 AI 協作完成