[tcpreplay] tcpreplay高级用法--使用tcpreplay-edit进行循环动态发包
tcpreplay-edit提供了可对包进行修改的高级用法:
--unique-ip
Modify IP addresses each loop iteration to generate unique flows. This option must appear in combination with the following options: loop. This option must not appear
in combination with any of the following options: seed, fuzz-seed. Ensure IPv4 and IPv6 packets will be unique for each --loop iteration. This is done in a way that will not alter packet CRC, and therefore will genrally not affect per‐
formance. This option will significantly increase the flows/sec over generated over multiple loop iterations. --unique-ip-loops=string
Number of times to loop before assigning new unique ip. This option may appear up to times. This option must appear in combination with the following options: unique-
ip. Number of --loop iterations before a new unique IP is assigned. Default is . Assumes both --loop and --unique-ip.
原包如下:
┬─[tong@T7:~/Data]─[:: AM]
╰─>$ sudo tcpreplay-edit -i replay-br0 -t baidu.pcap
收包如下:
[root@dpdk ~]# tcpdump -i eth1 -nn "tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) == 0"
::17.125017 IP 192.168.10.56. > 202.89.233.103.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::17.125093 IP 192.168.10.56. > 203.208.39.205.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::17.125124 IP 192.168.10.56. > 120.25.241.229.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::17.125133 IP 192.168.10.56. > 114.55.49.182.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
使用,--uique-ip 参数可以在保证flow关系的前提下修改IP,修改策略是,源IP地址加一,目的IP地址减一
发包如下:
┬─[tong@T7:~/Data]─[:: AM]
╰─>$ sudo tcpreplay-edit -i replay-br0 -t --unique-ip -l3 baidu.pcap
收包如下:
[root@dpdk ~]# tcpdump -i eth1 -nn "tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) == 0" ::31.745157 IP 192.168.10.56. > 202.89.233.103.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745175 IP 192.168.10.56. > 203.208.39.205.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745183 IP 192.168.10.56. > 120.25.241.229.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745186 IP 192.168.10.56. > 114.55.49.182.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745213 IP 192.168.10.55. > 202.89.233.104.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745249 IP 192.168.10.55. > 203.208.39.206.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745278 IP 192.168.10.57. > 120.25.241.228.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745292 IP 192.168.10.57. > 114.55.49.181.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745360 IP 192.168.10.54. > 202.89.233.105.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745395 IP 192.168.10.54. > 203.208.39.207.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745404 IP 192.168.10.58. > 120.25.241.227.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::31.745406 IP 192.168.10.58. > 114.55.49.180.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
再增加 --unique-ip-loops=3 参数,可以增加策略复杂性,效果就是,第2次loop和第3次loop的包,与第一次loop重复,例子如下:
发包:
┬─[tong@T7:~/Data]─[:: AM]
╰─>$ sudo tcpreplay-edit -i replay-br0 -t --unique-ip --unique-ip-loops= -l9 baidu.pcap
收包:
┬─[tong@T7:~/Data]─[:: AM]
╰─>$ sudo tcpreplay-edit -i replay-br0 -t --unique-ip --unique-ip-loops= -l9 baidu.pcap ::16.886335 IP 192.168.10.56. > 202.89.233.103.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.886981 IP 192.168.10.56. > 203.208.39.205.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.887154 IP 192.168.10.56. > 120.25.241.229.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.887209 IP 192.168.10.56. > 114.55.49.182.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.888984 IP 192.168.10.56. > 202.89.233.103.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.889845 IP 192.168.10.56. > 203.208.39.205.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.889931 IP 192.168.10.56. > 120.25.241.229.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.889944 IP 192.168.10.56. > 114.55.49.182.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.890927 IP 192.168.10.56. > 202.89.233.103.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.891194 IP 192.168.10.56. > 203.208.39.205.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.891251 IP 192.168.10.56. > 120.25.241.229.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.891261 IP 192.168.10.56. > 114.55.49.182.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.891299 IP 192.168.10.55. > 202.89.233.104.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.891473 IP 192.168.10.55. > 203.208.39.206.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.892247 IP 192.168.10.57. > 120.25.241.228.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.892283 IP 192.168.10.57. > 114.55.49.181.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.892333 IP 192.168.10.56. > 202.89.233.103.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.892378 IP 192.168.10.56. > 203.208.39.205.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.892419 IP 192.168.10.56. > 120.25.241.229.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.893655 IP 192.168.10.56. > 114.55.49.182.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.893749 IP 192.168.10.56. > 202.89.233.103.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.893793 IP 192.168.10.56. > 203.208.39.205.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.893831 IP 192.168.10.56. > 120.25.241.229.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.893841 IP 192.168.10.56. > 114.55.49.182.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.893887 IP 192.168.10.54. > 202.89.233.105.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.893938 IP 192.168.10.54. > 203.208.39.207.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.893979 IP 192.168.10.58. > 120.25.241.227.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.893990 IP 192.168.10.58. > 114.55.49.180.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.894044 IP 192.168.10.56. > 202.89.233.103.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.894094 IP 192.168.10.56. > 203.208.39.205.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.894135 IP 192.168.10.56. > 120.25.241.229.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.894284 IP 192.168.10.56. > 114.55.49.182.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.894342 IP 192.168.10.56. > 202.89.233.103.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.894394 IP 192.168.10.56. > 203.208.39.205.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.894439 IP 192.168.10.56. > 120.25.241.229.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::16.894450 IP 192.168.10.56. > 114.55.49.182.: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
[tcpreplay] tcpreplay高级用法--使用tcpreplay-edit进行循环动态发包的更多相关文章
- [iOS]C语言技术视频-15-指针变量高级用法练习一(函数指针完成动态排序)
下载地址: 链接: http://pan.baidu.com/s/1o6MOzX4 密码: xzxn
- Autofac高级用法之动态代理
前言 Autofac的DynamicProxy来自老牌的Castle项目.DynamicProxy(以下称为动态代理)起作用主要是为我们的类生成一个代理类,这个代理类可以在我们调用原本类的方法之前,调 ...
- 【转】Autofac高级用法之动态代理
原文:http://www.cnblogs.com/stulzq/p/8547839.html 前言 Autofac的DynamicProxy来自老牌的Castle项目.DynamicProxy(以下 ...
- Visual Studio 宏的高级用法
因为自 Visual Studio 2012 开始,微软已经取消了对宏的支持,所以本篇文章所述内容只适用于 Visual Studio 2010 或更早期版本的 VS. 在上一篇中,我已经介绍了如何编 ...
- Bash 脚本编程的一些高级用法
概述 偶然间发现 man bash 上其实详细讲解了 shell 编程的语法,包括一些很少用却很实用的高级语法.就像发现了宝藏的孩子,兴奋莫名.于是参考man bash,结合自己的理解,整理出了这篇文 ...
- SolrNet高级用法(分页、Facet查询、任意分组)
前言 如果你在系统中用到了Solr的话,那么肯定会碰到从Solr中反推数据的需求,基于数据库数据生产索引后,那么Solr索引的数据相对准确,在电商需求中经常会碰到菜单.导航分类(比如电脑.PC的话会有 ...
- sqlalchemy(二)高级用法
sqlalchemy(二)高级用法 本文将介绍sqlalchemy的高级用法. 外键以及relationship 首先创建数据库,在这里一个user对应多个address,因此需要在address上增 ...
- Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)
上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...
- 再谈Newtonsoft.Json高级用法
上一篇Newtonsoft.Json高级用法发布以后收到挺多回复的,本篇将分享几点挺有用的知识点和最近项目中用到的一个新点进行说明,做为对上篇文章的补充. 阅读目录 动态改变属性序列化名称 枚举值序列 ...
随机推荐
- ceph 的 bufferlist
bufferlist是buffer::list的别名,其由来在 http://bean-li.github.io/bufferlist-in-ceph/ 中有非常详细的介绍 其p.p_off.off字 ...
- python文件的基础操作
import os print(,'-')) print(os.getcwd()) print(,'-')) print(os.listdir()) print(,'-')) print(os.lis ...
- JAVA(一)JAVA基础/面向对象基础/高级面向对象
成鹏致远 | lcw.cnblog.com |2014-01-23 JAVA基础 1.开发环境搭建 JAVA程序的执行流程 JAVA命令->要使用一个*.class文件(类文件)->通过c ...
- 小矮人Javascript模块加载器
https://github.com/miniflycn/webkit-dwarf 短小精悍的webkit浏览器Javascript模块加载器 Why 我们有许多仅基于webkit浏览器开发的应用 无 ...
- Go Revel - Logging(日志)
revel提供了4种日志记录器: 1.`TRACE` - 调试信息 2.`INFO` - 信息 3.`WARN` - 一些无害的异常信息 4.`ERROR` - 必须要关注的错误 日志记录器可以在`a ...
- 教你一招:笔记本安装mint18时,安装界面显示不全
近日在给自己的笔记本安装mint18时,安装界面显示不全,就是安装时到了分区界面后看不到下一步. 很无奈.... 于是胡乱摸索,得到解决的办法. 按住键盘上的ALT键,用鼠标向上拖动安装的界面,最好是 ...
- vue.js是什么
Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习, ...
- Entity Framework定义外键,限制通过migration命令自动更改字段名称
1.问题 在定义一个表的外键时,通过add-migration命令生成,并通过update-database更新到数据库,发现外键名称发生了重命名.举例说明: 人员表[User](Id,Name,Pa ...
- PCL中使用FLANN库(2)
接着上一篇的介绍继续 关于在使用readHeader函数读取点云数据头的类型的代码(Read a point cloud data header from a PCD file.) pcl::PCLP ...
- php中urlencode和urldecode的用法
URLEncode:是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu.Google等搜索引擎中输入中文查询时候,生成经过Encode过的网页URL.URLEncode的方式一般 ...