【計算機網路】資料鏈路層總結
資料鏈路層
目錄
- 資料鏈路層概述
- 基本概念
- 資料鏈路層的三個基本問題
- 點對點通道的資料鏈路層
- 概述
- 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協議
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。