有一根同軸電纜,一堆主機連上面共享這根傳輸媒體。
如果恰好有兩個主機同時在發送數據,那么信號在信道上就會發生碰撞。兩敗俱傷。
共享信道要解決的問題就是僧多粥少的問題。即媒體接入控制(Medium Access Control)
MAC分兩類:
-
靜態划分信道:預先固定分配,一般無線網的物理層使用,數據鏈路層用不上
-
頻分多址
-
時分多址
-
碼分多址
-
-
動態接入控制:
-
受控接入(已淘汰)
-
集中控制:有一個班長轉來轉去問其它人看有有沒有情書要發送,只有被問到的人才能發送。
-
分散控制:郵票一個傳一個,當我獲得郵票之后,我就可以發情書了。我發完把郵票給旁邊好兄弟,好兄弟獲得郵票,那他就能發送情書了。
-
-
隨機接入:去爭奪資源,誰搶到就是誰的,如果兩個都搶到那就誰也別想快活了。(無線局域網使用)
-
3.6.1 靜態划分信道
信道復用有四種:
1)頻分復用(FDM)
2)時分復用(TDM)
3)波分復用(WDM)
波分復用其實就是光的頻分復用
4)碼分復用
練習題:
把0變為-1,1變為+1,然后對應位置相乘相加看是否為0。
用收到的和給出的相乘相加除以8 ,看是0還是1還是-1,1就是發送比特1,0就是沒有發送,-1就是發送比特0。
練習題:
長的就拆分,然后還是用上面的“乘和除”方法、
3.6.2 CSMA/CD協議
解決碰撞是必須要解決的問題
早期的共享式以太網采用載波監聽多址接入/碰撞檢測CSMA/CD協議
-
多址接入:多個主機連在一根總線上,競爭使用總線
-
載波監聽:先聽后說。發消息之前先檢測一下,如果檢測到總線空閑96比特時間,那就允許發送。如果總線忙的話,那我繼續檢測等到總線空閑96個比特時間。
-
碰撞檢測:每一個正在發送幀的站邊發送變檢測(邊說邊聽),一旦有碰撞,特別有禮貌,先讓別人發,等待時機再自己發。
以太網還強化了碰撞,當有碰撞的時候,處理立即停止發送幀之外,還要繼續發送32比特或48比特的人為干擾信號,以便有足夠的碰撞信號使所有的站點都能檢測出來。
爭用期(碰撞窗口的概念)
最小幀長的概念:
最小幀長=往返時間x數據傳輸速率
既然以太網規定了最小幀長,那是否還規定了最大幀長呢?
接下來我們介紹退避時間的計算方法,
接下來我們討論一下CSMA/CD協議的共享式以太網的信道利用率
距離應該不應太大,T0應該大一些,這意味着幀長應該盡量大一點。
接下來我們看看CSMA/CD協議的幀發送流程圖
再來看看幀的接收流程圖:
幀長不能小於最短幀長,目的地址和接收方的地址得一致,沒有誤碼。滿足這三個條件才能正確接收。
練習題:
對於無線網絡可以使用CSMA/CA協議。
本題考查的是最小幀長的概念。找出最小幀長和距離之間的關系就能正確解題。
3.6.3 CSMA/CA協議
無線局域網使用的媒體接入控制協議。
請大家思考一下:既然使用廣播信道的有線局域網都能使用CSMA/CD協議,那我的使用廣播信道的無線局域網能不能也使用CSMA/CD協議?
而有線的就不存在這樣的問題:
總線上的信號,最多經過一個端到端的傳播時延,就能被其它主機接收到。
碰撞信號最多經過一個往返時延就能被收到。傳出去最多一個時延,碰撞信號回來報信也要一個時延。所以是一個往返時延
接下來我們介紹一下時間間隔,也就是兩個幀之間隔多少時間不會發生碰撞。
接下來我們看一下CSMA/CA的工作原理
源站有數據要發送,當源站監測到信道空閑,則在等待幀間間隔DIFS128微秒之后進行發送。
目的站如果正確收到該幀,則經過最短幀間間隔SIFS28微秒之后發送ACK
需要注意的是,若源站在規定時間內沒有收到確認,那重傳計時器超時之后源站會重發數據,但是久了源站也會累,重發次數多了他也不重發了,放棄了。
請大家思考一下:
問題一:源站都檢測到信道是空閑的了,干嘛還要等128微秒再發送數據,這不是多此一舉嗎?
-
這就是考慮到其它站可能有高優先級的VIP幀要發送,所以它要等一等。
問題二:目的站在收到消息了,那干嘛還要等28微秒才發送確認給發送方,拖拖拉拉的一點也不痛快?
-
因為一個站點變身,也就是從發送方變為接收方需要的時間為28微秒。
在源站和目的站的一次對話過程中,信道處於忙的狀態。若無線信道忙的話,其它站點要發送數據,那就滾一邊去。當信道從忙轉變為空閑,再經過128微秒之后。那其他人再退避一段時間之后,就可以發送數據了。
那么問題又來了:你信道都空閑了,還經過了128微秒,為啥我要發送數據我還得等半天?
-
防止多個站點同時發送數據而產生碰撞。
當站點檢測到信道是空閑的,並且所發送的數據幀不是成功發送完上一個之后立即繼續發送的數據幀,那就不使用退避算法再等一會。
以下情況必須使用退避算法:
-
發送數據之前檢測到信道忙
-
在每一次重傳一個數據幀時
-
發完一個數據幀之后要連續發送下一個數據幀的時候(這是為了避免一個站點長時間占用信道,其它站點會有意見)
那么下面我們就來看一下退避算法究竟是何方神聖?
-
倒計時,倒計時結束那就可以立即發送數據
-
倒計時時間內信道又忙了,那我得暫停計時,重新等信道變空閑,再等128微秒后,繼續啟動倒計時。
-
舉例說明:
A正在發送數據,BCD也想要發送數據。於是進行載波監聽,發現信道忙,那就等待。並過一會就對信道檢測一次。當檢測到信道空閑的時候,並且空閑128微秒的時候,那就開始倒計時
C的倒計時最短,C到點之后,C開始發送數據,此時信道由空閑變為忙狀態,B和D的倒計時暫停。
C發完了之后,信道空閑並且空閑時間超過128微秒之后,B和D的計時器開始計時,然后后面就重復以上步驟。
接下來我們介紹CSMA/CA的信道預約和虛擬載波監聽技術。
虛擬載波監聽:
雖然C收不到A的預約信息,但是可以收到B發送的允許A發送的信息,里面包含A和B聯系要占用的時間,這樣就能避免碰撞了。
練習題: