万兆网调试(转)

reference: https://blog.csdn.net/ningjinghai11/article/details/81984907

使用wireshark抓包注意事项:

由于网卡默认的一包数据比较小,应该手动设置成巨包格式。

步骤:

1.点击配置

2.高级->巨帧数据包->选择4096字节。

抓包数据显示如下:

可见收到的万兆网UDP包,源地址为192.168.1.10,目的地址为192.168.1.5,源即fpga板卡,目的即主机的万兆网卡。

数据分析:

以太网帧格式:

Ethernet II类型以太网帧的最小长度为64字节(6+6+2+46+4),最大长度为1518字节(6+6+2+1500+4)。其中前12字节分别标识出发送数据帧的源节点MAC地址和接收数据帧的目标节点MAC地址。(注:ISL封装后可达1548字节,802.1Q封装后可达1522字节)。

接下来的2个字节标识出以太网帧所携带的上层数据类型,如下:

IPv4: 0x0800

ARP:0x0806

PPPoE:0x8864

802.1Q tag: 0x8100

IPV6: 0x86DD

MPLS Label:0x8847

(1)源MAC+目的MAC+TYPE

001b_21bd_be04为目的MAC,即万兆网卡的MAC;bbbb_bbbb_bbbb为源MAC地址,即FPGA板卡的AMC地址。(12字节)

0800为以太网类型(2字节),

(2)data段 此处的总包长包括此段的长度20字节+UDP包长  总包长=0x4500开始的20个字节+UDP包长

4500(2字节);啥意思不清楚

089c为总包长(=2204),8e57为帧序号,0x0000为flag,0x80(128)为Time to live , 0x11(17)为protocol UDP; 

209a为header_checksum,c0a8_010a为源IP地址(192.168.1.10),c0a8_0105为目的IP地址(192.168.1.5);

(3)UDP包段

UDP包长(2184)=source_port(2字节)+destination_port(字节)+udp_length(2字节)+checksum(2字节)+data(2176字节)

1B58为source_port_ID(=7000),1784为destination_port_ID(6020),0888为udp_length(2184),69d7为checksum;

后面的为data 2176字节。

wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)

首先说几个最常用的关键字,“eq” 和 “==”等同,可以使用 “and” 表示并且,“or”表示或者。“!" 和 "not” 都表示取反。


  一、针对wireshark最常用的自然是针对IP地址的过滤。其中有几种情况:

  (1)对源地址为192.168.0.1的包的过滤,即抓取源地址满足要求的包。

           表达式为:ip.src == 192.168.0.1

  (2)对目的地址为192.168.0.1的包的过滤,即抓取目的地址满足要求的包。

           表达式为:ip.dst == 192.168.0.1

  (3)对源或者目的地址为192.168.0.1的包的过滤,即抓取满足源或者目的地址的ip地址是192.168.0.1的包。

           表达式为:ip.addr == 192.168.0.1,或者 ip.src == 192.168.0.1 or ip.dst == 192.168.0.1

  (4)要排除以上的数据包,我们只需要将其用括号囊括,然后使用 "!" 即可。

           表达式为:!(表达式)

  二、针对协议的过滤

  (1)仅仅需要捕获某种协议的数据包,表达式很简单仅仅需要把协议的名字输入即可。

                表达式为:http

  (2)需要捕获多种协议的数据包,也只需对协议进行逻辑组合即可。

           表达式为:http or telnet (多种协议加上逻辑符号的组合即可)

  (3)排除某种协议的数据包

           表达式为:not arp      !tcp

  三、针对端口的过滤(视协议而定)

  (1)捕获某一端口的数据包

           表达式为:tcp.port == 80

  (2)捕获多端口的数据包,可以使用and来连接,下面是捕获高端口的表达式

           表达式为:udp.port >= 2048

  四、针对长度和内容的过滤

  (1)针对长度的过虑(这里的长度指定的是数据段的长度)

           表达式为:udp.length < 30   http.content_length <=20

  (2)针对数据包内容的过滤

      表达式为:http.request.uri matches "vipscu"  (匹配http请求中含有vipscu字段的请求信息)

原文地址:https://www.cnblogs.com/limanjihe/p/9889193.html