SIP协议学习笔记

一、缩略语 

H.323 – packet based multimedia communication system
H.225 – call signaling protocol
H.245 – call control protocol
RAS – Registration Admission Signaling
SIP – Session Initiation Protocol (RFC 2543, RFC 3261)  初始会话协议 
RSVP –  Resource ReServation Protocol   资源预约协议 
SAP – Session Announcement Protocol 会话通告协议
SDP – Session Description Protocol  会话描述协议 (RFC4566)
MGCP - Media Gateway Control Protocol
H.248/Megaco – Media Gateway Control Protocol
RTP – Realtime Transport Protocol (RFC 1889)  实时传输协议
RTCP – Realtime Transport Control Protocol (RFC 1889)
RTSP – Real Time Streaming Protocol (RFC2324)  实时流协议 
UDP – User Datagram Protocol
TCP - Transmission Control Protocol
IP – Internet Protocol
LDAP – Lightweight Directory Access Protocol 轻量目录访问协议
MIME -- Multipurpose Internet Mail Extensions 多用途网络邮件扩展协议
S/MIME -- Secure/Multipurpose Internet Mail Extensions (RFC2633) 安全多用途网络邮件扩展协议
IPSec – Internet Protocol Security (RFC1827) Internet协议安全
TLS – Transport Layer Security (RFC2246) 传输层安全
SMTP -- Simple Mail Transport Protocol
HTTP -- HyperText Transport Protocol
IETF -- Internet Engineering Task Force 
URI -- Universal Resource Identifier
URL -- Universal Resource Locator
NAI -- Network Access Identifier
UICC -- Universal Integrated Circuit Card
SIM -- Subscriber Identify Module (实际上SIM是驻留在UICC上的应用的名字)
MMUSIC -- Multiparty Multimedia Session Control
NTP -- Network Time Protocol

二、背景知识

1、信令(Signalling):在网络中连接终端,交换机需要知道什么时候建立连接、什么时候拆除连接、需要控制什么资源(即使用电路的数量)以及怎么路由呼叫。所有这些信息都在整个网络中的交换机之间交换,对于每一个呼叫,这些信息同时也传达到对应的两个终端和整个网络中。总起来说,这些与控制连接相关的信息被称为信令。

2、平面(Plane):不同类型的信息流被称之为平面。例如一个电话呼叫中有2种类型的信息流(traffic)需要交换:信令流(控制建立和释放语音路径)和语音流,我们说在一个电话呼叫中能发现2个平面:控制平面和用户平面。控制平面控制用户平面的进程,用户平面处理实际的语音传输。

3、带内信令系统:信令以传送话音相同的频率传送,即信令和语音在同一个电路中一起传输。

4、信号的频谱(Spectrum):传输的信号是在电缆中移动的、负载着信息的电磁波来表示的。连续的信号由不同的频率的电磁波组成,每个信号总是将它大部分的能量集中于某个确定的频率范围,这就是信号的频谱。频谱之外的频率成分只包含了很少的能量,它们对于信号的译码作用不大,所以,通常只需传输频谱内的频率成分就可以恢复原始信号。

5、G.711:一种音频编码译码器,也被称作脉冲编码调制器(PCM,Pulse Code Modulation),可以产生64kbit/s的数字流。

6、本地环路(Local Loop):为了避免终端设备过于复杂,许多数字网络都安装了一个面向终端的模拟接口,这个处于终端和本地交换机之间的接口被称作本地环路(Local Loop)或用户线(Subscriber Line),它使得用户可以保留可信赖的传统的模拟终端并且仍旧与一个数字式的本地交换机连接。模拟信号的编码和译码过程在用户的本地交换机内进行。

7、接入信令(Access Signalling)和干线信令(Trunk Signalling):接入信令是终端和网络之间的信令,干线信令是网络和网络之间的信令。第一个数字信令协议用在交换机间,但用户线仍然是模拟的,因此这个信令过程也得是模拟的。这导致了接入信令和干线信令的分离。后来,但用户线变成数字的了,接入和干线的区别仍旧保留了下来,并且在接入信令和干线信令中使用不同的协议。这样做的目的是使用复杂的交换机和保持相对简单的终端,是网络操作员能够控制网络上发生的几乎所有的事情。终端和网络间的接口叫做用户-网络接口(UNI, user-to-network interface),而交换机之间的接口称作网络-网络接口(NNI, network-to-network interface)。接入信令由摘机/挂机(off/on hook)信号、拨叫的号码以及通知用户呼叫状态的各种音组成,通常使用的手段有拨号脉冲(Decadic Pulse)和双音多频率(DTMF,Dual Tone Multi-Frequency)。

8、信令传输点(STP,Signalling Transfer Point):中继信令(Interexchange Signalling)分为随路信令(CAS,Channel Associated Signalling)和公共信道信令(CCS,Common Channel Signalling)。在CAS中,所有的节点既要处理介质也要处理信令,与某一确定呼叫相关的信令和语音沿着同一个路径传输,只是信道不同。在CCS中,语音和信令沿着不同的路径传输,在一个语音路径中,信令离开一个交换机到达另一个之前,可能要通过一组不能处理语音的中间节点,我们将这些中间节点称作信令传输点。SS7是现在流传最广泛的CCS系统。

9、信令交换点(SSP,Signaling Switch Point):电信智能网中一个网元。完成业务交换功能,是智能网中的业务交换点。受SCP(Service Control Point,业务控制点)控制完成接续功能。SSP功能通常包括呼叫控制功能CCF和业务交换功能SSF, 也可包括专用资源功能SRF。SSP是对由原来的程控交换机的软、硬件进行改造后得到。是公用电话网PSTN以及综合业务数字网ISDN与智能网的连接点,它可检测智能业务呼叫,当检测到智能业务时向业务控制点SCP报告,并根据SCP的命令完成对智能业务的处理。

10、业务控制点(SCP,Service Control Point):电信智能网中一个网元,智能业务的集中地。该节点能够被网络中的其他用户访问,供应商只需升级这个节点就能够提供新的服务。

11、电路交换和分组交换:

       电路交换是在模拟传输的基础上发展起来的,它提供了一个从源端到目的端的适合传输连续模拟信号(例如语音)的专用路径,常用的复用技术有FDM和TDM。在数据通信中,数据流具有突发性和非均匀性的特点。终端不是连续的传输,在大部分时间都是空闲的并且在某些点上却非常繁忙。数据率在整个连接期间也不是保持不变,而是变化非常剧烈。这样,网络资源的利用率非常低。

       分组交换首先设计成用于满足突发数据流的需要。在分组交换中,被传送数据的内容决定网络交换如何执行。源节点把将要传送的信息分成称为分组(Packet)的片,然后将每一个分组路由到达它的目的地所需的信息被附加在这个分组中,形成了分组头(Packet Header)。分组被发送到了第一个网络节点---在分组交换中,网络节点称为路由器(Router)。当这个路由器收到了某个分组时,它检查这个分组头,然后将这个分组转递到下一个适合的路由器上。这个查询分组头的过程在这个路径中的每一个路由器上都要执行,直到分组到达它的目的地为止。到达目的地后,目的地终端剥去这个分组头,就获得了发自源端的真正的数据。


12、会话通告协议(SAP,Session Announcement Protocol):用来实现在潜在的接收者中分发有关多播会话的信息。SAP使用一个大家都知道的多播地址和端口号中进行多播会话的描述任务。SAP是不可靠的,并且需要定时重发。

13、会话描述协议(SDP,Session Description Protocol):规定了对描述会话的必要信息怎样进行编码。它不限定传输机制,不包含任何种类的协商参数。一个SDP描述仅仅是能够被系统用来表述一个多媒体会话中的详细信息。例如,它包含的IP地址、端口号以及会话处于激活状态的时间等。一个SDP描述含有会话级信息和媒体级信息。会话级信息应用于整个会话。例如,它能指定会话的名字。媒体级信息作用于特殊的媒体流。例如,它能给一个音频流指定编码器或者给一个视频流指定发送端口号。会话级信息和媒体级信息都可以作为SDP的开始。会话级信息以v=0开始,v代表类型,0为值,表明协议版本号为0。接下来的行直到媒体级信息起点或者会话描述的终点,提供了整个会话的信息。媒体级信息以m行开始。下面的行直到下一个m行出现,或者直到会话描述的终点,提供了特定媒体流的信息。

14、实时流协议(RTSP,Real Time Streaming Protocol):用来控制多媒体服务器,一般用于流应用。例如,用户能够通过播放按钮告诉服务器开始某个音频流或者视频流。

三、网络协议栈


四、SIP的功能

1、会话的建立、调整和终止

会话只有在2个条件得到满足的情况下才能建立:1,被呼叫者愿意和呼叫者交流;2,被呼叫者和呼叫者就会话将使用的媒体参数达成一致。

SIP独立于它处理的多媒体会话类型和描述会话所使用的机制。由传送音频和视频的RTP流组成的会话通常用SDP协议描述。

下面通过一个例子来说明SIP的这些功能。Bob想和Laura建议一个音频视频会话,并计划采用一个脉冲编码调制(PCM,Pulse Code Modulation)编解码器来对语音进行编码。此时,会话分发部分是Bob使用一个PCM编解码器用于会话的语音部分来向Laura发送一个会话描述符。而Laura喜欢使用一个GSM编解码器,且坚持Bob像她那么做。Bob最终设置了一个GSM音频编解码器,但是会话在这个协商结束之前不能够被建立起来。在通话过程中,Laura突然觉得她今天的发型很糟糕,因此她想去掉视频,因此她调整会话让它只剩下音频部分。当Bob觉得对话应该结束时,他终止对话。

2、用户可移动性

SIP在潜在参与者被定位之前不能向他们传送会话的描述符。经常出现这样的情况,单个用户可能在多个位置被访问。例如,一个人白天在办公室的工作站上被邀请,晚上回家后在PC上,旅行时在移动终端上接受邀请。要实现用户的可移动性,用户要用SIP URL来标识自己。SIP URL通常由一个用户名和一个域名组成,例如,SIP:[email protected]。对于移动性来说,仅仅有URL还是不够的,用户还需要注册,即向服务器登记他当前所在的位置。其他用户想找Bob时,SIP提供了两种操作模式:重定向和代理。如下图所示:


SIP协议学习笔记_第1张图片




注意:用户完全可以在一个服务器上注册多个地址,也可以在多个服务器上注册地址。在用户被最终找到之前,尝试同多个服务器和地址联系的情况是经常发生的。

五、SIP协议操作

SIP是基于HTTP的,与HTTP一样,它也是一个请求/应答协议。客户端是产生请求的SIP实体,服务器是接受请求和返回应答的SIP实体。当两个用户代理交换SIP消息的时候,发送请求的用户代理(UA,User Agent)就是用户代理客户端(UAC,User Agent Client),而返回应答的用户代理则是用户代理服务器(UAS,User Agent Server)。

SIP事物:SIP请求连同一个它所触发的应答被叫做一个SIP事物(transaction)。当服务器收到请求的时候,它就发出一个或多个应答。每一个应答都有一个代表事物状态的编码。带有从100 ~ 199之间的状态码的应答被认为是临时的,从200 ~ 699的应答是最终的应答。处于客户端和服务器之间的SIP事物包括客户端发出的请求、一个或多个临时的应答和一个最终的应答。SIP网络中的所有通信都是通过事物来进行的。尽管事物之间可以有相关性,但是每个事物都是独立的和唯一的。例如,用户可以发起一个事物去请求与另一个用户建立连接,期间,由于某些原因,他也可以发起事物来取消这个建立连接的事物。建立连接的事物和取消连接的事物之间有相关性,但是它们是不同的事物。

SIP事物用户(transaction users):创建SIP事物的所有SIP实体都被认为是事物用户。事物用户可以创建SIP消息(例如,INVITE),能够取消(CANCEL)事物,识别事物地址(事物地址包括:destination IP address + port + transport)。

对话(Dialog):通讯实体间的一个逻辑连接,目的是交换和session相关的SIP消息。dialog不同于transaction,它在transaction之后建立。dialog也不同于session,dialog发生在2个SIP实体间,session发生在多个SIP实体间。区别请见下图:







你可能感兴趣的:(SIP协议学习笔记)