ios 之 Bonjour 協議簡單抓包分析

2021-07-10 00:01:00 字數 1502 閱讀 9369

目錄(?)

[+]

因在學習ios程式設計之bonjour程式設計的過程中,對bonjour產生了一些些的好奇,因此就查

閱了各種資料以及自己抓包分析該協議。

注:文章作為個人學習記錄,不一定準確,如有錯誤請多多指教,共同進步!

關於bonjour的簡介可以參考文章

bonjour 簡介及使用,這裡講得很清楚。

作用:在缺少中心伺服器的情況下解決ip獲取、名稱解析、服務發現這三個問題。

這裡我是使用了

[cocoa]深入淺出cocoa之bonjour網路程式設計 文章中所提供的程式,把「啟動程式-->建立乙個房間」( 即可僅僅是發布聊天的服務)

這個過程用tcpdump抓下來,再用wireshark來分析(相對本人來說wireshark用的比較多,其他工具也可以,甚至直接在tcpdump命令下分析也可以)。

從抓取的資料報來看,可以得一些基本資訊:.bonjour是基於「mdns(mutilcast dns)」協議的。(224.0.0.251為組播位址)

看紅色框部分(以下都是個人猜測判斷並不一定準確)

1.這裡表明了服務端組播了它的裝置名稱資訊即_chatty._tcp.local    

1)名稱的格式為:_名稱._傳輸協議._本地根網域名稱 ,

2)ptr是 pointer 的簡寫。「ptr」就是反向dns ,該標記,用於表明可講乙個ip位址對映到對應的主機名,即192.168.1.100 對映到 _chatty._tcp.local 該網域名稱

2.這裡表明服務端組播了它所能提供的服務是(註冊了什麼服務):server_create_room's chat room._chatty._tcp.local

如,點開其中乙個資料報,檢視queries部分:

3.這裡,個人覺得是對第2部分的一中響應,點開其中乙個資料報,檢視其answer部分如圖:

1) 這裡指明了server_create_room's chat room._chatty._tcp.local 這個服務的一些其他資訊,如埠!眾所周知,ip+port 能唯一確定一台機器上的乙個服務!

bonjour的簡單運作過程是:註冊並組播自己的裝置名稱---註冊並組播自己的所能提供的服務的名稱--組播自己所提供服務名稱對應的詳細資訊

注:需要分析bonjour協議可以結合dns協議以及mdns協議來分析,還有就是可以對程式進行單步除錯並進行抓包分析!

再次宣告:該文章所分析道的結論不一定正確,只是個人觀點!如有錯誤,請多多指教,共同進步!

iOS開發之http協議

一 url 1.基本介紹 url的全稱是uniform resource locator 統一資源定位符 通過1個url,能找到網際網路上唯一的1個資源 url就是資源的位址 位置,網際網路上的每個資源都有乙個唯一的url 2.url中常見的協議 超文字傳輸協議,訪問的是遠端的網路資源,格式是htt...

iOS開發之 網路 HTTP協議

http的全稱是hypertext transfer protocol,超文字傳輸協議 1.http協議簡介 不管是移動客戶端還是pc端,訪問遠端的網路資源經常使用http協議 獲得大眾點評的 資料 2.http協議的作用 1 規定客戶端和伺服器之間的資料傳輸格式 2 讓客戶端和伺服器能有效地進行資...

iOS開發之TCP UDP Socket簡單介紹

1.udpudp 是一種不可靠的網路協議。qq用的是這個協議 udp是 user datagram protocol 的簡稱,中文名是使用者資料報協議,是 osi參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,ietf rfc 768是 udp的正式規範。udp協議基本上是 ...