tcpreplay学习笔记

tcpreplay是一个用于重放之前捕获的libpcap格式网络流量的工具,用于测试网络设备。它可以划分客户端和服务器流量,修改L2-L4报文头,并以原始速度或指定速率重放流量。tcpdump是Linux中的网络数据包分析工具,而pcap文件是网络接口、端口和协议的数据包截取。本文介绍了如何获取和使用pcap文件,以及tcpreplay和tcpdump的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP网络流量回放工具tcpreplay使用说明

1. 什么是tcpreplay

引用一段tcpreplay官网的话来解释什么是tcpreplay:

Tcpreplay is a suite of BSD licensed tools written by Aaron Turner for UNIX (and Win32 under Cygwin) operating systems which gives you the ability to use previously captured traffic in libpcap format to test a variety of network devices. It allows you to classify traffic as client or server, rewrite Layer 2, 3 and 4 headers and finally replay the traffic back onto the network and through other devices such as switches, routers, firewalls, NIDS and IPS’s.Tcpreplay supports both single and dual NIC modes for testing both sniffing and inline devices.

简单的说, tcpreplay是一种pcap包的重放工具, 它可以将用ethreal, wireshark工具抓下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意的修改(主要是指对2层, 3层, 4层报文头), 指定重放报文的速度等, 这样tcpreplay就可以用来复现抓包的情景以定位bug, 以极快的速度重放从而实现压力测试.

输入tcpreplay -H指令得到如下说明

The basic operation of tcpreplay is to resend all packets from the input file(s) at the speed at which they were recorded, or a specified data rate, up to as fast as the hardware is capable.

tcpreplay本身包含了几个辅助工具, 用于准备发包的cache, 重写报文等:

  • tcpprep - 简单的说就是划分哪些包是client的, 哪些是server的, 一会发包的时候client的包从一个网卡发, server的包可能从另一个网卡发

  • tcprewrite - 简单的说就是修改2层, 3层, 4层报文头部

  • tcpreplay - 真正发包, 可以选择主、从网卡, 发包速度等

  • tcpbridge - 利用tcprewrite的功能实现两个网络部分的桥接

2.什么是pcap文件

2.1 定义

针对网络接口、端口和协议的数据包截取。

2.2 获取数据包

假定你要截取网络接口eth1,端口号6881的tcp数据包。数据文件保存为test.pcap。

tcpdump -w test.pcap -i eth1 tcp port 6881

如果要同时截取udp端口号33210和33220的数据包

tcpdump -w test.pcap -i eth1 tcp port 6881 or udp \( 33210 or 33220 \)

2.3 保存文件读取数据包

选项 -nn 不把网络IP和端口号转换成名字,r(read)读取包

tcpdump -nnr test.pcap

可以添加 -tttt 选项使时间戳格式更加可读

tcpdump -ttttnnr test.pcap

针对IP截取数据需向tcpdump指明目的IP和端口的交集(intersection),使用and运算符。比如要嗅探的目的IP为10.168.28.22,tcp端口号22。

tcpdump -w test.pcap dst 10.168.28.22 and tcp port 22

嗅探数据包大小缺省为96 bytes,可以指定 -s 改变缺省值。

tcpdump -w test.pcap -s 1550 dst 10.168.28.22 and tcp port 22

有些版本的tcpdump允许指定端口范围,下述指令为针对一定端口范围截取数据。没有指定 -w,将不会把截取的数据包保存到文件而是直接输出到屏幕。

tcpdump tcp portrange 20-24

3. 什么是tcpdump

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。TcpDump是Linux中强大的网络数据采集分析工具之一。用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

版本信息

tcpreplay -V


快捷键

  • 加粗 Ctrl + B

  • 斜体 Ctrl + I

  • 引用 Ctrl + Q

  • 插入链接 Ctrl + L

  • 插入代码 Ctrl + K

  • 插入图片 Ctrl + G

  • 提升标题 Ctrl + H

  • 有序列表 Ctrl + O

  • 无序列表 Ctrl + U

  • 横线 Ctrl + R

  • 撤销 Ctrl + Z

  • 重做 Ctrl + Y

Markdown及扩展

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]

使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。

本编辑器支持 Markdown Extra ,  扩展了很多好用的功能。具体请参考Github.

表格

Markdown Extra 表格语法:

项目 | 价格

——– | —

Computer | $1600

Phone | $12

Pipe | $1

可以使用冒号来定义对齐方式:

| 项目 | 价格 | 数量 |

| :——– | ——–:| :–: |

| Computer | 1600 元 | 5 |

| Phone | 12 元 | 12 |

| Pipe | 1 元 | 234 |

定义列表

Markdown Extra 定义列表语法:

项目1

项目2

定义 A

定义 B

项目3

定义 C

定义 D

定义D内容

代码块

代码块语法遵循标准markdown代码,例如:


@requires_authorization

def somefunc(param1='', param2=0):

    '''A docstring'''

    if param1 > param2: # interesting

        print 'Greater'

    return (param2 - param1 + 1) or None

class SomeClass:

    pass

>>> message = '''interpreter

... prompt'''

脚注

生成一个脚注1.

目录

[TOC]来生成目录:

数学公式

使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.

  • 行内公式,数学公式为: Γ(n)=(n1)!n

  • 块级公式:

x=b±b24ac2a

更多LaTex语法请参考 这儿.

UML 图:

可以渲染序列图:

Created with Raphaël 2.1.0 张三 张三 李四 李四 嘿,小四儿, 写博客了没? 李四愣了一下,说: 忙得吐血,哪有时间写。

或者流程图:

Created with Raphaël 2.1.0 开始 我的操作
  • 关于 序列图 语法,参考 这儿,

  • 关于 流程图 语法,参考 这儿.

离线写博客

即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.youkuaiyun.com/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。

用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。

博客发表后,本地缓存将被删除。 

用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。

注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱

浏览器兼容

  1. 目前,本编辑器对Chrome浏览器支持最为完整。建议大家使用较新版本的Chrome。

  2. IE9以下不支持

  3. IE9,10,11存在以下问题

    1. 不支持离线功能

    2. IE9不支持文件导入导出

    3. IE10不支持拖拽文件导入



  1. 这里是 脚注内容.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值