所以我在今年夏天开始工作,他们给我的第一个任务是使用wireshark来理解为什么使用webRTC的应用程序不使用turn服务器。你们能帮助我,了解我应该做哪些步骤,才能更好地理解问题所在。我已经运行了wireshark,并且只得到了绑定到UDP连接的STUN协议。
发布于 2016-07-06 13:15:27
TURN是STUN扩展,因此您只能在Wireshark中看到STUN数据包。
您可以使用WebRTC项目中的this sample轻松地单独测试WebRTC+TURN。删除默认的stun服务器,并添加您自己的TURN服务器的url和凭据。启动wireshark,开始捕获。
单击该页面上的“收集候选人”按钮。您应该至少看到具有主机类型的候选人。如果浏览器可以访问TURN服务器,您应该也会看到srflx类型的候选人。如果TURN服务器正在工作,并且您的凭据有效,那么您将获得类型为relay的候选人。但你可能就不会问了。
现在回到wireshark。将显示过滤器设置为“stun”。您应该会看到一些数据包发送到TURN服务器的ip地址。右键单击其中一个,'follow‘和'udp stream’。这应该会显示浏览器和TURN服务器之间的所有数据包。您应该会看到来自服务器的绑定请求(message_type=0x01)和绑定成功响应(message_type=0x101)。如果你看不到这些,你的turn服务器没有响应,或者有什么东西阻塞了客户端。您也不会在候选人收集演示页面上获得srflx候选人。
您还应该看到wireshark将数据包解释为“allocate request udp”(消息类型为0x101)。这些都是TURN的重要内容。您应该会看到来自TURN服务器的错误,消息类型为0x113,错误代码为401 (未授权),因为在第一个数据包中没有用户名属性。作为对这些请求的响应,浏览器将开始发送包含用户名和消息完整性的分配请求。如果一切顺利,则应该用一个分配成功响应(消息type=0x103)来回答这些问题,该响应指示一个xor中继地址。
如果没有,你会看到更多的401错误,这通常意味着你的用户名和密码是错误的。
您可能还会发现有关使用Wireshark对WebRTChacks上的Amazon Mayday和Whatsapp进行逆向工程的文章很有用--两者都使用wireshark。
WebRTC项目在Wireshark上也有some notes。
https://stackoverflow.com/questions/38212572
复制相似问题