网络-数据链路层回顾
數據鏈路層是干嘛的?
網絡層是研究分組怎樣從一個網絡通過路由器轉發到另一個網絡
數據鏈路層主要研究在同一個局域網中,分組怎樣從一個主機傳送到另一個主機(不經過路由器)
數據鏈路層主要使用兩種信道:
點對點信道:使用一對一的點對點通信方式,使用PPP協議。
廣播信道:使用一對多的廣播通信方式,使用CSMA/CD協議。
數據鏈路層的三個需要解決的基本問題:封裝成幀、透明傳輸、差錯檢測
了解以太網MAC層的硬件地址
適配器、轉發器、集線器、網橋、以太網交換機的作用以及適用場合
兩個主機進行通信時數據鏈路層的地位
主機H1通過電話線上網,中間經過三個路由器(R1,R2和R3)連接到遠程主機H2。中間經過的網絡可以是多種的。
如下圖中所示的:電話網、局域網、廣域網。
當主機H1向H2發送數據時,從協議的層次上觀察,數據的流動如下圖所示。
主機H1和H2都有完整的五層協議棧,但是由路由器轉發分組時使用的協議棧只有下面三層。
數據進入路由器后先從物理層開始最后上升的網絡層,在轉發表中查找到下一跳的地址后,再下到物理層轉發出去。
當我們專門研究數據鏈路層的問題時,我們可以只關心在協議棧中水平方向的各個數據鏈路層,如下圖所示。
H1的鏈路層---->R1的鏈路層---->R2的鏈路層---->R3的鏈路層---->H2的鏈路層
H1和H2的通信可以看成是由四段不同的數據鏈路層通信組成,即:H1--->R1,R1---->R2,R2---->R3,R3---->H2
這四段不同的鏈路層可能采用不同的鏈路層協議。
使用點對點信道的數據鏈路層
數據鏈路和幀
首先我們需要區分什么是鏈路什么是數據鏈路
- 鏈路(物理鏈路):就是從一個結點到相鄰結點的一段物理線路(有線或無線),中間沒有任何其他的交換結點。
兩個計算機之間的通信路徑,往往需要經過許多這樣的鏈路。鏈路只是通信路徑的組成部分
- 數據鏈路(邏輯鏈路):數據鏈路層上傳輸數據,在有物理線路之外,還需要有一些必要的通信協議來控制這些數據的傳輸。若把實現這些協議的硬件和軟件加到鏈路上,就構成了數據鏈路。
數據鏈路層一般通過網絡適配器(硬件和軟件)來實現這些協議
- 幀:點對點信道的數據鏈路層的協議數據單元。
數據鏈路層把網絡層交下來的數據構成幀發送到鏈路上,以及把接收到的幀中的數據取出并上交給網絡層
網絡層協議數據單元---IP數據報(數據報、分組、包)
點對點數據鏈路層進行通信的主要步驟:
? ? ? ?假設兩個結點AB之間進行,則只需關注這兩個節點的網絡層、數據鏈路層、物理層
?
需要解決的三個基本問題
- 封裝成幀
什么是封裝成幀?
在一段數據的前后分別添加首部和尾部,這樣就構成了一個幀。
如何封裝成幀?
網絡層的IP數據報傳送到數據鏈層就成為幀的數據部分。
在幀的數據部分的前面和后面分別添加上首部和尾部,就構成一個完整的幀。
這個完整的幀就是數據鏈路層的數據傳送單元
幀的首部和尾部的作用
1.進行幀界定:接收到物理層上交的比特流后,就能根據首部和尾部的標記,從收到的比特流中識別幀的開始和結束
2.添加一些必要的控制信息
幀界定
幀的開始和結束的標記使用專門指明的控制字符:
在一個幀的最前面添加SOH(Start Of Header)控制字符,表示幀的首部開始
在一個幀的末尾添加EOT(End Of Transmission)表示幀的結束。
SOH和EOT只是控制字符的名稱。并不是真正的字符S、O、H(或者E、O、T)。
它們十六進制編碼分別為01(二進制為00000001)04(二進制為00000100)
最大傳送單元MTU(Maximum Transfer Unit)——每一種鏈路層協議都規定的所能傳送的幀的數據部分長度上限
- 透明傳輸
什么是透明傳輸?
無論什么比特組合的數據都能通過這個數據鏈路層。也就是說數據鏈路層對這些數據來說是透明的
怎么實現透明傳輸?
因為幀的開始和結束的標記使用專門指明的控制字符。
因此,所傳輸的數據中的任何8比特的組合一定不允許和用作幀界定的控制字符的比特編碼一樣。
為了解決透明傳輸問題,我們就需要解決在數據中可能出現的控制字符SOH或者EOT不被解釋為控制字符
解決了以上問題就能實現透明傳輸。
解決辦法:字節填充或者字符填充
在發送端的數據鏈路層的數據中出現控制字符 SOH 或者 EOT 的前面插入一個轉義字符 ESC (其十六進制編碼是1B,二進制是00011011)
如果轉義字符也出現在數據當中,解決方法仍然是在轉義字符前面插入一個轉義字符
在接收端的數據鏈路層在把數據送往網絡層之前刪除這個插入的轉義字符,因此當接收端收到連續兩個轉義字符時,就刪除其中前面的一個。
以上操作被稱為字節填充(byte stuffing)或字符填充(character stuffing)
- 差錯檢測
在傳輸過程中可能會產生差錯,如0變成1,或者1變成0。這稱為比特差錯。
在傳輸過程中沒有出現比特差錯,但出現幀丟失、幀重復、幀失序這三種情況,則屬于傳輸差錯,比特差錯是傳輸差錯的一種
在一段時間內,傳輸錯誤的比特占所傳輸比特總數的比率稱為誤碼率BER(Bit Error Rate)
如何解決比特差錯?
目前在數據鏈路層廣泛使用 循環冗余檢驗CRC(Cyclie Redundancy Check) 的檢錯技術
原理:在發送端的數據鏈路層傳輸的數據后面添加冗余碼
? ? ? ? ? ?在接收端的數據鏈路層收到的數據以幀為單位進行CRC檢驗
? ? ? ? ? ?檢驗得出的余數是否為0。是,表示無差錯就接受該幀;不是,表示有差錯,但不確定哪里出錯就丟棄該幀。
為了進行檢錯而添加的冗余碼稱為 幀檢測序列FCS(Frame Check Sequence)
如何解決傳輸差錯?
在CRC檢錯的基礎上,增加幀編號、確認和重傳機制
即:收到正確的幀就要向發送端發送確認。
? ? ? ?發送端在一定的期限內若沒有收到對方的確認,就認為出現了差錯,因而就進行重傳,直到收到對方的確認為止。
?
為了提高通信效率,通信質量良好的有線傳輸鏈路,數據鏈路層協議不使用確認和重傳機制
也就是不要求數據鏈路層向上提供可靠傳輸的服務。如果出現差錯,那么改正的任務交給上層協議
?? ??? (如,運輸層的TCP協議)完成。?? ?
通信質量較差的無線傳輸鏈路,數據鏈路層協議使用確認和重傳機制,數據鏈路層向上提供可靠傳輸的服務,如無線網絡
?
點對點協議PPP
由來:因為早期通信線路質量不好,因此在數據鏈路層使用的協議是能實現可靠傳輸的 高級數據鏈路控制HDLC(High-level Data Link Control)協議
隨著通信線路質量的提高,現在HDLC已經很少使用了,改為使用相對簡單的PPP協議
PPP協議就是用戶計算機和ISP進行通信所使用的數據鏈路層協議
每一個ISP都從因特網的管理機構或從一個更大的ISP申請到一批IP地址。ISP擁有與因特網通過高速通信專線相連的路由器。大的ISP還擁有屬于自己的通信線路,小的ISP則向電信公司租用通信線路。用戶在某一個ISP繳費登記后(或購買了該ISP的上網卡),就可用自己的計算機通過調制解調器、電話線路接入到該ISP。用戶在接通ISP后,ISP就分配給該用戶一個臨時IP地址。用戶計算機在獲得了臨時的IP地址后,就成為連接在因特網上的主機,因而就可以使用因特網所提供的各種服務,當用戶結束通信后,ISP就把剛才分配給該用戶的IP地址收回,以便再分配給后面接通ISP的其他用戶使用。
PPP協議應滿足的需求
- 簡單
因為IEFE設計的因特網體系結構中把最復雜的部分放在TCP協議中。
網際層協議IP則相對簡單提供不可靠傳輸,因此下一層的數據鏈路層不必提供比IP更復雜的協議
因此數據鏈路層的幀不需要糾錯、不需要序號、不需要流量控制
- 封裝成幀
PPP協議必須規定特殊的字符為幀定界符
- 透明性
PPP協議必須保證數據傳輸的透明性,傳輸的數據中有和定界符一樣的比特組合時,需要解決這個問題(字節或者字符填充)
- 多種網絡層協議
PPP協議必須能夠在同一條物理鏈路上同事支持多種網絡層協議的運行,如IP何IPX等
- 多種類型鏈路
PPP協議還必須能夠在多種類型的鏈路上運行
- 差錯檢測
能夠對接收端收到的幀進行檢測,并立即丟掉有差錯的幀
- 檢測連接狀態
能夠自動檢測鏈路是否處于工作狀態
- 最大傳輸單元
能夠設置最大傳送單元MTU的標準默認值(MTU的標準默認值為1500字節)
- 網絡層地址協商
PPP協議必須提供一種機制使通信的兩個網絡層(如兩個IP層)的實體能夠通過協商通知或能夠配置彼此的網絡地址
協商的算法應盡可能簡單,并且嫩夠在所有的情況下得出協商結果
- 數據壓縮協商
PPP協議必須提供一種方法來協商使用數據壓縮算法
?
PPP協議的組成
PPP協議由三部分組成
1.一個將IP數據報封裝到串行鏈路的方法
PPP既支持異步鏈路(無奇偶檢驗的8比特數據),也支持面向比特的同步鏈路。
IP數據報在PPP幀中就是其信息部分,該大小受MTU控制
2.一個用來建立,配置和測試數據鏈路連接的 鏈路控制協議LCP(Link Control Protocol)
3.一套 網絡控制協議NCP(Network Control Protocol),其中的每一個協議支持不同的網絡層協議,如IP、OSI的網絡層、DECnet等
?
PPP協議的幀格式
4個首部字段(分別為1、1、1、2字節)+信息字段(不超過1500字節)+尾部字段(分別為2、1字節)
各字段含義
首部字段:四個字段
第一個字段:標志字段 F(Flag),幀定界符,表示一個幀開始。規定為0x7E(十六進制的7E,二進制01111110),1字節。
注意:連續兩個幀之間只需要一個標志字段。如果出現兩個標志字段,表示一個空幀,應丟棄
第二個字段:地址字段 A。規定為0xFF(即11111111),1字節。
第三個字段:控制字段 C。規定為0x03(即00000011),1字節。
第四個字段:協議字段。2字節。
? ? ? ? ? ? ? ? ? ? ?規定協議字段為0x0021時,PPP幀的信息字段就是IP數據報
? ? ? ? ? ? ? ? ? ? ?若協議字段為0xC021時,PPP幀的信息字段就是LCP的數據
? ? ? ? ? ? ? ? ? ? ?若協議字段為0x8021時,PPP幀的信息字段就是網絡層的控制數據
?
信息字段:長度可變,不超過1500字節
尾部字段:兩個字段
第一個字段:使用CRC的幀檢驗序列FCS,1字節。
第二個字段:標志字段 F(Flag)。幀定界符,表示一個幀結束。規定為0x7E(十六進制的7E,二進制01111110),1字節。
?
字節填充
信息字段中出現和標志字段一樣的比特(0x7E)組合時
需要使用一些方法使這種形式上和標志字段一樣的比特組合不出現在信息字段中
當PPP使用異步傳輸(逐個字符的傳送)時,把轉義字符定義為0x7D(即01111101),并使用字節填充
1.把信息字段中出現的每一個0x7E字節轉變成2字節序列(0x7D,0x5E)
2.若信息字段中出現一個0x7D的字節(即出現了和轉義字段一樣的比特組合),則把0x7D轉變成2字節序列(0x7D,0x5D)
3.若信息字段中出現ASCII碼的控制字符(即數值小于0x20的字符),則在該字符前面加入一個0x7D字節,并改變該字符的編碼
零比特填充
PPP協議進行同步傳輸(一連串的比特連續傳送)時,采用零比特填充的方法來實現透明傳輸
標志字段是0x7E,二進制為01111110
1.在發送端,先掃描整個信息字段(硬件或者軟件)只要發現有連續的5個1就立即填入一個0,保證不出現6個連續的1。
2.在接收端收到一個幀時,先找到標志字段 F 確定一個幀的邊界
? ?然后再用硬件對其中的比特流進行掃描
? ?每發現5個連續1時,就把這5個連續1后的一個0刪除
?
PPP協議的工作狀態
PPP鏈路初始化過程:
設備之間無鏈路---------> 物理鏈路----------> LCP鏈路---------->已鑒別的LCP鏈路---------->已鑒別的LCP鏈路和NCP鏈路
?
PPP鏈路的起始和終止狀態永遠是 鏈路靜止(Link Dead)狀態
此時用戶PC和ISP的路由器之間并不存在物理層的連接
1.當用戶撥號接入ISP后,就建立了一條從用戶PC到ISP的物理鏈路。
? ?用戶在屏幕上點擊連接按鈕,路由器就能夠檢測調制解調器發出的載波信息。
? ?雙方就建立了物理層連接,PPP進入 鏈路建立(Link Establish)狀態。
? ?目的是建立鏈路層的LCP連接
2.用戶PC向ISP發送一系列的?鏈路控制協議LCP分組(封裝成多個PPP幀),以便建立連接
? ?LCP開始協商一些配置選項,發送LCP的配置請求幀(Configure-Request)
? ?該幀是一個PPP幀,協議字段設置為LCP對應的代碼,信息字段包含特定的配置請求
? ?LCP的配置選項包括:
? ?鏈路上的最大幀長
? ?所使用的的鑒別協議(authentication protocol)的規約(有的話)
? ?不使用PPP幀中的地址和控制字段(因為這兩個字段的值是固定的,沒有任何信息量,可以在PPP幀的首部中省略這兩個? 字節)
3.這些分組及其響應選擇了將要使用的一些PPP參數
? ?發送了LCP的配置請求幀后,獲得響應。
? ?鏈路的另一端可以發送以下幾種響應中的一種:
? ?配置確認幀(Configure-Ack):所有選項都接受
? ?配置否認幀(Configure-Nak):所有選項都理解但不接受
? ?配置拒絕幀(Configure-Reject):選項有的無法識別或不能接受,需要協商
? ?協商結束后就建立了LCP鏈路,接著就進入 鑒別(Authenticate)狀態。鑒別狀態只允許傳送LCP協議的分組、鑒別協議的分組、以及監測鏈路質量的分組。
? ?如果使用口令鑒別協議PAP(Password Authtication Protocol),則需要發起通信的一方發送身份標識符和口令,可以允許用戶重試若干次。
? ?需要更好的安全性,則可使用更復雜的口令握手鑒別協議CHAP(Challenge-Handshake Authtication Protocol),在CHAP協議下,若鑒別身份失敗,則轉到 鏈路終止(Link Terminate)狀態。成功,則進入 網絡層協議(NetWork-Layer Protocol)狀態
4.接著進行網絡層配置,網絡控制協議NCP 給新接入的用戶分配一個臨時的IP地址
? ?PPP鏈路兩端的網絡控制協議NCP根據網絡層的不同協議互相交換網絡層特定的網絡控制分組。通過同一個PPP協議進行通信
? ?如:IP協議,就使用NCP中支持IP的協議---IP控制協議IPCP(IP Control Protocol).
? ? ? ? ? 把IPCP分組封裝成PPP幀(協議字段為0x8021)在鏈路上傳送。
? ? ? ? ??網絡層配置完后,鏈路進入到 鏈路打開(Link Open)狀態,此時就可以進行數據通信。
此時,用戶就是因特網上的一個有IP地址的主機了
數據傳輸結束后,由鏈路的一端發出終止請求LCP分組(Terminate-Request)請求終止鏈路連接
在收到對方發來的終止確認LCP分組(Terminate-Ack)后,轉到 鏈路終止狀態
當調制解調器載波停止后,回到 鏈路靜止狀態
通信完畢,NCP釋放網絡層連接,收回原來分配出去的IP地址,LCP釋放數據鏈路層連接,最后釋放物理層連接。
PPP協議不是一個純粹的數據鏈路層協議,還包含了物理層和網絡層的內容
?
使用廣播信道的數據鏈路層
廣播信道可以進行1對多通信,局域網使用的就是廣播信道。
局域網的數據鏈路層
局域網
局域網特點:網絡為一個單位所擁有,且地理范圍和沾點數目均有限
優點:1.有廣播功能,從一個站點可以很方便的訪問全網。局域網上的主機可以共享連接在局域網上的各種硬件和軟件資源
? ? ? ? ? ?2.便于系統的擴展和逐漸的演變,各設備的位置可靈活調整和改變
? ? ? ? ? ?3.提高了系統的可靠性、可用性、和生存性
局域網按照網絡拓撲進行分類:星形網(通過集線器)、環形網、總線網。
為了讓眾多用戶能夠合理而方便地共享通信媒體資源,我們使用共享信道技術
通過兩種方法來解決:
- 靜態劃分信道
如:頻分復用、時分復用、波分復用、碼分復用等。用戶只要分配到了信道就不會和其他用戶發生沖突。代價高,但不適用于局域網
- 動態媒體接入控制(也叫多點接入)
信道不在用戶通信時固定分配給用戶,又分為兩類:隨機接入、受控接入
隨機接入:所有用戶隨機發送信息,但是如果恰巧兩個用戶在同一時刻發送信息,則會發生碰撞,因此,必須有解決碰撞的網絡協議
受控接入:所有用戶必須服從一定的控制。如:分散控制的令牌局域網和集中控制的多點線路探詢(也叫輪詢)
以太網的標準
以太網:一種基帶總線局域網--演變成-->兩個標準的局域網:DIX Ethernet V2的局域網與 IEEE的802.3標準的局域網
因為商業原因802委員會制定了幾個不同的局域網標準,如802.4令牌總線網、802.5令牌環網等。
802委員會把數據鏈路層拆分成兩個子層:
邏輯鏈路控制LLC(Logical Link Control)子層
媒體接入控制MAC(Medium Access Control)子層
接入到傳輸媒體有關的內容都放在MAC子層,LLC子層則與傳輸媒體無關
?
通過總線可以實現廣播通信方式:當一臺計算機發送數據時,總線上所有計算機都能檢測到這個數據。
再通過每個計算機的MAC地址和數據幀中的目的地址匹配達到廣播中的一對一通信
以太網特點:
以太網提供的服務是盡最大努力的交付,是不可靠的交付。只處理傳輸差錯,通過CRC檢測。差錯幀則交給高層協議處理
以太網是隨機接入,通過CSMA/CD(載波監聽多點接入/碰撞檢測 Carrier Sense Multiple Access with Collision Detection)來解決碰撞
以太網發送的數據都是用曼徹斯特編碼的信號
以太網規定了一個最短幀長為64字節,即512bit。6+6+2+46+4
因此,凡是長度小于64字節的幀都是由于沖入而異常中止的無效幀
?
適配器的作用
本來是主機箱內插入的一塊網絡接口板(或者是在筆記本電腦中插入一塊PCMCIA卡---個人計算機存儲器卡接口適配器)就是現在的網卡,現在基本都集成在主板上了,適配器上裝有處理器和存儲器(RAM和ROM)
適配器與局域網之間的通信通過電纜或雙絞線等以串行方式進行
適配器與計算機之間的通信則通過I/O總線以并行傳輸方式進行
因此,適配器的一個重要作用就是進行數據串行傳輸和并行傳輸的轉換,通過安裝緩存來提高效率
適配器收到正確的幀,就使用中斷來通知該計算機并交付協議棧中的網絡層
計算機要發送IP數據報時,就由協議棧把IP數據報向下交給適配器,組裝成幀后發送到局域網
注意:計算機的硬件地址就在適配器的ROM中。
? ? ? ? ? ?計算機的軟件地址——IP地址則在計算機的存儲器中
CSMA/CD協議
CSMA/CD(載波監聽多點接入/碰撞檢測 Carrier Sense Multiple Access with Collision Detection)
多點接入:表明是總線型網絡
載波監聽:就是檢測信道。不管在發送前,還是發送中,每個站都必須不停地檢測信道
發送前檢測信道,是為了獲取發送權,如果檢測出已經有其他站在發送,則自己就暫時不許發送數據,必須要等到信道變為空閑時才能發送。
發送中檢測信道,是為了及時發現有沒有其他站的發送和本站發送的碰撞,這就是碰撞檢測。
碰撞檢測:也就是邊發送邊監聽。即適配器邊發送邊檢測信道上的信號電壓的變化情況,以便判斷自己在發送數據時其他站是否也在發送數據。
由此可見,在使用CSMA/CD協議時,一個站不可能同時進行發送和接收(但必須邊發送邊監聽信道)。
因此使用CSMA/CD協議的以太網不可能進行全雙工通信,只能進行雙向交替通信(半雙工通信)
以太網的MAC層
硬件地址、又叫物理地址或MAC地址(因為這種地址用在MAC幀中)
名字指出我們所要尋找的那個資源,地址指出那個資源在何處,路由告訴我們如何到達該處
MAC地址:6字節(48位)的全球地址,局域網上的每一臺計算機中固化在適配器的ROM中的地址
前三個字節由IEEE的注冊管理機構RA(Registration Authority)分配,廠家必須購買
后三個字節則由廠家自行分配。
最后得到的48位的地址稱為EUI-48(擴展的唯一標識符 Extended Unique Identifier)
第一字節最低位為I/G位(Individual/Group):為0表示一個單個站地址,為1表示組地址
第一字節的最低第二位為G/L位(Global/Local):為0表示全球管理,是向IEEE的RA購買的。為1表示本地管理,用戶可以任意分配網絡上的地址,以太網幾乎不理會這個G/L位
字節順序有兩種:
第一種:就是把每個字節的最低位寫在最左邊(最左邊的最低位是第一位),IEEE802.3標準就是采用這種記法
第二種:是把每一個字節的最高位寫在最左邊(最左邊的最高位時第一位)
兩種記法都是按照順序傳輸的
適配器從網絡上每收到一個MAC幀就先用硬件檢查MAC幀中的目的地址。
如果是發往本站的幀就收下,進行其他處理;否則就丟棄,不做其他處理。
發往本站的幀有三種:
1.單播(unicast)幀(一對一):收到的幀的MAC地址與本站的硬件地址相同
2.廣播(broadcast)幀(一對全體):發送給本局域網上的所有站點的幀(全1地址)
3.多播(multicast)幀(一對多):發送給本局域網上一部分站點的幀
所有適配器必須能夠識別單播和廣播地址。有的適配器可用編程方法識別多播地址
只有目的地址才能使用廣播地址和多播地址
以太網適配器還能設置一種特殊工作方式,混雜方式
即:只要聽到有幀在以太網上傳輸就都悄悄的接收下來,不管這些幀發往哪個站。
這樣做就是竊聽其他站點的通信而不終端其他站點的通信
嗅探器就是用了設置為混雜方式的網絡適配器
?
MAC的幀格式
以太網的MAC幀格式有兩種標準:
DIX Ethernet V2標準(即以太網V2標準)
IEEE的802.3標準
其中,使用最多的是以太網V2標準的MAC幀格式。而且現在市場上流行的基本都是以太網V2的MAC幀格式。
以太網MAC幀格式組成
由五個字段組成:
目的地址字段(6字節)+源地址字段(6字節)+類型字段(2字節)+數據字段(MTU46-1500字節之間)+FCS(4字節)
如果MAC幀格式中數據字段小于46字節,則MAC子層會在數據字段的后面加入一個整數字節的填充字段,來保證MAC幀長不小于64字節
上一層協議如何知道填充字段的長度呢?
在IP協議中,其首部就有一個總長度字段。因此總長度加上填充字段應等于MAC幀數據字段的長度。
在實際傳送中還會在MAC幀前面插入8個字節,分為兩個字段
第一個字段:前同步碼(1和0的交替碼)
作用:來讓接收端的適配器在接收MAC幀時能夠迅速地調整其時鐘頻率,使它和發送端的時鐘同步
第二個字段是幀開始定界符,定義為10101011
它的前6位和前同步碼一樣,最后兩個連續的1就是告訴接收端的適配器MAC幀的信息要來了,請注意接收
注意:以太網上的傳輸單位是? 幀
? ? ? ? ? ?各幀之間還必須有一定的間隙。
? ? ? ? ? ?因此,接收端只需要找到幀開始定界符就可以了。不需要使用幀結束符定界符,也不需要插入字節來保證透明傳輸
無效MAC幀的情況:
1.幀的長度不是整數個字節
2.用收到的幀檢驗序列FCS查出偶差錯
3.收到的幀的MAC客戶數據字段打長度不在46-1500字節之間。MAC幀長度不在64-1518字節之間
無效的MAC幀則進行丟棄,不進行重傳
在數據鏈路層擴展以太網
需要使用網橋
網橋
網橋工作在數據鏈路層,它根據MAC幀的目的地址對收到的幀進行轉發和過濾
當網橋接收到一個幀時,先檢查此幀的目的地址(目的MAC地址),然后再確定將該幀轉發到哪一個接口,或者是把它丟棄(過濾)
網橋的內部結構
最簡單的網橋有兩個接口。復雜的網橋可以有更多的接口。
兩個以太網通過網橋連接起來后,就成為一個覆蓋更大的以太網,原來的每個以太網就可以稱為一個網段(segment)
上圖中接口1和接口2各連接到一個網段
網橋依靠轉發表來轉發幀,轉發表也叫轉發數據庫或路由目錄。
如:網橋從接口1收到A發給E的幀,則在查找轉發表后,把這個幀送到接口2轉發到另一個網段,使E能夠收到這個幀
若網橋從接口1收到A發給B的幀,就丟棄這個幀,因為轉發表中,轉發給B的幀應當從接口1轉發出去,而現在是從接口1中接收到的幀,說明A和B在同一個網段中,B能夠直接收到這個幀而不需要借助于網橋轉發
注意:網橋在轉發幀時,不改變幀的源地址
網橋內部的接口管理軟件和網橋協議實體來完成上述操作
網橋的好處:
1.過濾通信量,增大吞吐量
2.擴大物理范圍
3.提高了可靠性
出現網絡故障,一般只影響個別網段
4.可互聯不同物理層,不同MAC子層和不同速率的以太網
網橋的缺點:
1.增加時延
因為需要對接收的幀進行存儲和查找轉發表,轉發之前還需要進行CSMA/CD算法
2.導致廣播風暴
網橋只適用于用戶數不太多(不超過幾百個)和通信量不太大的以太網,否則會因為傳播過多的廣播信息產生網絡阻塞
透明網橋
目前使用的最多的網橋,即,以太網上的站點并不知道所發送的幀將經過哪幾個網橋
網橋是按照存儲轉發方式工作的,一定是先把整個幀收下來再進行處理,不管氣目的地址是什么。
集線器或轉發器是逐比特轉發
透明網橋是一種即插即用(plug-and-play device),只要把網橋加入到局域網中,不用人工配置轉發表網橋就能工作
網橋通過自學習算法處理收到的幀(這樣逐步建立轉發表),使用生成樹(spanning tree)算法確保任何兩個站之間只有一條路徑
自學習算法原理:
網橋只要每收到一個幀,就記下其源地址和進入網橋的接口,作為轉發表中的一個項目
注意:轉發表中并沒有“源地址”一欄,只有“地址”一欄。
在建立轉發表時,是把幀首部中的源地址寫在“地址”一欄下面
在轉發幀時,根據收到的幀的首部中的目的地址來轉發的。
網橋自學習和轉發幀的一般步驟:
1.網橋收到幀后先進行自學習。查找轉發表中與收到幀的源地址有無想匹配的項目。如沒有,就在轉發表中增加一個項目(源地址、進入的接口和時間)如有,則把原有的項目進行更新
2.轉發幀。查找轉發表中與收到幀的目的地址有無相匹配的項目。如沒有,則通過所有其他接口(除了進入網橋的接口)進行轉發。如有,則按轉發表中給出的接口進行轉發,若轉發表中給出的接口就是該幀進入網橋的接口,則丟棄這個幀
?
總結
以上是生活随笔為你收集整理的网络-数据链路层回顾的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js打开新窗口并且不被拦截
- 下一篇: 企业微信公众平台(4)KTV 3G网站建