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