標籤:
資料連結層:概述與服務鏈結路層主要使用的通道包括:
- 廣播通道 : 這種通道採用一對多的廣播通訊方式,因此過程比較複雜.廣播通道上主機眾多,我們必須使用專用的共用通道協議來協調這些主機的資料發送
- 點對點通道 : 這種通道使用一對一的點對點通訊方式
鏈路層提供的服務
鏈路層協議定義了在鏈路兩端的節點之間互動的分組格式,以及當發送和接受分組時這些節點採取的動作。
鏈路層協議可能提供的服務包括:
服務 |
概述 |
成幀 |
在每個資料報傳輸時,用鏈路層幀將其封裝起來.一個幀由首部,資料欄位和尾部組成.鏈路層的資料欄位就是網路層的資料報 |
鏈路接入 |
媒體存取控制協議(Medium Access Control,MAC)規定了幀在鏈路上傳輸的規則.當對端只有一個的時候,可以隨便發,MAC不作限制.當出現多路訪問的問題的時候,MAC協議協調多個節點傳輸 |
可靠交付 |
表示兩個鏈路層結點之間可以無差錯傳遞幀.使用和TCP類似的確認與重傳實現的.一般用於差錯比例較大的鏈路(WiFi等).差錯位元較低的鏈路(光纖等)一般不使用. |
差錯檢測和糾正 |
差錯檢測用於檢測位元差錯,一般用硬體實現.差錯糾正可以糾正出現的位元差錯 |
適配器通訊
對於給定的一個通訊的鏈路,鏈路層協議的主要部分在適配器中實現。在主機中,鏈路層的主體是在網路介面卡(網路介面卡)中實現的,還是有部分功能由軟體實現,如組裝鏈路層定址資訊和啟用控制器硬體.位於網卡核心的是鏈路層控制器,控制器實現了許多鏈路層服務(成幀,鏈路接入,差錯檢測)的專用晶片,因此,鏈路層的許多功能是用硬體實現的.
適配器是一個半自治的單元。
差錯檢測和錯誤修正技術同位
單個位元的同位
單個位元的同位是指在要發送的資料最後附加一個同位位元.奇數同位的意思就是整個編碼中的1的個數要是奇數.偶校正就是1的個數是偶數. 顯然如果有偶數個位元發生錯誤,那麼同位就檢測不出來了.
二維同位
D中的d個位元被劃分為i行j列.對每行沒咧計算奇偶值.產生的i + j + 1奇偶位元就構成了鏈路層幀的差錯檢測位元.
當出現單個位元差錯時,發生錯誤的行和列都會出現差錯.接收方不僅可以檢測差錯,還可以根據行列索引來糾正它
二維同位也可以檢測(但不能糾正)兩個位元錯誤的任何組合.
如果在同一行兩個位元錯誤,則那一行的同位正確,但是會有兩列的同位失敗.如果不同行,則會有四列出錯.這兩種情況都無法錯誤修正,只能檢測.但是還是有一些偶數個錯誤的情況是二維同位無法檢測的.
接收方檢測和錯誤修正的能力被稱為前向錯誤修正.
檢查和方法
在校正和方法中,資料被切成k位元的序列,這些序列全部相加之後取反碼就是校正和.接收方收到資料之後,把所有資料加起來(包括校正和).用結果是否全為1來作為判斷資料是否出錯的標準.
和CRC相比,校正和提供較弱的保護.
為什麼傳輸層使用校正和而鏈路層使用CRC呢?
- 傳輸層使用軟體實現,採用簡單快速的方案是必須的(校正和)
- 鏈路層的CRC用硬體實現,能夠快速執行CRC操作.
迴圈冗餘檢測(CRC)
編碼解碼步驟
CRC編碼也稱為多項式編碼,因為該編碼能夠將要發送的位元串看成係數是0或1的一個位元串,對位元串的操作被解釋為多項式算數. 這裡不過多討論多項式理論.
編碼步驟如下 :
- 發送方和接收方實現協商一個r + 1的位元模式(位元串)G,叫做產生多項式.要求G的最高位是1
- 對於一個給定的資料區段D,發送方選擇r個附加位元R,並將它們附加到D上.
- 使得得到的d + r位元模式用模2算數恰好能被G整除.(模2算數就是異或)
接收方的解碼步驟很簡單,用G去除收到的d + r位元.如果餘數非0,接收方知道出了差錯.否則認為資料被正確接收.
怎麼計算R?
要使得R對於n有: D * 2 r XOR R = nG.
兩邊同異或R得: D * 2 r = nG XOR
所以 R = remainder {D * 2r / G}
多址訪問協議通道劃分協議
TDM(時分多工)
TDM把時間劃分為時間幀,並進一步把時間幀劃分為N個時隙(slot).(時間幀和鏈路層交換的單元幀不是一個意思)
然後把每個時隙分給N個節點中的一個.無論何時某個節點在有分組想要發送的時候,他在迴圈的TDM幀中指派給它的時隙內傳輸分組位元.時隙長度一般應是一個時隙內能傳輸一個分組
TDM的缺點
- 最高速率只能達到R/N bps ,即使只有一個人使用通道
- 節點總是總是要等待它的時隙,可能會對緩衝等造成壓力
FDM(頻分多工)
FDM將Rbps的通道劃分為不同的頻段(每個頻段具有R/N頻寬),並把每個頻段分給N個結點中的一個.因此FDM在N個較大的通道中建立了N個較小的R/N通道.
FDM的缺點和TDM相同,限制了每個結點只能使用R/N頻寬.
碼分多址
又稱為CDMA,此處不作介紹.只需要知道類似於TDM的時隙和FDM的頻率,能分配給多路訪問通道的使用者.
隨機訪問協議
時隙ALOHA
時隙ALOHA的原則是
- 當結點有一個新幀要發送時,它等到下一個時隙開始並在該時隙傳輸整個幀
- 如果沒有碰撞就成功傳輸該幀
- 如果碰撞,該結點在時隙結束之前檢測到碰撞.結點以機率P重傳該幀,知道該幀傳出去.
優點:
- 當結點是唯一活躍的節點時,時隙ALOHA可以讓節點全速傳輸.
- 時隙ALOHA是一個簡單的協議
缺點:
- 當有大量節點有幀需要傳輸時,則最多僅有37%的時隙做有效工作.因此通道傳輸效率是0.37Rbps.(推導過程看書)
ALOHA
ALOHA是一個非時隙,分散的協議.當有幀需要傳輸時,ALOHA會馬上傳輸.如果碰撞了,ALOHA會以概論P重傳該幀.否則,該結點等待一個幀傳輸的時間.因為ALOHA的分散,所以ALOHA的最大效率僅為1/(2e).僅為時隙ALOHA的一半.
載波偵聽多路訪問(CSMA)
載波偵聽的意思包含兩點:
- 說話之前先聽:一個結點發送之前需要先偵聽通道,如果有其他結點在發送,就等待發完.
- 如果其他結點發送,則立即停止發送.
為什麼所有結點都載波偵聽,還是會碰撞?
因為通道傳輸會有時延(雖然速度接近光).
具有碰撞檢測的載波偵聽多路訪問(CSMA/CD)
在純CSMA中,即使檢測到了碰撞,結點還是會發完它的幀.在CSMA/CD中,結點檢測到碰撞就會停止發送一個無用的幀,有助於改善協議效能.
CSMA/CD啟動並執行過程
- 適配器從網路層一條獲得資料報,封裝成幀,將其放入幀適配器緩衝中.
- 如果適配器監聽到通道空閑,它將傳輸.如果通道忙,就等待到不忙
- 傳輸時未監聽到其他結點的訊號能量,完成傳輸.如果檢測到,就中止傳輸.
- 中止後,等待一個隨機時間量(二進位指數後退),返回步驟2.
如果每個結點都等待同樣的時間T,那麼可能會一直碰撞下去.為瞭解決這個問題,一般採用二進位指數後退演算法.
二進位指數後退演算法:傳輸一個幀時,如果經曆了一連串的n次碰撞後,結點隨機等機率從[0, 1, 2,3,…,2n-1]中選擇一個K值,然後等待K * 512位元時間(例如,對於100Mbps,這個時間是5.12微秒.)後重傳.
CSMA/CD協議效率 : 效率 = 1 / (1 + 5dprop / dtrans),其中dprop表示訊號能量在任意兩個適配器中傳播所需的最大時間,dtrans表示傳輸一個最大長度的乙太網路幀的時間.從公式可以看出,如果dprop 接近0 , 則效率接近1
鏈路層編址
- 位址解析通訊協定(ARP),該協議為節點提供了將IP地址轉換為鏈路層地址的機制。
- 動態主機設定通訊協定(DHCP)。
MAC地址
並非節點具有鏈路層地址,而是節點的適配器具有鏈路層地址。
MAC地址的作用是標識區域網路內一個幀從哪個介面到哪個物理相連的其他介面.因此,擁有多個網路介面的主機或路由器將具有與之相關聯的多個鏈路層地址,就像他們也具有多個IP地址一樣.需要注意的是,鏈路層交換器沒有MAC地址.
MAC地址也被稱為LAN地址,物理地址.
MAC地址長度為6個位元組,,共有248個可能的MAC地址.
MAC地址空間由IEEE統一管理.當一個公司要生產適配器的時候,他象徵性的付一點錢給IEEE,買一個224的地址空間.IEEE固定前24位,後24位由各個公司自己產生唯一標識.
當適配器收到一個幀時,會先檢查這個幀的MAC地址與自己的介面MAC是否一致,如果不匹配就丟棄該幀,如果匹配向上傳遞.這種適配是使用硬體實現的.
FF-FF-FF-FF-FF-FF是唯一的用來廣播的MAC地址
位址解析通訊協定(ARP)
ARP做什麼?
ARP的任務是把網路層的IP地址和鏈路層的MAC進行轉換
在發送主機的ARP模組將取在相同區域網路上的任何IP地址進行輸入,然後返回相應的MAC地址
DNS和ARP很相似,但是DNS和ARP的區別是DNS為網際網路上的任何主機解析主機名稱,而ARP只為在同一個子網上的主機和路由器介面解析IP地址.
ARP如何工作?
每台主機或者路由器在它的記憶體中都有一張ARP表,這張表包含了IP地址到MAC地址的映射關係.ARP表中也有一個壽命(TTL)值,它指示了從表中刪除每個映射的時間,一個表項的到期時間一般是20分鐘
這張表不必為該子網上的每台主機和每個路由器都包含一個表項,某些可能從沒進入過表,某些可能已經到期
當主機222.222.222.220要發送一個資料報,該資料報要IP定址到本子網上另一台主機或路由器.發送主機需要拿到MAC地址然後進行發送.如果ARP表中有這一項,那麼直接取即可.如果沒有,那麼就會發送一個ARP分組.
一個ARP分組有幾個欄位,包括髮送和接收IP地址和MAC地址.ARP查詢分組和ARP響應分組都具有相同格式.
222.222.222.220向廣播位址FF-FF-FF-FF-FF-FF發送一個ARP查詢分組,子網中的每個結點都把這個分組向上傳給ARP模組,ARP檢查查詢分組中的IP地址和自己的是否一樣,其中匹配的那一個給查詢者送回(不是廣播)一個ARP響應,然後222.222.222.220更新它的ARP表並發送資料報
TIP:
- ARP查詢是廣播,ARP響應是標準傳輸
- ARP是隨插即用的,不需要管理員配置
- ARP是跨越鏈路層和網路層邊界的協議
- 當向另一個子網中發送資料時,每次都會使用ARP找到下一跳,然後一跳一次的穿過去.不能用ARP直接解析,因根本不在一個子網中
動態主機設定通訊協定(DHCP)
DHCP是一個客戶機/伺服器協議。
對於一台新到達的主機,DHCP協議分四個階段進行:
- DHCP伺服器發現(DHCP server discovery):一台新到達主機的首要任務是發現一台與其互動的DHCP伺服器。通過使用一個DHCP發現報文來完成。
- DHCP伺服器提供(DHCP server offer):一個DHCP伺服器收到一個DHCP發現報文時,它響應客戶機發回一個DHCP提供報文(包含在UDP段中,UDP段包含在IP資料報中,IP資料報包含在鏈路層幀中,然後鏈路層幀被發給剛到達的客戶機)。
- DHCP請求(DHCP request):該新到達的客戶機從一個或多個伺服器提供中選擇一個,並用一個DHCP請求報文對選中的提供進行響應,回應相關的配置參數。
- DHCP ACK(DHCP ACK):伺服器用一個DHCP ACK報文對DHCP請求報文進行響應,證實所要求的參數。
乙太網路
乙太網路是一種區域網路技術.
乙太網路現行的主要結構是星型拓撲,不再使用集線器,而是使用交換器.
交換器不僅是無碰撞的,而且是名副其實的儲存轉寄封包交換機.交換器運行在第二層.
乙太網路幀結構
|–前同步碼–|–目的地址–|–源地址–|–類型–|–資料–|–CRC–|
欄位 |
描述 |
資料欄位(46-1500位元組) |
這個欄位承載IP資料報.乙太網路的傳輸單元最大值(MTU)是1500位元組.如果超過就要分區.最小是46位元組,如果不足,就要填充.網路層使用IP資料報標記的長度來確定去掉填充的位元組. |
目的地址(6位元組) |
網卡的MAC地址.只有本介面地址和廣播位址才會被接收方送到網路層. |
源地址(6位元組) |
寄件者的MAC地址 |
類型欄位(2位元組) |
不一定資料一定是IP資料報.可能是各種不同的網路通訊協定.比如ARP,AppleTalk等.用來標記網路層協議類型,以正確分發給網路層 |
CRC(4位元組) |
用來錯誤修正 |
前同步碼(8位元組) |
前七個位元組用來”喚醒”接收配接器,並且同步時鐘頻率(為了支援不同的乙太網路速率總會產生漂移).第8個位元組最後兩個位元(第一個連續出現的1)用來警告網卡:”資料馬上到來” |
乙太網路面向無串連,都向網路層提供不可靠服務.當使用CRC檢測到幀錯誤後,它只是簡單的丟掉,不會確認重傳
CSMA/CD: 乙太網路的多址訪問協議
前面已經分析,這裡不再分析
互聯:鏈路層交換器交換器轉寄和過濾
過濾是決定一個幀應該轉寄到某個介面還是應當將其丟棄的交換器功能.
轉寄是決定一個幀應該被導向哪個介面並且導向這個介面的功能.
轉寄和過濾通過交換器表來完成
交換器表項有:
- MAC地址
- 通向該MAC地址的介面號
- 表項放在表中的時間
交換器轉寄的分組和路由器不一樣,交換器轉寄的分組基於MAC地址
當一個目的地址發來時,交換器做這樣的處理:
- 表中沒有該表項時,交換器廣播(除了來源介面)
- 查表得來源介面和目的介面一樣,交換器丟棄分組(已經在包含目的地的區域網路網段廣播過了)
- 查表得有一個表項匹配,且不是來源介面,交換器轉寄分組過去.
自學習
交換器是這樣自學習的
- 交換器初始為空白
- 每個入幀到達,交換器會儲存1.該幀源地址2.該幀到達的介面3.目前時間
- 如果過了老化期後,交換器沒有收到同一個源地址的幀,交換器就刪除這個表項.(防止介面上的一台PC被另一個替換)
交換器是隨插即用的
鏈路層交換器的性質
交換器的幾個優點:
- 消除碰撞:使用交換器的區域網路沒有因碰撞浪費的頻寬.交換器緩衝幀,並且同一時刻只發一個.最大彙總頻寬是所有介面之和
- 異質的鏈路:交換器將鏈路彼此隔離
- 管理:交換器易於進行網路管理
TIP:交換器毒化
- 攻擊者向交換器發送大量具有不同源MAC地址的分組,用偽造表項填滿交換器表項.讓正常的分組沒辦法傳輸,交換器只能廣播大部分的幀,這些幀能夠由嗅探器俘獲到
交換器與路由器比較
交換器的優點和缺點
優點 :
缺點:
- 大型交換網路要求主機和路由器上有大的ARP表,這將產生可觀的ARP流量和處理量.
- 交換器對於廣播風暴不提供任何保護措施,如果主機出故障不停廣播幀,交換器會轉寄所有幀,讓乙太網路崩潰
路由器的優點和缺點
優點:
- 路由器沒有產生樹限制,所以路由器允許以豐富的拓撲結構構建網際網路
- 路由器對第二層的廣播風暴提供了防火牆保護
缺點:
鏈路虛擬化:網路作為鏈路層
多協議標籤交換的目標是:對於基於固定長度標籤和虛電路的技術,在不放棄基於目的地IP資料報轉寄的基礎設施的前提下,當可能是通過選擇新的標識資料報並允許路由器基於固定長度的標籤(而不是目的地IP地址)轉寄資料報來增強功能
MPLS分組只能在MPLS使能的路由器之間發,因為MPLS首部位於鏈路層和網路層首部之間,普通路由器不認識.
MPLS使能的路由器會通告其他路由自己能到達的目的地A,並且通告MPLS的某個標籤可以到達目的地A.
當一個MPLS分組到達時,路由器解析入標籤,查MPLS表,然後把標籤換成表中的出標籤,發送到表中標記的介面中(類似虛電路).
MPLS可以配置一條預計算的無故障的路徑來應對鏈路故障.
電腦網路——鏈路層