问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

SIP和SDP协议简介

创作时间:
作者:
@小白创作中心

SIP和SDP协议简介

引用
CSDN
1.
https://blog.csdn.net/weixin_46056189/article/details/143212737

在现代通信中,SIP(Session Initiation Protocol)和SDP(Session Description Protocol)是两个至关重要的协议。它们广泛应用于VoIP(Voice over Internet Protocol)、视频会议和即时消息等多媒体通信领域。本文将对这两个协议进行介绍,探讨它们的工作原理及应用。

1. 引言

在现代通信中,SIP(Session Initiation Protocol)和SDP(Session Description Protocol)是两个至关重要的协议。它们广泛应用于VoIP(Voice over Internet Protocol)、视频会议和即时消息等多媒体通信领域。本文将对这两个协议进行介绍,探讨它们的工作原理及应用。

2. SIP(会话发起协议)

2.1 SIP的概述

SIP是一种信令协议,用于发起、维护和终止会话。它定义了一组用于控制多媒体会话的消息格式和流程,能够支持多种类型的媒体,包括音频、视频和即时消息。SIP是应用层协议,通常基于UDP或TCP传输。

2.2 SIP的主要功能

  • 用户定位 :通过SIP服务器可以找到用户的当前位置。
  • 用户注册 :用户可以向SIP服务器注册其位置信息,以便接收呼叫。
  • 会话管理 :支持多个用户间的会话管理与控制。

3. SDP(会话描述协议)

3.1 SDP的概述

SDP是一种用于描述多媒体会话信息的协议。它通常与SIP配合使用,以提供有关媒体类型、编码格式、传输协议等的信息。SDP本身并不提供会话的控制功能,而是作为描述信息的载体。

3.2 SDP的主要功能

  • 媒体描述 :提供有关媒体流的详细信息,包括格式和传输方式。
  • 会话参数协商 :在会话建立过程中,双方可以协商媒体参数。

简而言之,SIP协议用于发起、管理和终止多媒体会话,而SDP协议提供有关媒体流的描述信息,以便于双方协商和确认会话参数。

4. 字段解析

以一次呼叫为例子进行说明,以下是呼叫操作的SIP交互过程:

请求头:

INVITE sip:1234@example.cn;user=phone SIP/2.0	// 请求行,表示发起一个新的会话(如音频、视频呼叫)
Call-ID: af4ea960fb22ec10@example.cn	// 呼叫标识符,唯一标识一个会话,确保 SIP 会话的全局唯一性
Via: SIP/2.0/UDP 1.0.0.127:5080;branch=z9hG4bKacf3d638f8c3f400	// 记录了请求从客户端到服务端的路径,每经过一个代理,都会插入一个 Via 头
Max-Forwards: 70	// 表示此请求可以通过70个代理(或跳数)转发。每经过一个代理,该值会减少,防止请求无限转发。
Contact: <sip:1000000016@192.168.2.235:5081>	// 指定发送方的联系 URI,在192.168.2.235 IP的5081端口上接收SIP消息
From: "1000000016"<sip:1000000016@example.cn;user=phone>;tag=0b8ea6a0	// 表示呼叫发起者的 SIP URI
To: <sip:1234@example.cn;user=phone>	// 表示被呼叫者的 SIP URI
CSeq: 1 INVITE	// 序列号,用于标识请求的顺序
Content-Type: application/sdp	// 指定请求消息体的类型为 SDP
Content-Length: 1972	// 表示消息体长度为1972字节

消息体:

v=0		// SDP 协议的版本号,固定为 0
o=sipua 1746157443 2 IN IP4 192.168.2.235	// 起始行,表示 建立者用户名+会话标识符+会话版本号+网络类型+地址类型+IP地址
s=IADCall	// 会话名
c=IN IP4 192.168.2.235	// 连接信息,网络类型+地址类型+IP地址
t=0 0	// 开始时间和结束时间,0 0表示永久会话
m=audio 10054 RTP/AVP 126 9 8	// 描述音频媒体流, 端口+传送协议+编码类型列表
a=rtpmap:126 OPUS/48000/2	// rtpmap表示对编解码器的详细描述
a=rtpmap:9 G722/8000
a=rtpmap:8 PCMA/8000
a=fmtp:126 useinbandfec=1;sprop-maxcapturerate=48000;stereo=0;sprop-stereo=0;maxplaybackrate=48000	// 编解码器配置的特定参数
a=sendrecv	// 媒体方向,sendrecv-双向传输、sendonly-只发送不接收、recvonly-只接收不发送、inactive-不发送也不接收
m=video 10056 RTP/AVP 104	// 描述视频媒体流
a=rtpmap:104 H264/90000
a=fmtp:104 profile-level-id=64e01f;max-br=2048;max-mbps=108000;max-fs=3600;packetization-mode=1
a=rtcp-fb:* ccm fir		// rtcp-fb指定RTCP反馈机制
a=rtcp-fb:* nack
a=rtcp-fb:* ccm tmmbr
a=rtcp-fb:* transport-cc
a=sendrecv
a=content:main	// 媒体流为主要内容
a=label:11	// 标签,用于识别媒体流
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号