所以我从今年夏天开始工作,他们给我的第一个任务是使用wireshark来理解为什么使用webRTC的应用程序不使用turn服务器。你们能帮助我,了解我应该采取哪些步骤才能更好地了解问题出在哪里。我已经运行了wireshark,并且只获得了绑定到UDP 连接的协议STUN。
TURN 是 STUN 扩展,因此您在 Wireshark 中只能看到 STUN 数据包。
您可以使用WebRTC 项目中的此示例轻松地单独测试 WebRTC+TURN 。删除默认的 stun 服务器并添加您自己的 TURN 服务器的 URL 和凭据。启动wireshark,开始捕获。
单击该页面上的“收集候选人”按钮。您至少应该看到具有主持人类型的候选人。如果浏览器可以访问 TURN 服务器,您通常也应该看到具有 srflx 类型的候选者。如果 TURN 服务器正在运行并且您的凭据有效,那么您将获得中继类型的候选人。但那时你可能不会问。
现在回到wireshark。将显示过滤器设置为“stun”。您应该看到一些数据包发送到 TURN 服务器的 IP 地址。右键单击其中之一,“关注”和“udp 流”。这应该会显示浏览器和 TURN 服务器之间的所有数据包。您应该看到来自服务器的绑定请求 (message_type=0x01) 以及绑定成功响应 (message_type=0x101)。如果您没有看到这些,则说明您的转弯服务器没有响应或有东西阻止了客户端。您也不会在候选人聚集演示页面上获得 srflx 候选人。
您还应该看到wireshark 将数据包解释为“分配请求udp”(消息类型为0x101)。这些对于TURN来说是很重要的。您应该会看到来自 TURN 服务器的错误,消息类型为 0x113,错误代码为 401(未经授权),因为在第一个数据包中,没有用户名属性。为了响应这些请求,浏览器将开始发送包含用户名和消息完整性的分配请求。如果一切顺利,应该用分配成功响应(消息类型 = 0x103)来回答这些问题,指示异或中继地址。
如果没有,并且您看到更多 401 错误,通常意味着您的用户名和密码错误。
您可能还会发现有关使用 Wireshark 对Amazon Mayday和WebRTChacks 上的Whatsapp进行逆向工程的文章很有用 - 两者都使用 Wireshark。
WebRTC 项目也有一些关于Wireshark 的注释。
| 归档时间: |
|
| 查看次数: |
6685 次 |
| 最近记录: |