SIP(会话初始协议)是一个用于建立、修改和终止多媒体会话(如IP电话、视频会议)的应用层信令控制协议。
它由IETF于2002年在RFC 3261中标准化,因其基于文本、结构简单且易于扩展,已成为VoIP和IMS网络的核心协议之一。
核心功能与特点
SIP协议本身不传输语音或视频数据,而是负责”管理”会话。它的主要功能包括:
- 用户定位:确定被叫方的IP地址或主机名,支持用户移动性。
- 会话建立与修改:发起呼叫,并可协商或更改会话的媒体类型(如添加视频)和编解码方式。
- 会话管理:包括转移、保持或终止会话,以及邀请新参与者加入。
它的设计借鉴了HTTP和SMTP,采用文本编码,请求和响应消息易于阅读和调试。与同样用于VoIP的H.323协议相比,SIP通常被认为架构更简单、扩展性更好。
网络架构与主要元素
SIP采用客户端/服务器架构,包含以下关键逻辑组件:
| 组件 | 角色与功能 |
|---|---|
| 用户代理 (UA) | 会话的端点,分为发起请求的用户代理客户端 (UAC) 和响应请求的用户代理服务器 (UAS)。SIP终端(如软电话、IP话机)即是UA。 |
| 代理服务器 (Proxy) | 充当”中间人”,代表UA转发请求和响应,帮助将呼叫路由到被叫的当前位置。 |
| 重定向服务器 (Redirect) | 不转发请求,而是将呼叫者的请求重定向到被叫的新地址,让UA直接联系目标。 |
| 注册服务器 (Registrar) | 接收UA的注册请求,记录其当前IP地址,供代理服务器和重定向服务器查询。 |
工作流程简述
一个典型的SIP会话建立过程如下:
- 注册:用户终端(UA)启动时,会向网络的注册服务器发送REGISTER请求,上报其当前IP地址。
- 发起呼叫:主叫UA向代理服务器发送一个INVITE请求,其中包含被叫的地址和会话描述(如支持的媒体类型)。
- 路由与响应:代理服务器查询位置服务,找到被叫UA,将INVITE请求转发过去。被叫UA会依次回复100 Trying、180 Ringing(振铃),并在用户接听后回复200 OK。
- 确认与通话:主叫UA收到200 OK后,发送一个ACK请求进行确认。至此,会话正式建立,双方开始通过RTP协议传输媒体流(语音/视频)。
- 终止会话:任何一方发送BYE请求即可结束通话,另一方回复200 OK确认。
值得注意的是,SIP会与会话描述协议(SDP)协同工作,SDP用于描述媒体流的详细信息(如编解码器、端口号),而这些参数在SIP的INVITE和200 OK消息体中携带。
总结
总的来说,SIP是一个信令协议而非媒体传输协议。它的核心价值在于通过一套简单、灵活的机制,在IP网络上智能地”连接”通信的双方或多方。
LoveCTO

