前言
爲了介紹虛電路網絡與數據報網絡,首先從網絡層說起。然後分別介紹了虛電路網絡與數據報網絡的主要內容、核心思想。最後進行對比和總結。
1. 網絡層
應用層 |
傳輸層 |
網絡層 |
鏈路層 |
物理層 |
網絡層的作用是將分組從一臺主機發送到另外一臺主機。
在傳輸層有兩種服務:
- UDP:無連接服務
- TCP:有連接服務
在網絡層,也有類似的兩種服務:
- 虛電路(Virtual Circuit):無連接服務
- 數據報網絡(datagram network):有連接服務
2. 虛電路網絡
核心思想:事先建立好一條虛電路、分配好每條路徑的VC號,通過VC號和路由轉發表確定下一跳,在事先建好的虛電路中進行通信
三個階段:
- 虛電路建立:在傳輸數據之前,需要先建立一條通信鏈路。傳輸層指定目標地址,網絡層決定路徑,並沿着該路徑爲每一條鏈路確定一個VC號
- 數據傳送:根據VC號,查詢中間主機中的路由表,從出接口轉發,並用出VC號更新舊的VC號。可以看出,路徑上的每個主機都要維護虛電路連接的信息
- 虛電路拆除:網絡層通知網絡另一側的端系統結束通信。路徑中的主機從表中刪除相應的信息,表明此條虛電路已經不存在
3. 數據報網絡
核心思想:在分組中攜帶目的地址,傳輸過程中根據分組的目的地址、利用目的地址的前綴與路由表中的地址進行最大長度匹配來轉發分組,無需事先建立連接
如果我們在每個路由器的路由表中使用完整的地址的話,全世界有4 billion個IP地址,顯然是不現實的。
因此,在實際中,路由表中僅保存了IP地址的前綴。當一個分組到來時,用分組中的目的地址的前綴與路由表中的表項進行匹配,如果存在匹配,則從相應的鏈路轉發。路由轉發表根據選路算法修改。
比如這裏的路由表:
最長匹配規則:分組的目的地址11001000 00010111 00010110 10100001,前21比特前綴匹配路由表中的第一項,因此,路由器向鏈路接口0轉發該分組
4. 對比與總結
比較內容 | 虛電路 | 數據報網絡 |
---|---|---|
描述 | 在網絡層提供連接服務 | 在網絡層提供無連接服務 |
預留資源 | 虛電路建立期間,網絡層可以預留虛電路路徑上的資源,比如緩衝區、CPU、帶寬等 | 無 |
分組(Packets) | 數據包始終以其發送的順序到達其預期的目標主機 | 數據包以其發送的不同順序到達其預期的目標主機 |
路徑 | 沿着虛擬電路進行轉發 | 每個分組獨立選擇路由進行轉發 |
可靠性 | 可靠,分組按發送順序到達終點 | 不可靠的,分組不一定按發送順序到達終點 |
開銷 | 每次必須建立新連接並保留資源並在路由器處進行額外的信息處理,成本很高 | 每次通信時不會預留資源,成本低、易於實現 |
地址 | 目標地址僅在連接建立時使用,傳輸過程中每個分組使用VC號 | 每個分組都有完整的目標地址 |
差錯處理 | 虛擬電路中遇到故障則無法通信 | 故障路由器可能會丟失數據包 |
應用 | ATM,電話 | IP網絡,互聯網 |
Tor建立連接時使用的是虛電路的方式,以前上課的時候沒太在意虛電路,現在回來補課了 (T▽T)
這兩週太劃了,得好好學習才行!
Question: Tor建立連接時爲什麼使用虛電路的方式?
My Answer:
- 可能的原因是如果採用數據報網絡,那麼分組必須攜帶目標的地址,即經過的節點都知道這個分組是要發給誰的。
- 比如,數據包從Alice->Bob的時候,路徑上的節點都知道這個數據包要發往Bob;數據包從Bob->Alice的時候,路徑(不一定是同一條路徑)中的節點也都知道這個數據包是發給Alice。
- 匿名性不強