TCP 上的注册消息

Registration message over TCP

我已经通过 TCP 实现了 SIP 呼叫。 现在我打算将其推断为通过 TCP 注册。

我有一个参考 PCAP,流程如下:

初始注册的序列号和确认号逻辑:

A------------------------------------B Seq - Ack - Size

           REGISTER

--------------------------------→ 1 - 1 - 709

        100 Giving a Try

<-------------------------------- 1 - 710 - 358

        401 Unauthorized

<-------------------------------- 359 - 710 - 459

          REGISTER

--------------------------------→ 710 - 818 - 931

        100 Giving a Try

<-------------------------------- 818 - 1641 - 358

       200OK

<-------------------------------- 1176 - 1641 - 450

当前腿的序号=(上一条同方向的序号+window上一条同方向的条数。)

当前航段的Ack编号=(前一航段的Ack编号){如果当前航段与前一航段方向相同}

=(前一回合序号)+(window前一回合大小){else}

我正在尝试了解以下内容:

  1. 刷新实例应该是同一 TCP 流的一部分吗? 即刷新实例的Src和Dest IP地址以及Src和Dest Port地址是否应该与初始注册相同?
  2. 应该对 Seq 和 Ack 编号应用什么逻辑? 它们应该延续先前的消息(初始注册尝试)还是这些值应该就像在给定设备之间生成新实例一样?

PS: 我正在做一个设备间调用的工具,所以src和dest消息代码在我的范围内。

SIP 注册与使用的传输协议无关。如果您想更新通过 TCP 连接建立的现有 SIP 注册,您可以通过同一 TCP 连接、另一个 TCP 连接甚至通过 UDP 发送注册更新请求。只要请求发送到同一注册商,更新请求就会被这样处理。

更多关于使用 seq 号码和 SIP 注册(更新)的信息在 Registration section of RFC 3261。 更多信息 SIP 注册路径和 RFC 5626 中(不同的)传输协议的使用。