方格精選

你有沒有想過實際網路資訊是如何傳輸的?-用白話範例說CSMA/CA與CSMA/CD給你聽

更新於 發佈於 閱讀時間約 8 分鐘

在學習網際網路技術中,不管是有線技術(e.g. 802.3 ethernet)或是無線技術(e.g. 802.11 wireless nertwork)都必須要了解「網路設備是如何把訊息傳送到實體媒介上」的觀念,而這也就是CSMA/CA與CSMA/CD存在的意義。

Collision Detection 與 Collision avoidance的不同

CSMA的全名為Carrier Sense Multiple Access,中文翻譯為載波偵聽多路存取(非常直白),Carrier Sense中的Carrier指的是媒介中傳遞的訊號,所以整體白話的來說就是「監聽媒介上的訊號」。那在什麼時候監聽呢?監聽則會發生在傳輸前與傳輸的過程中。那Multiple Access 則指的是「多個裝置可以同時存取媒介」

那我們了解完了CSMA的意思之後,那CA(碰撞避免)跟CD(碰撞偵測)的差異又是什麼?碰撞偵測的機制應用在於那些「容易聽到碰撞的網路環境」,比如說以同軸電纜或是雙絞線基於乙太網路(ethernet)技術架設的區域網路(大家都連在同一條線上),只要監聽媒介,就可以聽到傳輸訊號;而碰撞偵測則適用於那些「不容易聽到碰撞的網路環境」,比如說無線網路,可能會發生像是隱藏節點這樣的問題。

那這設計這兩個機制的前提都是一樣的,只為了解決一個問題,也就是:

如何讓多台裝置,在一個共享的媒介上有效的存取資料

那我們就來簡單了解CSMA/CD以及CSMA/CA的機制吧!

CSMA/CD

CSMA/CD的步驟

  1. 首先在電腦或網路設備要傳送資料前,先偵測媒介上是否有訊號傳輸,如果有訊號,就等到訊號結束;如果沒有就開始傳輸訊號。
  2. 傳輸訊號的同時也要監聽是不是有其他訊號同時傳送而導致訊號碰撞。
  3. 如果發生碰撞了,則馬上停止傳送,並且接著傳送一個不是資料訊號的一個「擾亂訊號」(Jamming signal),讓訊號碰撞持續,此用意在於讓所有連接同樣共享媒介的裝置都可以明確的聽到訊號碰撞的發生;而如果沒有發生碰撞,直到最後一個位元傳送完畢後則代表傳送成功。
  4. 那在傳送完擾亂訊號後,傳送裝置則會隨機的等待一段時間再重新由第一個步驟開始,而每碰撞一次,代表資料沒有成功傳送,就會裝置內的計數器就會加一,直到嘗試失敗16次後就不再傳送,則代表此次傳送失敗。

如果以好懂一點的比喻來說,這樣的機制如果應用在一個多人語音群聊的通話裡面大概會像這樣:

  1. 我想要講話,我先聽有沒有人在講話,如果有人講我就不講,沒有人講話我就開始講。
  2. 我在講話的時候,我同時也在聽別人有沒有插嘴
  3. 如果有人插嘴,我聽到了,我就不會繼續話題,然後接著跟大家說「請大家不要同時講話好嗎?」,而那個插嘴的人聽到也會中斷話題然後也說「請大家不要同時講話喔!」。
  4. 然後我跟那個講話的人都會等一小段時間(Backoff time),然後我就會再聽看看有沒有人要講話,然後嘗試繼續剛剛的話題。如果我一直被打斷超過16次,我就會不爽,就不會想要繼續剛才的話題了

CSMA/CA

無線網路的基本概念

在我們實際開始說明步驟之前,我們需要說明幾個無線網路與有線網路的差別
無線網路因為是透過空氣中的電波傳輸資料,相較於有線網路的傳輸媒介,無線電波更容易受到干擾,因此為確保正確傳輸,每當傳輸一個裝置收到另外一個裝置傳送的資料,他就要回傳一個「確認封包」(Ack Frame)給發送的裝置,讓發送裝置知道他有成功傳送,反之則表示沒有成功傳送


Atomic operation

Atomic operation

有這樣基本的觀念後,讓我們來看看CSMA/CA有什麼不同。

CSMA/CA的步驟

  1. 跟CSMA/CD一樣,首先在電腦或網路設備要傳送資料前,先偵測媒介上是否有訊號傳輸,如果有訊號,就等到訊號結束;而如果沒有偵測到訊號,我會等一個訊框間隔時間(IFS, Interframe space),如果還是沒有聽到任何訊號才會嘗試傳送
  2. 那在傳送的機制也相當特別,因為不是直接傳送,而是再隨機倒數一個時間,當我倒數的時間到了,我才真正的把訊號傳送到媒介上。也就是透過這個IFS以及隨機等待的時間(Backoff time),來嘗試做到「碰撞避免」。
  3. 那在傳送的同時,傳送裝置也會同時監聽,但是當封包傳送後就會完整傳送不會中斷。另外在封包內會保留一個「通道保留時間」(NAV),用意是讓聽到這一個封包的裝置會知道他該停止傳送多久時間
  4. 然後當傳送完成後,傳送裝置會等待一小段時間接收確認封包(Ack),如果有收到,就表示傳送成功,反之則沒有,則裝置會再回到步驟一再次嘗試。而每一次傳送過後沒有收到確認封包,代表資料沒有成功傳送,就會裝置內的計數器就會加一,直到嘗試失敗一定次數後就不再傳送,則代表此次傳送失敗。

同樣的,我們也用一個比較好懂的比喻來說,這樣的機制如果用在一群正在露營的人們大概會像這樣:

  1. 現在快要接近晚餐時間,所以要來準備食材,大家都在露營區不同的地方做事,所以當我想叫一位朋友幫我拿某樣東西,我會先聽一下是不是有人在講話,不管是在露營的其他遊客或是一起來的朋友們,當沒有人在說話時,我會深吸一口氣準備大聲說話(等待訊框間隔時間)
  2. 那我吸飽氣後,我會隨機再等一下(Backoff time),再次確保沒有人在講話後,我就會大聲的喊出「大家先不要講話10秒鐘(NAV),林登請幫我拿東西過來!」,只要在這個範圍能夠聽到我說話的人,就都不會講話10秒(通道保留時間),除了我要講話的對象林登。
  3. 當林登聽到後,林登就會回應說「聽到了!」(確認封包),那收到林登的確認後,我就不會再呼叫一次;反之如果我沒有聽到,我就會再次嘗試,直到我喊的很累了之後,我就決定不再喊了。

透過這樣的方法看似解決了無線傳輸上的問題,但是如果碰到下面這樣的狀況,我們又該怎麼辦呢?

隱藏節點問題

這次的狀況是,阿綠跟阿菊想要跟位中間的林登講話,但是他們彼此聽不到對方說話,所以當阿綠嘗試想要跟林登說話的時候,他也就不會察覺可能阿菊也正要跟林登講話,或是林登因為聽到阿菊正在跟別人說話而不能說話。那此時該怎麼辦呢?

隱藏結點問題(Hidden node problem)

隱藏結點問題(Hidden node problem)

我們可以透過多幾個溝通的步驟來解決這個問題:

  1. 如果阿綠想要跟林登溝通,在實際說出他要講的話之前,他會先跟林登確認他能不能說話,所以他在確認沒有人說話後,就會吸飽氣,然後嘗試跟林登說「大家先不要講話5秒,林登我要跟你說話!」(RTS, Request to send)
  2. 當林登聽到後,而剛好也可以說話,那他也會在別人沒有說話的期間,吸飽氣,大聲跟阿綠說「大家先不要講話10秒,阿綠你可以說!」(Clear to Send)而這時的阿菊,因為聽到了林登跟阿綠說的話,他就會先安靜10秒鐘
  3. 當阿綠聽到了林登的回覆,他就會吸飽氣,然後開始講他想要講的話,那內容大概會像這樣:「大家還是繼續不要講話10秒,林登我跟你說....」
  4. 當林登聽到了阿綠說完他想要講的之後,林登就會回覆阿綠說「阿綠我知道了,大家可以開始講話了!」(確認封包)

如此一來就可以解決這樣隱藏節點的問題了,是不是很聰明呢?


經過這樣簡單的範例說明,是不是感覺這些網路傳送訊息的機制不再這麼艱澀難懂,反而更像是我們早就已經知道的溝通方式呢?雖然實際的細節有很多,但我希望能透過淺顯易懂的說明,讓讀到這篇文章的你能夠了解其中的奧秘所在。

如果你對這樣的內容有興趣,可以幫我按個愛心,我們之後會繼續分享更多有關網路技術的內容喔!艾克森跟你說,網路技術其實很有趣喔!

留言
avatar-img
留言分享你的想法!
Riva Chang-avatar-img
2020/06/24
比喻的很有趣! 「如果我一直被打斷超過16次,我就會不爽,就不會想要繼續剛才的話題了。」XDD
avatar-img
林登(Lyndon)的沙龍
18會員
33內容數
艾克森是一群人,一群初來乍到,但卻渴望在網路上用文字留下足跡的人。我們不斷體驗,並練習分享。
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
在現代分散式微服務系統中,瞭解EDR、RCA、日誌管理、端點保護和根本原因分析的關鍵性。EDR 可即時監控端點威脅,強化資安。RCA 剖析系統問題根源,促使持續改進。digiLogs提供日誌解決方案,集成EDR和RCA,自動化問題追蹤和解析。了解如何提升企業IT效能和資安,讓您的系統運作更順暢。
Thumbnail
在現代分散式微服務系統中,瞭解EDR、RCA、日誌管理、端點保護和根本原因分析的關鍵性。EDR 可即時監控端點威脅,強化資安。RCA 剖析系統問題根源,促使持續改進。digiLogs提供日誌解決方案,集成EDR和RCA,自動化問題追蹤和解析。了解如何提升企業IT效能和資安,讓您的系統運作更順暢。
Thumbnail
Modbus 是比 Ethernet 更簡單的通訊架構,走的是 Master-Slave 模式。協議規定 Slave 裝置們都不可以主動回應,所以 Slave 們在通訊過程中遇到看不懂的、壞掉的資料封包,能做的處理方式就是直接丟掉,從外面看 Slave 裝置的行為就跟「已讀不回」一樣毫無反應
Thumbnail
Modbus 是比 Ethernet 更簡單的通訊架構,走的是 Master-Slave 模式。協議規定 Slave 裝置們都不可以主動回應,所以 Slave 們在通訊過程中遇到看不懂的、壞掉的資料封包,能做的處理方式就是直接丟掉,從外面看 Slave 裝置的行為就跟「已讀不回」一樣毫無反應
Thumbnail
我們前一篇介紹了「【Web系列】訂閱技術的基石,RSS Feed是什麼?」,相信也對於訂閱的機制具備一定的認識了,雖然RSS已經能夠滿足我們訂閱的一些基本需求,但由於主要的訂閱端還是定期去檢查更新資訊,因此假設我們想要在最短時間內掌握最新資訊時,仍會有一些延遲,再者也非常浪費頻寬。 我們為什麼不能改
Thumbnail
我們前一篇介紹了「【Web系列】訂閱技術的基石,RSS Feed是什麼?」,相信也對於訂閱的機制具備一定的認識了,雖然RSS已經能夠滿足我們訂閱的一些基本需求,但由於主要的訂閱端還是定期去檢查更新資訊,因此假設我們想要在最短時間內掌握最新資訊時,仍會有一些延遲,再者也非常浪費頻寬。 我們為什麼不能改
Thumbnail
面對與日俱增的網絡安全,因此企業須具備有效而穩定的網絡安全解決方案(Cybersecurity solutions)。 而言各地區或國家都有一定的標準和指引,中國也不例外。為確保企業在內地市場符合法規地擴張和發展,因此推出《中國網路安全法》網絡安全等級保護 2.0。
Thumbnail
面對與日俱增的網絡安全,因此企業須具備有效而穩定的網絡安全解決方案(Cybersecurity solutions)。 而言各地區或國家都有一定的標準和指引,中國也不例外。為確保企業在內地市場符合法規地擴張和發展,因此推出《中國網路安全法》網絡安全等級保護 2.0。
Thumbnail
面對與日俱增的網絡攻擊,企業的防火牆成為網絡保安的第一道防線,用於供防禦功能,以抵擋惡意的訪問和攻擊。隨着科技革新,防火牆的性能也因而提高,但其有效性取決於防火牆的管理者。為了充分發揮防火牆的效能,必須對其進行適當的管理,以降低針對業務的威脅。 託管防火牆(Managed firewall)
Thumbnail
面對與日俱增的網絡攻擊,企業的防火牆成為網絡保安的第一道防線,用於供防禦功能,以抵擋惡意的訪問和攻擊。隨着科技革新,防火牆的性能也因而提高,但其有效性取決於防火牆的管理者。為了充分發揮防火牆的效能,必須對其進行適當的管理,以降低針對業務的威脅。 託管防火牆(Managed firewall)
Thumbnail
我們前一篇介紹了「【Web系列】訂閱技術的基石,RSS Feed是什麼?」,相信也對於訂閱的機制具備一定的認識了,雖然RSS已經能夠滿足我們訂閱的一些基本需求,但由於主要的訂閱端還是定期去檢查更新資訊,因此假設我們想要在最短時間內掌握最新資訊時,仍會有一些延遲,再者也非常浪費頻寬。 結語
Thumbnail
我們前一篇介紹了「【Web系列】訂閱技術的基石,RSS Feed是什麼?」,相信也對於訂閱的機制具備一定的認識了,雖然RSS已經能夠滿足我們訂閱的一些基本需求,但由於主要的訂閱端還是定期去檢查更新資訊,因此假設我們想要在最短時間內掌握最新資訊時,仍會有一些延遲,再者也非常浪費頻寬。 結語
Thumbnail
何謂「通訊協定(Communication Protocol)」? 電腦之間進行互相通訊所遵守的通訊方法,這個方法是由大家協議出來的通訊方法就稱為「通訊協定」。 情境: 【人類彼此溝通時,A使用中文,B也同樣也要使用中文。】 通訊協定的實際應用
Thumbnail
何謂「通訊協定(Communication Protocol)」? 電腦之間進行互相通訊所遵守的通訊方法,這個方法是由大家協議出來的通訊方法就稱為「通訊協定」。 情境: 【人類彼此溝通時,A使用中文,B也同樣也要使用中文。】 通訊協定的實際應用
Thumbnail
今時今日,人類離不開電子器材已經成為事實。但當人們越來越依賴網上服務時,人們對相對的網絡保安和資訊安全的關注度就遠遠不及電子新玩意了。情況令人憂慮。請大家不要忘了加強及保護企業資訊安全的重要性,不要輕易忽視。
Thumbnail
今時今日,人類離不開電子器材已經成為事實。但當人們越來越依賴網上服務時,人們對相對的網絡保安和資訊安全的關注度就遠遠不及電子新玩意了。情況令人憂慮。請大家不要忘了加強及保護企業資訊安全的重要性,不要輕易忽視。
Thumbnail
在學習網際網路技術中,不管是有線技術(e.g. 802.3 ethernet)或是無線技術(e.g. 802.11 wireless nertwork)都必須要了解「網路設備是如何把訊息傳送到實體媒介上」的觀念,而這也就是CSMA/CA與CSMA/CD存在的意義。
Thumbnail
在學習網際網路技術中,不管是有線技術(e.g. 802.3 ethernet)或是無線技術(e.g. 802.11 wireless nertwork)都必須要了解「網路設備是如何把訊息傳送到實體媒介上」的觀念,而這也就是CSMA/CA與CSMA/CD存在的意義。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News