2016-07-05 41 views
0

所以我開始在今年夏天工作,他們給我的第一個任務是使用wireshark來理解爲什麼使用webRTC的應用程序不使用turn服務器。 你們可以幫我解決問題,瞭解我應該採取哪些措施來更好地瞭解問題所在。 我已經運行wireshark並且只能獲得綁定到UDP連接的協議STUN。使用wireshark檢測webRTC問題

回答

1

TURN是一個STUN擴展名,所以你只能在Wireshark中看到STUN包。

您可以使用WebRTC項目中的this sample輕鬆測試WebRTC + TURN。刪除默認的stun服務器併爲您自己的TURN服務器添加url和憑證。 啓動wireshark,開始捕獲。

單擊該頁面上的「收集候選人」按鈕。您至少應該看到具有主持人類型的候選人。您應該,如果瀏覽器可以到達TURN服務器,通常也會看到具有srflx類型的候選人。 如果TURN服務器正在運行並且您的憑證有效,那麼您將獲得類型中繼的候選人。但你可能不會問那麼。

現在回到wireshark。將顯示過濾器設置爲'stun'。您應該看到一些數據包發送到TURN服務器的IP地址。右鍵單擊其中的一個,'follow'和'udp stream'。這應該會顯示瀏覽器和TURN服務器之間的所有數據包。 您應該看到來自服務器的綁定請求(message_type = 0x01)以及綁定成功響應(message_type = 0x101)。如果你沒有看到這些,你的回合服務器沒有響應或阻止客戶端。候選人聚會演示頁面上也不會有srflx候選人。

您還應該看到wireshark解釋爲'分配請求udp'(消息類型爲0x101)。這些對於TURN來說非常重要。 您應該看到來自TURN服務器的錯誤消息類型0x113和錯誤代碼401(未授權),因爲在第一個數據包中沒有用戶名屬性。爲了響應這些瀏覽器將開始發送包含用戶名和消息完整性的分配請求。 如果事情順利,應該用分配成功響應(消息類型= 0x103)來表示異或中繼地址。

如果不是,您會看到更多401錯誤,通常意味着您的用戶名和密碼錯誤。

您可能還會發現有關使用wireshark對WebRTChacks上的Amazon MaydayWhatsapp進行反向工程的文章 - 兩者都使用Wireshark。

WebRTC項目在Wireshark上也有some notes