【計算機網路筆記】1.3 The Network Core

Hello Guys, I’m LukeTseng. 歡迎你也感謝你點入本篇文章,本系列主要讀本為《Computer Networking: A Top-Down Approach, 8th Edition》,就是計算機網路的聖經,會製作該系列也主要因為修課上會用到。若你喜歡本系列或本文,不妨動動你的手指,為這篇文章按下一顆愛心吧,或是追蹤我的個人公開頁也 Ok。

註:後來改成看第八版了,發現第七版在一些資訊蠻落後的。

1.3.1 Packet Switching(封包交換)

基本概念與封包

回顧 1.1

若要寄一封很長的電子郵件或下載一個很大的高畫質影片,網路不會一次把整個巨大的檔案傳出去。

來源終端系統會將這些訊息切成較小的資料塊,這些資料塊被稱為封包(Packet)

在來源與目的地終端系統之間,每個封包都會經過通訊連結(Communication Links)與封包交換(Packet Switches)設備,而封包交換設備主要有兩種類型:

  • 路由器(router)
  • 連結層交換器(link-layer switch)

封包傳輸速率

設封包大小為 LL bits(位元)。

通訊連結的傳輸速率是 RR bits/sec(位元/秒)。

則將這個封包推送到連結上所需的時間(傳輸延遲)就是:$$\text{傳輸時間}=\frac{L}{R} \text{秒}$$

另外,封包在每條通訊連結上,皆以該連結的完整傳輸速率進行傳送。

儲存後轉發(Store-and-Forward Transmission)

大多數封包交換(Packet Switches)設備在連接連結的輸入端採用儲存後再轉發(Store-and-Forward Transmission)的傳輸方式。

什麼是儲存後轉發?交換器(Switches)必須完整收到整個封包的所有位元後,才能開始將該封包的第一個位元傳送到下一個連結。

例子:傳一個封包

設有兩個終端系統,由一台路由器(router)相連。

通常一台路由器會連接多條連結,因為它的任務是把進入的封包切換到某一條輸出連結。

但於此例中,路由器的任務相當單純,只需將封包從一條(輸入)連結轉送到唯一連接的另一條連結。

簡單來說,這個例子主要就是在跑這個流程(封包傳送流程):

源終端系統(Source) -> 路由器 (Router)-> 目的終端系統(Destination)。

image

Image Source:Computer Networking: A Top-Down Approach (8th ed., p. 54, Figure 1.11)

現在有:

  • 大小為 LL 的封包
  • 速率為 RR 的連結

,要傳送一個封包到目的終端系統。

時間軸推導

  • 時間點 00 :源終端系統開始做傳送封包。
  • 時間點 LR\frac{L}{R} :源終端系統傳送完畢,此時,路由器剛好收到了這個封包的最後一個 bit。
    • 因為「儲存後轉發」,路由器在收到最後一個 bit 之前,不能轉發任何東西,必須先將收到的部分儲存(Buffer)起來。
  • 一樣時間點 LR\frac{L}{R}:路由器完整收到了封包,現在可以開始向目的終端系統轉發了。
  • 時間點 2LR\frac{2L}{R}:路由器花費了 LR\frac{L}{R} 的時間將封包傳到目的終端系統,此時目的終端系統完整收到了封包。

註:總延遲是 2LR\frac{2L}{R}(忽略光速傳播的延遲)。

延遲通式推導

如果路徑上有 NN 條連結(也就是由 N1N−1 個路由器組成),傳送一個封包的端到端延遲(End-to-end delay)公式為: $$d_\text{end-to-end} = N \times \frac{L}{R}$$

補充:傳 P 個封包

若有 PP 個封包,在由 NN 條連結(Links)組成的路徑上傳送,其整體端到端延遲(End-to-end delay)為:$$d_\text{end-to-end} = (N + P - 1) \times \frac{L}{R}$$

推導過程

可將此傳輸過程拆成兩個部分來看:

  • 第一個封包的過程
  • 後續封包的跟進

假設單一封包的傳輸延遲(Transmission Delay)為 δ=LR\delta = \frac{L}{R}

  1. 第一個封包的延遲

當第一個封包(Packet 1)要到達目的地時,須完整經過每一條連結。

由於為儲存後轉發,在每個路由器都必須經歷一次接收與轉發的過程。

如同先前推導的公式,第一個封包抵達目的地的時間是:$$T_{\text{1st packet}} = N \times \frac{L}{R}$$

  1. 管線化效應(Pipelining)

源終端系統不需要等到第一個封包抵達目的地後,才開始傳送第二個封包。

在時間點 LR\frac{L}{R} 時,源終端系統剛把 Packet 1 送給第一個路由器。

此時源終端系統的連結空出來了,會馬上傳送 Packet 2。

表示 Packet 2 會跟在 Packet 1 後面,晚一個 LR\frac{L}{R} 的時間單位。

同理,Packet 3 會比 Packet 2 晚一個 LR\frac{L}{R} 到達。

  1. 結果

由於路徑上每一條連結的速率都是 RR,沒有瓶頸,封包會像工廠流水線一樣一個接一個抵達目的地。

目前得知以下這三件事:

  • 第 1 個封包抵達時間:N×LRN \times \frac{L}{R}
  • 剩餘的封包數量:P1P - 1
  • 每個後續封包抵達的間隔:LR\frac{L}{R}

因此總時間 = 第一個封包到達的時間 + 剩餘封包接著到達所需的時間:$$d_\text{end-to-end} = \left( N \times \frac{L}{R} \right) + \left( (P - 1) \times \frac{L}{R} \right)$$

提取公因式 LR\frac{L}{R} 後,即得到通式:$$d_\text{end-to-end} = (N + P - 1) \times \frac{L}{R}$$

排隊延遲與封包遺失(Queuing Delays and Packet Loss)

註:封包遺失又稱為丟包,這個名詞應該是大家所熟悉的。

既然有了儲存後轉發,如果封包來得太快怎麼辦?

封包交換設備會有以下的機制:

  1. 輸出緩衝區(Output Buffer,也稱為輸出佇列 output queue):
    • 每個封包交換器對於它連出去的每一條連結,都有一個輸出緩衝區。
    • 若發現該連結正忙於傳送另一個封包,則新抵達的封包就必須要在輸出緩衝區等待。
    • 如同高速公路入口前的閘道排隊區。
  2. 排隊延遲(Queuing Delay):
    • 如果一個封包到達路由器,發現路由器正忙著傳送另一個封包,或者隊伍裡已經有其他封包在等,這個新來的封包就必須在緩衝區裡排隊。
    • 在這過程中會因此產生排隊延遲,這個延遲是不固定的,取決於當時網路有多擁塞(congestion)。

但這機制會有個缺點,就是緩衝區的容量有限,抵達的封包有可能發現輸出緩衝區已經被其他等待傳送的封包完全佔滿。

若緩衝區爆滿,就會發生封包遺失(Packet Loss)的現象,也就是新抵達的封包,或是佇列中已存在的某個封包,會被直接丟棄。

書中比喻:就像在銀行排隊等櫃檯,或者在收費站前排隊一樣,如果很多人同時到達(突發流量),隊伍就會變長,等待時間變久,有些人可能會等得不耐煩了,就直接走掉(丟包)。

轉發表與路由協定(Forwarding Tables and Routing Protocols)

路由器收到封包後,怎麼知道要往哪條連結送?

  1. IP 位址(IP Address):網際網路上的每個終端系統都有一個 IP 位址,當源終端系統要寄封包時,會把目的地的 IP 位址寫在封包的標頭(Header)裡。
  2. 轉發表(Forwarding Table):每個路由器裡面都有一張轉發表,這張表將目的地位址(或位址的一部分)映射到路由器的輸出連結。
    • 運作方式:當封包到達,路由器看它的目的地位址,查表,然後把封包導向正確的輸出連結。
  3. 路由協定(Routing Protocols):這些表如何填寫?是人工設定?
    • 不完全是。
    • 網際網路使用特殊的路由協定來自動設定這些轉發表,這些協定會計算從路由器到目的地的最短或最佳路徑,並依據此更新轉發表。

1.3.2 Circuit Switching(電路交換)

預留資源(Resources Reserved)

進入 Circuit Switching 前先了解什麼是預留資源(Resources Reserved)?

基本定義:在電路交換網路中,當兩個終端系統(End Systems)要進行通訊時,網路必須為這段通訊沿途的路徑(Path)預留所需的資源(如緩衝區、連結傳輸速率),這段資源會在這段通訊期間一直被佔用。

相比封包交換(Packet Switching),封包交換是不預留資源的,它是按需求使用(On-demand),所以可能會遇到排隊等待的情況。

書中用餐廳訂位的例子比喻兩者差異:

  • 電路交換(Circuit Switching):像需要提前預約的餐廳。出門前,須先打電話預約(建立連線),雖過程麻煩,但一旦到餐廳,桌子已經都準備好了,可立即入座並點餐(保證服務品質)。
  • 封包交換(Circuit Switching):不需要預約,直接去就行,但如果到的時候人很多,就須在門口排隊等待(排隊延遲, Queueing Delay)。

例子:傳統電話網路

傳統電話網路(Telephone Networks)是電路交換的典型例子。

  1. 建立連線(Call Setup):當要打電話給別人時,網路須先在發送者接收者之間建立一條真正存在的連線,在電話通訊的術語中,這條連線叫做電路 (Circuit)。
  2. 狀態維護:這條路徑上的所有交換器(Switches)都會為這條連線維持一個連線狀態(Connection State)。
  3. 保證速率:一旦電路建立,網路就會在沿途的每條連結上預留一個固定的傳輸速率,表示可用這個保證的速率傳送資料,不會受到網路上其他流量的干擾。

例子 2:簡單網路圖

image

Image Source:Computer Networking: A Top-Down Approach (8th ed., p. 58, Figure 1.13)

如圖,圖中有四個交換器、四個連結。

假設每條連結可以支援 4 條電路。

當主機 A 要跟主機 B 通訊時,系統會在沿途的每條連結上佔用其中 1 條電路。

如果每條連結的總傳輸速率是 1 Mbps,而每條連結有 4 條電路,那麼這條連線就會獲得 1 Mbps / 4 = 250 kbps 的專用頻寬。

多工技術(Multiplexing in Circuit-Switched Networks)

既然一條實體線路可以同時承載多條電路,那這是怎麼切分的?有兩種多工技術:FDM 與 TDM。

  1. 分頻多工(FDM, Frequency-Division Multiplexing)
    • 原理:將一條連結的頻率頻譜(Frequency Spectrum)切分成多個頻段,給多個連線共同使用。
    • 運作方式:每一條連線在通話期間,都會被分配到一個專屬的頻段(Frequency Band)。
    • 傳統電話網路通常分配 4 kHz 的頻寬(bandwidth)給每一條連線。
    • 例:FM 廣播電台也是利用 FDM 分享 88 MHz 到 108 MHz 的頻譜來分配頻道。
    • 註:頻寬(Bandwidth)為網路傳輸數據的「能力」或「最大容量」,可想成高速公路上的車道數量。
  2. 分時多工(TDM, Time-Division Multiplexing)
    • 原理:將時間切分成固定的訊框(Frames),每個訊框再切分成固定數量的時隙(Time Slots)。
    • 運作方式:當建立連線時,網路會在每個訊框中指定一個「專屬時隙」給這個連線,在這個時隙內,該連線可以利用全部的頻寬來傳輸資料。
    • 計算傳輸速率:假設每秒傳輸 8,0008,000 個訊框,而每個時隙包含 8 bits8 \ bits,那這條電路的傳輸速率就是 8,000×8=64kbps8,000 \times 8 = 64 kbps
    • 註:時隙也稱時槽,就是將一段連續的時間切分成許多固定大小的小格子,讓不同的任務或使用者按順序輪流使用。

下圖是 FDM、TDM 的比對圖:

  • FDM 是在頻率軸上水平切分(每人一直佔用一小塊頻率)。
  • TDM 是在時間軸上垂直切分(每人輪流佔用全部頻率一小段時間)。

image

Image Source:Computer Networking: A Top-Down Approach (8th ed., p. 59, Figure 1.14)

電路交換的缺點:沉默期的浪費

支持封包交換的人通常會批評電路交換很浪費,原因如下:

  • 沉默期(Silent Periods):例如在講電話時突然不說話了,或者一位放射科醫師遠端連線看 X 光片,在思考時沒有傳輸數據,這樣會導致資源閒置。
  • 資源閒置:在電路交換中,即便現在沒在傳資料,那個頻段或時隙依然是被佔用的,別人不能用,就導致了網路資源的利用率低落。
  • 複雜性:建立端到端的電路和預留頻寬,需要複雜的訊號軟體 (Signaling Software) 來協調沿途的所有交換器。

傳輸時間計算範例

題目情境:

  • 要傳送一個檔案,大小為 640,000 bits640,000 \ bits
  • 從主機 A 傳到主機 B,透過電路交換網路。
  • 網路的所有連結使用 TDM,每秒傳輸速率為 1.536 Mbps1.536 \ Mbps
  • TDM 每個訊框(Frame)有 24 個時隙(Slots)。
  • 建立連線的設定時間需要 500 msec(0.5 秒)。

解題步驟:

  1. 計算單一電路的傳輸速率:連結總速率是 1.536 Mbps1.536 \ Mbps ,切成 24 份,結果如下: $$= \frac{1.536 \ Mbps}{24} = 64 kbps$$
  2. 計算傳輸檔案所需的時間:檔案大小除以傳輸速率,結果如下: $$= \frac{640,000 \ bits}{64 \ kbps} = \frac{640,000 \ bits}{64, 000 \ bits/sec} = 10 s$$
  3. 計算總時間:總時間 = 建立連線時間 + 傳輸時間,結果如下: $$= 0.5s + 10s = 10.5s$$

在此計算中,傳輸時間與連結的數量(距離)無關。

無論中間經過 1 條還是 100 條連結,因為頻寬是專屬預留的,傳輸時間都是 10 秒(在這暫時忽略電磁波傳遞的微小延遲 Propagation Delay)。

封包交換 vs 電路交換

優缺點

  • 封包交換批評者(支持電路交換一方)認為:
    • 封包交換不適合即時服務(Real-time services)(如電話、視訊會議)。
    • 理由:因為封包交換有變動且不可預測的端到端延遲(主要是因為排隊延遲 Queueing Delays),無法保證封包什麼時候到。
  • 封包交換的支持者認為:
    • 封包交換能更好地共享傳輸容量(Better sharing of transmission capacity)。
    • 更簡單、更有效率,且實作成本更低。

例 1:能容納的用戶數量

接著用數字說話,證明為何封包交換更有效率。

情境設定:

  • 有一條 1 Mbps1 \ Mbps 的連結(Link)。
  • 每個使用者活躍時(Active)需要 100 kbps100 \ kbps 的傳輸速率。
  • 使用者不是一直都在傳資料,他們只有 10%10 \% 的時間是活躍的(例如看網頁時,大部分時間在讀內容,沒在下載)。
  1. 使用電路交換
    • 電路交換必須為使用者預留資源,無論他是否活躍。
    • 計算: 1 Mbps/100 kbps=101 \ Mbps / 100 \ kbps = 10
    • 結果這條線路只能給 10 個使用者用,第 11 個人想進來就被拒絕了,即便那 10 個人裡面有 9 個人正在發呆(沉默期)。
  2. 使用封包交換
    • 封包交換不預留資源,大家按照需求去做使用。
    • 假設讓 3535 個使用者共享這條線路。
    • 發生擁塞的機率:
      • 只有當 超過 1010 個使用者同時活躍 時,總需求流量( >10×100 kbps=1 Mbps>10×100 \ kbps=1 \ Mbps )才會超過連結容量,導致排隊或掉包。
      • 利用二項分佈(Binomial Distribution)計算, 3535 個人中同時有 1111 人以上活躍的機率極低,大約只有 0.00040.0004
    • 結果封包交換可支援 3535 個使用者,而且幾乎(99.96% 的時間)能像電路交換一樣順暢。

結論:在同樣的資源下,封包交換能支援的使用者數量是電路交換的 33 倍以上。

機率是怎麼算的?請見下方:

此例中,每位使用者的活躍機率是 p=0.1p = 0.1 ,且把每人的活躍狀態視為獨立事件。

XX 表示 3535 人中同時活躍的人數,則 XBinomial(35,0.1)X \sim Binomial(35, 0.1)

因為連結能同時承載的活躍使用者數是 10 人,且不擁塞,所以只有在 X11X \ge 11 的時候才會超過容量,導致排隊或丟包。

二項分布的單點機率是: $$P(X=k)=\binom{n}{k}pk(1-p){n-k}$$

其中 (nk)\binom{n}{k} 是「從 nn 個人選 kk 個活躍」的組合數, pkp^k 表示 kk 人活躍, (1p)nk(1 - p)^{n - k} 表示剩下不活躍的人。

我們要的是 X11X \ge 11 的情況: $$P(X\ge 11)=\sum_{k=11}^{35} P(X=k)$$

最終結果: P(X11)0.00042430.0004P(X\ge 11)\approx 0.0004243\approx 0.0004

例 2:突發傳輸速度(Burst Performance)

情境設定:

  • 1010 個使用者。
  • 其中 11 個使用者 突然要傳送 1,0001,000 個封包(每個封包 1,000 bits1,000 \ bits ,總共 1,000,000 bits1,000,000 \ bits )。
  • 其他 99 個使用者這時候剛好都在發呆(沒有流量)。
  1. 使用電路交換(TDM):
    • 由於 TDM(分時多工),時間切成 1010 份(每人 11 份)。
    • 即便其他人不說話,那 99 份時間也是空的,這個活躍使用者 只能用他自己的那 11 份。
    • 他的有效速率只有總頻寬的 110\frac{1}{10},即 100 kbps100 \ kbps
    • 傳輸時間:$$\frac{1,000,000 \ bits}{100,000 \ bps} = 10s$$
  2. 使用封包交換:
    • 因為其他人沒在用,這個活躍使用者可以獨佔整個 1 Mbps1 \ Mbps 的連結。
    • 傳輸時間:$$\frac{1,000,000 \ bits}{1,000,000 \ bps} = 1s$$

結論:在此例,封包交換的速度是電路交換的 10 倍。

小結

兩者最核心的差異:

  • 電路交換 (Circuit Switching):
    • 預先分配(Pre-allocates)。
    • 不管你有沒有在用,資源都給你留著。沒用到的資源就是浪費。
  • 封包交換 (Packet Switching):
    • 按需分配(Allocates on demand)。
    • 資源是依據封包一個一個來分配的,只有當你有資料要傳時才佔用連結。

儘管兩者在今天的電信網路中都存在,但趨勢明顯是朝封包交換發展。

傳統的電話網路也正在慢慢遷移到封包交換(如 VoIP),特別是昂貴的跨國電話部分,通常底層都已經是用封包交換在跑了。

1.3.3 A Network of Networks(網路中的網路)

如何連接數以百萬計的 ISP?

現狀:在前幾節已知,終端系統(End Systems)是透過存取 ISP(Internet Service Provider)連上網際網路的,這些接入 ISP 可以是大學、公司、或者是當地的電信業者。

問題:僅僅連上存取 ISP 是不夠的,網際網路的目的是讓所有的終端系統都能彼此通訊,因此,這成千上萬個存取 ISP 彼此之間必須連接起來。

天真的想法(Mesh Design, 網狀設計):如果每個存取 ISP 都直接拉一條線跟其他所有存取 ISP 連接,會發生什麼?這在經濟上是不可行的,若有 NN 個 ISP,等同需要 O(N2)O(N^2) 的連接數量,成本過高。

演化結構 1:單一全球傳輸 ISP

導致 Network Structure 1:會演化該結構主要因為要降低成本。

  • 概念:建立一個巨大的全球傳輸 ISP(Global Transit ISP)。
  • 運作方式:所有的存取 ISP 都只跟這一個全球 ISP 連接,這樣任兩個存取 ISP 都可以透過這個全球 ISP 進行通訊。
  • 經濟關係:客戶與供應商(Customer and Provider)概念。
    • 對每個存取上 ISP 的連線收費,給付給全球傳輸 ISP 以獲得連線服務。
    • 存取 ISP 是客戶(Customer)。
    • 全球傳輸 ISP 是供應商(者)(Provider)。

演化結構 2:多個全球傳輸 ISP

導致 Network Structure 2:如果經營全球 ISP 能賺錢,自然會有競爭者加入。

  • 概念:存在多個全球傳輸 ISP(如 ISP A, ISP B, ISP C)。
  • 運作方式:存取 ISP 可以選擇向哪一個全球 ISP 購買服務。
  • 問題:如果 ISP A 的客戶想要傳資料給 ISP B 的客戶,怎麼辦?
    • 互連(Interconnect):這些頂層的全球 ISP 彼此之間必須連接,如果不連接,不同 ISP 的客戶就無法通訊,違反了網際網路的初衷。

演化結構 3:多層級結構(Multi-tier Hierarchy)

導致 Network Structure 3:現實世界中,很少有 ISP 能真正覆蓋全球每一個城市。

  1. 區域 ISP(Regional ISP):在某個區域(如中國、歐洲某國),會有較大的區域 ISP 連接當地的存取 ISP。
  2. Tier-1 ISP(第一層 ISP):區域 ISP 再向上連接到 Tier-1 ISP。
    • 定義:Tier-1 ISP 類似前面說的全球傳輸 ISP,它們覆蓋範圍極廣(如 AT&T, Sprint, NTT, Level 3 等)。
    • 特點:Tier-1 ISP 彼此互連,且它們處於層級的頂端,不需要向任何人付費來交換流量。
  3. 層級關係:
    • 存取 ISP -> 區域 ISP -> Tier-1 ISP。
    • 每一層都是下一層的供應商(Provider),下一層是上一層的客戶(Customer)。

演化結構 4:生態系的完善(PoP, Multi-homing, Peering, IXP)

導致 Network Structure 4:Network Structure 3 還只是個粗略的近似,為了更貼近現實,書中加入了四個關鍵的技術與商業機制。

  1. PoP(Points of Presence, 接續點):供應商 ISP 網路中的一個實體位置(通常是一組路由器),客戶 ISP 可在此將自己的路由器直接連接到供應商的路由器上,從而存取供應商的網路。
  2. Multi-homing(多點上層連接):
    • 定義:一個 ISP(除了 Tier-1 以外)可選擇連接到兩個或以上的供應商 ISP。
    • 目的:為了可靠性,如果一個供應商斷線了,還可以透過另一個供應商傳輸數據。
  3. Peering(對等):
    • 目的:為了省錢。如果兩個同等級的 ISP(如兩區域 ISP)想要交換流量,透過上層供應商轉送需要付費。
    • 作法:可直接拉線連接彼此,直接交換流量。
    • 經濟:通常免費,雙方都不用付錢給對方,因為對雙方都有利。
  4. IXP(Internet Exchange Point, 網際網路交換點):一個實體的匯流點(通常是一棟建築物,裡面有交換器),多個 ISP 可以在這裡會合並進行 Peering。

演化結構 5:內容供應者網路(Content Provider Networks)

導致 Network Structure 5:為描述現今網際網路生態,多了內容供應者,如 Google, Microsoft。

  • 為什麼要改變?像 Google 這樣的公司有巨大的流量,如果完全依賴 Tier-1 和區域 ISP 來傳送資料,成本會非常高,而且無法完全控制傳輸品質。
  • 作法:Google 建立了自己的私有網路(Private Network),這個網路遍布全球,連接了它在各地的資料中心。
  • 繞過(Bypass):Google 試著直接連線到較低層級的 ISP(如直接連到家附近的存取 ISP 或區域 ISP),從而繞過 Tier-1 ISP。
    • 這樣做能省錢(減少付給頂層 ISP 的費用),又能讓內容更靠近使用者,速度更快。

小結

現今的網際網路是一個複雜的「一群網路中的網路」:

  1. Tier-1 ISPs:位於中心,彼此互連,覆蓋全球。
  2. IXPs:讓不同 ISP 進行對等互連的交換中心。
  3. Regional ISPs:連接 Access ISPs 和 Tier-1 ISPs。
  4. Access ISPs:連接最終用戶。
  5. Content Provider Networks(如 Google):構建自己的旁路系統,直接與各層級 ISP 連接以優化內容傳遞。

image

Image Source:Computer Networking: A Top-Down Approach (8th ed., p. 64, Figure 1.15)

總整理

封包交換(Packet Switching)

核心概念:

  • 資料先被切成封包(Packet)再傳送,不會一次傳完整檔案。
  • 封包經過通訊連結(Communication Links)與封包交換設備(Router / Link-layer switch)做傳遞。
  • 不預留資源,按需求即時使用。

傳輸與延遲:

  • 單一封包傳輸延遲:$$\text{傳輸時間}=\frac{L}{R} \text{秒}$$
  • 採用儲存後轉發(Store-and-Forward):交換器(Switches)必須完整收到整個封包的所有位元後,才能開始將該封包的第一個位元傳送到下一個連結。
  • 若經過 NN 條連結,單一封包端到端延遲:$$d = N \times \frac{L}{R}$$

傳輸多個封包的延遲(管線化效應, Pipelining):

  • 傳送多個封包時,封包會像流水線一樣接力前進。
  • 傳送 PP 個封包的總延遲:$$d = (N + P - 1) \times \frac{L}{R}$$

排隊延遲與丟包:

  • 交換器有輸出緩衝區(Output Buffer)。
  • 流量過大時:
    • 封包需排隊 → 排隊延遲(Queueing Delay)
    • 若緩衝區滿 → 封包遺失(Packet Loss)
  • 延遲具高度不確定性,與網路擁塞程度有關。

路由與轉發:

  • 封包標頭(Header)含目的地 IP 位址。
  • 路由器會自動查轉發表(Forwarding Table)決定輸出連結。
  • 路由協定(Routing Protocol)負責自動計算路徑並更新轉發表。

電路交換(Circuit Switching)

核心概念:

  • 通訊前先建立連線,並沿路預留資源(頻寬、時槽)。
  • 一旦建立電路,速率固定、品質有保證。
  • 典型例子:傳統電話網路。

特性:

  • 需 Call Setup(建立連線)
  • 交換器需維持連線狀態(Connection State)
  • 即使沒在傳資料,資源仍被佔用、效率低。

多工技術:

  1. FDM(分頻多工)
    • 切頻率,每條連線佔固定頻段。
    • 電話語音常用 4 kHz。
  2. TDM(分時多工)
    • 切時間,每條連線固定使用一個時槽。
    • 經典電話速率:64 kbps。

缺點:

  1. 沉默期(Silent Period)造成資源浪費。
  2. 建立與管理電路複雜。
  3. 彈性差,不適合突發流量。

封包交換 vs 電路交換

面向封包交換電路交換
資源配置按需使用預先保留
延遲不固定(可能排隊)穩定可預期
利用率低(沉默期浪費)
即時服務較不利有利
成本與彈性低、彈性高高、彈性低

效率證據:

  • 在使用者只偶爾活躍的情境下:
    • 封包交換可支援 3 倍以上使用者。
    • 擁塞機率極低(約 0.04%)。
    • 突發傳輸(Burst)。
    • e封包交換可瞬間獨佔頻寬、快 10 倍。

現代網路趨向於使用封包交換。

網路中的網路(A Network of Networks)

為何需要層級結構?若所有 ISP 彼此直連,成本為 O(N2)O(N^2),是不可行的。

網路結構演化摘要:

  1. Tier-1 ISP
    • 位於核心,彼此互連。
    • 不需向任何人付費。
  2. Regional ISP(區域 ISP)
    • 連接存取 ISP 與 Tier-1
  3. Access ISP(存取 ISP)
    • 直接服務終端使用者。
  4. PoP(Point of Presence, 接續點)
    • 同時連多個上層 ISP,提高可靠性
  5. Multi-homing(多點上層連接)
    • 同時連多個上層 ISP,提高可靠性
  6. Peering(對等)
    • 同級 ISP 免費交換流量
  7. IXP(Internet Exchange Point, 網際網路交換點)
    • 多 ISP 集中對等互連的實體交換中心
  8. 內容供應者網路(如 Google)
    • 自建私有全球網路
    • 直接連接低層 ISP,繞過 Tier-1
    • 成本更低、延遲更小