学习啦 > 学习电脑 > 操作系统 > Linux教程 > tcpdump命令的使用方法(11)

tcpdump命令的使用方法(11)

时间: 春健736 分享

tcpdump命令的使用方法

  oamf4

  如果数据包为ATM数据包, 则与此对应的条件表达式为真. 对于Solaris 操作系统上的SunATM设备 , 如果数据包为ATM数据包

  并且是 end-to-end 或 segment OAM F4 信元(VPI=0 并且 VCI=3 或者 VCI=4), 则与此对应的条件表达式为真.

  (nt: OAM 与 end-to-end OAM F4 在上文已有描述, 可搜索'oamf4s'来定位)

  oam

  如果数据包为ATM数据包, 则与此对应的条件表达式为真. 对于Solaris 操作系统上的SunATM设备 , 如果数据包为ATM数据包

  并且是 end-to-end 或 segment OAM F4 信元(VPI=0 并且 VCI=3 或者 VCI=4), 则与此对应的条件表达式为真.

  (nt: 此选项与oamf4重复, 需确认)

  metac

  如果数据包为ATM数据包, 则与此对应的条件表达式为真. 对于Solaris 操作系统上的SunATM设备 , 如果数据包为ATM数据包

  并且是来自'元信令线路'(nt: VPI=0 并且 VCI=1, '元信令线路', meta signaling circuit, 具体含义未知, 需补充),

  则与此对应的条件表达式为真.

  bcc

  如果数据包为ATM数据包, 则与此对应的条件表达式为真. 对于Solaris 操作系统上的SunATM设备 , 如果数据包为ATM数据包

  并且是来自'广播信令线路'(nt: VPI=0 并且 VCI=2, '广播信令线路', broadcast signaling circuit, 具体含义未知, 需补充),

  则与此对应的条件表达式为真.

  sc

  如果数据包为ATM数据包, 则与此对应的条件表达式为真. 对于Solaris 操作系统上的SunATM设备 , 如果数据包为ATM数据包

  并且是来自'信令线路'(nt: VPI=0 并且 VCI=5, '信令线路', signaling circuit, 具体含义未知, 需补充),

  则与此对应的条件表达式为真.

  ilmic

  如果数据包为ATM数据包, 则与此对应的条件表达式为真. 对于Solaris 操作系统上的SunATM设备 , 如果数据包为ATM数据包

  并且是来自'ILMI线路'(nt: VPI=0 并且 VCI=16, 'ILMI', Interim Local Management Interface , 可理解为

  基于SNMP(简易网络管理协议)的用于网络管理的接口)

  则与此对应的条件表达式为真.

  connectmsg

  如果数据包为ATM数据包, 则与此对应的条件表达式为真. 对于Solaris 操作系统上的SunATM设备 , 如果数据包为ATM数据包

  并且是来自'信令线路'并且是Q.2931协议中规定的以下几种消息: Setup, Calling Proceeding, Connect,

  Connect Ack, Release, 或者Release Done. 则与此对应的条件表达式为真.

  (nt: Q.2931 为ITU(国际电信联盟)制定的信令协议. 其中规定了在宽带综合业务数字网络的用户接口层建立, 维护, 取消

  网络连接的相关步骤.)

  metaconnect

  如果数据包为ATM数据包, 则与此对应的条件表达式为真. 对于Solaris 操作系统上的SunATM设备 , 如果数据包为ATM数据包

  并且是来自'元信令线路'并且是Q.2931协议中规定的以下几种消息: Setup, Calling Proceeding, Connect,

  Connect Ack, Release, 或者Release Done. 则与此对应的条件表达式为真.

  expr relop expr

  如果relop 两侧的操作数(expr)满足relop 指定的关系, 则与此对应的条件表达式为真.

  relop 可以是以下关系操作符之一: >, <, <=, =, !=.

  expr 是一个算术表达式. 此表达式中可使用整型常量(表示方式与标准C中一致), 二进制操作符(+, -, _ /, &, |,

  <<, >>), 长度操作符, 以及对特定数据包中数据的引用操作符. 要注意的是, 所有的比较操作都默认操作数是无符号的,

  例如, 0x80000000 和 0xffffffff 都是大于0的(nt: 对于有符号的比较, 按照补码规则, 0xffffffff

  会小于0). 如果要引用数据包中的数据, 可采用以下表达方式:

  proto [expr : size]

  proto 的取值可以是以下取值之一:ether, fddi, tr, wlan, ppp, slip, link, ip, arp, rarp,

  tcp, udp, icmp, ip6 或者 radio. 这指明了该引用操作所对应的协议层.(ether, fddi, wlan,

  tr, ppp, slip and link 对应于数据链路层, radio 对应于802.11(wlan,无线局域网)某些数据包中的附带的

  "radio"头(nt: 其中描述了波特率, 数据加密等信息)).

  要注意的是, tcp, udp 等上层协议目前只能应用于网络层采用为IPv4或IPv6协议的网络(此限制会在tcpdump未来版本中

  进行修改). 对于指定协议的所需数据, 其在包数据中的偏移字节由expr 来指定.

  以上表达中size 是可选的, 用来指明我们关注那部分数据段的长度(nt:通常这段数据

  是数据包的一个域), 其长度可以是1, 2, 或4个字节. 如果不给定size, 默认是1个字节. 长度操作符的关键字为len,

  这代码整个数据包的长度.

  例如, 'ether[0] & 1 != 0' 将会使tcpdump 抓取所有多点广播数据包.(nt: ether[0]字节的最低位为1表示

  数据包目的地址是多点广播地址). 'ip[0] & 0xf != 5' 对应抓取所有带有选项的

  IPv4数据包. 'ip[6:2] & 0x1fff = 0'对应抓取没被破碎的IPv4数据包或者

  其片段编号为0的已破碎的IPv4数据包. 这种数据检查方式也适用于tcp和udp数据的引用,

  即, tcp[0]对应于TCP 头中第一个字节, 而不是对应任何一个中间的字节.

  一些偏移以及域的取值除了可以用数字也可用名字来表达. 以下为可用的一些域(协议头中的域)的名字: icmptype (指ICMP 协议头

  中type域), icmpcode (指ICMP 协议头code 域), 以及tcpflags(指TCP协议头的flags 域)

  以下为ICMP 协议头中type 域的可用取值:

  icmp-echoreply, icmp-unreach, icmp-sourcequench, icmp-redirect, icmp-echo, icmp-routeradvert,

  icmp-routersolicit, icmp-timx-ceed, icmp-paramprob, icmp-tstamp, icmp-tstampreply,

  icmp-ireq, icmp-ireqreply, icmp-maskreq, icmp-maskreply.

  以下为TCP 协议头中flags 域的可用取值:tcp-fin, tcp-syn, tcp-rst, tcp-push,

  tcp-ack, tcp-urg.

看过&ldquo;tcpdump命令的使用方法&rdquo;的人还看了:

1.linux下free命令使用方法

2.Linux下nl命令怎么用

3.Linux命令如何连接

4.Linux下traceroute命令怎么用

5.mv命令怎么用

6.11个很有用的Linux 命令

892697