今天问题: vqmon 测试一pcap抓包文件18.pcap。发现实际输出的视频分片信息和抓包不符合。

  1. ===>pts : 00:00:33
  1. Too much data in TCP receive queue
  2. Too much data in TCP receive queue
  3. Too much data in TCP receive queue
  4. Too much data in TCP receive queue
  5. Too much data in TCP receive queue
  6. Too much data in TCP receive queue
  7. Too much data in TCP receive queue
  8. Too much data in TCP receive queue
  9. Find segment : url = /youku/6573830471A33761B97894B64/030002070054579E45054304CB019F22D8CB1A-D056-E9D6-D4C7-6BA4A0C62FC1.flv
  10. ===>pts : ::
  11. ===> reset
  12. Segment Info : program id = segment id = url = /youku/6573830471A33761B97894B64/030002070054579E45054304CB019F22D8CB1A-D056-E9D6-D4C7-6BA4A0C62FC1.flv ip = 112.25.58.53 port = insert time = size = duration = download size = 1298 bit rate = begin time = download time = rtt = tcp retrans rate = 0.000000
  13. mt_vqmon_callback

实际wireshark显示:

vqmon检测输出1298KB, 与 6413KB 不符合!

vqmon监测的输出Segment Info 是每一个分片的信息,

 download size = 1298 KB 分片下载大小

download time = 3768 ms 下载时间,从第一个数据包到 最后一个数据包结束(采集完成) 或者到会话关闭。 有时候数据收集很快完成,但会话会超时很久才关闭。

vqmon监测的输出Segment Info 是每一个分片的信息,


  1. Too much data in TCP receive queue
  1. 显示 tcp重组出现错误, 一直无法重组完成,包堆积,导致队列溢出,出现 Too much data in TCP receive queue告警。导致33秒后续的报文无法进去分析逻辑,所以显示download size 偏小,应该是统计到
  2.  
  3. 出错的报文位置。
  4.  
  5. 出错的包
    读包测试tcp重组输出包,
  1. static void
  2. add_from_skb(struct tcp_stream * a_tcp, struct half_stream * rcv,
  3. struct half_stream * snd,
  4. u_char *data, int datalen,
  5. u_int this_seq, char fin, char urg, u_int urg_ptr)
  6. {
  7. u_int lost = EXP_SEQ - this_seq;
  8. int to_copy, to_copy2;
  9.  
  10. if (urg && after(urg_ptr, EXP_SEQ - ) &&
  11. (!rcv->urg_seen || after(urg_ptr, rcv->urg_ptr)))
  12. {
  13. rcv->urg_ptr = urg_ptr;
  14. rcv->urg_seen = ;
  15. }
  16.  
  17. if(a_tcp->addr.source == 49455)
  18. printf("===>%u \n",this_seq - snd->first_data_seq);
  1. 输出相对的seq序号,然后查看pcap报文。
  1. 1203显示当前seq:1328601, seq_next:1330001

包1204显示当前seq:1337001, seq_next:1338401,  故 seq 1330001 - 1337001之间报文丢失!应该是丢失 7000字节,4个包。

当前包1205的 seq:1339801, seq_next:1341201, 故 seq 1338401 - 1339801 之前数据丢失,应该是丢了一个包(1400b)。

后续报文没有出现重传!

注意ack=1331401表明这个包已经收到,但是与上面 seq 1330001 - 1337001之间报文丢失!应该是丢失 7000字节,4个包 矛盾。故wireshark已经提示 [TCP ACKed unseen segment].  


seq 1330001 后面的重组出现问题!  1330001 / 1024 = 1298KB 与vqmon输出值符合。

此包出现原因: 抓包部分丢失!

ps:  请求的FLV数据,Follow TCP Stream ,然后另存为是18.flv,用文本编辑器,去掉http头信息,直接到FLV....后,文件是可以播放的。播放了33s直接停掉了。


此处可以判定另存的文件(即报文重组)有问题。

一共是6:24s 播放到 33s出问题, 

两个分片总大小 看content-length

Content-Range: bytes 3578164-15057252/15057253
Content-Length: 11479089

33 / 144 * 15057253  = 3450620 b = 3370Kb

大概3M 与 6M 不符合。故有问题。

2.通过工具flvparse可以查看。

工具地址:http://blog.csdn.net/leixiaohua1020/article/details/17934487

0x0083c5 = 33733 ms。

0x144148  = 1296 kb.

TCP重组问题的更多相关文章

  1. tcp 重组原理

    原文: http://blog.chinaunix.net/uid-21768364-id-4823449.html 1 .引言TCP/IP 协议现在已经广泛的被应用.数据在网络上应用 TCP/IP ...

  2. TCP数据流稳定性--TCP分片,重组及乱序

    http://www.cnblogs.com/derekchen/archive/2009/07/15/1524415.html 1.IP分片的情况.IP软件包有一个[分片]和[重组]模块,一个IP数 ...

  3. 对TCP重传的进一步认识

    http://blog.sina.com.cn/s/blog_4d276ac901011ee7.html ——TCM项目所得 一.看图说话 1.基于套接字的TCP服务器/客户端程序流程 2.TCP三次 ...

  4. DPDK IP分片及重组库(学习笔记)

    1 前置知识学习 1.1 MTU MTU是最大传输单元( Maximum Transmission Unit)的缩写,指一个接口无需分片所能发送的数据包的最大字节数.  MTU范围在46 ~ 1500 ...

  5. Bypass WAF Cookbook

    PS.之前一直想把零零碎碎的知识整理下来,作为知识沉淀下来,正好借着wooyun峰会的机会将之前的流程又梳理了一遍,于是就有了下文.也希望整理的内容能给甲方工作者或则白帽子带来一些收获. 0x00 概 ...

  6. NetAnalyzer笔记 之 一. 开篇语

    [创建时间:2015-08-26 22:00:12] NetAnalyzer下载地址 第一次写技术相关的博客,不足之处还请担待并告知. 在开始之前,先简单介绍一下NetAnalyzer, NetAna ...

  7. NetAnalyzer笔记 之 七 NetAnalyzer2016使用方法(1)

    [创建时间:2016-04-17 14:47:00] NetAnalyzer下载地址 距离新本的NetAnalyzer已经发布一段时间了,因为比较忙期间只出了一个视频教程,一直没有来的急写文档,今天就 ...

  8. LVS Nginx HAProxy 优缺点

    搭建负载均衡高可用环境相对简单,主要是要理解其中原理.此文描述了三种负载均衡器的优缺点,以便在实际的生产应用中,按需求取舍. 目前,在线上环境中应用较多的负载均衡器硬件有F5 BIG-IP,软件有LV ...

  9. HAProxy的三种不同类型配置方案

    haproxy是一款功能强大.灵活好用反向代理软件,提供了高可用.负载均衡.后端服务器代理的功能,它在7层负载均衡方面的功能很强大(支持 cookie track, header rewrite等等) ...

随机推荐

  1. WannaCry勒索病毒卷土重来:日本本田工厂被迫关闭

    6月22日消息,前阵子WannaCry勒索病毒席卷全球,世界各地网络遭到攻击.日前,偃旗息鼓了一阵的WannaCry勒索病毒又重回人们视线,迫使一家汽车厂在日本关闭. 路透社报道,本田Sayama工厂 ...

  2. LA 3902 网络

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  3. tensorflow pb ckpt pbtxt

    ckpt存储参数值 pbtxt存储网络图 pb既存储参数值又存储网络图

  4. 前端HTML基础

    1.0开发工具介绍 sublime的使用技巧链接 HTML特殊符号表 1.1 html概念 超文本标记语言(Hypertext Markup Language),属于一种描述性的标记语言(markup ...

  5. Eclipse Git 插件 基本操作一【learn】

    安装GIT插件: 我的Eclipse版本为: Oxygen.2 Release (4.7.2),所以自带GIT插件,跳过安装. GIT插件配置: ①.添加好用户名和邮箱 注意下输入格式:user.na ...

  6. java 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流

    package com.swift.jinjie; import java.io.BufferedInputStream; import java.io.File; import java.io.Fi ...

  7. SHGetSpecialFolderLocation获取开始文件夹

    SHGetSpecialFolderLocation函数可以获取windows 特殊目录 函数原型:(MSDN官方链接:https://msdn.microsoft.com/en-us/library ...

  8. 【经典问题】bzoj2957: 楼房重建

    经典问题:动态维护上升子序列长度 进阶问题:[经典问题]#176. 栈 Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无 ...

  9. Spring Cloud 升级最新 Finchley 版本,踩坑指南!

    https://blog.csdn.net/youanyyou/article/details/81530240 Spring Cloud 升级最新 Finchley 版本,踩了所有的坑! 2018年 ...

  10. MySQL中事物的详解

    1. 事物的定义及特性 事务是一组操作数据库的SQL语句组成的工作单元,该工作单元中所有操作要么同时成功,要么同时失败.事物有如下四个特性,ACID简称“酸性”. 1)原子性:工作单元中所有的操作要么 ...