1.計算機網絡基本概念
1.1 什么是計算機網絡
- 計算機網絡的產生背景
在計算機網絡出現之前,計算機之間都是相互獨立的,每臺計算機只能訪問自身存儲的數據,無法與其他計算機進行數據交換和資源共享。這種獨立的計算機系統存在諸多局限性:
資源利用率低:計算機的資源(如處理器、內存、硬盤等)只能被自身利用,無法被其他計算機共享,導致資源浪費
計算能力有限:單臺計算機的處理能力有限,無法處理復雜的計算任務或者大規模的數據處理
數據共享困難:每臺計算機都是獨立的存儲設備,無法被其他計算機訪問,只能通過物理介質進行信息傳遞(如:利用U盤拷貝)
隨著通信技術和計算機技術的不斷發展推動了計算機網絡的誕生,所以說:
計算機網絡是通信技術與計算機技術緊密結合的產物
定義:計算機網絡就是
互連
的、自治
的計算機集合
互連
:計算機之間互聯互通
自治
:計算機之間無主從關系
在早期時,主機數量有限,因此主機之間可以使用物理介質進行直連
但隨著主機數量的增減,物理直連的成本過高,交換網絡的概念應運而生
1.2 什么是Internet
- 從組成細節角度來看:
Internet是全球最大的互聯網絡,由ISP(互聯網服務提供商,Internet Service Provider)網絡互連的網絡之網絡。換言之,Internet是由多個獨立網絡互聯而成的一個龐大的網絡系統,它主要有以下幾個組成部分:
(1)成千上萬的互連的計算設備
集合(PC、手機等)
(2)通信鏈路
(光纖、衛星等)
(3)交換網絡
:實現數據的分組轉發(路由器、交換機等)
- 從服務角度來看:能為用戶提供什么服務
(1)為網絡應用提供通信服務基礎設施
:光纖、電纜、路由器等
(2)為網絡應用提供應用編程接口(API)
:如網絡協議API,DNS API,數據庫API等
Question:如果僅有硬件連接,能否保證網絡通信中的數據交換?
Answer:不能,還需要協議
1.3 協議
1.3.1 什么是協議
硬件是計算機網絡的基礎,但是計算機網絡中的數據交換必須遵守實現約定好的規則
以交通系統為例:交通系統中有交通規則,規定了車輛和行人如何安全有序地移動。比如,紅燈停綠燈行,車輛靠右行駛等。如果一個交通系統中僅有道路(物理條件),而沒有交通規則,那么該交通系統是一定會癱瘓的
在計算機網絡中也一樣,數據之間的交換必須要遵守一定的規則,保證通信的安全性、有序性,這種規則就叫做協議。協議規定了通信實體之間數據交換的格式
、意義
、順序
以及針對收到的消息所采取的“行為”
1.3.2 協議的三要素
(1)
語法
:定義了數據在網絡上傳輸時的結構和格式
- 1.數據格式:規定了消息中各個字段的順序、長度、數據類型等
- 2.編碼方式:規定了數據在傳輸過程中如何編碼和解碼
- 3.信號電平:規定了信號的電壓、電流等
(2)
語義
:定義了協議中消息的含義和目的
- 1.字段的解釋方式:消息中各個字段代表什么含義
- 2.協議的功能:協議如何實現請求、響應、錯誤處理等功能
例如:HTTP協議中,GET請求是請求服務器提供指定資源;POST請求是向服務器提交數據
(3)
時序
:定義了消息交換的順序和時間關系
- 1.事件順序:規定了消息發送和接收的順序
- 2.時間間隔:規定了消息發送和接收的時間間隔
- 3.超時和重傳機制:規定了在特定時間內未收到響應時的處理方式 例如:TCP協議三次握手建立連接,這三次交互必須嚴格按照規定的順序進行;HTTP協議中,服務器在收到請求后,必須在規定時間內返回響應
2.計算機網絡結構
計算機網絡結構分為三個部分:
- 1.網絡邊緣(Network Edge):處于計算機網絡的邊緣地帶
- 2.接入網絡:網絡邊緣和網絡核心的中間部分
- 3.網絡核心:位于計算機網絡的核心地帶
2.1 網絡邊緣
主要由計算設備和運行在計算設備上的應用程序組成,比如:我們的手機和手機上的應用(瀏覽器)就處于計算機網絡邊緣。這些計算設備有兩種通信模型:
- 1.客戶端-服務器(client-sever)應用模型:客戶端發送請求,服務器返回響應
- 2.對等(peer-peer,P2P)應用模型:通信在對等設備之間直接進行
以QQ為例:當你在某群聊中發送消息時,你的消息會先到達維護該群聊的服務器,服務器接收到你的消息后利用廣播機制再轉發給群聊中的其他人,這就是客戶端-服務器(client-sever)應用模型;當你給某好友發送消息時,該消息會直接到達對方手機上,而不會再經由服務器轉發,這就是對等(peer-peer,P2P)應用模型
2.2 接入網絡
負責將處于網絡邊緣的設備接入到網絡核心,主要由兩部分組成
- 1.物理介質:光纖、電纜等。這些物理介質提供了計算設備與網絡核心之間連接的數據傳輸通道
- 2.接入技術:調制解調器、無線局域網(WLAN)等。這些接入技術決定了計算設備接入網絡的方式(獨占/共享)和速度
2.3 網絡核心
主要由多個相互連接的路由器組成,負責消息的路由
和轉發
。目的是:將消息從源主機傳輸給目的主機
3.網絡核心
Question:如何實現數據通過網絡核心從源主機到達目的主機?
Answer:數據交換
,一共有電路交換、報文交換和分組交換三種方式
3.1 電路交換
3.1.1 電路交換
- 概念:在通信開始前,發送方和接收方之間建立一條專用的物理或邏輯連接。這條連接在整個通信過程中保持不變,直到通信結束
- 最典型的電路交換網絡:電話網絡
- 電路交換的三個階段:
-
建立連接(撥號->打通電話)
-
通信
-
釋放連接(掛斷電話)
- 最顯著的特點:
獨占資源
(當兩個人打通電話之后,第三個人是打不進來的)
Question:以上圖為例,電話A和電話B建立連接后是獨占整個電話網絡嗎?
Answer:不是的,多個交換機互聯組成的電話網絡的承載能力,往往可以同時支撐多對電話進行通信。電路交換的獨占性指的是:在通信期間,特定的物理線路被某個連接獨占,并不代表整個電話網絡都被該連接獨占。
但是電路交換的獨占性確實會導致資源利用率低的問題,所以多路復用技術應運而生
3.1.2 多路復用
多路復用:將鏈路/網絡資源(如貸款)劃分為“資源片”分配給各路呼叫(calls),每路呼叫獨占分到的資源片。
分配方式可以分為四種,分別是:頻分多路復用、時分多路復用、波分多路復用和碼分多路復用
- 1.
頻分多路復用(FDM)
:將通信信道按照頻率分割為多個獨立的子信道的技術,允許多路信號信號在同一介質中同時傳輸二互不干擾
- 2.
時分多路復用(TDM)
:將時間等分為一段段時間復用幀(TDM幀),每路信號在每個TDM幀中占用固定序號的時隙
- 3.
波分多路復用(WDM)
:光通信中的FDM,將通信信道按照波長分割為多個獨立的子信道的技術
- 4.
碼分多路復用(CDM)
:每路信號被一個唯一的碼序列調制,彼此互不干擾
3.2 分組交換
- 概念:數據被分割成多個小的分組,每個分組獨立傳輸,通過網絡中的不同路徑到達目的地。分組在傳輸過程中可能會經過多個中間節點(如路由器或交換機)
分組
:在源主機中將數據分割為若干個小的數據包(分片),每個分片都會有一個序號重組
:在目的主機中將分片按照序號進行組裝
注意
- 每個分片都會添加額外的控制信息,來保證重組的順利進行(比如:IP數據包進行分組時,每個分片都會有3位標志位和13位片偏移來控制重組)
- 分組和重組發生在源主機和目的主機,經由中間的路由器時不會發生
3.3 電路交換和分組交換區別
特性 | 分組交換 | 電路交換 |
---|---|---|
資源占用 | 動態分配 | 固定 |
資源利用率 | 高 | 低 |
使用場景 | 突發數據 | 實時流 |
4.計算機網絡性能
4.1 速率
- 即
數據率(data rate)
或稱數據傳輸速率
或比特率(bit rate)
:指數據在網絡中的傳輸速率 - 單位:b/s、kb/s、Mb/s、Gb/s(k = 10 ^ 3,M = 10 ^ 6,G = 10 ^ 9)
- 日常生活中給出的速率指標(如百兆網絡/千兆網絡)一般指的是理想狀態下的最大傳輸速率/額定速率(帶寬)
4.2 帶寬(bandwidth)
原本指信號具有的頻帶寬度,即最高頻率與最低頻率之差,單位是赫茲(Hz);網絡中的“帶寬”通常是數字信道所能傳輸的“最高數據傳輸速率”
,單位是b/s(bps)
4.3 延遲(delay)
Question:分組交換為什么會有丟包和延遲?
以上圖為例,主機A/B要傳輸一組數據包到路由器Y,首先該組數據包會先到達路由器X,如果此時路由器Y正在傳輸其他數據,那么該組數據白會先在路由器上保存,當路由器X的緩存滿時,后續到達的數據包就會被丟棄,這就叫做丟包
而分組交換的延遲一共分為四種:
- 1.
節點處理延遲(nodal processing delay):
數據到達某一網絡設備(如路由器)時會對數據進行差錯檢測,根據數據中的地址信息判斷轉發到哪一個路由器或主機,這些操作所花費的時間就叫做節點處理延遲
- 2.
排隊延遲(queueing delay):
以上圖為例,數據到達路由器X后,等待路由器Y處理完其他數據的時間。一般來說等待時間不確定,取決于路由器的擁塞程度
- 3.
傳輸延遲(transmission delay):
一組數據包全部通過某網絡設備(如路由器)所需的時間。例如:某組分片的大小為10000bit,路由器的帶寬是1Mbps(1,000,000bit),傳輸延遲就是0.01秒
- 4.
傳播延遲(propagation ddeelay):
數據在物理介質中從發送端到接收端所需的時間。光纖中的信號傳播速度約為2×10^8米/秒,如果傳輸距離是1000公里,傳播延遲就是0.005秒
為了更清楚的區分傳輸延時和傳播延遲的區別:我這里以車隊類比數據包
車->
分片;車隊->
分組;收費站->
路由器
車速為100km/h->信號傳播速度
一輛車通過收費站用時12秒
車隊通過收費站用時120秒->傳輸延遲
一輛車從第一個收費站到達下一個收費站用時1小時->傳播延遲
4.4 時延帶寬積(Delay-Bandwidth Product,DBP)
時延帶寬積(bit) = 傳播延遲(s) × 帶寬(bps)
表示網絡鏈路中“正在傳輸”的數據量,即發送端和接收端之間“飛行”中的比特數。所以鏈路的時延帶寬積又稱為以比特為單位的鏈路長度
4.5 丟包率
指在網絡傳輸過程中丟失的數據包數量與總發送數據包數量的比值
4.6 吞吐量
表示在發送端與接收端之間傳送數據速率(bps)
即時吞吐量:
給定時刻的速率平均吞吐量:
一段時間的平均速率
吞吐量的大小取決于瓶頸鏈路的帶寬
5.計算機網絡體系結構
5.1 計算機網絡體系結構概述
什么是計算機網絡體系結構?
- 計算機網絡體系結構是從功能的角度進行劃分的
- 一般采用分層模型來描述,即網絡分層
- 每層遵循某個/些網絡協議完成本層功能
- 計算機網絡體系結構是網絡各層及其協議的集合
- 計算機網絡體系結構定義了計算機網絡的功能層次以及層次之間的關系
為什么是采用分層結構?
- 結構清晰:網絡分層的參考模型(如OSI 7層模型)就嚴格區分了各層實現的功能和它們之間的關系
- 利于維護更新:任何一層功能的實現對外透明,只提供接口
- 利于標準化:各層之間的接口是標準化的,這可以讓不同廠商之間的設備無縫銜接
5.2 OSI 7層模型
OSI 7層模型是國際標準化組織(ISO)在1984年提出的分層網絡體系結構,目的是支持不同的網絡結構之間互通互聯
OSI 7層模型的通信過程
OSI 7層模型數據封裝與分用過程
注意:OSI 7層模型只存在于理論中,主要是幫助我們理解網絡分層,實際應用中基本上不會按照該模型的標準來分層
5.3 TCP/IP 5層模型
實際應用中一般采用TCP/IP 5層模型的標準,將會話層和表示層的功能集成到應用層里。既簡化了整個協議棧的結構,又進一步提高了數據在網絡中傳輸的效率
下面對TCP/IP模型通信過程中封裝和分用的流程進行演示:
預設場景:張三給李四在2025年3月21日(只是演示,不精確到秒)這一天給李四發消息,消息內容是"Hello World"
接下來我們以發送方和接收方的視角來觀察發送方
1.應用層
假設應用層協議的格式為:接收方QQ號+發送時間+發送方QQ號+內容
應用層將該數據包提交給傳輸層
2.傳輸層
傳輸層把來自應用層的數據包構造成傳輸層數據報,傳輸層常用的協議有兩個,分別是UDP和TCP。這里以UDP協議為例,在應用層數據包前面添加UDP報頭,然后提交給網絡層
UDP報頭主要包含源端口和目的端口
3.網絡層
網絡層基于IP協議在UDP數據報前面添加IP報頭,然后提交給數據鏈路層
IP報頭主要包含源IP和目的IP
4.數據鏈路層
數據鏈路層基于以太網協議在IP數據報的首/尾部添加以太網幀頭/尾,打包成以太網數據幀然后提交給物理層
5.物理層
物理層將以太網數據幀中的二進制數據轉換成光/電信號,然后數據就被發生出去了
以上就是封裝的過程接收方
1.物理層
通過網卡接受到光/電信號,在物理層將光/電信號轉換為二進制數據,該二進制數據的格式是以太網數據幀,然后提交給數據鏈路層進行解析
2.數據鏈路層
數據鏈路層把以太網數據幀的幀頭和幀尾拆除,將剩下的部分提交給網絡層
3.網絡層
網絡層解析出IP報頭,將IP數據報的載荷部分提交給傳輸層
4.傳輸層
傳輸層解析出UDP報頭,將UDP載荷部分提交給應用層
5.應用層
應用層將數據包進行解析,然后將內容顯示到屏幕上
以上就是分用的過程