我在防火墙上工作,我想知道如何计算一个数据包中有多less字节,或者至less知道平均值是多less。
当我GOOGLE了,1500字节被提及了很多,但它似乎取决于文件大小和协议。
1500字节,是为TCP? 那icmp呢?
出于好奇:最大的尺寸是多less?
使用iptables知道数据包大小的一种方法是使用-j LOG目标。 您可以使用它来logging特定的数据包。 在系统日志文件中,您可以看到如下日志logging:
IN=<iface1> OUT=<iface2> SRC=1.2.3.4 DST=4.3.2.1 LEN=1400
这个数据包的长度是1400个字节。 最大数据包大小由底层协议决定。 数字1500可以与以太网帧相关联。
大小更改,因为有些机器具有更改MTU的自定义设置:
http://en.wikipedia.org/wiki/Maximum_transmission_unit
dataframe的最大大小通常是1500字节,但巨型帧扩展了该分配:
http://en.wikipedia.org/wiki/Jumbo_frame
以下是完整的规格:
运行wireshark或ntop并评估统计信息。 要么会告诉你在一段时间内分组的长度分布。
1500字节是许多以太网设备的默认MTU。 @Khaled在这里说的。
如果单纯从networking的angular度来看,那么就不必计算包的大小,因为它包含在IPv4头中,位偏移量为19-31。
http://en.wikipedia.org/wiki/IPv4#Packet_structure
长度
这个16位字段以字节为单位定义了整个数据报大小,包括标题和数据。 最小长度的数据报是20个字节(20个字节的标题+ 0个字节的数据),最大的是65,535个字节 – 一个16个字的最大值。 任何主机需要能够处理的最大数据报是576个字节。
所以如果你想收集大小的数据包,你只需要收集IPv4数据包头文件并存储它们的工具。
非常常用的工具是tcpdump / wireshark。 设置一段时间的捕捉。 然后在wireshark中加载捕获。 有一个内置的分析工具,可以给你关于数据包大小的统计和信息。
还有像nTop这样的监控工具,你可以在你的防火墙上安装。 该工具将实时收集统计数据。