BATMAN(Better Approach to Mobile Ad-hoc Networking)是一個主動式的網狀路由協議,採用距離向量的路由方法,目前該協議同時存在二個版本。
原本BATMAN路由協議是運行在OSI第三層,與大多數的OSI第三層的網狀路由協議相同,採用User Datagram Protocol(UDP)的傳輸方式。BATMAN Advanced,是一個運行在OSI第二層的版本,其核心的技術與原本OSI第三層的路由協議版本並無不同,BATMAN Advanced於2007年進行第一次發佈(Release);開發團隊改以Linux內核模組的方式進行實作,因為其運作在內核空間,可以直接將封包進行傳送,所以可以避免校驗合(Checksum)計算的負擔。
當BATMAN Advanced內核模組被載入後,會產生一虛擬網路介面,其真正的資料傳輸必須透過真實的網路介面來進行,這個過程稱為捆綁(Binding),可以同時綑綁許多個真實的網路介面,例如Ethernet或是802.11。BATMAN Advanced會向內核註冊一個新的OSI第二層通訊協議,編號為十六進制的0x4305,被定義為ETH_P_BATMAN,當真實的網路介面收到此一類型的封包後,會將封包重導向至BATMAN Advanced內核模組進行處理。