電腦網路與 Internet 通訊

單元 03 至 08 與基礎實驗解答

這是解答。建議先完成對應的習題與實驗,再對照推理過程與評分規準。

單元 03

  1. /27 每塊 32 位址,網路位址 .160、廣播位址 .191;一般主機 .161 至 .190,遮罩 255.255.255.224。
  2. .200 落在 /25,下一跳 192.0.2.66;203.0.113.9 用預設路由 192.0.2.65。
  3. IP 目的識別最終 IP 端點,鏈路目的識別下一跳。本例假設沒有先做 DNAT 且路由正常。
  4. PMTU/必要 ICMP 被阻擋、伺服器大回應處理失敗或 timeout 皆為假設;查封包大小、錯誤日誌與可重現負載再區分。

單元 04

  1. VLAN 代表鏈路域;IP 需要正確路由/子網/政策。不同子網可能經路由器可達,不能僅以 VLAN 決定。
  2. 路由判為 on-link 時 ARP 找 B;遠端選閘道時找閘道,不找遠端 C。政策路由、proxy ARP 屬另外情境。
  3. 路由器移除入口鏈路封裝、為下一條鏈路重新封裝。IP 位址正常不變,TTL 變小;NAT 另列。
  4. MAC 可修改,交換學習不提供密碼學身分驗證。

單元 05

  1. 經 150 秒,剩 450 秒(假設沒有預取、serve-stale 等另行機制)。
  2. DHCP 給設定和租約;遞迴解析器替客戶查詢及快取;權威伺服器維護 zone 的回答。
  3. NXDOMAIN 表示名稱不存在;無 AAAA 只表示該名稱缺該型別;timeout 不能判定名稱不存在。
  4. 已快取:stub→遞迴→快取回應;未快取:遞迴從委派鏈找到權威,再回客戶。根/TLD 委派也可能已快取。

單元 06

  1. recv 只給目前可交付且不超過上限的 bytes,不保證填滿或對齊應用訊息。
  2. 報中途 EOF,拒絕交付完整 100-byte 訊息;不能把 60 當成成功。
  3. TCP ACK 由傳輸接收端回報,不證明業務處理、存檔或交易提交。
  4. 先檢查長度上限,採有限 buffer、timeout 與中途 EOF 處理,再讀 payload。

單元 07

  1. ACK 遺失令 sender 無法知悉成功、因而重傳;receiver 用序號記錄去重,只重新確認。
  2. 8000/0.0808≈99010 bit/s,約 99.01 kb/s。
  3. 最大 8,避免新視窗與舊視窗在序號環上重疊。
  4. 可靠串流只保障傳輸語義;業務一次執行還需請求 ID、持久化狀態、交易與去重等。

單元 08

  1. SYN 後 1001 起,送 300 bytes,下一期待 byte 為 1301。
  2. cwnd 若限制在途量,增加 rwnd 不解除此限制。
  3. 零視窗先查接收應用是否停讀及 buffer;遺失/逾時查路徑、重排、RTT 及遺失恢復。兩者可能同時存在。
  4. 平均值無法描述多流競爭、RTT 優勢、排隊、CPU 與尾端延遲。

L02 至 L08、L10 與 L11

預期輸出(完成預測與紀錄後再核對):L02 三段 6.36 ms、BDP 500000 bytes、視窗上界 13.1072 Mb/s。L03 網路 .160、廣播 .191、一般主機 30 個、遮罩 255.255.255.224;.20 選 /24、.140 選 /25。L04 id=4660(0x1234)、flags=0x8180,lesson.test 的 A 為 192.0.2.80、TTL 300;c00c 指回 offset 12。L05 TCP 依序得到 cat、網路與空字串,UDP 得到 cat、網路兩份資料報;recv 每次最多 2 bytes 仍能正確重組。L06 資料 0 與 1 各傳兩次,應用仍只交付 [0,1,2,3,4]。L07 A 到 B、C、D 成本為 2、3、4,D 路徑 A-B-C-D。L08 前兩次入站允許、第三次拒絕,外部對映始終是 203.0.113.5:40000。L10 未計額外 padding 時,outer IPv4 預算 1440、outer IPv6 預算 1420 bytes。L11 A 中位 10.5 ms、p95 50;B 中位 13.5 ms、p95 16。

L02:RTT 加倍使 BDP 加倍,在固定視窗且受 W/RTT 限制時,上界減半;真實 TCP 還受 cwnd 及應用限制。

L03:新增 198.51.100.128/26 後,.140 選 /26,.200 仍選 /25。IPv6 的 2001:db8::80 選 2001:db8::/32,2001:db9::80 選 ::/0;IPv4 路由不匹配 IPv6。更具體但有效的路由被選中;實際下一跳失效是否移除路由、切換備援或仍黑洞,依協定、偵測與平臺,不能保證自動改走預設路由。

L04:QR=1、RD=1、RA=1 是人工回應中的位元,Answer=1。fixture 不能證明 lesson.test 在公共 DNS 存在。NOERROR 且空 Answer 不能推出名稱不存在,可能是該型別無資料、委派或其他情況,需看 Question、authority 及整份訊息;NXDOMAIN 的 RCODE=3 表示查詢名稱不存在。

L05:應用限制 recv 為 2 並不限制 TCP 段大小。4-byte 大端長度定義訊息大小;中途 EOF 應失敗。UDP 用足夠 buffer 觀察兩份資料報。

L06:receiver 先交付 0,但 sender 因 ACK 0 遺失保留未確認;再次收到 0 只 ACK。去掉 ACK 遺失規則後資料 0 只傳一次;--window 1 相當於停等,需 7 回合,預設視窗 3 只需 3 回合。缺少真實時間、序號回繞、TCP byte 序號、cwnd 與核心演算法。

交換表演練:A→B 學 A→1,泛洪 2、3;B→A 學 B→2,只送 1;C→A 學 C→3,只送 1。假設三個埠同 VLAN 且皆可轉送。

L07:原 A-B-C-D 成本 4;改 B-C=10 後 A-B-D 和 A-C-D 皆成本 6;本實作以嚴格小於比較,先處理 B 後保留 A-B-D。等價成本可能有多個正確最短路徑。BGP 還有政策與路由屬性。

L08:EIM 與過濾是獨立欄位;ADF 允許聯絡過的 remote IP 任意 port。改用 --filter APDF 時只有 198.51.100.10:9000 可入站;--elapsed 120 --lifetime 60 時 state 已逾時、對映消失,三次皆拒絕。STUN 回報特定時間及目的下對映,不保證雙方過濾、回程、逾時與其他 NAT 相容。

L10:1500 減 20/40、8、16、16 是預算,仍需檢查 padding、實際路徑及實作選定 MTU。endpoint 需可由 underlay 到達,避免遞迴進入自己的隧道。

L11:A 中位較小、B 這份樣本尾端較小。p95 nearest-rank 以 10 筆取第 10 筆;樣本太少不能穩健估計稀有尾端,也不能比較真實代理。