lo口环路问题分析
流程如下,collecter抓取网卡lo和wlan0数据,其中lo口无数据,wlan0是笔记本上网网口,然后按自定义协议把数据包通过lo口发给后端dispatch进行分发!
这种模式下,抓包程序每经过一段时间,lo口就会开始抓到超出上层应用协议的数据包(上层应用最大支持长度0xffff),导致collecter和dispatch间断链重连。如果停掉collecter向后转发,则collecter抓取的数据包长度正常,用tcpdump验证,抓取wlan0口数据包平均包长在500B左右,lo口无数据;
启动向后转发,collecter只抓lo口,同时配置collecter读取一个只有数据包的pcap文件作为初始输入,原始数据包如下:
tcpdump从lo口抓包, 发现通过lo口转发到后端的数据,会被collecter捕获然后再又通过lo口发出,形成环路,如下所示:
1. 第一个带数据的是第11个数据包,前面的一些包是鉴权和协商!蓝色部分前8字节是协议部分!可以看到这时捕获正常(数据66B + 8B协议头 = 74B)。
2. 第11个数据包发出后就被捕获,看下面第13个数据包的承载部分,collecter接收到这个数据后,会额外打上协议头再转发(新的长度 = 第11个包长度 + 8B协议头 = 148),从这看出数据开始形成环路:
查看lo口MTU和tcp协商的MSS如下:
可以看到lo口MTU过大,由于lo环路,会导致tcp承载数据越来越大。对上层协议来说,由于协议缓冲区最大长度为65535,当捕获的数据包中应用协议长度大于(65535 - 8)时,就会产生错误,导致断链!
解决方法:
1. 调整部署,捕获数据的网口应该专用于数据接入,数据发送使用其它网口!
2. 调小lo口MTU,这样只能避免断链问题,错误会越积越多!
待验证:
有同事测试发现,大流量下lo口(mtu默认为65536)数据转发,cpu利用率很低(2.4G服务器8核24线程, 无法跑满单核CPU, 占比3%左右),导致发送线程睡眠,阻塞报文,程序性能很低。后调整MTU至1500后cpu利用率提升,程序性能提高三倍!
lo口环路问题分析的更多相关文章
- cc2530-----串口透明传输分析
Zigbee协议栈学习之串口透明传输实验(SerialApp)流程分析 第一个功能:协调器的组网,终端设备和路由设备发现网络以及加入网络 //第一步:Z-Stack 由 main()函数开始执行, ...
- 实用防火墙(Iptables)脚本分析
实用防火墙(Iptables)脚本分析 --Redhat,CentOS,Ubuntu等常见Linux发行版中都会预装Iptables防火墙,大多数初学者设置起来由于对这款软件比较陌生,设置起来比较困难 ...
- 【转载】FPGA静态时序分析——IO口时序
转自:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟约束 ...
- FPGA静态时序分析——IO口时序(Input Delay /output Delay)
1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束才能实现PCB板级的时序收敛.因此,FPGA时序约束中IO口时序约束也是一个重点.只有约束正确 ...
- [转载]Linux中的网络接口及LO回环接口
转自:https://blog.csdn.net/weixin_39863747/article/details/80564358 Linux中的网络接口及LO回环接口 2018年06月04日 10: ...
- 精通Web Analytics 2.0 (12) 第十章:针对潜在的网站分析陷阱的最佳解决方案
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第十章:针对潜在的网站分析陷阱的最佳解决方案 是时候去处理网站分析中最棘手的一些问题了,然后获得属于你的黑带,这是成为分析忍者的 ...
- Linux中的lo回环接口详细介绍
1.linux的网络接口之扫盲 (1)网络接口的命名 这里并不存在一定的命名规范,但网络接口名字的定义一般都是要有意义的.例如: eth0: ethernet的简写,一般用于以太网接口. wifi0: ...
- FPGA静态时序分析——IO口时序(Input Delay /output Delay)(转载)
转载地址:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟 ...
- WIFI万能钥匙协议分析
WIFI万能钥匙协议分析 需求: 上android 市场下载任意一款,wifi万能钥匙 软件,对其进行 协议分析和逆向,达成如下结果:通过对软件的分析,完成自动化爬虫,爬wifi万能钥匙的wifi库, ...
随机推荐
- php简单开启gzip压缩方法(zlib.output_compression)
网上的教程基本是你抄我来我抄他,不外乎加头加尾或者自构函数两种写法.实际上每个php页面都要去加代码——当然也可以include引用,不过总显得略微麻烦 一般而言,页面文件开启gzip压缩以后,其 ...
- mac home brew install go
mac利器home brew安装Go 首先你得需要安装home brew和ruby环境(因为home brew依赖ruby) 如果没有请自行到链接安装 准备好之后就开始安装go了 brew updat ...
- kubernetes-控制器statefulset和Job(十三)
从前面的学习我们知道使用Deployment创建的pod是无状态的,当挂载了Volume之后,如果该pod挂了,Replication Controller会再启动一个pod来保证可用性,但是由 ...
- 安装ubuntu-tweak
第一步:添加tweak源 sudo add-apt-repository ppa:tualatrix/ppa 第二步:更新 sudo apt-get update 第三步:安装ubuntu-t ...
- 4、SpringBoot+Mybatis整合------一对多
开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis/tree/c00b56dbd51a1e26ab9fd99020 ...
- 【yii】【php】自定义故障代码
实际状态码: 200 操作成功 406 账号密码错误 208 请勿重复操作 401 需登陆验证 405 不容许此方法 409 验证错误
- php实现当前页面点击下载文件的实例
php控制器中代码 public function downFile($path = ''){ if(!$path) header("Location: /"); ...
- Linux系统Mini版配置相关
一:修改ip 编辑:vi /etc/sysconfig/network-sc/ifcfg-eth0 配置如下图:
- Hacker Cups and Balls Gym - 101234A 二分+线段树
题目:题目链接 题意:有编号从1到n的n个球和n个杯子. 每一个杯子里有一个球, 进行m次排序操作,每次操作给出l,r. 如果l<r,将[l,r]范围内的球按升序排序, 否则降序排, 问中间位置 ...
- poj 1759 二分搜索
题意:N个等差数列,初项X_i,末项Y_i,公差Z_i,求出现奇数次的数? 思路: 因为只有一个数出现的次数为奇数个 假设 第二个数字的个数为 奇数个,其余全部都是偶数个 ,累计出现的次数 a1偶数 ...