藍牙配對過程和藍牙連接的建立過程
藍牙的建立過程是一個復(fù)雜的過程,即使有過相當(dāng)一段工作和使用經(jīng)驗的人,如果不仔細去了解還是理解不全。
本文引用地址:http://butianyuan.cn/article/201808/386024.htm平時我們用藍牙耳機聽音樂,和不同的設(shè)備共享文件,打電話等,都有一個配對--連接--傳輸數(shù)據(jù)的過程。
藍牙配對過程,其實就是一個認證的過程。
為什么不配對便無法建立連接?
任何無線通信技術(shù)都存在被監(jiān)聽和破解的可能,藍牙SIG為了保證藍牙通信的安全性,采用認證的方式進行數(shù)據(jù)交互。同時為了保證使用的方便性,以配對的形式完成兩個藍牙設(shè)備之間的首次通訊認證,經(jīng)配對之后,隨后的通訊連接就不必每次都要做確認。所以認證碼的產(chǎn)生是從配對開始的,經(jīng)過配對,設(shè)備之間以PIN碼建立約定的link key用于產(chǎn)生初始認證碼,以用于以后建立的連接。
所以不配對,兩個設(shè)備之間便無法建立認證關(guān)系,無法進行連接及其之后的操作,所以配對在一定程度上保證了藍牙通信的安全,當(dāng)然這個安全保證機制是比較容易被破解的,因為現(xiàn)在很多個人設(shè)備沒有人機接口,所以PIN碼都是固定的而且大都設(shè)置為通用的0000或者1234之類的,所以很容易被猜到并進而建立配對和連接。
藍牙的連接過程
現(xiàn)在的藍牙芯片供應(yīng)商提供的技術(shù)支持能力相當(dāng)強大,有完整的硬件和軟件解決方案。對于應(yīng)用而言,提供了固件用于實現(xiàn)底層協(xié)議棧,提供了profile庫及源代碼規(guī)范了各種應(yīng)用,開發(fā)人員只要專注于應(yīng)用程序開發(fā)就可以了。對于藍牙底層的一些東西往往不甚了了。以前我也是這樣子的,最近在做一個自動搜索以實現(xiàn)自動連接的應(yīng)用,發(fā)現(xiàn)還是需要了解一些底層的機制的。
我們可以很容易的進行操作在一個手機和免提設(shè)備之間建立連接,那么這個連接是怎么建立起來的呢?
首先,主設(shè)備(master,即發(fā)起連接的設(shè)備)會尋呼(page)從設(shè)備(slave,接收連接的設(shè)備),master會已跳頻的方式去尋呼slave,slave會固定間隔地去掃描(scan)外部尋呼,即page scan,當(dāng)scan 到外部page時便會響應(yīng)response該page,這樣兩個設(shè)備之間便會建立link的連接,即ACL鏈路的連接。當(dāng)ACL 鏈路連接建立后,主設(shè)備會發(fā)起channel的連接請求,即L2CAP的連接,建立L2CAP的連接之后,主設(shè)備采用SDP去查詢從設(shè)備的免提服務(wù),從中得到rfcomm的通道號,然后主設(shè)備會發(fā)起rfcomm的連接請求建立rfcomm的連接。然后就建立了應(yīng)用的連接。
評論