sip协议分析(SIP协议分析与信令跟踪)

      最后更新:2023-06-26 20:30

      语音业务VOIP开发之SIP协议篇(二) —— SIP报文浅析

      一、SIP消息 SIP消息是SIP客户终端和服务器之间通信的的基本信息单元。SIP消息基于文本,采用UTF-8编码(RFC 2279)中的ISO 10646字符集。SIP协议借鉴了HTTP协议(RFC 2068)的设计思想,有很多消息格式与之相同。SIP协议支持UDP传输协议SIP消息消息分两类:请求消息 和 响应消息请求消息(Request):客户端为了激活特定操作而发给服务器的SIP消息,包括INVITE,ACK,OPTIONS,BYE,CANCEL和REGISTER消息。UAC到UAS。响应消息(Response):服务器向客户端反馈对应请求的处理结果的SIP消息,包括1xx,2xx,3xx,4xx,5xx,6xx响应消息,UAS到UAC二、SIP消息格式与结构:SIP消息由三个部分组成:标识消息类型和目的地址的起始行,携带消息参数的头部以及承载任意附加信息的消息体。消息体中传送的最重要的信息就是由SDP(Session Description Protocol)协议描述的媒体控制信息,供终端协商并建立媒体信道。SIP消息格式:由一个起始行(Start-line)、一个或多个字段(header fields)组成的消息头、一个标志消息头结束的空行(CRLF)以及作为可选项的消息体(Message body)组成,其中描述的头称为实体头(Entityheader)。generic-message = start-line*message-headerCRLF[ message-body ]1.起始行起始行分请求行(Request-Line)和状态行(Status-Line)两种。1.1.请求行(Request-Line)请求消息的起始行,由请求消息类型,请求目的发送地址Request-URI,SIP协议的版本号,之间用空格隔开。请求行的6种Request Method:INVITE:用于发起呼叫请求。INVITE消息包括消息头和数据区两部分。INVITE 消息头包含主、被呼叫的地址,呼叫主题和呼叫优先级等信息。数据区则是关于会话媒体的信息,可由会话描述协议SDP 来实现。BYE:当一个用户决定中止会话时,可以使用BYE 来结束会话。OPTIONS:用于询问被叫端的能力信息,但OPTIONS 本身并不能发起呼叫。ACK:对已收到的消息进行确认应答。REGISTER:用于用户向SIP服务器传送位置信息或地址信息。CANCEL:取消当前的请求,但它并不能中止已经建立的连接。1.2.状态行(Status-Line)响应消息的起始行,SIP应答消息的Status-Line由SIP-Version开始,接着是一个数字编码的状态码Status-Code,最后是一个与状态码相关的描述性短语Reason-Phrase,然后由一个CRLF行结束符结束Status-Line。SIP应答消息的六类应答状态编码1xx:临时消息:表示表示请求消息已经收到,后面将继续处理该请求。2xx:成功消息:表示请求已经被成功的理解、接受或执行。3xx:重定向消息:表示为了完成请求还需采取更进一步的动作。4xx:客户机错误:表示该请求含有语法错误或在这个服务器上不能被满足。5xx:服务器错误:表示该服务器不能处理一个明显有效的请求。6xx:全局性故障:表示该请求在任何服务器上都不能被实现。2.消息头:消息头的作用是进一步提供有关消息的其他信息,使代理服务器或客户代理服务器更好地对消息进行处理。消息头分四类:通用头(general-header )、请求头(request-header )、响应头( response-header )和实体头( entityheader)四大类general-header描述消息基本属性的通用头域,可用于请求消息和应答消息;消息头有:Call-ID,From,To,Via,Contact,CSeq,Encryption,Expires,Record-Route,Timestamp,Date,Accept,Accept-Encoding,Accept-Languagerequest-header请求头域,只可用于请求消息,它被用来传递有关应答的附加信息,对请求进行补充说明;Subject,User-Agent,Organization,Contact,Authorization,Proxy-Authorization,Proxy-Require,Response-Key,Require,Priority,Hide,Route,Max-Forwards。response-header应答头域,只可用于应答消息,它被用来传递有关应答的附加信息,对应答进行补充说明。Proxy-Authenticate,WWW-Authenticate,Retry-After,Server,Warning,Allow,Unsupported。entity-header消息体头域,用于描述消息体内容的长度、格式和编码类型等属性,可用于请求消息或应答消息。Content-Encoding,Content-Length,Content-Type消息头格式每个消息头都是一个“句子”,以CRLF行结束符表示一个头域的结束。它们都由字段名(field-name)和域值(field-value)两部分组成,中间以“:”相隔。常见消息头说明:TO:格式:TO:显示名<接收者URI>;tag=n;显示名和tag可选。接收者URI是SIP网络种唯一标识接收终端的标识符。例:TO:DENNY;TAG=11111     或 TO:sip:caller@work.comFROM: 消息头FROM给出标识会话发起者的URI。比如:FROM:sip:caller@work.com;tag=hyh8。tag是必需的。CALL-ID: 用于全局唯一标识正在建立的会话的标识符。 随机数加UAC标识信息。CSeq: 用于标识同一会话中不同事务的序号,通常由一个用作序号的整型数和消息类型组成。整个会话操作过程由不同的事务组成,每一事务所涉及的消息的CSeq序号必须相同。Via:为响应消息提供传输路径,当请求消息经过每一跳节点时,每一跳节点都把自身的IP地址信息放入顶层Via中。响应消息则沿着请求消息记录下的传输路径反向传输,首先移走指明自身IP地址信息的顶层消息头三、报文格式 SIP 请求消息的过程1、 请求应答的一个过程1004@192.168.0.107---->1001@192.168.0.1121  INVITE ---->SIP SERVER(192.168.0.129)2  407 Proxy Authentication Required-->10043  1004   ack--->SIP SERVER4  1004  INVITE-->SIP SERVER5  SIP-SERVER 100 Giving  --->10046 SIP SERVER INVITE-->10017 1001 100 Trying--->SIP SERVER8 1001  180 Ringing---->SIP SERVER9  SIP SERVER 180 Ringing ---->100410  1001  200 OK--->SIP SERVER11  SIP SERVER  200OK---->100412  1004  ACK--->SIP SERVER 13  SIP SERVER  ACK ----> 1001
      语音业务VOIP开发之SIP协议篇(二) —— SIP报文浅析

      sip是什么意思?

      SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。SIP 是一种源于互联网的IP 语音会话控制协议,具有灵活、易于实现、便于扩展等特点。SIP(Session Initiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。SIP与负责语音质量的资源预留协议(RSVP)互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议(LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。随着计算机科学技术的进步,基于分组交换技术的IP数据网络以其便捷性和廉价性,取代了基于电路交换的传统电话网在通信领域的核心地位。SIP协议作为应用层信令控制协议,为多种即时通信业务提供完整的会话创建和会话更改服务,由此,SIP协议的安全性对于即时通信的安全起着至关重要的作用。
      sip是什么意思?

      sip协议应用意义

      SIP 协议是由IETF 提出并主持研究的一种基于应用层的多媒体会话控制协议,它是实现IMS 网络通信的关键技术。SIP 协议采用文本形式表示消息的词法和语法,对文本形式的分析比较简单,使得SIP 会话容易遭受安全问题,包括欺骗、会话截获以及窃听等问题。IMS是个分层网络体系,它包含三个彼此独立的网络层:应用层,控制层和媒体传输层。当前只为IMS 控制层和应用层定义了具体的IMS 安全保护机制,而对于媒体层的安全机制却没有做任何定义,媒体层的安全性完全依赖于承载网络的安全机制。SIP 协议可以满足智能电网对通信的所有要求,因此,在智能电网通信中,选择SIP 协议是一个非常明智之举。SIP 协议是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话好似Internet 多媒体会议、IP 电话或多媒体分发。会话的参与者可以通过组播(Multicast)、网状单播(Unicast)或两者的混合体进行通信。SIP 协议是类似于Http 的基于文本的协议。SIP 协议可以减少应用特别是高级应用的开发时间。由于基于IP 协议的SIP 协议利用了IP 网络,固定网运营商也会逐渐认识到SIP 协议技术对于他们的深远意义。使用SIP 协议, 服务提供商可以随意选择标准组件。不论媒体内容和参与方数量,用户都可以查找和联系对方。SIP 协议对会话进行协商,以便所有参与方都能够就会话功能达成一致以及进行修改。它甚至可以添加、删除或转移用户。为了描述消息内容的负载情况和特点,SIP协议使用Internet 的会话描述协议(SDP) 来描述终端设备的特点。SIP 协议自身不提供服务质量(QoS),它与负责语音质量的资源保留设置协议(RSVP)的互操作。它还与若干个其他协议进行协作, 包括负责定位的轻型目录访问协议(LDAP)、负责身份验证的远程身份验证拨入用户服务(RADIUS)以及负责实时传输的RTP 等多个协议。SIP 协议的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性, 也就意味着SIP 协议可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和Web 会议。SIP 协议消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。SIP 协议重用几个现有的比较成熟的Internet 服务和协议,如DNS、RTP、RSVP 等。不必再引入新服务对SIP 协议基础设施提供支持, 因为该基础设施很多部分已经到位或现成可用。对SIP 协议的扩充易于定义, 可由服务提供商在新的应用中添加,不会损坏网络。网络中基于SIP 协议的旧设备不会妨碍基于SIP 协议的新服务。例如,如果旧SIP 协议实施不支持新的SIP 协议应用所用的方法/标头,则会将其忽略。SIP 协议独立于传输层,因此,底层传输可以是采用ATM 的IP。SIP 协议使用用户数据包协议(UDP)以及传输控制协议(TCP),将独立于底层基础设施的用户灵活地连接起来。SIP 协议支持多设备功能调整和协商。如果服务或会话启动了视频和语音, 则仍然可以将语音传输到不支持视频的设备,_____也可以使用其他设备功能,如单向视频流传输功能。SIP 协议会话使用多达4 个主要组件: ①SIP协议用户代理;②SIP 协议注册服务器;③SIP 协议代理服务器;④SIP 协议重定向服务器。这些系统通过传输包括了SDP 协议(用于定义消息的内容和特点)的消息来完成SIP 协议会话。1)SIP 协议用户代理(UA)是终端用户设备,如用于创建和管理SIP 协议会话的移动电话、多媒体手持设备、PC、PDA 等。用户代理客户机发出消息。用户代理服务器对消息进行响应。2)SIP 协议注册服务器是包含域中所有用户代理的位置的数据库。在SIP 协议通信中,这些服务器会检索参与方的IP 地址和其他相关信息,并将其发送到SIP 协议代理服务器。3)SIP 协议代理服务器接受SIP 协议UA 的会话请求,并查询SIP 协议注册服务器,获取收件方UA 的地址信息。然后,它将会话邀请信息直接转发给收件方UA(如果它位于同一域中)或代理服务器(如果UA 位于另一域中)。4)SIP 协议重定向服务器允许SIP 协议代理服务器将SIP 协议会话邀请信息定向到外部域。它可以与SIP 协议注册服务器和SIP 协议代理服务器同在一个硬件上。
      sip协议应用意义

      SIP的协议比较

      H.323协议和SIP协议的比较H.323和SIP分别是通信领域与因特网两大阵营推出的协议。H.323企图把IP电话当作是众所周知的传统电话,只是传输方式发生了改变,由电路交换变成了分组交换。而SIP协议侧重于将IP电话作为因特网上的一个应用,较其它应用(如FTP,E-mail等)增加了信令和QoS的要求,它们支持的 业务基本相同,也都利用RTP作为媒体传输的协议。但H.323是一个相对复杂的协议。H.323采用基于ASN.1和压缩编码规则的二进制方法表示其消息。ASN.1通常需要特殊的代码生成器来进行词法和语法分析。而SIP的基于文本的协议,类似于HTTP。基于文本的编码意味着头域的含义是一目了然的,如From、To、Subject等域名。这种分布式、几乎不需要复杂的文档说明的标准规范风格,其优越性已在过去的实践中得到了充分的证明(如今广为流行的邮件协议SMTP就是 这样的一个例子)。SIP的消息体部份采用SDP进行描述,SDP中的每一项格式为=,也比较简单。在支持会议电话方面,H.323由于由多点控制单元(MCU)集中执行会议控制功能,所有参加会议终端都向MCU发送控制消息,MCU可能会成为颈,特别是对于具有附加特性的大型会议;并且H.323不支持信令的组播功能,其单功能限制了可扩展性,降低了可靠性。而SIP设计上就为分布式的呼叫模型,具有分布式的组播功能,其组播功能不仅便于会议控制,而且简化了用户定位、群组邀请等,并且能节约带宽。但是H.323的集中控制便于计费,对带宽的管理也比较简单、有效。H.323中定义了专门的协议用于补充业务,如H.450.1、H.450.2和H.450.3等。SIP并未专门定义的协议用于此目的,但它很方便地支持补充业务或智能业务。只要充分利用SIP已定义的头域(如Contact头域),并对SIP进行简单的扩展(如增加几个域),就可以实现这些业务。例如对于呼叫 转移,只要在BYE请求消息中添加Contact头域,加入意欲转至的第三方地址就可以实现此业务。对 于通过扩展头域较难实现的一些智能业务,可在体系结构中增加业务代理,提供一些补充服务或与 智能网设备的接口。在H.323中,呼叫建立过程涉及到第三条信令信致到:RAS信令信道、呼叫信令信道和H.245控制信道。通过这三条信道的协调才使得H.323的呼叫得以进行,呼叫建立时间很长。在SIP中,会话请求过程和媒体协商过程等一起进行。尽管H.323v2已对呼叫建立过程作了改进,但较之SIP只需要1.5个回路时延来建立呼叫,仍是无法相比。H.323的呼叫信令通道和H.245控制信道需要可靠的传 输协议。而SIP独立于低层协议,一般使用UDP等无法连接的协议,用自己信用层的可靠性机制来保 证消息的可靠传输。总之,H.323沿用的是传统的实现电话信令模式,比较成熟,已经出现了不少H.323产品。H.323符合通信领域传统的设计思想,进行集中、层次控制,采用H.323协议便于与传统的电话网相连。SIP协议借鉴了其它因特网的标准和协议的设计思想,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,比较简单。以下针对它们的应用目标、标准结构、系统组成以及系统实现的难易程度等几个方面进行简单分析。 h.323标准是itu-t组织 1996年在h.320/h.324的基础上建立起来的,其应用目标是,在基ip的网络环境中,实现可靠的面向音视频和数据的实时应用。如今经过多年的技术发展和标准的不断完善,h.323已经成为被广大的itu成员以及客户所接受的一个成熟标准族。sip标准是itef组织在1999年提出的,其应用目标是在基于internet环境,实现数据、音视频实时通讯,特别是通过internet将视频通讯这种应用大众化,引入到千家万户。由于sip协议相对于h.323而言,相对简单、自由,厂商可以使用相对小的成本就可以构造满足应用的系统。例如仅仅使用微软基于sip协议的msn,和rtc就可以构造一个简单的,基于internet应用环境的视频通讯环境。这样网络运营商就可以在尽量少的成本基础上,利用现有的网络资源开展视音频通讯业务的扩展工作。 h.323是一个单一标准,而不是一个关于在ip环境中实时多媒体应用的完整标准族,对于呼叫的建立、管理以及所传输媒体格式等各个方面都有完善而严格的规定。一个遵守h.323标准建立的多媒体系统,可以保证实现客户稳定完善的多媒体通讯应用。sip标准严格意义上讲是一个实现实时多媒体应用的信令标准,由于它采用了基于文本的编码方式,使得它在应用上,特别是点到点的应用环境中,具有极大的灵活性、扩充性以及跨平台使用的兼容性,这一点使得运营商可以十分方便的利用现有的网络环境实现大规模的推广应用。但是sip协议自身不支持多点的会议功能以及管理和控制功能,而是要依赖于别的协议实现,影响了系统的完备性,特别是对于需要多点通讯的要求,应用单纯的sip系统难以实现。针对这些不足,以radvison公司为首的itu-t sg16小组提出了sip的运用规范,并实现了sip和h.323之间的互通互联,并成功的解决了sip在多点环境下的应用难题。 首先,在系统主要组成成员的功能性方面进行类比,sip的ua等价于一个h.323的终端,实现呼叫的发起和接收,并完成所传输媒体的编解码应用;sip代理服务器、重定向服务器以及注册服务器的功能则等价于h.323的gatekeeper,实现了终端的注册、呼叫地址的解析以及路由。其次,虽然在呼叫信令和控制的具体实现上不同,但一个基于sip的呼叫流程与h.323的q931相类似,sip所采用的会话描述协议(sdp)则类似于h.323中的呼叫控制协议h.245。 h.323标准的信令信息是采用符合asn.1 per的二进制编码,并且在连接实现全过程都要严格标准的定义,系统的自由度小,如要实现大规模的应用,需要对整个网络的各个环节进行规划。sip标准的信令信息是基于文本的,采用符合iso10646的utf-8编码,并且全系统的构造结构相对灵活,终端和服务器的实现也相对容易成本也较低,从网络运营商的角度考虑,构造一个大规模视频通讯网络,采用sip系统的成本要廉价许多,而且也更具有可实现性。 在这里,我只讨论与java相关的SIP技术,其实实现SIP的技术有多种,比如CGI.java为SIP提供了非常好的支持,JCP(Java Community Process)组织推动开发的一套基于Java技术的API:JAIN API(Java API for Integrated Networks),它包含JAIN SIP(JAIN SIP Lite)和SIP Servlet(JSR 116),SIP for J2ME,三个规范.以下为与java相关的SIP技术:JAIN SIP API (JSR 32)SIP Servlet API (JSR 116)JAIN SIP Lite (JSR 125)SIP API for J2ME (JSR 180)JAIN SIMPLE Presence (JSR 164)JAIN SIMPLE Instant Messaging (JSR 165)JAIN SDP (JSR 141) SIP描述协议Java Media Framework for RTP (J2SE可选包,并非JAIN的)SIP for J2ME:(JSR 180 )JAIN SIP API主要提供了J2SE平台的SIP协议栈的实现,主要面向桌面的J2SE应用;SIP Servlet API主要为面向服务端的SIP程序提供了一个API规范,如今实现了该规范的应用服务器有BEA Weblogic SIP Server和Micromethod,还有Jiplet Container,至于如何开发sip servlet,可参见参考资料.SIP for J2ME主要为面向手机的CLDC设备的J2ME客户端.它们之间的差别在参考资料[6]中讲解得很详细.其它Java相关技术:jiplet: 一个支持sip servlet的应用服务器nist-sip SIP Libraries and ToolsJAIN Service Logic Execution Environment (SLEE)
      SIP的协议比较

      sip协议特点

      这些特点也是非常广泛的,是个S IP的话可能涉及到计算机的一个技术配置操作,然后他的一个集代码还有其他的相关的配置效率的。
      SIP它既不是会话描述协议,也不提供会议控制功能。为了描述消息内容的负载情况和特点,SIP 使用 Internet 的会话描述协议 (SDP) 来描述终端设备的特点。SIP 自身也不提供服务质量 (QoS),它与负责语音质量的资源保留设置协议 (RSVP) 互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议 (LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。 SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性,也就意味着SIP可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和 Web 会议。SIP消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。SIP如同电子邮件客户机一样重用 MIME 类型描述,因此与会话相关的应用程序可以自动启动。SIP 重用几个现有的比较成熟的 Internet 服务和协议,如 DNS、RTP、RSVP 等。不必再引入新服务对 SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。 对 SIP 的扩充易于定义,可由服务提供商在新的应用中添加,不会损坏网络。网络中基于 SIP 的旧设备不会妨碍基于 SIP 的新服务。例如,如果旧 SIP 实施不支持新的 SIP 应用所用的方法/标头,则会将其忽略。
      sip协议特点

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类