喚醒手腕考研計(jì)算機(jī)網(wǎng)絡(luò)復(fù)習(xí)筆記:2022/4/11:課程學(xué)習(xí)(王道考研)
網(wǎng)絡(luò)體系結(jié)構(gòu)
概念、組成、功能和分類
組成部分
:一個(gè)完整的計(jì)算機(jī)網(wǎng)絡(luò)主要由硬件、軟件、協(xié)議三大部分組成,缺一不可。硬件主要由主機(jī)(端系統(tǒng))、通信鏈路(如雙絞線、光纖)、交換設(shè)備(如路由器、交換機(jī)等)和通信處理機(jī)(如網(wǎng)卡)等組成。
軟件主要包括各種實(shí)現(xiàn)資源共享的軟件和方便用戶使用的各種工具軟件(如網(wǎng)絡(luò)操作系統(tǒng)、郵件收發(fā)程序、FTP程序、聊天程序等)。軟件部分基本屬于應(yīng)用層,網(wǎng)絡(luò)協(xié)議是計(jì)算機(jī)網(wǎng)絡(luò)的核心。
計(jì)算機(jī)網(wǎng)絡(luò)的定義:計(jì)算機(jī)網(wǎng)絡(luò)是互連的、自治的計(jì)算機(jī)的集合。
①自治:是指互連的計(jì)算機(jī)系統(tǒng)彼此獨(dú)立,不存在主從或者控制與被控制的關(guān)系。
②計(jì)算機(jī):計(jì)算機(jī)設(shè)備。
③互連:是指利用通信鏈路鏈接相互獨(dú)立的計(jì)算機(jī)系統(tǒng)。
工作方式
:計(jì)算機(jī)網(wǎng)絡(luò)(這里主要指Internet)可分為邊緣部分和核心部分。邊緣部分由所有連接到因特網(wǎng)上、供用戶直接使用的主機(jī)組成,用來進(jìn)行通信(如傳輸數(shù)據(jù)、音頻或視頻)和資源共享;核心部分由大量的網(wǎng)絡(luò)和連接這些網(wǎng)絡(luò)的路由器組成,它為邊緣部分提供連通性和交換服務(wù)。
功能組成
:計(jì)算機(jī)網(wǎng)絡(luò)由通信子網(wǎng)和資源子網(wǎng)組成。通信子網(wǎng)由各種傳輸介質(zhì)、通信設(shè)備和相應(yīng)的網(wǎng)絡(luò)協(xié)議組成,它使網(wǎng)絡(luò)具有數(shù)據(jù)傳輸、交換、控制和存儲(chǔ)的能力,實(shí)現(xiàn)聯(lián)網(wǎng)計(jì)算機(jī)之間的數(shù)據(jù)通信。資源子網(wǎng)是實(shí)現(xiàn)資源共享功能的設(shè)備及其軟件的集合,向網(wǎng)絡(luò)用戶提供共享其他計(jì)算機(jī)上的硬件資源、軟件資源和數(shù)據(jù)資源的服務(wù)。
雖然網(wǎng)絡(luò)類型的劃分標(biāo)準(zhǔn)各有千秋,但是以地理范圍劃分是一種大多數(shù)人都認(rèn)可的通用網(wǎng)絡(luò)劃分標(biāo)準(zhǔn)。按照此標(biāo)準(zhǔn)可以將各種網(wǎng)絡(luò)類型劃分為局域網(wǎng)
、城域網(wǎng)
、廣域網(wǎng)
和互聯(lián)網(wǎng)
4種。
標(biāo)準(zhǔn)化工作及相關(guān)組織
Request for comments RFC
RFC要上升為因特網(wǎng)正式標(biāo)準(zhǔn)的四個(gè)階段:
①因特網(wǎng)草案(Internet Draft)②建議標(biāo)準(zhǔn):開啟成為RFC文檔(Porposed Standard)③因特網(wǎng)標(biāo)準(zhǔn)(Internet Standard)
標(biāo)準(zhǔn)化工作的相關(guān)組織
國際標(biāo)準(zhǔn)化組織 ISO:ISO參考模型、HDLC協(xié)議
國際電信聯(lián)盟 ITU:制定通信規(guī)則
國際電氣電子工程師協(xié)會(huì) IEEE:學(xué)術(shù)機(jī)構(gòu)、IEEE802系列標(biāo)準(zhǔn)、5G
Internet工程任務(wù)組 IETF:負(fù)責(zé)因特網(wǎng)相關(guān)標(biāo)準(zhǔn)的制定 RFC XXXX
速率相關(guān)的性能指標(biāo)
速率
速率
:即數(shù)據(jù)率或稱為數(shù)據(jù)傳輸率或比特率,連接在計(jì)算機(jī)網(wǎng)絡(luò)上的主機(jī)在數(shù)字信道上傳送數(shù)據(jù)位數(shù)的速率。
速率單位換算:1 Tb / s = 103 Gb / s = 106 Mb / s = 109 kb / s = 1012 b / s
帶寬
帶寬
:“帶寬”原本指某個(gè)信號(hào)具有的頻帶寬度,即最高頻率與最低頻率之差,單位是赫茲(Hz)
計(jì)算機(jī)網(wǎng)絡(luò)中,帶寬用來表示網(wǎng)絡(luò)的通信線路傳送數(shù)據(jù)的能力,通常是指單位時(shí)間內(nèi)從網(wǎng)絡(luò)中的某一點(diǎn)到另一點(diǎn)所能通過的“最高數(shù)據(jù)率”。單位是“比特每秒”,b/s,kb/s,Mb/s,Gb/s。
吞吐量
吞吐量
:表示在單位時(shí)間內(nèi)通過某個(gè)網(wǎng)絡(luò)(或信道、接口)的數(shù)據(jù)量。單位b/s,kb/s,Mb/s等。吞吐量受網(wǎng)絡(luò)的帶寬或網(wǎng)絡(luò)的額定速率的限制。
簡(jiǎn)單的講,對(duì)于P2P系統(tǒng)而言,當(dāng)主機(jī)A到主機(jī)B傳送一個(gè)文件,任何時(shí)間瞬間的瞬時(shí)吞吐量都是主機(jī)B接收到該文件的速率(以bps計(jì)算)。如果文件由F比特組成,主機(jī)B接收到所有F比特用去T秒,則文件傳送的平均吞吐量是F/T bps
什么是bps: “bits per second” 常用于表示數(shù)據(jù)機(jī)及網(wǎng)絡(luò)通訊的傳輸速率。
例如GigabitEthernet端口: 5 minute input rate 38410000 bits/sec, 6344 packets/sec 382410000 bits/sec = 382.41Mbps
所以常說的快速以太網(wǎng)能達(dá)到百兆傳輸,其實(shí)實(shí)際傳輸文件大小只有10MB = 100Mb
注意:在計(jì)算傳輸速率時(shí),直接用1000來換算(1 Mb = 1000 Kb = 1000,000 bit)
想象比特是流體,而鏈路是管道,那么吞吐量應(yīng)該為min{ Rc ,Rs }。如上圖所示,當(dāng)Rc為2Mbps且Rs>Rc,無論Rs有多大,吞吐量都是2Mbps。同理,當(dāng)有n個(gè)路由器的時(shí)候,吞吐量為min{R1,R2,···,Rn,Rn+1}
我們今天因特網(wǎng)對(duì)吞吐量的限制因素通常是接入網(wǎng):如果R和Rs(服務(wù)器傳輸速率)、Rc(接入網(wǎng)傳輸速率)相近的話,會(huì)出現(xiàn)怎么樣的情況呢?
這時(shí)候每個(gè)下載的瓶頸不再位于接入網(wǎng)中,而是位于核心中的共享鏈路了,該瓶頸僅能為每個(gè)下載提供1.5Mbps的吞吐量,因此每個(gè)下載的端到端吞吐量現(xiàn)在減少到1.5Mbps
時(shí)延、BDP、RRT、利用率
時(shí)延
時(shí)延
:指一個(gè)報(bào)文或分組從網(wǎng)絡(luò)的一端傳送到另一端所耗費(fèi)的時(shí)間,時(shí)延由節(jié)點(diǎn)處理時(shí)延、排隊(duì)時(shí)延、發(fā)送時(shí)延、傳播時(shí)延組成。
節(jié)點(diǎn)處理時(shí)延:
主機(jī)或路由器在收到分組后要花費(fèi)一定的時(shí)間進(jìn)行處理,比如分析首部,提取數(shù)據(jù),差錯(cuò)檢驗(yàn),路由選擇等。一般高速路由器的處理時(shí)延通常是微秒或更低的數(shù)量級(jí)。
排隊(duì)時(shí)延:
排隊(duì)時(shí)延很好理解,就是路由器或者交換機(jī)處理數(shù)據(jù)包排隊(duì)所消耗的時(shí)間。一個(gè)特定分組的排隊(duì)時(shí)延取決于先期到達(dá)的、正在排隊(duì)等待向鏈路傳輸分組的數(shù)量。如果該隊(duì)列是空的,并且當(dāng)前沒有其他分組在傳輸,則該分組的排隊(duì)時(shí)延為0;另一方面,如果流量很大,并且許多其他分組也在等待傳輸,該排隊(duì)時(shí)延將很大。實(shí)際的排隊(duì)時(shí)延通常在毫秒到微秒級(jí)。
傳輸時(shí)延:
傳輸時(shí)延又被稱為“發(fā)送時(shí)延”,是發(fā)送數(shù)據(jù)所需要的時(shí)間,也就是從網(wǎng)卡或者路由器隊(duì)列遞交網(wǎng)絡(luò)鏈路所需要的時(shí)間。用L比特表示分組的長度,用R bps表示從路由器A到路由器B的鏈路傳輸速率,傳輸時(shí)延則是L/R。實(shí)際的發(fā)送時(shí)延通常在毫秒到微秒級(jí)。
傳播時(shí)延:
傳播時(shí)延是指在鏈路上傳播數(shù)據(jù)所需要的時(shí)間。傳播時(shí)延等于兩臺(tái)路由器之間的距離除以傳播速率,即傳播時(shí)延是D/S,其中D是兩臺(tái)路由器之間的距離,S是該鏈路的傳播速率。實(shí)際傳播時(shí)延在毫秒級(jí)。
更加細(xì)致的描述:發(fā)送時(shí)延(首次傳輸時(shí)延)、節(jié)點(diǎn)處理時(shí)延、排隊(duì)時(shí)延、傳播時(shí)延、處理時(shí)延(接收時(shí)延)
發(fā)送時(shí)延計(jì)算公式
:Sending Delay 發(fā)送時(shí)延 = Data Length 數(shù)據(jù)長度 / Channel Bandwidth 信道帶寬
傳播時(shí)延計(jì)算公式
:Transfering Delay 傳播時(shí)延 = Channel Length 信道長度 / 電磁波在信道傳播的速率
帶寬時(shí)延積 BDP
帶寬時(shí)延積:(Bandwidth-Delay Product ,BDP)即鏈路上的最大比特?cái)?shù),也稱以比特為單位的鏈路長度。描述某段鏈路中的數(shù)據(jù)容量。
計(jì)算方法: Bandwidth - Delay Product = Delay * Bandwidth
發(fā)送緩沖區(qū)與帶寬時(shí)延積的關(guān)系:
-
如果發(fā)送緩沖區(qū)「超過」帶寬時(shí)延積,超出的部分就沒辦法有效的網(wǎng)絡(luò)傳輸,同時(shí)導(dǎo)致網(wǎng)絡(luò)過載,容易丟包;
-
如果發(fā)送緩沖區(qū)「小于」帶寬時(shí)延積,就不能很好的發(fā)揮出網(wǎng)絡(luò)的傳輸效率。
結(jié)論:發(fā)送緩沖區(qū)的大小最好是往帶寬時(shí)延積靠近
例題:考慮兩臺(tái)主機(jī) A 和主機(jī) B 由一條帶寬為 R bps、長度為 M 米的鏈路互連,信號(hào)傳播速率為 V m/s。假設(shè)主機(jī) A 從 t=0 時(shí)刻開始向主機(jī) B 發(fā)送分組,分組長度為 L 比特,試求:(注:1 k = 103, 1 M = 106)
(1) 傳播延遲(dp)
傳播時(shí)延:dp = 信道長度(m) / 電磁波在信道上的傳播速率(m/s) = M / V
(2) 傳輸延遲(dt)
傳輸延遲:dt = 數(shù)據(jù)幀長度(b) / 信道帶寬(b/s) = L / R
(3) 若忽略結(jié)點(diǎn)處理延遲和排隊(duì)延遲,求端到端延遲 de
端到端總延遲:de = 傳播時(shí)延 + 傳輸延遲 = M / V + L / R
(4) 若 dp > dt,則 t = dt 時(shí)刻,分組的第一個(gè)比特在哪里?
dp > dt 意味著最早發(fā)送的信號(hào)沒有到達(dá)目的主機(jī)之前,數(shù)據(jù)分組的最后一個(gè)比特已經(jīng)發(fā)送出來了,所以分組的第一個(gè)比特在距離主機(jī)的 V * dt 米的鏈路上
(5) 若 V = 250000 km/s,L = 512 bit,R = 100 Mbps,則使帶寬時(shí)延積剛好為一個(gè)分組長度(即 512 bit)的鏈路長度M是多少?
時(shí)延帶寬積 = 傳播時(shí)延 * 帶寬 = M / V * R = 512,解之得 M = 1280 m
往返時(shí)延 RTT
往返時(shí)延
:RTT ( Round-Trip Time ),從發(fā)送方發(fā)送數(shù)據(jù)開始,到發(fā)送方收到接收方的確認(rèn)(接收方收到數(shù)據(jù)后立即發(fā)送確認(rèn)),總共經(jīng)歷的時(shí)延。
往返延時(shí)(RTT)由三個(gè)部分決定:即鏈路的傳播時(shí)間、末端系統(tǒng)的處理時(shí)間以及路由器的緩存中的排隊(duì)和處理時(shí)間。其中,前面兩個(gè)部分的值作為一個(gè)TCP連接相對(duì)固定,路由器的緩存中的排隊(duì)和處理時(shí)間會(huì)隨著整個(gè)網(wǎng)絡(luò)擁塞程度的變化而變化。
RTT的變化在一定程度上反映了網(wǎng)絡(luò)擁塞程度的變化。
結(jié)論:RTT越大,在收到確認(rèn)之前,可以發(fā)送的數(shù)據(jù)越多。
利用率 Utilization Rate
信道利用率指出某信道有百分之幾的時(shí)間是被利用的(有數(shù)據(jù)通過),完全空閑的信道利用率是零。
假定A發(fā)送分組需要的時(shí)間為TD,分組確認(rèn)時(shí)間為TA,往返時(shí)間為RTT。根據(jù)信道利用率的概念,我們可以得到如下信道利用率的計(jì)算方法:經(jīng)典例題
:通信信道帶寬為 1 Gb/s,端到端時(shí)延為 10 ms,TCP的發(fā)送窗口為 65535 字節(jié),試問:可能達(dá)到的最大吞吐量和信道利用率?
發(fā)送時(shí)延 = 數(shù)據(jù)長度 / 信道帶寬 = (655358 bit) / (1 Gb/s) = 0.52428 * 10-3 s = 0.52428 ms;
傳播往返時(shí)延 = 2 * 10 = 20 ms (發(fā)送數(shù)據(jù)和接收確認(rèn))
故每發(fā)送每個(gè)窗口大小的流量,總時(shí)延 = 發(fā)送時(shí)延 + 傳播往返時(shí)延 = 0.52428 + 20 = 20.52428 ms
每秒鐘可以產(chǎn)生 1 s / 20.20.52428 ms = 1000 ms / 20.52428 ms 個(gè)窗口
最大數(shù)據(jù)吞吐量 = 655368 * (1000 / 20.52428) = 25544769 bit/s = 25.5 Mb/s
信道的利用率 = (25.5 Mb/s) / (1000 Mb/s) ≈ 2.55%
信道利用率,也叫信道的效率。對(duì)發(fā)送方而言,發(fā)送方在一個(gè)發(fā)送周期內(nèi),有效地發(fā)送數(shù)據(jù)所需要的時(shí)間占整個(gè)發(fā)送周期的比率。
分層結(jié)構(gòu)、協(xié)議、接口、服務(wù)
發(fā)送文件前要完成的工作?
(1)發(fā)起通信的計(jì)算機(jī)必須將數(shù)據(jù)通信的通路進(jìn)行激活。
(2)要告訴網(wǎng)絡(luò)如何識(shí)別目的主機(jī)。
(3)發(fā)起通信的計(jì)算機(jī)要查明目的主機(jī)是否開機(jī),并且與網(wǎng)絡(luò)連接正常。
(4)發(fā)起通信的計(jì)算機(jī)要弄清楚,對(duì)方計(jì)算機(jī)中文件管理程序是否已經(jīng)做好準(zhǔn)備工作。
(5)確保差錯(cuò)和意外可以解決。
計(jì)算機(jī)網(wǎng)絡(luò)體系分層結(jié)構(gòu)
OSI 體系結(jié)構(gòu)
:應(yīng)用層,表示層,會(huì)話層,運(yùn)輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,物理層
TCP / IP 體系結(jié)構(gòu)
:應(yīng)用層,運(yùn)輸層(TCP或UDP),網(wǎng)際層(IP),網(wǎng)絡(luò)接口層
五層協(xié)議體系結(jié)構(gòu)
:應(yīng)用層,運(yùn)輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,物理層
網(wǎng)絡(luò)協(xié)議 Network protocol
網(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)作”(actions)。
網(wǎng)絡(luò)協(xié)議至少包括三要素:
① 語法(用來規(guī)定信息格式)② 語義(用來說明通信雙方應(yīng)當(dāng)怎么做)③ 時(shí)序(詳細(xì)說明事件的先后順序)
網(wǎng)際層協(xié)議
:IP協(xié)議、ICMP協(xié)議、ARP協(xié)議、RARP協(xié)議
傳輸層協(xié)議
:TCP協(xié)議、UDP協(xié)議
應(yīng)用層協(xié)議
:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS
接口 (訪問服務(wù)點(diǎn)SAP)
接口(訪問服務(wù)點(diǎn)SAP):上層使用下層的服務(wù)的入口
例如:傳輸層和網(wǎng)絡(luò)層的接口,邏輯上屬于網(wǎng)絡(luò)層。
服務(wù) Service
服務(wù):下層為相鄰上層提供的功能調(diào)用(垂直)
下層為上層提供的功能調(diào)用(即原語)主要分為:Request、Indiction、Response、Confirmation
請(qǐng)求(Request) :由服務(wù)用戶發(fā)往服務(wù)提供者,請(qǐng)求完成某項(xiàng)工作。
指示(Indication) :由服務(wù)提供者發(fā)往服務(wù)用戶,指示用戶做某件事情。
響應(yīng)(Response) :由服務(wù)用戶發(fā)往服務(wù)提供者,作為對(duì)指示的響應(yīng)。
證實(shí)(Confirmation) :由服務(wù)提供者發(fā)往服務(wù)用戶,作為對(duì)請(qǐng)求的證實(shí)。
注意:在一層內(nèi)完成的全部功能并非都稱之為服務(wù),只有那些能夠被高一層實(shí)體“看得見”的功能才能稱為服務(wù)。
服務(wù)原語
:上層使用下層所提供的服務(wù)必須與下層交換一些指令,這些指令在OSI中被稱為服務(wù)原語。
OSI 7層網(wǎng)絡(luò)互連模型
OSI(Open System Interconnect)
,即開放式系統(tǒng)互聯(lián)。 一般都叫 OSI 參考模型,是 ISO(國際標(biāo)準(zhǔn)化組織)組織在 1985 年研究的網(wǎng)絡(luò)互連模型。
ISO 為了更好的使網(wǎng)絡(luò)應(yīng)用更為普及,推出了 OSI 參考模型。其含義就是推薦所有公司使用這個(gè)規(guī)范來控制網(wǎng)絡(luò)。這樣所有公司都有相同的規(guī)范,就能互聯(lián)了。
OSI 定義了網(wǎng)絡(luò)互連的七層框架(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層、應(yīng)用層),即ISO 開放互連系統(tǒng)參考模型。
(1) 物理層 (Physical Layer)
物理層是 OSI 參考模型的最低層,它利用傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接。它主要關(guān)心的是通過物理鏈路從一個(gè)節(jié)點(diǎn)向另一個(gè)節(jié)點(diǎn)傳送比特流,物理鏈路可能是銅線、衛(wèi)星、微波或其他的通訊媒介。
它關(guān)心的問題有:多少伏電壓代表 1 ?多少伏電壓代表 0 ?時(shí)鐘速率是多少?采用全雙工還是半雙工傳輸?總的來說物理層關(guān)心的是鏈路的機(jī)械、電氣、功能和規(guī)程特性。
(2) 數(shù)據(jù)鏈路層 (Data Link Layer)
數(shù)據(jù)鏈路層是為網(wǎng)絡(luò)層提供服務(wù)的,解決兩個(gè)相鄰結(jié)點(diǎn)之間的通信問題,傳送的協(xié)議數(shù)據(jù)單元稱為數(shù)據(jù)幀。
數(shù)據(jù)幀中包含物理地址(又稱 MAC 地址)、控制碼、數(shù)據(jù)及校驗(yàn)碼等信息。該層的主要作用是通過校驗(yàn)、確認(rèn)和反饋重發(fā)等手段,將不可靠的物理鏈路轉(zhuǎn)換成對(duì)網(wǎng)絡(luò)層來說無差錯(cuò)的數(shù)據(jù)鏈路。
此外,數(shù)據(jù)鏈路層還要協(xié)調(diào)收發(fā)雙方的數(shù)據(jù)傳輸速率,即進(jìn)行流量控制,以防止接收方因來不及處理發(fā)送方來的高速數(shù)據(jù)而導(dǎo)致緩沖器溢出及線路阻塞。
(3) 網(wǎng)絡(luò)層 (Network Layer)
網(wǎng)絡(luò)層是為傳輸層提供服務(wù)的,傳送的協(xié)議數(shù)據(jù)單元稱為數(shù)據(jù)包或分組。該層的主要作用是解決如何使數(shù)據(jù)包通過各結(jié)點(diǎn)傳送的問題,即通過路徑選擇算法(路由)將數(shù)據(jù)包送到目的地。
另外,為避免通信子網(wǎng)中出現(xiàn)過多的數(shù)據(jù)包而造成網(wǎng)絡(luò)阻塞,需要對(duì)流入的數(shù)據(jù)包數(shù)量進(jìn)行控制(擁塞控制)。當(dāng)數(shù)據(jù)包要跨越多個(gè)通信子網(wǎng)才能到達(dá)目的地時(shí),還要解決網(wǎng)際互連的問題。
(4) 傳輸層 (Transport Layer)
傳輸層的作用是為上層協(xié)議提供端到端的可靠和透明的數(shù)據(jù)傳輸服務(wù),包括處理差錯(cuò)控制和流量控制等問題。該層向高層屏蔽了下層數(shù)據(jù)通信的細(xì)節(jié),使高層用戶看到的只是在兩個(gè)傳輸實(shí)體間的一條主機(jī)到主機(jī)的、可由用戶控制和設(shè)定的、可靠的數(shù)據(jù)通路。
傳輸層傳送的協(xié)議數(shù)據(jù)單元稱為段或報(bào)文。
(5) 會(huì)話層 (Session Layer)
會(huì)話層主要功能是管理和協(xié)調(diào)不同主機(jī)上各種進(jìn)程之間的通信(對(duì)話),即負(fù)責(zé)建立、管理和終止應(yīng)用程序之間的會(huì)話。會(huì)話層得名的原因是它很類似于兩個(gè)實(shí)體間的會(huì)話概念。例如,一個(gè)交互的用戶會(huì)話以登錄到計(jì)算機(jī)開始,以注銷結(jié)束。
(6) 表示層 (Presentation Layer)
表示層處理流經(jīng)結(jié)點(diǎn)的數(shù)據(jù)編碼的表示方式問題,以保證一個(gè)系統(tǒng)應(yīng)用層發(fā)出的信息可被另一系統(tǒng)的應(yīng)用層讀出。如果必要,該層可提供一種標(biāo)準(zhǔn)表示形式,用于將計(jì)算機(jī)內(nèi)部的多種數(shù)據(jù)表示格式轉(zhuǎn)換成網(wǎng)絡(luò)通信中采用的標(biāo)準(zhǔn)表示形式。
數(shù)據(jù)壓縮和加密也是表示層可提供的轉(zhuǎn)換功能之一。
(7) 應(yīng)用層 (Application Layer)
應(yīng)用層是 OSI 參考模型的最高層,是用戶與網(wǎng)絡(luò)的接口。該層通過應(yīng)用程序來完成網(wǎng)絡(luò)用戶的應(yīng)用需求,如文件傳輸、收發(fā)電子郵件等。
通信子網(wǎng)(數(shù)據(jù)通信)、資源子網(wǎng)(數(shù)據(jù)處理)
通信子網(wǎng)(數(shù)據(jù)通信)
:負(fù)責(zé)完成網(wǎng)絡(luò)數(shù)據(jù)的傳輸,轉(zhuǎn)發(fā)等通信處理任務(wù)。一方面,作為與資源子網(wǎng)的主機(jī),終端鏈接的接口,將主機(jī)和終端連入網(wǎng)內(nèi);另一方面,作為通信子網(wǎng)中的分組存儲(chǔ)轉(zhuǎn)發(fā)節(jié)點(diǎn),完成分組的接收、校驗(yàn)、存儲(chǔ)、轉(zhuǎn)發(fā)等功能,實(shí)現(xiàn)將源主機(jī)報(bào)文準(zhǔn)確發(fā)送到目的主機(jī)的作用。
通信子網(wǎng)(數(shù)據(jù)通信):物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層
資源子網(wǎng)(數(shù)據(jù)處理)
:由主機(jī)系統(tǒng),終端、終端控制器、聯(lián)網(wǎng)外設(shè)、各種軟件資源與信息資源組成。 資源子網(wǎng)實(shí)現(xiàn)全網(wǎng)的面向應(yīng)用的數(shù)據(jù)處理和網(wǎng)絡(luò)資源共享。
通信子網(wǎng)(數(shù)據(jù)通信):會(huì)話層、表示層、應(yīng)用層
OSI 7層參考模型圖解
OSI 7層參考模型的具體功能介紹
TCP / IP、5層網(wǎng)絡(luò)架構(gòu)
OSI 模型和 TCP / IP 模型異同比較?
OSI 模型和 TCP / IP 相同點(diǎn)
① OSI 參考模型與 TCP/IP 參考模型都采用了層次結(jié)構(gòu)。
② 都能夠提供面向連接和無連接兩種通信服務(wù)機(jī)制。
OSI 模型和 TCP / IP 不同點(diǎn)
OSI 采用的七層模型;
TCP / IP 是四層結(jié)構(gòu)。
TCP / IP 參考模型沒有對(duì)網(wǎng)絡(luò)接口層進(jìn)行細(xì)分,只是一些概念性的描述;
OSI 參考模型對(duì)服務(wù)和協(xié)議做了明確的區(qū)分。
OSI 先有模型,后有協(xié)議規(guī)范,適合于描述各種網(wǎng)絡(luò);
TCP / IP 是先有協(xié)議集然后建立模型,不適用于非 TCP / IP 網(wǎng)絡(luò)。
TCP / IP 一開始就提出面向連接和無連接服務(wù);
而 OSI 一開始只強(qiáng)調(diào)面向連接服務(wù),直到很晚才開始制定無連接的服務(wù)標(biāo)準(zhǔn)。
OSI 參考模型雖然被看好,但將網(wǎng)絡(luò)劃分為七層,實(shí)現(xiàn)起來較困難;
相反,TCP / IP 參考模型雖然有許多不盡人意的地方,但作為一種簡(jiǎn)化的分層結(jié)構(gòu)還是比較成功的。
面向無連接和面向連接的最主要區(qū)別是什么?
其一:面向連接分為三個(gè)階段,第一是建立連接,在此階段,發(fā)出一個(gè)建立連接的請(qǐng)求。只有在連接成功建立之后,才能開始數(shù)據(jù)傳輸,這是第二階段。接著,當(dāng)數(shù)據(jù)傳輸完畢,必須釋放連接。而面向無連接沒有這么多階段,它直接進(jìn)行數(shù)據(jù)傳輸。
其二:面向連接的通信具有數(shù)據(jù)的保序性, 而面向無連接的通信不能保證接收數(shù)據(jù)的順序與發(fā)送數(shù)據(jù)的順序一致。
為什么 TCP / IP 去除了表示層和會(huì)話層?
OSI 參考模型在提出時(shí),他們的理想是非常好的,但實(shí)際上,由于會(huì)話層、表示層、應(yīng)用層都是在應(yīng)用程序內(nèi)部實(shí)現(xiàn)的,最終產(chǎn)出的是一個(gè)應(yīng)用數(shù)據(jù)包,而應(yīng)用程序之間是幾乎無法實(shí)現(xiàn)代碼的抽象共享的,這也就造成 OSI 設(shè)想中的應(yīng)用程序維度的分層是無法實(shí)現(xiàn)的。
例如,我們幾乎不會(huì)認(rèn)為數(shù)據(jù)的壓縮、加密算法算是一種協(xié)議,而會(huì)話的概念則更為抽象,難以用協(xié)議來進(jìn)行描述,所以在后來的 TCP / IP 協(xié)議框架的設(shè)計(jì)中,便將表示層和會(huì)話層與應(yīng)用層整合在一起,讓整個(gè)過程更為清晰明了。
總結(jié):會(huì)話層,表示層和應(yīng)用層都是在應(yīng)用程序內(nèi)部實(shí)現(xiàn)的,應(yīng)用程序之間無法實(shí)現(xiàn)代碼的抽象共享,因此應(yīng)用程序維度無法實(shí)現(xiàn)分層。
5層參考模型的功能介紹
5層網(wǎng)絡(luò)架構(gòu)(5層參考模型)封裝與解封裝過程
物理層
計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)中的物理層,就是要解決在各種傳輸媒體上傳輸比特0和1的問題。進(jìn)而給數(shù)據(jù)鏈路層提供透明傳輸此特流的服務(wù)。
物理層基本概念介紹
物理層為了解決在各種傳輸媒體上傳輸比特0和1的問題,主要有以下四個(gè)任務(wù):
機(jī)械特性
:指明接口所用接線器的形狀和尺寸、引腳數(shù)目和排列、固定和鎖定裝置。
電氣特性
:指明在接口電纜的各條線上出現(xiàn)的電壓的范圍。
功能特性
:指明某條線上出現(xiàn)的某一電平的電壓表示何種意義。
過程特性
:指明對(duì)于不同功能的各種可能事件的出現(xiàn)順序。
數(shù)據(jù)通信基礎(chǔ)知識(shí)
數(shù)據(jù)通信系統(tǒng)
包括三大部分:源系統(tǒng)(或發(fā)送端、發(fā)送方)、傳輸系統(tǒng)(或傳輸網(wǎng)絡(luò))和目的系統(tǒng)(或接收端、接收方)
數(shù)據(jù)通信的目的:傳送消息
典型的數(shù)據(jù)通信模型圖例:
數(shù)據(jù):傳送信息的實(shí)體,通常是有意義的符號(hào)序列。
信號(hào):數(shù)據(jù)的電氣 / 電磁的表現(xiàn),是數(shù)據(jù)在傳輸過程中的存在形式。
數(shù)字信號(hào):代表消息的參數(shù)取值是離散的。
模擬信號(hào):代表消息的參數(shù)取值是連續(xù)的。
信源:產(chǎn)生和發(fā)送數(shù)據(jù)的源頭。
信宿:接收數(shù)據(jù)的終點(diǎn)。
信道:信號(hào)的傳輸媒介。一般用來表示向某一個(gè)方向傳送信息的介質(zhì),因此一條通信線路往往包含一條發(fā)送信道和一條接收信道。
通信雙方信息的交互方式:3種通信方式
單向通信(單工通信)
:只能有一個(gè)方向的通信而沒有反方向的交互。(需要1條信道)
雙向交替通信(半雙工通信)
:通信的雙方都可以發(fā)送信息,但不能雙方同時(shí)發(fā)送(當(dāng)然也就不能同時(shí)接收)。(需要2條信道)
雙向同時(shí)通信(全雙工通信)
:通信的雙方可以同時(shí)發(fā)送和接收信息。(需要2條信道)
基帶信號(hào)(基本頻帶信號(hào)):來自信源的信號(hào)。像計(jì)算機(jī)輸出的代表各種文字或圖像文件的數(shù)據(jù)信號(hào)都屬于基帶信號(hào)。
兩種數(shù)據(jù)的傳輸方式:串行傳輸
(速度慢、費(fèi)用低、適合遠(yuǎn)距離)、并行傳輸
(速度快、費(fèi)用高、適合近距離,如:計(jì)算機(jī)內(nèi)部數(shù)據(jù)傳輸)
碼元、波特、速率、帶寬
什么是碼元?
碼元
是指用一個(gè)固定時(shí)長的信號(hào)波形(數(shù)字脈沖),代表不同離散數(shù)值的基本波形,是數(shù)字通信中數(shù)字信號(hào)的計(jì)量單位,這個(gè)時(shí)長內(nèi)的信號(hào)稱為k進(jìn)制碼元,而該時(shí)長稱為碼元寬度。當(dāng)碼元的離散狀態(tài)有M個(gè)時(shí)(M大于2),此時(shí)碼元為M進(jìn)制碼元。
1碼元可以攜帶多個(gè)比特的信息量。例如,在使用二進(jìn)制編碼時(shí),只有兩種不同的碼元,一種代表0狀態(tài),另一種代表1狀態(tài)。
什么是波特?
數(shù)字信號(hào)由碼元組成,碼元攜帶一定量的信息。定義單位時(shí)間傳輸?shù)拇a元數(shù)為碼元速率,單位為碼元/秒,又稱為波特(Baud)。
由此可見,波特是一種單位,是碼元傳輸速率(也稱傳碼率)的單位,也可以理解成單位時(shí)間內(nèi)載波調(diào)制狀態(tài)變化的次數(shù)。
注意:“波特”(Baud)本身已是速率,所以不需要寫成 Baud Rate(Rate 是贅字)。
單位“波特”本身就代表每秒的調(diào)制數(shù),以“波特每秒”(Baud per second)為單位是一種常見的錯(cuò)誤,但是在一般中文口語化的溝通上還是常以“波特率”來描述“波特”(Baud)。
什么是速率?
速率
也叫數(shù)據(jù)率,是指數(shù)據(jù)的傳輸速率,表示單位時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)量??梢杂么a元傳輸速率和信息傳輸速率表示。
碼元傳輸速率
:別名碼元速率,波形速率,調(diào)制速率,符號(hào)速率等,它表示單位時(shí)間內(nèi)數(shù)字通信系統(tǒng)所傳輸?shù)拇a元個(gè)數(shù)(也可稱為脈沖個(gè)數(shù)或者信號(hào)變化次數(shù)),單位是波特。1波特表示數(shù)字通信系統(tǒng)每秒傳輸一個(gè)碼元。碼元速率和碼元進(jìn)制數(shù)無關(guān)。
信息傳輸速率
:別名信息速率,比特率等,表示單位時(shí)間內(nèi)數(shù)字通信系統(tǒng)傳輸?shù)亩M(jìn)制碼元個(gè)數(shù)(即比特?cái)?shù)),單位是比特 / 秒(b/s)。
兩者關(guān)系:若一個(gè)碼元攜帶 n bit 的信息量,則 M Baud 的碼元傳輸速率所對(duì)應(yīng)的信息傳輸速率為 M × n bit / s。
若一個(gè)碼元有4個(gè)狀態(tài)值時(shí),該碼元攜帶的信息量?在9600波特對(duì)應(yīng)的信息傳輸速率?
在4個(gè)狀態(tài)值時(shí),按上述的推理可以知道( 2^2=4),每2個(gè)比特組成一個(gè)碼元。即該碼元攜帶2個(gè)bit的信息量。
在9600RB條件下,利用 Rb 公式,就可以直接得到 = 9600 log24 = 9600 × log24 = 9600 × 2 = 19200 bps,即信息傳輸速率 = 19200 bps
什么是帶寬?
帶寬
:表示在單位時(shí)間內(nèi)從網(wǎng)絡(luò)中的某一點(diǎn)到另一點(diǎn)所能通過的“最高數(shù)據(jù)率”,常用來表示網(wǎng)絡(luò)的通信線路所能傳輸數(shù)據(jù)的能力。單位是b/s。
速率與帶寬的區(qū)別?
速率是實(shí)際上的發(fā)送速率,帶寬是理想狀況下的發(fā)送速率
奈氏準(zhǔn)則和香農(nóng)定理
碼元在信道傳輸失真問題:
影響失真程度的因素: 1. 碼元傳輸速率 2. 信號(hào)傳輸距離 3. 噪聲干擾 4. 傳輸媒體質(zhì)量
失真的一種現(xiàn)象 - 碼間串?dāng)_:接收端收到的信號(hào)波形失去了碼元之間清晰界限的現(xiàn)象。
理想低通信道:
什么是“低通”呢?
:簡(jiǎn)單說就是帶寬受限,“低通”即指低頻通過,“理想低通信道”即指理想的能讓部分低頻率信號(hào)通過的信道(只要不要超過這個(gè)低頻率信號(hào)范圍都可無失真的通過)。
什么是“信道”呢?
:信道一般用來表示向某一個(gè)方向傳送信息的媒體,因此一條通信電路往往含一條發(fā)送信道和一條接收信道。而“理想的信道”指沒有噪聲的信道。
什么是“噪聲”呢?
:指因傳輸系統(tǒng)造成的各種失真,例如導(dǎo)體中電子的熱振動(dòng)、閃電引起脈沖錯(cuò)亂等。
奈氏準(zhǔn)則
奈奎斯特定理
:奈奎斯特(Nyquist)定理:又稱奈氏準(zhǔn)則,指在理想低通(無噪聲,帶寬受限)的信道中,極限碼元傳輸率為 2W Baud。其中,W是理想低通信道的帶寬,單位為Hz。(當(dāng)然只有在這兩個(gè)公式里帶寬采用Hz,其他地方采用bps)
奈氏準(zhǔn)則:(目的是為了避免碼間串?dāng)_)
? 對(duì)于奈氏準(zhǔn)則,可得以下結(jié)論:
1)在任何的信道中,碼元傳輸?shù)乃俾适怯邢薜模唬ㄈ绻^大,會(huì)出現(xiàn)嚴(yán)重的碼間串?dāng)_問題,使得接收方正確識(shí)別非常困難)
2)信道的頻帶越寬(能通過的信號(hào)高頻分量越多),就可以用更高的速率進(jìn)行碼元的有效傳輸;
3)奈氏準(zhǔn)則給出了碼元傳輸速率的限制,并沒有對(duì)信息傳輸速率給出限制;
4)由于碼元的傳輸速率受限于奈氏準(zhǔn)則,要提高數(shù)據(jù)的傳輸速率,要采用多元的調(diào)制方法。
例題:在無噪聲的情況下,若某通信鏈路的帶寬為 3k Hz,采用 4 個(gè)相位,每個(gè)相位具有 4 種振幅的 QAM 調(diào)制技術(shù),則該通信鏈路的最大數(shù)據(jù)傳輸率是?
信號(hào)有 4 x 4 = 16 種變化,最大數(shù)據(jù)傳輸率 = 2 x 3 k x 4 = 24 k b/s
補(bǔ)充內(nèi)容:什么是相位?
香農(nóng)定理
噪聲存在于所有的電子設(shè)備和通信信道中。由于噪聲隨機(jī)產(chǎn)生,它的瞬時(shí)值有時(shí)會(huì)很大,因此噪聲會(huì)使接收端對(duì)碼元的判決產(chǎn)生錯(cuò)誤。但是噪聲的影響是相對(duì)的,若信號(hào)較強(qiáng),那么噪聲影響相對(duì)較小。因此,信噪比就很重要。
香農(nóng)定理(Shannon Theory)
:在帶寬受限且有噪聲的信道中,為了不產(chǎn)生誤差,信息的數(shù)據(jù)傳輸速率有上限值。給出了信道信息傳送速率的上限(比特每秒)和信道信噪比及帶寬的關(guān)系。
信噪比 = 信號(hào)的平均功率 / 噪聲的平均功率,常記為S/N,并用分貝(dB)作為度量單位。信噪比 dB = 10 log10 (S / N)
香農(nóng)定理可以解釋現(xiàn)代各種無線制式由于帶寬不同,所支持的單載波最大吞吐量的不同。
在有隨機(jī)熱噪聲的信道上傳輸數(shù)據(jù)信號(hào)時(shí),信道容量Rmax與信道帶寬W,信噪比S/N關(guān)系為:
Rmax=W*log2(1+S/N)。注意這里的log2是以2為底的對(duì)數(shù)。
? 對(duì)于香農(nóng)定理,可以得出以下結(jié)論:
1)信道的帶寬或信噪比越大,則信息的極限傳輸速率越高;
2)對(duì)一定的帶寬和一定的信噪比,信息傳輸速率就確定了;
3)只要信息的傳輸速率低于信道的傳輸速率,就一定能找到某種方法來實(shí)現(xiàn)無差錯(cuò)的傳輸;
4)香農(nóng)定理得出的為極限傳輸速率,實(shí)際信道能達(dá)到的傳輸速率要比它低不少;
5)若帶寬W或信噪比 S/N 沒有上限(不可能),信道的極限信息傳輸速率也就沒有上限。
例:電話系統(tǒng)的典型參數(shù)是信道帶寬為3000 Hz,信噪比為30 dB,則該系統(tǒng)最大數(shù)據(jù)傳輸速率是多少?
30 dB = 10 log2 (S/N),則 S / N = 1000
信道的極限數(shù)據(jù)傳輸速率 = W log2 (1 + S/N) = 3000 x log2 (1 + 1000) ≈ 30k b/s
俗話說:“有線的資源是無限的,而無線的資源卻是有限的。”無線信道并不是可以任意增加傳送信息的速率,它受其固有規(guī)律的制約,就像城市道路上的車一樣不能想開多快就開多快,還受到道路寬度、其他車輛數(shù)量等因素影響。這個(gè)規(guī)律就是香農(nóng)定理。
奈氏準(zhǔn)則、香農(nóng)定理比較?
考試的時(shí)候選用提示:看是否給出 V(1個(gè)碼元對(duì)應(yīng)幾個(gè)bit),還有是否是無噪聲條件下?
重要的區(qū)別:奈氏準(zhǔn)則只是限制碼元傳輸速率有上限,而香農(nóng)定理才是限制數(shù)據(jù)傳輸速率的上限。
考題例子
:進(jìn)制信號(hào)在信噪比為 127 : 1 的 4k Hz 信道上傳輸,最大數(shù)據(jù)速率可達(dá)到多少?
奈氏準(zhǔn)則:2 × 4k × log2 2 = 8 k bps = 8000 b/s
香農(nóng)定理:4k × log2 (1 + 127) = 28 k bps = 28000 b/s
結(jié)果:那個(gè)小,選哪個(gè),所以最大數(shù)據(jù)傳輸速率為 8000 b/s。
信號(hào)的編碼與調(diào)制
基帶信號(hào)、寬帶信號(hào)
基帶信號(hào)
:將數(shù)字信號(hào)1和0直接用兩種不同的電壓表示,再送到數(shù)字信道上去傳輸(基帶傳輸)
來自信源的信號(hào),像計(jì)算機(jī)輸出的代表各種文字或圖像文件的數(shù)據(jù)信號(hào)都屬于基帶信號(hào)。基帶信號(hào)就是發(fā)出的直接表達(dá)了要傳輸?shù)男畔⒌男盘?hào),比如我們說話的聲波就是基帶信號(hào)。
寬帶信號(hào)
:將基帶信號(hào)進(jìn)行調(diào)制后形成的頻分復(fù)用模擬信號(hào),再傳送到模擬信道上去傳輸(寬帶傳輸)
把基帶信號(hào)經(jīng)過載波調(diào)制后,把信號(hào)的頻率范圍搬移到較高的頻段以便在信道中傳輸(即僅在一段頻率范圍內(nèi)能夠通過信道)。
在傳輸距離較近時(shí),計(jì)算機(jī)網(wǎng)絡(luò)采用基帶傳輸方式(近距離衰減小,從而信號(hào)內(nèi)容不易發(fā)生變化)
在傳輸距離較遠(yuǎn)時(shí),計(jì)算機(jī)網(wǎng)絡(luò)采用寬帶傳輸方式(遠(yuǎn)距離衰減大,即使信號(hào)變化大也能最后過濾出來基帶信號(hào))
數(shù)字信號(hào)和模擬信號(hào)的區(qū)別
數(shù)字信號(hào)(Digital Signal)
定義:指自變量是離散的、因變量也是離散的信號(hào),這種信號(hào)的自變量用整數(shù)表示,因變量用有限數(shù)字中的一個(gè)數(shù)字來表示。在計(jì)算機(jī)中,數(shù)字信號(hào)的大小常用有限位的二進(jìn)制數(shù)表示。
表示形式:① 斷續(xù)變化的電壓脈沖(如我們可用恒定的正電壓表示二進(jìn)制數(shù)1,用恒定的負(fù)電壓表示二進(jìn)制數(shù)0)② 光脈沖
模擬信號(hào)(Analog Signal)
定義:指信息參數(shù)在給定范圍內(nèi)表現(xiàn)為連續(xù)的信號(hào)/ 或在一段連續(xù)的時(shí)間間隔內(nèi),其代表信息的特征量可以在任意瞬間呈現(xiàn)為任意數(shù)值的信號(hào)。
表示形式:① 連續(xù)變化的電磁波(如無線電與電視廣播中的電磁波)② 電壓信號(hào)(如電話傳輸中的音頻電壓信號(hào))
模擬信號(hào)轉(zhuǎn)數(shù)字信號(hào):模擬信號(hào)的數(shù)字化一般需要三個(gè)步驟:采樣、量化和編碼。
隨著采樣率和量化等級(jí)的增加,轉(zhuǎn)換后的數(shù)字信號(hào)的曲線也就越能貼近模擬信號(hào)的曲線(對(duì)比上圖的原曲線和黃色曲線)。
編碼與調(diào)制的區(qū)分
物理層傳輸介質(zhì)、設(shè)備
傳輸介質(zhì)及分類
傳輸介質(zhì)也稱傳輸媒體 / 傳輸媒介,它就是數(shù)據(jù)傳輸系統(tǒng)中在發(fā)送設(shè)備和接收設(shè)備之間的數(shù)據(jù)通路。
傳輸媒體并不是物理層,傳輸媒體在物理層的下面,因?yàn)槲锢韺邮求w系結(jié)構(gòu)的第一次,因此有時(shí)稱傳輸媒體為0層。在傳輸媒體中傳輸?shù)氖切盘?hào),但傳輸媒體并不知道所傳輸?shù)男盘?hào)代表什么意思。
物理層則因?yàn)橐?guī)定了電氣特性,因此能夠識(shí)別所傳輸?shù)谋忍亓鳌?br>
導(dǎo)向性傳輸介質(zhì):1. 雙絞線(最常用的傳輸介質(zhì)) 2. 同軸電纜(主要用于有線電視系統(tǒng)) 3. 光纖
光纖通信就是利用光導(dǎo)纖維(簡(jiǎn)稱光纖)傳遞光脈沖來進(jìn)行通信。有光脈沖表示1,無光脈沖表示0。而可見光的頻率大約是10MH,因此光纖通信系統(tǒng)的帶寬遠(yuǎn)遠(yuǎn)大于目前其他各種傳輸媒體的帶寬。
光纖的特點(diǎn):1. 傳輸損耗小,中繼距離長,對(duì)遠(yuǎn)距離傳輸特別經(jīng)濟(jì)。2. 抗雷電和電磁干擾性好。
3. 無串音干擾,也不易被竊聽或截取數(shù)據(jù)。4. 體積小,重量輕。
非導(dǎo)向性傳輸介質(zhì)分三種:分線電波,微波,(紅外線、激光)
物理器設(shè)備
中繼器
:中繼器又稱為轉(zhuǎn)發(fā)器,主要功能是將信號(hào)整形并放大再轉(zhuǎn)發(fā)出去,以消除信號(hào)經(jīng)過一長段電纜后,因噪聲或其他原因而造成的失真和衰減,使信號(hào)的波形和強(qiáng)度達(dá)到所需要的要求,進(jìn)而擴(kuò)大網(wǎng)絡(luò)傳輸?shù)木嚯x。
中繼器是沒有存儲(chǔ)轉(zhuǎn)發(fā)功能的,因此是不能連接兩個(gè)速率不同的網(wǎng)段,中繼器兩端的網(wǎng)段一定要使用同一個(gè)協(xié)議。
集線器
:集線器實(shí)質(zhì)上是一個(gè)多端口的中繼器,它也工作在物理層。(連在集線器的工作主機(jī)將會(huì)平分帶寬)
數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層最基本的服務(wù)是將源計(jì)算機(jī)網(wǎng)絡(luò)層來的數(shù)據(jù)可靠的傳輸?shù)较噜徆?jié)點(diǎn)的目標(biāo)計(jì)算機(jī)的網(wǎng)絡(luò)層。
數(shù)據(jù)鏈路層必須具備一系列相應(yīng)的功能,主要有:
-
如何將數(shù)據(jù)組合成數(shù)據(jù)塊(在數(shù)據(jù)鏈路層中將這種數(shù)據(jù)塊稱為幀,幀是數(shù)據(jù)鏈路層的傳送單位)
-
如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯(cuò),如何調(diào)節(jié)發(fā)送速率以使之與接收方相匹配
-
在兩個(gè)網(wǎng)路實(shí)體之間提供數(shù)據(jù)鏈路通路的建立、維持和釋放管理
數(shù)據(jù)鏈路層基本概念介紹
數(shù)據(jù)鏈路層在物理層提供服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)是將源自網(wǎng)絡(luò)層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點(diǎn)的目標(biāo)機(jī)網(wǎng)絡(luò)層。其主要作用是加強(qiáng)物理層傳輸原始比特流的功能,將物理層提供的可能出錯(cuò)的物理連接改造成為邏輯上無差錯(cuò)的數(shù)據(jù)鏈路,使之對(duì)網(wǎng)絡(luò)層表現(xiàn)為一條無差錯(cuò)的鏈路。
數(shù)據(jù)鏈路層功能介紹
功能一:為網(wǎng)絡(luò)層提供服務(wù)。無確認(rèn)無連接服務(wù),有確認(rèn)無連接服務(wù),有確認(rèn)面向連接服務(wù)。
功能二:鏈路管理,即連接的建立、維持、釋放(用于面向連接的服務(wù))。
功能三:組幀(把網(wǎng)絡(luò)層的數(shù)據(jù)進(jìn)行封裝成幀:打幀頭幀尾)
功能四:流量控制(限制發(fā)送方)
功能五:差錯(cuò)控制(幀錯(cuò)、位錯(cuò))
封裝成幀和透明傳輸
封裝成幀
封裝成幀就是在一段數(shù)據(jù)的前后部分添加首部和尾部,這樣就構(gòu)成了一個(gè)幀。接收端在收到物理層上交的比特流后,就能根據(jù)首部和尾部的標(biāo)記,從收到的比特流中識(shí)別幀的開始和結(jié)束。
首部和尾部包含許多的控制信息,他們的一個(gè)重要作用:幀定界
(確定幀的界限)。
幀同步
:接收方應(yīng)當(dāng)能從接收到的二進(jìn)制比特流中區(qū)分出幀的起始和終止。
透明傳輸
透明傳輸是指不管所傳數(shù)據(jù)是什么樣的比特組合,都應(yīng)當(dāng)能夠在鏈路上傳送。因此,鏈路層就“看不見”有什么妨礙數(shù)據(jù)傳輸?shù)臇|西。
當(dāng)所傳數(shù)據(jù)中的比特組合恰巧與某一個(gè)控制信息完全一樣時(shí),就必須采取適當(dāng)?shù)拇胧?,使收方不?huì)將這樣的數(shù)據(jù)誤認(rèn)為是某種控制信息。這樣才能保證數(shù)據(jù)鏈路層的傳輸是透明的。
組幀(四種方法)
組幀的四種方法:1. 字符計(jì)數(shù)法,2. 字符(節(jié))填充法,3. 零比特填充法,4. 違規(guī)編碼法。
字符計(jì)數(shù)法
幀首部使用一個(gè)計(jì)數(shù)字段(第一個(gè)字節(jié),八位)來標(biāo)明幀內(nèi)字符數(shù)。字符填充法
就是在幀的開始部分和結(jié)束部分分別加上一個(gè)開始字段和結(jié)束字段,但是這樣會(huì)產(chǎn)生一個(gè)問題,當(dāng)傳輸?shù)膸欠茿SCALL的文件時(shí),若數(shù)據(jù)部分有和開始字段或結(jié)束字段相同的字段怎么辦?這個(gè)時(shí)候就需要字符填充法進(jìn)行透明傳輸
當(dāng)傳送的幀是由文本文件組成時(shí)(文本文件的字符都是從鍵盤上輸入的,都是ASCII碼)。不管從鍵盤上輸入什么字符都可以放在幀里傳過去,即透明傳輸。
當(dāng)傳送的幀是由非ASCIlI碼的文本文件組成時(shí)(二進(jìn)制代碼的程序或圖像等)。就要采用字符填充方法實(shí)現(xiàn)透明傳輸。
就是在數(shù)據(jù)中出現(xiàn)的與開始和相同的字段是,在其前面加上轉(zhuǎn)義字符ESC,接收方收到數(shù)據(jù)后,發(fā)現(xiàn)前面有ESC就知道這是數(shù)據(jù)而不是控制字段,同時(shí)將ESC去掉還原出原來的數(shù)據(jù)
零比特填充法
操作:① 在發(fā)送端,掃描整個(gè)信息字段,只要連續(xù)5個(gè)1,就立即填入1個(gè)0。② 在接收端收到一個(gè)幀時(shí),先找到標(biāo)志字段確定邊界,再用硬件對(duì)比特流進(jìn)行掃描。發(fā)現(xiàn)連續(xù)5個(gè)1時(shí),就把后面的0刪除。違規(guī)編碼法
違規(guī)編碼法不需要采用任何填充技術(shù),便能實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)耐该餍?,但它只適用于采用冗余編碼的特殊編碼環(huán)境。局域網(wǎng)IEEE802標(biāo)準(zhǔn)就采用這種方法。
結(jié)論: 由于字節(jié)計(jì)數(shù)法中Count字段的脆弱性(其值若有差錯(cuò)將導(dǎo)致災(zāi)難性后果〉及字符填充實(shí)現(xiàn)上的復(fù)雜性和不兼容性,目前較普遍使用的幀同步法是比特填充和違規(guī)編碼法。
差錯(cuò)控制(檢錯(cuò)、糾錯(cuò)編碼)
由于數(shù)據(jù)通信系統(tǒng)傳輸特性的不理想和外部干擾的存在,傳輸中出現(xiàn)差錯(cuò)是不可避免的。
差錯(cuò)控制的目的:確保所有的幀按順序正確遞交到數(shù)據(jù)鏈路層用戶(網(wǎng)絡(luò)層實(shí)體)。
差錯(cuò)的分類:隨機(jī)差錯(cuò)(隨機(jī)的、單個(gè)的),突發(fā)差錯(cuò)(成片的、連續(xù)的)
數(shù)據(jù)鏈路層編碼和物理層的數(shù)據(jù)編碼與調(diào)制不同。物理層編碼針對(duì)的是單個(gè)比特,解決傳輸過程中比特的同步等問題,如曼徹斯特編碼。而數(shù)據(jù)鏈路層的編碼針對(duì)的是一組比特,它通過冗余碼的技術(shù)實(shí)現(xiàn)一組二進(jìn)制比特串在傳輸過程是否出現(xiàn)了差錯(cuò)。
奇偶效驗(yàn)碼
奇偶校驗(yàn)碼是一種增加二進(jìn)制傳輸系統(tǒng)最小距離的簡(jiǎn)單和廣泛采用的方法。
一個(gè)二進(jìn)制碼字,如果它的碼元有奇數(shù)個(gè)1,就稱為具有奇性。例如,碼字“10110101”有五個(gè)1,因此,這個(gè)碼字具有奇性。同樣,偶性碼字具有偶數(shù)個(gè)1。注意奇性檢測(cè)等效于所有碼元的模二加,并能夠由所有碼元的異或運(yùn)算來確定。
具體方法:通過加入校驗(yàn)位后的1個(gè)數(shù)是奇數(shù)還是偶數(shù),可分為兩種:① 奇校驗(yàn):1的個(gè)數(shù)為奇數(shù) ② 偶校驗(yàn):1的個(gè)數(shù)為偶數(shù)
奇偶效驗(yàn)碼特點(diǎn):只能檢查出奇數(shù)個(gè)比特錯(cuò)誤,檢錯(cuò)能力是50%
循環(huán)冗余碼 CRC
Cyclic Redundancy Check
:即循環(huán)冗余校核,是一種根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包或電腦文件等數(shù)據(jù)產(chǎn)生簡(jiǎn)短固定位數(shù)校核碼的快速算法,主要用來檢測(cè)或校核數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯(cuò)誤。CRC利用除法及余數(shù)的原理,實(shí)現(xiàn)錯(cuò)誤偵測(cè)的功能,具有原理清晰、實(shí)現(xiàn)簡(jiǎn)單等優(yōu)點(diǎn)。
CRC算法的是以GF(2)(2元素伽羅瓦域)多項(xiàng)式算術(shù)為數(shù)學(xué)基礎(chǔ)的,聽起來很恐怖,但實(shí)際上它的主要特點(diǎn)和運(yùn)算規(guī)則是很好理解的。
GF(2)多項(xiàng)式中只有一個(gè)變量x,其系數(shù)也只有0和1,如:
1*x^7 + 0*x^6 + 1*x^5 + 0*x^4 + 0*x^3 + 1*x^2 +1*x^1 + 1*x^0
計(jì)算冗余碼的步驟:① 加0:假設(shè)生成多項(xiàng)式G(X)的階是R,則加R個(gè)0 ② 模2除法:數(shù)據(jù)加0后除以多項(xiàng)式,余數(shù)為冗余碼 / FCS / CRC 效驗(yàn)碼的比特序列。
接收端檢錯(cuò)過程:把收到的每一個(gè)幀都除以同樣的除數(shù),然后檢查得到的余數(shù)R
- 余數(shù)為0,判定這個(gè)幀沒有差錯(cuò),接受。
- 余數(shù)為不為0,判定這個(gè)幀有差錯(cuò)(無法確定到位),丟棄。
FCS的生成以及接收端CRC檢驗(yàn)都是由硬件實(shí)現(xiàn),處理很迅速,因此不會(huì)延誤數(shù)據(jù)的傳輸。
鏈路層使用CRC檢驗(yàn),能夠?qū)崿F(xiàn)無比特差錯(cuò)的傳輸,但這還不是可靠傳輸。
海明效驗(yàn)碼
海明碼的特點(diǎn):2r >= k + r + 1 (r 為冗余信息位,k 為信息位)
例如發(fā)送的數(shù)據(jù)是 D = 101101,數(shù)據(jù)的位數(shù) k = 6,滿足不等式的最小 r = 4,也就是說 D = 101101 的海明碼應(yīng)該有 6 + 4 = 10 位,其中原數(shù)據(jù) 6 位,效驗(yàn)碼 4 位。
結(jié)論:若采用的是偶校驗(yàn),四個(gè)校驗(yàn)位Gi全為0,表示收到的數(shù)據(jù)正確;若采用的是奇校驗(yàn),四個(gè)校驗(yàn)位Gi全為1,表示收到的數(shù)據(jù)正確
流量控制與可靠性傳輸機(jī)制
較高的發(fā)送速度和較低的接收能力的不匹配,會(huì)造成傳輸出錯(cuò),因此流量控制也是數(shù)據(jù)鏈路層的一項(xiàng)重要工作。
數(shù)據(jù)鏈路層的流量控制:點(diǎn)到點(diǎn);傳輸層的流量控制:端到端;
網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)傳輸時(shí),如果發(fā)送方發(fā)送速率過快,超過了接收方的接收速度,會(huì)發(fā)生丟包等網(wǎng)絡(luò)錯(cuò)誤,TCP提供一種機(jī)制,讓發(fā)送方根據(jù)接收方接收能力, 控制發(fā)送的速率,這種做法稱為流量控制。流量控制是保證TCP可靠性的一個(gè)方面。
停止等待協(xié)議、滑動(dòng)窗口協(xié)議到底屬于哪一層?
早些時(shí)候,鏈路的質(zhì)量還沒有那么可靠的時(shí)候,就需要數(shù)據(jù)鏈路層負(fù)責(zé)起可靠傳輸?shù)墓δ埽蜁?huì)用到停止等待協(xié)議
、滑動(dòng)窗口協(xié)議
;隨著鏈路質(zhì)量的不斷發(fā)展,鏈路的通信已經(jīng)非常的可靠,這個(gè)時(shí)候就不需要數(shù)據(jù)鏈路層擔(dān)負(fù)可靠傳輸?shù)娜蝿?wù)了,也就用不著停止等待協(xié)議、滑動(dòng)窗口協(xié)議。
不管停止等待協(xié)議、滑動(dòng)窗口協(xié)議是在數(shù)據(jù)鏈路層還是傳輸層,其功能都是進(jìn)行可靠傳輸,只不過數(shù)據(jù)鏈路層的傳輸對(duì)象是幀,傳輸層的傳輸對(duì)象是分組。
停止 - 等待協(xié)議
停止等待協(xié)議(stop-and-wati),是數(shù)據(jù)鏈據(jù)層一個(gè)很重要的協(xié)議,基本原理就是說每發(fā)送一個(gè)分組,必須要停下來等待,等接收方確認(rèn)后才可繼續(xù)發(fā)送下一個(gè)分組。如果沒收到確認(rèn),就只能超時(shí)重傳。
為什么要有停止 - 等待協(xié)議?
除了比特出差錯(cuò),底層信道還會(huì)出現(xiàn)丟包問題。為了實(shí)現(xiàn)流量控制。
什么是丟包?:物理線路故障、設(shè)備故障、病毒攻擊、路由信息錯(cuò)誤等原因,會(huì)導(dǎo)致數(shù)據(jù)包的丟失。
優(yōu)點(diǎn):很簡(jiǎn)單,每次發(fā)送一個(gè)分組就等待確認(rèn)。缺點(diǎn):信道利用率不高,每次都要等。
情況一:數(shù)據(jù)幀丟失或檢測(cè)到幀出錯(cuò)
情況二:ACK丟失(左圖) 情況三:ACK延遲(右圖)
注意:1. 每發(fā)完1個(gè)幀,必須保留它的副本。 2. 數(shù)據(jù)幀和確認(rèn)幀必須編號(hào)。
信道利用率
:發(fā)送方在一個(gè)發(fā)送周期內(nèi),有效地發(fā)送數(shù)據(jù)所需要的時(shí)間占整個(gè)發(fā)送周期的比率。
信道利用率 = ( L / C )/ T
:L 是 T 內(nèi)發(fā)送 L 比特?cái)?shù)據(jù);C 是發(fā)送方數(shù)據(jù)傳輸率;T 是發(fā)送周期(從開始發(fā)送數(shù)據(jù),到收到第一個(gè)確認(rèn)幀為止)
信道吞吐率 = 信道利用率 * 發(fā)送方的發(fā)送速率
例題:一個(gè)信道的數(shù)據(jù)傳輸率為 4k b/s,單向傳播時(shí)延為 30 ms,如果使停止 - 等待協(xié)議的信道最大利用率達(dá)到 80 %,要求的數(shù)據(jù)幀長度至少為( )。
80% = ( L / 4 ) / [ ( L / 4 ) + 2 * 30 ms ] => 答:L = 960 bit
后退 N 幀協(xié)議(GBN)
GBN (Go-Back-N)
:產(chǎn)生背景:停止等待協(xié)議的弊端
后退N幀協(xié)議和停止等待協(xié)議的主要區(qū)別在于后退N幀協(xié)議的發(fā)送窗口包含多個(gè)幀序號(hào);而選擇重傳機(jī)制區(qū)別于上二者的主要特點(diǎn)是:發(fā)送窗口和接收窗口均有多個(gè)幀序號(hào)。
滑動(dòng)窗口的長度
滑動(dòng)窗口長度不可以無限增大。若采用 n 個(gè)比特對(duì)幀窗口編號(hào),2n 個(gè)數(shù)字,滿足 1 <= WT <= 2n - 1,因?yàn)槿绻l(fā)送窗口尺寸過大,就會(huì)使得接收方無法區(qū)別新幀和舊幀。
GBN發(fā)送方必須響應(yīng)的 3 件事
上層調(diào)用
:上層要發(fā)送數(shù)據(jù)時(shí),發(fā)送方先檢査發(fā)送窗口是否已滿,如果未滿,則產(chǎn)生一個(gè)幀并將其發(fā)送;如果窗口已滿,發(fā)送方只需將數(shù)據(jù)返回給上層,暗示上層窗口已滿。上層等一會(huì)再發(fā)送。(實(shí)際實(shí)現(xiàn)中,發(fā)送方可以緩存這些媺據(jù),窗口不滿時(shí)再發(fā)送幀)。
收到了一個(gè)ACK
:GBN協(xié)議中,對(duì) n 號(hào)幀的確認(rèn)采用累積確認(rèn)
的方式,標(biāo)明接收方已經(jīng)收到 n 號(hào)幀和它之前的全部幀。
超時(shí)事件
:協(xié)議的名字為后退N幀/回退N幀,來源于出現(xiàn)丟失和時(shí)延過長幀時(shí)發(fā)送方的行為。就像在停等協(xié)議中一樣,定時(shí)器將再次用于恢復(fù)數(shù)據(jù)幀或確認(rèn)幀的丟失。如果岀現(xiàn)超時(shí),發(fā)送方重傳所有已發(fā)送但未被確認(rèn)的幀。
GBN接收方要做的事
正確時(shí):如果正確收到 n 號(hào)幀,并且按序,那么接收方為 n 幀發(fā)送一個(gè)ACK,并將該幀中的數(shù)據(jù)部分交付給上層。
非正確時(shí):其余情況都丟棄幀,并為最近按序接收的幀重新發(fā)送ACK,接收方無需緩存仼何失序幀,只需要維護(hù)一個(gè)信息: expected seq num(下一個(gè)按序接收的幀序)
運(yùn)行中GBN流程
例題測(cè)試:答案選 C(3 號(hào)幀確認(rèn)其實(shí)就是 0 ~ 3 號(hào)全部已經(jīng)成功接收成功了)
GBN協(xié)議性能分析:因連續(xù)發(fā)送數(shù)據(jù)幀而提高了信道利用率,在重傳時(shí)必須把原來已經(jīng)正確傳送的數(shù)據(jù)幀重傳,是傳送效率降低。
選擇重傳協(xié)議(SR)
選擇重傳協(xié)議(Selective-Repeat, SR)
:選擇重傳協(xié)議只重傳真正丟失的分組.
背景:由于GBN協(xié)議的弊端,在累積確認(rèn)的機(jī)制下,如果有錯(cuò)誤的話,則發(fā)送方將會(huì)批量重傳,這樣使效率降低。
可不可以只重傳出錯(cuò)的幀?
解決辦法:設(shè)置單個(gè)確認(rèn),同時(shí)加大接收窗口,設(shè)置接收緩存,緩存亂序到達(dá)的幀。
選擇重傳協(xié)議的發(fā)送窗口
SR發(fā)送方必須要響應(yīng)的 3 件事
上層的調(diào)用
:從上層收到數(shù)據(jù)后,SR發(fā)送方檢查下一個(gè)可用于該幀的序號(hào),如果序號(hào)位于發(fā)送窗口內(nèi),則發(fā)送數(shù)據(jù)幀;否則就像GBN一樣,要么將數(shù)據(jù)緩存,要么返回給上層之后再傳輸。
收到了一個(gè)ACK
:如果收到了ACK,加入該幀序號(hào)在窗口內(nèi),則SR發(fā)送方將那個(gè)被確認(rèn)的幀標(biāo)記記為已接收,如果該幀序號(hào)是窗口的下界(最左邊第一個(gè)窗口對(duì)應(yīng)的序號(hào)),則窗口向前移動(dòng)到具有最小序號(hào)的未確認(rèn)幀處,如果窗口移動(dòng)了,并且有序號(hào)在窗口內(nèi)的未發(fā)送幀,則發(fā)送這些幀。
超時(shí)重傳
:每一個(gè)幀都有自己的定時(shí)器,一個(gè)超時(shí)事件發(fā)生后只重傳一個(gè)幀。
SR接收方要做的事
來者不拒(窗口內(nèi)的幀)
:SR接收方將確認(rèn)一個(gè)正確接收的幀而 不管其是否按序,失序的幀將被緩存,并返回給發(fā)送方一個(gè)該幀的確認(rèn)幀【收誰確認(rèn)誰】,直到所有幀(即序號(hào)更小的幀)皆被收到為止,這時(shí)才可以將一批幀按序交付給上層,然后向前移動(dòng)滑動(dòng)窗口。
運(yùn)行中SR流程
滑動(dòng)窗口可以無限嗎?
最大發(fā)送窗口最好等于最大接收窗口。(大了會(huì)溢出,小了沒意義)WTmax = WRmax = 2n-1
例題測(cè)試:答案選 A
信道劃分 介質(zhì)訪問控制
傳輸數(shù)據(jù)使用的兩種鏈路
點(diǎn)對(duì)點(diǎn)鏈路
:兩個(gè)相鄰節(jié)點(diǎn)通過一個(gè)鏈路相連,沒有第三者。應(yīng)用:PPP協(xié)議,常用于廣域網(wǎng)。
廣播式鏈路
:所有主機(jī)共享通信介質(zhì)。應(yīng)用:早期的總線以太網(wǎng)、無線局域網(wǎng),常用于局域網(wǎng)。典型拓?fù)浣Y(jié)構(gòu):總線型、星型(邏輯總線型)
介質(zhì)訪問控制
介質(zhì)訪問控制的內(nèi)容就是,采取一定的措施,使得兩對(duì)節(jié)點(diǎn)之間的通信不會(huì)發(fā)生互相干擾的情況。
信道劃分介質(zhì)訪問控制:將使用介質(zhì)的每個(gè)設(shè)備與來自同一信道上的其他設(shè)備的通信隔離開,把時(shí)域和頻域資源合理地分配給網(wǎng)絡(luò)上的設(shè)備。
信道劃分介質(zhì)訪問控制圖例
多路復(fù)用技術(shù)的基本原理
多路復(fù)用技術(shù)的基本原理是:各路信號(hào)在進(jìn)入同一個(gè)有線的或無線的傳輸媒質(zhì)之前,先采用調(diào)制技術(shù)把它們調(diào)制為互相不會(huì)混淆的已調(diào)制信號(hào),然后進(jìn)入傳輸媒質(zhì)傳送到對(duì)方,在對(duì)方再用解調(diào)(反調(diào)制)技術(shù)對(duì)這些信號(hào)加以區(qū)分,并使它們恢復(fù)成原來的信號(hào),從而達(dá)到多路復(fù)用的目的。
拓展:多路復(fù)用器的存在意義是為了充分利用通信信道的容量,大大降低系統(tǒng)的成本。
信道劃分介質(zhì)訪問控制:頻分多路復(fù)用 FDM
Frequency Division Multiplexing
:按頻率劃分的不同信道,用戶分到一定的頻帶后,在通信過程中自始至終都占用這個(gè)頻帶,可見頻分復(fù)用的所有用戶在同樣的時(shí)間占用不同的帶寬資源(帶寬指頻率帶)
優(yōu)點(diǎn):充分利用傳輸介質(zhì)帶寬,系統(tǒng)效率較高;由于技術(shù)比較成熟,實(shí)現(xiàn)也比較容易。
信道劃分介質(zhì)訪問控制:時(shí)分多路復(fù)用 TDM
Time Division Multiplexing
:按時(shí)間劃分成不同的信道,每一個(gè)時(shí)分復(fù)用的用戶在每一個(gè)TDM幀中占用固定序列號(hào)的間隙,可見時(shí)分復(fù)用的所有用戶是在不同時(shí)間占用同樣的頻帶寬度。
改進(jìn)的時(shí)分復(fù)用 => 統(tǒng)計(jì)時(shí)分復(fù)用STDM(提高信道復(fù)用率)
每一個(gè)STDM幀中的時(shí)隙數(shù)小于連接在集中器上的用戶數(shù)。各用戶有了數(shù)據(jù)就隨時(shí)發(fā)往集中器的輸入緩存,然后集中器按順序依次掃描輸入緩存,把緩存中的輸入數(shù)據(jù)放入STDM幀中,一個(gè)STDM幀滿了就發(fā)出。STDM幀不是固定分配時(shí)隙,而是按需動(dòng)態(tài)分配時(shí)隙。
信道劃分介質(zhì)訪問控制:波分多路復(fù)用 WDM
Wavelength Division Multiplexing
:就是光的頻分復(fù)用,使用一根光纖同時(shí)傳輸多個(gè)頻率很接近的光載波信號(hào),因?yàn)楣廨d波頻率很高,習(xí)慣用波長而不用頻率表示使用的光載波,就使用了波分復(fù)用的名詞。
波分多路復(fù)用就是光的頻分多路復(fù)用,在一根光纖中傳輸多種不同波長(頻率)的光信號(hào),由于波長(頻率)不同,所以各路光信號(hào)互不干擾,最后再用波長分解復(fù)用器將各路波長分解出來。
波分多路復(fù)用技術(shù)的出現(xiàn)是具有劃時(shí)代意義的,WDM系統(tǒng)具有以下方面的優(yōu)勢(shì)?(了解)
- 高容量:可以充分利用光纖巨大帶寬資源,使傳輸容量比單波長增加幾十上百倍;
- 低成本:在大容量長途傳輸時(shí)節(jié)省大量光纖和3R再生器,傳輸成本顯著下降;
- 保護(hù)投資:在網(wǎng)絡(luò)升級(jí)和擴(kuò)容時(shí),無需對(duì)光纜線路進(jìn)行改造,增加波長即可開通或疊加新業(yè)務(wù);
- 透明性:與信號(hào)速率、調(diào)制格式無關(guān),方便引入大帶寬新業(yè)務(wù);
- 波長路由:利用WDM選路可以實(shí)現(xiàn)網(wǎng)絡(luò)交換和恢復(fù)從而實(shí)現(xiàn)未來透明全光網(wǎng)絡(luò)。
波分復(fù)用就是光的頻分復(fù)用,在一根光纖上傳輸不同波長(就是不同頻率)的光。光載波的頻率很高,因此習(xí)慣上用
波長
而不用頻率
來表示所使用的光載波,光速 = 頻率 x 波長
信道劃分介質(zhì)訪問控制:碼分多路復(fù)用 CMD
Code Division Multiplexing
:更常用的是碼分多址(Code Division Multiple Access, CDMA),每一個(gè)用戶可以在同樣的時(shí)間使用同樣的頻帶進(jìn)行通信,由于各用戶使用經(jīng)過特殊挑選的不同碼型,因此各用戶之間不會(huì)造成干擾。
碼分復(fù)用最初用于軍事通信,因?yàn)檫@種系統(tǒng)發(fā)送的信號(hào)有很強(qiáng)的抗干擾能力,其頻譜類似于白噪聲,不易被敵人發(fā)現(xiàn),后來才廣泛的使用在民用的移動(dòng)通信中,它的優(yōu)越性在于可以提高通信的話音質(zhì)量和數(shù)據(jù)傳輸?shù)目煽啃裕瑴p少干擾對(duì)通信的影響,增大通信系統(tǒng)的容量,降低手機(jī)的平均發(fā)射功率等。
每個(gè)用戶分配一個(gè)唯一的 m bit 碼片序列(chipping sequence),其中“0”用“-1”表示,“1”用“+1”表示。由于各用戶既不分割頻率,也不分割時(shí)間,各用戶使用相同頻率載波,利用各自碼片序列編碼數(shù)據(jù)。
編碼信號(hào) = 原始數(shù)據(jù) × 碼片序列
如發(fā)送比特1(+1),則發(fā)送自己的 m bit 碼片序列
如發(fā)送比特0(-1),則發(fā)送該碼片序列的 m bit 碼片序列的反碼
由于每個(gè)用戶所用頻率相同,故每個(gè)用戶發(fā)送的信息在信道中必然相互疊加,為了讓信息之間互不干擾,各用戶碼片序列必須滿足相互正交。
一個(gè)用戶的碼片序列只有與自己相乘時(shí)得1,與其他碼片序列相乘都為0
一個(gè)用戶的碼片序列只有與自己的反碼相乘時(shí)的0,與其他碼片序列的反碼相乘都為0
CDMA 例題一:
共有4個(gè)站進(jìn)行碼分多址通信。4個(gè)站的碼片序列:
A:(-1-1-1+1+1-1+1+1)?B:(-1-1+1-1+1+1+1-1)?
C:(-1+1-1+1+1+1-1-1)?D:(-1+1-1-1-1-1+1-1)
現(xiàn)收到這樣的碼片序列S:(-1+1-3+1-1-3+1+1)。問哪個(gè)站發(fā)送數(shù)據(jù)了?
發(fā)送數(shù)據(jù)的站發(fā)送的是0還是1?
答案如下:
S ? A=(+1-1+3+1-1+3+1+1)/ 8 = 1 => A 發(fā)送 1?
S ? B=(+1-1-3-1-1-3+1-1)/ 8 = -1 => B 發(fā)送 0?
S ? C=(+1+1+3+1-1-3-1-1)/ 8 = 0 => C 無發(fā)送?
S ? D=(+1+1+3-1+1+3+1-1)/ 8 = 1 => D 發(fā)送 1
CDMA 例題二:
站點(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ù)是( 101 )
隨機(jī)訪問 介質(zhì)訪問控制
隨機(jī)訪問介質(zhì)訪問控制:ALOHA 協(xié)議、CSMA 協(xié)議、CSMA / CA 協(xié)議、CSMA / CD 協(xié)議
ALOHA 協(xié)議
純 ALOHA 協(xié)議工作原理:
任何一個(gè)站都可以在幀生成后立即發(fā)送(可能沖突),并通過信號(hào)的反饋檢測(cè)信道以確定發(fā)送是否成功;
如發(fā)送失敗,則經(jīng)隨機(jī)延時(shí)后再發(fā)送。
每個(gè)站點(diǎn)可在任意時(shí)間發(fā)送數(shù)據(jù)(不關(guān)心信道是否已被占用)
兩個(gè)以上站點(diǎn)都在發(fā)送數(shù)據(jù)時(shí)就會(huì)發(fā)生沖突
時(shí)隙 ALOHA(S - ALOHA)協(xié)議
用時(shí)鐘來統(tǒng)一用戶的數(shù)據(jù)發(fā)送。辦法是將時(shí)間分為離散的時(shí)間片,用戶每次必須等到下一個(gè)時(shí)間片才能開始發(fā)送數(shù)據(jù),從而避免了用戶發(fā)送數(shù)據(jù)的隨意性,減少了數(shù)據(jù)產(chǎn)生沖突的可能性,提高了信道的利用率。
在時(shí)隙ALOHA系統(tǒng)中,計(jì)算機(jī)并不是在用戶按下回車鍵后就立即發(fā)送數(shù)據(jù),而是要等到下一個(gè)時(shí)間片開始時(shí)才發(fā)送。
Aloha 和 時(shí)隙 Aloha 性能分析
純 Aloha
:對(duì)于局域網(wǎng) LAN,反饋信息很快就可以得到;而對(duì)于衛(wèi)星網(wǎng),發(fā)送方要在 270 ms 后才能確認(rèn)數(shù)據(jù)發(fā)送是否成功。通過研究證明,純 ALOHA 協(xié)議的信道利用率最大不超過 18.4%(1 / 2e)
時(shí)隙 Aloha
:
信道效率:沖突危險(xiǎn)區(qū)是 純 ALOHA 的一半,所以,與純 ALOHA 協(xié)議相比,降低了產(chǎn)生沖突的概率,信道利用率最高為 36.8%。
重發(fā)策略:同純 ALOHA ,等待一段隨機(jī)的時(shí)間,然后重發(fā);如再次沖突,則再等待一段隨機(jī)的時(shí)間,直到重發(fā)成功為止。
代價(jià):需要全網(wǎng)同步;可設(shè)置一個(gè)特殊站點(diǎn),由該站點(diǎn)發(fā)送時(shí)鐘信號(hào)。
載波監(jiān)聽多路訪問協(xié)議 CSMA(carrier sense multiple access)
CS
:載波偵聽 / 監(jiān)聽,每一個(gè)站在發(fā)送數(shù)據(jù)之前要檢測(cè)一下總線上是否有其他計(jì)算機(jī)在發(fā)送數(shù)據(jù)。
當(dāng)幾個(gè)站同時(shí)在總線上發(fā)送數(shù)據(jù)時(shí),總線上的信號(hào)電壓擺動(dòng)值將會(huì)增大(互相疊加)。當(dāng)一個(gè)站檢測(cè)到的信號(hào)電壓擺動(dòng)值超過一定門限值時(shí),就認(rèn)為總線上至少有兩個(gè)站同時(shí)在發(fā)送數(shù)據(jù),表明產(chǎn)生了碰撞,即發(fā)生了沖突。
MA
:多點(diǎn)接入,表示許多計(jì)算機(jī)以多點(diǎn)接入的方式連接在一根總線上。
協(xié)議思想:發(fā)送幀之前,監(jiān)聽信道
1 - 堅(jiān)持 CSMA
:堅(jiān)持指的是對(duì)于監(jiān)聽信道忙之后的堅(jiān)持。
思想:如果一個(gè)主機(jī)要發(fā)送消息,那么它先監(jiān)聽信道??臻e則直接傳輸,不必等待。忙則一直監(jiān)聽,直到空閑馬上傳輸。如果有沖突(一段時(shí)間內(nèi)未收到肯定回復(fù)),則等待一個(gè)隨機(jī)長的時(shí)間再監(jiān)聽,重復(fù)上述過程。
優(yōu)點(diǎn):只要媒體空閑,站點(diǎn)就馬上發(fā)送,避免了媒體利用率的損失。
缺點(diǎn):假如有兩個(gè)或兩個(gè)以上的站點(diǎn)有數(shù)據(jù)要發(fā)送,沖突就不可避免。
非堅(jiān)持 CSMA
:非堅(jiān)持指的是對(duì)于監(jiān)聽信道忙之后就不繼續(xù)監(jiān)聽。
思想:如果一個(gè)主機(jī)要發(fā)送消息,那么它先監(jiān)聽信道。空閑則直接傳輸,不必等待。忙則等待一個(gè)隨機(jī)的時(shí)間之后再進(jìn)行監(jiān)聽。
優(yōu)點(diǎn):采用隨機(jī)的重發(fā)延遲時(shí)間可以減少?zèng)_突發(fā)生的可能性。
缺點(diǎn):可能存在大家都在延遲等待過程中,使得媒體仍可能處于空閑狀態(tài),媒體使用率降低。
p-堅(jiān)持CSMA
:p - 堅(jiān)持指的是對(duì)于監(jiān)聽信道空閑的處理。
思想:如果一個(gè)主機(jī)要發(fā)送消息,那么它先監(jiān)聽信道??臻e則以 p 概率直接傳輸,不必等待;概率1 - p 等待到下一個(gè)時(shí)間槽再傳輸。忙則等待一個(gè)隨機(jī)的時(shí)間之后再進(jìn)行監(jiān)聽。
優(yōu)點(diǎn):既能像非堅(jiān)持算法那樣減少?zèng)_突,又能像 1 - 堅(jiān)持算法那樣減少媒體空閑時(shí)間的這種方案。
缺點(diǎn):發(fā)生沖突后還是堅(jiān)持把數(shù)據(jù)發(fā)完,造成了浪費(fèi)
3 種 CSMA 對(duì)比總結(jié)
CSMA / CD 協(xié)議(Carrier Sense Multiple Access with Collision Detection)
載波幀聽,多路訪問 / 沖突檢測(cè)
載波偵聽:多個(gè)計(jì)算機(jī)在發(fā)送數(shù)據(jù)幀前,首先幀聽是否空閑,如果空閑,則發(fā)送數(shù)據(jù)幀;否則等待,繼續(xù)幀聽直到信道空閑。
多路訪問:許多計(jì)算機(jī)以多點(diǎn)接入方式連接在一根總線上,都有訪問總線的權(quán)利。
控制方式原理
:各工作站在發(fā)送數(shù)據(jù)前,需先偵聽信道是否空閑。若空閑,則立即發(fā)送數(shù)據(jù);若信道忙碌,則等待一段時(shí)間至信道中的信息傳輸結(jié)束后再發(fā)送數(shù)據(jù);若在上一段信息發(fā)送結(jié)束后,同時(shí)有兩個(gè)或兩個(gè)以上的節(jié)點(diǎn)都提出發(fā)送請(qǐng)求,則判定為沖突;若偵聽到?jīng)_突,則所有節(jié)點(diǎn)立即停止發(fā)送數(shù)據(jù),等待一段隨機(jī)時(shí)間,再重新嘗試發(fā)送。
控制方式作用
:提供尋址和媒體存取的控制方式,使得不同設(shè)備或網(wǎng)絡(luò)上的節(jié)點(diǎn)可以在多點(diǎn)的網(wǎng)絡(luò)上通信而不相互沖突。
CSMA / CD 協(xié)議特點(diǎn):
1、 使用 CSMA/CD 協(xié)議的以太網(wǎng)不能進(jìn)行全雙工通信,而只能進(jìn)行雙向交替通信(半雙工通信)。
2、 計(jì)算機(jī)發(fā)送數(shù)據(jù)幀之后的一小段時(shí)間內(nèi),存在著遭遇沖突的可能性。
3、 沖突不確定性使整個(gè)以太網(wǎng)平均數(shù)據(jù)率遠(yuǎn)小于以太網(wǎng)最高數(shù)據(jù)率。
CSMA / CA 協(xié)議(Carrier Sense Multiple Access with Collision Avoidance)
載波偵聽,多路訪問 / 沖突避免
采用該協(xié)議要求設(shè)備要主動(dòng)避免沖突而非被動(dòng)偵測(cè)的方式來解決沖突問題。避免沖突的方法主要有兩個(gè):
1、監(jiān)聽到信道空閑時(shí),并不是立即發(fā)送,而是等待一段時(shí)間再發(fā)送數(shù)據(jù)。
2、先發(fā)送一個(gè)很小的信道偵測(cè)幀 RTS,如果收到最近的接入點(diǎn)返回的 CTS,就認(rèn)為信道是空閑的,然后再發(fā)送數(shù)據(jù)
協(xié)議的主要流程如下:
1、 首先檢測(cè)信道是否有使用,如果檢測(cè)出信道空閑,則等待一段隨機(jī)時(shí)間后,才送出數(shù)據(jù)。
2、 接收端如果正確收到此幀,則經(jīng)過一段時(shí)間間隔后,向發(fā)送端發(fā)送確認(rèn)幀 ACK。
3、 發(fā)送端收到 ACK 幀,確定數(shù)據(jù)正確傳輸,在經(jīng)歷一段時(shí)間間隔后,再發(fā)送數(shù)據(jù)。
CSMA / CD 與 CSMA / CA 兩者區(qū)別
1、 CSMA/CD主要著眼點(diǎn)在沖突的偵測(cè),當(dāng)偵測(cè)到?jīng)_突時(shí),進(jìn)行相應(yīng)的處理,要求設(shè)備能一邊偵測(cè)一邊發(fā)送數(shù)據(jù)。
2、CSMA/CA主要著眼點(diǎn)在沖突的避免,協(xié)議里也看到經(jīng)常是等待一段時(shí)間再做動(dòng)作,通過退避盡量去避免沖突,還有就是先發(fā)送一些特別小的信道偵測(cè)幀來測(cè)試信道是否有沖突。
應(yīng)用領(lǐng)域:CSMA / CD主要適用以太網(wǎng)。 CSMA / CA主要適用無線局域網(wǎng)。
輪詢?cè)L問 介質(zhì)訪問控制
介質(zhì)訪問控制 ( Multiple Access Control ) 協(xié)議 : 簡(jiǎn)稱 MAC
① 信道劃分 MAC 協(xié)議
:基于多路復(fù)用技術(shù)劃分資源;
網(wǎng)絡(luò)負(fù)載重時(shí),信道利用率高(公平);網(wǎng)絡(luò)負(fù)載輕時(shí),信道利用率低
② 隨機(jī)訪問 MAC 協(xié)議
:用戶根據(jù)隨機(jī)意愿 發(fā)送信息,發(fā)送信息時(shí),可以獨(dú)占信道帶寬;
網(wǎng)絡(luò)負(fù)載重時(shí),產(chǎn)生沖突開銷;網(wǎng)絡(luò)負(fù)載輕時(shí),共享信道效率高 , 單個(gè)站點(diǎn)可使用全部信道帶寬
③ 輪詢?cè)L問 MAC 協(xié)議
:既不產(chǎn)生沖突,又占用全部帶寬;
主要包含:輪詢協(xié)議;令牌傳遞協(xié)議 ( 重點(diǎn) )
輪詢協(xié)議
輪詢協(xié)議:主結(jié)點(diǎn)輪流“邀請(qǐng)”從屬節(jié)點(diǎn)發(fā)送數(shù)據(jù)。
優(yōu)點(diǎn):每一次只允許一臺(tái)主機(jī)發(fā)送數(shù)據(jù) , 不會(huì)產(chǎn)生沖突;缺點(diǎn):輪詢開銷,等待延遲,單點(diǎn)故障。
令牌傳遞協(xié)議
令牌幀
:特殊格式的 MAC 控制幀,沒有任何信息。
令牌作用
:控制信道使用,確保同一時(shí)刻,只有一個(gè)站點(diǎn)獨(dú)占信道。
發(fā)送數(shù)據(jù)前提
:每個(gè)節(jié)點(diǎn)都可以在令牌持有時(shí)間內(nèi),獲得發(fā)送數(shù)據(jù)的權(quán)利。該時(shí)間并不是無限持有的,有時(shí)間限制。
優(yōu)點(diǎn) : 令牌環(huán)網(wǎng)沒有數(shù)據(jù)碰撞沖突;缺點(diǎn):令牌開銷、等待延遲、單點(diǎn)故障
令牌傳遞協(xié)議應(yīng)用場(chǎng)景:令牌傳遞協(xié)議應(yīng)用于令牌環(huán)網(wǎng)(物理上是 星型拓?fù)?結(jié)構(gòu);邏輯上是 環(huán)形拓?fù)?結(jié)構(gòu))采用令牌傳送方式的網(wǎng)絡(luò)常用于負(fù)載較重、通信量較大的網(wǎng)絡(luò)中。
局域網(wǎng) - 總線型 IBM 令牌環(huán)
以太網(wǎng) MAC 幀格式
現(xiàn)階段成熟的局域網(wǎng)技術(shù)有三種:以太網(wǎng)(Ethernet)、令牌環(huán)(Token Ring)和光纖分布式數(shù)據(jù)接口(FDDI),其中以太網(wǎng)技術(shù)逐步成為局域網(wǎng)技術(shù)的主流。
以太網(wǎng)
是一種計(jì)算機(jī)局域網(wǎng)技術(shù)。IEEE 組織的 IEEE 802.3 標(biāo)準(zhǔn)制定了以太網(wǎng)的技術(shù)標(biāo)準(zhǔn),它規(guī)定了包括物理層的連線、電子信號(hào)和介質(zhì)訪問層協(xié)議的內(nèi)容。以太網(wǎng)是目前應(yīng)用最普遍的局域網(wǎng)技術(shù),取代了其他局域網(wǎng)技術(shù)如令牌環(huán)、FDDI 和 ARCNET。
以太網(wǎng)在局域網(wǎng)各種技術(shù)中占統(tǒng)治性地位
1.造價(jià)低廉(以太網(wǎng)網(wǎng)卡不到100塊)
2.是應(yīng)用最廣泛的局域網(wǎng)技術(shù)
3.比令牌環(huán)網(wǎng)、ATM 網(wǎng)便宜,簡(jiǎn)單
4.滿足網(wǎng)絡(luò)速率要求:10M b / s ~ 10G b / s
以太網(wǎng)提供無連接、不可靠的服務(wù)
無連接
:發(fā)送方和接收方之間無 “ 握手過程 ” 。
不可靠
:不對(duì)發(fā)送方的數(shù)據(jù)幀編號(hào),接收方不向發(fā)送方進(jìn)行確認(rèn),差錯(cuò)幀直接丟棄,差錯(cuò)糾正由高層負(fù)責(zé)。
以太網(wǎng)只實(shí)現(xiàn)無差錯(cuò)接收,不實(shí)現(xiàn)可靠傳輸。
10BASE - T 以太網(wǎng)
BASE 前的數(shù)字表示網(wǎng)絡(luò)的數(shù)據(jù)傳輸率
比如說:10BASE 指數(shù)據(jù)傳輸率為 10Mbps,1000BASE 為 1000Mbps
BASE:基帶傳輸,即未經(jīng)過調(diào)制,不能復(fù)用的傳輸,與其對(duì)應(yīng)的 BROAD 指寬帶傳輸(多用于有線電視網(wǎng))
BASE 后的字母或數(shù)字指的是傳輸介質(zhì),反應(yīng)介質(zhì)特點(diǎn)。
比如說:10BASE - T 中的 T 指雙絞線。
適配器
適配器是一個(gè)接口轉(zhuǎn)換器,它可以是一個(gè)獨(dú)立的硬件接口設(shè)備,允許硬件或電子接口與其它硬件或電子接口相連,也可以是信息接口。
但是現(xiàn)在的計(jì)算機(jī)主板上就已經(jīng)嵌入了適配器,因此現(xiàn)在的計(jì)算機(jī)上的適配器不是獨(dú)立的。
適配器的作用
1. 要進(jìn)行數(shù)據(jù)串行傳輸和并行傳輸?shù)霓D(zhuǎn)換。
2. 對(duì)數(shù)據(jù)進(jìn)行緩存。
3. 實(shí)現(xiàn)以太網(wǎng)協(xié)議。
4. 管理該適配器的設(shè)備驅(qū)動(dòng)程序安裝在計(jì)算機(jī)的操作系統(tǒng)。
以太網(wǎng) MAC 幀
MAC地址(英語:Media Access Control Address),直譯為媒體存取控制位址,也稱為局域網(wǎng)地址(LAN Address),MAC 位址,以太網(wǎng)地址(Ethernet Address)或物理地址(Physical Address),它是一個(gè)用來確認(rèn)網(wǎng)絡(luò)設(shè)備位置的位址。
在 OSI 模型中,第三層網(wǎng)絡(luò)層負(fù)責(zé) IP 地址,第二層數(shù)據(jù)鏈路層則負(fù)責(zé) MAC 位址 。
MAC地址用于在網(wǎng)絡(luò)中唯一標(biāo)示一個(gè)網(wǎng)卡,一臺(tái)設(shè)備若有一或多個(gè)網(wǎng)卡,則每個(gè)網(wǎng)卡都需要并會(huì)有一個(gè)唯一的 MAC 地址 。
MAC 地址的長度為 48 位 ( 6 個(gè)字節(jié) ),通常表示為 12 個(gè) 16 進(jìn)制數(shù),例如:00-16-EA-AE-3C-40,就是一個(gè) MAC 地址。
前 3 個(gè)字節(jié),16 進(jìn)制數(shù) 00-16-EA 代表網(wǎng)絡(luò)硬件制造商的編號(hào),它由 IEEE(電氣與電子工程師協(xié)會(huì))分配。
后 3 個(gè)字節(jié),16 進(jìn)制數(shù) AE-3C-40 代表該制造商所制造的某個(gè)網(wǎng)絡(luò)產(chǎn)品(如網(wǎng)卡)的系列號(hào)。
只要不更改自己的 MAC 地址,MAC 地址在世界是唯一的。形象地說,MAC地址就如同身份證上的身份證號(hào)碼,具有唯一性 。
常用的以太網(wǎng) MAC 幀格式有兩種標(biāo)準(zhǔn) :DIX Ethernet II標(biāo)準(zhǔn),IEEE 的 802.3 標(biāo)準(zhǔn)。
IEEE 802.3 和 以太網(wǎng) 的關(guān)系
以太網(wǎng)應(yīng)當(dāng)按 DIX Ethernet V2 標(biāo)準(zhǔn),但是它與 IEEE 802.3 只有一丟丟不同(幀格式),因此通常將 802.3 局域網(wǎng)簡(jiǎn)稱為以太網(wǎng)。
IEEE 802.3標(biāo)準(zhǔn)是一種基帶總線型的局域網(wǎng)標(biāo)準(zhǔn),它描述物理層和數(shù)據(jù)鏈路子層MAC子層的實(shí)現(xiàn)方法。
最常用的 MAC 幀是以太網(wǎng)V2的格式圖示:
以太網(wǎng) MAC 幀各字段功能
MAC 層要求定界字符之后的內(nèi)容要在 64 字節(jié)到 1518 個(gè)字節(jié)之間,其中包括 14 字節(jié)的目標(biāo)和源 MAC,4 字節(jié)的 CRC32 值。并且報(bào)文幀之間的傳遞間隔要大于 9.6 us。
在數(shù)據(jù)鏈路層,對(duì)于上層網(wǎng)絡(luò)層的 IP 數(shù)據(jù)報(bào) 是要打 幀頭 和 幀尾 的。
類型字段 ( 2 個(gè)字節(jié))
:用來標(biāo)志上一層使用的是什么協(xié)議,以便把收到的 MAC 幀的數(shù)據(jù)上交給上一層的這個(gè)協(xié)議;
數(shù)據(jù)字段 ( 46 - 1500 )
:正式名稱是 MAC 客戶數(shù)據(jù)字段最小長度 64 字節(jié) - 18 字節(jié)的首部和尾部 = 數(shù)據(jù)字段的最小長度;
FCS 字段 ( 4 字節(jié))
:當(dāng)數(shù)據(jù)字段的長度小于 46 字節(jié)時(shí),應(yīng)在數(shù)據(jù)字段的后面加入整數(shù)字節(jié)的填充字段,以保證以太網(wǎng)的 MAC 幀長不小于 64 字節(jié);
前導(dǎo)碼(7 字節(jié))
:在幀的前面插入的 8 字節(jié)中的第一個(gè)字段共 7 個(gè)字節(jié),是前同步碼,用來迅速實(shí)現(xiàn) MAC 幀的比特同步。
幀開始定界符(1 字節(jié))
:在幀的前面插入的 8 字節(jié)中的第二個(gè)字段是幀開始定界符,表示后面的信息就是 MAC 幀。
幀序列檢測(cè) FCS(4 字節(jié))
:計(jì)算機(jī)網(wǎng)絡(luò)差錯(cuò)檢測(cè)(幀檢驗(yàn)序列 FCS 計(jì)算方法)用于幀內(nèi)后續(xù)字節(jié)差錯(cuò)的循環(huán)冗余檢驗(yàn)(也稱為FCS或幀檢驗(yàn)序列)。
這個(gè)字段只是提供檢錯(cuò)功能,并不提供糾錯(cuò)功能。該效驗(yàn)和效驗(yàn)的范圍為:目的地址,源地址,類型,數(shù)據(jù)等字段。
WLAN 無線局域網(wǎng)技術(shù)
IEEE 802
標(biāo)準(zhǔn)所描述的局域網(wǎng)參考模型只對(duì)應(yīng) OSI 參考模型的數(shù)據(jù)鏈路層與物理層,它將數(shù)據(jù)鏈路層劃分為邏輯鏈路層 LLC 子層和介質(zhì)訪問控制 MAC 子層。
WLAN(無線局域網(wǎng)絡(luò))
:英文全稱是Wireless Local Area Network,是一種利用射頻Radio Frequency RF
技術(shù)進(jìn)行數(shù)據(jù)傳輸?shù)南到y(tǒng)。
WLAN 無線局域網(wǎng) 和 WiFi 區(qū)別
WiFi(WirelessFidelity,無線保真)
:技術(shù)是一個(gè)基于 IEEE802.11系列標(biāo)準(zhǔn)的無線網(wǎng)路通信技術(shù)的品牌,目的是改善基于 IEEE802.11 標(biāo)準(zhǔn)的無線網(wǎng)路產(chǎn)品之間的互通性,由 Wi-Fi 聯(lián)盟 ( Wi-Fi Alliance ) 所持有。
簡(jiǎn)單來說 WIFI 就是一種無線聯(lián)網(wǎng)的技術(shù),以前通過網(wǎng)絡(luò)連接電腦,而現(xiàn)在則是通過無線電波來連網(wǎng)。
WiFi 和 WLAN 的區(qū)別主要在于發(fā)射信號(hào)的功率不同,覆蓋范圍不同。WiFi 的覆蓋范圍則可達(dá)300英尺左右(約合90米),WLAN 最大(加天線)可以到 5 KM 甚至更遠(yuǎn)。WiFi 包含于 WLAN 中,是一種應(yīng)用最為廣泛的 WLAN 標(biāo)準(zhǔn)。
不論是 iPhone 還是安卓手機(jī)用戶,只要知道 WiFi 和 WLAN 都是指無線網(wǎng)絡(luò),用來無線上網(wǎng)即可,一般我們普遍叫 WiFi 比較多。
從生活中的實(shí)際例子也可以看到,WiFi 無線網(wǎng)絡(luò)主要由路由器或者無線網(wǎng)卡、無線 AP 產(chǎn)生,傳速的距離有限,因此一般也只是家用或者一般的中小企業(yè)采用。而 WLAN 網(wǎng)絡(luò)在很多校園都是,想中國移動(dòng)與電信都在一些地區(qū)有 WLAN 網(wǎng)絡(luò),它的最大亮點(diǎn)是一個(gè) WLAN 網(wǎng)絡(luò)信號(hào)可以覆蓋整個(gè)校園,這就是我們能感受到的區(qū)別。
常見無線通信協(xié)議
常見無線通信協(xié)議:藍(lán)牙(BlueTeeth)、WiFi、蜂窩(Zigbee)、ModBus、PROFINET
802.11 的 MAC 幀頭格式
首先要說明的是 mac 802.11的幀格式很特別,它與TCP / IP這一類協(xié)議不同,它的長度是可變的。不同功能的數(shù)據(jù)幀長度會(huì)不一樣。這一特性說明 mac802.11 數(shù)據(jù)幀顯得更加靈活,然而,也會(huì)更加復(fù)雜。
地址 1 : RA 接收端 , 接收端 基站 地址 ;
地址 2 : TA 發(fā)送端 , 發(fā)送端 基站 地址 ;
地址 3 : DA 目的地址 , 目標(biāo)主機(jī)的 MAC 地址 ;
地址 4 : SA 源地址 , 發(fā)送端的 MAC 地址 ;
有固定基礎(chǔ)設(shè)施無線局域網(wǎng)
無限局域網(wǎng)分為兩種:有固定基礎(chǔ)設(shè)施的無線局域網(wǎng)、無固定基礎(chǔ)設(shè)施的無線局域網(wǎng)自組網(wǎng)絡(luò)(ad hoc network)
數(shù)據(jù)鏈路層傳輸介質(zhì)、設(shè)備
物理層擴(kuò)展以太網(wǎng),主機(jī)和集線器之間距離不能超過100m,否則失真會(huì)非常嚴(yán)重。所以要進(jìn)行物理擴(kuò)展(光纖、集線器),當(dāng)然數(shù)據(jù)鏈路層也需要擴(kuò)展以太網(wǎng),常用的設(shè)備是 網(wǎng)卡(網(wǎng)絡(luò)適配器)、網(wǎng)橋 和 交換機(jī)。
鏈路層擴(kuò)展以太網(wǎng) 網(wǎng)橋
網(wǎng)橋(Bridge)
:根據(jù)MAC幀的目的地址對(duì)幀進(jìn)行轉(zhuǎn)發(fā)和過濾,當(dāng)網(wǎng)橋收到一個(gè)幀時(shí),并不向所有接口轉(zhuǎn)發(fā)此幀,而是先檢查此幀的目的MAC地址,然后再確定將該幀轉(zhuǎn)發(fā)到哪一個(gè)接口,或者是把它丟棄。
網(wǎng)段:一般指一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)中使用同一物理層設(shè)備(傳輸介質(zhì),中繼器,集線器等)能夠直接通訊的那一部分。
網(wǎng)橋優(yōu)點(diǎn):
1.過濾通信量,增大吞吐量(一個(gè)沖突域帶寬100,那么3個(gè)沖突域帶寬最大可以達(dá)到300)
2.擴(kuò)大了物理范圍
3.提高了可靠性(某一沖突域內(nèi)發(fā)生問題不會(huì)影響其他沖突域)
4.可以互連不同物理層、不同MAC子層和不同速率的以太網(wǎng)。
透明網(wǎng)橋
:透明指以太網(wǎng)上的站點(diǎn)并不知道所發(fā)送的幀將經(jīng)過哪幾個(gè)網(wǎng)橋,是一種即插即用設(shè)備 - 自學(xué)習(xí)。源路由網(wǎng)橋
:在發(fā)送幀時(shí),把詳細(xì)的最佳路由信息(路由最少/時(shí)間最短)放在幀的首部。方法:源站以廣播方式向欲通信的目的站發(fā)送一個(gè)發(fā)現(xiàn)幀。
鏈路層擴(kuò)展以太網(wǎng) 交換機(jī)
交換機(jī)(Switch)
:數(shù)據(jù)鏈路層設(shè)備,作用是轉(zhuǎn)發(fā)數(shù)據(jù)包。和網(wǎng)橋一樣它也是通過識(shí)別幀中的MAC地址,然后對(duì)特定的端口進(jìn)行轉(zhuǎn)發(fā)的。以太網(wǎng)交換機(jī)可以獨(dú)占信號(hào)帶寬。
直通式交換機(jī)
:查完目的地址(6B)就立刻轉(zhuǎn)發(fā),延遲小,可靠性低,無法支持具有不同速率的端口的交換。
存儲(chǔ)轉(zhuǎn)發(fā)式交換機(jī)
:將幀放入高速緩存,并檢查是否正確,正確則轉(zhuǎn)發(fā),錯(cuò)誤則丟棄。延遲大,可靠性高,可以支持具有不同速率的端口的交換。
交換機(jī)與網(wǎng)橋的區(qū)別
局域網(wǎng)交換機(jī)的基本功能與網(wǎng)橋一樣,具有幀轉(zhuǎn)發(fā)、幀過濾和生成樹算法功能。但是,交換機(jī)與網(wǎng)橋相比還是存在以下不同:
1、端口數(shù)目的區(qū)別
:交換機(jī)工作時(shí),實(shí)際上允許許多組端口間的通道同時(shí)工作。所以,交換機(jī)的功能體現(xiàn)出不僅僅是一個(gè)網(wǎng)橋的功能,而是多個(gè)網(wǎng)橋功能的集合。即網(wǎng)橋一般分有兩個(gè)端口,而交換機(jī)具有高密度的端口。
2、分段能力的區(qū)別
:由于交換機(jī)能夠支持多個(gè)端口,因此可以把網(wǎng)絡(luò)系統(tǒng)劃分成為更多的物理網(wǎng)段,這樣使得整個(gè)網(wǎng)絡(luò)系統(tǒng)具有更高的帶寬。而網(wǎng)橋僅僅支持兩個(gè)端口,所以,網(wǎng)橋劃分的物理網(wǎng)段是相當(dāng)有限的。
3、傳輸速率的區(qū)別
:交換機(jī)與網(wǎng)橋數(shù)據(jù)信息的傳輸速率相比,交換機(jī)要快于網(wǎng)橋。
4、數(shù)據(jù)幀轉(zhuǎn)發(fā)方式的區(qū)別
:網(wǎng)橋在發(fā)送數(shù)據(jù)幀前,通常要接收到完整的數(shù)據(jù)幀并執(zhí)行幀檢測(cè)序列 FCS后,才開始轉(zhuǎn)發(fā)該數(shù)據(jù)幀。交換機(jī)具有存儲(chǔ)轉(zhuǎn)發(fā)和直接轉(zhuǎn)發(fā)兩種幀轉(zhuǎn)發(fā)方式。
直接轉(zhuǎn)發(fā)方式在發(fā)送數(shù)據(jù)以前,不需要在接收完整個(gè)數(shù)據(jù)幀和經(jīng)過 32bit 循環(huán)冗余校驗(yàn)碼 CRC 的計(jì)算檢查后的等待時(shí)間。
沖突域 和 廣播域
沖突域
:一種物理分段,指連接到同一導(dǎo)線上所有工作站的集合、同一物理網(wǎng)段上所有節(jié)點(diǎn)的集合或是以太網(wǎng)上競(jìng)爭(zhēng)同一帶寬節(jié)點(diǎn)的集合。
沖突域表示沖突發(fā)生并傳播的區(qū)域,這個(gè)區(qū)域可以被認(rèn)為是共享段。
在OSI模型中,沖突域被看作是OSI第一層的概念,連接同一沖突域的設(shè)備有集線器、中繼器或其它簡(jiǎn)單的對(duì)信號(hào)進(jìn)行復(fù)制的設(shè)備。
其中,使用第一層設(shè)備(如中繼器、集線器)連接的所有節(jié)點(diǎn)可被認(rèn)為是在同一個(gè)沖突域內(nèi),而第二層設(shè)備(如網(wǎng)橋、交換機(jī))和第三層設(shè)備(如路由器)既可以劃分沖突域,也可以連接不同的沖突域。
廣播域
:指可以接收到同樣廣播消息的節(jié)點(diǎn)的集合。
簡(jiǎn)單地說,在該集合中的任何一個(gè)節(jié)點(diǎn)傳輸一個(gè)廣播幀,則其它所有能夠接收到這個(gè)幀的節(jié)點(diǎn)都是該廣播域的一部分。
由于許多設(shè)備都極易產(chǎn)生廣播,因此,如果不進(jìn)行維護(hù)就會(huì)消耗大量的帶寬,降低網(wǎng)絡(luò)的效率。
廣播域被看作是OSI第二層的概念,因此由中繼器、集線器、網(wǎng)橋、交換機(jī)等第一、二層設(shè)備連接的節(jié)點(diǎn)被認(rèn)為是在同一個(gè)廣播域中,而路由器、第三層交換機(jī)等第三層設(shè)備則可以劃分廣播域。
網(wǎng)絡(luò)層
網(wǎng)絡(luò)層介于傳輸層和數(shù)據(jù)鏈路層之間,其主要作用是實(shí)現(xiàn)兩個(gè)不同網(wǎng)絡(luò)系統(tǒng)之間的數(shù)據(jù)透明傳送,具體包括路由選擇,擁塞控制和網(wǎng)際互連等。網(wǎng)絡(luò)層負(fù)責(zé)在不同的網(wǎng)絡(luò)之間(基于數(shù)據(jù)包的IP地址)盡力轉(zhuǎn)發(fā)數(shù)據(jù)包,不負(fù)責(zé)丟包重傳和接收順序。
網(wǎng)絡(luò)層是網(wǎng)絡(luò)與網(wǎng)絡(luò)之間通信的最底層,在數(shù)據(jù)從數(shù)據(jù)鏈路層向傳輸層進(jìn)行數(shù)據(jù)傳輸?shù)耐ㄐ胖?,起到?gòu)建一個(gè)中間通信子網(wǎng)的作用。
不同網(wǎng)絡(luò)有這不同的網(wǎng)絡(luò)層協(xié)議和地址規(guī)范,如果一個(gè)網(wǎng)絡(luò)中的用戶不能識(shí)別其他網(wǎng)絡(luò)的通信協(xié)議和地址規(guī)范,那么這兩個(gè)網(wǎng)絡(luò)之間就不能進(jìn)行數(shù)據(jù)通信,就好比不同國家有著不同的交通法規(guī),屬于不同的交警系統(tǒng)管理,不允許他國車輛隨便出入一樣。不同網(wǎng)絡(luò)也有不同的設(shè)計(jì)規(guī)范,屬于不同的組織來管理,必須通過授權(quán),并由專門的協(xié)議來負(fù)責(zé)網(wǎng)絡(luò)間的通信。
網(wǎng)絡(luò)層基本概念介紹
如果只是同一局域網(wǎng)內(nèi)的各個(gè)計(jì)算機(jī)之間的通信,單靠物理層和數(shù)據(jù)鏈路層就可以建立通信鏈路完成用戶間的數(shù)據(jù)通信,但要擴(kuò)大應(yīng)用范圍,連接不同的局域子網(wǎng),就需要借助網(wǎng)絡(luò)層處理各個(gè)網(wǎng)絡(luò)子網(wǎng)的協(xié)議,從而進(jìn)行計(jì)算機(jī)的網(wǎng)絡(luò)互連,所以網(wǎng)絡(luò)層在 TCP/IP 協(xié)議體系中叫網(wǎng)際互連層。
網(wǎng)絡(luò)層主要功能
在網(wǎng)絡(luò)體系中,每一層都是服務(wù)于對(duì)應(yīng)的上下層的。網(wǎng)絡(luò)層也是服務(wù)于上層的傳輸層和下層的數(shù)據(jù)鏈路層。
網(wǎng)絡(luò)層的功能就是讓我們?cè)诿CH撕V?,能夠找到另一臺(tái)計(jì)算機(jī)在哪里,是否屬于同一個(gè)子網(wǎng)等。
(1)屏蔽網(wǎng)絡(luò)差異,提供透明傳輸
網(wǎng)絡(luò)層就是為了解決不同網(wǎng)絡(luò)有不同的規(guī)范要求的差異問題,尋找一個(gè)不同網(wǎng)絡(luò)間都能共同遵守的網(wǎng)絡(luò)通信規(guī)范,以便不同網(wǎng)絡(luò)間能相互識(shí)別,并接受對(duì)方的網(wǎng)絡(luò)請(qǐng)求。也就是一個(gè)中轉(zhuǎn)站的作用,兩個(gè)毫無交集的網(wǎng)絡(luò)通過這個(gè)中轉(zhuǎn)站來建立交集。
(2)為網(wǎng)絡(luò)間通信提供路由選擇
路由選擇是根據(jù)一定的原則和路由選擇算法在多個(gè)結(jié)點(diǎn)的通信子網(wǎng)中選擇一條到達(dá)目的節(jié)點(diǎn)的最佳路徑的過程。確定路由選擇的策略稱為路由算法。在無連接的數(shù)據(jù)包服務(wù)中,網(wǎng)絡(luò)節(jié)點(diǎn)要為每個(gè)數(shù)據(jù)包做出路由選擇,即選擇到達(dá)目的節(jié)點(diǎn)的最佳路線,而在面向連接的虛電路服務(wù)中,存在一條專門的邏輯線路,在建立連接時(shí)就已經(jīng)確定了路有路徑,無需額外選擇。
(3)擁塞控制
擁塞控制是為了避免網(wǎng)絡(luò)傳輸路徑中數(shù)據(jù)的傳輸延遲或死鎖。數(shù)據(jù)鏈路層中的流量控制功能,是針對(duì)數(shù)據(jù)鏈路中點(diǎn)對(duì)點(diǎn)傳輸速率的控制,這里的擁塞控制是針對(duì)在網(wǎng)絡(luò)層傳輸路徑中的端到端傳輸效率的控制。主要采用預(yù)約緩沖區(qū)、許可證和分組丟棄等方式。
數(shù)據(jù)包的路由過程
電路 / 報(bào)文 / 分組交換
為什么要數(shù)據(jù)交換?
(1)對(duì)于每臺(tái)主機(jī)要通信,我們給每個(gè)主機(jī)都建立線路,那么一共是 n (n - 1) / 2 條鏈路。
(2)通過交換設(shè)備互聯(lián),N 條鏈路,缺點(diǎn):如果主機(jī)數(shù)量大,將會(huì)給交換機(jī)壓力很大,交換機(jī)的內(nèi)部吞吐量要特別大,并且遠(yuǎn)距離鏈路就要長,鏈路一長信號(hào)會(huì)差。
數(shù)據(jù)交換方式:電路交換、報(bào)文交換、分組交換
1. 報(bào)文交換和分組交換都采用存儲(chǔ)轉(zhuǎn)發(fā)。
2. 傳送數(shù)據(jù)量大,且傳送時(shí)間遠(yuǎn)大于呼叫時(shí),選擇電路交換。電路交換傳輸時(shí)延最小。
3. 從信道利用率看,報(bào)文交換和分組交換優(yōu)于電路交換,其中分組交換時(shí)延更小。
電路交換
由于電路交換在通信之前要在通信雙方之間建立一條被雙方獨(dú)占的物理通路(由通信雙方之間的交換設(shè)備和鏈路逐段連接而成)
報(bào)文交換
報(bào)文交換是以報(bào)文為數(shù)據(jù)交換的單位,報(bào)文攜帶有目標(biāo)地址、源地址等信息,在交換結(jié)點(diǎn)采用存儲(chǔ)轉(zhuǎn)發(fā)的傳輸方式。
優(yōu)點(diǎn):1. 無需建立連接 2. 存儲(chǔ)轉(zhuǎn)發(fā),動(dòng)態(tài)分配線路 3. 線路可靠性較高 4. 線路利用率較高 5. 多目標(biāo)服務(wù)
缺點(diǎn):1. 有存儲(chǔ)轉(zhuǎn)發(fā)時(shí)延 2. 報(bào)文大小不定,需要網(wǎng)絡(luò)節(jié)點(diǎn)有較大緩存空間
分組交換
分組交換仍采用存儲(chǔ)轉(zhuǎn)發(fā)傳輸方式,但將一個(gè)長報(bào)文先分割為若干個(gè)較短的分組,然后把這些分組(攜帶源、目的地址和編號(hào)信息)逐個(gè)地發(fā)送出去。
優(yōu)點(diǎn):1. 無需建立連接 2. 存儲(chǔ)轉(zhuǎn)發(fā),動(dòng)態(tài)分配線路 3. 線路可靠性較高 4. 線路利用率較高 5. 相對(duì)于報(bào)文交換,存儲(chǔ)管理更容易
缺點(diǎn):1.有存儲(chǔ)轉(zhuǎn)發(fā)時(shí)延 2. 需要傳輸額外的信息量(占用帶寬資源) 3. 亂序到目的主機(jī)時(shí),要對(duì)分組排序重組
例題:比較報(bào)文交換、分組交換的所需時(shí)間?
報(bào)文交換的方式:10000 bit / 1000 bps = 10 s,最少要跳 2 次交換設(shè)備:10 s * ( 2 + 1 ) = 30 s
分組交換的方式:10 bit / 1000 bps = 0.01 s,最少要跳 2 次交換設(shè)備:( 10000 bit / 10 bit ) * 0.01 s + 0.01 s * 2 = 10.02 s
數(shù)據(jù)報(bào)和虛電路
數(shù)據(jù)報(bào)方式:為網(wǎng)絡(luò)層提供無連接服務(wù)
無連接服務(wù):不事先為分組的傳輸確定傳輸路徑,每個(gè)分組獨(dú)立確定傳輸路徑,不同分組傳輸路徑可能不同。
每個(gè)分組攜帶源和目的地址,路由器根據(jù)分組的目的地址轉(zhuǎn)發(fā)分組:基于路由協(xié)議 / 算法構(gòu)建轉(zhuǎn)發(fā)表;檢索轉(zhuǎn)發(fā)表;每個(gè)分組獨(dú)立選路。
虛電路方式:為網(wǎng)絡(luò)層提供連接服務(wù)
指的是一條源主機(jī)到目的主機(jī)之間類似于電路的一條路徑,那這個(gè)路徑它是類似于電路的,是一種邏輯上的連接,所以它是虛的電路,而路徑上的所有節(jié)點(diǎn)都要維持這條虛電路的建立,都維持一張?zhí)撾娐繁?,每一?xiàng)記錄,每一項(xiàng)都記錄了一個(gè)打開的虛電路的信息。
連接服務(wù):首先為分組的傳輸確定傳輸路徑(建立連接),然后沿該路徑(連接)傳輸系列分組,系列分組傳輸路徑相同,傳輸結(jié)束后拆除連接。
TCP的特性就是面向連接的,是可靠傳輸,可以差錯(cuò)控制和流量控制,TCP的數(shù)據(jù)傳送是建立在虛電路的基礎(chǔ)上的。
傳輸單元名詞辨析
報(bào)文
:其實(shí)就是對(duì)于一個(gè)要傳輸?shù)臄?shù)據(jù)。
比如說我現(xiàn)在要發(fā)送一個(gè)文件,比如說現(xiàn)在使用QQ,QQ它就是應(yīng)用層的程序,要用QQ來發(fā)送一個(gè)文件,這一個(gè)文件其實(shí)就是一個(gè)報(bào)文。
報(bào)文段
:傳輸層會(huì)對(duì)報(bào)文進(jìn)行一個(gè)分割,也就是把報(bào)文分割成一個(gè)又一個(gè)的小段,就叫做報(bào)文段,這個(gè)是對(duì)于報(bào)文長度比較大,報(bào)名比較大的情況,傳輸層才會(huì)進(jìn)行分割。
如果這報(bào)文很小,比如說就是一句話,你好,可能傳輸層它并不會(huì)進(jìn)行分割,不會(huì)分割成報(bào)文段,也可以叫做報(bào)文。
IP數(shù)據(jù)段 / 分組
:它要封裝上網(wǎng)絡(luò)層的 IP 地址,這個(gè)地址包括原地址以及目的地址,都是 IP 地址。封裝好這樣一個(gè)就叫做一個(gè) IP 數(shù)據(jù)報(bào)了。
如果這個(gè)數(shù)據(jù)報(bào)大小再次過大的話,因?yàn)殒溌穼拥臅r(shí)候,它有一個(gè) MTU 最大傳送單元,如果這個(gè)數(shù)據(jù)報(bào)的部分過大,我們就需要對(duì)數(shù)據(jù)報(bào)進(jìn)行一個(gè)切割,進(jìn)行一個(gè)切割下來的一個(gè)部分,就叫做一個(gè)分組。
幀
:加頭加尾,就形成了一個(gè)幀,這個(gè)頭加的就是在原來的ip數(shù)據(jù)報(bào),或者說分組基礎(chǔ)之上,我們家頭加上mac地址,加上物理地址,然后加尾就是加一個(gè)FCS的幀檢驗(yàn)序列。
比特流
:比特流(BitTorrent)是一種內(nèi)容分發(fā)協(xié)議。
數(shù)據(jù)報(bào) 和 虛電路 比較
相關(guān)區(qū)別比較項(xiàng) | 數(shù)據(jù)報(bào) 服務(wù) | 虛電路 服務(wù) |
---|---|---|
連接的建立 | 不要 | 必須有 |
目的地址 | 每個(gè)分組都有完整的目的地址 | 僅在建立連接階段使用,之后每個(gè)分組使用長度較短的虛電路號(hào) |
路由的選擇 | 每個(gè)分組獨(dú)立的進(jìn)行路由選擇和轉(zhuǎn)發(fā) | 屬于同一條虛電路的分組按照同一路由轉(zhuǎn)發(fā) |
分組順序 | 不保證分組有序到達(dá) | 保證分組的有序到達(dá) |
可靠性 | 不保證可靠通信,可靠性由用戶主機(jī)保證 | 可靠性由網(wǎng)絡(luò)保證 |
對(duì)網(wǎng)絡(luò)故障的適應(yīng)性 | 出故障的結(jié)點(diǎn)丟失分組,其他分組路徑選擇發(fā)生變化,可正常傳輸 | 所有經(jīng)過故障結(jié)點(diǎn)的虛電路均不能正常工作 |
差錯(cuò)處理和流量控制 | 由用戶主機(jī)進(jìn)行流量控制,不保證數(shù)據(jù)報(bào)的可靠性 | 可由分組交換網(wǎng)負(fù)責(zé),也可由用戶主機(jī)負(fù)責(zé) |
路由算法與路由協(xié)議概述
最佳路由:“最佳”只能是相對(duì)于某一種特定要求下得出的較為合理的選擇而已。
靜態(tài)路由算法(非自適應(yīng)路由算法) | 動(dòng)態(tài)路由算法(自適應(yīng)路由算法) | |
---|---|---|
介紹 | 管理員手工配置路由信息 | 路由器間彼此交換信息,按照路由算法優(yōu)化出路由表項(xiàng) |
優(yōu)點(diǎn) | 簡(jiǎn)便、可靠,在負(fù)荷穩(wěn)定、拓?fù)渥兓淮蟮木W(wǎng)絡(luò)中運(yùn)行效果很好,廣泛用于高度安全性的軍事網(wǎng)絡(luò)和較小的商業(yè)網(wǎng)絡(luò) | 路由更新快,適用大型網(wǎng)絡(luò),及時(shí)響應(yīng)鏈路費(fèi)用或網(wǎng)絡(luò)拓?fù)渥兓?/td> |
缺點(diǎn) | 路由更新慢,不適用大型網(wǎng)絡(luò) | 算法復(fù)雜,增加網(wǎng)絡(luò)負(fù)擔(dān) |
動(dòng)態(tài)路由算法 全局性 分散性
全局性 | 分散性 |
---|---|
鏈路狀態(tài)路由算法OSPF | 距離向量路由算法RIP |
所有路由器掌握完整的網(wǎng)絡(luò)拓?fù)浜玩溌焚M(fèi)用信息 | 路由器只掌握物理相連的鄰居及鏈路費(fèi)用 |
分層次的路由選擇協(xié)議
(1)因特網(wǎng)規(guī)模很大
(2)許多單位不想讓外界知道自己的路由選擇協(xié)議,但還想連入因特網(wǎng)
自制系統(tǒng) AS
:在單一的技術(shù)管理下的一組路由器,而這些路由器使用一種 AS 內(nèi)部的路由選擇協(xié)議和公共的度量以確定分組在該 AS 內(nèi)的路由,同時(shí)還使用一種 AS 之間的路由協(xié)議以確定AS之間的路由。
一個(gè) AS 內(nèi)的所有網(wǎng)絡(luò)都屬于一個(gè)行政單位來管轄,一個(gè)自治系統(tǒng)的所有路由器在本自治系統(tǒng)內(nèi)都必須連通。
內(nèi)部網(wǎng)關(guān)協(xié)議 IGP | 外部網(wǎng)關(guān)協(xié)議 EGP |
---|---|
一個(gè) AS 內(nèi)使用RIP、OSPF | AS 之間使用 BGP - 4 |
IP 數(shù)據(jù)報(bào)格式與分片
TCP / IP 協(xié)議定義了一個(gè)在因特網(wǎng)上傳輸?shù)陌?,稱為 IP 數(shù)據(jù)報(bào),由首部和數(shù)據(jù)兩部分組成。首部的前一部分是固定長度,共 20 字節(jié),是所有 IP 數(shù)據(jù)報(bào)必須具有的。在首部的固定部分的后面是一些可選字段,其長度是可變的。首部中的源地址和目的地址都是 IP 協(xié)議地址。
IP 數(shù)據(jù)報(bào)格式
如下圖所示,IP 數(shù)據(jù)報(bào)格式分為首部和數(shù)據(jù)部分。并且最高位在左邊,為 0 位,最低位在右邊,為 31 位。在傳輸?shù)臅r(shí)候按照從高到低的順序進(jìn)行傳輸。
IP 數(shù)據(jù)報(bào)各字段功能
版本號(hào)
:占用 4 位二進(jìn)制數(shù),表示該 IP 數(shù)據(jù)報(bào)使用的 IP 協(xié)議版本。目前 Internet 中使用的主要是 TCP / IP 協(xié)議族中版本號(hào)為 4 的 IP 協(xié)議。
頭長度
:占用 4 位二進(jìn)制位,此域指出整個(gè)報(bào)頭的長度(包括選項(xiàng)),該長度是以 32 位二進(jìn)制數(shù)為一個(gè)計(jì)數(shù)單位的,接收端通過此域可以計(jì)算出報(bào)頭在何處結(jié)束及從何處開始讀數(shù)據(jù)。普通 IP 數(shù)據(jù)報(bào)(沒有任何選項(xiàng))該字段的值是 5(即 20 個(gè)字節(jié)的長度)。
服務(wù)類型(TOS、type of service)
:占用 8 位二進(jìn)制位,用于規(guī)定本數(shù)據(jù)報(bào)的處理方式。
(1) 優(yōu)先權(quán)(0 - 7)數(shù)越大,表示該數(shù)據(jù)報(bào)優(yōu)先權(quán)越高。
網(wǎng)絡(luò)中路由器可以使用優(yōu)先權(quán)進(jìn)行擁塞控制,如當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí)可以根據(jù)數(shù)據(jù)報(bào)的優(yōu)先權(quán)來決定數(shù)據(jù)報(bào)的取舍。
(2) 短延遲位 D (Delay):該位置 1 時(shí),數(shù)據(jù)報(bào)請(qǐng)求以短延遲信道傳輸,0 表示正常延時(shí)。
(3) 高吞吐量位 T (Throughput):該位置 1 時(shí),數(shù)據(jù)報(bào)請(qǐng)求以高吞吐量信道傳輸,0 表示普通。
(4) 高可靠位 R (Reliability):該位置 1 時(shí),數(shù)據(jù)報(bào)請(qǐng)求以高可靠性信道傳輸,0 表示普通。
(5) 保留位
目前在Internet中使用的 TCP / IP 協(xié)議大多數(shù)情況下網(wǎng)絡(luò)并未對(duì) TOS 進(jìn)行處理,但在實(shí)際編程時(shí),有專門的函數(shù)來設(shè)置該字段的各域。
總長度
:占用 16 位二進(jìn)制位,總長度字段是指整個(gè) IP 數(shù)據(jù)報(bào)的長度(報(bào)頭區(qū) + 數(shù)據(jù)區(qū)),以字節(jié)為單位。
利用頭部長度字段和總長度字段就可以計(jì)算出 IP 數(shù)據(jù)報(bào)中數(shù)據(jù)內(nèi)容的起始位置和長度。由于該字段長度為 16 位二進(jìn)制數(shù),因此理論上IP數(shù)據(jù)報(bào)最長可達(dá) 65536 個(gè)字節(jié)(事實(shí)上受物理網(wǎng)絡(luò)的限制,要比這個(gè)數(shù)值小很多)。
生存時(shí)間(TTL,time to live)
:占用 8 位二進(jìn)制位,它指定了數(shù)據(jù)報(bào)可以在網(wǎng)絡(luò)中傳輸?shù)淖铋L時(shí)間。實(shí)際應(yīng)用中把生存時(shí)間字段設(shè)置成了數(shù)據(jù)報(bào)可以經(jīng)過的最大路由器數(shù)。
TTL 的初始值由源主機(jī)設(shè)置(通常為 32、64、128 或 256),一旦經(jīng)過一個(gè)處理它的路由器,它的值就減 1。當(dāng)該字段為 0 時(shí),數(shù)據(jù)報(bào)就丟棄,并發(fā)送 ICMP 報(bào)文通知源主機(jī),因此可以防止進(jìn)入一個(gè)循環(huán)回路時(shí),數(shù)據(jù)報(bào)無休止地傳輸下去。
特別補(bǔ)充:ICMP(Internet Control Message protocol)
ICMP(Internet Control Message protocol)互聯(lián)網(wǎng)信息控制協(xié)議,用于實(shí)現(xiàn)鏈路連通性測(cè)試和鏈路追蹤,可以實(shí)現(xiàn)鏈路差錯(cuò)報(bào)告,屬于UDP協(xié)議。ICMP有多種類型的報(bào)文,同一類型的報(bào)文會(huì)有多個(gè)不同的Code。
ICMP 是 IP 層的一部分,雖然從形式上看 ICMP 被包裝在 IP 的數(shù)據(jù)部中,感覺和 TCP、UDP 同一層,但實(shí)際上 ICMP 被劃分到網(wǎng)絡(luò)層。ICMP 的主要作用在于傳遞差錯(cuò)報(bào)文。
ICMP 報(bào)文的結(jié)構(gòu)為:8 位類型 + 8 位代碼 + 16 位檢驗(yàn)和 + 特有內(nèi)容
上層協(xié)議標(biāo)識(shí)
:占用 8 位二進(jìn)制位,IP 協(xié)議可以承載各種上層協(xié)議,目標(biāo)端根據(jù)協(xié)議標(biāo)識(shí)就可以把收到的 IP 數(shù)據(jù)報(bào)送到 TCP 或 UDP 等處理此報(bào)文的上層協(xié)議了。
上層協(xié)議 常用網(wǎng)際協(xié)議編號(hào):校驗(yàn)和
:占用 16 位二進(jìn)制數(shù),用于協(xié)議頭數(shù)據(jù)有效性的校驗(yàn),可以保證 IP 報(bào)頭區(qū)在傳輸時(shí)的正確性和完整性。頭部檢驗(yàn)和字段是根據(jù) IP 協(xié)議頭計(jì)算出的檢驗(yàn)和,它不對(duì)頭部后面的數(shù)據(jù)進(jìn)行計(jì)算。
原理:發(fā)送端首先將檢驗(yàn)和字段置 0,然后對(duì)頭部中每 16 位二進(jìn)制數(shù)進(jìn)行反碼求和的運(yùn)算,并將結(jié)果存在校驗(yàn)和字段中。由于接收方在計(jì)算過程中包含了發(fā)送方放在頭部的校驗(yàn)和,因此,如果頭部在傳輸過程中沒有發(fā)生任何差錯(cuò),那么接收方計(jì)算的結(jié)果就應(yīng)該是全 1。
源地址
:占用 32 位二進(jìn)制數(shù),表示發(fā)送端 IP 地址。
目的地址
:占用 32 位二進(jìn)制數(shù),表述目的端 IP 地址。
IP 數(shù)據(jù)報(bào)分片
在IP數(shù)據(jù)報(bào)頭中有三個(gè)字段與數(shù)據(jù)報(bào)的分片與重組有很大的關(guān)系,分別是標(biāo)識(shí)符、標(biāo)志和片偏移量。
標(biāo)志
:占3位,該字段目前只有后兩位有意義。
最低位記為 MF (More Fragment)
,用于把數(shù)據(jù)報(bào)最后一片與前面其它各片區(qū)分開來;
MF = 1代表片未完,即鈣片不是原始數(shù)據(jù)報(bào)的最后一片;MF = 0表示鈣片是原始數(shù)據(jù)報(bào)的最后一片。
次低位 DF(Don't Fragment)
,用來控制數(shù)據(jù)報(bào)是否允許分片。
DF = 1表示該數(shù)據(jù)報(bào)不允許分片;DF = 0允許分片。
其實(shí),數(shù)據(jù)報(bào)的分片和重組都是由機(jī)器自動(dòng)完成的,因此設(shè)置 DF 位的真正意義在于,程序員可以控制數(shù)據(jù)報(bào)的分片過程,這為程序調(diào)試提供了方便和靈活性。
標(biāo)識(shí)
:占 16 位,用于目的主機(jī)將數(shù)據(jù)報(bào)的各個(gè)分片重裝成原來的數(shù)據(jù)報(bào)。當(dāng)數(shù)據(jù)報(bào)分片時(shí),該標(biāo)識(shí)字段的值被復(fù)制到所有的數(shù)據(jù)報(bào)片的標(biāo)識(shí)字段中。
這樣,目的主句就可以正確的將標(biāo)識(shí)字段值相同的各數(shù)據(jù)報(bào)分片重裝成原來的數(shù)據(jù)報(bào)。
片偏移
:占 13 位,表示本片在原數(shù)據(jù)報(bào)中的偏移,偏移量以 8 字節(jié)為單位。由于各片數(shù)據(jù)均按照獨(dú)立數(shù)據(jù)報(bào)方式傳輸,因此到達(dá)目的站的片序是不定的,目的主機(jī)在重裝數(shù)據(jù)報(bào)時(shí)需要該字段提供偏移量。
除了最后一個(gè)分片,每個(gè)分片長度一定是 8B 的整數(shù)倍。
例題:IP 數(shù)據(jù)報(bào)計(jì)算(IP數(shù)據(jù)報(bào)分片)
一個(gè)數(shù)據(jù)報(bào)部分長度為3400字節(jié)(使用固定首部)。現(xiàn)在經(jīng)過一個(gè)網(wǎng)絡(luò)傳輸,該網(wǎng)絡(luò)的 MTU 為 800 字節(jié):
(1)應(yīng)分為幾個(gè)數(shù)據(jù)報(bào)片?(2)各數(shù)據(jù)報(bào)片的數(shù)據(jù)字段長度?(3)各數(shù)據(jù)報(bào)片的片偏移字段值?
分析思路:IP 數(shù)據(jù)報(bào)由首部和數(shù)據(jù)部分組成;MTU:最大傳輸單元(首部 + 數(shù)據(jù)部分);IP 數(shù)據(jù)報(bào)的固定首部 20 字節(jié)。
MF = 1:表示后面還有分片數(shù)據(jù)報(bào)
MF = 0:表示后面沒有分片數(shù)據(jù)報(bào)
DF = 0:表示能分片
DF = 1:表示禁止分片
解題分析:
這個(gè)題目固定首部:24 字節(jié),正常情況下是 20 字節(jié)
原因
:片偏移以 8 個(gè)字節(jié)為偏移單位,每個(gè)分片長度一定是 8 字節(jié)(64位)的整數(shù)倍。
該網(wǎng)絡(luò)的 MTU 為 800 字節(jié):包括首部和數(shù)據(jù)部分,最大的數(shù)據(jù)部分(減去首部 24 字節(jié))為 776 字節(jié)
(1)數(shù)據(jù)報(bào)部分長度為 3400 字節(jié)能分成多少個(gè) 776 => 3400 / 776 ≈ 4.38;剩余部分不能丟棄;所以應(yīng)分為 5 個(gè)數(shù)據(jù)報(bào)片。
(2)各數(shù)據(jù)報(bào)片的數(shù)據(jù)字段長度:776 776 776 776 296
(3)各數(shù)據(jù)報(bào)片的片偏移字段值:0 97 194 291 388
IP 數(shù)據(jù)包分片 總結(jié):
當(dāng)需要進(jìn)行分片時(shí),在每個(gè)數(shù)據(jù)報(bào)片的首部存放著該數(shù)據(jù)報(bào)的標(biāo)識(shí)、標(biāo)志位和片偏移,在進(jìn)行重組時(shí),標(biāo)識(shí)用來分辨該數(shù)據(jù)報(bào)片的原數(shù)據(jù)報(bào)是哪個(gè),標(biāo)志位中的 MF 用來分辨這是不是原數(shù)據(jù)報(bào)的最后一片,片偏移用來分辨這個(gè)數(shù)據(jù)報(bào)片相對(duì)原數(shù)據(jù)報(bào)的位置。通過這幾個(gè)字段,可以穩(wěn)定的完成數(shù)據(jù)報(bào)的分片與重組操作。
IPv4 地址、IPv6 地址
IP 地址的分類
整個(gè)的因特網(wǎng)就是一個(gè)單一的、抽象的網(wǎng)絡(luò)。IP 地址就是給因特網(wǎng)上的每一個(gè)主機(jī)(或路由器)的每一個(gè)接口分配一個(gè)在全世界范圍內(nèi)唯一的 32 位的標(biāo)識(shí)符。
所謂分類的IP地址,就是將IP地址劃分為若干固定類,每一類地址都由兩個(gè)固定長度的字段組成,其中一個(gè)字段是網(wǎng)絡(luò)號(hào) net - id
,它標(biāo)志主機(jī)(或路由器)所連接到的網(wǎng)絡(luò),一個(gè)網(wǎng)絡(luò)號(hào)在整個(gè)因特網(wǎng)范圍內(nèi)必須是唯一的。
IP 地址與硬件地址
硬件地址是數(shù)據(jù)鏈路層和物理層使用的地址,而IP地址是網(wǎng)絡(luò)層和以上各層使用的地址,是一種邏輯地址。
發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)從高層下到地層,然后才到通信鏈路上傳輸。使用 IP 地址的 IP 數(shù)據(jù)報(bào)一旦交給了數(shù)據(jù)鏈路層,就被封裝成了 MAC 幀。MAC 幀在傳送時(shí)使用的源地址和目的地址都是硬件地址,這兩個(gè)硬件地址都寫在 MAC 幀的首部。
連接在通信鏈路上的設(shè)備在接受 MAC 幀時(shí),其根據(jù)是 MAC 幀首部中的硬件地址。在數(shù)據(jù)鏈路層看不見隱藏在 MAC 幀的數(shù)據(jù)中的 IP 地址。
只有在剝?nèi)チ?MAC 幀的首部和尾部后把 MAC 層的數(shù)據(jù)上交給網(wǎng)絡(luò)層后,網(wǎng)絡(luò)層才能在 IP 數(shù)據(jù)報(bào)的首部中找到源 IP 地址和目的 IP 地址。
IPv4 與 IPv6 的區(qū)別
首部
:IPv6 的首部長度是 40 個(gè)字節(jié),相對(duì) IPv4 的首部長度 24 字節(jié)要長,但是,IPv6 首部結(jié)構(gòu)比 IPv4 簡(jiǎn)單。
在 IPv6 中,IPv4 報(bào)頭格式中一些冗余的域或被丟棄或被列為擴(kuò)展報(bào)頭,從而降低了包處理和報(bào)頭帶寬的開銷。
擴(kuò)展了路由和尋址的能力
:IPv6 把 IP 地址由 32 位增加到 128 位,從而能夠支持更大的地址空間,有2128-1個(gè) IPv6 地址,估計(jì)在地球表面每平米有 4*1018 個(gè) IPv6 地址,使 IP 地址在可預(yù)見的將來不會(huì)用完。
IPv6 地址的編碼采用類似于 CIDR 的分層分級(jí)結(jié)構(gòu),如同電話號(hào)碼。簡(jiǎn)化了路由, 加快了路由速度。
對(duì)可選項(xiàng)更大的支持
:IPv6 的可選項(xiàng)不放入報(bào)頭,而是放在一個(gè)個(gè)獨(dú)立的擴(kuò)展頭部。如果不指定路由器不會(huì)打開處理擴(kuò)展頭部,這大大改變了路由性能。
IPv6 放寬了對(duì)可選項(xiàng)長度的嚴(yán)格要求 ( IPv4 的可選項(xiàng)總長最多為 40 字節(jié) ) ,并可根據(jù)需要隨時(shí)引入新選項(xiàng)。
IPV6 的很多新的特點(diǎn)就是由選項(xiàng)來提供的,例如:對(duì) IP 層安全 ( IPSEC ) 的支持,對(duì)巨報(bào) ( jumbogram ) 的支持以及對(duì) IP 層漫游 ( Mobile - IP ) 的支持等。
支持即插即用(即自動(dòng)配置)
:IPv6 協(xié)議支持地址自動(dòng)配置,這是一種即插即用的機(jī)制。IPv6 節(jié)點(diǎn)通過地址自動(dòng)配置得到 IPv6 地址和網(wǎng)關(guān)地址。
IPv6 支持無狀態(tài)地址自動(dòng)配置和狀態(tài)地址自動(dòng)配置兩種地址自動(dòng)配置方式。它會(huì)給配置 128
位的地址帶來很大的方便,特別是無狀態(tài)地址自動(dòng)配置。
身份驗(yàn)證和保密
:在 IPv6 中加入了關(guān)于身份驗(yàn)證、數(shù)據(jù)一致性和保密性的內(nèi)容。
允許協(xié)議繼續(xù)擴(kuò)充
:技術(shù)總是在不斷發(fā)展的,而新的應(yīng)用也還會(huì)出現(xiàn)。而 IPv4 的功能是固定不變的。
網(wǎng)絡(luò)地址轉(zhuǎn)換 NAT
NAT 英文全稱是“ Network Address Translation ”
,中文意思是“網(wǎng)絡(luò)地址轉(zhuǎn)換”,它是一個(gè)IETF(Internet Engineering Task Force, Internet工程任務(wù)組)標(biāo)準(zhǔn),允許一個(gè)整體機(jī)構(gòu)以一個(gè)公用 IP(Internet Protocol)地址出現(xiàn)在 Internet 上。
顧名思義,它是一種把內(nèi)部私有網(wǎng)絡(luò)地址(IP 地址)翻譯成合法網(wǎng)絡(luò) IP 地址的技術(shù)。因此我們可以認(rèn)為,NAT 在一定程度上,能夠有效的解決公網(wǎng)地址不足的問題。
NAT 有三種類型:靜態(tài)地址 NAT(Static NAT)、動(dòng)態(tài)地址 NAT(Pooled NAT)、網(wǎng)絡(luò)地址端口轉(zhuǎn)換 NAPT(Port - Level NAT)
基本工作原理
NAT 的基本工作原理是:當(dāng)私有網(wǎng)主機(jī)和公共網(wǎng)主機(jī)通信的 IP 包經(jīng)過 NAT 網(wǎng)關(guān)時(shí),將 IP 包中的源 IP 或目的 IP 在私有 IP 和 NAT 的公共 IP 之間進(jìn)行轉(zhuǎn)換。
如下圖所示,NAT 網(wǎng)關(guān)有 2 個(gè)網(wǎng)絡(luò)端口,其中公共網(wǎng)絡(luò)端口的 IP 地址是統(tǒng)一分配的公共 IP,為 202.20.65.5
;私有網(wǎng)絡(luò)端口的 IP 地址是保留地址,為 192.168.1.1
。
私有網(wǎng)中的主機(jī) 192.168.1.2
向公共網(wǎng)中的主機(jī) 202.20.65.4
發(fā)送了 1 個(gè) IP 包( Dst = 202.20.65.4;Src = 192.168.1.2 )
當(dāng) IP 包經(jīng)過 NAT 網(wǎng)關(guān)時(shí),NAT Gateway 會(huì)將 IP 包的源 IP 轉(zhuǎn)換為 NAT Gateway 的公共 IP 并轉(zhuǎn)發(fā)到公共網(wǎng),此時(shí) IP 包(Dst = 202.20.65.4,Src = 202.20.65.5)中已經(jīng)不含任何私有網(wǎng) IP 的信息。
由于 IP 包的源 IP 已經(jīng)被轉(zhuǎn)換成 NAT Gateway 的公共 IP,Web Server 發(fā)出的響應(yīng) IP 包(Dst= 202.20.65.5;Src = 202.20.65.4)將被發(fā)送到 NAT Gateway。
這時(shí),NAT Gateway會(huì)將 IP 包的目的 IP 轉(zhuǎn)換成私有網(wǎng)中主機(jī)的IP,然后將 IP 包(Dst = 192.168.1.2,Src = 202.20.65.4)轉(zhuǎn)發(fā)到私有網(wǎng)。對(duì)于通信雙方而言,這種地址的轉(zhuǎn)換過程是完全透明的。轉(zhuǎn)換示意圖如下:
如果內(nèi)網(wǎng)主機(jī)發(fā)出的請(qǐng)求包未經(jīng)過 NAT ,那么當(dāng) Web Server 收到請(qǐng)求包,回復(fù)的響應(yīng)包中的目的地址就是私網(wǎng) IP 地址,在 Internet 上無法正確送達(dá),導(dǎo)致連接失敗。
在上述過程中,NAT Gateway 在收到響應(yīng)包后,就需要判斷將數(shù)據(jù)包轉(zhuǎn)發(fā)給誰。此時(shí)如果子網(wǎng)內(nèi)僅有少量客戶機(jī),可以用靜態(tài) NAT 手工指定;但如果內(nèi)網(wǎng)有多臺(tái)客戶機(jī),并且各自訪問不同網(wǎng)站,這時(shí)候就需要連接跟蹤(connection track)
在 NAT Gateway 收到客戶機(jī)發(fā)來的請(qǐng)求包后,做源地址轉(zhuǎn)換,并且將該連接記錄保存下來,當(dāng) NAT Gateway 收到服務(wù)器來的響應(yīng)包后,查找 Track Table
,確定轉(zhuǎn)發(fā)目標(biāo),做目的地址轉(zhuǎn)換,轉(zhuǎn)發(fā)給客戶機(jī)。
網(wǎng)絡(luò)地址轉(zhuǎn)換 NAT 應(yīng)用功能
NAT主要可以實(shí)現(xiàn)以下幾個(gè)功能:數(shù)據(jù)包偽裝、平衡負(fù)載、端口轉(zhuǎn)發(fā)和透明代理。
數(shù)據(jù)偽裝
: 可以將內(nèi)網(wǎng)數(shù)據(jù)包中的地址信息更改成統(tǒng)一的對(duì)外地址信息,不讓內(nèi)網(wǎng)主機(jī)直接暴露在因特網(wǎng)上,保證內(nèi)網(wǎng)主機(jī)的安全。同時(shí),該功能也常用來實(shí)現(xiàn)共享上網(wǎng)。
端口轉(zhuǎn)發(fā)
: 當(dāng)內(nèi)網(wǎng)主機(jī)對(duì)外提供服務(wù)時(shí),由于使用的是內(nèi)部私有IP地址,外網(wǎng)無法直接訪問。因此,需要在網(wǎng)關(guān)上進(jìn)行端口轉(zhuǎn)發(fā),將特定服務(wù)的數(shù)據(jù)包轉(zhuǎn)發(fā)給內(nèi)網(wǎng)主機(jī)。
負(fù)載平衡
: 目的地址轉(zhuǎn)換NAT可以重定向一些服務(wù)器的連接到其他隨機(jī)選定的服務(wù)器。
失效終結(jié)
: 目的地址轉(zhuǎn)換NAT可以用來提供高可靠性的服務(wù)。如果一個(gè)系統(tǒng)有一臺(tái)通過路由器訪問的關(guān)鍵服務(wù)器,一旦路由器檢測(cè)到該服務(wù)器當(dāng)機(jī),它可以使用目的地址轉(zhuǎn)換NAT透明的把連接轉(zhuǎn)移到一個(gè)備份服務(wù)器上。
透明代理
: NAT可以把連接到因特網(wǎng)的HTTP連接重定向到一個(gè)指定的HTTP代理服務(wù)器以緩存數(shù)據(jù)和過濾請(qǐng)求。一些因特網(wǎng)服務(wù)提供商就使用這種技術(shù)來減少帶寬的使用而不用讓他們的客戶配置他們的瀏覽器支持代理連接。
子網(wǎng)劃分和子網(wǎng)掩碼
為什么要?jiǎng)澐肿泳W(wǎng)?
IPv4 地址如果只使用有類(A、B、C類)來劃分,會(huì)造成大量的浪費(fèi)或者不夠用,為了解決這個(gè)問題,可以在有限類網(wǎng)絡(luò)的基礎(chǔ)上,通過對(duì) IP 地址的主機(jī)號(hào)進(jìn)行再劃分,把一部分劃入網(wǎng)絡(luò)號(hào),就能劃分各種類型大小的網(wǎng)絡(luò)了。
IPv4 子網(wǎng)劃分與聚合
為了解決 IPv4 的不足,提高網(wǎng)絡(luò)劃分的靈活性,誕生了兩種非常重要的技術(shù),那就是 VLSM(可變長子網(wǎng)掩碼)和 CIDR(無類別域間路由),把傳統(tǒng)標(biāo)準(zhǔn)的 IPv4 有類網(wǎng)絡(luò)演變成一個(gè)更為高效,更為實(shí)用的無類網(wǎng)絡(luò)。
可變長子網(wǎng)掩碼
:Variable Length Subnet Mask,VLSM 用于 IPv4 子網(wǎng)的劃分,也就是把一個(gè)大的網(wǎng)絡(luò)劃分成多個(gè)小的子網(wǎng)。
無類別域間路由
:Classless Inter-Domain Routing,CIDR 則用于 IPv4 子網(wǎng)的聚合,當(dāng)然主要是指路由方面的聚合,也就是路由匯總。
通過 CIDR 可以把多個(gè)小的子網(wǎng)路由條目匯總成一個(gè)大網(wǎng)絡(luò)的路由條目,以減少路由器中路由條目的數(shù)量,提高路由效率。
VLSM 子網(wǎng)劃分的基本思想
通過 VLSM 實(shí)現(xiàn)子網(wǎng)劃分的基本思想很簡(jiǎn)單:就是借用現(xiàn)有網(wǎng)段的主機(jī)位的最左邊某幾位作為子網(wǎng)位,劃分出多個(gè)子網(wǎng)。
① 把原來有類網(wǎng)絡(luò) IPv4 地址中的 “網(wǎng)絡(luò) ID” 部分向 “主機(jī) ID” 部分借位
② 把一部分原來屬于 “主機(jī) ID” 部分的位變成 “網(wǎng)絡(luò) ID” 的一部分(通常稱之為 “子網(wǎng) ID” )。
③ 原來的 “網(wǎng)絡(luò) ID” + “子網(wǎng)ID” = 新 “網(wǎng)絡(luò) ID” ,“子網(wǎng) ID” 的長度決定了可以劃分子網(wǎng)的數(shù)量。
IP 子網(wǎng)劃分 常見問題注意點(diǎn)
每個(gè)子網(wǎng)的廣播地址是什么?
答:主機(jī)位全為 1 就是該子網(wǎng)的廣播地址。通常我們這樣計(jì)算:廣播地址總是下一個(gè)子網(wǎng)前面的數(shù),前面確定了子網(wǎng)為0、64、128 和 192
例如,子網(wǎng) 0 的廣播地址為 63,因?yàn)橄乱粋€(gè)子網(wǎng)為 64 ;子網(wǎng) 64 的廣播地址為 127,因?yàn)橄乱粋€(gè)子網(wǎng)為 128,以此類推。請(qǐng)記住,最后一個(gè)子網(wǎng)的廣播地址總是 255
每個(gè)子網(wǎng)可包含哪些主機(jī)地址?
合法的主機(jī)地址位于兩個(gè)子網(wǎng)之間,但全為 0 和全為 1 的地址除外。例如,如果子網(wǎng)號(hào)(網(wǎng)段號(hào))為 64,而廣播地址為 127 ,則合法的主機(jī)地址范圍為 65 - 126 ,即子網(wǎng)地址和廣播地址之間的數(shù)字。
子網(wǎng)掩碼 ( subnet mask )
子網(wǎng)掩碼(subnet mask)又叫網(wǎng)絡(luò)掩碼、地址掩碼、子網(wǎng)絡(luò)遮罩,它是一種用來指明一個(gè)IP地址的哪些位標(biāo)識(shí)的是主機(jī)所在的子網(wǎng),以及哪些位標(biāo)識(shí)的是主機(jī)的位掩碼。
子網(wǎng)掩碼不能單獨(dú)存在,它必須結(jié)合 IP 地址一起使用。子網(wǎng)掩碼就是將某個(gè) IP 地址劃分成網(wǎng)絡(luò)地址和主機(jī)地址兩部分。
子網(wǎng)掩碼是一個(gè)32位地址,用于屏蔽 IP 地址的一部分以區(qū)別網(wǎng)絡(luò)標(biāo)識(shí)和主機(jī)標(biāo)識(shí),并說明該IP地址是在局域網(wǎng)上,還是在遠(yuǎn)程網(wǎng)上。
子網(wǎng)掩碼屏蔽一個(gè) IP 地址的網(wǎng)絡(luò)部分的 “全 1” 比特模式。對(duì)于 A 類地址來說,默認(rèn)的子網(wǎng)掩碼是255.0.0.0;對(duì)于B類地址來說默認(rèn)的子網(wǎng)掩碼是255.255.0.0;對(duì)于C類地址來說默認(rèn)的子網(wǎng)掩碼是255.255.255.0。
通過子網(wǎng)掩碼,就可以判斷兩個(gè)IP在不在一個(gè)局域網(wǎng)內(nèi)部。子網(wǎng)掩碼可以看出有多少位是網(wǎng)絡(luò)號(hào),有多少位是主機(jī)號(hào)。
網(wǎng)關(guān) (Gateway)
網(wǎng)關(guān)(Gateway)
:又稱網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器。默認(rèn)網(wǎng)關(guān)在網(wǎng)絡(luò)層上以實(shí)現(xiàn)網(wǎng)絡(luò)互連,是最復(fù)雜的網(wǎng)絡(luò)互連設(shè)備,僅用于兩個(gè)高層協(xié)議不同的網(wǎng)絡(luò)互連。
網(wǎng)關(guān)的結(jié)構(gòu)也和路由器類似,不同的是互連層。網(wǎng)關(guān)既可以用于廣域網(wǎng)互連,也可以用于局域網(wǎng)互連。
網(wǎng)關(guān)實(shí)質(zhì)上是一個(gè)網(wǎng)絡(luò)通向其他網(wǎng)絡(luò)的IP地址。
比如有網(wǎng)絡(luò) A 和網(wǎng)絡(luò) B,網(wǎng)絡(luò) A 的 IP 地址范圍為 “192.168.1.1 ~ 192. 168.1.254”,子網(wǎng)掩碼為 255.255.255.0;網(wǎng)絡(luò) B 的 IP 地址范圍為 “192.168.2.1 ~ 192.168.2.254”,子網(wǎng)掩碼為 255.255.255.0。
在沒有路由器的情況下,兩個(gè)網(wǎng)絡(luò)之間是不能進(jìn)行 TCP / IP 通信的,即使是兩個(gè)網(wǎng)絡(luò)連接在同一臺(tái)交換機(jī)(或集線器)上,TCP / IP 協(xié)議也會(huì)根據(jù)子網(wǎng)掩碼(255.255.255.0)判定兩個(gè)網(wǎng)絡(luò)中的主機(jī)處在不同的網(wǎng)絡(luò)里。
實(shí)現(xiàn)這兩個(gè)網(wǎng)絡(luò)之間的通信,則必須通過網(wǎng)關(guān)。如果網(wǎng)絡(luò) A 中的主機(jī)發(fā)現(xiàn)數(shù)據(jù)包的目的主機(jī)不在本地網(wǎng)絡(luò)中,就把數(shù)據(jù)包轉(zhuǎn)發(fā)給它自己的網(wǎng)關(guān),再由網(wǎng)關(guān)轉(zhuǎn)發(fā)給網(wǎng)絡(luò) B 的網(wǎng)關(guān),網(wǎng)絡(luò) B 的網(wǎng)關(guān)再轉(zhuǎn)發(fā)給網(wǎng)絡(luò) B 的某個(gè)主機(jī)。
只有設(shè)置好網(wǎng)關(guān)的IP地址,TCP / IP 協(xié)議才能實(shí)現(xiàn)不同網(wǎng)絡(luò)之間的相互通信。
那么這個(gè) IP 地址是哪臺(tái)機(jī)器的IP地址呢?網(wǎng)關(guān)的 IP 地址是具有路由功能的設(shè)備的 IP 地址,具有路由功能的設(shè)備有路由器、啟用了路由協(xié)議的服務(wù)器(實(shí)質(zhì)上相當(dāng)于一臺(tái)路由器)、代理服務(wù)器(也相當(dāng)于一臺(tái)路由器)。
廣播地址 (Broadcast Address)
廣播地址(Broadcast Address)
:專門用于同時(shí)向網(wǎng)絡(luò)中所有工作站進(jìn)行發(fā)送的一個(gè)地址。
在使用 TCP / IP 協(xié)議的網(wǎng)絡(luò)中,主機(jī)標(biāo)識(shí)段 host ID 為全1 的 IP 地址為廣播地址,廣播的分組傳送給 host ID 段所涉及的所有計(jì)算機(jī)。
例如,對(duì)于10.1.1.0 ( 255.255.255.0 )網(wǎng)段,其廣播地址為 10.1.1.255 (255 即為 2 進(jìn)制的 11111111 ),當(dāng)發(fā)出一個(gè)目的地址為 10.1.1.255 的分組(封包)時(shí),它將被分發(fā)給該網(wǎng)段上的所有計(jì)算機(jī)。
使用子網(wǎng)時(shí)分組的轉(zhuǎn)發(fā)
例題探究(1):
一個(gè)主機(jī)的IP地址是 202.112.14.137,掩碼是 255.255.255.224,要求計(jì)算這個(gè)主機(jī)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)地址和廣播地址
如何計(jì)算網(wǎng)絡(luò)地址?
網(wǎng)絡(luò)地址就是:把 IP 地址轉(zhuǎn)成二進(jìn)制和子網(wǎng)掩碼進(jìn)行與運(yùn)算
什么是與運(yùn)算: 0 & 0 = 0;0 & 1 = 0;1 & 0 = 0;1 &1 = 1 即:兩個(gè)同時(shí)為 1,結(jié)果為 1,否則為 0
11001010 01110000 00001110 10001001 IP 地址
11111111 11111111 11111111 11100000 子網(wǎng)掩碼
----------------------------------- 與運(yùn)算
11001010 01110000 00001110 10000000 網(wǎng)絡(luò)地址
即:202.112.14.128
如何計(jì)算廣播地址?
網(wǎng)絡(luò)地址 202.112.14.128 => 廣播地址:網(wǎng)絡(luò)地址的主機(jī)位全部變成1 ,10011111 即159 即:202.112.14.159
如何計(jì)算主機(jī)數(shù)?
主機(jī)號(hào)有 5 位,那么這個(gè)地址中,就只能有 25 ? 2 = 30 個(gè)主機(jī)
例題探究(2): 答案是 D
無分類編址 CIDR
無分類編址 CIDR(構(gòu)造超網(wǎng))
無分類編址 CIDR 的正式名字是無分類域間路由選擇 CIDR (Classless Inter-Domain Routing)
網(wǎng)絡(luò)前綴
CIDR 消除了傳統(tǒng)的 A 類、B 類和 C 類地址以及劃分子網(wǎng)的概念,因而可以更加有效地分配 IPv4 的地址空間。
CIDR 使用各種長度的 “網(wǎng)絡(luò)前綴” ( network-prefix ) 來代替分類地址中的網(wǎng)絡(luò)號(hào)和子網(wǎng)號(hào)。
IP 地址從三級(jí)編址(使用子網(wǎng)掩碼)又回到了兩級(jí)編址。
CIDR 使用 “斜線記法” (slash notation),它又稱為 CIDR 記法,即在 IP 地址后面加上一個(gè)斜線 “/” ,然后寫上網(wǎng)絡(luò)前綴所占的位數(shù)(這個(gè)數(shù)值對(duì)應(yīng)于三級(jí)編址中子網(wǎng)掩碼中 1 的個(gè)數(shù))。
分類編址缺點(diǎn) - > 無分類編址
分類編址缺點(diǎn):比如一個(gè) A 類地址對(duì)應(yīng)的是224 - 2個(gè) IP 地址(網(wǎng)絡(luò)地址和廣播地址),這個(gè)是個(gè)天文數(shù)字,一個(gè)公司或者組織是無法完全利用這么多 IP 地址的,就造成了 IP 地址的浪費(fèi)。
CIDR無分類編址:無分類編址的做法是將IP分為兩部分(網(wǎng)絡(luò)號(hào) + 主機(jī)號(hào))
1、網(wǎng)絡(luò)號(hào)
:網(wǎng)絡(luò)號(hào)對(duì)應(yīng)的是一個(gè)網(wǎng)絡(luò)地址,一個(gè)網(wǎng)絡(luò)可以容納多個(gè)主機(jī),主機(jī)的網(wǎng)絡(luò)號(hào)相同。
2、主機(jī)號(hào)
:來唯一標(biāo)識(shí)一個(gè)主機(jī)在一個(gè)網(wǎng)絡(luò)中的id。
怎么區(qū)分網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)呢?
xx:xx:xx:xx/n:在IP地址后邊加入了 /n ,n 就前 n 位代表網(wǎng)絡(luò)號(hào)
CIDR 記法的其他形式:
10.0.0.0/10 可簡(jiǎn)寫為 10/10,也就是把點(diǎn)分十進(jìn)制中低位連續(xù)的 0 省略。
10.0.0.0/10 隱含地指出 IP 地址 10.0.0.0 的掩碼是 255.192.0.0。此掩碼可表示為 ( 10代表掩碼中1的個(gè)數(shù) )
構(gòu)成超網(wǎng) 路由聚合 (route aggregation)
一個(gè) CIDR 地址塊可以表示很多地址,這種地址的聚合常稱為路由聚合,它使得路由表中的一個(gè)項(xiàng)目可以表示很多個(gè)(例如上千個(gè))原來傳統(tǒng)分類地址的路由。
路由聚合有利于減少路由器之間的路由選擇信息的交換,從而提高了整個(gè)互聯(lián)網(wǎng)的性能。
補(bǔ)充:路由聚合也稱為構(gòu)成 超網(wǎng) (supernetting)
CIDR 雖然不使用子網(wǎng)了,但仍然使用 “掩碼” 這一名詞(但不叫子網(wǎng)掩碼)。
對(duì)于 / 20 地址塊,它的掩碼是 20 個(gè)連續(xù)的 1,斜線記法中的數(shù)字就是掩碼中 1 的個(gè)數(shù)。
最長前綴匹配
使用 CIDR 時(shí),路由表中的每個(gè)項(xiàng)目由“網(wǎng)絡(luò)前綴”和“下一跳地址”組成。在查找路由表時(shí)可能會(huì)得到不止一個(gè)匹配結(jié)果。
應(yīng)當(dāng)從匹配結(jié)果中選擇具有最長網(wǎng)絡(luò)前綴的路由:最長前綴匹配 (longest-prefix matching)。
網(wǎng)絡(luò)前綴越長,其地址塊就越小,因而路由就越具體 (more specific) 。
最長前綴匹配又稱為最長匹配或最佳匹配。
使用二叉線索查找路由表
- 當(dāng)路由表的項(xiàng)目數(shù)很大時(shí),怎樣設(shè)法減小路由表的查找時(shí)間就成為一個(gè)非常重要的問題。
- 為了進(jìn)行更加有效的查找,通常是將無分類編址的路由表存放在一種層次的數(shù)據(jù)結(jié)構(gòu)中,然后自上而下地按層次進(jìn)行查找。這里最常用的就是二叉線索 (binary trie)。
- IP 地址中從左到右的比特值決定了從根結(jié)點(diǎn)逐層向下層延伸的路徑,而二叉線索中的各個(gè)路徑就代表路由表中存放的各個(gè)地址。
- 為了提高二叉線索的查找速度,廣泛使用了各種壓縮技術(shù)。
就是從二叉線索的根節(jié)點(diǎn)自頂向下的深度最多有 32 層,每一層對(duì)應(yīng)于 IP 地址中的一位。一個(gè) IP 地址存入二叉線索的規(guī)則很簡(jiǎn)單。
先檢查 IP 地址左邊的第一位,如為 0,則第一層的節(jié)點(diǎn)就在根節(jié)點(diǎn)的左下方;如為 1,則在右下方。然后再檢查地址的第二位,構(gòu)造出第二層的節(jié)點(diǎn)。依此類推,直到唯一前綴的最后一位。
例如:10.100.122.2/24
考研例題展示:答案:B
傳輸層
傳輸層,上承應(yīng)用層,下啟網(wǎng)絡(luò)層,主要作用是將上層(應(yīng)用層)的數(shù)據(jù)進(jìn)行處理封裝后,遞交給下層(網(wǎng)絡(luò)層),并在此過程中實(shí)現(xiàn)一定的網(wǎng)絡(luò)收發(fā)控制(比如網(wǎng)絡(luò)流量控制)。
傳輸層封裝后的數(shù)據(jù)一般稱為數(shù)據(jù)段或者報(bào)文段(Segment)
復(fù)用是指,在發(fā)送端,多個(gè)應(yīng)用進(jìn)程共用一個(gè)傳輸層。
分用是指,在接收端,傳輸層會(huì)根據(jù)端口號(hào)將數(shù)據(jù)分派給不同的應(yīng)用進(jìn)程。
傳輸層主要有兩個(gè)協(xié)議:TCP, UDP
TCP協(xié)議(Transmission Control Protocol):可靠傳輸協(xié)議,即保證可靠交付報(bào)文段。
UDP協(xié)議(User Datagram Protocol):不可靠傳輸協(xié)議,即不保證可靠交付報(bào)文段。
UDP 協(xié)議、TCP 協(xié)議
TCP
是一種面向有連接的傳輸層協(xié)議,能夠?qū)ψ约禾峁┑倪B接實(shí)施控制。適用于要求可靠傳輸?shù)膽?yīng)用,例如文件傳輸。特點(diǎn)
:面向字節(jié)流,傳輸慢。
UDP
是一種面向無連接的傳輸層協(xié)議,不會(huì)對(duì)自己提供的連接實(shí)施控制。適用于實(shí)時(shí)應(yīng)用,例如:IP電話、視頻會(huì)議、直播等。特點(diǎn)
:以報(bào)文的方式傳輸,效率高。
UDP無連接,TCP面向連接
使用UDP協(xié)議的雙方隨時(shí)可以發(fā)送數(shù)據(jù),使用TCP協(xié)議的雙方在發(fā)送數(shù)據(jù)之前必須使用“三次握手”建立TCP連接,TCP連接建立成功后,才能進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)傳輸結(jié)束后,必須使用“四報(bào)文揮手”來釋放連接。
TCP 字節(jié)流服務(wù)
字節(jié)流服務(wù)和數(shù)據(jù)報(bào)服務(wù)的這種區(qū)別對(duì)應(yīng)到實(shí)際編程中,則體現(xiàn)為通信雙方是否必須執(zhí)行相同次數(shù)的讀、寫操作(當(dāng)然,這只是表現(xiàn)形式)。
當(dāng)發(fā)送端應(yīng)用程序連續(xù)執(zhí)行多次寫操作時(shí),TCP 模塊先將這些數(shù)據(jù)放入 TCP 發(fā)送緩沖區(qū)中。當(dāng) TCP 模塊真正開始發(fā)送數(shù)據(jù)時(shí),發(fā)送緩沖區(qū)中這些等待發(fā)送的數(shù)據(jù)可能被封裝成一個(gè)或多個(gè) TCP 報(bào)文段發(fā)出。因此,TCP 模塊發(fā)送出的TCP報(bào)文段的個(gè)數(shù)和應(yīng)用程序執(zhí)行的寫操作次數(shù)之間沒有固定的數(shù)量關(guān)系。
當(dāng)接收端收到一個(gè)或多個(gè) TCP 報(bào)文段后,TCP模塊將它們攜帶的應(yīng)用程序數(shù)據(jù)按照 TCP 報(bào)文段的序號(hào)依次放人 TCP 接收緩沖區(qū)中,并通知應(yīng)用程序讀取數(shù)據(jù)。接收端應(yīng)用程序可以一次性將 TCP 接收緩沖區(qū)中的數(shù)據(jù)全部讀出,也可以分多次讀取,這取決于用戶指定的應(yīng)用程序讀緩沖區(qū)的大小。因此,應(yīng)用程序執(zhí)行的讀操作次數(shù)和 TCP 模塊接收到的 TCP 報(bào)文段個(gè)數(shù)之間也沒有固定的數(shù)量關(guān)系。
TCP頭部結(jié)構(gòu)
原端口號(hào)、目標(biāo)端口號(hào):長度為 16 位,表示發(fā)送端端口號(hào)和接收端端口號(hào)。
序列號(hào):長度為 32 位,指發(fā)送數(shù)據(jù)端位置,每發(fā)送一次數(shù)據(jù),就累加一個(gè)該數(shù)據(jù)字節(jié)數(shù)的大小。
確認(rèn)應(yīng)答號(hào):長度為 32 位,是指下一次應(yīng)該收到的數(shù)據(jù)的序列號(hào)。
數(shù)據(jù)偏移:長度位 4 位,表示 TCP 所傳輸?shù)臄?shù)據(jù)部分應(yīng)該從 TCP 包的哪個(gè)位開始計(jì)算,可以看作是TCP 首部的長度。
保留:長度為 4 位,為了以后擴(kuò)展時(shí)使用。
控制位:字段長位 8 位,每一位從左到右分別位 CWR、ECE、URG、ACK、PSH、RST、SYN、FIN;這就控制標(biāo)識(shí)就叫做控制位。
控制位 標(biāo)志 | 解釋 |
---|---|
FIN 標(biāo)志 | 用于斷開連接,為 1 時(shí),表示今后都不會(huì)再有數(shù)據(jù)發(fā)送了。 |
SYN 標(biāo)志 | 用于建立連接,為 1 時(shí),表示希望建立連接。 |
RST 標(biāo)志 | 為 1 時(shí),表示 TCP 連接中出現(xiàn)異常必須強(qiáng)制斷開連接。 |
PSH 標(biāo)志 | 為 1 時(shí),表示傳輸?shù)臄?shù)據(jù)立刻給上層應(yīng)用,為 0 時(shí),不需要立刻傳送可以進(jìn)行緩存。 |
ACK 標(biāo)志 | 為 1 時(shí),表示確認(rèn)應(yīng)答的字段為有效,在三次握手時(shí),SYN 包之外該位必須為 1 。 |
URG 標(biāo)志 | 為 1 時(shí),表示時(shí)需要緊急處理的數(shù)據(jù)。 |
ECE 標(biāo)志 | 當(dāng)為 1 時(shí),表示從對(duì)方到這邊的網(wǎng)絡(luò)有擁堵。 |
CWR 標(biāo)志 | 與 ECE 表示都用于 IP 首部的 ECN 字段。 |
窗口大?。洪L度為 16 位,表示可以發(fā)送數(shù)據(jù)的窗口大小,當(dāng)為 0 時(shí),表示可以發(fā)送窗口探測(cè)。
校驗(yàn)和:長度為 16 位,校驗(yàn)TCP偽首部是否正確。
緊急指針:長度為 16 位,只有在 URG 標(biāo)志為 1 時(shí)有效,該字段的數(shù)值表示本報(bào)文段中緊急數(shù)據(jù)的指針。
選項(xiàng):可以用于提高 TCP 傳輸性能。
填充:用于數(shù)據(jù)補(bǔ)全。
TCP 連接管理(三握四揮)
連接管理就是三次握手與四次揮手的過程。保證可靠的連接,是保證可靠性的前提。
三次握手(Three-way Handshake)
三次握手(Three-way Handshake)其實(shí)就是指建立一個(gè)TCP連接時(shí),需要客戶端和服務(wù)器總共發(fā)送3個(gè)包。進(jìn)行三次握手的主要作用就是為了確認(rèn)雙方的接收能力和發(fā)送能力是否正常、指定自己的初始化序列號(hào)為后面的可靠性傳送做準(zhǔn)備。實(shí)質(zhì)上其實(shí)就是連接服務(wù)器指定端口,建立TCP連接,并同步連接雙方的序列號(hào)和確認(rèn)號(hào),交換TCP窗口大小信息。
剛開始客戶端處于 Closed 的狀態(tài),服務(wù)端處于 Listen 狀態(tài)。
進(jìn)行三次握手:
第一次握手
:客戶端給服務(wù)端發(fā)一個(gè) SYN 報(bào)文,并指明客戶端的初始化序列號(hào) ISN。此時(shí)客戶端處于 SYN_SENT 狀態(tài)。
首部的同步位SYN=1,初始序號(hào)seq=x,SYN=1的報(bào)文段不能攜帶數(shù)據(jù),但要消耗掉一個(gè)序號(hào)。
第二次握手
:服務(wù)器收到客戶端的 SYN 報(bào)文之后,會(huì)以自己的 SYN 報(bào)文作為應(yīng)答,并且也是指定了自己的初始化序列號(hào) ISN(s)。同時(shí)會(huì)把客戶端的 ISN + 1 作為ACK 的值,表示自己已經(jīng)收到了客戶端的 SYN,此時(shí)服務(wù)器處于 SYN_RCVD 的狀態(tài)。
在確認(rèn)報(bào)文段中 SYN=1,ACK=1,確認(rèn)號(hào) ack=x+1,初始序號(hào) seq=y。
第三次握手
:客戶端收到 SYN 報(bào)文之后,會(huì)發(fā)送一個(gè) ACK 報(bào)文,當(dāng)然,也是一樣把服務(wù)器的 ISN + 1 作為 ACK 的值,表示已經(jīng)收到了服務(wù)端的 SYN 報(bào)文,此時(shí)客戶端處于 ESTABLISHED 狀態(tài)。服務(wù)器收到 ACK 報(bào)文之后,也處于 ESTABLISHED 狀態(tài),此時(shí),雙方已建立起了連接。
確認(rèn)報(bào)文段ACK=1,確認(rèn)號(hào) ack=y+1,序號(hào) seq=x+1(初始為 seq=x,第二個(gè)報(bào)文段所以要+1),ACK報(bào)文段可以攜帶數(shù)據(jù),不攜帶數(shù)據(jù)則不消耗序號(hào)。
四次揮手 (Four-way handshake)
建立一個(gè)連接需要三次握手,而終止一個(gè)連接要經(jīng)過四次揮手(也有將四次揮手叫做四次握手的)。這由TCP的半關(guān)閉(half-close)造成的。所謂的半關(guān)閉,其實(shí)就是TCP提供了連接的一端在結(jié)束它的發(fā)送后還能接收來自另一端數(shù)據(jù)的能力。
TCP 連接的拆除需要發(fā)送四個(gè)包,因此稱為四次揮手 (Four-way handshake),客戶端或服務(wù)端均可主動(dòng)發(fā)起揮手動(dòng)作。
剛開始雙方都處于ESTABLISHED 狀態(tài),假如是客戶端先發(fā)起關(guān)閉請(qǐng)求。
四次揮手的過程如下:
第一次揮手
:客戶端發(fā)送一個(gè) FIN 報(bào)文,報(bào)文中會(huì)指定一個(gè)序列號(hào)。此時(shí)客戶端處于 FIN_WAIT1 狀態(tài)。
即發(fā)出連接釋放報(bào)文段(FIN=1,序號(hào)seq=u),并停止再發(fā)送數(shù)據(jù),主動(dòng)關(guān)閉TCP連接,進(jìn)入FIN_WAIT1(終止等待1)狀態(tài),等待服務(wù)端的確認(rèn)。
第二次揮手
:服務(wù)端收到 FIN 之后,會(huì)發(fā)送 ACK 報(bào)文,且把客戶端的序列號(hào)值 +1 作為 ACK 報(bào)文的序列號(hào)值,表明已經(jīng)收到客戶端的報(bào)文了,此時(shí)服務(wù)端處于 CLOSE_WAIT 狀態(tài)。
即服務(wù)端收到連接釋放報(bào)文段后即發(fā)出確認(rèn)報(bào)文段(ACK=1,確認(rèn)號(hào)ack=u+1,序號(hào)seq=v),服務(wù)端進(jìn)入CLOSE_WAIT(關(guān)閉等待)狀態(tài),此時(shí)的TCP處于半關(guān)閉狀態(tài),客戶端到服務(wù)端的連接釋放??蛻舳耸盏椒?wù)端的確認(rèn)后,進(jìn)入FIN_WAIT2(終止等待2)狀態(tài),等待服務(wù)端發(fā)出的連接釋放報(bào)文段。
第三次揮手
:如果服務(wù)端也想斷開連接了,和客戶端的第一次揮手一樣,發(fā)給 FIN 報(bào)文,且指定一個(gè)序列號(hào)。此時(shí)服務(wù)端處于 LAST_ACK 的狀態(tài)。
即服務(wù)端沒有要向客戶端發(fā)出的數(shù)據(jù),服務(wù)端發(fā)出連接釋放報(bào)文段(FIN=1,ACK=1,序號(hào)seq=w,確認(rèn)號(hào)ack=u+1),服務(wù)端進(jìn)入LAST_ACK(最后確認(rèn))狀態(tài),等待客戶端的確認(rèn)。
第四次揮手
:客戶端收到 FIN 之后,一樣發(fā)送一個(gè) ACK 報(bào)文作為應(yīng)答,且把服務(wù)端的序列號(hào)值 +1 作為自己 ACK 報(bào)文的序列號(hào)值,此時(shí)客戶端處于 TIME_WAIT 狀態(tài)。需要過一陣子以確保服務(wù)端收到自己的 ACK 報(bào)文之后才會(huì)進(jìn)入 CLOSED 狀態(tài),服務(wù)端收到 ACK 報(bào)文之后,就處于關(guān)閉連接了,處于 CLOSED 狀態(tài)。
即客戶端收到服務(wù)端的連接釋放報(bào)文段后,對(duì)此發(fā)出確認(rèn)報(bào)文段(ACK=1,seq=u+1,ack=w+1),客戶端進(jìn)入TIME_WAIT(時(shí)間等待)狀態(tài)。此時(shí)TCP未釋放掉,需要經(jīng)過時(shí)間等待計(jì)時(shí)器設(shè)置的時(shí)間2MSL后,客戶端才進(jìn)入CLOSED狀態(tài)。
TCP 擁塞控制
TCP 傳輸?shù)倪^程中,發(fā)送端開始發(fā)送數(shù)據(jù)的時(shí)候,如果剛開始就發(fā)送大量的數(shù)據(jù),那么就可能造成一些問題。網(wǎng)絡(luò)可能在開始的時(shí)候就很擁堵,如果給網(wǎng)絡(luò)中在扔出大量數(shù)據(jù),那么這個(gè)擁堵就會(huì)加劇。擁堵的加劇就會(huì)產(chǎn)生大量的丟包,就對(duì)大量的超時(shí)重傳,嚴(yán)重影響傳輸。
所以 TCP 引入了慢啟動(dòng)的機(jī)制,在開始發(fā)送數(shù)據(jù)時(shí),先發(fā)送少量的數(shù)據(jù)探路。探清當(dāng)前的網(wǎng)絡(luò)狀態(tài)如何,再?zèng)Q定多大的速度進(jìn)行傳輸。這時(shí)候就引入一個(gè)叫做擁塞窗口的概念。發(fā)送剛開始定義擁塞窗口為 1,每次收到 ACK 應(yīng)答,擁塞窗口加 1。在發(fā)送數(shù)據(jù)之前,首先將擁塞窗口與接收端反饋的窗口大小比對(duì),取較小的值作為實(shí)際發(fā)送的窗口。
擁塞窗口的增長是指數(shù)級(jí)別的。慢啟動(dòng)的機(jī)制只是說明在開始的時(shí)候發(fā)送的少,發(fā)送的慢,但是增長的速度是非??斓?。為了控制擁塞窗口的增長,不能使擁塞窗口單純的加倍,設(shè)置一個(gè)擁塞窗口的閾值,當(dāng)擁塞窗口大小超過閾值時(shí),不能再按照指數(shù)來增長,而是線性的增長。在慢啟動(dòng)開始的時(shí)候,慢啟動(dòng)的閾值等于窗口的最大值,一旦造成網(wǎng)絡(luò)擁塞,發(fā)生超時(shí)重傳時(shí),慢啟動(dòng)的閾值會(huì)為原來的一半(這里的原來指的是發(fā)生網(wǎng)絡(luò)擁塞時(shí)擁塞窗口的大小),同時(shí)擁塞窗口重置為 1。
當(dāng)輸入的負(fù)載到達(dá)一定程度,吞吐量不會(huì)增加,即一部分網(wǎng)絡(luò)資源會(huì)丟失掉,網(wǎng)絡(luò)的吞吐量維持在其所能控制的最大值,轉(zhuǎn)發(fā)節(jié)點(diǎn)的緩存不夠大這造成分組的丟失是擁塞的征兆。
TCP的四種擁塞控制算法:1.慢啟動(dòng) 2.擁塞控制 3.快重傳 4.快恢復(fù)
快重傳、快恢復(fù)
“快重傳” ,就是讓發(fā)送方盡快重傳丟失報(bào)文段,而不是等待超時(shí)重傳計(jì)時(shí)器超時(shí)后再重傳。
“快恢復(fù)” 主要步驟:
-
當(dāng)收到 3 個(gè)重復(fù) ACK 時(shí),把 ssthresh 設(shè)置為 cwnd 的一半,把 cwnd 設(shè)置為 ssthresh 的值加 3,然后重傳丟失的報(bào)文段,加3的原因是因?yàn)槭盏?3 個(gè)重復(fù)的ACK,表明有 3 個(gè)“老”的數(shù)據(jù)包離開了網(wǎng)絡(luò)。
-
再收到重復(fù)的 ACK 時(shí),擁塞窗口增加 1。
-
當(dāng)收到新的數(shù)據(jù)包的 ACK 時(shí),把 cwnd 設(shè)置為第一步中的 ssthresh 的值。原因是因?yàn)樵?ACK 確認(rèn)了新的數(shù)據(jù),說明從重復(fù) ACK 時(shí)的數(shù)據(jù)都已收到,該恢復(fù)過程已經(jīng)結(jié)束,可以回到恢復(fù)之前的狀態(tài)了,也即再次進(jìn)入擁塞避免狀態(tài)。
TCP擁塞控制流程圖
網(wǎng)絡(luò)應(yīng)用模型
HTTP協(xié)議(Hyper Text Transfer Protocol,超文本傳輸協(xié)議)
是一種最基本的客戶機(jī)/服務(wù)器的訪問協(xié)議。瀏覽器向服務(wù)器發(fā)送請(qǐng)求,而服務(wù)器回應(yīng)相應(yīng)的網(wǎng)頁,用于從萬維網(wǎng)(WWW:World Wide Web )服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。
FTP協(xié)議(File Transfer Protocol,文件傳輸協(xié)議)
基于客戶服務(wù)器模式,F(xiàn)TP協(xié)議包括兩個(gè)組成部分,其一為FTP服務(wù)器,其二為FTP客戶端,提供交互式的訪問 面向連接 ,使用TCP/IP可靠的運(yùn)輸服務(wù),主要功能:減少/消除不同操作系統(tǒng)下文件的不兼容性。
SMTP 協(xié)議(簡(jiǎn)單郵件傳送協(xié)議,用戶發(fā)信到郵件網(wǎng)關(guān)的傳輸協(xié)議)
面向連接 的Client/Server模式,基本功能:寫信、傳送、報(bào)告?zhèn)魉颓闆r、顯示信件、接收方處理信件。
DNS協(xié)議(域名解析協(xié)議)
DNS是一種用以將域名轉(zhuǎn)換為IP地址的Internet服務(wù)。
MQ協(xié)議(消息隊(duì)列)
消息從發(fā)送者到接收者的方式也有兩種:
一種我們可以稱為即時(shí)消息通訊,也就是說消息從一端發(fā)出后(消息發(fā)送者)立即就可以達(dá)到另一端(消息接收者),這種方式的具體實(shí)現(xiàn)就是我們已經(jīng)介紹過的RPC(當(dāng)然單純的http通訊也滿足這個(gè)定義)
另一種方式稱為延遲消息通訊,即消息從某一端發(fā)出后,首先進(jìn)入一個(gè)容器進(jìn)行臨時(shí)存儲(chǔ),當(dāng)達(dá)到某種條件后,再由這個(gè)容器發(fā)送給另一端。 這個(gè)容器的一種具體實(shí)現(xiàn)就是消息隊(duì)列。
JDBC協(xié)議(Java語言)
利用Tcp/Ip協(xié)議,是應(yīng)用層的協(xié)議,和FTP,HTTP同一個(gè)級(jí)別。DBC(Java DataBase Connectivity, java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。
DNS 域名解析系統(tǒng)
DNS使用的名稱集合就叫命名空間,與計(jì)算計(jì)文件夾和文件系統(tǒng)類似,都是劃分為層次且大小寫不敏感,類似于樹狀結(jié)構(gòu)。
當(dāng)一個(gè)用戶在地址欄輸入www.taobao.com時(shí),DNS解析有大致十個(gè)過程:
-
瀏覽器先檢查自身緩存中有沒有被解析過的這個(gè)域名對(duì)應(yīng)的 ip 地址,如果有,解析結(jié)束。同時(shí)域名被緩存的時(shí)間也可通過TTL屬性來設(shè)置。
-
如果瀏覽器緩存中沒有(專業(yè)點(diǎn)叫還沒命中),瀏覽器會(huì)檢查操作系統(tǒng)緩存中有沒有對(duì)應(yīng)的已解析過的結(jié)果。而操作系統(tǒng)也有一個(gè)域名解析的過程。在 windows 中可通過 c 盤里一個(gè)叫hosts的文件來設(shè)置,如果你在這里指定了一個(gè)域名對(duì)應(yīng)的 ip 地址,那瀏覽器會(huì)首先使用這個(gè) ip 地址。
但是這種操作系統(tǒng)級(jí)別的域名解析規(guī)程也被很多黑客利用,通過修改你的 hosts 文件里的內(nèi)容把特定的域名解析到他指定的 ip 地址上,造成所謂的域名劫持。所以在 windows 7 中將 hosts 文件設(shè)置成了 readonly,防止被惡意篡改。
-
如果至此還沒有命中域名,才會(huì)真正的請(qǐng)求本地域名服務(wù)器(LDNS)來解析這個(gè)域名,這臺(tái)服務(wù)器一般在你的城市的某個(gè)角落,距離你不會(huì)很遠(yuǎn),并且這臺(tái)服務(wù)器的性能都很好,一般都會(huì)緩存域名解析結(jié)果,大約 80% 的域名解析到這里就完成了。
-
如果LDNS仍然沒有命中,就直接跳到 Root Server 域名服務(wù)器請(qǐng)求解析。
-
根域名服務(wù)器返回給 LDNS 一個(gè)所查詢域的主域名服務(wù)器(gTLD Server,國際頂尖域名服務(wù)器,如.com .cn .org等)地址。
-
此時(shí) LDNS 再發(fā)送請(qǐng)求給上一步返回的 gTLD。
-
接受請(qǐng)求的 gTLD 查找并返回這個(gè)域名對(duì)應(yīng)的 Name Server 的地址,這 個(gè)Name Server 就是網(wǎng)站注冊(cè)的域名服務(wù)器。
-
Name Server根據(jù)映射關(guān)系表找到目標(biāo) ip,返回給 LDNS 本地域名服務(wù)器。
-
LDNS 緩存這個(gè)域名和對(duì)應(yīng)的 ip 地址。
-
LDNS 把解析的結(jié)果返回給用戶,用戶根據(jù) TTL 值緩存到本地系統(tǒng)緩存中,域名解析過程至此結(jié)束。
FTP 文件傳輸協(xié)議
FTP工作在TCP/IP模型的應(yīng)用層,基于的傳輸協(xié)議是TCP,F(xiàn)TP客戶端和服務(wù)器之間的連接是可靠的,面向連接的,為數(shù)據(jù)的傳輸提供了可靠的保證。
FTP的主要特征:
-
控制連接是建立在客戶協(xié)議解釋器和服務(wù)器協(xié)議解釋器之間用于交換命令與應(yīng)答的通信鏈路。
-
數(shù)據(jù)連接是傳輸數(shù)據(jù)的全雙工連接。傳輸數(shù)據(jù)可以發(fā)生在服務(wù)器數(shù)據(jù)傳輸過程DTP和客戶DTP之間,也可以發(fā)生在兩個(gè)服務(wù)器的DTP之間。
文件類型:
-
ASCII碼文件類型(默認(rèn)選擇),以NVT ASCII碼形式通過數(shù)據(jù)連接傳輸。
-
EBCDIC文件類型,該文本文件傳輸方式要求兩端都是EBCDIC系統(tǒng)。
-
圖像文件類型(也成為二進(jìn)制文件類型),數(shù)據(jù)發(fā)送形式呈現(xiàn)為一個(gè)連續(xù)的比特流。
數(shù)據(jù)結(jié)構(gòu):
-
文件結(jié)構(gòu)(File Structure)字節(jié)流,無結(jié)構(gòu)。
-
記錄結(jié)構(gòu)(Record Structure)文件被劃分為記錄,用于文本文件。
-
頁結(jié)構(gòu)(Page Structure)文件被劃分為頁,每頁有頁號(hào)和頁頭??梢赃M(jìn)行隨機(jī)存取或順序存取。
SMTP 郵件傳輸協(xié)議
SMTP 是電子郵件傳輸?shù)膮f(xié)議。SMTP 是建立在FTP文件傳輸服務(wù)上的一種郵件服務(wù),主要用于系統(tǒng)之間的郵件信息傳遞,并提供有關(guān)來信的通知。SMTP協(xié)議屬于TCP/IP協(xié)議族,它幫助每臺(tái)計(jì)算機(jī)在發(fā)送或中轉(zhuǎn)信件時(shí)找到下一個(gè)目的地。
SMTP服務(wù)器是遵循SMTP協(xié)議的郵件服務(wù)器,用來發(fā)送或中轉(zhuǎn)電子郵件。首先, 客戶端需要建立一個(gè)與SMTP服務(wù)器的TCP連接 , 端口一般為25 。在連接建立之后,客戶端和服務(wù)器先執(zhí)行一些應(yīng)用層的握手操作,讓SMTP服務(wù)器知道客戶端的信息,并且對(duì)客戶端需求做出響應(yīng)等。
在SMTP握手階段,客戶端向SMTP服務(wù)器分別指定發(fā)件人和收件人的電子郵件地址。握手階段完畢,SMTP服務(wù)器把客戶端發(fā)出的郵件消息添加到發(fā)信隊(duì)列中,通過TCP提供的可靠數(shù)據(jù)傳輸服務(wù)把該消息準(zhǔn)確地傳送到收件人的服務(wù)器。
連接和發(fā)送過程
(1)首先建立 TCP 連接。
(2)客戶端發(fā)送 HELO 命令以標(biāo)識(shí)發(fā)件人自己的身份,客戶端發(fā)送 MAIL 命令。服務(wù)器以 OK 作為響應(yīng),表明準(zhǔn)備接收。
(3)使用 AUTH 命令登錄 SMTP 服務(wù)器,輸入用戶名和密碼(注意,用戶名和密碼都需要 base64 加密)。
(4)客戶端發(fā)送 RCPT 命令,標(biāo)識(shí)該電子郵件的計(jì)劃接收人,可以有多個(gè) RCPT 行。服務(wù)器以 OK 作為響應(yīng),表示愿意為收件人發(fā)送郵件。
(5)協(xié)商結(jié)束后,使用 DATA 命令發(fā)送。
(6)以 . 號(hào)表示結(jié)束,輸入內(nèi)容一起發(fā)送出去,結(jié)束此次發(fā)送,用 QUIT 命令退出。
電子郵件系統(tǒng)組成
電子郵件系統(tǒng)應(yīng)具有三個(gè)主要組成構(gòu)件,用戶代理、郵件服務(wù)器、SMTP 和 POP3
萬維網(wǎng) 和 HTTP 協(xié)議
萬維網(wǎng) 概述
萬維網(wǎng)以 C/S 方式,即 客戶/服務(wù)器 的方式工作。其中,瀏覽器就是在用戶主機(jī)上的萬維網(wǎng)客戶程序。萬維網(wǎng)文檔(web文檔)所駐留的主機(jī)則運(yùn)行服務(wù)器程序,如IIS 、Apache、Nginx等。所以這個(gè)主機(jī)也叫作萬維網(wǎng)服務(wù)器或者Web服務(wù)器。
當(dāng)瀏覽器向web服務(wù)器發(fā)送出對(duì)某個(gè)Web文檔的請(qǐng)求時(shí),Web服務(wù)器返回瀏覽器請(qǐng)求的Web文檔,瀏覽器將該文檔在窗口中顯示出來。Web文檔呈現(xiàn)在瀏覽器窗口中的就是我們所說的網(wǎng)頁和頁面。
超文本傳輸協(xié)議 http
超文本傳輸協(xié)議(英文:HyperText Transfer Protocol,縮寫:HTTP)是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議。HTTP是萬維網(wǎng)的數(shù)據(jù)通信的基礎(chǔ)。
HTTP的發(fā)展是由蒂姆·伯納斯-李于1989年在歐洲核子研究組織(CERN)所發(fā)起。HTTP的標(biāo)準(zhǔn)制定由萬維網(wǎng)協(xié)會(huì)(World Wide Web Consortium,W3C)和互聯(lián)網(wǎng)工程任務(wù)組(Internet Engineering Task Force,IETF)進(jìn)行協(xié)調(diào),最終發(fā)布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定義了HTTP協(xié)議中現(xiàn)今廣泛使用的一個(gè)版本 HTTP 1.1。
HTTP協(xié)議概述
HTTP是一個(gè)客戶端終端(用戶)和服務(wù)器端(網(wǎng)站)請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)(TCP)。通過使用網(wǎng)頁瀏覽器、網(wǎng)絡(luò)爬蟲或者其它的工具,客戶端發(fā)起一個(gè)HTTP請(qǐng)求到服務(wù)器上指定端口(默認(rèn)端口為80)。我們稱這個(gè)客戶端為用戶代理程序(user agent)。應(yīng)答的服務(wù)器上存儲(chǔ)著一些資源,比如HTML文件和圖像。我們稱這個(gè)應(yīng)答服務(wù)器為源服務(wù)器(origin server)。在用戶代理和源服務(wù)器中間可能存在多個(gè)“中間層”,比如代理服務(wù)器、網(wǎng)關(guān)或者隧道(tunnel)。
HTTP 請(qǐng)求 / 響應(yīng) 過程
客戶端連接到Web服務(wù)
:一個(gè)HTTP客戶端,通常是瀏覽器,與Web服務(wù)器的HTTP端口(默認(rèn)為80)建立一個(gè)TCP套接字連接。當(dāng)然也有附帶簽名的 https,例如,https://www.baidu.com。
發(fā)送HTTP請(qǐng)求
:通過TCP套接字,客戶端向Web服務(wù)器發(fā)送一個(gè)文本的請(qǐng)求報(bào)文,一個(gè)請(qǐng)求報(bào)文由請(qǐng)求行、請(qǐng)求頭部、空行和請(qǐng)求數(shù)據(jù)4部分組成。
服務(wù)器接受請(qǐng)求并返回HTTP響應(yīng)
:Web服務(wù)器解析請(qǐng)求,定位請(qǐng)求資源。服務(wù)器將資源復(fù)本寫到TCP套接字,由客戶端讀取。一個(gè)響應(yīng)由狀態(tài)行、響應(yīng)頭部、空行和響應(yīng)數(shù)據(jù)4部分組成。
釋放連接TCP連接
:若connection 模式為close,則服務(wù)器主動(dòng)關(guān)閉TCP連接,客戶端被動(dòng)關(guān)閉連接,釋放TCP連接;若connection 模式為keepalive,則該連接會(huì)保持一段時(shí)間,在該時(shí)間內(nèi)可以繼續(xù)接收請(qǐng)求。
客戶端瀏覽器解析HTML內(nèi)容
:客戶端瀏覽器首先解析狀態(tài)行,查看表明請(qǐng)求是否成功的狀態(tài)代碼。然后解析每一個(gè)響應(yīng)頭,響應(yīng)頭告知以下為若干字節(jié)的HTML文檔和文檔的字符集。客戶端瀏覽器讀取響應(yīng)數(shù)據(jù)HTML,根據(jù)HTML的語法對(duì)其進(jìn)行格式化,并在瀏覽器窗口中顯示。文章來源:http://www.zghlxwxcb.cn/news/detail-408172.html
問題:在瀏覽器地址欄鍵入U(xiǎn)RL,按下回車之后會(huì)經(jīng)歷的流程?文章來源地址http://www.zghlxwxcb.cn/news/detail-408172.html
1. 瀏覽器向 DNS 服務(wù)器請(qǐng)求解析該 URL 中的域名所對(duì)應(yīng)的 IP 地址;
2. 解析出 IP 地址后,根據(jù)該 IP 地址和默認(rèn)端口 80,和服務(wù)器建立TCP連接;
3. 瀏覽器發(fā)出讀取文件(URL 中域名后面部分對(duì)應(yīng)的文件)的HTTP 請(qǐng)求,該請(qǐng)求報(bào)文作為 TCP 三次握手的第三個(gè)報(bào)文的數(shù)據(jù)發(fā)送給服務(wù)器;
4. 服務(wù)器對(duì)瀏覽器請(qǐng)求作出響應(yīng),并把對(duì)應(yīng)的 html 文本發(fā)送給瀏覽器;
5. 釋放 TCP連接;
6. 瀏覽器將該 html 文本并顯示內(nèi)容;
到了這里,關(guān)于爆干3天整理出來,408考研計(jì)算機(jī)網(wǎng)絡(luò)復(fù)習(xí)筆記(更新中)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!