文章目錄
數據鏈路層基本概念及基本問題
基本概念
鏈路與數據鏈路
鏈路:(link)是一條點到點的物理線路段,中間沒有任何其他的交換結點。
一條鏈路只是一條通路的一個組成部分。
數據鏈路(data link)除了物理線路外,還必須有通信協議來控制這些數據的傳輸。若把實現這些協議的硬件和軟件加到鏈路上,就構成了數據鏈路。
- 現最常用的方法是使用適配器(即網卡)來實現這些協議的硬件和軟件。
- 一般的適配器都包括了數據鏈路層和物理層這兩層的功能。
幀
常常在兩個對等的數據鏈路層之間畫出一個數字管道,而在這條數字管道上傳輸的數據單位是幀。
幀的構成 幀頭 幀尾 物理層地址 校驗值
三個基本問題
封裝成幀 透明傳輸 差錯控制
封裝成幀
封裝成幀(framing)就是在一段數據 的前後分別添加首部和尾部,然後構成了一個幀。確定幀的界限。
首部和尾部的一個重要作用就是進行幀定界。
用控制字符進行幀定界的方法舉例
試想;幀還未發送完,發送端出了問題,只能重新發送該幀。接收端卻受到了前面的“‘半截子幀’”,他會拋棄嗎?爲什麼?
透明傳輸
若傳輸 的數據是ASCII碼中“可打印字符(共95個)”集時,一切正常。
若傳輸的數據不是僅由“可打印字符”組成時,就會出現問題,如下圖:
既然中間傳輸的數據中出現字節結束標記,該如何告訴他不是結束標記呢?用下面的辦法:
字節填充法 ——解決透明傳輸的問題
發送端的數據鏈路層在數據中出現控制字符“SOH”或
“EOT”的前面插入一個轉義字符“ESC”(其十六進制編碼是1B)。
字節填充(byte stuffing)或字符填充(character stuffing)——接收端的數據鏈路層在將數據送往網絡層之前刪除插入的轉義字符。
如果轉義字符也出現在數據當中,那麼應該在轉義字符前插入一個轉義字符。當接收端收到連續的兩個轉義字符時,就刪除其中前面的一個。
差錯控制
傳輸過程中可能產生比特差錯:1可能會變成0而0可能變成1.
在一段時間內,傳輸錯誤的比特佔所傳輸比特總數的比率稱爲誤碼率BER(Bit Error Rate).
誤碼率與信噪比有很大的關係。
爲了保證數據傳輸的可靠性,在計算機網絡傳輸數據時,必須採用各種差錯檢測措施。
幀檢驗序列FCS 需要用到 循環冗餘檢驗CRC的技術
循環冗餘:不進行進位的加法
最終得到的餘數就是幀檢驗序列
將得到的幀檢驗序列加入到原始數字後面,再和除數做一次除法運算,如果得到的餘數爲0說明一切正常,沒有錯誤,就接受(accept),如果不是0就判定這個幀有差錯,扔掉,不接受。
特點:
- 但這種檢測方法並不能確定究竟是哪一個或那幾個比特出現了差錯。
- 只要經過嚴格的挑選,並使用位數足夠多的除數P。那麼出現檢測不到的差錯的概率就很小很小。
關於CRC的更多的知識
http://blog.chinaunix.net/u2/69737/showart_1658667.html
循壞冗餘檢驗CRC 和 幀檢驗序列FCS並不等同
- CRC是一種常用的檢錯方法,而FCS是添加在數據後面的冗餘碼。
- FCS可以用CRC這種方法得到,但CRC並非用來獲得FCS的唯一方法。
小結 CRC差錯檢測技術
僅用循環冗餘檢驗CRC差錯技術只能做到無差錯接受(accept)
無差錯接受 :指凡是接受的幀(即不包括丟棄的幀),我們都能以非常接近於1的概率認爲這些幀在傳輸過程中沒有產生差錯。也就是說:凡是接收端數據鏈路層接收的幀都沒有傳輸差錯(有差錯的幀就丟棄不接收)
要做到“可靠傳輸”(即發送什麼就收到設麼)就必須加上確認和重傳機制。
考慮:幀重複、幀丟失、幀亂序 的情況
可以說:CRC是一種無比特差錯,而不是無傳輸差錯的檢測機制。
OSI/RM模型的觀點:數據鏈路層要做成無傳輸差錯的!但這種理念目前不被接受!
兩種情況下的數據鏈路層
點對點信道
廣播信道
使用點對點信道的數據鏈路層(廣域網)
這種信道使用一對一的點對點通信方式
PPP協議
現在全世界使用最多的數據鏈路層協議就是點對點協議PPP(Point-to-Point Protocol)
用戶使用撥號電話線接入因特網時,一般都是使用PPP協議。
PPP協議應滿足的要求:
-
簡單——這是首要的要求
-
封裝成幀
-
透明性
-
多種網絡層協議
-
多種類型鏈路
-
差錯檢測
-
檢測連接狀態
-
最大傳送單元
-
網絡層地址協商
-
數據壓縮協商
PPP協議不需要滿足的要求: -
糾錯
-
流量控制
-
序號
-
多點線路
-
半雙工或單工鏈路
PPP協議的組成
PPP協議有三個組成部分: -
數據鏈路層協議可以用於異步串行或同步串行介質。
-
它使用LCP(鏈路控制協議)建立並維護數據鏈路連接。可以進行身份驗證和計費功能
-
網絡控制協議(NCP)允許在點到點連接上使用多種網絡層協議,如圖所示;
對上圖的數字進行解釋
標誌字段F=0x7E (符號0x“”表示後面的字符是用16進製表示。16進制的7E的二進制表示是01111110)
地址字段A只置爲0xFF.地址字段實際上並不起作用
控制字段C通常置爲0x03,控制信息部分的內容
PPP是面向字節的,所有的PPP幀的長度都是整數字節。
字節填充 PPP協議裏面傳的是字節流
問題:信息字段中出現了標誌字段的值,可能會被誤認爲是“標誌”,怎麼辦? -
將信息字段中出現的每個0x7E字節轉變成爲2字節序列(0x7D,0x5E)
-
若信息字段中出現一個0x7D的字節,則將其轉變成2字節序列(0x7D,0x5D)
-
若信息字段中出現ASCII碼的控制字符(即數值小於0x20的字符),則在該字符前面加入一個0x7D字節,同時將該字符的編碼加以改變。
若傳送的是二進制流——零比特填充方法
PPP協議用在SONET/SDH鏈路時,是使用同步傳輸(一連串的比特連續傳送)。這時PPP協議採用零比特填充方法來實現透明傳輸。
在發送端,只要發現有5個連續1,則立即填入一個0.接收端對幀中的比特流進行掃描。每當發現5個連續1時,就把這5個連續1後的一個0刪除。
不使用序號和確認機制
序號和確認機制是網絡層和傳輸層解決的問題,是可靠傳輸,鏈路層不需要可靠傳輸 ,所以不適用序號和確認機制。PPP就是保證無差錯接受。
PPP協議的工作狀態——撥號上網的過程
當用戶撥號接入ISP時,路由器的調制解調器對撥號做出確認,並建立一條物理連接。
PC機向路由器發送一系列的LCP(鏈路層協議)分組(封裝成多個PPP幀)。
這些分組及其響應選擇一些PPP參數,和進行網絡層配置,NCP(網絡控制協議)給新接入的PC機分配一個臨時的IP地址,使PC機成爲因特網上的一個主機。
通信完畢時,NCP釋放網絡層連接,收回原來分配出去的IP地址,接着,LCP釋放數據鏈路層連接。最後釋放物理層的連接。
使用廣播信道的數據鏈路層(局域網)
這種信道使用一對多的廣播通信方式,因此過程比較複雜。廣播信道上連接的主機很多,因此必須使用專用的共享信道協議來協調這些主機的數據發送。
局域網
局域網的特點和優點
特點:
網絡爲一個單位所擁有,且地理位置和站點數目均有限。
優點:
- 具有廣播功能,從一個站點可很方便的訪問全網。局域網上的主機可共享連接在局域網上的各種硬件和軟件資源。
- 便於系統的擴展和逐漸地演變,各設備的位置可靈活調整和改變。
- 提高了系統的可靠性,可用性和生存性。
共享通信媒體
靜態劃分信道:
- 頻分複用
- 時分複用
- 波分複用
- 碼分複用
動態媒體接入控制(多點接入):
- 隨機接入(主要被以太網採用!)
- 受控接入,如多點線路探尋(polling),或輪詢(目前已經不被採用)
以太局域網(以太網)
CSMA/CD協議講解
後來採用星型網,增加網絡設備集線器。
以太網使用的協議——CSMA/CD協議(載波監聽多點接入/碰撞檢測)
Carrier Sense Multiple Access with Collision Detection
“多點接入”表示許多計算機以多點接入的方式連接在一根總線上。
載波監聽:是指每一個站在發送數據之前先要檢測一下總線上是否有其他計算機在發送數據,如果有,則暫時不要發送數據,以免發生碰撞。
就是用電子技術檢測總線上有沒有其他計算機發送的數據信號。
碰撞檢測
就是計算機邊發送數據邊檢測信道上的信號電壓大小
- 當幾個站同時在總線上發送數據時,總線上的信號電壓擺動值將會增大(互相疊加)。
- 當一個站檢測到的信號電壓擺動值超過一定的門限值時,就認爲總線上至少有兩個站同時在發送數據,表明產生了碰撞。
- 所謂碰撞就是發生了衝突,因此碰撞檢測也稱爲 衝突檢測。
檢測到碰撞後
- 在發生碰撞時,總線上傳輸的信號產生了嚴重的失真,無法從中恢復出有用的信息來。
- 每一個正在發送的數據的站,一旦發現總線上出現了碰撞,就要立即停止發送,免得繼續浪費網絡資源,然後等待一段隨機時間後再次發送。
傳播時延對載波監聽的影響
假設A到B1000m,單程端到端的傳播時延是τ,則A最大傳播時延是2τ
重要特性
1.使用CSMA/CD協議的以太網不能進行全雙工通信而只能進行雙向交替通信(半雙工通信)。
2每個站在發送數據之後的一小段時間內,存在着遭遇碰撞的可能性。
3.這種發送的不確定性使整個以太網的平均通信量遠小於以太網的最高數據率。
爭用期
最先發送數據幀的站,在發送數據幀後至多經過時間2τ(兩倍的端到端往返時延)就可以知道發送的數據幀是否遭到了碰撞。
經過爭用期這段時間還沒有檢測到碰撞,才能肯定這次發送不會發生碰撞。
以太網的爭用期(碰撞窗口):
1.通常取51.2微秒爲爭用期
對於10Mb/s以太網,在爭用期內可以發送512bit,即64字節。
2.若前64字節不發生衝突,後續的也不會衝突
最短有效幀長
1.如果發生衝突,一定在前64字節
2.發生衝突後發出的數據一定小於64字節
3.以太網規定了最短有效幀長64字節,凡是長度小的都是無效幀。
以太網的最短有效幀長與網線長度和網速有關,以太網的網線長度規定不能超過100m
算法
二進制指數類型退避算法
以太網的概述
以太網的兩個標準
只要滿足載波監聽多點接入技術都可以認爲是以太網。
以太網與數據鏈路層的兩個子層
爲了使數據鏈路層能更好的適應多種局域網標準,802委員會就將局域網的數據鏈路層拆成兩個子層:
- 邏輯鏈路控制LLC(Logical Link Control)子層。
- 媒體接入控制MAC(Medium Access Control)子層。
與接入到傳輸媒體有關的內容都放在MAC子層,而LLC子層則與傳輸媒體無關,不管採用何種協議的局域網對LLC子層來說都是透明的
由於TCP/IP體系經常使用的局域網是DIX EthernetV2而不是802.3標準中的幾種局域網,因此現在802委員會制定的邏輯鏈路控制子層LLC(即802.2標準)的作用已經不大了。
很多廠商生產的適配器上就僅裝有MAC協議而沒有LLC協議。
以太網提供的服務——無差錯接收,不提供糾錯
以太網提供的服務是不可靠的交付,即盡最大努力 的交付。
當接收站收到有差錯的數據幀就丟棄此幀,其他什麼都不做,差錯的糾正由高層來決定。——傳輸層
如果高層發現丟失了一些數據而進行重傳,但以太網並不知道這是一個重傳的幀,而是當做一個新的數據幀來發送。
拓撲
星型拓撲
傳統以太網最初使用粗同軸電纜,後來演進到使用比較便宜的細同軸電纜,最後發展爲使用更便宜和更靈活的雙絞線。不用同軸電纜而使用無屏蔽的雙絞線。每個站需要用兩對雙絞線,分別用於發送和接收。
這種以太網採用星型拓撲,在星型的中心則增加了一種可靠性非常高的設備,叫做集線器(hub)。
集線器和站點的距離不超過100m,起到放大的作用
集線器的一些特點
集線器是使用電子器件來模擬實際電纜線的工作,因此整個系統仍然像一個傳統的以太網那樣運行。集線器使用了大規模集成電路芯片,因此這樣的硬件設備可靠性大大提高了。
使用集線器的以太網在邏輯上仍是一個總線網,各工作站使用的還是CSMA/CD協議,並共享邏輯上的總線。
集線器很像一個多接口的轉發器,工作在物理層。
10Base-T
國際互聯網組織給用集線器連接的以太網定義了一個標準——10Base-T 標準
10——10Mb/s帶寬
Base ——基帶信號(數字信號)
T——雙絞線
10Base-T的通信距離稍短,每個站到集線器的距離不超過100m
這種10Mb/s速率的無屏蔽雙絞線星型網的出現,即降低了成本,有提高了可靠性。
10Base-T雙絞線以太網的出現,是局域網發展史的一個重要的里程碑,他爲以太網在局域網中的統治地位奠定了牢固的基礎。
其他:100Base-FX(光纖)、100Base-T 和 100Base-T4
以太網的信道利用率
以太網的信道被佔用的情況:
爭用期產長度2τ,即端到端傳播時延的兩倍。檢測到碰撞後不發送干擾信號。
幀長爲L(bit)數據發送速率爲C(b/s),因而幀的發送時間是L/C=T0(s)
一個幀從開始發送,經可能發生的碰撞後,將再重傳數次,到發送成功且信道轉爲空閒(即再經過時間τ使得信道上無信號在傳播)時爲止,是發送一幀所需的平均時間。
以太網的信道利用率:參數a
要提高以太網的信道利用率,就必須減小τ與T0之比。在以太網中定義了參數a,它是以太網單程端到端時延τ與幀的發送時間T0之比:
a=τ/T0
a->0 表示一發生碰撞就立即可以檢測出來,並立即停止發送,因而信道利用率很高。
a越大,表明爭用期所佔的比例增大,每發生一次碰撞就浪費許多信道資源,使得信道利用率明顯降低。
MAC層
MAC幀格式
在幀的前面插入的8個字節中的第一個字段共7個字節,是前同步碼,用來迅速實現MAC幀的比特同步。
第二個字段是幀的開始定界符,表示後面的信息就是MAC幀。
無效的MAC幀
幀的長度不是整數個字節;
用收到的幀檢測序列FCS查出有差錯
數據字段的長度不在46~1500字節之間
有效的MAC幀長度爲64~1518字節之間
對於檢查出的無效MAC幀就簡單地丟棄,以太網不負責重傳丟棄的幀
幀間最小間隔
幀間最小間隔爲9.6微秒,相當與96bit的發送時間
一個站在檢測到總線開始空閒後,還要等待9.6微秒才能再次發送數據。
這樣做事爲了使剛剛收到的數據幀的站接收緩存來得及清理,做好接收下一幀的準備。
擴展以太網
距離上的擴展
數量上的擴展(用集線器擴展局域網)
集線器之間用網線互聯,雖然計算機的數量增加了,但形成了一個更大的衝突域。帶來的是效率低的問題。
用集線器擴展局域網優點:
- 使原來屬於不同碰撞域的局域網上的計算機能夠進行跨碰撞域的通信。
- 擴大了局域網覆蓋的地理範圍。
用集線器擴展局域網的缺點
- 碰撞域增大了,但總的吞吐量並未提高。
- 如果不同的碰撞域使用不同的頻率,那麼就不能使用集線器將他們互聯起來。
優化以太網——網橋
在數據鏈路層擴展局域網是使用網橋。
網橋工作在數據鏈路層,他根據MAC幀的目的地址對收到的幀進行轉發。
網橋具有過濾幀的功能。當網橋接收到一個幀時,並不是向所有的接口轉發此幀,而是先檢查此幀的目的MAC地址,然後在確定將幀轉發到哪個接口。
網橋是交換機的前身
交換機基於MAC地址轉發數據,更加安全,是存儲轉發的,通過學習構建MAC地址表,需要排隊,避免衝突,全雙工,端口帶寬獨享,集線器有數據就轉發,沒有存儲功能。
高速以太網
我們自己的網卡可以自動檢測是全雙工還半雙工,是百兆還是10兆的
G比特以太網是1000M帶寬
UTP代表非屏蔽雙絞線
端到端的以太網傳輸
10吉比特以太網的出現,以太網的工作範圍已經從局域網(校園網,企業網)擴大到城域網和廣域網,從而實現了端到端的以太網傳輸。
這種工作方式的好處是:
- 成熟的技術
- 互操作性很好
- 在廣域網中使用以太網時價格便宜
- 統一的幀格式簡化了操作和管理
以太網從10Mb/s到10Gb/s的演進
以太網從10Mb/s 到10Gb/s的演進證明了以太網是:
可擴展的(從10Mb/s 到10Gb/s)
靈活的(多種傳輸媒體、全/半雙工、共享/交換)
易於安裝
穩健性好
使用高速以太網進行寬帶接入
以太網已經成功地把速率提高到1~10Gb/s,所覆蓋的地理範圍也擴展到了城域網和廣域網,因此現在人們嘗試使用以太網進行寬帶接入。
以太網接入的重要特點就是他可以提供雙向的寬帶通信,並且可根據用戶對寬帶的需求靈活的進行寬帶升級。
採用以太網接入可實現端到端的以太網傳輸,中間不需要再進行幀格式的轉化,這就提高了數據的傳輸效率和降低了傳輸的成本。
建網3層模型
接入層 核心層 匯聚層