[toc]
前言
此筆記為學(xué)習(xí)教材《計(jì)算機(jī)網(wǎng)絡(luò)》(第7版)-謝希仁以及中國(guó)大學(xué)MOOC 哈爾濱工業(yè)大學(xué) 李全龍老師的視頻所記錄的一些知識(shí)點(diǎn)
1.1 計(jì)算機(jī)網(wǎng)絡(luò)基本概念
什么是計(jì)算機(jī)網(wǎng)絡(luò)?
計(jì)算機(jī)網(wǎng)絡(luò)=通信技術(shù)+計(jì)算機(jī)技術(shù)
- 通信系統(tǒng)模型:
graph LR
A[信源]-->B[發(fā)送設(shè)備]
B[發(fā)送設(shè)備]-->C[信道]
D[噪聲源]-->C[信道]
C[信道]-->E[接收設(shè)備]
E[接收設(shè)備]-->F[信宿]
計(jì)算機(jī)網(wǎng)絡(luò)就是一種通信網(wǎng)絡(luò)
定義:計(jì)算機(jī)網(wǎng)絡(luò)就是互連的、自治的計(jì)算機(jī)集合。
(互連:無主從關(guān)系 互聯(lián):通過通信鏈路完成互聯(lián)互通)
主機(jī)距離遠(yuǎn)、數(shù)量大需要通過交換網(wǎng)絡(luò)互連主機(jī)
交換網(wǎng)絡(luò)中的交換節(jié)點(diǎn):路由器或交換機(jī)
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705191419376.png" width="30%"/></center>
-
Internet組成細(xì)節(jié)角度
全球最大的互聯(lián)網(wǎng)絡(luò) IPS網(wǎng)絡(luò)互連的“網(wǎng)絡(luò)之網(wǎng)絡(luò)”
計(jì)算設(shè)備集合:主機(jī)(hosts)=端系統(tǒng)(end systems)
通信鏈路:光纖、銅纜、無線電、衛(wèi)星......
分組交換:轉(zhuǎn)發(fā)分組(數(shù)據(jù)包) 路由器和交換機(jī)
-
Internet服務(wù)角度
為網(wǎng)絡(luò)應(yīng)用提供通信服務(wù)的通信基礎(chǔ)設(shè)施:Web、VoIP、email、網(wǎng)絡(luò)游戲、電子商務(wù)...
為網(wǎng)絡(luò)應(yīng)用提供編程接口(API):支持應(yīng)用程序“連接”Internet,發(fā)送/接收數(shù)據(jù);提供數(shù)據(jù)傳輸服務(wù)...
然鵝,僅有硬件(主機(jī)、通信鏈路、路由器...)連接,Internet是無法順暢運(yùn)行的(無法保證應(yīng)用數(shù)據(jù)有序交付),因此協(xié)議
什么是網(wǎng)絡(luò)協(xié)議?
網(wǎng)絡(luò)協(xié)議主要是為了讓網(wǎng)絡(luò)資源物盡其用。
-
協(xié)議是計(jì)算機(jī)網(wǎng)絡(luò)有序運(yùn)行的重要保證
硬件
計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)交換必須遵守事先約定好的規(guī)則
網(wǎng)絡(luò)協(xié)議(network protocol),簡(jiǎn)稱協(xié)議,是為進(jìn)行網(wǎng)絡(luò)中的數(shù)據(jù)交換而建立的規(guī)則、標(biāo)準(zhǔn)。
協(xié)議規(guī)定了通信實(shí)體之間所交換消息的格式、意義、排序以及針對(duì)收到信息或發(fā)生事件所采取的“動(dòng)作”。
-
協(xié)議的三要素
-
語(yǔ)法(Syntax)
數(shù)據(jù)與控制信息的結(jié)構(gòu)或格式
信號(hào)電平(底層信息)
-
語(yǔ)義(Semantics)
需要發(fā)出何種控制信息
完成何種動(dòng)作以及做出何種響應(yīng)
差錯(cuò)控制
-
時(shí)序(Timing)
事件順序
速度匹配
-
-
協(xié)議是計(jì)算機(jī)網(wǎng)絡(luò)的重要內(nèi)容
-
協(xié)議規(guī)范了網(wǎng)絡(luò)中所有信息的發(fā)送和接收過程
eg: TCP , IP , HTTP , Skype , 802.11
學(xué)習(xí)網(wǎng)絡(luò)的重要內(nèi)容之一
網(wǎng)絡(luò)創(chuàng)新的表現(xiàn)形式之一
-
Internet協(xié)議標(biāo)準(zhǔn)
- RFC:Request for Comments(權(quán)威)
- IETF:互聯(lián)網(wǎng)工程任務(wù)組(Internet Engineering Task Force)
-
1.2 計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)
計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)邊緣
-
主機(jī)
- 位于“網(wǎng)絡(luò)邊緣”
- 運(yùn)行網(wǎng)絡(luò)應(yīng)用程序,例如:web,email
-
網(wǎng)絡(luò)應(yīng)用
-
客戶/服務(wù)器(client/server)應(yīng)用模型
客戶發(fā)送請(qǐng)求,接收服務(wù)器響應(yīng),如:Web應(yīng)用,文件傳輸FTP應(yīng)用
-
對(duì)等(peer-peer,P2P)應(yīng)用模型
無(或不僅依賴)專用服務(wù)器
通信在對(duì)等實(shí)體之間直接進(jìn)行
如:Skype,QQ
-
接入網(wǎng)絡(luò)(物理介質(zhì))
- 有線或無線通信鏈路
接入網(wǎng)絡(luò)主要為將網(wǎng)絡(luò)邊緣接入核心網(wǎng)絡(luò)
接入網(wǎng)絡(luò)分為:住宅/家庭接入網(wǎng)絡(luò);機(jī)構(gòu)接入網(wǎng)絡(luò)(學(xué)校企業(yè)等);移動(dòng)接入網(wǎng)絡(luò)
用戶關(guān)心的是:帶寬(bandwidth,bps) ;獨(dú)占/共享?
舉個(gè)栗子:
-
栗子一,接入網(wǎng)絡(luò):數(shù)字用戶線路(DSL)
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705191649867.png" width="50%"/></center>
1. 家庭用戶利用**已有的**電話線連接中心局的DSLAM(數(shù)據(jù)通過DSL電話線接入Internet,語(yǔ)音/電話通過DSL電話線接入電話網(wǎng))
2. <2.5Mbps上行傳輸速率(典型速率<1Mbps) ~上傳速度
3. <24Mbps 下行傳輸速率(典型速率<1Mbps) ~下載速度
4. FDM(利用不同的頻帶傳輸):50 kHz- 1MHz用于下行;4 kHz- 50kHz用于上行;0 kHz- 4kHz用于傳統(tǒng)通話;
-
栗子二,接入網(wǎng)絡(luò):電纜網(wǎng)絡(luò)
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705192154360.png" width="50%"/></center>
FDM頻分多路復(fù)用:在不同頻帶(載波)上傳輸不同頻道
HFC:混合光纖同軸電纜(非對(duì)稱,下行高達(dá)30Mbps傳輸速率,上行2Mbps傳輸速率)
各家庭設(shè)備通過電纜網(wǎng)絡(luò)→光纖接入ISP路由器(各家庭共享家庭至電纜頭端的接入網(wǎng)絡(luò);不同DSL的獨(dú)占至中心局的接入)
-
栗子三,接入網(wǎng)絡(luò):典型家庭網(wǎng)絡(luò)的接入
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705192228414.png" width="50%"/></center>
-
栗子四,接入網(wǎng)絡(luò):機(jī)構(gòu)(企業(yè))接入網(wǎng)絡(luò)
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705192307888.png" width="50%"/></center>
主要用于公司、高校等組織機(jī)構(gòu) (個(gè)人或家庭也可以用)
典型傳輸速率:10Mbps,100Mbps,1Gbps,10Gbps
目前,端系統(tǒng)通常直接連接以太網(wǎng)交換機(jī)(switch)
-
栗子五,交換網(wǎng)絡(luò):無線接入網(wǎng)絡(luò)
通過共享接入網(wǎng)絡(luò)連接端系統(tǒng)與路由器 【通過"基站 (base station)"或稱為"接入點(diǎn) (access point)"】
例如,無線局域網(wǎng)(LANs)
- 同一建筑物內(nèi)(30m)
- 802.11b/g(WiFi):11Mbps\54Mbps傳輸速率
例如,廣域無線接入
- 通過電信運(yùn)營(yíng)商(蜂窩網(wǎng)),接入范圍幾十公里
- 帶寬:1Mbps、10Mbps、100Mbps
- 移動(dòng)互聯(lián)網(wǎng)
網(wǎng)絡(luò)核心(核心網(wǎng)絡(luò))
互聯(lián)的路由器(或分組轉(zhuǎn)發(fā)設(shè)備)
網(wǎng)絡(luò)之網(wǎng)絡(luò)
網(wǎng)絡(luò)核心的關(guān)鍵功能是:路由+轉(zhuǎn)發(fā)
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705192401433.png" width="50%"/></center>
網(wǎng)絡(luò)核心解決的基本問題是:用數(shù)據(jù)交換的方法實(shí)現(xiàn)數(shù)據(jù)源主機(jī)通過網(wǎng)絡(luò)核心送達(dá)目的主機(jī)
Internet結(jié)構(gòu)
端系統(tǒng)通過接入ISP(access ISPs)連接到Internet,例如家庭、公司和大學(xué)ISPs
接入ISP必須進(jìn)一步互聯(lián)(這樣任意兩個(gè)主機(jī)才可以互相發(fā)送分組)
構(gòu)成復(fù)雜的網(wǎng)絡(luò)互連的網(wǎng)絡(luò)(經(jīng)濟(jì)和國(guó)家政策是網(wǎng)絡(luò)演進(jìn)的主要驅(qū)動(dòng)力)
當(dāng)前Internet結(jié)構(gòu)無人能給出精確描述
1.3 網(wǎng)絡(luò)核心
電路交換
考慮:鏈路問題,連通性,網(wǎng)絡(luò)規(guī)模
交換的含義:1.動(dòng)態(tài)轉(zhuǎn)接;2.動(dòng)態(tài)分配傳輸資源;
數(shù)據(jù)交換的類型:
- 電路交換
- 報(bào)文交換
- 分組交換
-
電路交換的特點(diǎn)
- 最典型的交換網(wǎng)絡(luò):電話網(wǎng)絡(luò)
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200705235934426.png" width="50%"/></center>
-
電路交換的三個(gè)階段:
- 建立連接(呼叫/電路建立)
- 通信
- 釋放連接(拆除電路)
-
獨(dú)占資源(釋放連接之后電路資源才可被第三方占有)
【然而電路交換網(wǎng)絡(luò)中,每條電路不是獨(dú)占其經(jīng)過的物理鏈路的,至于電路交換網(wǎng)絡(luò)如何實(shí)現(xiàn)鏈路共享,這又扯到多路復(fù)用】
多路復(fù)用
多路復(fù)用(multiplexing),簡(jiǎn)稱復(fù)用,是通信技術(shù)中的基本概念。
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706001117993.png" width="50%"/></center>
- 多路復(fù)用:鏈路/網(wǎng)絡(luò)資源(如帶寬)劃分為“資源片”
- 將資源片分配給各路“呼叫”(calls)
- 每路呼叫獨(dú)占分配到的資源片進(jìn)行通信
- 資源片可能“閑置”(idle)(無共享)
- 典型多路復(fù)用方法:
- 頻分多路復(fù)用(frequency divsion multiplexing,FDM)
- 時(shí)分多路復(fù)用(time divsion multiplexing,TDM)
- 時(shí)分多路復(fù)用(Wavelength divsion multiplexing,WDM)
- 碼分多路復(fù)用(Code divsion multiplexing,CDM)
-
頻分多路復(fù)用(FMD)
頻分多路復(fù)用的個(gè)用戶占用不同的帶寬資源(這的“帶寬”是頻率帶寬(單位:Hz)而不是數(shù)據(jù)的發(fā)送速率)
-
用戶在分配到一定的頻帶后,在通信過程中自始至終都占用這個(gè)頻帶
-
時(shí)分多路復(fù)用(TDM)
時(shí)分復(fù)用則是將時(shí)間劃分為一段段等長(zhǎng)的十分復(fù)用幀(TDM幀),每個(gè)用戶在每個(gè)TDM幀中占用固定序號(hào)的時(shí)隙。
每個(gè)用戶所占用的時(shí)隙是周期性出現(xiàn)(其周期就是TDM幀的長(zhǎng)度)。
-
時(shí)分復(fù)用的所有用戶是在不同的時(shí)間占用相同的頻帶寬度。
-
波分多路復(fù)用(WDM)
WDM的實(shí)質(zhì)是FDM
-
碼分多路復(fù)用(CDM)
詳細(xì)碼分多址(CDMA)
廣泛應(yīng)用于無線鏈路共享(如蜂窩網(wǎng),衛(wèi)星通信等)
-
每個(gè)用戶分配一個(gè)唯一 m bit碼片序列(chipping sequence),其中“0”用“-1”表示、“1”用“+1”表示,例如:
S站的碼片序列:(-1 -1 - 1 +1 +1 -1 +1 +1)
各用戶使用相同頻率載波,利用各自碼片序列編碼數(shù)據(jù)
-
編碼信號(hào)=(原始數(shù)據(jù))
(碼片序列)
如發(fā)送比特 1 (+1),則發(fā)送自己的m bit 碼片序列
如發(fā)送比特 0 (-1),則發(fā)送自己的m bit 碼片序列的反碼
-
各用戶序列相互正交(orthogonal)
此用于判斷是否為用戶自己的碼片序列,令
為原始數(shù)據(jù)序列,各用戶的疊加向量為:
?
-
解碼:碼片序列與編碼信號(hào)的內(nèi)積
例題:站點(diǎn)A、B、C通過CDMA共享鏈路,A、B、C的碼片序列(chipping sequence)分別是(1,1,1,1)、(1,-1,1,-1)和(1,1,-1,-1),若C從鏈路上收到的序列是(2,0,2,0,0,-2,0,-2,0,2,0,2),則C收到A發(fā)送的數(shù)據(jù)是 ()
A.000
B.101
C.110
D.111
正確答案是 B
C接收到的是A,B發(fā)送過來的疊加碼片,C想要看A發(fā)送的數(shù)據(jù),就將接收到的疊加碼片與A的碼片序列進(jìn)行規(guī)格化內(nèi)積操作:(2,0,2,0;0,-2,0,-2;0,2,0,2)每四位與(1,1,1,1)進(jìn)行規(guī)格化內(nèi)積,(2 * 1+0 * 1+2 * 1+0 * 1)/4=1;(0 * 1+2 * 1+0 * 1+2 * 1)/4=-1,-1即0;(0 * 1+2 * 1+0 * 1+2 * 1)/4=1;可以得到結(jié)果101
報(bào)文交換與分組交換
-
報(bào)文交換(message switching)
報(bào)文:源(應(yīng)用)發(fā)送信息整體,比如一個(gè)文件
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064307886.png" width="50%"/></center>
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064339694.png" width="50%"/></center>
-
分組交換(package switching)
分組:報(bào)文拆出來的一系列相對(duì)較小的數(shù)據(jù)包 (由頭+數(shù)據(jù)包構(gòu)成)
<center><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="54" height="20"><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="54" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="21" height="20" fill="#555"/><rect x="21" width="33" height="20" fill="#4c1"/><rect width="54" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="115" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="110">頭</text><text x="115" y="140" transform="scale(.1)" textLength="110">頭</text><text x="365" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="230">數(shù)據(jù)</text><text x="365" y="140" transform="scale(.1)" textLength="230">數(shù)據(jù)</text></g></svg></center>
分組交換需要報(bào)文的拆分與重組
產(chǎn)生額外開銷
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064427056.png" width="50%"/></center>
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064516951.png" width="50%"/></center>
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064601183.png" width="50%"/></center>
<center><img src="https://auto2dev.coding.net/p/ImageHostingService/d/ImageHostingService/git/raw/master/md/image-20200706064719009.png" width="50%"/></center>
A&B分組序列不確定(不是事先分配好的),按需共享鏈路(A與B總共帶寬是1.5Mb/s)
【PS: “Mbps”,其全稱為Million bits per second,意為每秒傳輸百萬位(比特) , Mbps=Mb/s ;MB表示Million Bytes(百萬字節(jié)) 。】
-
存儲(chǔ)轉(zhuǎn)發(fā) (store-and-forward)
報(bào)文交換與分組交換均采用存儲(chǔ)-轉(zhuǎn)發(fā)交換方式(區(qū)別:報(bào)文交換以完整報(bào)文進(jìn)行“存儲(chǔ)-轉(zhuǎn)發(fā)”)
分組交換以較小的分組進(jìn)行“存儲(chǔ)-轉(zhuǎn)發(fā)”
哪種交換好呢?