參考書籍:
- James F. Kurose, Keith W. Ross. 計算機網路—自頂向下方法 (7th). 機械工業出版社,2018.
- William Stallings. 資料與計算機 通訊 (8th). 電子工業出版社
1.What is the Internet made of ?
Component View 具體構成角度
-
這個角度根據 Internet 的硬體和軟體元件來描述。
-
所有連線到網路的裝置被稱為主機(
host
) 或端系統(end systems
)。 -
host / end-systems
透過 通訊鏈路(communication links
) 和分組交換機(packet switch
) 連線到一起。-
通訊鏈路包括不同型別的物理媒介:如同軸電纜、銅線、光纖還有無線電頻譜等,它們以不同的傳輸速率傳輸資料(單位 位元/秒),構建物理上的網路。
-
當一臺端系統要向另一臺傳送資料時,傳送端將資料分段,併為每段加上首部位元組——這樣形成的資訊包叫分組(
packet
)這篇博文解釋了 分組 和 包 的概念區別: https://www.cnblogs.com/sddai/p/5649939.html
-
分組交換機目前有兩種最有名的型別:路由器(
router
)和鏈路層交換機(link-layer switch
),分別完成的工作是 使packet在各個 physical network 中傳輸(用於網路核心中,網路核心的概念下文闡述) 和 接收入鏈路層幀並將它們轉發出鏈路。
-
-
連線好後,端系統要真正的接入 Internet 還需要透過因特網服務提供商(
ISP
)。-
每個 ISP 是一個由多個分組交換機和多段通鏈路組成的網路;低層的 ISP 透過國家的、國際的高層ISP(如 AT&T)互聯起來,而高層ISP是由透過高速光纖鏈路互聯的高速路由器組成的。無論是高層還是低層ISP 每個都是獨立管理的。
國內十大ISP服務商: https://www.cnblogs.com/onepixel/p/10238221.html
-
各ISP為端系統提供了各種不同型別的網路接入,包括如住宅寬頻接入、高速區域網接入、無線接入等。
-
ISP 也為內容提供者提供因特網接入服務,將 Web 站點直接接入因特網。
-
-
所有的 Internet 部件都要執行一系列協議(protocol),協議控制著 Internet 中資訊的接收和傳送。(見下文)
Service View 提供服務角度
- 這個角度根據基礎設施向分散式應用程式提供的服務來描述。
- 可以把Internet看成是一種通訊基礎設施(
communication infrastructure
)。它支援著 分散式應用程式(distributed application
)執行。分散式應用程式包括:Web
,VoIP
,email
,online
games
,e-commerce
,file sharing
。 - Internet為分散式應用程式提供通訊服務(
communication service
)。
Protocols 協議的定義
一個協議定義了在兩個或多個通訊實體之間交換的報文格式和次序,以及報文傳送和/或接收一條報文或其他事件所採取的動作。
2.How to connect to the Internet ?
Network Edge 網路邊緣
通常把與Internet相連的計算機和其他裝置稱為端系統(end-system
),因為它們位於inernet的邊緣。它包括了桌面計算機、伺服器和移動計算機以及其它非傳統裝置。端系統也稱為主機(host
),因為它們容納(即執行)應用程式,如 Web 瀏覽器程式、Web伺服器程式等。有兩種model:
- Client/server model 客戶機/伺服器模型:客戶機發出請求,從始終線上的伺服器接受服務。例如:web瀏覽器/伺服器,email客戶端/伺服器。
- Peert-to-peer model 點對點模式:最小限度或者不使用專用伺服器,例如:Skype, BitTorrent。
Access Networks 接入網
接入網是指將端系統連線到其邊緣路由器(edge router
)的物理鏈路。邊緣路由器是指端系統到任何其它遠端端系統的路徑上的第一臺路由器。接入方式有以下三種:
-
家庭接入 Residential (home) access networks
DSL 數字使用者線
: 由本地電話公司(即當前使用者的ISP)部署,它將訊號編碼分成三個通道,使電話呼叫和網路連線能同時共享DSL線路。HFC 混合光纖同軸電纜
:由有線電視公司部署,一個重要特徵為共享廣播媒體,多個家庭共享對ISP路由器的訪問(通道共享)FTTH 光纖到戶
:由本地中心區域性署,類似HFC,並且劃分為兩種體系結構:AON 和 PON
-
機構接入 Institutional access networks
廣泛被企業、學校、家庭使用。
-
無線接入 Mobile access networks
透過基站或者無線接入點接入,由運營商提供,方式主要有無線區域網和廣域無線接入。(即wifi和資料)
這些接入技術也相應地使用了物理媒介(physical medium
)。分為兩類,導引型媒介有雙絞銅線、同軸電纜和光纖等,非導引型媒介有陸地無線電通道和衛星無線電通道。
The Network Core 網路核心
網路核心即由互聯因特網端系統的分組交換機和鏈路構成的網狀網路。
透過網路鏈路和交換機移動資料有兩種基本方法:電路交換和分組(packet)交換。兩種方法的一個類比是:
考慮兩家餐館,一家需要顧客預訂(電路交換),而另一家不需要預訂但不保證能安排顧客(分組交換)。對於需要預訂的那家餐館,我們在離開家之前必須承受先打電話預訂的麻煩。但當我們到達該餐館時,原則上我們能夠立即人座並點菜。對於不需要預訂的那家餐館,我們不必麻煩預訂餐桌,但也許不得不先等待一張餐桌空閒後才能入座。
Circuit switching 電路交換
在電路交換網路中,在端系統間通訊會話期間,預留了端系統間通訊沿路徑所需要的資源(快取,鏈路傳輸速率)。如圖,發出預留請求後就像在交換機內建立了一條“電路”,每次建立連線都要進行准入判斷。
電路交換有著效能穩定,並且一旦電路建立起來後交換非常的簡單迅速。但它的缺點在於電路的建立和拆解比較複雜,並且在使用者擁擠時的效率並不高(線路專用的原因),建立電路的延遲也比較長。
Packet switching 分組交換
分組交換使用儲存轉發運輸機制,每個分組都包含了它的目的地資訊,每個分組都是獨立處理的;對於每條相連的鏈路,分組交換機有一個輸出快取(buffer),用於儲存路由器準備發往鏈路的分組。這種方式要承受儲存轉發時延、排隊時延還有丟包的風險。
分組交換對網路資源的使用非常有效率,魯棒性較高,交換易於建立。但它的效能有著不可預測性,並且需要對buffer進行管理和對擁堵進行控制。
Virtual Circuit 虛電路分組交換
相當於電路交換和分組交換結合。
三種交換對比
Network of networks 網路的網路
當今的Internet由接入ISP、區域ISP、第一層ISP、PoP、多宿、peer、IXP和內容提供商網路組成。
3.Protocol Layers and Service Model
Standard Protocol Architectures 標準協議體系結構
有兩個標準:OSI模型和TCP/IP協議簇。
由ISO定義的OSI模型和TCP/IP網路協議棧的關係:https://zhuanlan.zhihu.com/p/362525505
TCP/IP各層先不詳細介紹,我們只需要知道:
TCP/IP現在廣泛用於全球網際網路應用。應用層支援網路應用,協議有FTP、SMTP、HTTP;傳輸層負責程式-程式的資料傳輸,協議有TCP, UDP;網路層負責跨網路的資料包路由,協議有IP(唯一協議,因為ip協議處於協議棧的腰部,關係著全世界網路的是否能互相連線);鏈路層負責在相鄰路由器/主機之間傳輸資料,協議有PPP、乙太網等。物理層負責“線上”的位元傳播。
Encapsulation 封裝
自頂向下:在傳送主機端,一個應用層報文(application-layer message) 被傳送給運輸層。在最簡單的情況下,運輸層收取到報文並附上附加資訊(所謂運輸層首部資訊),該首部將被接收端的運輸層使用。應用層報文和運輸層首部資訊一道構成了運輸層報文段(tuansport-layer segment)。運輸層報文段因此封裝了應用層報文。附加的資訊也許包括了下列資訊:允許接收端運輸層向上向適當的應用程式交付報文的資訊;差錯檢測位資訊,該資訊讓接收方能夠判斷報文中的位元是否在途中已被改變。運輸層則向網路層傳遞該報文段,網路層增加了如源和目的端系統地址等網路層首部資訊,生成了網路層資料包(network-layer datagram)。該資料包接下來被傳遞給鏈路層,鏈路層(自然而然地)增加它自己的鏈路層首部資訊並生成鏈路層幀(link-layer frame)。所以我們看到,在每一層,一個分組具有兩種型別的欄位:首部欄位和有效載荷欄位(payload feld)。有效載荷通常是來自上一層的分組。
一層層的封裝形成了一個個PDU(協議資料單元)。
Pros and cons of layering 分層的優缺點
優點:將複雜的網路系統結構化地清晰劃分開來;可以把每層向上層提供的服務作為介面抽象出來,改變介面的實現並不會影響上層的使用,增加靈活性。
缺點: 有時候不能利用到跨層的資訊;過多的分層會使得費用變高,以及產生冗餘。
4.Network Performance
我們可以從時延、丟包、吞吐量三個角度來衡量一個network的效能。
Delay 時延
packet 從一臺主機(源)出發,透過一系列路由器傳輸,在另一臺主機(目的地)中結束它的歷程。當packet從一個結點(主機或路由器)沿著這條路徑到後繼結點(主機或路由器),該packet在沿途的每個結點經受了幾種不同型別的時延。這些時延最為重要的是結點處理時延(nodal processing delay)、排隊時延(queuing delay)、傳輸時延(transmission delay)和傳播時延(propagation delay),這些時延總體累加起來是結點總時延(total nodal delay)。
時延 | 產生原因 | 地點 | 時間數量級 |
---|---|---|---|
processing delay 處理時延 | 路由器檢查packet首部和決定packet所向鏈路,檢查位元級別錯誤等行為 | 路由器 | 微秒 |
queuing delay 排隊時延 | 在佇列中packet等待傳輸 (前面還有packet) | 路由器 | 微秒 |
transmission delay 傳輸時延 | 將packet的位元一個一個推出網口,完整推到鏈路上所用時間 | 路由器 | 毫秒-微秒 |
propagation delay 傳播時延 | packet在鏈路上物理傳播的時間 | 鏈路 | 毫秒 |
關於傳輸時延和傳播時延的比較:由於中文翻譯的原因,很多人會誤以為兩種時延差別不大(還是得看英文原文)。傳輸時延是路由器將分組推出所需要的時間,而與兩臺路由器之間的距離無關,用packet長度除以頻寬bandwidth就得出這個transmission delay。另一方面,傳播時延是一個位元從一臺路由器向另一臺路由器傳播所需要的時間,而與packet長度或頻寬無關,主要看鏈路長度和物理媒介傳播速度。
端對端時延:end-to-end delay 可以說是packet走過的總時延。將經過的所有路由器上的時延以及鏈路上傳播的時延加起來可得到值。
Loss 丟包
丟包loss
的過程發生在packet進入路由器後發現佇列已滿的情況下。由於沒有地方儲存packet,路由器將會丟棄drop
這個packet,這個丟失的機率隨著流量強度的增加而增加。丟失的packet可能基於端對端的方式進行重傳。
Throughput 吞吐量
吞吐量的定義是:At what rate is the destination receiving data from the source.也就是說,假如主機收到了一個大小為 F 的大檔案,主機接收到這個檔案的所有位元用時 T 秒,則檔案傳送的平均吞吐量為 F/T bps
。
下圖很好的描述了 transmission rate 和 throughput、 transfer time 和 transmission delay的關係:
而對於端對端的多鏈路網路,吞吐量是這多個鏈路速率中最小的傳輸速率——也就是瓶頸鍊路(bottleneck-link
)的傳輸速率。