1. 程式人生 > >網路知識總結二:物理層和鏈路層協議詳解

網路知識總結二:物理層和鏈路層協議詳解

一、基礎篇:


CSMA/CD是一種爭用型的介質訪問控制協議。它起源於美國夏威夷大學開發的ALOHA網所採用的爭用型協議,並進行了改進,使之具有比ALOHA協議更高的介質利用率。主要應用於現場匯流排Ethernet中。另一個改進是,對於每一個站而言,一旦它檢測到有衝突,它就放棄它當前的傳送任務。換句話說,如果兩個站都檢測到通道是空閒的,並且同時開始傳送資料,則它們幾乎立刻就會檢測到有衝突發生。它們不應該再繼續傳送它們的幀,因為這樣只會產生垃圾而已;相反一旦檢測到衝突之後,它們應該立即停止傳送資料。快速地終止被損壞的幀可以節省時間和頻寬。
CSMA/CD控制方式的優點是:
原理比較簡單,技術上易實現,網路中各工作站處於平等地位 ,不需集中控制,不提供優先順序控制。但在網路負載增大時,傳送時間增長,傳送效率急劇下降。
CSMA/CD應用在 OSI 的第二層 資料鏈路層
它的工作原理是: 傳送資料前 先偵聽通道是否空閒 ,若空閒,則立即傳送資料。若通道忙碌,則等待一段時間至通道中的資訊傳輸結束後再發送資料;若在上一段資訊傳送結束後,同時有兩個或兩個以上的節點都提出傳送請求,則判定為衝突。若偵聽到衝突,則立即停止傳送資料,等待一段隨機時間,再重新嘗試。
其原理簡單總結為:先聽後發,邊發邊聽,衝突停發,隨機延遲後重發
CSMA/CD採用IEEE 802.3標準。
它的主要目的是:提供定址和媒體存取的控制方式,使得不同裝置或網路上的節點可以在多點的網路上通訊而不相互衝突。
有人將CSMA/CD的工作過程形象的比喻成很多人在一間黑屋子中舉行討論會,參加會議的人都是隻能聽到其他人的聲音。每個人在說話前必須先傾聽,只有等會場安靜下來後,他才能夠發言。人們將發言前監聽以確定是否已有人在發言的動作成為"載波偵聽";將在會場安靜的情況下每人都有平等機會講話成為“多路訪問”;如果有兩人或兩人以上同時說話,大家就無法聽清其中任何一人的發言,這種情況稱為發生“衝突”。發言人在發言過程中要及時發現是否發生衝突,這個動作稱為“衝突檢測”。如果發言人發現衝突已經發生,這時他需要停止講話,然後隨機後退延遲,再次重複上述過程,直至講話成功。如果失敗次數太多,他也許就放棄這次發言的想法。
編輯本段
二、進階篇:

CSMA/CD控制規程:
控制規程的核心問題:解決在公共通道上以廣播方式傳送資料中可能出現的問題(主要是資料碰撞問題)
控制過程包含四個處理內容:偵聽、傳送、檢測、衝突處理
(1) 偵聽:
通過專門的檢測機構,在站點準備傳送前先偵聽一下總線上是否有資料正在傳送(線路是否忙)?
若“忙”則進入後述的“退避”處理程式,進而進一步反覆進行偵聽工作。
若“閒”,則一定演算法原則(“X堅持”演算法)決定如何傳送。
(2) 傳送:
當確定要傳送後,通過傳送機構,向匯流排傳送資料。
(3) 檢測:
資料傳送後,也可能發生資料碰撞。因此,要對資料邊傳送,邊檢測,以判斷是否衝突了。
(4)衝突處理:
當確認發生衝突後,進入衝突處理程式。有兩種衝突情況:
① 偵聽中發現線路忙
② 傳送過程中發現數據碰撞
① 若在偵聽中發現線路忙,則等待一個延時後再次偵聽,若仍然忙,則繼續延遲等待,一直到可以傳送為止。每次延時的時間不一致,由退避演算法確定延時值。
② 若傳送過程中發現數據碰撞,先發送阻塞資訊,強化衝突,再進行偵聽工作,以待下次重新發送(方法同①)CSMA/CD工作原理及效能分析(指標與影響因素) CSMA/CD是carrier sense multiple access/collision detected 的縮寫,可譯為“載波偵聽多路訪問/衝突檢測”,或“帶有衝突檢測的載波偵聽多路訪問”。所謂載波偵聽(carrier sense),意思是網路上各個工作站在傳送資料前都要偵聽總線上有沒有資料傳輸。若有資料傳輸 (稱匯流排為忙),則不傳送資料;若無資料傳輸(稱匯流排為空),立即傳送準備好的資料。所謂多路訪問(multiple access)意思是網路上所有工作站收發資料共同使用同一條匯流排,且傳送資料是廣播式的。所謂衝突(collision),意思是,若網上有兩個或兩個以上工作站同時傳送資料,在總線上就會產生訊號的混合,兩個工作站都同時傳送資料,在總線上就會產生訊號的混合,兩個工作站都辨別不出真正的資料是什麼。這種情況稱資料衝突又稱碰撞。為了減少衝突發生後又的影響。工作站在傳送資料過程中還要不停地檢測自己傳送的資料,有沒有在傳輸過程中與其它工作站的資料發生衝突,這就是衝突檢測(collision detected)。
CSMA/CD媒體訪問控制方法的工作原理,可以概括如下:
先聽後說,邊聽邊說;
一旦衝突,立即停說;
等待時機,然後再說;
注:“聽”,即監聽、檢測之意;“說”,即傳送資料之意。
上面幾句話意思是在傳送資料前,先監聽匯流排是否空閒。若匯流排忙,則不傳送。若匯流排空閒,則把準備好的資料傳送到總線上。在傳送資料的過程中,工作站邊傳送邊檢測匯流排,是否自己傳送的資料有衝突。若無衝突則繼續傳送直到發完全部資料;若有衝突,則立即停止傳送資料,但是要傳送一個加強衝突的JAM訊號,以便使網路上所有工作站都知道網上發生了衝突,然後,等待一個預定的隨機時間,且在匯流排為空閒時,再重新發送未發完的資料。
效能指標:通道利用率、吞吐量、介質利用率
CSMACD的主要影響因素:傳播時延、工作站數。
①CSMA/CD對站點個數不是很敏感,對實際的輸入負載比較敏感。
②CSMA/CD對傳播時延a比較敏感。
③CSMA/CD衝突不可避免。
④CSMA/CD的介質利用率隨a的上升下降較快。
⑤CSMA/CD適合通訊量不大,互動頻繁的場合
⑥對於CSMA/CD幀越長,吞吐量越太,要求幀具有最小長度,當有許多短訊息時,頻寬浪費嚴重。
⑦CSMA/CD在輕負載時提供最短延遲,但對重負載敏感。
主要引數:
時間片512位元時間
幀間間隔9.6微秒
嘗試極限16
退避極限10
人為干擾長32位元
最大幀長1518位元組
最小幀長64位元組
地址欄位長48位元
幾個概念:
上述兩種衝突情況都會涉及一個共同演算法——退避演算法。
① 退避演算法:當出現線路衝突時,如果衝突的各站點都採用同樣的退避間隔時間,則很容易產生二次、三次的碰撞。因此,要求各個站點的退避間隔時間具有差異性。這要求通過退避演算法來實現。
截斷的二進位制指數退避演算法(退避演算法之一):
當一個站點發現線路忙時,要等待一個延時時間M,然後再進行偵聽工作。延時時間M以以下演算法決定:
M = 0 ~ (2^k - 1) 之間的一個隨機數乘以512位元時間(例如對於10Mbps乙太網,為51.2微秒),k為衝突(碰撞)的次數,M的最大值為1023,即當k=10及以後M始終是0~1023之間的一個隨機值與51.2的乘積,當k增加到16時,就發出錯誤資訊。
② 特殊阻塞資訊:是一組特殊資料資訊。在傳送資料後發現衝突時,立即傳送特殊阻塞資訊(連續幾個位元組的全1,一般為32-48位),以強化衝突訊號,使線路上站點可以儘早探測得到衝突的訊號,從而減少造成新衝突的可能性。
③ 衝突檢測時間>=2α: α表示網路中最遠兩個站點的傳輸線路延遲時間。該式表示檢測時間必須保證最遠站點發出資料產生衝突後被對方感知的最短時間。在2α時間裡沒有感知衝突,則保證發出的資料沒有產生衝突。(只要保證檢測2α時間,沒有必要整個傳送過程都進行檢測)
④ X-堅持的CSMA演算法:當在偵聽中發現線路空閒時,不一定馬上傳送資料,而採用X-堅持的CSMA演算法決定如何進行資料傳送:
三種演算法及特點:
- 非堅持的CSMA:線路忙,等待一段時間,再偵聽;不忙時,立即傳送;減少衝突,通道利用率降低:
- 1堅持的CSMA:線路忙,繼續偵聽;不忙時,立即傳送;提高通道利用率,增大沖突:
- p堅持的CSMA:線路忙,繼續偵聽;不忙時,根據p概率進行傳送,另外的1-p概率為繼續偵聽(p是一個指定概率值);有效平衡,但複雜:
(6)CSMA控制規程的特徵
① 簡單
② 具有廣播功能
③ 平均頻寬: f = F / n
④ 絕對平等,無優先順序
⑤ 低負荷高效,高負荷低效
⑥ 延時時間不可預測
⑦ 傳輸速率與傳輸距離為一定值
編輯本段
三、應用篇

CSMA/CD 曾經用於各種匯流排結構乙太網(bus topology Ethernet)和雙絞線乙太網(twisted-pair Ethernet)的早期版本中。現代乙太網基於交換機和全雙工連線建立,不會有碰撞,因此沒有必要使用CSMA/CD。
CSMA/CD網路上進行傳輸時,必須按下列五個步驟來進行
(1)傳輸前偵聽
(2)如果忙則等待
(3)傳輸並檢測衝突
(4)如果衝突發生,重傳前等待
(5)重傳或夭折