TCP重组问题
今天问题: vqmon 测试一pcap抓包文件18.pcap。发现实际输出的视频分片信息和抓包不符合。
- ===>pts : 00:00:33
- Too much data in TCP receive queue
- Too much data in TCP receive queue
- Too much data in TCP receive queue
- Too much data in TCP receive queue
- Too much data in TCP receive queue
- Too much data in TCP receive queue
- Too much data in TCP receive queue
- Too much data in TCP receive queue
- Find segment : url = /youku/6573830471A33761B97894B64/030002070054579E45054304CB019F22D8CB1A-D056-E9D6-D4C7-6BA4A0C62FC1.flv
- ===>pts : ::
- ===> reset
- 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
- mt_vqmon_callback
实际wireshark显示:
vqmon检测输出1298KB, 与 6413KB 不符合!
vqmon监测的输出Segment Info 是每一个分片的信息,
download size = 1298 KB 分片下载大小
download time = 3768 ms 下载时间,从第一个数据包到 最后一个数据包结束(采集完成) 或者到会话关闭。 有时候数据收集很快完成,但会话会超时很久才关闭。
vqmon监测的输出Segment Info 是每一个分片的信息,
Too much data in TCP receive queue
- 显示 tcp重组出现错误, 一直无法重组完成,包堆积,导致队列溢出,出现 Too much data in TCP receive queue告警。导致33秒后续的报文无法进去分析逻辑,所以显示download size 偏小,应该是统计到
- 出错的报文位置。
- 出错的包
读包测试tcp重组输出包,
- static void
- add_from_skb(struct tcp_stream * a_tcp, struct half_stream * rcv,
- struct half_stream * snd,
- u_char *data, int datalen,
- u_int this_seq, char fin, char urg, u_int urg_ptr)
- {
- u_int lost = EXP_SEQ - this_seq;
- int to_copy, to_copy2;
- if (urg && after(urg_ptr, EXP_SEQ - ) &&
- (!rcv->urg_seen || after(urg_ptr, rcv->urg_ptr)))
- {
- rcv->urg_ptr = urg_ptr;
- rcv->urg_seen = ;
- }
- if(a_tcp->addr.source == 49455)
- printf("===>%u \n",this_seq - snd->first_data_seq);
- 输出相对的seq序号,然后查看pcap报文。
- 包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重组问题的更多相关文章
- tcp 重组原理
原文: http://blog.chinaunix.net/uid-21768364-id-4823449.html 1 .引言TCP/IP 协议现在已经广泛的被应用.数据在网络上应用 TCP/IP ...
- TCP数据流稳定性--TCP分片,重组及乱序
http://www.cnblogs.com/derekchen/archive/2009/07/15/1524415.html 1.IP分片的情况.IP软件包有一个[分片]和[重组]模块,一个IP数 ...
- 对TCP重传的进一步认识
http://blog.sina.com.cn/s/blog_4d276ac901011ee7.html ——TCM项目所得 一.看图说话 1.基于套接字的TCP服务器/客户端程序流程 2.TCP三次 ...
- DPDK IP分片及重组库(学习笔记)
1 前置知识学习 1.1 MTU MTU是最大传输单元( Maximum Transmission Unit)的缩写,指一个接口无需分片所能发送的数据包的最大字节数. MTU范围在46 ~ 1500 ...
- Bypass WAF Cookbook
PS.之前一直想把零零碎碎的知识整理下来,作为知识沉淀下来,正好借着wooyun峰会的机会将之前的流程又梳理了一遍,于是就有了下文.也希望整理的内容能给甲方工作者或则白帽子带来一些收获. 0x00 概 ...
- NetAnalyzer笔记 之 一. 开篇语
[创建时间:2015-08-26 22:00:12] NetAnalyzer下载地址 第一次写技术相关的博客,不足之处还请担待并告知. 在开始之前,先简单介绍一下NetAnalyzer, NetAna ...
- NetAnalyzer笔记 之 七 NetAnalyzer2016使用方法(1)
[创建时间:2016-04-17 14:47:00] NetAnalyzer下载地址 距离新本的NetAnalyzer已经发布一段时间了,因为比较忙期间只出了一个视频教程,一直没有来的急写文档,今天就 ...
- LVS Nginx HAProxy 优缺点
搭建负载均衡高可用环境相对简单,主要是要理解其中原理.此文描述了三种负载均衡器的优缺点,以便在实际的生产应用中,按需求取舍. 目前,在线上环境中应用较多的负载均衡器硬件有F5 BIG-IP,软件有LV ...
- HAProxy的三种不同类型配置方案
haproxy是一款功能强大.灵活好用反向代理软件,提供了高可用.负载均衡.后端服务器代理的功能,它在7层负载均衡方面的功能很强大(支持 cookie track, header rewrite等等) ...
随机推荐
- WannaCry勒索病毒卷土重来:日本本田工厂被迫关闭
6月22日消息,前阵子WannaCry勒索病毒席卷全球,世界各地网络遭到攻击.日前,偃旗息鼓了一阵的WannaCry勒索病毒又重回人们视线,迫使一家汽车厂在日本关闭. 路透社报道,本田Sayama工厂 ...
- LA 3902 网络
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- tensorflow pb ckpt pbtxt
ckpt存储参数值 pbtxt存储网络图 pb既存储参数值又存储网络图
- 前端HTML基础
1.0开发工具介绍 sublime的使用技巧链接 HTML特殊符号表 1.1 html概念 超文本标记语言(Hypertext Markup Language),属于一种描述性的标记语言(markup ...
- Eclipse Git 插件 基本操作一【learn】
安装GIT插件: 我的Eclipse版本为: Oxygen.2 Release (4.7.2),所以自带GIT插件,跳过安装. GIT插件配置: ①.添加好用户名和邮箱 注意下输入格式:user.na ...
- java 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流
package com.swift.jinjie; import java.io.BufferedInputStream; import java.io.File; import java.io.Fi ...
- SHGetSpecialFolderLocation获取开始文件夹
SHGetSpecialFolderLocation函数可以获取windows 特殊目录 函数原型:(MSDN官方链接:https://msdn.microsoft.com/en-us/library ...
- 【经典问题】bzoj2957: 楼房重建
经典问题:动态维护上升子序列长度 进阶问题:[经典问题]#176. 栈 Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无 ...
- Spring Cloud 升级最新 Finchley 版本,踩坑指南!
https://blog.csdn.net/youanyyou/article/details/81530240 Spring Cloud 升级最新 Finchley 版本,踩了所有的坑! 2018年 ...
- MySQL中事物的详解
1. 事物的定义及特性 事务是一组操作数据库的SQL语句组成的工作单元,该工作单元中所有操作要么同时成功,要么同时失败.事物有如下四个特性,ACID简称“酸性”. 1)原子性:工作单元中所有的操作要么 ...