做百度网站好吗,网络营销推广公司获客,搜索引擎营销是目前最主要的网站推广营销,网站单页支付宝支付怎么做文章目录 1.媒体协商SDP简介 2.网络协商STUN的工作原理TURN工作原理 3.信令服务器信令服务器的主要功能信令服务器的实现方式 1.媒体协商
比如下面这个例子 A端与B端要想通信 A端视频采用VP8做解码#xff0c;然后发送给B端#xff0c;B端怎么解码#xff1f; B端视频采用… 文章目录 1.媒体协商SDP简介 2.网络协商STUN的工作原理TURN工作原理 3.信令服务器信令服务器的主要功能信令服务器的实现方式 1.媒体协商
比如下面这个例子 A端与B端要想通信 A端视频采用VP8做解码然后发送给B端B端怎么解码 B端视频采用VP9做解码然后发送给A端A端怎么解码
所以要协商媒体信息
所以A端和B端要同时采用对方都支持的编码方式如上图—使用H264进行解码
有一个专门的协议叫做信令服务器交换会话描述协议SDP用于交换连接信息和协调两个端点之间的通信。会话描述协议SDP是WebRTC信令过程中的核心部分它描述了多媒体会话的细节。以下是关于SDP及其在信令过程中的作用的介绍
SDP简介
SDPSession Description Protocol是一种用于描述多媒体会话的格式。它包含了会话的媒体类型、格式、传输协议和网络信息等。SDP在WebRTC中用于协商音视频通话的各种参数确保两个端点可以兼容并顺利进行通信。
以协商编码格式为例
媒体描述m 描述媒体类型如音频、视频、传输端口、传输协议和格式列表。
maudio 49170 RTP/AVP 0
mvideo 51372 RTP/AVP 312.网络协商
彼此要了解对方的网络信息这样才有可能找到一条相互通讯的链路
理想情况下两台通信的电脑都有自己的私有公网地址可以直接点对点通信 实际情况。我们的电脑都是在一个大的局域网里面需要NAT网络地址转换如下所示图画的比较简陋实际情况往往不止一层NAT可能是多层NAT 为了解决上述问题需要用到STUN 和 TURN
STUNSession Traversal Utilities for NAT是一种用于解决NATNetwork Address Translation穿越问题的网络协议。NAT通常在局域网和互联网之间进行IP地址转换从而保护局域网的设备但它也会导致直接P2P点对点通信的困难。STUN协议帮助WebRTC客户端发现其公网IP地址及其在NAT后的端口从而使P2P通信得以实现。
STUN的工作原理
STUN服务器位于公网上客户端通过它来确定自己的公网IP地址和端口。STUN的基本工作流程如下
客户端发送请求 客户端向STUN服务器发送一个STUN请求包通常是通过UDP协议。STUN服务器响应 STUN服务器收到请求后提取请求包中的源IP地址和端口并将其返回给客户端作为响应。客户端接收响应 客户端接收到响应后解析出其在公网中的IP地址和端口。这些信息可以用于P2P连接的建立。
通过STUNWebRTC客户端能够知道自己的公网IP地址和端口从而使得对端能够直接与其通信。
但是STUN并不是每次都能成为得为需要NAT的通话设备分配IP地址打洞可能打不通或者带宽不足以支撑发送媒体数据这个时候就可以使用TURN来做数据转发。
TURN工作原理
与STUN不同TURN不仅用于发现客户端的公网IP地址和端口还实际参与数据传输。TURN服务器接收客户端的数据并将其转发到目标客户端。这种方式确保了即使在最复杂的NAT和防火墙环境中WebRTC通信仍然可以进行。这种方式的带宽由服务器承担 基本工作流程如下
客户端发送请求 客户端向STUN服务器发送一个STUN请求包通常是通过UDP协议。STUN服务器响应 STUN服务器收到请求后提取请求包中的源IP地址和端口并将其返回给客户端作为响应。客户端接收响应 客户端接收到响应后解析出其在公网中的IP地址和端口。这些信息可以用于P2P连接的建立。
通过STUNWebRTC客户端能够知道自己的公网IP地址和端口从而使得对端能够直接与其通信。
3.信令服务器
信令服务器在WebRTC中是一个关键组件它负责在两个端点如浏览器或应用程序之间交换必要的连接信息媒体协商信息网络连接信息等等以建立和维护实时通信会话。尽管信令服务器不参与实际的媒体数据传输但它在连接建立过程中的作用至关重要。
信令服务器的主要功能
交换SDPSession Description Protocol Offer/Answer当一个端点想要与另一个端点建立连接时它会创建一个SDP offer并通过信令服务器发送给另一个端点。另一个端点接收到offer后生成一个SDP answer并通过信令服务器返回给第一个端点。这些SDP消息包含了媒体类型、编解码器、带宽等信息确保两端能够兼容通信。 交换ICE候选者 ICE候选者Interactive Connectivity Establishment Candidates为了建立P2P连接双方需要交换多个网络候选者以确定最佳的通信路径。信令服务器在这个过程中传递这些候选者信息。 传递控制消息 通话控制信令服务器也用于传递其他控制消息如挂断、静音、解除静音等操作。
信令服务器的实现方式
信令服务器的实现并没有固定的标准可以使用多种协议和技术。常见的实现方式包括
WebSocket一种全双工通信协议特别适合用于实时应用。WebRTC通常使用WebSocket来传递信令消息因为它能够提供低延迟的双向通信。HTTP/HTTPS虽然不如WebSocket实时但可以用于简单的信令实现特别是当实时性要求不高时。SIPSession Initiation Protocol一种用于启动、维护和终止实时会话的协议常用于VoIP网络电话系统中。