searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

sdp详解

2023-08-16 06:02:19
48
0

SDP(Session Description Protocol)是一种文本协议,用于描述建立多媒体会话的参数和信息。它主要用于实时通信应用程序(如VoIP、视频会议、流媒体)中的会话控制和协商。

SDP定义了一种格式,用于在通信参与者之间交换会话相关的信息。这些信息包括会话描述、媒体流描述、网络传输参数、编解码器支持、媒体流的格式等。SDP通过在SDP会话描述中,使用一组文本行来表示这些信息。

SDP的一个典型应用是在会话发起者和接收者之间协商建立通信所需的参数。在建立一个会话前,会话发起者生成一个SDP描述,其中包含有关会话相关的信息。然后,会话发起者使用协议(如SIP)将SDP描述发送给会话接收者。接收者收到SDP描述后,解析其中的参数,并根据需要做出响应,返回自己的SDP描述。最后,双方之间通过交换SDP描述,协商并建立起会话所需要的参数。

SDP描述的结构通常包含以下几个部分:

1. 会话描述:描述会话本身的相关信息,例如会话持续时间、会话名称、会议标识符等。
2. 媒体流描述:描述会话所包含的各个媒体流(例如音频、视频、文本等)。对于每个媒体流,会包含其类型、传输地址、编解码器支持、带宽要求等。
3. 媒体传输:描述媒体流的传输参数,例如网络传输协议(如RTP/RTCP)、传输地址(IP和端口)等。

SDP使用一些标准的字段和参数来描述会话和媒体流。例如,会话描述中的常见字段包括`v=`(SDP版本)、`o=`(会话原点)、`s=`(会话名称)、`t=`(会话的时间限制)等。而媒体流描述中的常见字段包括`m=`(媒体描述类型)、`a=`(媒体属性)等。

需要注意的是,SDP本身只描述会话和媒体流的参数,具体的数据传输过程使用其他协议来完成(如RTP、RTCP)。SDP只是用于协助会话参与者进行协商和参数交换。

总结来说,SDP是一种用于描述会话参数和媒体流信息的协议。它在实时通信应用中扮演着重要的角色,支持会话的协商、建立和参与者之间的参数交换。

 

以下是一个简单的例子,展示了使用SDP进行会话协商和参数交换的过程:

假设有两个参与者A和B,他们希望通过SDP协商建立一个音频通话会话。

1. A方生成SDP描述:
   ```
   v=0
   o=user1 123 456 IN IP4 192.168.1.100
   s=Audio Call
   c=IN IP4 192.168.1.100
   t=0 0
   m=audio 5004 RTP/AVP 0 8 126
   a=rtpmap:0 PCMU/8000
   a=rtpmap:8 PCMA/8000
   a=rtpmap:126 telephone-event/8000
   ```

2. A方通过协议(如SIP)将SDP描述发送给B方。

3. B方收到SDP描述,并解析其中的参数。

4. B方根据自己的支持情况生成自己的SDP描述:
   ```
   v=0
   o=user2 789 321 IN IP4 192.168.1.200
   s=Audio Call
   c=IN IP4 192.168.1.200
   t=0 0
   m=audio 6000 RTP/AVP 0 8 18
   a=rtpmap:0 PCMU/8000
   a=rtpmap:8 PCMA/8000
   a=rtpmap:18 G729/8000
   ```

5. B方将自己的SDP描述发送给A方。

6. A方收到B方的SDP描述,并解析其中的参数。

7. 双方使用各自收到的SDP描述中的信息,进行协商并建立音频通话会话。

在上述例子中,A方和B方通过交换SDP描述来协商通话会话的参数。他们在SDP描述中指定了会话名称、传输地址、媒体流类型和编解码器参数。通过解析对方的SDP描述,双方可以了解对方支持的编解码器和传输参数,并根据需要做出适当的响应。最终,双方建立起了一个基于SDP描述的音频通话会话。

0条评论
作者已关闭评论
何****森
15文章数
1粉丝数
何****森
15 文章 | 1 粉丝
何****森
15文章数
1粉丝数
何****森
15 文章 | 1 粉丝
原创

sdp详解

2023-08-16 06:02:19
48
0

SDP(Session Description Protocol)是一种文本协议,用于描述建立多媒体会话的参数和信息。它主要用于实时通信应用程序(如VoIP、视频会议、流媒体)中的会话控制和协商。

SDP定义了一种格式,用于在通信参与者之间交换会话相关的信息。这些信息包括会话描述、媒体流描述、网络传输参数、编解码器支持、媒体流的格式等。SDP通过在SDP会话描述中,使用一组文本行来表示这些信息。

SDP的一个典型应用是在会话发起者和接收者之间协商建立通信所需的参数。在建立一个会话前,会话发起者生成一个SDP描述,其中包含有关会话相关的信息。然后,会话发起者使用协议(如SIP)将SDP描述发送给会话接收者。接收者收到SDP描述后,解析其中的参数,并根据需要做出响应,返回自己的SDP描述。最后,双方之间通过交换SDP描述,协商并建立起会话所需要的参数。

SDP描述的结构通常包含以下几个部分:

1. 会话描述:描述会话本身的相关信息,例如会话持续时间、会话名称、会议标识符等。
2. 媒体流描述:描述会话所包含的各个媒体流(例如音频、视频、文本等)。对于每个媒体流,会包含其类型、传输地址、编解码器支持、带宽要求等。
3. 媒体传输:描述媒体流的传输参数,例如网络传输协议(如RTP/RTCP)、传输地址(IP和端口)等。

SDP使用一些标准的字段和参数来描述会话和媒体流。例如,会话描述中的常见字段包括`v=`(SDP版本)、`o=`(会话原点)、`s=`(会话名称)、`t=`(会话的时间限制)等。而媒体流描述中的常见字段包括`m=`(媒体描述类型)、`a=`(媒体属性)等。

需要注意的是,SDP本身只描述会话和媒体流的参数,具体的数据传输过程使用其他协议来完成(如RTP、RTCP)。SDP只是用于协助会话参与者进行协商和参数交换。

总结来说,SDP是一种用于描述会话参数和媒体流信息的协议。它在实时通信应用中扮演着重要的角色,支持会话的协商、建立和参与者之间的参数交换。

 

以下是一个简单的例子,展示了使用SDP进行会话协商和参数交换的过程:

假设有两个参与者A和B,他们希望通过SDP协商建立一个音频通话会话。

1. A方生成SDP描述:
   ```
   v=0
   o=user1 123 456 IN IP4 192.168.1.100
   s=Audio Call
   c=IN IP4 192.168.1.100
   t=0 0
   m=audio 5004 RTP/AVP 0 8 126
   a=rtpmap:0 PCMU/8000
   a=rtpmap:8 PCMA/8000
   a=rtpmap:126 telephone-event/8000
   ```

2. A方通过协议(如SIP)将SDP描述发送给B方。

3. B方收到SDP描述,并解析其中的参数。

4. B方根据自己的支持情况生成自己的SDP描述:
   ```
   v=0
   o=user2 789 321 IN IP4 192.168.1.200
   s=Audio Call
   c=IN IP4 192.168.1.200
   t=0 0
   m=audio 6000 RTP/AVP 0 8 18
   a=rtpmap:0 PCMU/8000
   a=rtpmap:8 PCMA/8000
   a=rtpmap:18 G729/8000
   ```

5. B方将自己的SDP描述发送给A方。

6. A方收到B方的SDP描述,并解析其中的参数。

7. 双方使用各自收到的SDP描述中的信息,进行协商并建立音频通话会话。

在上述例子中,A方和B方通过交换SDP描述来协商通话会话的参数。他们在SDP描述中指定了会话名称、传输地址、媒体流类型和编解码器参数。通过解析对方的SDP描述,双方可以了解对方支持的编解码器和传输参数,并根据需要做出适当的响应。最终,双方建立起了一个基于SDP描述的音频通话会话。

文章来自个人专栏
sdp
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0