【筆記】謝希仁—計網(wǎng)五版:chapter three 數(shù)據(jù)鏈路層(一)

數(shù)據(jù)鏈路層使用的信道有以下兩種類型:

①點對點信道,一對一的點對點通信方式

②廣播信道,一對多的廣播通信方式,復(fù)雜。廣播信道上連接的主機(jī)多,因此必須使用共享協(xié)議來協(xié)調(diào)這些主機(jī)的數(shù)據(jù)發(fā)送。

本文先介紹點對點信道和在這種信道上常用的點對點協(xié)議PPP。然后討論共享信道的局域網(wǎng)和有關(guān)協(xié)議。

我們可以想象數(shù)據(jù)是在數(shù)據(jù)鏈路層從左向右沿水平方向傳送:

圖片發(fā)自簡書App


圖片發(fā)自簡書App

每段鏈路層可能采用不同的數(shù)據(jù)鏈路層協(xié)議。

一、使用點對點信道的數(shù)據(jù)鏈路層

1.數(shù)據(jù)鏈路和幀

鏈路和數(shù)據(jù)鏈路不是一回事。

鏈路(link):是從一個結(jié)點到相鄰結(jié)點的一段物理線路,而中間沒有任何其他的交換結(jié)點。通信時,要有很多這樣的鏈路,所以鏈路只是一條路徑的組成部分。(物理鏈路

數(shù)據(jù)鏈路(data link):指在物理線路上添加上控制數(shù)據(jù)傳輸?shù)膮f(xié)議的硬件和軟件。(邏輯鏈路

早期的數(shù)據(jù)通信協(xié)議也叫做規(guī)程(procedure),因此在數(shù)據(jù)鏈路層,規(guī)程和協(xié)議是同義語。

:點對點信道的數(shù)據(jù)鏈路層的協(xié)議單元。數(shù)據(jù)鏈路層把網(wǎng)絡(luò)層交下來的數(shù)據(jù)構(gòu)成幀發(fā)送到鏈路上,以及把接受到的幀中的數(shù)據(jù)取出來并交給網(wǎng)絡(luò)層。在因特網(wǎng)中,網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元就是IP數(shù)據(jù)報(或簡稱為數(shù)據(jù)報、分組、包)。

圖片發(fā)自簡書App

點對點通信步驟:①結(jié)點A的數(shù)據(jù)鏈路層把網(wǎng)絡(luò)層交下來的IP數(shù)據(jù)報添加首部和尾部封裝成幀。②結(jié)點A把封裝好的幀發(fā)送給結(jié)點B的數(shù)據(jù)鏈路層。③結(jié)點B的數(shù)據(jù)鏈路層收到的幀無差錯,則從收到的幀中取出IP數(shù)據(jù)報上交給上面的網(wǎng)絡(luò)層,否則丟棄這個幀。

數(shù)據(jù)鏈路層不必考慮物理層如何實現(xiàn)比特傳輸?shù)募?xì)節(jié),甚至可以更簡單地設(shè)想好像是沿著兩個數(shù)據(jù)鏈路層的水平方向把幀直接發(fā)送到對方。

2.三個基本問題

①封裝成幀(framing)

在一段數(shù)據(jù)的前后分別添加首部和尾部,然后就構(gòu)成了一個幀,進(jìn)行幀定界

發(fā)送幀時,是從幀首部開始發(fā)送。各種數(shù)據(jù)鏈路層協(xié)議都要對幀首部和幀尾部的格式有明確規(guī)定。為提高幀的傳輸效率,幀的數(shù)據(jù)部分長度應(yīng)該盡可能大于首部和尾部的長度。但每一種數(shù)據(jù)鏈路層協(xié)議規(guī)定了幀的數(shù)據(jù)部分的長度上限——最大傳送單元MTU(maximum transfer unit)。

另外:當(dāng)數(shù)據(jù)是由可打印的ASC2碼組成的文本文件時,幀定界可以使用特殊的幀定界符。ASC2碼是7位編碼,一共可組成128個不同的ASC2碼,可打印的有95個,不可打印的有33個。

SOH:start of header,十六進(jìn)制編碼是01。

EOT:end of transmission,十六進(jìn)制編碼是04。

幀界定符的作用:差錯控制。假定發(fā)送端在尚未發(fā)送完一個幀時突然出故障,中斷了發(fā)送。但隨后很快又恢復(fù)正常,于是重新從頭開始發(fā)送剛才未發(fā)送完的幀。由于使用了幀定界符,在接收端就知道前面收到的數(shù)據(jù)是個不完整的幀(只有首部開始符SOH而沒有傳輸結(jié)束符EOT),必須丟棄。而后面收到的數(shù)據(jù)有明確的幀定界符(SOH和EOT),因此這是一個完整的幀,應(yīng)當(dāng)收下。

②透明傳輸

如果所傳輸?shù)臄?shù)據(jù)中的任何8比特的組合和用作幀定界的控制字符的比特編碼一樣,就會出現(xiàn)幀定界的錯誤。

當(dāng)傳送的幀是用文本文件組成時,其數(shù)據(jù)部分不會出現(xiàn)像SOH或EOT這樣的幀定界控制字符。不管什么字符都可以放在這樣的幀中傳輸過去,因此這樣的傳輸是透明傳輸。

當(dāng)傳送的幀是由非ASC2碼的文本文件時,情況不同。數(shù)據(jù)鏈路層會錯誤地找到幀的邊界,把部分幀收下(誤認(rèn)為是完整的幀),剩下地部分找不到SOH而被丟棄。

解決透明傳輸問題:

發(fā)送端的數(shù)據(jù)鏈路層在數(shù)據(jù)中出現(xiàn)控制字符"SOH"或"EOT"的前面插入一個轉(zhuǎn)義字符"ESC"(其十六進(jìn)制編碼是 1B)。

字節(jié)填充(byte stuffing)或字符填充(character stuffing):接收端的數(shù)據(jù)鏈路層在將數(shù)據(jù)送往網(wǎng)絡(luò)層之前刪除插入的轉(zhuǎn)義字符。

如果轉(zhuǎn)義字符也出現(xiàn)數(shù)據(jù)當(dāng)中,那么應(yīng)在轉(zhuǎn)義字符前面插入一個轉(zhuǎn)義字符。當(dāng)接收端收到連續(xù)的兩個轉(zhuǎn)義字符時,就刪除其中前面的一個。

③錯檢測

比特差錯:比特在傳輸過程中,1變成0,0變成1。

誤碼率BER(bit error rate):在一段時間內(nèi),傳輸錯誤的比特占所傳輸比特總數(shù)的比率。和信噪比有關(guān),提高信噪比可使誤碼率減小。

通信鏈路并非理想,所以有了差錯檢測措施。

循環(huán)冗余檢驗CRC(cyclic redundancy check)

在發(fā)送端,先把數(shù)據(jù)劃分為祖,假定每組K個比特?,F(xiàn)假定待傳送的數(shù)據(jù)M = 101001(k=6)。然后CRC運算需要把待傳的數(shù)據(jù)的末尾加上用于檢測的n位冗余碼,可以簡單的理解為在數(shù)據(jù)后面加上n個0,一共發(fā)送(k+n)位。

假設(shè)n=3,這樣循環(huán)冗余檢驗的被除數(shù)101001000就得到了。除數(shù)是通信雙方商定好的,現(xiàn)在一般使用的方式是用多項式來表示除數(shù),比如P(x)=x^3+x^2+1(生成多項式),就得到除數(shù)P=1101?,F(xiàn)在就可以開始進(jìn)行檢驗了,注意除數(shù)P的位數(shù)等于n+1。運算的方法和除法類似,只是相減變成了異或而已。經(jīng)過運算,得到了余數(shù)為001,它被稱為幀檢驗序列FCS。

截至現(xiàn)在做的一切的運算,都只是在發(fā)送端進(jìn)行的。為了檢驗幀是否無比特差錯接收了,是在接收端檢驗的。計算出的幀檢驗序列FCS會附加在幀的尾部一起發(fā)送。

檢測:

在接收端把收到的數(shù)據(jù)以幀為單位進(jìn)行CRC檢測:接收端接收到后,會把FCS取出,添加到數(shù)據(jù)部分的末尾,得到除數(shù)101001001,再次和除數(shù)P=1101相除,如果得到的余數(shù)等于0,那么就證明此次傳輸時無比特傳輸?shù)?。如果余?shù)不等于0,那就證明這個幀有差錯。

此段參考Ukey_的博文《數(shù)據(jù)鏈路層-循環(huán)冗余檢驗》


注意:

1、循環(huán)冗余檢驗CRC和幀檢驗序列FCS不是同一個概念。CRC是一種檢測方法,而FCS是添加在數(shù)據(jù)后面的冗余碼,在檢錯方法上可以選用也可以不選用CRC。

2、發(fā)送端幀檢測序列FCS的生成和接收端的CRC檢驗是用硬件完成的,處理迅速,因此不會延誤數(shù)據(jù)的傳輸。

3、如果在傳送數(shù)據(jù)時不以幀為單位來傳送,那么接無法加入冗余碼以進(jìn)行差錯檢驗。因此,必須把數(shù)據(jù)劃分為幀,每一幀都加上冗余碼,一幀接一幀地傳送,然后在接收方逐幀進(jìn)行差錯檢驗。

4、在數(shù)據(jù)鏈路層如果只是使用循環(huán)冗余檢驗CRC差錯檢測技術(shù),則只能做到對幀的無差錯接受。即:凡是接收端數(shù)據(jù)鏈路層接受的幀,我們都近乎人為這些幀在傳輸過程中沒有產(chǎn)生差錯。接收端丟棄的幀雖然曾收到了,但最終還是因為有差錯被丟棄,即沒有被接受。近似表述為:凡是接收端數(shù)據(jù)鏈路層接受的幀均無差錯。能實現(xiàn)無比特差錯的傳輸,但還不是可靠傳輸。

5、可靠傳輸指:數(shù)據(jù)鏈路層的發(fā)送端發(fā)送什么,在接收端就收到什么。傳輸差錯分為:比特差錯、幀丟失、幀重復(fù)、幀失序。

6、OSI觀點是必須把數(shù)據(jù)鏈路層做成可靠傳輸。于是有了幀編號、確認(rèn)和重傳機(jī)制,但是因特網(wǎng)廣泛使用的數(shù)據(jù)鏈路層協(xié)議都不使用確認(rèn)和重傳機(jī)制,即不要求數(shù)據(jù)鏈路層向上提供可靠傳輸?shù)姆?wù)(代價高,不合算)。如果數(shù)據(jù)鏈路層出現(xiàn)了差錯則必須改正,這任務(wù)由上層協(xié)議(如運輸層的TCP協(xié)議來完成)。這樣提高了通信效率。

二、點對點協(xié)議PPP

通信線路質(zhì)量較差時,在數(shù)據(jù)鏈路層使用可靠傳輸協(xié)議很好,因此能實現(xiàn)可靠傳輸?shù)母呒墧?shù)據(jù)鏈路控制HDLC(high-level data link control)就成為當(dāng)時比較流行的數(shù)據(jù)鏈路層協(xié)議?,F(xiàn)在卻很少用了,用的多的是PPP(point to point protocol)數(shù)據(jù)鏈路層協(xié)議。

1.PPP協(xié)議的特點

是用戶計算機(jī)和ISP進(jìn)行通信時所使用的數(shù)據(jù)鏈路層協(xié)議。

Ⅰ.需滿足

(1)簡單

更復(fù)雜的是TCP協(xié)議,IP協(xié)議相對簡單(提供不可靠的數(shù)據(jù)包服務(wù)),這樣數(shù)據(jù)鏈路層沒有必要提供比IP協(xié)議更多的功能,它不需要糾錯、序號、流量控制。當(dāng)然誤碼率較高的無線線路上需要更復(fù)雜的鏈路層協(xié)議。而且簡單的協(xié)議使得不同廠商對協(xié)議的不同實現(xiàn)的互操性提高了。

接收方每收到一個幀,就進(jìn)行CRC檢驗。檢驗正確,就收下這個幀。不正確,就丟棄,其他什么也不做

(2)封裝成幀

PPP協(xié)議必須規(guī)定特殊的字符作為幀定界符(即標(biāo)志一個幀的開始和結(jié)束的字符),以便接收端能夠準(zhǔn)確地找出幀的開始和結(jié)束位置。

(3)透明性

數(shù)據(jù)中碰巧出現(xiàn)了和幀定界符一樣的比特組合時,要采取有效的措施來解決這個問題。

(4)多種網(wǎng)絡(luò)層協(xié)議

PPP協(xié)議必須能夠在同一條物理連路上同時支持多種網(wǎng)絡(luò)層協(xié)議(如IP和IPX等)的路由器運行。當(dāng)點對點鏈路所連接的是局域網(wǎng)或時,PPP協(xié)議必須同時支持在鏈路所連接的局域網(wǎng)或路由器上運行的各種網(wǎng)絡(luò)層協(xié)議。

(5)多種類型鏈路

PPP協(xié)議不僅要支持多種網(wǎng)絡(luò)層協(xié)議,還要在多種類型的鏈路上運行。例如,串行的或并行的、同步的或異步的、低速的或高速的等。

(6)差錯檢測(error detection)

PPP協(xié)議必須能夠?qū)邮斩耸盏降膸M(jìn)行檢測,并立即丟掉有差錯的幀。若沒有及時丟掉,則會浪費很多網(wǎng)路資源。

(7)檢測連接狀態(tài)

PPP協(xié)議必須具有一種機(jī)制能夠及時(不超過幾分鐘)自動檢測出鏈路是否處于正常工作狀態(tài)。當(dāng)出現(xiàn)故障的鏈路隔了一段時間后又重新恢復(fù)正常工作時,就特別需要有這種及時檢測功能。

(8)最大傳送單元

每一種類型的點對點鏈路需要。這樣可促進(jìn)各種實現(xiàn)之間的互操作性。如果高層協(xié)議發(fā)送的分組過長并超過MTU的數(shù)值,PPP就丟棄這種幀,并返回差錯。強(qiáng)調(diào):MTU是數(shù)據(jù)鏈路層的幀可以載荷的數(shù)據(jù)部分的最大長度,而不是幀的總長度。

(9)網(wǎng)絡(luò)層地址協(xié)商

PPP協(xié)議必須提供一種機(jī)制使通信的兩個網(wǎng)絡(luò)層(例如兩個IP層)的實體能夠通過協(xié)商知道或能夠配置彼此的網(wǎng)絡(luò)層地址。這樣能保證網(wǎng)絡(luò)層能夠傳送分組。

(10)數(shù)據(jù)壓縮協(xié)商

PPP協(xié)議必須提供一種方法來協(xié)商使用數(shù)據(jù)壓縮算法。但PPP協(xié)議并不要求將數(shù)據(jù)壓縮算法進(jìn)行標(biāo)準(zhǔn)化。

Ⅱ.PPP協(xié)議不需要的功能

(1)糾錯:在TCP/IP協(xié)議族中,可靠傳輸由運輸層TCP協(xié)議負(fù)責(zé),而數(shù)據(jù)鏈路層的PPP協(xié)議只進(jìn)行檢錯。這就是說,PPP協(xié)議是不可靠傳輸協(xié)議

(2)流量控制:在TCP/IP協(xié)議族中,端到端的流量控制由TCP負(fù)責(zé),因而鏈路級的PPP協(xié)議就不需要再重復(fù)進(jìn)行流量控制。

(3)序號: PPP不是可靠傳輸協(xié)議,因此不需要使用幀的序號(許多過去曾經(jīng)很流行的停止等待協(xié)議或連續(xù)ARQ協(xié)議都是用序號),端到端的流量控制由TCP負(fù)責(zé),因而鏈路級的PPP協(xié)議就不需要在重復(fù)進(jìn)行流量控制。

(4)多點線路:PPP協(xié)議不支持多線線路(即一個主站輪流和鏈路上的多個站進(jìn)行通信),而只支持點對點的鏈路通信。

(5)半雙工或單工鏈路 :PPP協(xié)議只支持全雙工鏈路。

Ⅲ.PPP協(xié)議的組成

(1)一個將IP數(shù)據(jù)報封裝到串行鏈路的方法。PPP既支持異步鏈路(無奇偶檢驗的8比特數(shù)據(jù)),也支持面向比特的同步鏈路。IP數(shù)據(jù)報在PPP幀中就是其信息部分。這個信息部分的長度受最大傳送單元MTU的限制。

(2)一個用來建立、配置和測試數(shù)據(jù)鏈路連接的鏈路控制協(xié)議LCP(link control protocol)。通信的雙方可協(xié)商一些選項。

(3)一套網(wǎng)絡(luò)控制協(xié)議NCP(network control protocol),其中的每一個協(xié)議支持不同的網(wǎng)絡(luò)協(xié)議層,如IP、OSI的網(wǎng)絡(luò)層等。

2.PPP協(xié)議的幀格式

Ⅰ.字段的意義

F—flag,標(biāo)志字段,表示一個幀的開始和結(jié)束,是幀的定界符。連續(xù)兩個幀之間只需用一個標(biāo)志字段,如果連續(xù)有兩個標(biāo)志字段則表示這是一個空幀,要丟棄。規(guī)定為0x7E。

A—address,地址字段規(guī)定為0xFF

C—control,控制字段,規(guī)定為0x03

A和C兩個字段實際上沒有攜帶PPP幀的控制信息。

協(xié)議字段—為0x0021時,PPP的信息字段就是IP數(shù)據(jù)報;為0xC021時,則是PPP鏈路控制協(xié)議LCP的數(shù)據(jù);為0x8021時,則是網(wǎng)絡(luò)層的控制數(shù)據(jù)。

FCS—使用CRC的幀檢測序列

Ⅱ.字節(jié)填充(異步傳輸)

信息字段中有和標(biāo)志字段一樣的比特組合時,就必須采取一些措施使這種形式上和標(biāo)志字段一樣的比特組合不出現(xiàn)在信息字段中。

當(dāng)PPP使用異步傳輸時,它把轉(zhuǎn)義符定義為0x7D,并使用字節(jié)填充,方法為:

(1)把信息字段中出現(xiàn)的每一個0x7E字節(jié)轉(zhuǎn)變?yōu)?字節(jié)序列(0x7D,0x5E)

(2)若信息字段中出現(xiàn)一個0x7D的字節(jié)(即出現(xiàn)了和轉(zhuǎn)義字符一樣的比特組合),則把0x7D轉(zhuǎn)變成為2字節(jié)序列(0x7D,0x5D)

(3)若信息字段中出現(xiàn)ASCII碼的控制字符(即數(shù)值小于0x20的字符),則在該字符前面要加入一個0x7D字節(jié),同時將該字符的編碼加以改變。例如,出現(xiàn)0x03(在控制字符是傳輸結(jié)束ETX)就要把它轉(zhuǎn)變?yōu)?字節(jié)序列(0x07D,0x31)

發(fā)送端進(jìn)行了字節(jié)填充,因此鏈路上傳送的信息字節(jié)數(shù)超過了原來的信息字節(jié)數(shù),但接收端在收到數(shù)據(jù)后再進(jìn)行與發(fā)送端字節(jié)填充相反的變換,就能正確恢復(fù)出原來的信息。

Ⅲ.零比特填充(同步傳輸)

PPP協(xié)議用在SONET/SDH鏈路時,是使用同步傳輸(一連串的比特連續(xù)傳送)而不是異步傳輸(逐個字符的傳送)。在這種情況下,PPP協(xié)議采用零比特填充方法來實現(xiàn)透明傳輸。

具體做法:

在發(fā)送端,掃描整個信息字段(硬件實現(xiàn)快,軟件慢),只要發(fā)現(xiàn)有5個連續(xù)1,立即填入0。這樣保證信息字段中不會出現(xiàn)6個連續(xù)1。

在接收端,先找到標(biāo)志字段F確定一個幀的邊界,再用硬件對比特掃描,發(fā)現(xiàn)5個連續(xù)1時,就把后面的一個0刪除,還原出原來的信息比特流。

保證了透明傳輸:在所傳送的數(shù)據(jù)比特流中可以傳送任意組合的比特流,而不會引起幀邊界的判斷錯誤。

3.PPP協(xié)議的工作狀態(tài)

上面我們通過PPP幀的格式討論了PPP幀是怎樣組成的。但PPP鏈路又是怎樣初始化的呢?當(dāng)用戶撥號接入ISP后,就建立了一條從用戶PC到ISP的物理鏈接。這時,用戶PC機(jī)向ISP發(fā)送一系列的LCP分組(封裝成多個PPP幀),以便建立LCP連接。這些分組及其響應(yīng)選擇了將要使用的一些PPP參數(shù)。接著還要進(jìn)行網(wǎng)絡(luò)層配置,NCP給新接入的用戶PC機(jī)分配一個臨時的IP地址。這樣,用戶PC機(jī)就成為因特網(wǎng)上的一個有IP地址的主機(jī)了。

用戶通信完畢時,NCP釋放網(wǎng)路層連接,收回原來分配出去的IP地址。接著,LCP釋放數(shù)據(jù)鏈路層連接。最后釋放的是物理層的連接。

PPP鏈路的初始和終止?fàn)顟B(tài)永遠(yuǎn)是圖中的鏈路靜止(link dead)狀態(tài),這時在用戶PC機(jī)和ISP的路由器之間并不存在物理層的連接。

當(dāng)用戶PC機(jī)通過調(diào)制解調(diào)器呼叫路由器時,路由器就能夠檢測到調(diào)制解掉器發(fā)出的載波信號。在雙方建立了物理層連接后,PPP就進(jìn)入鏈路建立(link establish)狀態(tài),其目的是建立鏈路層的LCP連接。

這時LCP開始協(xié)商一些配置選項,即發(fā)送LCP的配置請求幀。這是個PPP幀,其協(xié)議字段置為LCP對應(yīng)的代碼,而信息字段包含特定的配置請求。鏈路的另一端可以發(fā)送以下幾種相應(yīng)的一種:

(1)配置確認(rèn)幀:所有選項都接受

(2)配置否認(rèn)幀:所有選項都理解但不能接受

(3)配置拒絕幀:選項有的無法識別或不能接受,需要協(xié)商

LCP配置選項包括鏈路上的最大幀長,所使用的鑒別協(xié)議的規(guī)約(如果有的話),以及不使用PPP幀中的地址和控制字段(因為這兩個字段的值是固定的,沒有任何信息量,可以在PPP幀的首部中省略這兩個字節(jié))

協(xié)商結(jié)束后雙方就建立了LCP鏈路,接著就進(jìn)入鑒別狀態(tài),在這以狀態(tài),只允許傳送LCP協(xié)議的分組、鑒別協(xié)議的分組以及檢測鏈路質(zhì)量的分組。若使用口令鑒別協(xié)議PAP(password authentication protocol),則需要發(fā)起通信的一方發(fā)送身份標(biāo)識符和口令。系統(tǒng)可允許用戶重試若干次。如果需要有更好的安全性,則可使用更加復(fù)雜的口令握手鑒別協(xié)議CHAP(challenge-handshake protocol)。若鑒別身份失敗,則轉(zhuǎn)到鏈路終止狀態(tài)。若鑒別成功,則進(jìn)入網(wǎng)絡(luò)層協(xié)議狀態(tài)。

網(wǎng)絡(luò)層協(xié)議狀態(tài),PPP鏈路的兩端的網(wǎng)絡(luò)控制協(xié)議NCP根據(jù)網(wǎng)絡(luò)層的不同協(xié)議互相交換網(wǎng)絡(luò)層特定的網(wǎng)絡(luò)控制分組。這個步驟很重要的,因為現(xiàn)在的路由器都能夠同時支持多種的網(wǎng)絡(luò)層協(xié)議??傊?,PPP協(xié)議連奪冠的網(wǎng)絡(luò)層可以運行不同的網(wǎng)絡(luò)層協(xié)議,但仍然可使用同一個PPP協(xié)議進(jìn)行通信。

如果在PPP鏈路上運行的是IP協(xié)議,則對PPP鏈路的每一端配置IP協(xié)議模塊(如分配IP地址)時就要使用NCP中支持IP的協(xié)議——IP控制協(xié)議IPCP。IPCP分組也封裝成PPP幀(其中的協(xié)議字段為0x8201)在PPP鏈路上傳送。在低速鏈路上運行時,雙方還可以協(xié)商使用壓縮的TCP和IP首部,以減少在鏈路上發(fā)送的比特數(shù)。

當(dāng)網(wǎng)絡(luò)層配置完畢后,鏈路就進(jìn)入可進(jìn)行數(shù)據(jù)通信的鏈路打開狀態(tài)。鏈路的兩個PPP端點可以彼此向?qū)Ψ▏l(fā)送分組。兩個PPP端點還可以發(fā)送回送請求LCP分組回送回答LCP分組,以檢查鏈路的狀態(tài)。

數(shù)據(jù)傳輸結(jié)束后,可以由鏈路的一端發(fā)出終止請求LCP分組請求終止鏈路連接,在收到對方發(fā)來的終止確認(rèn)LCP分組后,轉(zhuǎn)到鏈路終止?fàn)顟B(tài)。如果鏈路出現(xiàn)故障,會從鏈路打開狀態(tài)轉(zhuǎn)到鏈路終止狀態(tài)。當(dāng)調(diào)制解調(diào)器的載波停止后,則回到鏈路靜止狀態(tài)。

圖的右邊方框給出了PPP協(xié)議的幾個狀態(tài)的說明,從設(shè)備之間的無鏈路開始,到先接力物理鏈路,在建立LCP鏈路。經(jīng)過鑒別后在建立NCP鏈路,然后才能交換數(shù)據(jù)。由此可見,PPP協(xié)議已不是純粹的數(shù)據(jù)鏈路層的協(xié)議,它還包含了物理層和網(wǎng)絡(luò)層的內(nèi)容。

三、使用廣播信道的數(shù)據(jù)鏈路層

1.局域網(wǎng)的數(shù)據(jù)鏈路層

局域網(wǎng)的優(yōu)點:

(1)有廣播功能,從一個站點可以很方便地訪問全網(wǎng)。局域網(wǎng)上的主機(jī)可共享連接在局域網(wǎng)上的各種硬件和軟件資源。

(2)便于系統(tǒng)的擴(kuò)展和逐漸地演變,各設(shè)備的位置可靈活調(diào)整和改變。

(3)提高了系統(tǒng)的可靠性、可用性和生存性。

局域網(wǎng)的工作層次跨越了數(shù)據(jù)鏈路層和物理層。由于局域網(wǎng)技術(shù)中有關(guān)數(shù)據(jù)鏈路層的內(nèi)容比較豐富,因此我們就把局域網(wǎng)的內(nèi)容放在數(shù)據(jù)鏈路層這一章中討論,但這并不表示局域網(wǎng)僅僅和數(shù)據(jù)鏈路層有關(guān)。

共享信道:使眾多用戶能夠合理而方便地共享通信媒體資源。有兩種方法:

1、靜態(tài)劃分信道:頻分復(fù)用、時分復(fù)用、波分復(fù)用、碼分復(fù)用,用戶分配到了信道就不會和其他用戶產(chǎn)生沖突,但代價高,不適合局域網(wǎng)使用。

2、動態(tài)媒體接入控制:又稱為多點接入(multiple access),信道并非在用戶通信時固定分配給用戶,分為隨機(jī)接入(用戶可隨機(jī)發(fā)送信息,但有多個用戶隨時發(fā)送信息,則會發(fā)生碰撞,因此要有解決碰撞的協(xié)議)和受控接入(用戶不能隨機(jī)發(fā)送信息而必須服從一定控制,典型代表有分散控制的令牌環(huán)局域網(wǎng)和集中控制的多點線路探尋,或稱為輪詢,用得少)。

Ⅰ.以太網(wǎng)的兩個標(biāo)準(zhǔn)

(1)DIX Ethernet V2

(2)IEEE 802.3

兩標(biāo)準(zhǔn)差距小,所以很多人把802.3的局域網(wǎng)簡稱為“以太網(wǎng)”,雖然嚴(yán)格說來,以太網(wǎng)應(yīng)是符合DIX Ethemet V2標(biāo)準(zhǔn)的局域網(wǎng)。

IEEE 802 委員會把局域網(wǎng)鏈路層拆成兩個子層

(1)邏輯鏈路控制 LLC (logical link control),它與傳輸媒體無關(guān),不管用何種傳輸媒體和MAC子層的局域網(wǎng)對LLC子層來說都是透明的。

(2)媒體接入控制MAC(medium access control),與接入到傳輸媒體相關(guān)的內(nèi)容都在這層。指傳輸信號所通過的多種物理環(huán)境。常用網(wǎng)絡(luò)介質(zhì)包括電纜(如:雙絞線,同軸電纜,光纖),還有微波、激光、紅外線等。

因特網(wǎng)發(fā)展很快導(dǎo)致TCP/IP體系經(jīng)常使用的局域網(wǎng)只剩下DIX Ethernet V2而不是IEEE 802.3標(biāo)準(zhǔn)中的局域網(wǎng),因此LLC的作用消失了。很多廠商生產(chǎn)的適配器上只有MAC協(xié)議而沒有LLC協(xié)議。所以這里不考慮LLC子層。

Ⅱ.適配器的作用

計算機(jī)是怎樣連接到局域網(wǎng)上的?

通過適配器(adapter),本是在主機(jī)箱內(nèi)插入的一塊網(wǎng)絡(luò)接口板(或在筆記本本電腦中插入一塊PCMCIA卡),又稱網(wǎng)絡(luò)接口卡NIC(network interface card),或網(wǎng)卡。適配器上裝有處理器和存儲器(包括RAM和ROM)。

適配器需要

(1)進(jìn)行數(shù)據(jù)串行傳輸和并行傳輸?shù)霓D(zhuǎn)換

因為適配器和局域網(wǎng)之間的通信時通過電纜或雙絞線以串行傳輸方式進(jìn)行的,而適配器和計算機(jī)之間的通信時通過計算機(jī)主板上的I/O總線以并行傳輸方式進(jìn)行的。

(2)裝有對數(shù)據(jù)進(jìn)行緩存的存儲芯片

因為網(wǎng)絡(luò)上的數(shù)據(jù)率和計算機(jī)總線上的數(shù)據(jù)率不相同

(3)能夠?qū)崿F(xiàn)以太網(wǎng)協(xié)議


若在主板上插入適配器,必須把管理該適配器的設(shè)備驅(qū)動程序安裝在計算機(jī)的操作系統(tǒng)中。這個驅(qū)動程序以后告訴適配器,應(yīng)從存儲器的什么位置把多長的數(shù)據(jù)塊發(fā)送到局域網(wǎng),或者應(yīng)該在存儲器上的什么位置把局域網(wǎng)傳送過來的數(shù)據(jù)塊存儲下來。

適配器接收和發(fā)送各種幀時不使用計算機(jī)的CPU?

這時CPU可以處理其他任務(wù)。 ?當(dāng)適配器收到有差錯的幀時,就把這個幀丟棄而不必通知計算機(jī)。當(dāng)適配器收到正確的幀時,它就使用中斷來通知該計算機(jī)并交付協(xié)議棧中的網(wǎng)絡(luò)層。當(dāng)計算機(jī)要發(fā)送IP數(shù)據(jù)報時,就由協(xié)議棧把IP數(shù)據(jù)報向下交給適配器,組裝成幀后發(fā)送到局域網(wǎng)。

計算機(jī)的硬件地址:在適配器的ROM中

計算機(jī)的軟件地址——IP地址:在計算機(jī)的存儲器中

2.CSMA/CD協(xié)議

Ⅰ.歷史背景

以前以太網(wǎng)方案的思路是:尋找一種簡單方法把距離近的計算機(jī)互連起來,使它們能方便可靠地進(jìn)行高速率數(shù)據(jù)通信。最早以太網(wǎng)是把很多計算機(jī)都連在一根總線上。總線特點:一臺計算機(jī)發(fā)送數(shù)據(jù)時,總線上所有計算機(jī)都能檢測到這個數(shù)據(jù)。但是,我們不總是要在局域網(wǎng)上進(jìn)行一對多的廣播通信。

為了實現(xiàn)一對一的通信,我們可使每一臺計算機(jī)的適配器擁有一個與其他適配器不同的地址。發(fā)送數(shù)據(jù)幀時,在幀首部寫明接收站的地址。僅當(dāng)數(shù)據(jù)幀中的目的地址和適配器ROM中存放的硬件地址一樣時,該適配器才能接收到這個數(shù)據(jù)幀。適配器對不是發(fā)送給自己的數(shù)據(jù)幀就丟棄。

Ⅱ.為了通信方便,以太網(wǎng)的兩種措施

(1)采用較為靈活的無連接工作方式

不用先建立連接就可以直接發(fā)送數(shù)據(jù),適配器對發(fā)送的數(shù)據(jù)幀不進(jìn)行編號,也不要求對方發(fā)回確認(rèn)。這樣做是因為局域網(wǎng)信道的質(zhì)量很好,差錯率小。收到有差錯幀時就丟棄,是否重傳由高層決定。但以太網(wǎng)不知道是否是重傳幀,而是當(dāng)做新的數(shù)據(jù)幀來發(fā)送。所以,以太網(wǎng)提供的服務(wù)是不可靠的交付,即盡最大努力的交付

(2)以太網(wǎng)發(fā)送的數(shù)據(jù)使用曼切斯特(manchester)編碼的信號

二進(jìn)制基帶數(shù)字信號:是高、低電壓交替出現(xiàn)的信號,但是這樣的問題就是當(dāng)出現(xiàn)一長串的連1或連0時,接收端就無法從收到的比特流中提取位同步(即比特同步)信號。

曼切斯特方法:把每一個碼元分為兩相等間隔。碼元1是前低后高,碼元0是前高后低。這樣保證了在每一個碼元的正中間出現(xiàn)一次電壓變換,而接收端就利用這種電壓的轉(zhuǎn)換很方便地把位同步信號提取出來。

缺點:它所占的頻帶寬度比原始的基帶信號增加了一倍(因為每秒傳送的碼元數(shù)加倍了)。

Ⅲ.如何協(xié)調(diào)總線上各計算機(jī)的工作

總線上只要有一臺計算機(jī)在發(fā)送數(shù)據(jù),總線的傳輸資源就被占用。因此,同一時間只能允許一臺計算機(jī)發(fā)送信息。否則,各計算機(jī)之間會相互干擾,結(jié)果大家都無法發(fā)送數(shù)據(jù)。

協(xié)議CSMA/CD

1、含義

載波監(jiān)聽多點接入/碰撞檢測(carrier sense multiple with collision detection)

多點接入:說明是總線型網(wǎng)絡(luò)

載波監(jiān)聽:發(fā)送前先監(jiān)聽。每一個站在發(fā)送數(shù)據(jù)前先要檢測總線上是否有其他站在發(fā)送數(shù)據(jù),如果有則暫時不發(fā),等待信道空閑再發(fā)??偩€上無載波,載波監(jiān)聽就是用電子技術(shù)檢測總線上有沒有其他計算機(jī)發(fā)送的數(shù)據(jù)信號。

碰撞檢測:邊發(fā)送邊監(jiān)聽,也稱沖突檢測。適配器邊發(fā)送數(shù)據(jù)邊檢測信道上的信號電壓的變化情況,以便判斷自己在發(fā)送數(shù)據(jù)時其他站是否也在發(fā)送數(shù)據(jù)。同時發(fā)送數(shù)據(jù)時,總線上的信號電壓變化幅度大,超過一定門限值時,就認(rèn)為總線上至少兩個站同時在發(fā)送數(shù)據(jù),表明有碰撞。這時總線上的信號失真,無法恢復(fù)。所以,每一個正在發(fā)送數(shù)據(jù)的站,一旦發(fā)現(xiàn)有碰撞,適配器就要立即停止發(fā)送,以免浪費網(wǎng)絡(luò)資源,等待一段隨機(jī)時間后再發(fā)送。

2、原理

某個站監(jiān)聽到總線是空閑時,總線并非一定是空閑。

電磁波在1km電纜的傳輸時延約為5us。因此,A向B發(fā)出的數(shù)據(jù),在約5us后才能傳到B。把總線上的單程端到端傳播時延記為τ。

發(fā)送數(shù)據(jù)的站想盡早知道是否有碰撞,那么在A發(fā)送數(shù)據(jù)后,最遲經(jīng)過多長時間才能知道自己發(fā)送的數(shù)據(jù)和其他站發(fā)送的數(shù)據(jù)有無碰撞?答案最多是兩倍的總線端到端的傳播時延(2τ),或總線的端到端往返傳播時延。

本協(xié)議中,一個站不可能同時進(jìn)行發(fā)送和接收。所以使用CSMA/CD協(xié)議的以太網(wǎng)不可能進(jìn)行全雙工通信而只能進(jìn)行雙向交替通信(半雙工通信)。

t=0時,A發(fā)送數(shù)據(jù)。B檢測到信道為空閑。

t=τ-δ時(這里τ>δ>0),A發(fā)送數(shù)據(jù)還沒到達(dá)B時,由于B檢測到信道是空閑的(為什么B檢測是空閑的?因為電磁波1km的傳播時延是5us,換言之就是5us后B才能檢測到信道是忙的,5us之前,B認(rèn)為是空閑的,于是開始發(fā)送數(shù)據(jù))。因此B發(fā)送數(shù)據(jù)。

經(jīng)過時間δ/2后,即在t=τ-δ/2時,A發(fā)送的數(shù)據(jù)和B發(fā)送的數(shù)據(jù)發(fā)生了碰撞。這時,A和B都不知道發(fā)送了碰撞。

T=τ時,只有B先檢測到了發(fā)生碰撞,于是停止發(fā)送數(shù)據(jù)。

在T=2τ- δ時,A才檢測到發(fā)生了碰撞,也停止發(fā)送數(shù)據(jù)。

然后A和B就隨時選擇一個時間,推遲,再重新發(fā)送。

由此可知,每一個站,在發(fā)送數(shù)據(jù)時,在一定時間內(nèi),都存在碰撞的可能性。稱為發(fā)送的不確定性。整個以太網(wǎng)的平均通信量小于以太網(wǎng)的最高數(shù)據(jù)率時,碰撞的機(jī)會會小。

發(fā)送數(shù)據(jù)幀的A站,最多經(jīng)歷2τ時間就可以知道是否遭受碰撞了。我們把這2τ稱為爭用期,也叫碰撞窗口。

經(jīng)過這個爭用期時間,檢測沒有發(fā)生碰撞,就能肯定這次發(fā)送的數(shù)據(jù)不會發(fā)生碰撞。

至此,碰撞問題還是沒有解決。專家們就發(fā)明了一種算法,來減小發(fā)生碰撞的概率,這個算法就是:截斷二進(jìn)制指數(shù)退避(truncated binary exponential backoff)算法。

退避算法的思想如下

(1)確定基本退避時間,就是爭用期2τ。以太網(wǎng)把爭用期2τ定為51.2us 。對于10Mb/s以太網(wǎng),在爭用期內(nèi)可發(fā)送512bit,即64字節(jié)。512bit怎么來的? 就是速率乘以時間,就等于數(shù)據(jù)量。

10Mb/s*51.2us=[10*10^6b/s] * [51.2^(-6)s]=512bit

(2)從離散的整數(shù)集合隨機(jī)取出一個數(shù)[0,1,2,3……,(2^k-1)] ?,取出來的數(shù),記為r。重傳推遲的時間就是r倍的爭用期。T=r*2τ

上面k的參數(shù),按照這個計算k=Min[重傳次數(shù),10]。 ?可見,當(dāng)重傳次數(shù)不超過10時,參數(shù)k=重傳次數(shù)。如果重傳次數(shù)超過10時,k就不再增加了,一直等于10。

(3)當(dāng)重傳達(dá)16次,仍然會不能成功時,就丟棄該幀,向高層報告。說明發(fā)送的人太多了,導(dǎo)致連續(xù)發(fā)送碰撞。但使用上述退避算法可使重傳需要推遲的平均時間隨重傳次數(shù)而增大(也稱動態(tài)退避),因而減小發(fā)生碰撞的概率,有利于整個系統(tǒng)的穩(wěn)定。

舉例:

在第一次重傳時,k=1,隨機(jī)數(shù)r從整數(shù){0,1}中選一個數(shù), ?可得重傳的推遲時間要么為0,要么為1*2τ, 這兩個選擇一個。

如果再次發(fā)送,即第二次重傳,k=2,代入[0,1,2,3……,(2^k-1)] ,隨機(jī)數(shù)r從整數(shù){0,1,2,3}選一個數(shù),可得重傳推遲時間是0,2τ,4τ,6τ 這4個值隨機(jī)選擇一個。

同理,再次發(fā)送碰撞,以此類推。

3、注意

適配器每發(fā)送一個新的幀,就要執(zhí)行一次CSMA/CD算法。適配器對過去發(fā)生過的碰撞無記憶功能。所以,好幾個適配器正在執(zhí)行指數(shù)退避算法時,很可能某一個適配器發(fā)送的新幀能碰巧立即成功地插入到信道中,得到了發(fā)送權(quán)。

以太網(wǎng)在發(fā)送數(shù)據(jù)時,如果幀的前64字節(jié)沒有發(fā)送沖突,那么后續(xù)的數(shù)據(jù)就不會發(fā)送沖突。換句話說,就是如果發(fā)送沖突,就一定是在發(fā)送的前64字節(jié)之內(nèi)。因為檢測到?jīng)_突就停止發(fā)送,這時已經(jīng)發(fā)送出去的數(shù)據(jù)一定小于64字節(jié)。因此以太網(wǎng)規(guī)定了最短有效幀長為64字節(jié),只要長度小于64字節(jié)的幀都是由于沖突而異常中止的無效幀。收到這種無效幀就立即丟棄。

以太網(wǎng)的端到端時延實際上是小于爭用期的一半(即25.6us)。爭用期被定為51.2us,不僅是考慮了以太網(wǎng)的端到端時延,而且還包括其他因素,如轉(zhuǎn)發(fā)器內(nèi)的時延、強(qiáng)化碰撞的干擾信號的持續(xù)時間等。

4、以太網(wǎng)最小幀是64字節(jié)的原因

首先說一下時隙,時隙在一般的數(shù)字通信原理中是這樣定義的:由各個消息構(gòu)成的單一抽樣的一組脈沖叫做一幀,一幀中相鄰兩個脈沖之間是時間間隔叫做時隙。

以太網(wǎng)的時隙有它自己的特定意義:

a.在以太網(wǎng)CSMA/CD規(guī)則中,若發(fā)生沖突,則必須讓網(wǎng)上每個主機(jī)都檢測到。但信號傳播到整個介質(zhì)需要一定的時間。

b.考慮極限情況,主機(jī)發(fā)送的幀很小,兩沖突主機(jī)相距很遠(yuǎn)。在A發(fā)送的幀傳播到B的前一刻,B開始發(fā)送幀。這樣,當(dāng)A的幀到達(dá)B時,B檢測到了沖突,于是發(fā)送阻塞信號。

c.但B的阻塞信號還沒有傳輸?shù)紸,A的幀已發(fā)送完畢,那么A就檢測不到?jīng)_突,而誤認(rèn)為已發(fā)送成功,不再發(fā)送。

d.由于信號的傳播時延,檢測到?jīng)_突需要一定的時間,所以發(fā)送的幀必須有一定的長度。這就是時隙需要解決的問題。

這里可以把從A到B的傳輸時間設(shè)為T,在極端的情況下A要在2T的時間里才可以檢測到有沖突的存在。

(1)理想情況下,電磁波在1KM電纜的傳輸時延約為5us(這個數(shù)字應(yīng)該記下來)。

(2)在10Mbps的以太網(wǎng)中有個5-4-3的問題:10Mbps以太網(wǎng)最多只能有5個網(wǎng)段,4個轉(zhuǎn)發(fā)器,而其中只允許3個網(wǎng)段有設(shè)備,其他兩個只是傳輸距離的延長。按照標(biāo)準(zhǔn),10Mbps以太網(wǎng)采用中繼器時,連接最大長度為2500米。

那么在理想的情況下,時隙可以為2500/1000*5*2us=25us,但是事實上并非如此簡單,實際上的時隙一定會比25us大些,比如中繼轉(zhuǎn)發(fā)延時等干擾。IEEE將10M以太網(wǎng)的時隙定義為512比特時,即51.2us。

對于10Mbps以太網(wǎng)來說,10Mb/s*51.2us=512bit,所以一般說的512bit時隙長度就是這樣來的。這個長度為512/8=64字節(jié),即最小幀長度64字節(jié)。以太網(wǎng)在發(fā)送數(shù)據(jù)時,如果在前面64字節(jié)沒有發(fā)生沖突的話,那么后續(xù)的數(shù)據(jù)就不會發(fā)生沖突,以太網(wǎng)就認(rèn)為這個數(shù)據(jù)的發(fā)送是成功的。

5、強(qiáng)化碰撞措施

發(fā)送數(shù)據(jù)的站一旦發(fā)現(xiàn)了碰撞,除了立即停止發(fā)送數(shù)據(jù)外,還要繼續(xù)發(fā)送32或48比特的人為干擾信號(jamming signal),以便讓所有用戶都知道已經(jīng)發(fā)生了碰撞。對于10Mb/s以太網(wǎng),發(fā)送32(或48)比特只需要3.2(或4.8)us。

A、B站知道發(fā)生碰撞后,也要發(fā)送人為干擾信號。碰撞使A浪費時間Tb+Tj,可是整個信道被占用的時間還要增加一個單程端到端的傳播時延τ。因此總線被占用時間是Tb+Tj+τ。

幀間最小間隔為9.6us,相當(dāng)于96比特時間。這樣做是為了使剛剛收到數(shù)據(jù)幀的站的接收緩存來得及清理,做好接收下一幀的準(zhǔn)備。

CSMA/CD協(xié)議的要點

①準(zhǔn)備發(fā)送:適配器從網(wǎng)絡(luò)層獲得一個分組,加上以太網(wǎng)的首部和尾部,組成以太網(wǎng)幀,放入適配器的緩存中,準(zhǔn)備發(fā)送;

②檢測信道:若適配器檢測到信道忙,則應(yīng)不停地檢測,一直等待信道轉(zhuǎn)為空閑。若檢測到信道空閑,并在96比特時間內(nèi)信道保持空閑,就發(fā)送這個幀;

③在發(fā)送過程中仍不停地檢測信道,若一直未檢測到碰撞,就順利把這個幀發(fā)送完畢。若檢測到碰撞,則中止數(shù)據(jù)的發(fā)送,并發(fā)送人為干擾信號。

④在中止發(fā)送后,適配器就執(zhí)行指數(shù)退避算法,等待r倍512比特時間后,返回步驟2。


四、使用廣播信道的以太網(wǎng)

1.使用集線器的星形拓?fù)?/b>

傳統(tǒng)以太網(wǎng)最初是用粗同軸電纜,后用較便宜的細(xì)同軸電纜,后用更便宜更靈活的雙絞線。它采用星形拓?fù)?,星形中心有可靠性非常高的設(shè)備,叫集線器(hub,使用了大規(guī)模集成電路芯片所以可靠性高)。雙絞線以太網(wǎng)總是和集線器配合使用的。每個站需要用兩對無屏蔽雙絞線(做在一根電纜內(nèi)),分別用于發(fā)送和接收。

雙絞線要能傳送高速數(shù)據(jù),需要絞合度非常精確。這樣能較少失真,減少干擾。

集線器的特點

主要功能是對接收到的信號進(jìn)行再生整形放大,以擴(kuò)大網(wǎng)絡(luò)的傳輸距離,同時把所有節(jié)點集中在以它為中心的節(jié)點上。

①使用集線器的以太網(wǎng)在邏輯上仍是一個總線網(wǎng),各站共享邏輯上的總線,使用的還是CSMA/CD協(xié)議(各站中的適配器執(zhí)行協(xié)議)。網(wǎng)絡(luò)中的各站必須競爭對傳輸媒體的控制,并且在同一時刻至多只允許一個站發(fā)送數(shù)據(jù)。

②一個集線器有很多接口,像一個多接口的轉(zhuǎn)發(fā)器。

工作在物理層,每個接口只是簡單地轉(zhuǎn)發(fā)比特,不進(jìn)行碰撞檢測。

④采用了專門的芯片,進(jìn)行自適應(yīng)串音回波抵消。這樣就可使接口轉(zhuǎn)發(fā)出去的較強(qiáng)信號不致對該接口收到的較弱信號產(chǎn)生干擾(這種干擾即近端串音)。每個比特在轉(zhuǎn)發(fā)前還要進(jìn)行再生整形并重新定時。

堆疊式(stackable)集線器

由4~8個集線器堆疊起來,有少量的容錯能力和網(wǎng)絡(luò)管理功能。例如,以太網(wǎng)中有一個適配器出了故障,不停發(fā)送以太網(wǎng)幀,這時集線器可檢測到這個問題,在內(nèi)部斷開與出故障的適配器的連線,使整個以太網(wǎng)仍然能正常工作。模塊化的機(jī)箱式智能集線器有很高的可靠性。它全部的網(wǎng)絡(luò)功能都以模塊方式實現(xiàn)。各模塊均可進(jìn)行熱插播,出故障時不斷電即可更換或增加新模塊。集線器上的指示燈還可顯示網(wǎng)絡(luò)上的故障情況,給網(wǎng)絡(luò)的管理帶來了很大的方便。

IEEE 802.3 標(biāo)準(zhǔn)還可使用光纖作為傳輸媒體,相應(yīng)的標(biāo)準(zhǔn)是 10 BASE-F系列,F(xiàn)代表光纖。它主要用作集線器之間的遠(yuǎn)程連接。

2.以太網(wǎng)的信道利用率

假定發(fā)送幀需要時間T0,它等于幀長(bit)除以發(fā)送速率。成功發(fā)送一個幀需要占用信道時間是T0+τ,多一個τ是因為一個站發(fā)送的最后一個比特還要在以太網(wǎng)上傳輸。所以經(jīng)過時間T0+τ后以太網(wǎng)的媒體才能完全進(jìn)入空閑狀態(tài),才能允許其他站發(fā)送數(shù)據(jù)

要提高以太網(wǎng)的信道利用率,就必須減小tT0之比。在以太網(wǎng)中定義了參數(shù)a,它是以太網(wǎng)單程端到端時延t與幀的發(fā)送時間T0之比:

a=t/T0

當(dāng)a→0時,表示只要一發(fā)生碰撞,就立即可以檢測出來,并立即停止發(fā)送,因而信道資源不會被浪費。反之,參數(shù)a越大,表明爭用期所占的比例增大,這就使得信道利用率降低。因此,以太網(wǎng)的參數(shù)a的值應(yīng)當(dāng)盡可能小些。

從上式可看出,這就要求分子t的數(shù)值要小些,分母T0的數(shù)值要大些。這就是說,當(dāng)數(shù)據(jù)傳輸速率一定時,以太網(wǎng)的連線的長度受到限制(否則t的數(shù)值會太大),同時以太網(wǎng)的幀長不能太短(否則T0的值會太?。?/p>

現(xiàn)在考慮一種理想化的情況。假定以太網(wǎng)上的各站發(fā)送數(shù)據(jù)都不會產(chǎn)生碰撞(這顯然已經(jīng)不是CSMA/CD,而是需要使用一種特殊的調(diào)度方法),并且能夠非常有效地利用網(wǎng)絡(luò)的傳輸資源,即總線一旦空閑就有某一個站立即發(fā)送數(shù)據(jù)。這樣,發(fā)送一幀占用線路的時間是T0+t,而幀本身的發(fā)送時間是T0。于是我們可計算出極限信道利用率Smax為:

Smax=T0/(T0+t)=1/(1+a)

該式指出了參數(shù)a遠(yuǎn)小于1才能得到盡可能高的極限信道利用率。反之,若參數(shù)a遠(yuǎn)大于1,則極限信道利用率就遠(yuǎn)小于1,而這時實際的信道利用率就更小了。

3.以太網(wǎng)的MAC層

1.MAC 層的硬件地址

在局域網(wǎng)中,硬件地址又稱為物理地址、MAC地址(因為這種地址用在MAC幀中)、鏈路地址。

Ⅰ、含義

是指局域網(wǎng)上的每一臺計算機(jī)中固化在適配器的ROM中的地址(因此也叫適配器地址或適配器標(biāo)識符EUI—48),由硬件廠商決定,是不會變的。只要適配器不變,它就不變。它是每一個站的“名字”或標(biāo)識符。如果連接在局域網(wǎng)上的主機(jī)或路由器安裝有多個適配器,那么這樣的主機(jī)或路由器就有多個“地址”,也就是說,這種48位地址應(yīng)當(dāng)是某個接口的標(biāo)識符。

Ⅱ、組成

起初,人們認(rèn)為用兩個字節(jié)(16位)表示地址就夠了,但是后來希望在各地的局域網(wǎng)中的站具有互不相同的物理地址。為了使用戶在買到適配器并把機(jī)器連到局域網(wǎng)后馬上就能工作,而不需要等待網(wǎng)絡(luò)管理員給他分配一個地址,IEEE 802 標(biāo)準(zhǔn)就規(guī)定MAC地址字段可采用6字節(jié)(48位)或2字節(jié)(16位)這兩種中的一種。6字節(jié)地址字段可使全世界所有的局域網(wǎng)適配器都具有不相同的地址,現(xiàn)在的局域網(wǎng)適配器都用的這種。

6字節(jié)中的前3字節(jié):由IEEE的注冊管理機(jī)構(gòu)RA(registration authority,局域網(wǎng)全球地址的法定管理機(jī)構(gòu))負(fù)責(zé)分配,所有生產(chǎn)局域網(wǎng)適配器的廠家必須向IEEE購買這3個字節(jié)構(gòu)成的號(即地址塊),這個號的正式名稱是組織唯一標(biāo)識符OUI(organizationlly unique identifier),也叫公司標(biāo)識符(company_id)。

24位的OUI不能單獨標(biāo)志一個公司,因為一個公司可能有幾個OUI,也可能幾個小公司合起來購買一個OUI。

第1字節(jié)的最低位I/G(individual/group)位,為0時,地址字段表示一個單個站地址為1時表示組地址,用來多播

注意:有的書把上述最低位寫為“第一位”,但“第一”含糊不清,因為地址記法有兩種:一種是把每一字節(jié)的最低位寫在最左邊(最左邊的最低位是第一位),IEEE 802.3 是這種記法,發(fā)送數(shù)據(jù)時先發(fā)最低位;二種是把每一字節(jié)的最高位寫在最左邊(最左邊的最高位是第一位),發(fā)送數(shù)據(jù)時先發(fā)最高位。

第1字節(jié)的最低第二位:IEEE考慮到有人不愿意購買OUI,因此把此位規(guī)定為G/L(global / local)位。為1時是全球管理(保證在全球沒有相同地址),廠商向IEEE購買的OUI都屬于全球管理。為0時是本地管理,用戶可任意分配網(wǎng)絡(luò)上的地址,采用2字節(jié)地址字段時全都是本地管理。以太網(wǎng)幾乎不適用這個G / L 位。

6字節(jié)中的后3字節(jié):廠家自行指派,稱為擴(kuò)展標(biāo)識符(extended identifier),保證無重復(fù)地址即可。

用以上方式得到的48位地址稱為MAC—48,通用名稱是EUI—48。(extended unique identifier),它不僅用于局域網(wǎng)的硬件地址,還可喲關(guān)于軟件接口。

當(dāng)路由器通過適配器連接到局域網(wǎng)時,適配器上的硬件地址就用來標(biāo)志路由器的某個接口。路由器如果同時連接到兩個網(wǎng)絡(luò)上,那么它就需要兩個適配器和兩個硬件地址。

Ⅲ、適配器的重要功能

①進(jìn)行串行/并行轉(zhuǎn)換

②對數(shù)據(jù)進(jìn)行緩存

③在計算機(jī)的操作系統(tǒng)安裝設(shè)備驅(qū)動程序

④實現(xiàn)以太網(wǎng)協(xié)議

⑤適配器從網(wǎng)絡(luò)上每收到一個 MAC 幀就首先用硬件檢查 MAC 幀中的 MAC 地址。如果是發(fā)往本站的幀則收下,然后再進(jìn)行其他的處理。否則就將此幀丟棄,不再進(jìn)行其他的處理。

這里發(fā)往本站的幀有三種:

一是單播(unicast)幀(一對一),即收到的幀的MAC地址與本站的硬件地址相同。

二是廣播(broadcast)幀(一對全體),即發(fā)送給本局域網(wǎng)上所有站點的幀(全1地址)。

三是多播(multicast)幀(一對多),即發(fā)送給本局域網(wǎng)上一部分站點的幀。

所有的適配器都至少應(yīng)當(dāng)能夠識別兩種幀,即能夠識別單播和多播地址。有的適配器可用編程方法識別多播地址。當(dāng)操作系統(tǒng)啟動時,它就把適配器初始化,使適配器能夠識別某些多播地址。顯然,只有目的地址才能使用廣播地址和多播地址。

以太網(wǎng)還可設(shè)置混雜方式(promiscuous mode),工作在混雜方式的適配器只要“聽到”有幀在以太網(wǎng)上傳輸那就悄悄接收下來,而不管是發(fā)往哪個站,當(dāng)然不中斷。黑客利用這種方法非法獲取網(wǎng)上用戶的口令。但這種方式可幫助網(wǎng)絡(luò)維護(hù)和管理人員監(jiān)視和分析以太網(wǎng)上的流量,以便找出提高網(wǎng)絡(luò)性能的具體措施。嗅探器(sniffer)使用了設(shè)置為混雜方式適配器,可幫助學(xué)習(xí)網(wǎng)絡(luò)的人員更好理解各種網(wǎng)絡(luò)協(xié)議的原理。

2.MAC幀的格式

有兩種標(biāo)準(zhǔn),一種是DIX Ethernet V2 標(biāo)準(zhǔn)(即以太網(wǎng)V2標(biāo)準(zhǔn)),另一種是IEEE的802.3標(biāo)準(zhǔn)。這里只介紹使用的最多的以太網(wǎng)V2的MAC幀的格式。圖假定網(wǎng)絡(luò)層使用的是IP協(xié)議。

類型字段:用來標(biāo)志上一層使用的是什么協(xié)議,以便把收到的MAC幀的數(shù)據(jù)上交給上一層的這個協(xié)議。

數(shù)據(jù)字段:最小長度是46字節(jié)(64字節(jié)減去18字節(jié)的首部和尾部)

FCS字段:幀檢測序列(使用CRC檢驗)

Ⅰ、MAC以太網(wǎng)子層如何知道從接收到的以太網(wǎng)幀中取出多少字節(jié)的數(shù)據(jù)交付給上一層協(xié)議?

曼切斯特編碼:每一個碼元的正中間一定有一次電壓的轉(zhuǎn)換,發(fā)送方把一個碼元發(fā)送完后,就不再發(fā)送其他碼元了,因此電壓不再變化。這樣接收方就很容易找到以太網(wǎng)幀的結(jié)束位置。在這個位置往前數(shù)4字節(jié)(FCS長度是4字節(jié)),就能確定數(shù)據(jù)字段的結(jié)束位置。

Ⅱ、數(shù)據(jù)字段小于46字節(jié),即以太網(wǎng)的MAC幀長小于64字節(jié)怎么辦?

注意到,MAC幀的首部沒有指出數(shù)據(jù)字段的長度是多少。在有填充字段后,接收端的MAC子層在剝?nèi)ナ撞亢臀膊亢缶桶褦?shù)據(jù)字段和填充字段一起上交給上層協(xié)議。那么,上層協(xié)議如何知道填充字段長度?(IP層不需要填充字段)上層使用IP協(xié)議時,首部有一個“總長度”字段,“總長度”加上填充字段長度,應(yīng)等于MAC幀數(shù)據(jù)字段長度。

Ⅲ、傳輸媒體上實際傳送的為什么要比MAC幀多8個字節(jié)?

因為當(dāng)一個站在剛開始接收MAC幀時,由于適配器的時鐘尚未與到達(dá)的比特流達(dá)成同步,因此MAC幀的最前面的若干位無法接收,結(jié)果使整個的MAC成為無用的幀。為了接收端迅速實現(xiàn)位同步,有了這8字節(jié)(硬件生成)。

有兩個字段組成。第一個字段是7字節(jié)的前同步碼(1和0交替碼),作用是使接收端的適配器在接收MAC幀時能迅速調(diào)整其始終頻率,使它和發(fā)送端的時鐘同步,即“實現(xiàn)位同步”(比特同步)。第二個字段是幀開始界定符,定義為10101011,前6位作用和前同步碼一樣,最后連續(xù)的1是要告訴接收端適配器:MAC幀的信息馬上就要來了,請適配器注意查收。

MAC幀的FCS字段的檢查范圍不包括前同步碼和幀開始界定符。

在使用SONET / SDH進(jìn)行同步傳輸時不需要用前同步碼,因為在同步傳輸時收發(fā)雙方的位同步總是一直保持著的。

Ⅳ、為什么以太網(wǎng)不需要使用幀結(jié)束定界符,也不需要使用字節(jié)插入來保證透明傳輸?

這是因為在以太網(wǎng)上傳送數(shù)據(jù)時是以幀為單位的,傳送幀時各幀之間有間隙。因此,接收端只要找到幀開始定界符,其后面的連續(xù)到達(dá)的比特流就都屬于同一個MAC幀。

Ⅴ、IEEE 802.3 規(guī)定的無效幀

①幀的長度不是整數(shù)個字節(jié)

②用收到的幀檢測序列FCS查出有差錯

③收到的幀的MAC數(shù)據(jù)字段的長度不在46~1500字節(jié)之間。

無效幀直接丟棄,以太網(wǎng)不負(fù)責(zé)重傳。

Ⅵ、IEEE 802.3 規(guī)定的MAC幀格式與以太網(wǎng)V2 MAC幀格式的區(qū)別

①IEEE 802.3 規(guī)定的MAC幀的第三個字段是“長度 / 類型”。這個值大于0x0600(相當(dāng)于十進(jìn)制的1536),就表示“類型”。這樣的幀和以太網(wǎng)V2 MAC幀完全一樣。只有當(dāng)這個值小于0x0600時,才表示“長度”,即MAC幀的數(shù)據(jù)部分長度。顯然,數(shù)據(jù)字段的長度與長度字段的值不一致時,是無效的幀。而由于以太網(wǎng)使用了曼切斯特編碼,長度字段無意義。

②“長度 / 類型”字段值小于0x0600時,數(shù)據(jù)字段必須裝入上面的LLC子層的LLC幀。

由于廣泛使用的局域網(wǎng)只有以太網(wǎng),所以LLC幀失去了原來的意義。

五、擴(kuò)展的以太網(wǎng)

在物理層和鏈路層擴(kuò)展,這樣擴(kuò)展的以太網(wǎng)在網(wǎng)絡(luò)層看來仍然是一個網(wǎng)絡(luò)。

1.在物理層擴(kuò)展以太網(wǎng)(集線器)

以太網(wǎng)上的主機(jī)之間的距離不能太遠(yuǎn),否則主機(jī)發(fā)送的信號經(jīng)過銅線的傳輸會衰減到使CSMA/CD協(xié)議無法正常工作。過去使用粗纜或細(xì)纜以太網(wǎng)時,常使用工作在物理層的轉(zhuǎn)發(fā)器來擴(kuò)展以太網(wǎng)的地理覆蓋范圍。那時,兩個網(wǎng)段可用一個轉(zhuǎn)發(fā)器連接起來。IEEE 802.3標(biāo)準(zhǔn)還規(guī)定,任意兩個站之間最多可以經(jīng)過三個電纜網(wǎng)段。但隨著雙絞線以太網(wǎng)成為以太網(wǎng)的主流類型,擴(kuò)展以太網(wǎng)的覆蓋范圍已很少使用轉(zhuǎn)發(fā)器了。

現(xiàn)在,擴(kuò)展主機(jī)和集線器之間的距離的一種簡單方法就是使用光纖(通常是一對光纖)和一對光纖調(diào)制解調(diào)器

光纖調(diào)制解調(diào)器的作用就是進(jìn)行電信號和光信號的轉(zhuǎn)換。由于光纖帶來的時延很小,并且?guī)捄芨?,因此使用這種方法可以很容易地使主機(jī)和幾公里以外的集線器相連接。

上圖好處:使不同系的以外網(wǎng)可以進(jìn)行跨系通信,另外擴(kuò)大了以太網(wǎng)的覆蓋范圍。

上圖缺點:①每一個系的 10BASE-T 以太網(wǎng)是一個獨立的碰撞域(collision domain,又稱沖突域),即在任一時刻,每一個碰撞域中只能有一個站在發(fā)送數(shù)據(jù),每一個系吞吐量是10Mb/s,連在一起后還是10Mb/s,而不是30Mb/s。當(dāng)某個系的兩個站在通信時所傳送的數(shù)據(jù)會通過所有的集線器進(jìn)行轉(zhuǎn)發(fā),使得其他系的內(nèi)部在這時都不能通信(一發(fā)送就碰撞)。

②如果不同的系使用不同的以太網(wǎng)技術(shù)(如數(shù)據(jù)率不同),那么就不可能用集線器互連。如有三個系分別為10Mb/s、10Mb/s、100Mb/s,那么用集線器連接起來后,大家都只能工作在10Mb/s的速率。集線器基本是個多接口(即多端口)的轉(zhuǎn)發(fā)器,它不能把幀進(jìn)行緩存。

集線器、交換機(jī)、路由器的比較

參考博文《集線器交換機(jī)區(qū)別》

集線器:共享帶寬、半雙工,在物理層

交換器:獨享帶寬、全雙工,在鏈路層

如果用最簡單的語言敘述交換機(jī)與集線器的區(qū)別,那就應(yīng)該是智能與非智能的區(qū)別。集線器說白了只是連接多個計算機(jī)的網(wǎng)絡(luò)設(shè)備,它只能起到信號放大和傳輸?shù)淖饔?,不能對信號中的碎片進(jìn)行處理,所以在傳輸過程中容易出錯。而交換機(jī)則可以看作為是一種智能型的集線器,它除了擁有集線器的所有特性外,還具有自動尋址、交換、處理的功能。并且在數(shù)據(jù)傳遞過程中,發(fā)送端與接受端獨立工作,不與其它端口發(fā)生關(guān)系,從而達(dá)到防止數(shù)據(jù)丟失和提高吞吐量的目的。

所謂路由就是指通過相互連接的網(wǎng)絡(luò)把信息從源地點移動到目標(biāo)地點的活動。路由器可以讓不同子網(wǎng)、網(wǎng)段進(jìn)行互連,因此路由器與集線器、交換機(jī)不同,它一般安裝在網(wǎng)絡(luò)的“骨干”部位。在網(wǎng)絡(luò)層


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容