我是靠谱客的博主 生动楼房,最近开发中收集的这篇文章主要介绍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

最后

以上就是生动楼房为你收集整理的SIP 协议抓包学习笔记的全部内容,希望文章能够帮你解决SIP 协议抓包学习笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部