webrtc获取ip原理
WebRTC(Web实时通信)是一种在Web浏览器中实现P2P(点对点)音视频通信的技术,它是基于JavaScript API构建的,提供了一种实时的、安全的、高质量的网络通信解决方案。
WebRTC的IP获取原理如下:
1. ICE (interactive connectivity establishment):WebRTC使用ICE协议来实现P2P连接。ICE协议的作用是在两个设备之间选择最佳的路径来建立连接。ICE首先通过STUN(Session Traversal Utilities for NAT)协议获取设备的公网IP地址。
-STUN:STUN服务器位于公共网络上,用于报告设备外部公网IP地址和端口号。当一个设备被分配了由NAT(网络地址转换)创建的内部IP地址时,STUN服务器可以通过检测连接到它的包的源IP地址和端口号,识别设备所在的公网IP地址和端口号。
2. NAT(Network Address Translation):大多数设备都位于局域网中,并通过NAT访问公网。NAT将设备的内部IP地址和端口号映射到公众IP地址和端口号,使得多个设备可以共享一个公网IP地址。
- TURN(Traversal Using Relays around NAT):在一些情况下,设备不能直接通过STUN到外部IP地址(如设备在双重NAT后面或使用了防火墙),此时WebRTC将采用TURN服务器来进行中继。TURN服务器接收设备的数据包,并将其转发至目标设备,从而避免了直接P2P连接。
webrtc浏览器3. 数据传输:一旦ICE协议建立了合适的候选路径,WebRTC会使用DTLS(Datagram Transport Layer Security)协议建立安全的连接。DTLS是TLS(Transport Layer Security)在不可靠的数据传输层上的一个版本,用于保证通信的安全性和完整性。
总结起来,WebRTC获取IP的过程是通过STUN服务器识别设备的公网IP地址,解决了NAT的问题。当设备无法直接通过STUN获取到IP地址时,WebRTC会使用TURN服务器进行中继,确保连接的建立。通过这些步骤,WebRTC可以实现从浏览器到浏览器的点对点通信,而无需任何插件或第三方软件的干预。