計算機網絡介質訪問控制全攻略:從信道劃分到協議詳解!!!

一、信道劃分介質訪問控制

介質訪問控制:多個節點共享同一個“總線型”廣播信道時,可能發生“信號沖突”

應該怎么控制各節點對傳輸介質的訪問,才能減少沖突,甚至避免沖突?

時分復用(TDM)

時分復用:將時間分為等長的“TDM 幀”,每個“TDM 幀”又分為等長的 m 個“時隙”,將 m 個時隙分配給 m 對用戶(節點)使用

TDM 的缺點:

每個節點最多只能分配到信道總帶寬的 1/m

如果某節點暫不發送數據,會導致被分配的“時隙”閑置信道利用率低

如何解決這個問題呢?

可統計每個節點對信道的使用需求,動態按需分配時隙

統計時分復用(STMD)

統計時分復用:又稱異步時分復用,在TDM 的基礎上,動態按需分配時隙

STDM 的優點:

  • 如果需要時,一個節點可以在一段時間內獲得所有的信道帶寬資源
  • 如果某節點暫不發送數據,可以不分配“時隙”,信道利用率更高

頻分復用(FDM)

頻分復用(FDM):是將信道的總頻帶劃分為多個子頻帶,每個子頻帶作為一個子信道,每對用戶使用一個子信道進行通信

FDM 的優缺點:

  • 優點:各節點可同時發送信號;充分利用了信道帶寬(Hz)
  • 缺點:FDM 技術只能用于模擬信號的傳輸

波分復用(WDM):即光的頻分復用:

光信號的頻帶范圍(帶寬)非常大,因此很適合采用波分復用技術,將一根光纖在邏輯上拆分為多個子信道

碼分復用

2G、3G 移動網絡時代,節點和節點之間的通信常使用 CDMA技術,而 CDMA 技術的底層原理就是碼分復用(CDM)

CDM 技術允許信號相互干擾,相互疊加。接收方有辦法將來自各節點的信號值分離”出來

①給各節點分配專屬"碼片序列”

“碼片序列"包含 m 個碼片(信號值),可看作"m 維向量”(m 維向量的分量通常取 1或-1

要求:各節點的"m 維向量"必須相互正交

Tips:相互通信的各節點知道彼此的"碼片序列"

②發送方如何發送數據

節點發出 m 個信號值與"碼片序列"相同,表示比特 1

節點發出 m 個信號值與"碼片序列"相反,表示比特 0

③信號在傳輸過程中"疊加"

當多個發送方同時發送數據時,信號值會疊加(注:本質是多個 m 維向量的加法)

④接收方如何接收數據

接收方收到的是"看加"信號,需要從中"分離"出各發送方的數據

疊加信號與發送方的碼片序列作"規格化內積”

  • 結果為 1,表示比特 1
  • 結果為-1,表示比特 0

二、隨機訪問介質訪問控制

  • 在隨機訪問協議中,不采用集中控制方式解決發送信息的次序問題,所有用戶能根據自己的意愿隨機地發送信息,占用信道全部速率。
  • 總線形網絡中,當有兩個或多個用戶同時發送信息時,就會產生的沖突(碰撞,即前面所說的相互干擾),導致所有沖突用戶的發送均以失敗告終。
  • 為了解決隨機接入發生的碰撞,每個用戶需要按照一定的規則反復地重傳它的幀,直到該幀無碰撞地通過。這些規則就是隨機訪問介質訪問控制協議,常用的協議有 ALOHA 協議、CSMA 協議、CSMACD 協議和 CSMA/CA 協議等,它們的核心思想都是:勝利者通過爭用獲得信道,從而獲得信息的發送權。因此,隨機訪問介質訪問控制協議又稱爭用型協議
  • 如果介質訪問控制采用信道劃分機制,那么結點之間的通信要么共享空間,要么共享時間,要么兩者都共享:而如果采用隨機訪問控制機制,那么各結點之間的通信就可既不共享時間,也不共享空間。所以隨機介質訪問控制實質上是一種將廣播信道轉化為點到點信道的行為

三、ALOHA 協議

ALOHA 協議是由美國夏威夷大學開發的一種網絡協議。處于 OSI 模型中的數據鏈路層。它屬于隨機存取協議中的一種。它分為純 ALOHA 協議和時隙 ALOHA 協議。

純 ALOHA

純 ALOHA 協議思想:不監聽信道,不按時間發送,隨機重發,想發就發

沖突如何檢測?

如果發生沖突,接收方在就會檢測出差錯,然后不予確認,發送方在一定時間內收不到就判斷發生沖突。

沖突如何解決?

超時后等一隨機時間再重傳。

時隙 ALOHA

時隙 ALOHA 協議的思想:把時間分成若干個相同的時間片,所有用戶在時間片開始時刻同步接入網絡信道,若發生沖突,則必須等到下一個時間片開始時刻再發送。

控制想發就發的隨意性

對比純 ALOHA 和時隙 ALOHA

  1. 純 ALOHA 比時隙 ALOHA 吞吐量更低,效率更低
  2. 純 ALOHA 想發就發,時隙 ALOHA 只有在時間片段開始時才能發

四、CSMA協議

CSMA 協議:是一種允許多個設備在同一信道發送信號的協議,其中的設備監聽其它設備是否忙碌,只有在線路空閑時才發送。

CS載波偵聽/監聽,每一個站在發送數據之前要檢測一下總線上是否有其他計算機在發送數據。

當幾個站同時在總線上發送數據時,總線上的信號電壓擺動值將會增大(互相疊加)。當一個站檢測到的信號電壓擺動值超過一定門限值時,就認為總線上至少有兩個站同時在發送數據,表明產生了碰撞,即發生了沖突。

MA:多點接入,表示許多計算機以多點接入的方式連接在一根總線上

協議思想:發送幀之前,監聽信道

1-堅持 CSMA

堅持:指的是對于監聽信道忙之后的堅持。

1-堅持 CSMA 思想:

如果一個主機要發送消息,那么它先監聽信道。空閑則直接傳輸,不必等待。

忙則一直監聽,直到空閑馬上傳輸。如果有沖突(一段時間內未收到肯定回復),則等待一

個隨機長的時間再監聽,重復上述過程。

優點:只要媒體空閑,站點就馬上發送,避免了媒體利用率的損失,

缺點:假如有兩個或兩個以上的站點有數據要發送,沖突就不可避免。

傳播延遲對 1-堅持 CSMA 協議的性能影響較大。

結點 A開始發送數據時,結點 B也正好有數據要發送,但這時結點 A發出數據的信號還未到達結點 B,結點 B 偵聽到信道空閑,于是立即發送數據,結果必然導致沖突。

即使不考慮延遲,1-堅持 CSMA 協議也可能產生沖突。

例如,結點 A正在發送數據時,結點 B 和 C 也準備發送數據,偵聽到信道忙,于是堅持偵聽,結果當結點 A一發送完畢,結點 B 和 C 就會立即發送數據,同樣導致沖突。

非堅持 CSMA

非堅持: 指的是對于監聽信道忙之后就不繼續監聽,

非堅持 CSMA 思想:如果一個主機要發送消息,那么它先監聽信道。空閑則直接傳輸,不必等待。忙則等待一個隨機的時間之后再進行監聽

優點:采用隨機的重發延遲時間可以減少沖突發生的可能性。

缺點:可能存在大家都在延遲等待過程中,使得媒體仍可能處于空閑狀態,媒體使用率降低。

非堅持 CSMA 協議在偵聽到信道忙后就放棄偵聽,因此降低了多個結點等待信道空閑后同時發送數據導致沖突的概率,但也會增加數據在網絡中的平均延遲。可見,信道利用率的提高是以增加數據在網絡中的延遲時間為代價的。

p-堅持 CSMA

p-堅持指的是對于監聽信道空閑的處理。

p-堅持 CSMA 思想:

如果一個主機要發送消息,那么它先監聽信道,空閑則以p概率直接傳輸,不必等待;概率1-p 等待到下一個時間槽再傳輸忙則等待一個隨機的時間之后再進行監聽

優點:既能像非堅持算法那樣減少沖突,又能像 1-堅持算法那樣減少媒體空閑時間的這種方案。

缺點:發生沖突后還是要堅持把數據幀發送完,造成了浪費。

1-堅持CSMA

非堅持CSMA

p-堅持CSMA

信道空閑

馬上發

馬上發

p概率馬上發

1-p概率等到下一個時隙再發送

信道忙

繼續監聽

放棄監聽,等一個隨機時間再監聽

繼續堅持監聽

五、CSMA/CD協議

協議要點:

先聽后發,邊聽邊發,沖突停發,隨機重發

截斷二進制指數規避算法

確定碰撞后的重傳時機

隨機等待一段時間 = r倍爭用期,其中r是隨機數

爭用期 = 2×最遠單向傳播時延(考慮距離最遠的兩個節點)

k沖突次數

①如果 k≤10,在[0, 2k -1]區間隨機取一個整數r

②如果 k>10,在[0,210 -1]區間隨機取一個整數r

注:

如果爭用期內沒檢測到沖突本次幀發送就不再可能發生沖突

CSMA/CD 沒有 ACK 機制,若發送過程中未檢測到沖突,就認為幀發送成功

特別注意:

第 10 次沖突,是"隨機重發"的分水嶺

第 16 次沖突,直接躺平,放棄傳幀,報告上級(網絡層)

最短幀長:

最短幀長 = 2×最大單向傳播時延×信道帶寬

若收到的幀小于最短幀長,視為無效幀

CSMA/CD 協議的“沖突停發”規則會導致小于最短幀長的“非法幀”

如果 A節點發送的數據幀長度小于最短幀長,可能會導致 A節點“誤以為”

發送過程中沒有發生沖突,但實際上已經發生了沖突。

如果實際要發送的數據很少,可“填充”至合法長度后再發送

當接收方從信道收到一個幀會做哪些判斷?

① 判斷是否小于“最短幀長”,'是,則丟棄幀

② 判斷是不是發給自己的幀,相當于判定目的地址,"否’,則丟棄幀

③ 使用 CRC 校驗,判定幀是否存在差錯,'是’,則丟棄幀

以上均無問題,則接收幀,并將數據部分交給網絡層

最長幀長:規定最長幀長可防止某些節點一直占用信道

以太網規定:

最短幀長=64B

最長幀長=1518B

六、CSMA/CA協議

協議要點:

若信道空閑,間隔 DIFS 后,再發送幀(一口氣發完,發送過程中不用檢測沖突)

若信道不空閑,則進行“隨機退避"

隨機退避原理:

① 用二進制指數退避算法確定一段隨機退避時間(倒計時)

② 發送方會保持監聽信道,只有信道空閑時才"扣除倒計時"倒計時結束后立即發送幀(此時信道“聽起來"一定空閑)

接收方:(采用停止等待協議)

每收到一個正確數據幀都返回 ACK;若發送方超時未收到 ACK,則進行”隨機退避”

CSMA

CSMA/CD

CSMA/CA

原理

先監聽,若信道空閑,在發送

邊發送邊監聽,檢測到沖突立即停止發送

發送過程中不用檢測沖突,發送前想辦法盡量避免沖突(但無法完全避免)

適用于

適用于有線網絡(如:以太網技術)

適用于無線網絡:(如:IEEE 802.11標準的無線局域網技術,即WIFI)

無線局域網(WIFI)

AP(Access Point):接入點,也就是你平時連接的無線 WiFi熱點

為什么不采用 CSMAICD 協議?

1)硬件上很難實現“邊聽邊發,沖突檢測”;因為接收信號的強度往往遠小于發送信號的強

度,且在無線介質上信號強度的動態變化范圍很大。

  1. 存在“隱蔽站”問題;在無線通信中,并非所有站點都能夠聽見對方。發送結點處沒有沖突并不意味著在接收結點處就沒有沖突。

幀間間隔((InterFrame Gap)

DIFS(分布式協調IFS):最長的幀間間隔

SIFS(短 IFS):最短的幀間間隔。預留 SIFS 用于處理收到的幀(如完成差錯控制等)

PIFS(中等長度的IFS),不考察了解即可

時間長度:DIFS > PIFS > SIFS

解決隱蔽站問題

信道預約機制(可選功能)

  • 發送方廣播 RTS 控制幀(先聽后發,忙則退避)
  • AP 廣播 CTS 控制幀
  • 其他無關節點收到 CTS 后自覺"禁言"一段時間(即:虛擬載波監聽機制);發送方收到 CTS 后,就可以發送數據幀
  • AP 收到數據幀后,進行 CRC 校驗,若無差錯就返回 ACK 幀

RTS 控制幀(Request ToSend,請求發送):

它包括源地址、目的地址和這次通信所需的持續時間。

CTS 控制幀(Clear To send,允許發送):

它也包括源地址、目的地址和這次通信所需的持續時間。

注 1:如果超時未收到 CTS,說明預約失敗,則“隨機退避”后再次 RTS 預約

注 2:“先預約,再發送”這種模式可以啟用、也可以不啟用。

七、令牌傳遞協議(輪循訪問)

令牌環網技術:IBM 公司于1984 開發的一種局域網技術

核心特點

環形拓撲結構,各節點“輪詢訪問”信道,不會發生信道沖突。

如何實現“介質訪問控制”

令牌傳遞協議

  • 令牌傳遞又稱“標記傳送”,局部網數據送取的一種控制方法,多用于環形網。
  • 令牌由專用的信息塊組成,典型的令牌由連續的8位“1”組成。當網絡所有節點都空閑時,令牌就從一個節點傳送到下一個節點。當某一節點要求發送信息時,它必須獲得令牌并在發送之前把它從網絡上取走。一旦傳送完數據,就把令牌轉送給下一個節點,每個節點都具備有發送/接收令牌的裝置。使用這種傳送方法決不會發生碰撞,這是因為在某一瞬間只有一個節點有可能傳送數據。

最大的問題是令牌在傳送過程中丟失或受到破壞,從而使節點找不到令牌從而無法傳送信息。

  • TCU:環接口干線耦合器。它的主要作用是傳遞經過的所有幀,為接入站發送和接收數據提供接口。它的狀態有兩種:收聽狀態和發送狀態
  • 沒有人使用令牌時,令牌則在環路中循環。

令牌:一個特殊格式的 MAC 控制幀,不含任何信息

控制信道的使用,確保同一時刻只有一個結點獨占信道。

令牌環網無碰撞(無沖突)

每個結點都可以在一定的時間內(令牌持有時間)獲得發送數據的權利,并不是無限制地持有令牌。

問題:

1.令牌開銷 2.等待延遲 3.單點故障

應用于令牌環網(物理星型拓撲,邏輯環形拓撲)。

采用令牌傳送方式的網絡常用于負載較重、通信量較大的網絡中。

令牌環網中令牌和數據的傳遞過程如下

1)網絡空閑時,環路中只有令牌幀在循環傳遞。

2)令牌傳遞到有數據要發送的站點處時,該站點就修改令牌中的一個標志位,并在令牌中附加自己需要傳輸的數據,將令牌變成一個數據幀,然后將這個數據幀發送出去。

3)數據幀沿著環路傳輸,接收到的站點一邊轉發數據,一邊查看幀的目的地址。如果目的地址和自己的地址相同,那么接收站就復制該數據幀以便進一步處理。

4)數據幀沿著環路傳輸,直到到達該幀的源站點,源站點接收到自己發出去的數據幀后便不再進行轉發。同時,發送方可以通過檢驗返回的數據幀來查看數據傳輸過程中是否有錯,若有錯則重傳該幀。

5)源站點傳送完數據后,重新產生一個令牌,并將令牌傳遞給下一個站點,以交出對媒體的訪問權限。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66637.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66637.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66637.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Prometheus部署及linux、mysql、monog、redis、RocketMQ、java_jvm監控配置

Prometheus部署及linux、mysql、monog、redis、RocketMQ、java_jvm監控配置 1.Prometheus部署1.2.Prometheus修改默認端口 2.grafana可視化頁面部署3.alertmanager部署4.監控配置4.1.主機監控node-exporter4.2.監控mysql數據庫mysqld_exporter4.3.監控mongod數據庫mongodb_expo…

基于tldextract提取URL里的子域名、主域名、頂級域

TLD是TopLevel Domain的縮寫。?tldextract? 是一個用于從URL中提取子域、主域名和頂級域(TLD)的Python庫。它利用公共后綴列表(Public Suffix List)來確保即使是復雜或不常見的URL結構也能被正確解析。tldextract能夠處理包括IC…

常見Arthas命令與實踐

Arthas 官網:https://arthas.aliyun.com/doc/,官方文檔對 Arthas 的每個命令都做出了介紹和解釋,并且還有在線教程,方便學習和熟悉命令。 Arthas Idea 的 IDEA 插件。 這是一款能快速生成 Arthas命令的插件,可快速生成…

Mellanox ConnectX 系列網卡的雙驅動架構:以太網與 InfiniBand 的協同設計

在現代數據中心和高性能計算(HPC)環境中,網絡硬件的性能和功能至關重要。Mellanox ConnectX 系列網卡以其卓越的性能和多功能性而聞名,支持從傳統的以太網到高性能的 InfiniBand 網絡協議。這種多功能性使得 Mellanox 網卡能夠滿足不同應用場景的需求,從常規的數據中心網絡…

win32匯編環境,對多行編輯框添加或刪除文本

;運行效果 ;win32匯編環境,對多行編輯框添加或刪除文本 ;主要要先設置文本的開始點與結束點,然后把一段文本頂替上去。沒有添加文本或刪除文本的概念,只有頂替。如果開始點與結束點都是前面文本的長度值,則成了從后面添加文本的效果。如果結束…

CSDN年度回顧:技術征途上的堅實步伐

嘿,時光過得可真快呀,就像那匹跑得飛快的白馬,嗖的一下,2024 年的日歷就這么悄無聲息地翻到了最后一頁。這會兒我回頭看看在 CSDN 上度過的這一年,心里那叫一個感慨萬千,滿滿的都是喜悅,就像心里…

泛型子類使用Builder提示:both methods have same erasure, yet neither hides the other

父類 Data Builder AllArgsConstructor NoArgsConstructor public class ParentClass {public String name; } 子類 AllArgsConstructor NoArgsConstructor Data SuperBuilder public class ChildClass<T> extends ParentClass {private T value; } 提示錯誤 builde…

Springboot集成Elasticsearch8.0(ES)版本,采用JAVA Client方式進行連接和實現CRUD操作

本文章介紹了 springboot t集成Elasticsearch8.0(ES)版本,如何通過 AVA Client方式進行連接和實現CRUD操作 在ES7.15版本之后,ES官方將高級客戶端 RestHighLevelClient標記為棄用狀態。同時推出了全新的 Java API客戶端 Elasticsearch Java API Client,該客戶端也將在 Ela…

人臉識別打卡系統--基于QT(附源碼)

逃離舒適區 項目源代碼放在我的倉庫中&#xff0c;有需要自取 項目地址 https://gitcode.com/hujiahangdewa/Face_recognition.git 文章目錄 一、項目結構分析二、服務器的搭建三、客戶端的搭建四、人臉識別庫的申請五、基于人臉識別庫的識別判斷六、QT人臉識別----調用百度ai…

人工智能在數字化轉型中的角色:從數據分析到智能決策

引言 在數字化轉型浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;正迅速崛起&#xff0c;成為推動企業創新和變革的關鍵力量。面對日益復雜的市場環境和激烈的行業競爭&#xff0c;企業亟需借助技術手段提高運營效率、優化決策過程&#xff0c;并增強市場競爭力。而AI…

react install

react 安裝 React 是一個用于構建用戶界面的 JavaScript 庫。以下是安裝 React 的步驟&#xff1a; 使用 Create React App Create React App 是一個官方支持的命令行工具&#xff0c;用于快速搭建 React 應用。 安裝 Node.js 和 npm 確保你的計算機上安裝了 Node.js 和 npm…

Android系統開發(二十):字體活起來,安卓自定義字體改造指南

為什么要寫這篇文章&#xff1f; 你是否厭倦了千篇一律的安卓默認字體&#xff1f;想讓你的設備從“乏味的配角”變成“炫酷的主角”&#xff1f;好消息&#xff01;從Android 12到Android 15&#xff0c;自定義字體變得更簡單、更強大。尤其是表情字體的更新&#xff0c;不僅…

django使用踩坑經歷

DRF 使用drf獲取序列化后的id visitor_serializer VisitorSaveSerializer(data{…}) if visitor_serializer.is_valid():visitor visitor_serializer.save() visitor_id visitor.pkpostgrepsql踩坑 django使用postgrepsql&#xff0c;使用聚合函數如:sum 等&#xff0c;被…

ASP.NET Core中 JWT 實現無感刷新Token

在 Web 應用開發中&#xff0c;用戶登錄狀態的管理至關重要。為了避免用戶頻繁遇到登錄過期的問題&#xff0c;我們可以通過實現 JWT&#xff08;JSON Web Token&#xff09;刷新機制來提升用戶體驗 推薦: 使用 Refresh Token&#xff08;雙 Token 機制&#xff09; 1. 生成和…

將 AzureBlob 的日志通過 Azure Event Hubs 發給 Elasticsearch(3.純python的實惠版)

前情&#xff1a; 將 AzureBlob 的日志通過 Azure Event Hubs 發給 Elasticsearch&#xff08;1.標準版&#xff09;-CSDN博客 將 AzureBlob 的日志通過 Azure Event Hubs 發給 Elasticsearch&#xff08;2.換掉付費的Event Hubs&#xff09;-CSDN博客 python腳本實現 厲害的…

python學opencv|讀取圖像(四十)掩模:三通道圖像的局部覆蓋

【1】引言 前序學習了使用numpy創建單通道的灰色圖像&#xff0c;并對灰色圖像的局部進行了顏色更改&#xff0c;相關鏈接為&#xff1a; python學opencv|讀取圖像&#xff08;九&#xff09;用numpy創建黑白相間灰度圖_numpy生成全黑圖片-CSDN博客 之后又學習了使用numpy創…

【全面解析】深入解析 TCP/IP 協議:網絡通信的基石

深入解析 TCP/IP 協議&#xff1a;網絡通信的基石 導語 你是否曾好奇&#xff0c;現代互聯網是如何實現全球設備之間的高速、穩定和可靠通信的&#xff1f;無論是瀏覽網頁、發送電子郵件&#xff0c;還是進行視頻通話&#xff0c;背后都離不開 TCP/IP 協議 的支撐。作為互聯網…

全面解析 Java 流程控制語句

Java學習資料 Java學習資料 Java學習資料 在 Java 編程中&#xff0c;流程控制語句是構建程序邏輯的關鍵部分&#xff0c;它決定了程序的執行順序和走向。通過合理運用這些語句&#xff0c;開發者能夠實現各種復雜的業務邏輯&#xff0c;讓程序更加靈活和智能。 順序結構 順…

Linux系統常用指令

查找文件 find / -name "<文件名>" 2>/dev/null //遍歷系統查找指定文件名文件ls -l | grep "<文件名>" //列出當前目錄下有關文件名的文件find -name sw_sfp_alarm_cfg.xml //查找文件名對應路徑 切換目錄 編輯文件 vi <文件…

【Unity】ScrollViewContent適配問題(Contentsizefilter不刷新、ContentSizeFilter失效問題)

最近做了一個項目&#xff0c;菜單欄讀取數據后自動生成&#xff0c;結果用到了雙重布局 父物體 嘗試了很多方式&#xff0c;也看過很多大佬的文章&#xff0c;后來自己琢磨了一下&#xff0c;當子物體組件自動生成之后&#xff0c;使用以下以下代碼效果會好一些&#xff1a; …