數據鏈路層
目錄
- 數據鏈路層概述
- 基本概念
- 數據鏈路層的三個基本問題
- 點對點信道的數據鏈路層
- 概述
- PPP協議的組成
- PPP幀的格式和要求
- PPP協議的工作狀態
- 廣播信道的數據鏈路層
- 局域網和以太網
- 廣播信道數據鏈路層的任務
- 適配器
- CSMA/CD協議的要點
- 以太網應用CSMA/CD協議
- 信道利用率
- 以太網的MAC層
- 擴展以太網
- 高速以太網以及問題
1. 數據鏈路層概述
基本概念
數據鏈路層討論的是如何把網絡層的數據封裝成幀,有效的進行通信傳輸。
鏈路是指:一個結點到另一個結點的具體的物理線路。
數據鏈路是指:在鏈路上加之實現通信協議的軟件和硬件。
實現數據鏈路層的硬件和軟件主要是網卡(但適配器工作在物理層和數據鏈路層)。
此層的協議數據單元PDU叫做幀。這是將數據報加之首部和尾部形成的。
數據鏈路層的三個基本問題
-
封裝成幀
指將數據報加之首部和尾部形成幀。首部和尾部是必要的,主要作用是幀定界、添加控制信息,以及差錯控制。
-
透明傳輸
如果是文本文件,可以用SOH/EOT充作幀開始、結束控制符,但數據中可能也出現SOH/EOT,這時需要加轉義字符ESC,如ESC-SOH,ESC-EOT,ESC-ESC,以達到透明傳輸。
這里的透明指的是,數據鏈路層對傳輸的數據透明,傳輸的數據實際上感受不到數據鏈路層所做的操作。
-
差錯檢測
奇偶檢測、循環冗余CRC等。
采用CRC,采用n+1位除數(由生成多項式得到),得到n位余數,稱作幀檢驗序列FCS。
檢測時,將傳輸得到的數據除以同一個除數,若余數0,則可以說無差錯。
若有差錯,直接丟棄,除此之外,不做任何操作。
故差錯檢測只是檢測了bit錯誤,並不能解決幀失序、丟失、重復等問題。
也就是說,數據鏈路層實現的是盡最大努力的交付,即不可靠的傳輸。
2. 點對點信道的數據鏈路層
概述
點對點信道主要用於用戶同ISP(驗證身份)通信時。早期使用高級數據鏈路控制HDLC,已經淘汰,現在用的是PPP協議,即point-to-point protocol,點對點通信協議。
PPP協議的組成
由三個部分組成:
-
一個將數據報封裝成幀的方法
-
一個用來建立、配置和測試數據鏈路連接的鏈路控制協議LCP。
通信雙方用以協商。
-
一套網絡控制協議。
每一個協議支持不同的網絡層協議,也就是說PPP支持不同的網絡層協議。
PPP協議幀的格式和要求
PPP幀的格式如下:
格式划分 | F | A | C | 網絡層協議 | 數據報 | FCS | F |
---|---|---|---|---|---|---|---|
具體內容 | 7E | FF | 03 | 如C021(IP) | 數據部分 | - | 7E |
字節數 | 1 | 1 | 1 | 2 | <=1500 | 2 | 1 |
其中,F,A,C都是固定的,A是地址,C字段實際上無用。
實現透明傳輸:
PPP協議為實現透明傳輸,采用的策略是:
-
異步:字節填充(字符填充)。
在數據部分,(7E->7D,5E)、(7D->7D,5D)、(小於0x20的,前面添加7D)
-
同步:零比特填充
即每遇到5個1,添加一個0。
PPP協議工作狀態
<課本P81>,重點。
3. 廣播信道的數據鏈路層
局域網和以太網
局域網(LAN)指的是一個網絡為一個單位所擁有,地理位置和站點數據有限,統稱。局域網的工作跨越了物理層和數據鏈路層。
以太網是局域網的一種實現方式,但如今以太網占據了絕大多數市場,故某種意義上,以太網就是局域網。
以外網的標准有DIX Ethernet V2和IEEE 802.3。二者差別不大,現在廣泛使用的是DIX Ethernet V2。
IEEE 802.3把以太網的數據鏈路層划分為:邏輯鏈路控制(LCP)和媒體接入控制(MAC),但LCP實際上並無用,現在只使用MAC層。
以外網的其他特點:
- 以太網采用的是盡最大努力的交付,不可靠的交付。
- 以太網采用使用CSMA/CD協議。
- 以太網采用的是曼徹斯特編碼,基帶信號傳輸。這種編碼中間躍變,由高->低為1,反之為0。
廣播信道數據鏈路層的任
廣播信道主要由總線式網絡,環形網,星形網等。
廣播信道的數據鏈路層討論的是如何在一個網絡中實現一對一、一對多通信。這里要解決的問題是,總線網絡上不能有兩個站點同時發送數據,否則就稱碰撞(沖突)。
必須有解決這個問題的協議,這就是CSMA/CD協議。
但首先應了解其他幾個概念。
適配器
即網卡,實現了數據鏈路層協議,工作於物理層和數據鏈路層。
適配器的另一個作用是實現並行通信和串行通信的轉換。外網--適配器為串行,而適配器--主機為並行。
適配器還配有ROM,實現緩存,這樣可以實現不同速率的兼容。
另外,需要注意,適配器中的ROM中是硬件地址,即MAC地址,而在計算機的存儲器中存有IP地址,即軟件地址。
CSMA/CD協議的要點
CSMA/CD協議全稱:載波多點監聽/碰撞檢測。他解決的問題是如何在總線局域網上進行“有效”通信。
CSMA/CD的要點如下:
-
多點接入
CSMA/CD協議適用於廣播信道,允許總線上多個站點接入。協議的核心是載波監聽和碰撞檢測。
-
載波監聽
由於總線型廣播信道上同一時刻只允許一個站點發送數據,故站點需要時時檢測信道上是否有其他站點發送數據,這就是載波監聽。檢測信道通過才能獲得發送權。
載波監聽發生在:一個站點發送數據之前,以及發送數據的過程中。一旦發現有其他站點發送數據,則立即停止發送。
順便指出,信道上發送的是基帶信號,並沒有載波,“載波”一詞為借用。
-
碰撞檢測(沖突檢測)
碰撞檢測就是“邊發送邊監聽”。適配器邊發送數據邊檢測信道上信號變化情況,看是否發生了 碰撞。若有兩個計算機同時發送數據,則信道上的信號電壓變化幅度會超過一定的門限值,則計算機(適配器)能夠發現這種變化,后續作出進一步響應。
Question:既然每個站點發送數據前,信道已經清空,為什么發送過程中還要碰撞檢測(可能發生碰撞)?
Answer: 信號傳播需要時間。1Km的電纜傳播時延為5us,記單程端到端時延為\(t\),若A站點向B站點發送數據后,經過極短時間\(e\)(\(e\)小於\(t\) us),數據尚未到達B,\(e\)時刻B依然檢測到信道為空,此時B也發送數據,那么在時間\(t-e/2\) 時刻,發生碰撞,則A端在\(2t-e\)時刻檢測到碰撞發生。
另外,定義單程端到端時延的兩倍為爭用期,因為從上面分析可以看到,A最遲在\(2t\)時刻檢測到碰撞發生(當\(e\)趨向於0),在A發送數據\(2t\)時間內若不發生碰撞,則之后不會發生碰撞。下面對以太網應用CSMA/CD協議的具體規定。
以太網應用CSMA/CD協議
以太網應用CSMA/CD協議,實現了半雙工通信,其具體的規定和要點如下:
-
以太網發送數據采用曼徹斯特編碼。
-
發送前(中)載波監聽。
-
爭用期2t定義為51.2us,對於10Mbit/s的以太網,可以算出爭用期內發送了512bit數據,故也稱作512比特時間。在這個時間內,傳播的距離約為5km,但實際上達不到這么多。
由於爭用期內必須發送完512bit才能檢測是否發生了碰撞,故以太網規定最短幀長為512bit,即64字節,若數據不夠,則需要填充。
-
若檢測到發生碰撞,等到一段時間后再發送。具體的等待時間采用截斷二進制指數退避算法,即:
在區間\([0,1,3,...(2^k-1)]\)內隨機選出一個數\(r\),等待\(r×2t\)時間。即隨機個爭用期的時間。
具體\(k\)為:\(重傳次數,k = Min(重傳次數,10)\)。
另外,規定重傳次數達到16次,則表示想發送數據的站點太多,丟棄該幀,向高層報告。
-
強化碰撞策略。一旦檢測到發生碰撞,則立即發送32或48bit的人為干擾信號,讓所有站點都知道發生了碰撞。
-
幀最小間隔為9.6us。因為以太網的幀並沒有個幀結束定界,故最小間隔是應有的,這樣也可以保證接收站點來得及緩存清理和處理。
-
時間計算。若發送時延為\(t0\),傳播時延為\(t\),A發送完畢到檢測到發生碰撞的時延為\(tB\),強化信號時延為\(tJ\),則因為碰撞浪費的時延為\(tB+tJ\),總線被占用的時延為\(tB+tJ+t\),因為最后1bit還要經過一個單程端到端時延。
信道利用率
說明以太網信道利用率。
發送一幀的時間是(若干個爭用期時間\(2t\))+發送時延\(T_0\) + 單程端到端時延\(t\)。可見,提高信道利用率,就要減小\(t\)和\(T0\)之比。定義:$a = \frac {t} {T_0} \(,希望\)a$越小越好。
信道極限利用率為:假設發生碰撞,極限利用率為:
\(S_{max}=\frac{T_0}{T_0+t}=\frac{1}{1+a}\) ,可見,\(a\)越小越好。
以太網的MAC層
上面提到過,對於廣播信道,802.3將數據鏈路層划分為LLC和MAC,但實際上LLC無用,只討論MAC。MAC就是媒體接入控制的意思。因而,實際上廣播信道的數據鏈路層就是指MAC層。
MAC地址
MAC地址是一個硬件地址,於網卡的ROM中。他是一個48bit即6個字節的序列,現在使用的是EUI-48。一個地址是一個站的名字或者標識符,它由注冊管理機構RA同一頒發。前三個字節為公司標識符,即組織唯一標識符OUI,這是生產公司申請到的。后三個字節為擴展標識符,為公司自己制定。
IEEE規定,MAC地址的第一字節的最低位為I/G位,標志是I(individual)或者G(group),為I時為0,表示單個站地址,G時為1,表示組地址,用來多播。
MAC地址的第一字節的倒數第二位為G/L位,表示全球管理(0)/本地管理(1),若不申請全球OUI,也可以使用本地管理,即將G/L位置1。
這樣,實際上全球MAC共有\(2^{44}\)個。
局域網內就根據MAC地址進行發送、接受數據,當某站點接收到幀,檢查MAC目的地址是否與本機MAC相匹配,不匹配則不接受。
發送的幀包括:單播幀、廣播幀(全1)和多播幀。
MAC幀格式
MAC幀(+最前面插入8字節)格式如下:
前同步碼 | 幀開始定界符 | 目的地址 | 源地址 | 類型 | 數據 | FCS |
---|---|---|---|---|---|---|
1010..10 | 1010101011 | 目的MAC | 本站MAC | 網絡層類型 | 數據報 | CRC檢驗 |
7字節 | 1字節 | 6字節 | 6字節 | 2字節 | 46-1500字節 | 4字節 |
- 上面的表格中,前8個字節不屬於MAC幀內容,只是為了幀同步和開始定界,CRC也不檢測前8字節是否出錯。
- MAC幀的范圍是64字節-1518字節,數據部分是46-1500字節。
擴展以太網
擴展以太網主要從下面兩方面。
物理層上擴展以太網
工作在物理層的轉發器、集線器,將多個局域網連接起來,擴大碰撞域,但並不增加吞吐量。
數據鏈路層擴展以太網
使用工作在數據鏈路層的以太網交換機,擴大以太網。交換機可以實現全雙工,並行,存儲數據幀緩存,以及自學習交換表(地址表)進行轉發。這種方式增加了吞吐量。
應注意自學習交換表的方法,P100,另外,為了防止數據在物理環路上繞圈子,采用“生成樹協議STP”,將某些鏈路在邏輯上切斷,其過程類似於最小生成樹。
虛擬局域網
不同局域網內的幾個計算機可以虛擬的連接起來構成虛擬局域網VLAN,以實現某些特定目的。
VLAN就是由一些局域網網段構成的與物理位置無關的邏輯組。
VLAN的幀增加了4個字節的VLAN標識符,標記此站點屬於哪個VLAN。
這樣可以防止廣播風暴。
器件
總結工作在物理層的:轉發器、集線器hub。
工作於數據鏈路層:交換機。
工作於物理+數據鏈路層:適配器。
高速以太網以及問題
傳統以太網指的是10BASE T,意義10:10Mbit/s,BASE:基帶信號,T:雙絞線。
之前還有:
10BASE 5:10:10Mbit/s,BASE:基帶信號,5:500m粗纜。
10BASE 2:10:10Mbit/s,BASE:基帶信號,2:200m細纜。
現在帶寬逐漸提高,已經有:
100BASE T:100:100Mbit/s,BASE:基帶信號,T:雙絞線。
吉比特以太網、10吉比特以太網等。
100BASE T
將帶寬提高10倍,幀格式不變。參數\(a=\frac{t}{T_0}\),\(T_0\)變為\(1/10\),則\(a\)增加10倍,信道利用率降低。100 BASE T采用的策略是保證最短幀長不變,爭用期減少到\(1/10\),即爭用期為5.12us,幀最小間隔是0.96us,(這其實是將物理線路最長長度減少到\(1/10\),實際中100BASE-TX是100m)
吉比特以太網
發送速率1G bit/s。幀格式不變,吉比特以太網可以工作在半雙工和全雙工下,保持\(a\)不變,采取:
-
半雙工下
仍然保持物理線路最長為100m(與100BASE-T同),最短幀長依然為512bit(64字節),但爭用期不再是512bit時間,而是512字節時間(擴大8倍),這樣,發送不足512字節的幀,需要進行填充處理,使得達到512字節,這叫載波延伸。另外,還有分組突發功能,第一個短幀采用載波延伸,后面跟着的短幀則一個接一個發送,形成長度達到1500字節的數據。(這是為了保證不要每個短幀都填充,只要過了爭用期就好了。)
-
全雙工下
不需要載波延伸和分組突發,因為不會發生沖突。
10吉比特以太網(10GE)
幀格式不變,只工作於全雙工,不使用CSMA/CD協議,沒有爭用期之說。
NOTE:半雙工下采用CSMA/CD,全雙工不用CSMA/CD。