SDP之TCP使用方法

简介

SDP主要是用来为多媒体会话提供媒体信息。它定义了两种协议标签:RTP/AVP和UDP,它们都表示不可依靠,无连接的协议类型。除此之外,使用TCP的应用也可以在SDP中获取到相关的信息。TCP协议在SDP使用中定义了两种使用方式,分别是’setup’和’connection’。

协议标识:

当SDP中用’m='后面为TCP时,说明当前会话要使用TCP协议。

会话属性:

a=setup 主要是表示dtls的协商过程中角色的问题,谁是客户端,谁是服务器
a=setup:actpass 既可以是客户端,也可以是服务器
a=setup:active 客户端
a=setup:passive 服务器
a=setup:holdconn 终端临时终止连接

连接属性:

a=connection 当前会话两端的连接状态信息
a=setup:new 新的连接
a=setup:existing 已存在的连接

标准文档: RFC

  • 场景示例:
让我们假设Alice想要与Bob进行音频和数据通道通信,所以Alice创建了她的本地RTCPeerConnection,并且得到了相应的SDP请求。

根据RFC 5763,SDP请求的a=setup属性必须是“actpass”,也就是应答方(Bob)需要决定谁是DTLS用户谁是DTLS服务器。

Bob生成相应的SDP应答,其中包括a=setup:active,意思是Bob成为了DTLS用户,而Alice成为DTLS服务器。

在ICE和DTLS处理之后,Alice和Bob两个人互相交换了他们的音频和数据。

之后,Bob想要在通信中加上网络摄像头捕捉的视频,所以他得到了一个包括网络摄像头流信息的SDP重请求。

还是,依据RFC 5673,这个SDP重请求中要有a=setup:actpass。

Alice接到SDP重请求并且产生一个重响应。

为了保持现有的DTLS关联开放,这个SDP重响应必须有a=setup:passive项。
  • 创建TCP连接
发送端:
m=image 54111 TCP t38
c=IN IP4 192.0.2.2
a=setup:passive
a=connection:new

应答端::
m=image 9 TCP t38
c=IN IP4 192.0.2.1
a=setup:active
a=connection:new
  • 创建TCP连接
发送端:
m=image 54111 TCP t38
c=IN IP4 192.0.2.2
a=setup:actpass
a=connection:new

应答端:
m=image 54321 TCP t38
c=IN IP4 192.0.2.1
a=setup:passive
a=connection:new
  • 复用TCP连接
发送端:
m=image 54321 TCP t38
c=IN IP4 192.0.2.1
a=setup:passive
a=connection:existing

应答端:
m=image 9 TCP t38
c=IN IP4 192.0.2.2
a=setup:active
a=connection:existing
  • 替换TCP连接
发送端:
m=image 54111 TCP t38
c=IN IP4 192.0.2.2
a=setup:passive
a=connection:existing

应答端:
m=image 9 TCP t38
c=IN IP4 192.0.2.3
a=setup:active
a=connection:new
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大张哥儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值