單元 12 至 21 解答
這是解答。建議先完成對應的習題與實驗,再對照推理過程與評分規準。
單元 12 期中題組
- 網路 192.0.2.64、廣播 .127、一般主機 .65 至 .126。DNS 同網段所以找 .66 MAC,遠端走閘道 .65。完整範圍 10 分、兩次鄰居對象各 5 分。
- ARP→DNS→路由/閘道鄰居→TCP→HTTP,按本題條件;快取/IPv6 等會改變。DNS 只提供名稱資料,不證明 TCP、TLS 或 HTTP。依賴 9 分、限制 6 分。
- BDP 125000 bytes,視窗 65536 小於 BDP;上界 10.48576 Mb/s,內容下界 0.76294 秒。三個結果各 5 分,須含單位;未計啟動與開銷。
- Content-Length 計 UTF-8 等實際編碼 bytes。中途 EOF 不得當完整內容;使用 HTTP parser 時不足長度應報 IncompleteRead 等錯誤。Content-Length 7 分、中途 EOF 8 分。
- 正向丟棄、回程不可達、server 未回、state policy 等兩項不同假設各 5 分;提出出口 SYN 和服務端接收/回覆證據 10 分。
- 兩種模型的第一輪都交付 60、61、62。
- GBN(6 分):64 是失序資料,被丟棄,接收端再送 ACK 62。ACK 62 是累積確認,涵蓋遺失的 ACK 61,所以傳送端未確認的只剩 63、64(3 分)。逾時後重傳 63、64,接收端依序交付;64 第一輪已被丟棄,重傳的 64 不是重複交付(3 分)。
- SR(6 分):64 先暫存,不交付;ACK 62、ACK 64 只確認自己,不能代替遺失的 ACK 61,所以未確認的是 61、63(3 分)。61、63 各自逾時並重傳;63 到達後連同暫存的 64 一起按序交付(3 分)。
- 重複資料(3 分):GBN 本例沒有;SR 重傳的 61 已交付過。接收端以序號辨認:61 落在接收視窗起點之前,不再交付,但要再回 ACK 61。否則傳送端不知道 61 已收到,會一再重傳,傳送視窗的起點也停在 61 無法前進。
常見錯誤:SR 只重傳 63,忽略遺失的 ACK;GBN 重傳 61 至 64,忽略累積 ACK;收到重複資料就不回 ACK。兩種模型最後都是 60 至 64 各交付一次,差別在重傳哪些單位、接收端暫存多少,以及 ACK 遺失的影響。
LAN 替代題只替換第 1 題:作 LAN 題就不作原第 1 題,也不能兩題都作再取高分;第 2 至 6 題照常計分,總分仍 100 分,評量比例不變。20 分的分配如下:
- 遠端(5 分):203.0.113.45 只匹配 0.0.0.0/0(1 分)。下一跳是 G1(192.0.2.129),從 eth0 送出,ARP 找 G1(2 分)。來源仍是已 bind 的 198.51.100.100;bind 只固定來源、不指定閘道,表中的偏好來源 192.0.2.140 也不會改寫已固定的來源(2 分)。
- 同網段(4 分):N 的 198.51.100.110 落在 198.51.100.96/27(一般主機 .97 至 .126),是 on-link(2 分);ARP 直接找 .110 本身,不找 G1(2 分)。
- 回程(3 分):G1 要有通往 198.51.100.96/27 的路由,遠端與沿途網路也要能把回覆送回這個網段。本題只考可達條件,不要求分析 SNAT 或狀態防火牆。
- 未知單播(4 分):在 VLAN 30 內泛洪到埠 1、3,排除入口埠 2,不送 VLAN 40 的埠 4;目的 MAC 仍是 Q 的單播 MAC,G1 與 N 收到副本通常直接丟棄。
- 已知多播(4 分):送 router port 1 與成員埠 3;埠 2 雖是成員,卻是入口,不送回;VLAN 40 的成員埠 4 收不到,交換器不跨 VLAN 轉送,跨網段要靠路由器的多播路由。
單元 13
- B 經 A-B 成本 2、C 經 A-B-C 成本 3、D 經 A-B-C-D 成本 4。
- A-B-D 與 A-C-D 皆成本 6,tie-breaking 可選其一或依能力 ECMP。
- 各節點取得失效與更新資訊的時間不同,舊表可不一致;迴路防護與收斂機制需明列。
- BGP 考量 AS 政策、授權與屬性,沒有單一全域成本圖決定所有組織願意轉送的路徑。
單元 14
- 2001:db8::10:1。
- 通常 RA;DHCPv6 沒有預設路由選項。其他手動設定情境另列。
- global 位址可路由仍需路徑、服務監聽及允許的防火牆政策。NAT 和存取控制不同。
- 兩套分開查。路由:IPv4 的 0.0.0.0/0 與更具體前綴的下一跳是否都是 R;IPv6 的 ::/0 下一跳是否是 R(常是 RA 給的 link-local 位址),而不是另一臺發 RA 的路由器。可達性:名稱同時有 A 與 AAAA 時,兩種位址各測一次,不能只看應用成功,因為應用可能改用另一條可用路徑。防火牆:R 要同時有 IPv4 與 IPv6 規則,只設 IPv4 規則不會限制 IPv6。
單元 15
- snooping 只在 VLAN 10 內限制副本,querier 只維持該鏈路的成員資訊;兩者都不建立跨 VLAN 的轉送路徑。跨網段要有多播路由(PIM 等):路由器由 VLAN 20 的成員報告得知下游需要 G,建立跨鏈路的轉送樹;RPF 檢查確認封包從往來源的介面進來才往下游複製,避免迴路與重複。另需確認 G 的 scope 允許路由(224.0.0.x 屬本鏈路控制範圍,不轉送)、TTL 足夠,以及 ACL/防火牆政策允許。
- 記錄鏈與連線:
- PTR:查
_http._tcp.local,得到實例名稱,例如Home NAS._http._tcp.local。 - SRV:查該實例名稱,得到目標主機(例如
nas.local)、埠(例如 5000),以及優先順序與權重。 - TXT:查同一實例名稱,得到屬性,例如
path=/。 - A/AAAA:查
nas.local,得到 IPv4/IPv6 位址。 - 連線:對選出的位址與 SRV 的埠建立單播 TCP(HTTP)連線;探索可用多播,資料連線不必。
- 列表顯示「Home NAS」只證明收到或快取中仍有 PTR(可能也有 SRV/TXT)。尚未證明:A/AAAA 解析成功且可達、該埠有服務接受、服務身分已驗證;它也可能是裝置離線後 TTL 尚未到期的舊記錄。
- 假設一:mDNS 被 VLAN 邊界/ACL 限制,查兩端 5353 與 group/interface。假設二:根本未公告所查服務或 cache 過期,查 PTR/SRV/TXT 與 server 狀態。ping 只支持 ICMP 單播可達,不能替探索作證。
- 不行。服務廣告不提供可信身分;若實際連 HTTPS 仍需獨立驗證名稱/信任。一般 IPP 631 可能另有其安全模式,應先確認協定與預期端點。
單元 16
- EIM 只描述對映;入站可能仍 ADF/APDF。
- STUN 回報特定目的看到的對映並可做連通性檢查;TURN 提供 relay。
- ISP 的上游對映仍擋在家用路由外,家庭 port forward 不自動建立 ISP 轉送。
- NAT 對映可能隨目的、協定、state、時間不同;單次觀察不能覆蓋所有組合。
單元 17
- priority 90 的目的規則先匹配 203.0.113.90,查表 300 時 default 已成功,查找就此停止、不再讀 main,所以以來源 1 交給 G2(198.51.100.1);G2 還須能回到來源 1。main 的 /32 在另一張表,不能跨表推翻已成功的查找。修正一:在表 300 補
203.0.113.90/32 via 192.0.2.1。修正二:在 90 之前加更精確的目的例外,例如ip rule add priority 80 to 203.0.113.90/32 lookup main,並確認 main 的 default 不會讓例外涵蓋過廣。也可以縮小 priority 90 規則的目的範圍。 - throw:priority 100 命中來源 2、查表 200;203.0.113.0/24 的 throw 比 default 長而被選中,表 200 的查找當作沒有路由而結束,繼續下一條規則 32766 查 main,經 G1 送出,來源仍是來源 2,回程條件同 07。unreachable:查找在表 200 終止並回報錯誤,不再查 main;本機程式會收到 EHOSTUNREACH 類錯誤。會繼續查 main 的是 throw。L15 的 throw_fallthrough 與 explicit_reject 是同一機制、不同目的。
- 未指定來源:priority 100 的 from 規則無法匹配尚未選定的來源,150 命中,查 main 經 G1,取偏好來源 1。來源 1:100 不匹配,150 命中,經 G1。來源 2:100 先命中,表 200 的 default 已成功,經 G2;150 的例外不會執行,違反「只能經 G1 到達」。應移到 100 之前,例如 50,並保留 priority 0 的 local。測試:在隔離環境分別執行
ip route get 203.0.113.81、ip route get 203.0.113.81 from 192.0.2.10、ip route get 203.0.113.81 from 198.51.100.10,或在 L15 模型改 priority 後重算。修正後來源 2 經 G1 送出,仍須驗證 G1 與伺服器能回到 198.51.100.10。
單元 18
- 普通 hash 無共享祕密,攻擊者可對修改資料重算;MAC 有 key 並提供對應認證。
- 舊密文 tag 可仍有效,需要 session、序號視窗或已見材料等狀態防重放。
- 固定 PSK 洩漏可能解開使用其衍生 key 的舊資料;臨時 DH 在祕密正確銷毀、協定驗證正確條件下提供 PFS。
- 不會。代理替客戶端連往最後目的地,必須知道目的才能建立出口連線;客戶端到代理這段的加密只對路徑上的觀察者保密,不能對負責解密並轉送的代理隱瞞它本來就要處理的請求。
單元 19
- 信任鏈與名稱是獨立檢查,SAN 須符合預期名稱。
- 未啟用 ECH 時 SNI 通常可見。成功 ECH 仍有外層 public_name、IP、大小/時間,其他 DNS 管道可能暴露目標。
- 代理可見請求目的、出口 IP 及未被 ECH 保護的協商資訊,未終止內層 TLS 則不直接讀 HTTP 內容。
- AEAD 驗證完整性不記住已執行操作,0-RTT 有重放風險及不同 PFS 條件,業務需另行處理。
單元 20
- H2 frames 仍在同一條可靠有序 TCP 中,遺失缺口阻止後續 bytes 交付。
- stream 按該 stream 可靠有序交付,DATAGRAM 不重傳、可能遺失,仍受壅塞控制。
- cwnd、連線級流控、路徑、CPU、QPACK 和應用依賴都可產生等待。
- no-cache 通常要求使用前驗證,不禁止儲存;no-store 禁止儲存該內容的指令語義。
單元 21
- PHY rate 不等於應用有效速率,媒介競爭、干擾、重傳、標頭、回程及端點能力都會影響。
- TCP 是否建成、TLS 驗證是否成功、HTTP 對端回應與狀態、內容等依次查;DNS 成功不能代替它們。
- 固定 route/server/load 比較空閒與負載期間 RTT 分布、瓶頸排隊及負載停止後恢復;註明對照與計時。
- 還缺版本、路徑、工作負載、樣本數、尾端/變異、CPU、同時競爭與有效 bytes 定義等。