交换原理实验sip信令分析报告实验报告材料.docx
《交换原理实验sip信令分析报告实验报告材料.docx》由会员分享,可在线阅读,更多相关《交换原理实验sip信令分析报告实验报告材料.docx(14页珍藏版)》请在冰豆网上搜索。
交换原理实验sip信令分析报告实验报告材料
SIP终端之间双向的通信过程分析
一.信令分析
SIP(SessionInitiationProtocol)是一个应用层的信令控制协议。
用于创建、修改和释放一个或多个参与者的会话。
这些会话可以好似Internet多媒体会议、IP或多媒体分发。
会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。
SIP它既不是会话描述协议,也不提供会议控制功能。
为了描述消息容的负载情况和特点,SIP使用Internet的会话描述协议(SDP)来描述终端设备的特点。
SIP自身也不提供服务质量(QoS),它与负责语音质量的资源预留协议(RSVP)互操作。
它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议(LDAP)、负责身份验证的远程身份验证拨入用户服务(RADIUS)以及负责实时传输的RTP等多个协议。
SIP网络的注册服务器需要维护一个用户的注册SIP地址到当前IP地址的映像。
注册服务器的主要功能是接受用户的注册请求。
同一个服务器也可以实现其他SIP功能(入代理服务)。
注册服务器需要知道用户的当前地址。
当用户在一个主机上登录时,客户端发出的第一个请求很可能就是REGISTER,用这个请求向服务器提供用户当前的地址信息,以保证SIP会话能够到达这个用户。
二.实验流程
设定两个话机分别为A和B,话机A的和IP地址为80288和192.168.1.102,话机B的和IP地址为82888和192.168.1.128,代理服务器的地址为192.168.1.240。
完成基本配置后,实现机A和B都可以在软交换系统中注册成功。
使用机A拨打B,即在机A上拨打82888,在B接收到A的呼叫请求并振铃后,B摘机后再挂断,然后A再挂断。
首先用户终端A向用户终端B发起呼叫请求,用户终端A拨通B的。
UserAgentA请求首先到达的是ProxyServer,ProxyServer接受到终端A的呼叫请求,但是可能代理服务器A自己也不知道SIP用户B所在的位置,它就会将请求发送给位置服务器,通过位置服务器查找出SIP用户B的位置。
三.抓包分析
1.机A发起呼叫请求,发送到软交换服务器
Source:
A192.168.1.102destination:
proxy192.168.1.240
可以从上图观察到,机A192.168.1.102发起呼叫请求,发送到软交换服务器IP地址192.168.1.240处。
信令如图所示。
在SIP信息的头部Via字段定义SIP事务的下层传输协议,即SIP协议版本为2.0,并且表示了消息将要被发送的位置,即82888192.168.1.128。
Call-ID表示一个UA发送的请求消息和接收的响应消息分组的唯一标识。
Call-ID中的主机为全局定义域名全局可选路IP,本地标识由在主机围的唯一标识,主机IP为192.168.1.102。
Contact头字段指定了一个SIPURL,后续的请求可以通过它来连接到当前的UA,实际上写的就是主叫的SIPURL,这里的应为80288192.168.1.240。
Max-forward头字段限定了一个请求消息在到达目的地前允许经过的最大跳数,也结合这里的数值就是说中间最多有70个代理服务器。
From和To字段分别表示请求发起方的逻辑标识和请求消息的逻辑接受者。
这里的From字段为80288192.168.1.240,表示从为80288,代理服务器IP地址192.168.1.240处发起,To地段为82888192.168.1.240,表示发送到为82888,代理服务器IP地址为192.168.1.240处接收。
Cseq字段用于标识事务并对事物进行标识。
这里的请求序列号为1,是一个随机生成的数,在同一个呼叫中,每一个新的请求消息的数据都会加1。
在Contact-Type字段中指出可消息体的类型,这里的消息体类型为SDP,所以Content-Type头部字段为“Content-Type:
applicaton/sdp”。
2.软交换服务器回复机A鉴权响应
软交换服务器回复机A一个鉴权响应,要求呼叫用户进行鉴权。
如图所示。
Source:
proxy192.168.1.240destination:
A192.168.1.102
Status-Code为407,在Via头字段中显示的协议版本号2.0,并且表明了消息将要被发往的地址为192.168.1.102:
5060,branch参数标识有当前请求所建立的事务。
From和To字段分别表示请求发起方的逻辑标识和请求消息的逻辑接受者。
这里的From字段为82088192.168.1.240,表示从为82088,代理服务器IP地址192.168.1.240处发起,To地段为82888192.168.1.240,表示发送到为82888,代理服务器IP地址为192.168.1.240处接收。
3.机A回复代理服务器的鉴权要求
机A在接收到代理服务器的鉴权要求后,回复代理服务器一个ACK确认相应。
Source:
A192.168.1.102destination:
proxy192.168.1.240
不同于其他相应消息,这里的Cseq字段中的请求方法为ACK,并且序号为2,在之前的请求基础上加上1。
终端机A根据407消息中的鉴权信息,如nonce值等信息,重新生成注册信息,发送给服务器。
4.代理服务器尝试呼叫机B
代理服务器接收到机A发来的鉴权信息后,验证通过,给被叫机B发送呼叫请求,并同时给机A发送一个试呼(Trying)消息,表示正在尝试对SIPURL为82888192.168.1.240机B进行呼叫。
如图为代理服务器尝试呼叫机B。
Source:
proxy192.168.1.240destination:
A192.168.1.128
5.代理服务器给机A试呼(Trying)消息,表示正在尝试对机B进行呼叫
如图为代理服务器给机A发送一个试呼响应。
Source:
proxy192.168.1.240destination:
A192.168.1.102
6.机B给代理服务器发送振铃响应
当机B接收到代理服务器的呼叫请求后,接收代理服务器的请求后,给代理服务器发送一个被叫振铃响应,表示被叫用户已经得到代理服务器的请求,正在振铃提示被叫用户。
Source:
proxy192.168.1.128destination:
A192.168.1.240
7.代理服务器B的振铃响应发送给A
代理服务器在接收到用户B发来的振铃相应后立即将消息发送给A,表示在线路上双方的通话已经没有任何的问题,等待的就是B的摘机相应。
Source:
proxy192.168.1.240destinationA192.168.1.102
8.机B用户摘机发送给服务器
在察觉到振铃之后,B的用户摘机,这样就表示用户B接收用户A的请求。
Source:
proxy192.168.1.128destination:
A192.168.1.240
9.代理服务器接收到机B的应答后,将机B的响应发送给A
代理服务器接收到B的应答之后马上将B的响应发送给A,表示B接收了A的呼叫请求,呼叫双方可以通话了。
Source:
proxy192.168.1.240destination:
A192.168.1.102
A在接收到代理服务器发来的确认可以通话的信息后,A通过代理服务器给B发送一个确认信息。
表示已经接收到可以通话的信息,并确认自己现在已经准备好,可以通话了。
10.机B接收到代理发来的确认消息后,进入会话状态
在B接收到代理发来的确认消息后,双方就进入会话状态,通过RTP数据包放在UDP包中传送。
Source:
proxy192.168.1.240destination:
A192.168.1.128
11.B机向代理服务器发送BYE请求
Source:
proxy192.168.1.128destination:
A192.168.1.240
12.代理服务器将BYE请求转发给话机A
代理服务器在接收到话机B的BYE请求后,将BYE请求转发给话机A,过程如图所示。
Source:
proxy192.168.1.240destination:
A192.168.1.102
13.话机A回复B的BYE请求200(OK)响应
话机A收到代理服务器发来的话机B的BYE请求后,通过中间代理服务器回复B一个200(OK)响应。
Source:
A192.168.1.102destination:
proxy192.168.1.240
14.话机B确认话机A已收到自己的BYE请求
话机B在接收到中间代理服务器发送的200(OK)响应后,确认话机A已收到自己的BYE请求。
Source:
A192.168.1.240destination:
proxy192.168.1.128