同样,先附上报文图:

首先我们看下RFC3550中,LSR的说明:
last SR timestamp (LSR): 32 bits
The middle 32 bits out of 64 in the NTP timestamp (as explained in
Section 4) received as part of the most recent RTCP sender report
(SR) packet from source SSRC_n. If no SR has been received yet,
the field is set to zero.

翻译过来大概是:这是上一次从SSRC_n源端发过来的SR报文的NTP timestamp(64位)的中间32位(为何如此请看Section 4)。如果没有收到过SR报文,该域置0.

DLSR的说明:
delay since last SR (DLSR): 32 bits
The delay, expressed in units of 1/65536 seconds, between
receiving the last SR packet from source SSRC_n and sending this
reception report block. If no SR packet has been received yet
from SSRC_n, the DLSR field is set to zero.

大概的意思是:这是一个延时,它的值等于发送这个report block的时间,减去它收到的最新的SR报文的时间。

我估计你还没有看懂,我再举个例子吧。假设有A, B两端,A就是本端,B是对端:

因此,A到B的往返时间为:rtt = t2 - delay - t1 = t2 - DLSR - LSR。

我们来看下代码:

void RTCPReceiver::HandleReportBlock(const RTCPUtility::RTCPPacket& rtcpPacket,RTCPPacketInformation& rtcpPacketInformation,uint32_t remoteSSRC) {//...省略int64_t rtt = 0;uint32_t send_time = rtcpPacket.ReportBlockItem.LastSR;  //LSRif (!receiver_only_ && send_time != 0) {uint32_t delay = rtcpPacket.ReportBlockItem.DelayLastSR;  //DLSR// Local NTP time.uint32_t receive_time = CompactNtp(NtpTime(*_clock));  //当前时间,即接收到RR的时间// RTT in 1/(2^16) seconds.uint32_t rtt_ntp = receive_time - delay - send_time;// Convert to 1/1000 seconds (milliseconds).rtt = CompactNtpRttToMs(rtt_ntp);//...省略
}

RR报文解析(三)利用LSR, DLSR计算RTT相关推荐

  1. JAVA实现报文解析:协议的数据类型和完整的报文结构解析

    **JAVA实现GBT32960报文解析系列文章链接:** JAVA实现GBT32960报文解析(一):协议的数据类型和完整的报文结构解析 JAVA实现GBT32960报文解析(二):数据包结构解析源 ...

  2. 第三章网络介质计算题及其解析[计算机网络]

    总结一下计算机网络学期课程所学,方便以后的复习和补充.       本文主要是第三章网络介质计算题部分.需要掌握的知识点如下图.       需要手写记录的笔记pdf和课本pdf可私信. 文章目录 第 ...

  3. 支付系统设计三:渠道网关设计02-客户端报文解析

    文章目录 前言 一.后台配置管理 1.1 渠道配置 1.1.1 渠道基本信息新增 1.1.2 渠道交易类型配置 1.1.3 渠道商户信息配置 1.1.4 账户配置 1.1.5 交易类型机构配置 1.2 ...

  4. 20201217-IP报文解析

    20201215-IP报文解析 {1}报文结构 ![图片.png](https://img-blog.csdnimg.cn/img_convert/718558a49aa5479c6049e1ea7f ...

  5. 8583 报文解析过程

    一. 全局概述 1. <多渠道平台接入接口规范>这个标准规定了各种接入端(主要包括直联多渠道平台的终端, 包括这里主要关注的POS机)与中国银联多渠道平台之间进行联机交易时使用的报文接口, ...

  6. CUDA实例系列三:利用GPU优化向量规约问题

    CUDA实例系列三:利用GPU优化向量规约问题 先简单的描述一下题目中说的向量规约问题. 这里举个例子, 比如: 我要求出1+2+3-+100的和 我要求出123-*100的积 我要找到a[100]中 ...

  7. 西门子PLC的S7协议报文解析说明

    我们以S7的1500系列来查看握手和读取.写入[字Word或者位Bit]命令报文 以下报文不做说明时都是十六进制字节. 西门子PLC需要连接成功后发送两次握手命令方可进行读写通信. 西门子PLC的S7 ...

  8. 京东实习生招聘题目解析(三)

    有段时间没写了,但是之前把JD剩余的题目基本还是过了一次,题目总体都比较简单,本次的解析选择了其中的5个题目,由于比较简单,就分析的简略些,留一些思考的空间.因为很久没有更新,最近还会和大家讨论一个动 ...

  9. rtsp协议报文解析-首部字段解析

    前言 网上关于rtsp的文章很多,但大多是抽象的理论介绍,从理论学习到实际上手开发往往还有一段距离.然而,没有实际开发经验的支撑,理论又很难理解到位. 本系列文章将从流媒体协议的基础原理开始,通过抓包 ...

最新文章

  1. AI公开课:19.05.22 Aya Soffer—IBM AI Tech VP《Advanced, scalable, and trusted AI 》课堂笔记以及个人感悟
  2. Web前端工作笔记004---js--webSocket简单介绍和使用方法
  3. android:configChanges属性
  4. 部署NEP-5智能合约 (第1部分)
  5. 2021鞍山市高考成绩怎么查询,鞍山师范学院
  6. 20145335郝昊《网络攻防》Exp4 Adobe阅读器漏洞攻击
  7. [图解tensorflow源码] TF系统概述篇
  8. 104种木马手工清除方法
  9. Homebrew 安装以及更新源替换
  10. 提高工作效率的5款APP推荐 ,可能第一个你就没用过
  11. 十种排序算法总结(冒泡、插入、选择、希尔、归并、堆、快速,计数,桶,基数)
  12. java给word表格追加行_Java 使用Spire.Cloud.Word给Word文档添加表格
  13. 猫和路由器和交换机的区别
  14. FireFox火狐浏览器配置页面about:config参数说明
  15. H3C GRE over IPsec实验
  16. 记一个eclipse快捷键Alt+Shift+L
  17. 盈致科技2021大事件 感恩回首过去,高歌猛进一同共创未来
  18. LNMP旧版本一键安装
  19. HorNet: Efficient High-Order Spatial Interactions with Recursive Gated Convolutions
  20. 专门搜罗分享全网优质网站及软件资源下载的合集网站

热门文章

  1. 传奇服是怎样架设的,怎样搭建一个属于自己的游戏服 10分钟学会游戏架设 玩转云服务器搭建游戏
  2. JAVA 对接钉钉API(人员、部门、官方智能工作流)20210527
  3. STC8单片机ADC采样注意事项
  4. 计算存储分离在京东云消息中间件JCQ上的应用
  5. 电脑位置,Windows10系统查找电脑设备位置的方法介绍
  6. 30分钟扫描一亿行代码库,bug漏洞都能找,这款Facebook神器黑粉都赞叹不已
  7. RobotStudio 建立机器人模型和虚拟示教器的使用
  8. Flash网页小游戏开发教程
  9. 桥接模式和装饰者模式的区别及理解
  10. 【转】《与MySQL的零距离接触》第二章:数据类型与操作数据表 (2-9:MySQL记录的插入与查找)