SIP 协议抓包学习笔记

SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。SIP 是一种源于互联网的IP 语音会话控制协议,具有灵活、易于实现、便于扩展等特点 [1]。想要完整的学习sip协议, 可以参考RFC3261.

  • SIP呼叫基本流程
    sip流程示例[2]
    [2]

上图是RFC3261给出的例子,在抓包学习的时候, 实际情况更为简单, 没有proxy的环节。

sip 呼叫基本流程
首先将192.168.1.4定义为device1, 192.168.1.5定义为device2。从抓包的截图中, 我们可以发现:

  1. device1 发送INVITE命令给device2, 在INVITE中包含了SDP信息, 如下图, 第一部分是SIP相关内容, 第二部分是SDP相关内容
    在这里插入图片描述
    在这里插入图片描述
    其中SDP部分主要描述了device1的media能力, 包括audio、video、双流share。包括具体支持哪些编码类型,编码参数等。video能力中profile、level等参数可以参考h241文档。
  2. device2 回复device1 100 trying 和180 ringing
    100 trying是通知device1收到INVITE请求了, 180 Ringing是正在响铃的意思,即正在做一些initialization 的动作
  3. device1 向device2发送PRACK (provisional ack),用来回复180, 终止该应答重发。device2 回复200 OK回应PRACK。这一过程非必需。
  4. device2 回复200 OK(针对INVITE请求)给device1, 并附带SDP, device2回复ACK。到此双方media能力交换完成,可以互发RTP数据。
  5. 中间我们可以看到device1 又给device2 发送了INVITE request,这个是会话途中调整参数的方式,在查看第二个INVITE message细节的时候, 我们可以发现SDP中多了desktop share具体的解码能力。之后的200 OK和ACK走下流程。
    在这里插入图片描述
    6.BYE请求和200 OK, 结束会话。
    [1] https://baike.baidu.com/item/SIP/33921
    [2] https://tools.ietf.org/html/rfc3261
  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值