兩種截然不同類型的鏈路層信道
- 廣播信道:這種信道用于連接有線局域網(wǎng)、衛(wèi)星網(wǎng)和混合光纖同軸電纜接入網(wǎng)中的多臺主機。
- 點對點通信鏈路:這在諸如長距離鏈路連接的兩臺路由器之間,或用戶辦公室計算機與它們所連接的鄰近以太網(wǎng)交換機之間等場合經(jīng)常能夠發(fā)現(xiàn)。
6.1 鏈路層概述
一些有用的術(shù)語:
- 節(jié)點:運行鏈路層協(xié)議(即第2層)協(xié)議的任何設(shè)備
- 鏈路:沿著通信路徑連接相鄰節(jié)點的通信信道
- 在通過特定的鏈路時,傳輸節(jié)點將數(shù)據(jù)報封裝在鏈路層幀中,并將該幀傳送到鏈路中
數(shù)據(jù)報(分組)在不同的鏈路上以不同的鏈路協(xié)議傳送:
- 第一跳鏈路:以太網(wǎng)
- 中間鏈路:幀中繼鏈路
- 最后一跳802.11
不同的鏈路協(xié)議提供不同的服務(wù)
傳輸類比:
去旅游社從上海到廣州旅游,可分為以下幾步
- 坐汽車到上海機場
- 從上海坐飛機到南京
- 從南京坐高鐵到廣州
其中人可以比作數(shù)據(jù)報,每個交通段可以比作一條通信鏈路,每個交通模式可以看成一個鏈路層協(xié)議,然后具體的路徑是由路由選擇算法算出來的
6.1.1 鏈路層提供的服務(wù)
任一鏈路層的基本服務(wù)都是將數(shù)據(jù)報通過單一通信鏈路從一個節(jié)點移動到相鄰節(jié)點,鏈路層協(xié)議能夠提供的可能服務(wù)包括:
-
成幀:
- 將數(shù)據(jù)報封裝在幀中,加上幀頭、幀尾部
-
鏈路接入:媒體訪問控制(MAC)協(xié)議規(guī)定了幀在鏈路上傳輸?shù)囊?guī)則。
- 如果采用的是共享性介質(zhì),信道接入獲得信道訪問權(quán)
- 在幀頭部使用“MAC”(物理)地址來標(biāo)示源和目的
-
可靠交付:
- 在低差錯鏈路上很少使用 (光纖,一些雙絞線)
- 出錯率低,沒有必要在每一個幀中做差錯控制的工作,協(xié)議復(fù)雜
- 在本層放棄可靠控制的工作,在網(wǎng)絡(luò)層或者是傳輸層做可靠控制的工作,或者根本就不做可靠控制的工作
- 在高差錯鏈路上需要進行可靠的數(shù)據(jù)傳送(無線鏈路)
- 出錯率高,如果在鏈路層不做差錯控制工作,漏出去的錯誤比較高;到了上層如果需要可靠控制的數(shù)據(jù)傳輸代價會很大
- 在低差錯鏈路上很少使用 (光纖,一些雙絞線)
-
差錯檢測:
- 差錯由信號衰減和噪聲引起
- 接收方檢測出的錯誤: 通知發(fā)送端進行重傳或丟棄幀
-
差錯糾正:
- 接收端檢查和糾正bit錯誤,不通過重傳來糾正錯誤
-
流量控制:
- 使得相鄰的發(fā)送和接收方節(jié)點的速度匹配
-
半雙工和全雙工:
- 半雙工:鏈路可以雙向傳輸,但一次只有一個方向
6.1.2 鏈路層在何處實現(xiàn)
鏈路層的主體部分是在網(wǎng)絡(luò)適配器中實現(xiàn)的,網(wǎng)絡(luò)適配器有時也稱為網(wǎng)絡(luò)接口卡
位于網(wǎng)絡(luò)適配器核心的是鏈路層控制器,該控制器通常是一個實現(xiàn)了許多鏈路層服務(wù)(成 幀、鏈路接入、差錯檢測等)的專用芯片
鏈路層是硬件和軟件的結(jié)合體,即此處是協(xié)議棧中軟件與硬件交接的地方
適配器通信:
發(fā)送方:
- 在幀中封裝數(shù)據(jù)報
- 加上差錯控制編碼,實現(xiàn)RDT和流量控制功能等
接收方:
- 檢查有無出錯,執(zhí)行rdt和流量控制功能等
- 解封裝數(shù)據(jù)報,將至交給上層
6.2 差錯檢測和糾正技術(shù)
比特級差錯檢測和糾正:對從一個節(jié)點發(fā)送到另一個物理上連接的鄰近節(jié)點的鏈路層幀中的比特損傷進行檢測和糾正,它們通常是鏈路層提供的兩種服務(wù)
- EDC=差錯檢測和糾正位(冗余位)
- D=數(shù)據(jù)由差錯檢測保護,可以包含頭部字段
發(fā)送節(jié)點:使用差錯檢測和糾正比特(EDC)來增強數(shù)據(jù)D。
接收方:只收到D’和EDC’的情況下,確定D’是否和初始的D相同
但錯誤檢測不是100%可靠的
- 協(xié)議會漏檢一些錯誤,但是很少
- 更長的EDC字段可以得到更好的檢測和糾正效果
6.2.1 奇偶校驗
1.單bit奇偶校驗:檢測單個bit級錯誤
要發(fā)送的信息有d比特
- 偶校驗方案:選擇校驗比特的值,使得這d+1比特(初始信息加上一個校驗比特)中1的總數(shù)是偶數(shù),是偶數(shù)則校驗位為0
- 奇校驗方案:選擇校驗比特的值,使得這d+1比特(初始信息加上一個校驗比特)中1的總數(shù)是奇數(shù)
接收方:方只需要數(shù)一數(shù)接收的d+1比特中1的數(shù)目即可
2.二維奇偶校驗: 檢測和糾正單個bit錯誤
D中的d個比特被劃分為i行j列。對每行和每列計算奇偶值。產(chǎn)生的i+j+1奇偶比特構(gòu)成了鏈路層幀的差錯檢測比特
如果出現(xiàn)了單個比特差錯,改變的列和行的校驗值都將會岀現(xiàn)差錯。因此可以索引錯誤位置并糾正錯誤
例:
其中位于(2, 2)的值為1的比特損壞了,變成了0,該差錯就是一個在接收方可檢測并可糾正的差錯
但是如果是鄰近的一個正方形的四個比特位都發(fā)生錯誤,最后檢驗的結(jié)果仍然是正確的,這種隊友錯誤就檢驗不出來
接收方檢測和糾正差錯的能力被稱為前向糾錯
- 減少所需的發(fā)送方重發(fā)的次數(shù)
- 允許在接收方立即糾正差錯
- 避免了不得不等待的往返時延
6.2.2 檢驗和方法
檢驗和:檢測在傳輸報文段時的錯誤(如位翻轉(zhuǎn)),(注:僅僅用在傳輸層)
-
發(fā)送方:
- 將報文段看成16-bit整數(shù)
- 報文段的校驗和: 求和 (1的補碼和)
- 發(fā)送方將checksum的值放在‘UDP校驗和’字段
-
接收方:
- 計算接收到的報文段的校驗和
- 檢查是否與攜帶校驗和字段值一致:
- 不一致:檢出錯誤
- 一致:沒有檢出錯誤,但可能還是有錯誤
有更簡單的檢查方法:全部加起來看是不是1
6.2.3 循環(huán)冗余檢測
準備知識:
1.模二運算
加法不進位,減法不借位,加法和減法是相同的,而且這兩種操作等價于操作數(shù)的按位異或(XOR),例如
2.位串的兩種表示
位串表示:1011
多項式表示: 1 ? x 3 + 0 ? x 2 + 1 ? x 1 + 1 ? x 0 1*x^3+0*x^2+1*x^1+1*x^0 1?x3+0?x2+1?x1+1?x0
3.生成多項式
假設(shè)約定生成r次方的多項式,則總共有r+1比特
比如G=x3+1
其表示的位串就是1001,總共4比特
CRC(循環(huán)冗余校驗):
- 發(fā)送方和接收方首先必須協(xié)商r位CRC附加位R
- <D,R> 正好被G整除 (modulo 2)
- 接收方知道 G, 將 <D,R>除以 G。如果非0余數(shù): 檢查出錯誤
- 能檢出所有少于r+1位的突發(fā)錯誤
對于書上的例子,可以這么理解:
d比特是數(shù)據(jù)D,加入了r比特的附加位R,說明數(shù)據(jù)D的全部比特在原來的基礎(chǔ)上全部向右移了r位,根據(jù)算法得原數(shù)據(jù)D變成了D*2r。然后再加上冗余位R,可以直接用XOR異或來表示加法,所以發(fā)送方發(fā)送的數(shù)據(jù)用數(shù)學(xué)公式表示為:
D
?
2
r
X
O
R
R
D·2^r\quad XOR \quad R
D?2rXORR
關(guān)鍵問題是如何計算R,首先要求R使得對于n有:
D
?
2
r
X
O
R
R
=
n
G
D·2^r\quad XOR \quad R =nG
D?2rXORR=nG
也就是要選擇R使得G能夠除以D·2r XOR R而沒有余數(shù),對上面式子兩邊異或R,得:
D
?
2
r
=
n
G
X
O
R
R
D·2^r =nG\quad XOR \quad R
D?2r=nGXORR
用G來除D·2r,余數(shù)值剛好是R。換句話說,我們可以這樣計算R:
R
=
r
e
m
a
i
n
d
e
r
D
?
2
r
G
R=remainder \frac{D·2^r}{G}
R=remainderGD?2r?
例:
對于書上的例子,D=101110, d=6, G=1001和r=3
發(fā)送方首先將D右移r=3位,即
然后再除以G,使用模二運算:
算出來的R為011,發(fā)送方就發(fā)送D·2r+R即101110011,接收方要除以G,看看能否被整除
CRC性能分析:
- 能夠檢查出所有的1bit錯誤
- 能夠檢查出所有的雙bits的錯誤
- 能夠檢查出所有長度 =r或者<r 位的錯誤
- 出現(xiàn)長度為r+1的突發(fā)錯誤,檢查不出的概率是1/2r-1
- 出現(xiàn)長度大于r+1的突發(fā)錯誤,檢查不出的概率1/2r
6.3 多路訪問鏈路和協(xié)議
兩種類型的鏈路(一個子網(wǎng)內(nèi)部鏈路連接形式):
-
點對點
- 撥號訪問的PPP
- 以太網(wǎng)交換機和主機之間的點對點鏈路
-
廣播 (共享線路或媒體)
- 傳統(tǒng)以太網(wǎng)
- HFC上行鏈路
- 802.11無線局域網(wǎng)
多路訪問問題:如何協(xié)調(diào)多個發(fā)送和接收節(jié)點對一個共享廣播信道的訪問
**多路訪問協(xié)議:**節(jié)點通過這些協(xié)議來規(guī)范它們在共享的廣播信道上的傳輸行為
所有的節(jié)點都能夠傳輸幀,所以多個節(jié)點可能會同時傳輸幀。所有節(jié)點同時接到多個幀,傳輸?shù)膸谒械慕邮辗教?strong>碰撞
理想的多路訪問協(xié)議:
給定:R bps的廣播信道
特性:
- 當(dāng)一個節(jié)點要發(fā)送時,該節(jié)點具有R bps的吞吐量
- 當(dāng)M個節(jié)點要發(fā)送,每個可以以R/M的平均速率發(fā)送
- 協(xié)議是分散的;這就是說不會因某主節(jié)點故障而使整個系統(tǒng)崩潰
- 協(xié)議是簡單的
3類多路協(xié)議:
-
信道劃分
- 把信道劃分成小片(時間、頻率、編碼)
- 分配片給每個節(jié)點專用
-
隨機訪問
- 信道不劃分,允許沖突
- 沖突后恢復(fù)
-
依次輪流
-
節(jié)點依次輪流
-
但是有很多數(shù)據(jù)傳輸?shù)墓?jié)點可以獲得較長的信道使用權(quán)
-
6.3.1 信道劃分協(xié)議
1.時分多路復(fù)用(TDM)
假設(shè)一個支持N個節(jié)點的信道且信道的傳輸速率為R bps。TDM將時間劃分為時間幀,并進一步劃分每個時間幀為N個時隙。把每個時隙分配給N個節(jié)點中的一個,在循環(huán)的TDM幀中指派給它的時隙內(nèi)傳輸分組比特。每個節(jié)點在每個幀時間內(nèi)得到了專用的傳輸速率R/N bps
例:一個簡單的4個節(jié)點的TDM例子。
缺點:
- 節(jié)點被限制于R/N bps的平均速率,即使當(dāng)它是唯一有分組要發(fā)送的節(jié)點時
- 節(jié)點必須總是等待它在傳輸序列中的輪次
2.頻分多路復(fù)用(FDM)
將R bps信道劃分為不同的頻段(每個頻段具有R/N帶寬),并把每個頻率分配給N個節(jié)點中的一個。FDM在單個較大的R bps信道中創(chuàng)建了N個較小的R/N bps信道
優(yōu)點:避免了碰撞,在N個節(jié)點之間公平地劃分了帶寬
缺點:限制一個節(jié)點只能使用R/N的帶寬,即使當(dāng)它是唯一一個有分組要發(fā)送的節(jié)點時
3.碼分多路訪問(CDMA)
CDMA對每個節(jié)點分配一種不同的編碼。然后每個節(jié)點用它唯一的編碼來對它發(fā)送的數(shù)據(jù)進行編碼。
不同的節(jié)點能夠同時傳輸,并且它們各自相應(yīng)的接收方仍能正確接收發(fā)送方編碼的數(shù)據(jù)比特。
3種方法的類比:
- TDM:不同的人在不同的時刻講話
- FDM:不同的組在不同的小房間里通信
- CDMA:不同的人使用不同的語言講話
6.3.2 隨機接入?yún)f(xié)議
在隨機接入?yún)f(xié)議中,一個傳輸節(jié)點總是以信道的全部速率(即R bps)進行發(fā)送
當(dāng)有碰撞時,涉及碰撞的每個節(jié)點反復(fù)地重發(fā)它的幀(也就是分組),到該幀無碰撞地通過為止
當(dāng)一個節(jié)點經(jīng)歷一次碰撞時,它在重發(fā)該幀之前等待一個隨機時延。因為每個碰撞的節(jié)點是獨立地選擇隨機時延,所以可能有些節(jié)點之一所選擇的時延充分小于其他碰撞節(jié)點的時延,并因此能夠無碰撞地將它的幀在信道中發(fā)出
1.時隙 ALOHA
假設(shè):
- 所有幀是等長的
- 時間被劃分成相等的時隙L/R,每個時隙可發(fā)送一幀
- 節(jié)點只在時隙開始時發(fā)送幀
- 節(jié)點在時鐘上是同步的
- 如果兩個或多個節(jié)點在一個時隙傳輸,所有的站點都能檢測到?jīng)_突
運行:令p是一個概率
- 當(dāng)節(jié)點獲取新的幀,在下一個時隙傳輸
- 傳輸時沒有檢測到?jīng)_突,成功傳輸(節(jié)點能夠在下一時隙發(fā)送新幀)
- 檢測時如果檢測到?jīng)_突,失敗(節(jié)點在每一個隨后的時隙以概率p重傳幀直到成功)
優(yōu)點:
- 節(jié)點可以以信道帶寬全速連續(xù)傳輸
- 高度分布:僅需要節(jié)點之間在時隙上的同步
- 簡單
缺點:
- 存在沖突,浪費時隙
- 即使有幀要發(fā)送,仍然有可能存在空閑的時隙
- 如果節(jié)點檢測沖突的時間<幀傳輸?shù)臅r間,必須傳完
- 需要時鐘上同步
**效率:**當(dāng)有大量的活躍節(jié)點且每個節(jié)點總有大量的幀要發(fā)送時,長期運行中成功時隙的份額
例:
- 假設(shè)N個節(jié)點,每個節(jié)點都有很多幀要發(fā)送, 在每個時隙中的傳輸概率是p
- 一個節(jié)點成功傳輸概率是p(1-p)N-1
- 任何一個節(jié)點的成功概率是= Np(1-p)N-1
N個節(jié)點的最大效率:
- 求出使f§=Np(1-p)N-1最大的p*
- N為無窮大時的極限為1/e=0.37(求導(dǎo)取極限)
最好情況:信道利用率37%
2.ALOHA
是非時隙、完全分散的協(xié)議。無須節(jié)點間在時間上同步。
當(dāng)有幀需要傳輸:馬上傳輸
沖突的概率增加:
- 幀在t0發(fā)送,和其它在[t0-1, t0+1]區(qū)間內(nèi)開始發(fā)送的幀沖突
- 和當(dāng)前幀沖突的區(qū)間(其他幀在此區(qū)間開始傳輸)增大了一倍
純ALOHA的效率:
P(指定節(jié)點成功)=P(節(jié)點傳輸)·P(其它節(jié)點在[t0-1,t0]不傳)·P(其它節(jié)點在[t0,t0 +1不傳] = p·(1-p)N-1·(1-p)N-1=p·(1-p)2(N-1)
N趨向無窮大,p=1/(2e)=17.5%
3.載波偵聽多路訪問(CSMA)
規(guī)則:
- 載波偵聽:一個節(jié)點在傳輸前先聽信道。如果偵聽到信道空閑,傳送整個幀
- 碰撞檢測:當(dāng)一個傳輸節(jié)點在傳輸時一直在偵聽此信道。如果偵聽到信道忙,推遲傳送
人類類比:不要打斷別人正在進行的說話!
沖突仍然可能發(fā)生:由傳播延遲造成:兩個節(jié)點可能偵聽不到正在進行的傳輸
- 在時刻t0,節(jié)點B偵聽到信道是空閑的,開始向兩側(cè)傳播
- 時刻t1,由于B沒有到達D,因此D開始傳播
- 一段時間后B,D沖突,B的傳輸開始在D干擾D的傳輸
整個沖突幀的傳輸時間都被浪費了,是無效的傳輸(紅黃區(qū)域)
注意:傳播延遲(距離)決定了沖突的概率
4.具有碰撞檢測的載波偵聽多路訪問(CSMA/CD)
與CSMA不同之處:當(dāng)某節(jié)點執(zhí)行碰撞檢測時,一旦它檢測到碰撞將立即停止傳輸
在多路訪問協(xié)議中加入碰撞檢測,通過不傳輸一個無用的、損壞的幀,將有助于改善協(xié)議的性能
對信道的浪費減少了
以太網(wǎng)CSMA/CD算法:
- 適配器從網(wǎng)絡(luò)層獲取數(shù)據(jù)報,創(chuàng)建幀,放入幀適配器緩存中
- 發(fā)送前適配器偵聽信道,如果空閑開始傳送幀,如果忙碌則等到空閑再發(fā)送
- 傳輸過程中檢測沖突
- 沒有沖突則成功發(fā)送該幀。檢測到?jīng)_突則放棄,之后嘗試重發(fā)
- 如果發(fā)送方適配器檢測到?jīng)_突,除放棄外,還發(fā)送一個Jam信號,所有聽到?jīng)_突的適配 器也是如此,即讓所有站點都知道沖突
- 如果放棄,適配器進入指數(shù)退避狀態(tài)。在第m次失敗后,適配器隨機選擇一個{0,1,2,n,2n-1}中選擇一個K值,等待K·512比特時間,然后轉(zhuǎn)到步驟2 ,即二進制指數(shù)后 退算法
指數(shù)退避:
目標(biāo):適配器試圖適應(yīng)當(dāng)前負載,在一個變化的碰撞窗口中隨機選擇時間點嘗試重發(fā)
- 首次碰撞:在{0,1}選擇K;延遲K*512比特時間
- 第2次碰撞:在{0,1,2,3}選擇K
- 第10次碰撞:在{0,1,2,3,……,1023}選擇K
5.CSMA/CD 效率
定義:當(dāng)有大量的活躍節(jié)點, 且每個節(jié)點有大量的幀要發(fā)送時,幀在信道中無碰撞地傳輸?shù)哪遣糠謺r間在長期運行時間中所占的份額
- 令ddrop表示信號能量在任意兩個適配器之間傳播所需的最大時間。
- 令dtrans表示傳輸一個最大長度的以太網(wǎng)幀的時間
近似式為:
效率
=
1
1
+
5
d
d
r
o
p
/
d
t
r
a
n
s
效率=\frac{1}{1+5d_{drop}/d_{trans}}
效率=1+5ddrop?/dtrans?1?
- 當(dāng)ddrop接近0時,效率接近1。即傳播時延是0,碰撞的節(jié)點將立即中止而不會浪費信道
- dtrans變得很大時,效率也 接近于1。因為當(dāng)一個幀取得了信道時,它將占有信道很長時間;因此信道在大多數(shù)時間都會有效地工作
CSMA/CD比ALOHA有更好的性能,而且簡單,廉價,分布式
6.3.3 輪流協(xié)議
輪流協(xié)議:
-
輪詢協(xié)議:
- 節(jié)點之一要被指定為主節(jié)點
- 主節(jié)點以循環(huán)的方式輪詢每個節(jié)點
- 先向節(jié)點1發(fā)送一個報文,告訴它(節(jié)點1)能夠傳輸?shù)膸淖疃鄶?shù)量
- 在節(jié)點1傳輸了某些幀后,主節(jié)點告訴節(jié)點2它(節(jié)點2)能夠傳輸?shù)膸淖疃鄶?shù)量
優(yōu)點:消除了困擾隨機接入?yún)f(xié)議的碰撞和空時隙
缺點:該協(xié)議引入了輪詢時延。如果主節(jié)點有故障,整個信道都變得不可操作
-
令牌傳遞協(xié)議
- 一個稱為令牌的小的特殊幀在節(jié)點之間以某種固定的次序進行交換
- 當(dāng)一個節(jié)點收到令牌時,僅當(dāng)它有一些幀要發(fā)送時,它才持有這個令牌
- 否則,它立即向下一個節(jié)點轉(zhuǎn)發(fā)該令牌
優(yōu)點:令牌傳遞是分散的,并有很高的效率
缺點:一個節(jié)點的故障可能會使整個信道崩潰。如果一個節(jié)點偶然忘記了釋放令牌,則必須調(diào)用某些恢復(fù)步驟使令牌返回到循環(huán)中來
小結(jié):
多點接入問題:對于一個共享型介質(zhì),各個節(jié)點如何協(xié)調(diào)對它的訪問和使用?
-
信道劃分:按時間、頻率或者編碼
- TDMA、FDMA、CDMA
-
隨機訪問 (動態(tài))
- ALOHA, S-ALOHA, CSMA, CSMA/CD
- 載波偵聽: 在有些介質(zhì)上很容易 (wire:有線介質(zhì)), 但在有些介質(zhì)上比較困難 (wireless:無線)
- CSMA/CD :802.3 Ethernet網(wǎng)中使用
- CSMA/CA :802.11WLAN中使用
-
依次輪流協(xié)議
- 集中:由一個中心節(jié)點輪詢;分布:通過令牌控制
- 藍牙、FDDI、令牌環(huán)
6.3.4 DOCSIS:用于電纜因特網(wǎng)接入的鏈路層協(xié)議
數(shù)據(jù)經(jīng)電纜服務(wù)接口規(guī)范(DOCSIS)定義了電纜數(shù)據(jù)網(wǎng)絡(luò)體系結(jié)構(gòu)及其協(xié)議
- 多個40Mbps 下行(廣播)信道,FDM
- 下行:通過FDM分成若干信道,互聯(lián)網(wǎng)、數(shù)字電視等
- 互聯(lián)網(wǎng)信道:只有1個CMTS在其上傳輸
- 多個30Mbps 上行的信道,FDM
- 多路訪問:所有用戶使用;接著TDM分成微時隙
- 部分時隙:分配;部分時隙:競爭;
- 采用FDM進行信道的劃分:若干上行、下行信道
- 下行信道:
- 在下行MAP幀中:CMTS告訴各節(jié)點微時隙分配方案,分配給各站點的上行微時隙
- 另外:頭端傳輸下行數(shù)據(jù)(給各個用戶)
- TDM上行信道:
- 采用TDM的方式將上行信道分成若干微時隙:MAP指定
- 站點采用分配給它的微時隙上行數(shù)據(jù)傳輸:分配
- 在特殊的上行微時隙中,各站點請求上行**微時隙:**競爭
- 各站點對于該時隙的使用是隨機訪問的
- 一旦碰撞(請求不成功,結(jié)果是:在下行的MAP中沒有為它分配,則二進制退避)選擇時隙上傳輸
6.4 交換局域網(wǎng)
6.4.1 鏈路層尋址和ARP
1.MAC地址
并不是主機或路由器具有鏈路層地址,而是它們的適配器(即網(wǎng)絡(luò)接口)具有鏈路層地址
鏈路層地址有各種不同的稱呼:LAN地址、物理地址或MAC地址
- MAC地址長度為6字節(jié),共有248個可能的MAC地址,地址的每個字節(jié)被表示為一對十六進制數(shù)
-
沒有兩塊適配器具有相同的地址
-
適配器的MAC地址具有扁平結(jié)構(gòu),而且不論適配器到哪里用都不會變化
當(dāng)某適配器要向某些目的適配器發(fā)送一個幀時,發(fā)送適配器將目的適配器的MAC地址插入到該幀中,并將該幀發(fā)送到局域網(wǎng)上
- 當(dāng)適配器接收到一個幀時,將檢查該幀中的目的MAC地址是否與它自己的MAC地址匹配
- 如果匹配,該適配器提取出封裝的數(shù)據(jù)報,并將該數(shù)據(jù)報沿協(xié)議棧向上傳遞
- 如果不匹配,該適配器丟棄該幀,而不會向上傳遞該網(wǎng)絡(luò)層數(shù)據(jù)報
有時某發(fā)送適配器的確要讓局域網(wǎng)上所有其他適配器來接收并處理它打算發(fā)送的幀。發(fā)送適配器在該幀的目的地址字段中插入一個特殊的MAC廣播地址:是48個連續(xù)的1組成的字符串(即以十六進制表示法表示的FF- FF- FF- FF- FF - FF)
IP地址和MAC地址的作用不同
- IP地址是分層的
- 一個子網(wǎng)所有站點網(wǎng)絡(luò)號一致,路由聚集,減少路由表
- 需要一個網(wǎng)絡(luò)中的站點地址網(wǎng)絡(luò)號一致,如果捆綁需要定制網(wǎng)卡非常麻煩
- 希望網(wǎng)絡(luò)層地址是配置的;IP地址完成網(wǎng)絡(luò)到網(wǎng)絡(luò)的交付
- mac地址是一個平面的
- 網(wǎng)卡在生產(chǎn)時不知道被用于哪個網(wǎng)絡(luò),因此給網(wǎng)卡一個唯一的標(biāo)示,用于區(qū)分一個網(wǎng)絡(luò)內(nèi)部不同的網(wǎng)卡即可
- 可以完成一個物理網(wǎng)絡(luò)內(nèi)部的節(jié)點到節(jié)點的數(shù)據(jù)交付
網(wǎng)絡(luò)地址和mac地址分離
-
分離好處
- 網(wǎng)卡壞了,ip不變,可以捆綁到另外一個網(wǎng)卡的mac上
- 物理網(wǎng)絡(luò)還可以除IP之外支持其他網(wǎng)絡(luò)層協(xié)議, 鏈路協(xié)議為任意上層網(wǎng)絡(luò)協(xié)議, 如IPX等
-
捆綁的問題
- 如果僅僅使用IP地址,不用mac地址,那么它僅支持IP協(xié)議
- 每次上電都要重新寫入網(wǎng)卡IP地址;
- 另外一個選擇就是不使用任何地址;不用MAC地址,則每到來一個幀都要上傳到IP層次,由它判斷是不是需要接受,干擾一次
2.地址解析協(xié)議
地址解析協(xié)議(ARP):轉(zhuǎn)換網(wǎng)絡(luò)層地址(例如,因特網(wǎng)的IP地址)和鏈路層地址(即MAC地址)
問題是:已知B的IP地址,如何確定B的MAC地址?
- 每臺主機或路由器在其內(nèi)存中具有一個ARP表,包含IP地址到MAC地址的映射關(guān)系
- TTL時間是指地址映射失效的時間
- 典型是20min
如果ARP表中當(dāng)前沒有該目的主機的表項,又該怎么辦
- A廣播包含B的IP地址的ARP查詢包
- B接收到ARP包,回復(fù)A自己的MAC地址
- 幀發(fā)送給A
- 用A的MAC地址(單播)
- A在自己的ARP表中,緩存IP-to-MAC地址映射關(guān)系 ,直到信息超時
- 發(fā)送A的IP數(shù)據(jù)報,該幀的目的MAC就是B的MAC地址
把ARP看成是跨越鏈路層和網(wǎng)絡(luò)層邊界兩邊的協(xié)議
3.發(fā)送數(shù)據(jù)報到子網(wǎng)以外
發(fā)送數(shù)據(jù)報:由A通過R到B,假設(shè)A知道B的IP地址
- 在R上有兩個ARP表,分別對應(yīng)兩個子網(wǎng)
- 在源主機的路由表中,發(fā)現(xiàn)到目標(biāo)主機的下一跳時111.111.111.110
- 在源主機的ARP表中,發(fā)現(xiàn)其MAC地址是E6-E9-00-17-BB-4B
編址:
- A創(chuàng)建數(shù)據(jù)報,源IP地址:A;目標(biāo)IP地址:B
- A創(chuàng)建一個鏈路層的幀,目標(biāo)MAC地址是R,該幀包含A到B的IP數(shù)據(jù)報
- 幀從A發(fā)送到R,幀被R接收到,從中提取出IP分組,交給上層IP協(xié)議實體
- R轉(zhuǎn)發(fā)數(shù)據(jù)報,數(shù)據(jù)報源IP地址為A,目標(biāo)IP地址為B
- R創(chuàng)建一個鏈路層的幀,目標(biāo)MAC地址為B,幀中包含A到B的IP數(shù)據(jù)報
6.4.2 以太網(wǎng)
1.以太網(wǎng)幀結(jié)構(gòu)
-
數(shù)據(jù)字段(46 ~ 1500字節(jié)):這個字段承載了IP數(shù)據(jù)報。以太網(wǎng)的最大傳輸單元 (MTU)是1500字節(jié)
- 如果IP數(shù)據(jù)報超過了1500字節(jié),數(shù)據(jù)報分片
- 如果IP數(shù)據(jù)報小于46字節(jié),填充到46字節(jié)
- 目的地址(6字節(jié)):這個字段包含目的適配器的MAC地址
- 源地址(6字節(jié)):包含了傳輸該幀到局域網(wǎng)上的適配器的MAC地址
- 類型字段(2字節(jié)):類型字段允許以太網(wǎng)復(fù)用多種網(wǎng)絡(luò)層協(xié)議
- CRC (4字節(jié)):使得接收適配器檢測幀中是否引入了差錯
-
前同步碼(8字節(jié)):以太網(wǎng)幀以一個8字節(jié)的前同步碼字段開始。
- 前7字節(jié)的值都是1010101,用于“喚醒”接收適配器,并且將它們的時鐘和發(fā)送方的時鐘同步
- 最后一個字節(jié)是10101011,的最后兩個比特(第一個出現(xiàn)的兩個連續(xù)的1)警告接收適配器, “重要的內(nèi)容”就要到來了
以太網(wǎng):無連接、不可靠的服務(wù)
- 無連接:幀傳輸前,發(fā)送方和接收方之間沒有握手
- 不可靠:接收方適配器不發(fā)送ACKs或NAKs給發(fā)送方
- 遞交給網(wǎng)絡(luò)層的數(shù)據(jù)報流可能有間隙
2.以太網(wǎng)技術(shù)
很多不同的以太網(wǎng)標(biāo)準
- 相同的MAC協(xié)議(介質(zhì)訪問控制)和幀結(jié)構(gòu)
- 不同的速率:2 Mbps、10 Mbps 、100 Mbps 、1Gbps 、10G bps
- 不同的物理層標(biāo)準
- 不同的物理層媒介:光纖,同軸電纜和雙絞線
6.4.3 鏈路層交換機
交換機的任務(wù)是接收入鏈路層幀并將它們轉(zhuǎn)發(fā)到出鏈路
到交換機自身對子網(wǎng)中的主機和路由器是透明的
**1.交換機轉(zhuǎn)發(fā)和過濾 **
過濾:決定一個幀應(yīng)該轉(zhuǎn)發(fā)到某個接口還是應(yīng)當(dāng)將其丟棄的交換機功能
轉(zhuǎn)發(fā):決定一個幀應(yīng)該被導(dǎo)向哪個接口,并把該幀移動到那些接口的交換機功能
交換機的過濾和轉(zhuǎn)發(fā)借助于交換機表完成,表項包含
- 一個MAC地址
- 通向該MAC地址的交換機接口
- 表項放置在表中的時間
過濾和轉(zhuǎn)發(fā)工作過程:
假定目的地址為DD-DD-DD-DD-DD-DD的幀從交換機接口x到達,索引表可能的情況如下:
- 表中沒有對于DD-DD-DD-DD-DD-DD的表項。交換機廣播該幀
- 表中有一個表項將DD-DD-DD-DD-DD-DD與接口x聯(lián)系起來。無須將該幀轉(zhuǎn)發(fā)到任何其他接口,交換機通過丟棄該幀執(zhí)行過濾功能即可
- 表中有一個表項將DD-DD-DD-DD-DD-DD與接口y≠x聯(lián)系起來。交換機通過將該幀放到接口y前面的輸出緩存完成轉(zhuǎn)發(fā)功能
假設(shè)一個幀從接口1到達交換機。交換機檢查它的表并且發(fā)現(xiàn)其目的地是在與接口1相連的局域網(wǎng)網(wǎng)段上網(wǎng)。這意味著該幀已經(jīng)在包含目的地的局域網(wǎng)網(wǎng)段廣播過了。因此該交換機過濾(即丟棄)了該幀。現(xiàn)在假設(shè)有同樣目的地址的幀從接口2到達。交換機再次檢查它的表并且發(fā)現(xiàn)其目的地址在接口1的方向上;因此它向接口1前面的輸出緩存轉(zhuǎn)發(fā)該幀
2.自學(xué)習(xí)
交換機的表是自動、動態(tài)和自治地建立的,即沒有來自網(wǎng)絡(luò)管理員或來自配置協(xié)議的任何干預(yù),即自學(xué)習(xí)的,通過以下方式實現(xiàn):
- 交換機表初始為空
- 對于在每個接口接收到的每個入幀,該交換機在其表中存儲:1)在該幀源地址字段中的MAC地址。2)該幀到達的接口。3)當(dāng)前時間。記錄了發(fā)送節(jié)點所在的局域網(wǎng)網(wǎng)段
- 如果在一段時間(稱為老化期)后,交換機沒有接收到以該地址作為源地址的幀,就在表中刪除這個地址
交換機是即插即用設(shè)備, 因為它們不需要網(wǎng)絡(luò)管理員或用戶的干預(yù)
3.鏈路層交換機的性質(zhì)
- 消除碰撞:在使用交換機(不使用集線器)構(gòu)建的局域網(wǎng)中,沒有因碰撞而浪費的帶寬
- 異質(zhì)的鏈路:交換機將鏈路彼此隔離,因此局域網(wǎng)中的不同鏈路能夠以不同的速率運行并且能夠在不同的媒體上運行
- 管理:除了提供強化的安全,交換機也易于進行網(wǎng)絡(luò)管理
4.交換機和路由器比較
- 都是存儲轉(zhuǎn)發(fā)設(shè)備,但層次不同
- 交換機:鏈路層設(shè)備(檢查鏈路層頭部)
- 路由器:網(wǎng)絡(luò)層設(shè)備(檢查網(wǎng)絡(luò)層的頭部)
- 都有轉(zhuǎn)發(fā)表:
- 交換機:維護交換表,按照MAC地址轉(zhuǎn)發(fā)
- 執(zhí)行過濾、自學(xué)習(xí)和生成樹算法
- 即插即用;二層設(shè)備,速率高
- 執(zhí)行生成樹算法,限制廣播幀的轉(zhuǎn)發(fā)
- ARP表項隨著站點數(shù)量增多而增多
- 路由器:維護路由表,執(zhí)行路由算法
- 路由算法能夠避免環(huán)路,無需執(zhí)行生成樹算法,可以以各種拓撲構(gòu)建網(wǎng)絡(luò)
- 對廣播分組做限制
- 不是即插即用的,配置網(wǎng)絡(luò)地址(子網(wǎng)前綴)
- 三層設(shè)備,速率低
- 交換機:維護交換表,按照MAC地址轉(zhuǎn)發(fā)
6.4.4 虛擬局域網(wǎng)
現(xiàn)代機構(gòu)的局域網(wǎng)常常是配置為等級結(jié)構(gòu)的,每個工作組(部門)有自己的交換局域網(wǎng),經(jīng)過一個交換機等級結(jié)構(gòu)與其他工作組的交換局域網(wǎng)互聯(lián),但有以下缺點:
- 缺乏流量隔離
- 交換機的無效使用
- 管理用戶
支持虛擬局域網(wǎng)VLAN的交換機允許經(jīng)一個單一的物理局域網(wǎng)基礎(chǔ)設(shè)施定義多個虛擬局域網(wǎng)
在一個VLAN內(nèi)的主機彼此通信,仿佛它們(并且沒有其他主機)與交換機連接
基于端口的VLAN:
- 交換機的端口(接口)由網(wǎng)絡(luò)管理員劃分為組
- 每個組構(gòu)成一個VLAN,在每個VLAN中的端口形成一個廣播域
物理上一個交換機,虛擬成多個局域網(wǎng)
端口 2 ~8屬于電氣工程系(EE) VLAN,而端口 9 ~ 15屬于計算機科學(xué)系(CS)VLAN (端口1和16未分配)。交換機端口8的用戶加入計算機科學(xué)系時,網(wǎng)絡(luò)操作員只需重新配置VLAN軟件,使得端口8與CS VLAN相關(guān)聯(lián)即可
來自電子工程系的流量怎樣才能發(fā)送到計算機科學(xué)系呢?
- 將VLAN交換機的一個端口(如上圖端口1)與一臺外部的路由器相連,并且將該端口配置為屬于EE VLAN和CS VLAN
連接具有兩個VLAN的兩臺VLAN交換機呢?
- 在每臺交換機上定義一個屬于CS VALN的端口(對EE VLAN也類似處理),并且如圖a所示將這兩個端口彼此互聯(lián)起來
- VLAN干線連接:如圖b中,每臺交換機上的一個特殊端口(左側(cè)交換機上的端口16, 右側(cè)交換機上的端口 1)被配置為干線端口,以互聯(lián)這兩臺VLAN交換機
一個交換機怎樣知道到達干線端口的幀屬于某個特定的VLAN呢?
一種擴展的以太網(wǎng)幀格式——802.1Q:
文章來源:http://www.zghlxwxcb.cn/news/detail-769964.html
VLAN標(biāo)簽:文章來源地址http://www.zghlxwxcb.cn/news/detail-769964.html
- 2字節(jié)的標(biāo)簽協(xié)議標(biāo)識符(TPID)字段(具有固定的十六進制值81-00)
- 2字節(jié)的標(biāo)簽控制信息字段(包含一個12比特的VLAN標(biāo)識符字段)
- 3比特優(yōu)先權(quán)字段(具有類似于IP數(shù)據(jù)報TOS字段的目的)組成
到了這里,關(guān)于《計算機網(wǎng)絡(luò):自頂向下方法》學(xué)習(xí)筆記——第六章:鏈路層的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!