Contiki之MAC協議 MAC協議架構

2021-07-12 03:36:22 字數 1365 閱讀 9527

通過前面的學習,我們已經知道,rime協議棧中的子協議都直接或者間接地執行在匿名廣播abc之上,當他媽需要傳送訊息的時候,最終會呼叫到abc_send,而abc_send會呼叫rime協議棧的介面rime_output,然後經過鏈路安全層llsec,最終呼叫mac層協議,最終通過無線收發器將資料報傳送出去。

相對應的**主要位於contiki/core/net/mac目錄下。

mac協議基本框架

這裡的框架只是我按照contiki中的**呼叫邏輯抽象出來的,從上到下依次是rime子層,llsec子層,mac子層,rdc子層,framer子層,radio子層。如果與osi七層模型做乙個對比,我們可以將llsec子層、mac子層、rdc子層、framer子層都歸結於mac協議,我們將分別簡要介紹這幾層。

llsec層

llsec的全稱是link layer security,即鏈路層安全。在contiki中,該層對應的預設驅動定義為#define netstack_llsec nullsec_driver。但是其實該驅動並沒有做鏈路層安全處理,而只是簡單地提供了該層的介面。

相關**位於contiki/core/net/llsec目錄下。

mac層

mac的全稱是media access control,即**訪問控制。該層主要負責節點公平地競爭無線通道,比如實現csma演算法。contiki中實現了多種mac協議,包括contikimac,cxmac,sicslowmac,tsch以及nullmac,預設配置的協議是contikimac。

我們今後主要關注檔案csma.[ch]

rdc層

rdc的全稱是radio duty cycling,contiki實現該層的目的是節能。通常在乙個節點中,無線收發器是最消耗電能的裝置之一,需要達到節能的目的,當然得關閉無線收發器。rdc層就負責周期性地關閉無線收發器,但為了接收資料,同時又周期性地喚醒無線收發器。

我們今後主要關注檔案contikimac.[ch]

framer層

framer層在資料報前面加上幀頭,負責將資料報封裝成幀。

我們今後主要關注檔案frame802154.[ch]frame-802154.[ch]

radio層

radio層應該屬於osi七層模型中的物理層,負責將

Contiki學習筆記 RPL協議詳解

前一篇部落格沒寫完也拖了很久時間沒更新了,今天補上。整個contiki帶的協議結構如下圖所示 這裡我想針對上面這幅圖說說我的理解。看過計算機網路的人應該都知道tcp ip的iso架構,感測網的架構跟這個架構差不多。咋們從下往上看,首先是物理層 這個對於我這種硬體出生的人很好理解,就是radio嘛 有...

TCP IP協議之MAC位址

mac位址用於識別資料鏈路中互連的節點,也就是同個網段中使用網線直接連線的機台計算機節點。mac位址相當於計算機的身份證id,是由廠商在出場時直接焊入網絡卡中的。我們前面提到mac位址用於師表資料鏈路中互聯的節點那麼它究竟是如何識別的,既然mac位址是唯一的,那為什麼不通過mac位址去定址,而是同個...

MAC幀的格式 wireshark分析MAC幀

mac幀較為簡單,由五個字段組成 資料字段 其長度在46到1500位元組之間 46位元組是因為最小長度64 18 46,即減去首部和尾部得出的資料字段的最小長度 幀檢驗序列fcs 4位元組 每乙個包都是通過資料鏈路層dlc協議,ip協議和icmp協議共三層協議的封裝。dlc協議的目的和源位址是mac...