電腦網路與 Internet 通訊

單元 09 期中整合與路徑追蹤

學習目標與案例

本章整合 01 至 08 及 03A/04A 的基礎,不增加新的協定。你應能將鏈路、設定、解析、路由、TCP 與 HTTP 連成一份有假設及證據的報告。以下為人工題組,文中的位址與日誌均是教學資料。

A=192.0.2.70/26,閘道 .65,DNS=.66;三者在同一 Ethernet。DNS 將 lesson.test 解析為 198.51.100.20。假設 ARP 快取空、伺服器支援 TCP/HTTP,沒有 TLS 與 NAT,路由及回程有效。應用取得 1000000 bytes,瓶頸 20 Mb/s,RTT 50 ms;視窗 65536 bytes。

9.1 先畫依賴,再畫訊息

查詢本地 DNS 前先判斷 .66 的下一跳,必要時 ARP 找 .66。DNS 回覆之後,目的 .20 不在 on-link 前綴,ARP 找 .65,送 SYN 到閘道 MAC。TCP 成功後才能傳 HTTP 請求與回應。這是本題的順序,不能說所有網路一律先 DNS 再 ARP:快取、IPv6、加密 DNS、代理與既有連線會改變依賴。

每個路由器重新做鏈路封裝,轉送時降低 TTL。沒有 NAT 的假設下,IP 來源/目的保持端點;TCP 可靠性在兩個 TCP 端點之間。若加入終止 TCP 的代理,應重畫兩段連線。

9.2 100 分期中題組

  1. 位址與路由(20):列網路/廣播/範圍,解析 DNS 與遠端時各找誰的 MAC。
  2. 依賴與責任(20):畫上述時序,列出 DNS 回答能證明和不能證明的事。
  3. 效能(20):求 BDP、視窗上界、忽略啟動和開銷的內容時間下界。
  4. 串流(20):HTTP 內容含中文時 Content-Length 如何計算?回應中途 EOF 如何處理?
  5. 診斷(20):已收到 DNS 回答,TCP connect 卻 timeout。提出兩個不同層次假設,以及能區分它們的下一份證據。

第 1 題的 20 分可改為 LAN 題:H 同 eth0 持有兩個子網位址,給出 main 與 200 路由表及 priority 100 來源規則,預測遠端與 LAN 下一跳(12 分);用 FDB/MDB 解釋未知單播與已知多播的出口(8 分)。資料採 03A/04A 例題,解答見 LAN 補充解答。總分仍 100 分。

評分看假設、步驟與證據,不只數值。數值誤差可給方法分;將 ping 成功等同 HTTP 成功不得給該推論分。

9.3 完整分析例題

BDP=20e6*0.05/8=125000 bytes。視窗上界=65536*8/0.05≈10.49 Mb/s,比瓶頸 20 Mb/s 低。理想有效資料時間至少 1e6/1310720≈0.763 秒;實際還有建立、請求、慢啟動、標頭與停頓。因此單用檔案大小除 20 Mb/s 的 0.4 秒低估了本視窗模型。

timeout 可由正向封包被丟棄、回程不可達、服務未回覆或狀態裝置策略造成。查本地路由與送出 SYN 的擷取,再查服務端是否收到及回 SYN/ACK,可以逐步縮小;沒有端點證據時不要指定唯一原因。

實驗與章末檢核

用 L12 的「已知事實、假設 1/2、下一份證據、仍不能確定」欄位完成 9.2 題組,再附時序與計算。至少指出一個目前證據不能確定的原因。解答冊提供標準推理及評分。來源沿用 01 至 08;題組與人工案例由本課程編寫。