RTMP详细分析(三次握手)
RTMP详细分析(Message 消息,Chunk分块)
librtmp分析(发送数据包处理)

rtmp协议中的message的接收涉及有message 组合多个chunk、相对时间戳计算绝对值。
分析一下librtmp库中的int RTMP_SendPacket(RTMP *r, RTMPPacket *packet, int queue)函数可以更好的理解。

目录

  • 1、刚开始接收一个字节的判断Basic Header占用多少个字节,获取fmt、csid。
  • 2、申请用来保存上一次Packet的Packet*空间和保存上次时间戳空间
  • 3、判断这次Packet是否是RTMP_LARGE_HEADER_SIZE,就知道是否是绝对值。否则将上次的Packet复制过来,就是同一个消息了。
  • 4、读取message header中的字段。
  • 5、读扩展时间戳
  • 6、申请消息体的空间
  • 7、读取消息体
  • 8、备份这次Packet,和判断这次Packet消息是否完整了(一个或多个Packet组成)计算时间戳。

1、刚开始接收一个字节的判断Basic Header占用多少个字节,获取fmt、csid。

2、申请用来保存上一次Packet的Packet*空间和保存上次时间戳空间

3、判断这次Packet是否是RTMP_LARGE_HEADER_SIZE,就知道是否是绝对值。否则将上次的Packet复制过来,就是同一个消息了。

4、读取message header中的字段。

5、读扩展时间戳

6、申请消息体的空间

7、读取消息体

8、备份这次Packet,和判断这次Packet消息是否完整了(一个或多个Packet组成)计算时间戳。

librtmp分析(接收数据包处理)相关推荐

  1. linux收发包内核进程名称,Linux内核IP Queue机制的分析(一)——用户态接收数据包...

    序 笔者将会通过包括本文在内的三篇文章,对IP Queue机制从用户态的应用到内核态的模块程序设计进行分析.三篇文章的题目分别是: Linux内核IP Queue机制的分析(一)­--用户态接收数据包 ...

  2. 数据包捕获计算机网络实训,计算机网络-使用网络协议分析器捕捉和分析协议数据包...

    广州大学学生实验报告 开课学院及实验室:计算机科学与工程实验室2014年11月28日 一.实验目的 (1)熟悉ethereal的使用 (2)验证各种协议数据包格式 (3)学会捕捉并分析各种数据包. 二 ...

  3. 计算机网络与协议分析,计算机网络-使用网络协议分析器捕捉和分析协议数据包...

    <计算机网络-使用网络协议分析器捕捉和分析协议数据包>由会员分享,可在线阅读,更多相关<计算机网络-使用网络协议分析器捕捉和分析协议数据包(10页珍藏版)>请在人人文库网上搜索 ...

  4. 计算机网络-实验三:使用网络协议分析器捕捉和分析协议数据包

    一.实验目的 (1) 熟悉ethereal的使用 (2) 验证各种协议数据包格式 (3) 学会捕捉并分析各种数据包. 二.实验环境 安装了TCP/IP协议的Windows系统,包含实用的网络工具. 三 ...

  5. 关于DELLR710/R910(rhel5.3-5.5) Broadcom netxtreme 5709网卡间歇性的停止接收数据包的问题解决方案...

    问题描述:rhel5.5系统在做压力测试时,因网络流量较大致使网卡间歇性的停止接收数据包的问题,经查是redhat系统自带网卡驱动有BUG,需要更新网卡驱动,以下为问题描述和驱动更新方法: Why d ...

  6. 【Java 网络编程】UDP 服务器 客户端 通信 ( DatagramSocket | DatagramPacket | UDP 发送数据包 | UDP 接收数据包 | 端口号分配使用机制 )

    文章目录 I UDP 信息发送接收原理 II UDP 发送和接收端口相同 III UDP 发送信息代码示例 IV UDP 接收信息代码示例 V UDP 服务器端代码示例 VI UDP 客户端代码示例 ...

  7. Java抓包+分析网络数据包

    Java抓包+分析网络数据包   本程序基于java语言,需安装winpcap和配置Jpcap.jar库文件(需要的可以评论留下邮箱),成功实现了对本主机网卡接口的显示和网络数据包的抓取,并调用函数对 ...

  8. WireShark利用telnet分析指定数据包信息

    1.首先WireShark,点击文件-打开-添加给定的数据包 2.在绿色框里检索telnet协议 3.由于检索信息过多,我们任意右键一条检索信息,右键-追踪流-TCP流,即可显示telnet携带信息( ...

  9. iOS小技能:截获分析网络数据包( tcpdump 、Wireshark的原理和基本使用 、使用Charles联调测试)

    文章目录 前言 I tcpdump 1.1 预备知识 1.2 截获分析网络数据包 1.3 tcpdump常用的一些命令参数 II Wireshark 2.1 原理 2.2 使用方法 2.3 封包详细信 ...

最新文章

  1. hash 数据类型的应用场景
  2. rocksdb原理_教你玩转MyRocks/RocksDB—STATISTICS与后台线程篇
  3. KAFKA 同步和异步消息的发送(开发实战)
  4. 关于如何在项目接口保证幂等性的一点思考
  5. android 跨进程点击方式总结
  6. scikit-learn机器学习常用算法原理及编程实战(五)
  7. 使用mybatis的resultMap进行复杂查询
  8. 大数据可视化的应用场景
  9. [OGRE]最小ogre程序的流程
  10. ZOJ 3429 Cube Simulation (思维题)
  11. c++按行读取txt文件中的内容,并按特定字符分割
  12. BAT54C那些事儿
  13. Alexa Voice Server 实现的 Android APK 聊天机器人
  14. Chrome插件开发练习 - 还未完成
  15. 使用VMware Workstation安装FusionCompute CNA和VRM
  16. CityEngine教程文档-01 基础教程
  17. 阿拉伯数字转大写金额(支持简体和繁体)
  18. php 2038年,PHP 处理大于2038年以后的日期
  19. 最小二乘拟合多项式(利用构造正交多项式的方法)C++
  20. 好好说话之ret2shellcode

热门文章

  1. php用正则去掉一些固定字符,用PHP正则表达式清除字符串的空白
  2. 正则表达式总结及一些有用的例子
  3. CSS布局(二) 盒子模型属性
  4. nth-child(n)和nth-of-type(n)
  5. 《软件工程导论》课后习题解答
  6. NFS网络共享文件系统
  7. Golang系列:打印命令行参数
  8. create your own github repository and build link to your local project
  9. class-感知机Perception
  10. oracle11g 修改字符集 修改为ZHS16GBK