第 1 章 計算機網路與網際網路

1.1 什麼是網際網路

重要度 ★★☆ | 來源:中1 p.6–19;英1 p.4–17

網際網路可以從兩個角度描述:一是組成它的軟硬體元件,二是它提供給應用程式的服務。考題常直接問這兩種角度各看到什麼。

角度看到的內容
基本元素
(nuts and bolts)
主機/終端系統、通訊連結、封包交換器、ISP、協定、標準組織
服務
(service)
提供服務給分散式應用程式的基礎設施,並透過 socket 介面(API)讓應用程式取用,就像寄信要遵守郵政服務的規矩

基本元素

1.2 網路邊際

重要度 ★★☆ | 來源:中1 p.20–47;英1 p.19–54

連線網路(access network)是把終端系統連到路徑上第一具路由器(邊際路由器)的實體連結。

連線網路比較

類型基礎設施/設備運作重點數字與特性
DSL既有電話線(雙絞線)
DSL 數據機、分離器(splitter)、DSLAM
資料與電話以不同頻率共用線路,一條線看起來像三條;DSLAM 把資料送進網際網路、電話送進電話網下行 24–52 Mbps、上行 3.5–16 Mbps;專用線路、不對稱
纜線
Cable
有線電視設施,HFC(光纖+同軸)
纜線數據機、頭端 CMTS
光纖到鄰里光纖節點,再以同軸到戶;以 FDM 分頻道;共用廣播媒介,多人同時下載時每人速率會明顯下降每個光纖節點 500–5000 戶;DOCSIS 2.0 下行 42.8、上行 30.7 Mbps;不對稱
FTTH光纖到戶(光世代)
ONT、光分離器、OLT
兩種架構:AON(本質上是交換式乙太網路)與 PON。PON 由分離器把多戶(通常少於 100 戶)併到一條共用光纖;OLT 收發的封包在分離器複製可達 Gbps 等級;PON 又分 GPON、EPON
FTTB+VDSL光纖到大樓機房到大樓用光纖,大樓機房到住家用乙太網路或 VDSL(銅線)台灣常見的過渡方案
5G 固定無線基地台到家不必從中央機房鋪線到住家省去昂貴又易故障的佈線
乙太網路乙太網路交換器企業、大學與家庭最普遍的 LAN 技術10 Mbps–10 Gbps
WiFi存取點(IEEE 802.11)使用者須在存取點數十公尺內WiFi 6/7;共用無線媒介
廣域無線電信業者基地台與蜂巢電話相同的基礎設施涵蓋數十公里;4G、5G
資料中心高速連結連接成百上千台伺服器並接上網際網路每條 10–100 多 Gbps

實體媒介

位元經由電磁波或光脈衝跨越實體媒介傳送。導引式媒介:訊號沿固體媒介前進(銅線、同軸、光纖);非導引式媒介:訊號在大氣或外太空自由傳播(無線電、衛星)。

媒介類別特性數字
雙絞銅線導引式最便宜、最常用;兩條絕緣銅線互絞以降低電磁干擾;LAN 常用 UTPCat 5:100 Mbps/1 Gbps
Cat 6 以上:10 Gbps
第 6a 類 UTP:100 公尺內 10 Gbps
同軸電纜導引式兩條銅導體同軸排列;雙向;可當共用媒介;寬頻(一條線多個頻道)每頻道數百 Mbps
光纖導引式傳光脈衝,每個脈衝一個位元;錯誤率低、中繼器間距大、不受電磁干擾;用於骨幹與長途點對點 10–100 多 Gbps
OC-n=n × 51.8 Mbps
地表無線電非導引式不必鋪線、可穿牆、支援行動、距離長;廣播、半雙工;受路徑遺失、遮蔽衰減、多路徑衰減、干擾影響WiFi:10–數百 Mbps、數十公尺
4G:數十 Mbps、約 10 km
藍牙:短距低速
微波:45 Mbps
衛星非導引式同步衛星固定於上空 36,000 公里;LEO 低軌道衛星離地近、會繞地球移動,可彼此及與地面站通訊每頻道可達 45 Mbps
端對端延遲約 270 ms

1.3 網路核心

重要度 ★★★ | 來源:中1 p.48–74;英1 p.56–78

核心的兩大功能

轉送(Forwarding)繞送(Routing)
範圍區域動作,單一路由器內全域動作,整個網路
做什麼把封包從輸入連結移到適當的輸出連結決定封包從來源到目的地的路徑
靠什麼轉送表(目的位址對映向外連結)繞送演算法/協定,用來自動設定轉送表

封包交換

電路交換

傳送前先建立端對端連線,路徑上的資源(緩衝區、傳輸速率)在整個通訊期間都被預約保留,傳送端能以受保障的固定速率傳輸。傳統電話網路是典型例子。連結中的迴路以兩種方式實作:

FDM 分頻多工TDM 分時多工
切什麼切頻譜,每筆連線一段專用頻帶(頻帶寬度即頻寬)切時間成時框,每個時框再切固定數目的時槽
每筆連線得到全程專用一段頻帶每個時框固定一個專用時槽

封包交換與電路交換比較

比較項目封包交換電路交換
資源分配依需求分配,逐封包共用預先分配,不管是否需要
閒置時別人可使用連結容量沉靜期迴路閒置,形成浪費
建立連線不需要需要,且須複雜的訊號軟體協調路徑上的交換器
延遲不固定、不可預測(主因是佇列延遲)固定速率,有保障
優點頻寬分享較好、較簡單、較有效率、實作成本低適合需要穩定品質的即時服務
缺點不提供保障,可能壅塞與遺失資源利用率低

網路的網路:ISP 結構如何一步步形成

  1. 全部兩兩互連? 數量級 O(N2),無法擴展。
  2. 全部接到一家全球轉運 ISP:連線 ISP 是顧客,全球 ISP 是供應者,依流量付費。
  3. 有利可圖就會有競爭者:出現多家全球 ISP,它們彼此也必須互連。
  4. 區域 ISP 出現:連線 ISP 接區域 ISP,區域 ISP 接第一層 ISP。
  5. IXP 與對等:第三方建立網際網路互換點,讓多家 ISP 在此對等互連。
  6. 內容供應者網路:Google 等自建私有 TCP/IP 網路連接資料中心,盡量直接連低層 ISP,略過上層。
名詞意義
第一層 ISP(tier-1)類似全球轉運 ISP,但不必遍布每座城市;全球約十幾家(如 Level 3、AT&T、Sprint、NTT、Verizon);位於頂端,不付費給任何人
PoP(存取點)供應者網路中一組路由器,顧客 ISP 可在此接入,通常租用高速連結連到 PoP 的路由器
多點上層連接(multi-home)連到兩個或以上的供應者 ISP(第一層以外的 ISP 都可這麼做)
對等(peer)同層鄰近 ISP 直接互連,流量不必經過上游
IXP多家 ISP 可在此對等的會合點,通常由第三方公司建立
內容供應者網路如 Google、Microsoft、Akamai;把內容與服務帶到使用者附近,常略過第一層與區域 ISP

1.4 延遲、遺失與產出率

重要度 ★★★ | 來源:中1 p.75–96;英1 p.80–103

四種節點延遲

總節點延遲:dnodal = dproc + dqueue + dtrans + dprop

延遲內容公式大小與取決因素
處理延遲 dproc檢查封包標頭、檢查位元錯誤、決定輸出連結—高速路由器約微秒級以下;通常可忽略,但會影響路由器最大產出率
佇列延遲 dqueue在輸出佇列等待被傳出統計量微秒到毫秒;取決於壅塞程度,每個封包都可能不同
傳輸延遲 dtrans把整個封包的所有位元推進連結的時間L / RL:封包長度(bits);R:連結速率(bps);與距離無關
傳播延遲 dprop一個位元從連結一端傳到另一端的時間d / sd:連結長度;s:傳播速率(約 2–3 × 108 m/s);與封包長度和速率無關

佇列延遲與流量強度

令 a=封包平均抵達速率(封包/秒),L=封包長度(bits),R=傳輸速率(bps)。流量強度(traffic intensity)= La / R。

La/R結果
接近 0平均佇列延遲很小
接近 1平均佇列延遲急遽增加,強度增加一點,延遲增加很多
大於 1到達的工作量超過能服務的量,平均延遲趨於無限大(理論上)

端對端延遲與 Traceroute

來源到目的地之間有 N−1 台路由器(N 條連結),網路暢通時(佇列可忽略):dend-end = N (dproc + dtrans + dprop)。

產出率(Throughput)

1.5 協定分層與服務模型

重要度 ★★★ | 來源:中1 p.97–118;英1 p.105–124

每一層透過兩件事提供服務:(1) 在該層內執行某些動作;(2) 使用下一層提供的服務。各層協定合稱協定堆疊(protocol stack)。協定層可由軟體、硬體或兩者實作,並分散在終端系統、交換器等元件中。

為什麼要分層(優點)分層的缺點
結構明確,方便討論系統各部分的關係某一層可能重複下層功能(例如逐連結與端對端都做錯誤復原)
模組化,容易維護與更新;改某層實作不影響其他部分某層功能可能需要只有另一層才有的資訊,破壞分層原則

網際網路五層協定堆疊

層封包名稱工作協定例子實作位置
應用層訊息 message網路應用程式與應用層協定的所在HTTP(S)、DNS、SMTP軟體(終端系統)
傳輸層區段 segment在應用程式端點之間傳送應用層訊息TCP、UDP軟體(終端系統)
網路層資料包 datagram把資料包從一台主機移到另一台IP(唯一)、繞送協定軟硬體混合
連結層訊框 frame把封包從一個節點移到下一個節點乙太網路、WiFi、PPPoE網路介面卡
實體層位元 bit把訊框中的個別位元移到下一個節點,依實際媒介而定依雙絞線、光纖等網路介面卡
傳輸層協定服務
TCP連線導向;保證送達;流量控制;切割長訊息;壅塞控制
UDP無連線;最低限度服務:不提供可靠性、流量控制、壅塞控制

封裝(Encapsulation)

層內容名稱標頭用途
應用層M訊息—
傳輸層Ht + M區段Ht:實作傳輸服務
網路層Hn + Ht + M資料包Hn:含來源與目的位址
連結層Hl + Hn + Ht + M訊框Hl:實作連結層服務

1.6 面臨攻擊的網路

重要度 ★★☆ | 來源:中1 p.119–129(英文講義只在目錄列出)

威脅作法重點
惡意軟體感染裝置後刪檔、裝間諜軟體竊取資料;大多能自我複製受害主機可能被納入殭屍網路(botnet),用來發垃圾信或 DDoS
DoS:弱點攻擊送妥善編造的訊息給有弱點的應用程式或作業系統利用程式缺陷
DoS:頻寬滿載送洪水般的封包塞滿目標的連線連結合法封包到不了伺服器
DoS:連線滿載建立大量半開或全開的 TCP 連線耗盡連線資源
DDoS控制多個來源同時攻擊,常透過數千台殭屍主機比單一來源 DoS 更難偵測與防範
封包竊聽封包竊聽器(packet sniffer)是記錄經過封包副本的被動接收器;有線與無線都可能因為被動所以難偵測;最佳防禦與密碼學有關。Wireshark 就是這類工具
IP 詐騙注入帶假來源位址的封包(IP spoofing)對策:端點認證

網際網路會這麼脆弱,是因為它原本建立在「一群互信的使用者連接到透明的網路」的模型上,不需要安全性。

1.7 網際網路歷史

重要度 ★☆☆ | 來源:中1 p.130–137

時期關鍵事件
1961–1972
封包交換的發展
電腦共用需求興起;ARPAnet 是第一個封包交換計算機網路,也是今日網際網路的直系祖先;主機間協定 NCP;1972 年 Ray Tomlinson 寫出第一個電子郵件程式
1972–1980
專屬網路與互連
TCP、UDP、IP 概念在 1970 年代末出現;ALOHA 是第一個多重存取協定
1980–1990
蓬勃發展
主機數由約 200 台增至數十萬台;1983 年 1 月 1 日 TCP/IP 成為 ARPAnet 標準主機協定
1990 年代
爆炸性成長
四大殺手級應用:電子郵件、資訊網(Web)、即時訊息(ICQ)、點對點 MP3 分享(Napster)
新千禧寬頻到府、高速無線、線上社交網路、Google 與微軟的私有網路、雲端執行應用程式

第 2 章 應用層

2.1 網路應用程式原理

重要度 ★★★ | 來源:英2 p.2–27

開發應用程式與主從式架構

網路應用程式寫在終端系統上,不必為網路核心裝置寫程式,因為核心裝置不執行使用者應用程式;這也是應用程式能快速開發與擴散的原因。

伺服器(server)用戶端(client)
一直開機的主機
有固定(永久)IP 位址
常放在資料中心以利擴充
與伺服器聯絡通訊,可間歇連線
可能使用動態 IP 位址
用戶端之間不直接通訊

Socket 與行程定址

傳輸層可提供的四類服務

服務說明應用
可靠資料傳輸保證資料正確且完整送達需要:電子郵件、檔案傳輸、Web
可容忍遺失(loss-tolerant):多媒體
產出率保證至少 r bits/sec頻寬敏感:多媒體(如語音 32 kbps)
彈性(elastic):電子郵件、檔案、Web
時間(Timing)保證延遲上限,如 100 ms 內送達網路電話、虛擬環境、視訊會議、多人遊戲
安全性傳送端加密、接收端解密—
應用資料遺失產出率時間敏感
檔案傳輸/下載不可遺失彈性否
電子郵件不可遺失彈性否
Web 文件不可遺失彈性否
即時影音可容忍音訊 5 Kbps–1 Mbps
視訊 10 Kbps–5 Mbps
是,數十 ms
串流影音可容忍同上是,數秒
互動遊戲可容忍Kbps 以上是,數十 ms
文字訊息不可遺失彈性有些是、有些否

TCP 與 UDP

項目TCPUDP
連線連線導向,須先建立連線不需建立連線
可靠性可靠傳輸不可靠
流量控制有(傳送端不會淹沒接收端)無
壅塞控制有(網路過載時抑制傳送端)無
都不提供時間保證、最低產出率保證、安全性時間保證、產出率保證、安全性
應用應用層協定傳輸協定
檔案傳輸FTPTCP
電子郵件SMTPTCP
WebHTTPTCP
網路電話SIP、RTP 或專有協定TCP 或 UDP
串流影音HTTP、DASHTCP
互動遊戲WOW、FPS(專有)UDP 或 TCP

TLS:替 TCP 加上安全性

應用層協定的定位

應用遺失產出率時間建議與理由
檔案傳輸不可彈性不敏感TCP:內容必須完整,可晚一點到
視訊會議可容忍敏感數十 msUDP:寧可畫面小瑕疵,也不要等重傳
多人遊戲可容忍Kbps 以上數十 ms狀態更新用 UDP;登入、交易等關鍵資料可用 TCP
電子郵件不可彈性不敏感TCP:內容完整優先
即時通訊文字不可彈性部分敏感文字用 TCP;語音或視訊通話可用 UDP

2.2 Web 與 HTTP

重要度 ★★★ | 來源:英2 p.29–83(第四次小考標記在 p.84)

基本名詞

HTTP 與 HTTPS

HTTPHTTPS
URL 開頭http://https://
加密無有,以 TLS(前身 SSL)加密請求與回應
埠號80443
握手TCP 3-way 握手(1 RTT)後送請求TCP 握手(1 RTT)+TLS 握手後才送加密資料

HTTP 訊息格式

GET /index.html HTTP/1.1\r\n            ← 請求列(方法 URL 版本)
Host: www-net.cs.umass.edu\r\n          ← 標頭列
User-Agent: Mozilla/5.0 ...\r\n
Accept-Language: en-us,en;q=0.5\r\n
Connection: keep-alive\r\n
\r\n                                    ← 空行代表標頭結束
HTTP/1.1 200 OK                         ← 狀態列(版本 狀態碼 片語)
Date: Tue, 08 Sep 2020 00:53:20 GMT
Last-Modified: Tue, 01 Mar 2016 18:57:50 GMT
Content-Length: 2651
Content-Type: text/html; charset=UTF-8
\r\n
data data data ...                      ← 實體內容
方法狀態碼
GET:取物件;也可把使用者資料放 URL 中 ? 之後
POST:表單輸入放在實體內容
HEAD:只回傳標頭
PUT:上傳檔案,取代指定 URL 的內容
DELETE:刪除指定 URL 的檔案
200 OK:成功
301 Moved Permanently:已搬移,新位置在 Location
304 Not Modified:未修改(條件式 GET)
400 Bad Request:伺服器看不懂請求
404 Not Found:找不到文件
505 HTTP Version Not Supported

三種 HTTP 連線

RTT(round-trip time):一個小封包從用戶端到伺服器再回來的時間,包含前面談過的所有延遲。

非持續性持續性、無管線化持續性、有管線化
TCP 連線每個物件一條共用一條共用一條
送請求時機—收到前一個回應才送下一個遇到物件就送,不等回應
每個物件成本2 RTT + 傳輸時間1 RTT全部物件合計約 1 RTT
n 個參照物件
(連 HTML,忽略傳輸時間)
2(n+1) RTT(2+n) RTT3 RTT

Cookie:保存使用者狀態

HTTP 無狀態,但網站常需要辨識使用者以限制存取或提供個人化內容。Cookie 有四個元件:

  1. HTTP 回應中的 cookie 標頭列(Set-Cookie: 1678)
  2. 下一次 HTTP 請求中的 cookie 標頭列(Cookie: 1678)
  3. 使用者主機上由瀏覽器管理的 cookie 檔案
  4. 網站後端的資料庫

流程:首次造訪時伺服器產生 ID 並寫入資料庫,以 Set-Cookie 回傳;瀏覽器存入 cookie 檔;之後每次請求都帶上 Cookie,伺服器據此採取對應動作。使用者註冊後,網站可把 ID 連到個人資料,這就是「一鍵購物」的基礎。

Web 快取(代理伺服器)

代表原始伺服器回應 HTTP 請求的網路實體,有自己的磁碟並保存最近請求物件的副本。

  1. 瀏覽器與快取建立 TCP 連線,送出請求。
  2. 有副本:快取直接回傳。
  3. 沒有副本:快取對原始伺服器開 TCP 連線、發請求,收到物件後存一份,再回給瀏覽器。

好處:縮短回應時間(快取較近);減少機構對外連結流量;讓資源較少的內容供應者也能有效傳遞內容。快取同時是伺服器(對用戶端)也是用戶端(對原始伺服器)。

範例一(p.74–77)原始情況方案 1:加速連結方案 2:裝快取
條件物件 1 Mb,15 r/s,連結 15 Mbps,LAN 100 Mbps,RTT 2 s連結升級到 100 Mbps命中率 0.4
LAN 使用率15 ÷ 100 = 15%15%15%
對外連結使用率15 ÷ 15 = 100%15 ÷ 100 = 15%0.6 × 100% = 60%
總延遲2 s + 數分鐘 + ms2 s + ms + µs0.6 × 2 s + 0.01 s + ms,約 1.2 s
成本—昂貴便宜
範例二(p.78–81)原始情況方案 1:加速連結方案 2:裝快取
條件物件 100 Kb,15 r/s(1.50 Mbps),連結 1.54 Mbps,LAN 1 Gbps,RTT 2 s連結升級到 154 Mbps命中率 0.4
LAN 使用率0.00150.0015—
對外連結使用率1.50 ÷ 1.54 = 0.971.50 ÷ 154 = 0.00970.9 ÷ 1.54 = 0.58
平均延遲2 s + 數分鐘 + µs2 s + ms + µs0.6 × 2.01 + 0.4 × ms,約 1.2 s
成本—昂貴便宜,延遲還比方案 1 低

條件式 GET

快取的副本可能過期,條件式 GET 讓快取確認物件是否為最新。請求帶 If-modified-since: <date>:

2.3 DNS 網域名稱系統

重要度 ★★★ | 來源:英2 p.86–114(第五次小考標記在 p.115)

DNS 是什麼

為什麼不用單一伺服器

問題說明
單點失效伺服器掛掉,整個網際網路都受影響
流量龐大所有 HTTP 請求與電子郵件的查詢都集中到一台
距離遙遠無法靠近所有查詢者,延遲大
維護困難資料庫龐大且須為每台新主機頻繁更新

網域名稱結構

網域名稱以點分隔,由右往左讀。mcu.edu.tw:tw 是 TLD、edu 是第二層、mcu 是子網域。FQDN 是特定主機的完整名稱,由主機名稱與網域名稱組成,如 www.mcu.edu.tw。

DNS 伺服器階層

類別職責例子
根 DNS本地伺服器解析不了時聯絡它;回覆 TLD 伺服器位置全球 13 個邏輯根伺服器(a–m),各自有大量複本
TLD DNS負責頂級網域與國家網域.com、.org、.net、.edu、.tw、.jp
授權(權威)DNS組織自己的 DNS,提供該組織主機名稱到 IP 的權威對映;可自行維護或委外dns.cs.umass.edu;大學通常自建主要與次要伺服器
本地 DNS(預設名稱伺服器)不嚴格屬於階層;每個 ISP 都有;靠近主機;像代理一樣把查詢送進階層dns.nyu.edu;公共 DNS 如 8.8.8.8

遞迴與迭代查詢

遞迴查詢(recursive)迭代查詢(iterative)
意義請對方代為取得答案對方回覆「我不知道,但你去問這台」
典型位置主機 → 本地 DNS本地 DNS → 根、TLD、授權

DNS 快取

資源紀錄(RR)

格式:(name, value, type, ttl)。TTL 決定資源紀錄何時從快取移除。

Typenamevalue例子
A主機名稱IP 位址把主機名稱對映到 IP
NS網域該網域授權 DNS 的主機名稱(foo.com, dns.foo.com, NS)
CNAME別名正規(真實)名稱(foo.com, relay1.bar.foo.com, CNAME)
MX別名郵件伺服器的正規名稱(foo.com, mail.bar.foo.com, MX)

DNS 訊息格式

查詢與回覆格式相同:標頭加四個區段。identification 是 16 位元編號,回覆沿用查詢的編號;flags 標示查詢或回覆、是否希望遞迴、是否可遞迴、是否為授權回覆。

區段內容
questions查詢的 name、type
answers回應查詢的 RR
authority授權伺服器的紀錄
additional其他有幫助的資訊

實作工具

nslookup
> server 10.255.255.255    指定要查詢的 DNS 伺服器
> set q=mx                 查 MX 紀錄
> contoso.com.

知名公共 DNS:Google 8.8.8.8、8.8.4.4;Cloudflare 1.1.1.1、1.0.0.1;OpenDNS 208.67.222.222、208.67.220.220;AdGuard 94.140.14.14、94.140.15.15。

2.4 內容傳遞網路 CDN

重要度 ★★☆ | 來源:英2 p.116–133

若只蓋一座巨型資料中心串流影片到全球,一旦資料中心或對外連結故障就無法服務,因此主要影音業者都使用 CDN:把內容快取在比原始伺服器更靠近使用者的代理伺服器。Web 主機保存原始檔案,CDN 快取這些檔案讓全球使用者更容易取得。

CDN 運作

CDN 必須攔截請求,才能 (1) 為該用戶端選擇合適的叢集,(2) 把請求導向該叢集的伺服器。多數 CDN 利用 DNS 攔截與導向。

  1. 瀏覽器向本地(遞迴)DNS 查詢 shop.example.com。
  2. 本地 DNS 向 Cloudflare 的授權 DNS 查詢(假設沒有快取,根與 TLD 步驟省略)。
  3. 授權 DNS 回覆 Cloudflare Anycast IP,本地 DNS 回傳 IP 並依 TTL 快取。
  4. 瀏覽器以 HTTPS 連到 Cloudflare CDN;必要時 CDN 才回源到原始伺服器。

叢集選擇策略

策略作法
地理最近收到某本地 DNS 的請求時,選地理上最近的叢集
即時量測定期量測叢集與用戶端之間的延遲與遺失,例如從各叢集對全球本地 DNS 送探測封包

案例

面向CloudflareAkamai台灣本地業者
導入方式DNS 代理,相對容易多依企業需求規劃可由本地團隊協助
入門成本有免費方案多以企業報價為主依流量、頻寬與合約
適合對象個人、中小企業到大型組織大型企業、媒體、關鍵服務主要市場在台灣的企業

第 4 章 網路層:資料層

4.1 網路層概觀

重要度 ★★☆ | 來源:英4 p.2–8、p.15–17

網路層把區段從傳送主機送到接收主機:傳送端把區段封裝成資料包,接收端把區段交給傳輸層。每台主機與路由器都有網路層;路由器檢查所有經過的 IP 資料包標頭,並把資料包從輸入埠移到輸出埠。

資料層(Data plane)控制層(Control plane)
範圍區域、每台路由器全網路的邏輯
決定什麼資料包如何從輸入埠轉送到輸出埠資料包如何沿端對端路徑在路由器間繞送
對應功能轉送(forwarding)繞送(routing)
時間尺度硬體,奈秒級軟體,毫秒級
傳統逐路由器控制層SDN 軟體定義網路控制層
每台路由器內都有繞送演算法元件,彼此互動遠端控制器(伺服器)計算轉送表並安裝到路由器;路由器上有控制代理(CA)

服務模型

架構服務模型頻寬遺失順序時間
Internetbest effort無無保證無保證無保證
ATMConstant Bit Rate固定速率有有有
ATMAvailable Bit Rate保證最小無有無
InternetIntserv Guaranteed有有有有
InternetDiffserv可能可能可能無

網路層的組成:IP 協定(資料包格式、定址、封包處理慣例)、ICMP(錯誤回報、路由器訊號)、路徑選擇演算法(繞送協定 OSPF、BGP 或 SDN 控制器)及轉送表。

4.2 路由器與最長前綴比對

重要度 ★★★ | 來源:英4 p.9–13

路由器由輸入埠、高速交換結構(switching fabric)、輸出埠、繞送處理器組成。交換速率是封包從輸入移到輸出的速率;N 個輸入、每個線路速率 R 時,理想交換速率為 NR。

目的位址範圍連結介面
11001000 00010111 00010*** ********0
11001000 00010111 00011000 ********1
11001000 00010111 00011*** ********2
其他3

4.3 IP 資料包格式

重要度 ★★★ | 來源:英4 p.14–37、p.51–53

資料包總長 20–65,535 bytes,其中標頭 20–60 bytes。

VER
4 bits
HLEN
4 bits
Service type
8 bits
Total length
16 bits
Identification
16 bits
Flags
3 bits
Fragmentation offset
13 bits
Time to live
8 bits
Protocol
8 bits
Header checksum
16 bits
Source IP address(32 bits)
Destination IP address(32 bits)
Options + padding(0–40 bytes)
欄位長度重點
Version4 bits目前為 4;版本不符就丟棄,避免誤解讀
Header length4 bits單位是 4 bytes。無選項:值 5(20 bytes);最大值 15(60 bytes)
Service type8 bits現在定義差異化服務(前 6 bits Codepoint,後 2 bits 未使用)
Total length16 bits單位是 byte,標頭+資料,最大 65,535
Identification16 bits與來源 IP 共同唯一識別一個資料包;同一資料包的分割片相同
Flags3 bits保留位元、DF(1=不可分割)、MF(1=後面還有分割片;0=最後或唯一一片)
Fragment offset13 bits該片資料在原資料包的相對位置,單位是 8 bytes
TTL8 bits每經一台路由器減 1,到 0 就丟棄。Windows 預設 128,Unix 類預設 64
Protocol8 bits上層協定:1 ICMP、2 IGMP、6 TCP、17 UDP、89 OSPF
Header checksum16 bits偵錯用
Source/Destination各 32 bits來源與目的 IP

MTU 與 IP 分割

協定MTU
Ethernet1500 bytes(巨型訊框最大 9000 bytes)
PPPoE1492 bytes
WiFi2304 bytes
分割片標頭資料OffsetMFTotal length資料範圍
原始2050000050200–4999
第 1 片2014800115000–1479
第 2 片201480185115001480–2959
第 3 片201480370115002960–4439
第 4 片2056055505804440–4999
分割片資料範圍Total lengthMFOffset
第 1 片0–139914201000
第 2 片1400–279914201175
第 3 片2800–399912200350
第 2.1 片1400–21998201175
第 2.2 片2200–27996201275

Checksum 計算

  1. 傳送端:Checksum 欄先填 0,把標頭每 16 位元一組相加(溢位要繞回加到最低位),再取 1 的補數填入。
  2. 接收端:把包含 Checksum 的整個標頭相加再取補數,結果為 0 代表無誤,否則丟棄。
欄位值16 位元字組
4, 5, 001000101 00000000
Total length=2800000000 00011100
Identification=100000000 00000001
Flags, Offset=0, 000000000 00000000
TTL=4, Protocol=1700000100 00010001
Checksum 先填 000000000 00000000
來源 10.12.00001010 00001100
來源 14.500001110 00000101
目的 12.6.00001100 00000110
目的 7.900000111 00001001
加總01110100 01001110
Checksum(取補數)10001011 10110001(十進位 35761)

接收端把這個 Checksum 一起加總,得到 11111111 11111111,取補數為 0,表示正確。

4.4 IP 定址

重要度 ★★★ | 來源:英4 p.54–71

基本概念

例子遮罩前綴長後綴長位址數
12.23.24.78/8255.0.0.0824224
130.11.232.156/16255.255.0.0161665,536
167.199.170.82/27255.255.255.22427532
前綴位址範圍
0.0.0.0/00.0.0.0 – 255.255.255.255
128.0.0.0/1128.0.0.0 – 255.255.255.255
128.0.0.0/24128.0.0.0 – 128.0.0.255
198.128.128.192/27198.128.128.192 – 198.128.128.223
165.195.130.107/32只有 165.195.130.107

子網路切割

把主機位元改成網路位元,就能把一個區塊切成多個子網路:多借 k 個位元,得到 2k 個子網路。

子網路網路位址範圍
1130.34.12.64/28130.34.12.64 – 130.34.12.79
2130.34.12.80/28130.34.12.80 – 130.34.12.95
3130.34.12.96/28130.34.12.96 – 130.34.12.111
4130.34.12.112/28130.34.12.112 – 130.34.12.127

交換器、路由器與預設閘道

Layer 2 交換器路由器
層級連結層網路層
依據MAC 位址轉送訊框IP 位址繞送資料包
網段連接同一子網路的裝置,裝置間不需路由器每個介面屬於不同 IP 子網路

預設閘道(default gateway)是讓主機能連到其他網路的路由器。

4.5 特殊位址、路由聚合與私有位址

重要度 ★★★ | 來源:英4 p.74–83、p.89

位址名稱用途
0.0.0.0/32全 0 位址主機還不知道自己的 IP 時使用,通常在開機階段,如 DHCP discover 的來源
255.255.255.255/32受限廣播傳給同網路所有主機,如 DHCP discover 的目的地
區塊最後一個位址直接廣播不可指派給個別電腦
區塊第一個位址網路位址通常不指派給電腦
127.0.0.0/8迴路位址測試本機軟體,封包不會離開機器

路由聚合(階層式定址)

CIDR 的優點之一:多個位址區塊可聚合成一個並配給一家 ISP,只要對外通告一條路由。

私有位址

區塊位址數
10.0.0.0/816,777,216
172.16.0.0/121,048,576(講義誤植為 1,047,584,見附錄 E)
192.168.0.0/1665,536
169.254.0.0/1665,536

私有位址不被全球路由辨識,只能單獨使用或搭配 NAT。

ISP 的位址從哪裡來

4.6 NAT 網路位址轉換

重要度 ★★★ | 來源:英4 p.84–88

NAT 在私有與全球位址之間提供對映,讓內部使用私有位址、對外使用少數全球位址。站點必須透過一台具 NAT 能力的路由器連到網際網路。

步驟封包(LAN 主機 192.168.1.1,NAT 對外 IP 200.1.1.2,伺服器 202.1.1.1)說明
1S: 192.168.1.1:50000 D: 202.1.1.1:80主機送出
2S: 200.1.1.2:49000 D: 202.1.1.1:80NAT 改來源並寫入表
3S: 202.1.1.1:80 D: 200.1.1.2:49000回應抵達 NAT
4S: 202.1.1.1:80 D: 192.168.1.1:50000NAT 查表改目的後轉給主機
LAN 側WAN 側
192.168.1.1 : 50000200.1.1.2 : 49000

4.7 DHCP 動態主機設定協定

重要度 ★★★ | 來源:英4 p.90–95

主機加入網路時從伺服器動態取得 IP 位址:可續租;只在連線時持有,所以位址能重用;適合行動使用者。DHCP 伺服器通常與路由器放在一起,服務路由器連接的所有子網路。

訊息來源 IP:埠目的 IP:埠內容
1 Discover0.0.0.0:68255.255.255.255:67有 DHCP 伺服器嗎?yiaddr=0.0.0.0,ID=654
2 Offer223.1.2.5:67255.255.255.255:68可用這個位址:yiaddr=223.1.2.4,ID=654,lifetime 3600 秒
3 Request0.0.0.0:68255.255.255.255:67我要用這個位址,ID=655
4 ACK223.1.2.5:67255.255.255.255:68位址給你了,ID=655

附錄 A 公式總表

名稱公式備註
傳輸延遲dtrans = L / RL 位元、R bps;注意 byte 要乘 8
傳播延遲dprop = d / ss 約 2–3 × 108 m/s
節點延遲dnodal = dproc + dqueue + dtrans + dprop
端對端延遲(無壅塞)dend-end = N (dproc + dtrans + dprop)N 條連結、N−1 台路由器
流量強度La / R不可大於 1
端對端產出率min{R1, R2, …, RN}共用連結要先除以連線數
OC-n 速率n × 51.8 Mbps
非持續性 HTTP2(n+1) RTTn 為參照物件數,忽略傳輸時間
持續性、無管線化(2+n) RTT
持續性、有管線化3 RTT
單一物件回應時間2 RTT + 檔案傳輸時間非持續性
連結使用率請求率 × 物件大小 ÷ 連結速率有快取時再乘(1 − 命中率)
快取平均延遲(1 − h) × 原始伺服器延遲 + h × 快取延遲h 為命中率
IP 標頭長度HLEN × 4 bytesHLEN 5–15
IP 資料長度Total length − HLEN × 4
資料起始位置Offset × 8 bytes
區塊位址數2(32−n)可用主機數再減 2
切割子網路借 k 位元得 2k 個新前綴 = n + k

附錄 B 中英術語對照

英文中文英文中文
host / end system主機/終端系統packet switch封包交換器
access network連線網路edge router邊際路由器
transmission rate傳輸速率physical medium實體媒介
guided media導引式媒介unguided media非導引式媒介
store-and-forward儲存轉送output buffer輸出緩衝區
forwarding轉送routing繞送
circuit switching電路交換packet switching封包交換
processing delay處理延遲queuing delay佇列延遲
transmission delay傳輸延遲propagation delay傳播延遲
traffic intensity流量強度throughput產出率
bottleneck link瓶頸連結protocol stack協定堆疊
message訊息segment區段
datagram資料包frame訊框
encapsulation封裝payload內容(酬載)
multi-home多點上層連接peering對等
botnet殭屍網路packet sniffer封包竊聽器
IP spoofingIP 詐騙end-point authentication端點認證
reliable data transfer可靠資料傳輸loss-tolerant可容忍遺失
bandwidth-sensitive頻寬敏感elastic彈性
flow control流量控制congestion control壅塞控制
stateless無狀態persistent connection持續性連線
pipelining管線化HOL blocking隊頭阻塞
Web cache / proxyWeb 快取/代理origin server原始伺服器
conditional GET條件式 GETresource record資源紀錄
recursive query遞迴查詢iterative query迭代查詢
authoritative DNS授權(權威)DNSserver cluster伺服器叢集
data plane資料層control plane控制層
switching fabric交換結構longest prefix match最長前綴比對
fragmentation分割reassembly重組
subnet mask子網路遮罩route aggregation路由聚合
default gateway預設閘道loopback address迴路位址

附錄 C 數字速查

埠號用途Protocol 值協定
80HTTP1ICMP
443HTTPS2IGMP
53DNS(UDP)6TCP
67DHCP 伺服器17UDP
68DHCP 用戶端89OSPF
項目數字
TCP/IP 層數/OSI 層數5 層/7 層
IPv4/IPv6 位址長度32 位元/128 位元
IP 標頭20–60 bytes;資料包 20–65,535 bytes
欄位長度Version 4、HLEN 4、ToS 8、Total length 16、ID 16、Flags 3、Offset 13、TTL 8、Protocol 8、Checksum 16
MTUEthernet 1500、PPPoE 1492、WiFi 2304、Jumbo 9000
TTL 預設值Windows 128、Unix 類 64
根 DNS13 個邏輯伺服器
同步衛星36,000 公里;延遲約 270 ms
DSL 頻帶0–4 kHz 電話、4–50 kHz 上行、50 kHz–1 MHz 下行
DHCP4 個訊息:Discover、Offer、Request、ACK
DNS 查詢範例8 個訊息
Cookie4 個元件

附錄 D 模擬試題

以下題目依講義範圍自編,用來檢查理解,不代表實際考題。建議先遮住解答,一次寫完再對答案。

一、選擇題

  1. 下列何者與兩路由器之間的距離有關?(A)傳輸延遲(B)傳播延遲(C)處理延遲(D)以上皆是
  2. 連結層交換器實作協定堆疊的第幾層?(A)1(B)1–2(C)1–3(D)1–5
  3. 網路層的封包稱為?(A)訊息(B)區段(C)資料包(D)訊框
  4. 哪一種連線技術是共用廣播媒介?(A)DSL(B)纜線(C)專線(D)以上皆非
  5. TCP 不提供下列何者?(A)流量控制(B)壅塞控制(C)可靠傳輸(D)最低產出率保證
  6. DNS 使用的傳輸協定與埠號預設為?(A)TCP 80(B)UDP 53(C)TCP 443(D)UDP 67
  7. 主機對本地 DNS 伺服器的查詢通常是?(A)遞迴(B)迭代(C)廣播(D)匿名
  8. 快取副本未過期時,伺服器對條件式 GET 回覆?(A)200(B)301(C)304(D)404
  9. 負責存放「郵件伺服器正規名稱」的 RR 類型是?(A)A(B)NS(C)CNAME(D)MX
  10. IP 分割後的重組在哪裡進行?(A)第一台路由器(B)最後一台路由器(C)任何路由器(D)目的主機
  11. Header length 欄位值為 5,代表標頭長度?(A)5 bytes(B)20 bytes(C)40 bytes(D)60 bytes
  12. DHCP Discover 的來源與目的 IP 為?(A)0.0.0.0 → 255.255.255.255(B)伺服器 → 廣播(C)127.0.0.1 → 伺服器(D)0.0.0.0 → 伺服器

二、計算題

  1. 封包 1,500 bytes,連結 10 Mbps、長 2,000 km,s=2 × 108 m/s。求傳輸延遲、傳播延遲及兩者總和。
  2. 封包平均每秒抵達 1,200 個,每個 1,000 bits,連結 1.5 Mbps。求流量強度,並判斷系統是否合理。
  3. 10 組下載共用核心連結 R=10 Mbps,Rs=4 Mbps,Rc=2 Mbps。求每組產出率與瓶頸所在。
  4. 網頁含 1 個 HTML 與 5 張圖,求三種 HTTP 連線方式所需 RTT(忽略傳輸時間)。
  5. 機構每秒 20 個請求、平均物件 1 Mb,對外連結 25 Mbps。求無快取時的使用率,以及命中率 0.5 時的使用率。
  6. IP 資料 4000 bytes,MTU 1500。列出每片資料量、Total length、Offset、MF。
  7. IP 資料 1900 bytes,MTU 1000。列出每片資料量、Offset、MF。(注意 8 的倍數)
  8. ping -l 2000 在乙太網路上會分成幾片?各片 IP 資料量與 Offset 為何?
  9. 標頭欄位 HLEN=7,Total length=1000。求標頭長度、選項長度與資料長度。
  10. 192.168.10.37/27 的遮罩、網路位址、廣播位址、可用主機範圍與數量為何?
  11. 把 200.1.2.0/24 切成 8 個子網路,求新前綴、每個子網路位址數、第 3 個子網路的範圍。
  12. 把 200.23.16.0/24、200.23.17.0/24、200.23.18.0/24、200.23.19.0/24 聚合成一條路由。
  13. 用 4.2 節的轉送表,判斷目的位址 11001000 00010111 00011001 00000001、11001000 00010111 00010101 00000001、11001000 00010110 00000000 00000001 各走哪個介面。

三、問答題

  1. 說明封包交換相較於電路交換的優缺點。
  2. 為什麼 Web 快取能同時降低回應時間與機構對外流量?它帶來什麼新問題、如何解決?
  3. 為什麼 DNS 不採集中式設計?
  4. 說明 NAT 如何讓多台主機共用一個 IP。
  5. 連結層交換器與路由器有何不同?

解答

選擇題

123456789101112
BBCBDBACDDBA

計算題

  1. dtrans=12,000 ÷ 107=1.2 ms;dprop=2 × 106 ÷ (2 × 108)=10 ms;總和 11.2 ms。
  2. La/R=(1,000 × 1,200) ÷ (1.5 × 106)=0.8。小於 1,系統穩定,但已開始有明顯佇列延遲。
  3. 每組分到 R/10=1 Mbps,min{4, 2, 1}=1 Mbps;瓶頸在核心共用連結。
  4. 非持續性 2 × 6=12 RTT;持續性無管線化 2+5=7 RTT;持續性有管線化 3 RTT。
  5. 流量 20 × 1 Mb=20 Mbps。無快取:20 ÷ 25=0.8;有快取:0.5 × 20 ÷ 25=0.4。
  6. 每片最多 1480。三片資料 1480、1480、1040;Total length 1500、1500、1060;Offset 0、185、370;MF 1、1、0。
  7. 1000−20=980,不是 8 的倍數,取 976。資料 976、924;Offset 0、122;MF 1、0。
  8. ICMP 8+2000=2008 bytes。分 2 片:1480、528;Offset 0、185。
  9. 標頭 7 × 4=28 bytes;選項 28−20=8 bytes;資料 1000−28=972 bytes。
  10. 遮罩 255.255.255.224;區塊大小 32,37 落在 32–63;網路位址 192.168.10.32;廣播 192.168.10.63;可用 .33–.62,共 30 個。
  11. 借 3 位元得 /27;每個 32 個位址;第 3 個子網路 200.1.2.64 – 200.1.2.95。
  12. 第三位元組 16–19 為 000100xx,前 22 位元相同,聚合為 200.23.16.0/22。
  13. 第一個符合 00011*** → 介面 2;第二個符合 00010*** → 介面 0;第三個第二位元組不符 → 介面 3。

問答題重點

  1. 優點:依需求共用、頻寬分享好、簡單有效率、成本低、不必預約。缺點:延遲不固定且無保障,壅塞時會遺失,較不適合嚴格即時服務。
  2. 快取離用戶端近,命中時不必經過對外連結。新問題是副本可能過期,以條件式 GET(If-modified-since,未修改回 304)解決。
  3. 單點失效、流量龐大、距離遙遠造成延遲、維護困難。所以採階層式分散資料庫。
  4. 路由器把內部(私有 IP、埠)換成(全球 IP、新埠)並記入轉換表;回應抵達時依埠號查表換回。靠埠號區分不同主機的連線。
  5. 交換器在第 2 層,依 MAC 位址轉送訊框,連接同一子網路;路由器在第 3 層,依 IP 位址繞送,每個介面屬於不同子網路,並以最長前綴比對查轉送表。

附錄 E 講義疑點與不一致

整理時發現下列地方與計算結果或其他頁面不一致。本書正文採右欄的處理方式;若考試依講義原文出題,請以老師說法為準。

位置講義內容本書處理
英4 p.83172.16.0.0/12 位址數為 1,047,584220=1,048,576,判斷為誤植
英4 p.83169.254.0.0/16 列為私有位址依講義列出。一般而言它是 link-local(自動設定)位址,與 RFC 1918 三段私有位址不同
英2 p.36 與 p.20表格把 HTTPS 的 OSI 層寫成 Transport,p.20 則說 TLS 實作在應用層依 p.20,HTTPS 屬應用層、TLS 位於應用程式與 TCP 之間。建議向老師確認
英4 p.45、p.50ping 分割圖把 8 bytes ICMP 標頭畫在最後一片各片資料量總和正確(128、248)。實際上 ICMP 標頭在第一片資料的開頭;考試若問數字,答 1480+128、1480+1480+248
英1 p.122連結層「使用網路層服務」傳送資料包應是使用實體層服務(下一層),判斷為誤植
英2 p.42PUT 的內容放在 POST 請求訊息應為 PUT 請求訊息,判斷為誤植
中1 p.41銅線直徑「約 1 厘米」課本原文一般是約 1 mm;厘米(cm)顯然過粗,判斷為翻譯問題
英2 p.22 與 p.29HTTP 1.1 標 RFC 7320;另處標 RFC 1945、2616RFC 編號版本不同。不建議花時間背
英2 p.53、55 與 p.57、64管線化是 HTTP/1.1 預設;多數瀏覽器卻預設關閉不算矛盾:前者是規格,後者是實作
中1 p.38、英1 p.49、54廣域無線速率分別為 60 Mbps、1–10 Mbps、數十 Mbps技術世代不同。計算題以題目給定為準
英1 p.82 與 p.86傳播速率約 2 × 108,或 2–3 × 108 m/s媒介不同所致。計算題以題目給定為準
英2 p.74 與 p.75–76LAN 延遲有時寫 msecs、有時 usecs;p.76 仍顯示未裝快取的數字量級都很小不影響結論;裝快取的實際計算在 p.77
多處dprog、tire-1、global transmit ISP、DCP server 等拼字分別應為 dprop、tier-1、transit、DHCP

範圍提醒

附錄 F 考前檢查清單

每一項都試著不看書說出來或算出來。做不到的,回到括號中的章節。

第 1 章

第 2 章

第 4 章