NAME
tcpdump − 转 储 网 络 上 的 数 据 流
总 览 (SYNOPSIS)
tcpdump
[ −adeflnNOpqStvx ] [ −c
count ] [ −F file ]
[ −i interface ] [ −r
file ] [ −s snaplen ]
[ −T type ] [ −w
file ] [ expression ]
描 述 (DESCRIPTION)
Tcpdump 打 印 出 在 某 个 网 络 界 面 上 , 匹 配 布 尔 表 达 式 expression 的 报 文 的 报 头 .
对 于 SunOS 的 nit 或 bpf 界 面 : 要 运 行 tcpdump , 你 必 须 有 /dev/nit 或 /dev/bpf* 的 读 访 问 权 限 .
对 于 Solaris 的 dlpi: 你 必 须 有 网 络 仿 真 设 备 (network pseudo device), 如 /dev/le 的 读 访 问 权 限 .
对 于 HP-UX 的 dlpi: 你 必 须 是 root, 或 者 把 它 安 装 成 root 的 设 置 uid 程 序 .
对 于 IRIX 的 snoop: 你 必 须 是 root, 或 者 把 它 安 装 成 root 的 设 置 uid 程 序 .
对 于 Linux: 你 必 须 是 root, 或 者 把 它 安 装 成 root 的 设 置 uid 程 序 .
对 于 Ultrix 和 Digital UNIX: 一 旦 超 级 用 户 使 用 pfconfig(8) 开 放 了 promiscuous 操 作 模 式 (promiscuous-mode), 任 何 用 户 都 可 以 运 行 tcpdump.
对 于 BSD: 你 必 须 有 /dev/bpf* 的 读 访 问 权 限 .
选 项 (OPTIONS)
−a |
试 着 把 网 络 和 广 播 地 址 转 换 成 名 称 . | ||
−c |
当 收 到 count 报 文 后 退 出 . | ||
−d |
把 编 译 好 的 报 文 匹 配 代 码 (packet-matching code) 翻 译 成 可 读 形 式 , 传 往 标 准 输 出 , 然 后 退 出 . | ||
−dd |
把 报 文 匹 配 代 码 (packet-matching code) 以 C 程 序 片 断 的 形 式 输 出 . | ||
−ddd |
把 报 文 匹 配 代 码 (packet-matching code) 以 十 进 制 数 形 式 输 出 (前 面 加 上 总 数 ). | ||
−e |
显 示 链 路 层 报 头 . | ||
−f |
以 数 字 形 式 显 示 ’外 部 的 ’ 互 联 网 地 址 , 而 不 是 字 符 形 式 (这 个 选 项 用 来 绕 开 脑 壳 坏 光 的 SUN 黄 页 服 务 器 的 问 题 — 一 般 说 来 当 它 翻 译 外 部 网 络 的 数 字 地 址 时 会 长 期 挂 起 ). | ||
−F |
把 file 的 内 容 用 作 过 滤 表 达 式 . 忽 略 命 令 行 上 的 表 达 式 . | ||
−i |
监 听 interface. 如 果 不 指 定 接 口 , tcpdump 在 系 统 的 接 口 清 单 中 , 寻 找 号 码 最 小 , 已 经 配 置 好 的 接 口 (loopback 除 外 ). 选 中 的 时 候 会 中 断 连 接 . | ||
−l |
行 缓 冲 标 准 输 出 . 可 用 于 捕 捉 数 据 的 同 时 查 看 数 据 . 例 如 , |
’’tcpdump −l | tee dat’’ or ’’tcpdump −l > dat & tail −f dat’’.
−n |
不 要 把 地 址 转 换 成 名 字 (指 的 是 主 机 地 址 , 端 口 号 等 ) | ||
−N |
不 显 示 主 机 名 字 中 的 域 名 部 分 . 例 如 , 如 果 使 用 这 个 选 项 , tcpdump 只 显 示 ’’nic’’, 而 不 是 ’’nic.ddn.mil’’. | ||
−O |
禁 止 运 行 报 文 匹 配 代 码 的 优 化 器 . 这 个 选 项 只 有 当 你 怀 疑 优 化 器 有 bug 时 才 有 用 . | ||
−p |
禁 止 把 接 口 置 成 promiscuous(杂 凑 ) 模 式 . 注 意 , 接 口 有 可 能 因 其 他 原 因 而 处 于 promiscuous 模 式 ; 因 此 , ’-p’ 不 能 作 为 ’ether host {local-hw-addr} 或 ether broadcast’ 的 简 写 . | ||
−q |
快 速 输 出 . 显 示 较 少 的 协 议 信 息 , 输 出 行 会 短 一 点 点 . | ||
−r |
从 file 中 读 入 数 据 报 (文 件 是 用 -w 选 项 创 建 的 ). 如 果 file 是 ’’-’’, 就 从 标 准 输 入 读 入 . | ||
−s |
从 每 个 报 文 中 截 取 snaplen 字 节 的 数 据 , 而 不 是 缺 省 的 68 (如 果 是 SunOS 的 NIT, 最 小 值 是 96). 68 个 字 节 适 用 于 IP, ICMP, TCP 和 UDP, 但 是 有 可 能 截 掉 名 字 服 务 器 和 NFS 报 文 的 协 议 信 息 (见 下 文 ). 输 出 时 如 果 指 定 ’’[|proto]’’, tcpdump 可 以 指 出 那 些 捕 捉 量 过 小 的 数 据 报 , 这 里 的 proto 是 截 断 发 生 处 的 协 议 层 名 称 . 注 意 , 采 用 更 大 的 捕 捉 范 围 不 但 增 加 了 处 理 报 文 的 时 间 , 而 且 减 少 了 报 文 的 缓 冲 数 量 , 可 能 导 致 报 文 的 丢 失 . 你 应 该 把 snaplen 设 的 尽 量 小 , 只 要 能 够 容 纳 你 需 要 的 协 议 信 息 就 可 以 了 . | ||
−T |
把 通 过 "expression" 挑 选 出 来 的 报 文 解 释 成 指 定 的 type. 目 前 已 知 的 类 型 有 : rpc (远 程 过 程 调 用 Remote Procedure Call), rtp (实 时 应 用 协 议 Real-Time Applications protocol), rtcp (实 时 应 用 控 制 协 议 Real-Time Applications control protocol), vat (可 视 音 频 工 具 Visual Audio Tool), 和 wb (分 布 式 白 板 distributed White Board). | ||
−S |
显 示 绝 对 的 , 而 不 是 相 对 的 TCP 流 序 号 . | ||
−t |
禁 止 显 示 时 戳 标 志 . | ||
−tt |
显 示 未 格 式 化 的 时 戳 标 志 . | ||
−v |
(稍 微 多 一 点 ) 繁 琐 的 输 出 . 例 如 , 显 示 IP 数 据 报 中 的 生 存 周 期 和 服 务 类 型 . | ||
−vv |
更 繁 琐 的 输 出 . 例 如 , 显 示 NFS 应 答 报 文 的 附 加 域 . | ||
−w |
把 原 始 报 文 存 进 file, 不 做 分 析 和 显 示 . 它 们 可 以 以 后 用 −r 选 项 显 示 . 如 果 file 是 ’’-’’, 就 写 往 标 准 输 出 . | ||
−x |
以 16 进 制 数 形 式 显 示 每 一 个 报 文 (去 掉 链 路 层 报 头 后 ) . 可 以 显 示 较 小 的 完 整 报 文 , 否 则 只 显 示 snaplen 个 字 节 . |
expression
用 来 选 择 要 转 储 的 数 据 报 . 如 果 没 有 指 定 expression , 就 转 储 网 络 的 全 部 报 文 . 否 则 , 只 转 储 相 对 expression 为 ’true’ 的 数 据 报 .
expression 由 一 个 或 多 个 原 语 (primitive) 组 成 . 原 语 通 常 由 一 个 标 识 (id, 名 称 或 数 字 ), 和 标 识 前 面 的 一 个 或 多 个 修 饰 子 (qualifier) 组 成 . 修 饰 子 有 三 种 不 同 的 类 型 :
type |
类 型 修 饰 子 指 出 标 识 名 称 或 标 识 数 字 代 表 什 么 类 型 的 东 西 . 可 以 使 用 的 类 型 有 host, net 和 port. 例 如 , ’host foo’, ’net 128.3’, ’port 20’. 如 果 不 指 定 类 型 修 饰 子 , 就 使 用 缺 省 的 host . | ||
dir |
方 向 修 饰 子 指 出 相 对 于 标 识 的 传 输 方 向 (数 据 是 传 入 还 是 传 出 标 识 ). 可 以 使 用 的 方 向 有 src, dst, src or dst 和 src and dst. 例 如 , ’src foo’, ’dst net 128.3’, ’src or dst port ftp-data’. 如 果 不 指 定 方 向 修 饰 子 , 就 使 用 缺 省 的 src or dst . 对 于 ’null’ 链 路 层 (就 是 说 象 slip 之 类 的 点 到 点 协 议 ), 用 inbound 和 outbound 修 饰 子 指 定 所 需 的 传 输 方 向 . | ||
proto |
协 议 修 饰 子 要 求 匹 配 指 定 的 协 议 . 可 以 使 用 的 协 议 有 : ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp 和 udp. 例 如 , ’ether src foo’, ’arp net 128.3’, ’tcp port 21’. 如 果 不 指 定 协 议 修 饰 子 , 就 使 用 所 有 符 合 类 型 的 协 议 . 例 如 , ’src foo’ 指 ’(ip 或 arp 或 rarp) src foo’ (注 意 后 者 不 符 合 语 法 ), ’net bar’ 指 ’(ip 或 arp 或 rarp) net bar’, ’port 53’ 指 ’(tcp 或 udp) port 53’. |
[’fddi’ 实 际 上 是 ’ether’ 的 别 名 ; 分 析 器 把 它 们 视 为 ’’用 在 指 定 网 络 接 口 上 的 数 据 链 路 层 .’’ FDDI 报 头 包 含 类 似 于 以 太 协 议 的 源 目 地 址 , 而 且 通 常 包 含 类 似 于 以 太 协 议 的 报 文 类 型 , 因 此 你 可 以 过 滤 FDDI 域 , 就 象 分 析 以 太 协 议 一 样 . FDDI 报 头 也 包 含 其 他 域 , 但 是 你 不 能 在 过 滤 器 表 达 式 里 显 式 描 述 .]
作 为 上 述 的 补 充 , 有 一 些 特 殊 的 ’原 语 ’ 关 键 字 : gateway, broadcast, less, greater 和 数 学 表 达 式 . 它 们 不 同 于 上 面 的 模 式 , 这 些 在 后 面 有 叙 述 .
更 复 杂 的 过 滤 器 表 达 式 可 以 通 过 and, or 和 not 连 接 原 语 来 组 建 . 例 如 , ’host foo and not port ftp and not port ftp-data’. 为 了 少 敲 点 键 , 可 以 忽 略 相 同 的 修 饰 子 . 例 如 , ’tcp dst port ftp or ftp-data or domain’ 实 际 上 就 是 ’tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain’.
允
许 的 原 语 有 :
dst host host
如 果 报 文 中 IP 的 目 的 地 址 域 是 host, 则 逻 辑 为 真 . host 既 可 以 是 地 址 , 也 可 以 是 主 机 名 .
src host host
如 果 报 文 中 IP 的 源 地 址 域 是 host, 则 逻 辑 为 真 .
host host
如 果 报 文 中 IP 的 源 地 址 域 或 者 目 的 地 址 域 是 host, 则 逻 辑 为 真 . 上 面 所 有 的 host 表 达 式 都 可 以 加 上 ip, arp, 或 rarp 关 键 字 做 前 缀 , 就 象 :
ip host host
它 等 价 于 :
ether proto \ip and host host
如 果 host 是 拥 有 多 个 IP 地 址 的 主 机 名 , 它 的 每 个 地 址 都 会 被 查 验 .
ether dst ehost
如 果 报 文 的 以 太 目 的 地 址 是 ehost, 则 逻 辑 为 真 . Ehost 既 可 以 是 名 字 (/etc/ethers 里 有 ), 也 可 以 是 数 字 (有 关 数 字 格 式 另 见 ethers(3N) ).
ether src ehost
如 果 报 文 的 以 太 源 地 址 是 ehost, 则 逻 辑 为 真 .
ether host ehost
如 果 报 文 的 以 太 源 地 址 或 以 太 目 的 地 址 是 ehost, 则 逻 辑 为 真 .
gateway host
如 果 报 文 把 host 当 做 网 关 , 则 逻 辑 为 真 . 也 就 是 说 , 报 文 的 以 太 源 或 目 的 地 址 是 host, 但 是 IP 的 源 目 地 址 都 不 是 host. host 必 须 是 个 主 机 名 , 而 且 必 须 存 在 /etc/hosts 和 /etc/ethers 中 . (一 个 等 价 的 表 达 式 是
ether host ehost and not host host
对 于 host / ehost, 它 既 可 以 是 名 字 , 也 可 以 是 数 字 .)
dst net net
如 果 报 文 的 IP 目 的 地 址 属 于 网 络 号 net, 则 逻 辑 为 真 . net 既 可 以 是 名 字 (存 在 /etc/networks 中 ), 也 可 以 是 网 络 号 . (详 见 networks(4)).
src net net
如 果 报 文 的 IP 源 地 址 属 于 网 络 号 net, 则 逻 辑 为 真 .
net net
如 果 报 文 的 IP 源 地 址 或 目 的 地 址 属 于 网 络 号 net, 则 逻 辑 为 真 .
net net mask mask
如 果 IP 地 址 匹 配 指 定 网 络 掩 码 (netmask) 的 net, 则 逻 辑 为 真 . 本 原 语 可 以 用 src 或 dst 修 饰 .
net net/len
如 果 IP 地 址 匹 配 指 定 网 络 掩 码 的 net, 则 逻 辑 为 真 , 掩 码 的 有 效 位 宽 为 len. 本 原 语 可 以 用 src 或 dst 修 饰 .
dst port port
如 果 报 文 是 ip/tcp 或 ip/udp, 并 且 目 的 端 口 是 port, 则 逻 辑 为 真 . port 是 一 个 数 字 , 也 可 以 是 /etc/services 中 说 明 过 的 名 字 (参 看 tcp(4P) 和 udp(4P)). 如 果 使 用 名 字 , 则 检 查 端 口 号 和 协 议 . 如 果 使 用 数 字 , 或 者 有 二 义 的 名 字 , 则 只 检 查 端 口 号 (例 如 , dst port 513 将 显 示 tcp/login 的 数 据 和 udp/who 的 数 据 , 而 port domain 将 显 示 tcp/domain 和 udp/domain 的 数 据 ).
src port port
如 果 报 文 的 源 端 口 号 是 port, 则 逻 辑 为 真 .
port port
如 果 报 文 的 源 端 口 或 目 的 端 口 是 port, 则 逻 辑 为 真 . 上 述 的 任 意 一 个 端 口 表 达 式 都 可 以 用 关 键 字 tcp 或 udp 做 前 缀 , 就 象 :
tcp src port port
它 只 匹 配 源 端 口 是 port 的 TCP 报 文 .
less length
如 果 报 文 的 长 度 小 于 等 于 length, 则 逻 辑 为 真 . 它 等 同 于 :
len <= length.
greater length
如 果 报 文 的 长 度 大 于 等 于 length, 则 逻 辑 为 真 . 它 等 同 于 :
len >= length.
ip proto protocol
如 果 报 文 是 IP 数 据 报 (参 见 ip(4P)), 其 内 容 的 协 议 类 型 是 protocol, 则 逻 辑 为 真 . Protocol 可 以 是 数 字 , 也 可 以 是 下 列 名 称 中 的 一 个 : icmp, igrp, udp, nd, 或 tcp. 注 意 这 些 标 识 符 tcp, udp, 和 icmp 也 是 关 键 字 , 所 以 必 须 用 反 斜 杠 (\) 转 义 , 在 C-shell 中 应 该 是 \\ .
ether broadcast
如 果 报 文 是 以 太 广 播 报 文 , 则 逻 辑 为 真 . 关 键 字 ether 是 可 选 的 .
ip broadcast
如 果 报 文 是 IP广 播 报 文 , 则 逻 辑 为 真 . Tcpdump 检 查 全 0 和 全 1 广 播 约 定 , 并 且 检 查 本 地 的 子 网 掩 码 .
ether multicast
如 果 报 文 是 以 太 多 目 传 送 报 文 (multicast), 则 逻 辑 为 真 . 关 键 字 ether 是 可 选 的 . 这 实 际 上 是 ’ether[0] & 1 != 0’ 的 简 写 .
ip multicast
如 果 报 文 是 IP多 目 传 送 报 文 , 则 逻 辑 为 真 .
ether proto protocol
如 果 报 文 协 议 属 于 以 太 类 型 的 protocol, 则 逻 辑 为 真 . Protocol 可 以 是 数 字 , 也 可 以 是 名 字 , 如 ip, arp, 或 rarp. 注 意 这 些 标 识 符 也 是 关 键 字 , 所 以 必 须 用 反 斜 杠 (\) 转 义 . [如 果 是 FDDI (例 如 , ’fddi protocol arp’), 协 议 标 识 来 自 802.2 逻 辑 链 路 控 制 (LLC)报 头 , 它 通 常 位 于 FDDI 报 头 的 顶 层 . 当 根 据 协 议 标 识 过 滤 报 文 时 , Tcpdump 假 设 所 有 的 FDDI 报 文 含 有 LLC 报 头 , 而 且 LLC 报 头 用 的 是 SNAP 格 式 .]
decnet src host
如 果 DECNET 的 源 地 址 是 host, 则 逻 辑 为 真 , 该 主 机 地 址 的 形 式 可 能 是 ’’10.123’’, 或 者 是 DECNET 主 机 名 . [只 有 配 置 成 运 行 DECNET 的 Ultrix 系 统 支 持 DECNET 主 机 名 .]
decnet dst host
如 果 DECNET 的 目 的 地 址 是 host, 则 逻 辑 为 真 .
decnet host host
如 果 DECNET 的 源 地 址 或 目 的 地 址 是 host, 则 逻 辑 为 真 .
ip, arp, rarp, decnet
是 :
ether proto p
的 简 写 形 式 , 其 中 p 为 上 述 协 议 的 一 种 .
lat, moprc, mopdl
是 :
ether proto p
的 简 写 形 式 , 其 中 p 为 上 述 协 议 的 一 种 . 注 意 tcpdump 目 前 不 知 道 如 何 分 析 这 些 协 议 .
tcp, udp, icmp
是 :
ip proto p
的 简 写 形 式 , 其 中 p 为 上 述 协 议 的 一 种 .
expr relop expr
如 果 这 个 关 系 式 成 立 , 则 逻 辑 为 真 , 其 中 relop 是 >, <, >=, <=, =, != 之 一 , expr 是 数 学 表 达 式 , 由 常 整 数 (标 准 C语 法 形 式 ), 普 通 的 二 进 制 运 算 符 [+, -, *, /, &, |], 一 个 长 度 运 算 符 , 和 指 定 的 报 文 数 据 访 问 算 符 组 成 . 要 访 问 报 文 内 的 数 据 , 使 用 下 面 的 语 法 :
proto [ expr : size ]
Proto 是 ether, fddi, ip, arp, rarp, tcp, udp, or icmp 之 一 , 同 时 也 指 出 了 下 标 操 作 的 协 议 层 . expr 给 出 字 节 单 位 的 偏 移 量 , 该 偏 移 量 相 对 于 指 定 的 协 议 层 . Size 是 可 选 项 , 指 出 感 兴 趣 的 字 节 数 ; 它 可 以 是 1, 2, 4, 缺 省 为 1 字 节 . 由 关 键 字 len 给 出 的 长 度 运 算 符 指 明 报 文 的 长 度 .
例 如 , ’ether[0] & 1 != 0’ 捕 捉 所 有 的 多 目 传 送 报 文 . 表 达 式 ’ip[0] & 0xf != 5’ 捕 捉 所 有 带 可 选 域 的 IP 报 文 . 表 达 式 ’ip[6:2] & 0x1fff = 0’ 只 捕 捉 未 分 片 和 片 偏 移 为 0 的 数 据 报 . 这 种 检 查 隐 含 在 tcp 和 udp 下 标 操 作 中 . 例 如 , tcp[0] 一 定 是 TCP 报 头 的 第 一 个 字 节 , 而 不 是 其 中 某 个 IP片 的 第 一 个 字 节 .
原 语 可 以 用 下 述 方 法 结 合 使 用 :
园 括 弧 括 起 来 的 原 语 和 操 作 符 (园 括 弧 在 Shell 中 有 专 用 , 所 以 必 须 转 义 ).
取 反 操 作 (’!’ or ’not’).
连 结 操 作 (’&&’ or ’and’).
或 操 作 (’||’ or ’or’).
取 反 操 作 有 最 高 优 先 级 . 或 操 作 和 连 结 操 作 有 相 同 的 优 先 级 , 运 算 时 从 左 到 右 结 合 . 注 意 连 结 操 作 需 要 显 式 的 and 算 符 , 而 不 是 并 列 放 置 .
如 果 给 出 标 识 符 , 但 没 给 关 键 字 , 那 么 暗 指 最 近 使 用 的 关 键 字 . 例 如 ,
not host vs and ace
作 为
not host vs and host ace
的 简 写 形 式 , 不 应 该 和
not ( host vs or ace )
混 淆 .
表 达 式 参 数 可 以 作 为 单 个 参 数 , 也 可 以 作 为 复 合 参 数 传 给 tcpdump, 后 者 更 方 便 一 些 . 一 般 说 来 , 如 果 表 达 式 包 含 Shell 元 字 符 (metacharacter), 传 递 单 个 括 起 来 的 参 数 要 容 易 一 些 . 复 合 参 数 在 被 解 析 前 用 空 格 联 接 一 起 .
示 例 (EXAMPLES)
显 示 所 有 进 出 sundown 的 报 文 :
tcpdump host sundown
显 示 helios 和 主 机 hot, ace 之 间 的 报 文 传 送 :
tcpdump host helios and \( hot or ace \)
显 示 ace 和 除 了 helios 以 外 的 所 有 主 机 的 IP报 文 :
tcpdump ip host ace and not helios
显 示 本 地 的 主 机 和 Berkeley的 主 机 之 间 的 网 络 数 据 :
tcpdump net ucb-ether
显 示 所 有 通 过 网 关 snup 的 ftp 报 文 (注 意 这 个 表 达 式 被 单 引 号 括 起 , 防 止 shell 解 释 园 括 弧 ):
tcpdump ’gateway snup and (port ftp or ftp-data)’
显 示 既 不 是 来 自 本 地 主 机 , 也 不 是 传 往 本 地 主 机 的 网 络 数 据 (如 果 报 文 通 过 网 关 进 入 其 他 网 络 , 那 么 它 绝 不 可 能 到 达 你 的 本 地 网 络 ).
tcpdump ip and not net localnet
显 示 每 个 TCP会 话 的 起 始 和 结 束 报 文 (SYN 和 FIN 报 文 ), 而 且 会 话 方 中 有 一 个 远 程 主 机 .
tcpdump ’tcp[13] & 3 != 0 and not src and dst net localnet’
显 示 经 过 网 关 snup 中 大 于 576 字 节 的 IP 数 据 报 :
tcpdump ’gateway snup and ip[2:2] > 576’
显 示 IP 广 播 或 多 目 传 送 的 数 据 报 , 但 这 些 报 文 不 是 通 过 以 太 广 播 或 以 太 多 目 传 送 形 式 传 送 的 :
tcpdump ’ether[0] & 1 = 0 and ip[16] >= 224’
显 示 所 有 不 是 回 响 请 求 /应 答 的 ICMP 报 文 (也 就 是 说 , 不 是 ping 报 文 ):
tcpdump ’icmp[0] != 8 and icmp[0] != 0"
输 出 格 式 (OUTPUT FORMAT)
tcpdump 的 输 出 格 式 取 决 于 协 议 . 下 面 的 描 述 给 出 大 多 数 格 式 的 简 要 说 明 和 范 例 .
链 路 层 报 头 (Link Level Headers)
如 果 给 出 ’-e’ 选 项 就 显 示 链 路 层 报 头 .
在 以 太 网 上 , 显 示 报 文 的 源 目 地 址 , 协 议 和 报 文 长 度 .
在 FDDI 网 络 上 , ’-e’ 选 项 导 致 tcpdump 显 示 出 ’帧 控 制 (frame control)’ 域 , 源 目 地 址 和 报 文 长 度 . (’帧 控 制 ’ 域 负 责 解 释 其 余 的 报 文 . 普 通 报 文 (例 如 装 载 IP数 据 报 的 报 文 ) 是 ’异 步 ’ 报 文 , 优 先 级 介 于 0 到 7 (例 如 , ’async4’). 那 些 被 认 为 携 带 了 802.2 逻 辑 链 路 控 制 (LLC) 报 文 ; 如 果 它 们 不 是 ISO 数 据 报 或 者 所 谓 的 SNAP 报 文 , 就 显 示 LLC 报 头 .
(注 意 : 以 下 描 述 中 假 设 你 熟 悉 RFC-1144 中 说 明 的 SLIP 压 缩 算 法 .)
在 SLIP 链 路 上 , tcpdump 显 示 出 方 向 指 示 (’’I’’ 指 inbound(进 入 ), ’’O’’ 指 outbound(离 开 )), 报 文 类 型 和 压 缩 信 息 . 首 先 显 示 的 是 报 文 类 型 . 有 三 种 类 型 ip, utcp 和 ctcp. 对 于 ip 报 文 不 再 显 示 更 多 的 链 路 信 息 . 对 于 TCP 报 文 , 在 类 型 后 面 显 示 连 接 标 识 . 如 果 报 文 是 压 缩 过 的 , 就 显 示 出 它 的 编 码 报 头 . 这 种 特 殊 情 况 以 *S+n 和 *SA+n 的 形 式 显 示 , 这 里 的 n 是 流 序 号 (或 者 流 序 号 和 ack) 的 变 化 总 量 . 如 果 不 是 特 殊 情 况 , 就 显 示 出 0 或 多 个 变 化 . 变 化 由 U (urgent pointer), W (window), A (ack), S (sequence number) 和 I (packet ID) 指 明 , 后 跟 一 个 变 化 量 (+n or -n), 或 者 是 一 个 新 值 (=n). 最 后 显 示 报 文 中 的 数 据 总 量 , 以 及 压 缩 报 头 的 长 度 .
例 如 , 下 面 一 行 显 示 了 一 个 传 出 的 压 缩 的 TCP 报 文 , 有 一 个 隐 含 的 连 接 标 识 ; 确 认 (ack)的 变 化 量 是 6, 流 序 号 增 加 49, 报 文 ID 增 加 6; 有 三 个 字 节 的 数 据 和 六 个 字 节 的 压 缩 报 头 :
O ctcp * A+6 S+49 I+6 3 (6)
ARP/RARP 报 文
Arp/rarp 报 文 的 输 出 是 请 求 类 型 及 其 参 数 . 输 出 格 式 大 体 上 能 够 自 我 解 释 . 这 里 是 一 个 简 单 的 例 子 , 来 自 主 机 rtsg 到 主 机 csam 的 ’rlogin’ 开 始 部 分 :
arp who-has csam tell rtsg arp reply csam is-at CSAM
第 一 行 说 明 rtsg 发 出 一 个 arp 报 文 询 问 internet 主 机 csam 的 以 太 网 地 址 . Csam 用 它 的 以 太 地 址 作 应 答 (这 个 例 子 中 , 以 太 地 址 是 大 写 的 , internet 地 址 为 小 写 ).
如 果 用 tcpdump −n 看 就 清 楚 一 些 :
arp who-has 128.3.254.6 tell 128.3.254.68 arp reply 128.3.254.6 is-at 02:07:01:00:01:c4
如 果 用 tcpdump −e, 可 以 看 到 实 际 上 第 一 个 报 文 是 广 播 , 第 二 个 报 文 是 点 到 点 的 :
RTSG Broadcast 0806 64: arp who-has csam tell rtsg CSAM RTSG 0806 64: arp reply csam is-at CSAM
这 里 第 一 个 报 文 指 出 以 太 网 源 地 址 是 RTSG, 目 的 地 址 是 以 太 网 广 播 地 址 , 类 型 域 为 16进 制 数 0806 (类 型 ETHER_ARP), 报 文 全 长 64 字 节 .
TCP 报 文
(注 意 : 以 下 的 描 述 中 假 设 你 熟 悉 RFC-793 中 说 明 的 TCP 协 议 , 如 果 你 不 了 解 这 个 协 议 , 无 论 是 本 文 还 是 tcpdump 都 对 你 用 处 不 大 )
一 般 说 来 tcp 协 议 的 输 出 格 式 是 :
src > dst: flags data-seqno ack window urgent options
Src 和 dst 是 源 目 IP地 址 和 端 口 . Flags 是 S (SYN), F (FIN), P (PUSH) 或 R (RST) 或 单 独 的 ’.’(无 标 志 ), 或 者 是 它 们 的 组 合 . Data-seqno 说 明 了 本 报 文 中 的 数 据 在 流 序 号 中 的 位 置 (见 下 例 ). Ack 是 在 这 条 连 接 上 信 源 机 希 望 下 一 个 接 收 的 字 节 的 流 序 号 (sequence number). Window 是 在 这 条 连 接 上 信 源 机 接 收 缓 冲 区 的 字 节 大 小 . Urg 表 明 报 文 内 是 ’紧 急 (urgent)’ 数 据 . Options 是 tcp 选 项 , 用 尖 括 号 括 起 (例 如 , <mss 1024>).
Src, dst 和 flags 肯 定 存 在 . 其 他 域 依 据 报 文 的 tcp 报 头 内 容 , 只 输 出 有 必 要 的 部 分 .
下 面 是 从 主 机 rtsg rlogin 到 主 机 csam 的 开 始 部 分 .
rtsg.1023 > csam.login: S 768512:768512(0) win 4096 <mss 1024> csam.login > rtsg.1023: S 947648:947648(0) ack 768513 win 4096 <mss 1024> rtsg.1023 > csam.login: . ack 1 win 4096 rtsg.1023 > csam.login: P 1:2(1) ack 1 win 4096 csam.login > rtsg.1023: . ack 2 win 4096 rtsg.1023 > csam.login: P 2:21(19) ack 1 win 4096 csam.login > rtsg.1023: P 1:2(1) ack 21 win 4077 csam.login > rtsg.1023: P 2:3(1) ack 21 win 4077 urg 1 csam.login > rtsg.1023: P 3:4(1) ack 21 win 4077 urg 1
第 一 行 是 说 从 rtsg 的 tcp 端 口 1023 向 csam 的 login 端 口 发 送 报 文 . S 标 志 表 明 设 置 了 SYN 标 志 . 报 文 的 流 序 号 是 768512, 没 有 数 据 . (这 个 写 成 ’first:last(nbytes)’, 意 思 是 ’从 流 序 号 first 到 last, 不 包 括 last, 有 nbytes 字 节 的 用 户 数 据 ’.) 此 时 没 有 捎 带 确 认 (piggy-backed ack), 有 效 的 接 收 窗 口 是 4096 字 节 , 有 一 个 最 大 分 段 长 度 (max-segment-size) 的 选 项 , 请 求 设 置 mss 为 1024 字 节 .
Csam 用 类 似 的 形 式 应 答 , 只 是 增 加 了 一 个 对 rtsg SYN 的 捎 带 确 认 . 然 后 Rtsg 确 认 csam 的 SYN. ’.’ 意 味 着 没 有 设 置 标 志 . 这 个 报 文 不 包 含 数 据 , 因 此 也 就 没 有 数 据 的 流 序 号 . 注 意 这 个 确 认 流 序 号 是 一 个 小 整 数 (1). 当 tcpdump 第 一 次 发 现 一 个 tcp 会 话 时 , 它 显 示 报 文 携 带 的 流 序 号 . 在 随 后 收 到 的 报 文 里 , 它 显 示 当 前 报 文 和 最 初 那 个 报 文 的 流 序 号 之 差 . 这 意 味 着 从 第 一 个 报 文 开 始 , 以 后 的 流 序 号 可 以 理 解 成 数 据 流 中 的 相 对 位 移 (每 个 报 文 的 第 一 个 数 据 字 节 从 ’1’ 计 数 ). ’-S’ 选 项 能 够 改 变 这 个 特 性 , 直 接 显 示 原 始 的 流 序 号 .
在 第 六 行 , rtsg 传 给 csam 19 个 字 节 的 数 据 (字 节 2 到 20). 报 文 中 设 置 了 PUSH 标 志 . 第 七 行 csam 表 明 它 收 到 了 rtsg 的 数 据 , 字 节 序 号 是 21, 但 不 包 括 第 21个 字 节 . 显 然 大 多 数 数 据 在 socket 的 缓 冲 区 内 , 因 为 csam 的 接 收 窗 口 收 到 的 数 据 小 于 19 个 字 节 . 同 时 csam 向 rtsg 发 送 了 一 个 字 节 的 数 据 . 第 八 和 第 九 行 显 示 csam 发 送 了 两 个 字 节 的 紧 急 数 据 到 rtsg.
如 果 捕 捉 区 设 置 的 过 小 , 以 至 于 tcpdump 不 能 捕 捉 到 完 整 的 TCP 报 头 , tcpdump 会 尽 可 能 的 翻 译 已 捕 获 的 部 分 , 然 后 显 示 ’’[|tcp]’’, 表 明 无 法 翻 译 其 余 部 分 . 如 果 报 头 包 含 有 问 题 的 选 项 (选 项 表 长 度 太 小 或 者 超 出 报 头 范 围 ), tcpdump 显 示 ’’[bad opt]’’ 并 且 不 再 翻 译 其 他 选 项 部 分 (因 为 它 不 可 能 判 断 出 从 哪 儿 开 始 ). 如 果 报 头 长 度 表 明 存 在 选 项 , 但 是 IP 数 据 报 长 度 不 够 , 不 可 能 真 的 保 存 选 项 , tcpdump 就 显 示 ’’[bad hdr length]’’.
UDP 报 文
UDP 格 式 就 象 这 个 rwho 报 文 显 示 的 :
actinide.who > broadcast.who: udp 84
就 是 说 把 一 个 udp 数 据 报 从 主 机 actinide 的 who 端 口 发 送 到 broadcast, Internet 广 播 地 址 的 who 端 口 . 报 文 包 含 84字 节 的 用 户 数 据 .
某 些 UDP 服 务 能 够 识 别 出 来 (从 源 目 端 口 号 上 ), 因 而 显 示 出 更 高 层 的 协 议 信 息 . 特 别 是 域 名 服 务 请 求 (RFC-1034/1035) 和 NFS 的 RPC 调 用 (RFC-1050).
UDP 名 字 服 务 请 求 (Name Server Requests)
(注 意 : 以 下 的 描 述 中 假 设 你 熟 悉 RFC-1035 说 明 的 域 名 服 务 协 议 . 如 果 你 不 熟 悉 这 个 协 议 , 下 面 的 内 容 可 能 看 起 来 是 天 书 .)
名 字 服 务 请 求 的 格 式 是
src > dst: id op? flags qtype qclass name (len)
h2opolo.1538 > helios.domain: 3+ A? ucbvax.berkeley.edu. (37)
主 机 h2opolo 访 问 helios 上 的 域 名 服 务 , 询 问 和 ucbvax.berkeley.edu. 关 联 的 地 址 记 录 (qtype=A). 查 询 号 是 ’3’. ’+’ 表 明 设 置 了 递 归 请 求 标 志 . 查 询 长 度 是 37 字 节 , 不 包 括 UDP 和 IP 头 . 查 询 操 作 是 普 通 的 Query 操 作 , 因 此 op 域 可 以 忽 略 . 如 果 op 设 置 成 其 他 什 么 东 西 , 它 应 该 显 示 在 ’3’ 和 ’+’ 之 间 . 类 似 的 , qclass 是 普 通 的 C_IN 类 型 , 也 被 忽 略 了 . 其 他 类 型 的 qclass 应 该 在 ’A’ 后 面 显 示 .
Tcpdump 会 检 查 一 些 不 规 则 情 况 , 相 应 的 结 果 作 为 补 充 域 放 在 方 括 号 内 : 如 果 某 个 查 询 包 含 回 答 , 名 字 服 务 或 管 理 机 构 部 分 , 就 把 ancount, nscount, 或 arcount 显 示 成 ’[na]’, ’[nn]’ 或 ’[nau]’, 这 里 的 n 代 表 相 应 的 数 量 . 如 果 在 第 二 和 第 三 字 节 中 , 任 何 一 个 回 答 位 (AA, RA 或 rcode) 或 任 何 一 个 ’必 须 为 零 ’ 的 位 被 置 位 , 就 显 示 ’[b2&3=x]’, 这 里 的 x 是 报 头 第 二 和 第 三 字 节 的 16进 制 数 .
UDP 名 字 服 务 回 答
名 字 服 务 回 答 的 格 式 是
src > dst: id op rcode flags a/n/au type class data (len)
helios.domain > h2opolo.1538: 3 3/3/7 A 128.32.137.3 (273) helios.domain > h2opolo.1537: 2 NXDomain* 0/1/0 (97)
第 一 个 例 子 里 , helios 回 答 了 h2opolo 发 出 的 标 识 为 3 的 询 问 , 一 共 是 3 个 回 答 记 录 , 3 个 名 字 服 务 记 录 和 7 个 管 理 结 构 记 录 . 第 一 个 回 答 纪 录 的 类 型 是 A (地 址 ), 数 据 是 internet 地 址 128.32.137.3. 回 答 的 全 长 为 273 字 节 , 不 包 括 UDP 和 IP 报 头 . 作 为 A 记 录 的 class(C_IN) 可 以 忽 略 op (询 问 ) 和 rcode (NoError).
在
第 二 个 例 子 里 ,
helios 对 标 识 为 2 的
询 问 作 出 域 名
不 存 在 (NXDomain) 的 回
答 , 没 有 回 答 记
录 , 一 个 名 字 服
务 记 录 , 没 有 管
理 结 构 部 分 .
’*’ 表 明 设 置 了
权 威 回 答 (authoritative
answer). 由 于 没 有 回
答 记 录 , 这 里 就
不 显 示 type, class 和 data.
其 他 标 志 字 符 可 以 显 示 为 ’−’ (没 有 设 置 递 归 有 效 (RA)) 和 ’|’ (设 置 消 息 截 短 (TC)). 如 果 ’问 题 ’ 部 分 没 有 有 效 的 内 容 , 就 显 示 ’[nq]’.
注 意 名 字 服 务 的 询 问 和 回 答 一 般 说 来 比 较 大 , 68 字 节 的 snaplen 可 能 无 法 捕 捉 到 足 够 的 报 文 内 容 . 如 果 你 的 确 在 研 究 名 字 服 务 的 情 况 , 可 以 使 用 −s 选 项 增 大 捕 捉 缓 冲 区 . ’−s 128’ 应 该 效 果 不 错 了 .
NFS 请 求 和 响 应
Sun NFS (网 络 文 件 系 统 ) 的 请 求 和 响 应 显 示 格 式 是 :
src.xid > dst.nfs: len op
args
src.nfs > dst.xid: reply stat len op results
sushi.6709 > wrl.nfs: 112 readlink fh 21,24/10.73165 wrl.nfs > sushi.6709: reply ok 40 readlink "../var" sushi.201b > wrl.nfs: 144 lookup fh 9,74/4096.6878 "xcolors" wrl.nfs > sushi.201b: reply ok 128 lookup fh 9,74/4134.3150
在 第 一 行 , 主 机 sushi 向 wrl 发 送 号 码 为 6709 的 交 互 会 话 (注 意 源 主 机 后 面 的 数 字 是 交 互 号 , 不 是 端 口 ). 这 项 请 求 长 112 字 节 , 不 包 括 UDP 和 IP 报 头 . 在 文 件 句 柄 (fh) 21,24/10.731657119 上 执 行 readlink (读 取 符 号 连 接 ) 操 作 . (如 果 运 气 不 错 , 就 象 这 种 情 况 , 文 件 句 柄 可 以 依 次 翻 译 成 主 次 设 备 号 , i 节 点 号 , 和 事 件 号 (generation number). ) Wrl 回 答 ’ok’ 和 连 接 的 内 容 .
在 第 三 行 , sushi 请 求 wrl 在 目 录 文 件 9,74/4096.6878 中 查 找 ’xcolors’. 注 意 数 据 的 打 印 格 式 取 决 于 操 作 类 型 . 格 式 应 该 可 以 自 我 说 明 .
给 出 −v (verbose) 选 项 可 以 显 示 附 加 信 息 . 例 如 :
sushi.1372a > wrl.nfs: 148 read fh 21,11/12.195 8192 bytes @ 24576 wrl.nfs > sushi.1372a: reply ok 1472 read REG 100664 ids 417/0 sz 29388
(−v 同 时 使 它 显 示 IP 报 头 的 TTL, ID, 和 分 片 域 , 在 这 个 例 子 里 把 它 们 省 略 了 .) 在 第 一 行 , sushi 请 求 wrl 从 文 件 21,11/12.195 的 偏 移 位 置 24576 开 始 , 读 取 8192 字 节 . Wrl 回 答 ’ok’; 第 二 行 显 示 的 报 文 是 应 答 的 第 一 个 分 片 , 因 此 只 有 1472 字 节 (其 余 数 据 在 后 续 的 分 片 中 传 过 来 , 但 由 于 这 些 分 片 里 没 有 NFS 甚 至 UDP 报 头 , 因 此 根 据 所 使 用 的 过 滤 器 表 达 式 , 有 可 能 不 再 显 示 ). −v 选 项 还 会 显 示 一 些 文 件 属 性 (它 们 作 为 文 件 数 据 的 附 带 部 分 传 回 来 ): 文 件 类 型 (普 通 文 件 ’’REG’’), 存 取 模 式 (八 进 制 数 ), uid 和 gid, 以 及 文 件 大 小 .
如 果 再 给 一 个 −v 选 项 (−vv), 还 能 显 示 更 多 的 细 节 .
注 意 NFS 请 求 的 数 据 量 非 常 大 , 除 非 增 加 snaplen, 否 则 很 多 细 节 无 法 显 示 . 试 一 试 ’−s 192’ 选 项 .
NFS 应 答 报 文 没 有 明 确 标 明 RPC 操 作 . 因 此 tcpdump 保 留 有 ’’近 来 的 ’’ 请 求 记 录 , 根 据 交 互 号 匹 配 应 答 报 文 . 如 果 应 答 报 文 没 有 相 应 的 请 求 报 文 , 它 就 无 法 分 析 .
KIP Appletalk (UDP 上 的 DDP)
Appletalk DDP 报 文 封 装 在 UDP 数 据 报 中 , 解 包 后 按 DDP 报 文 转 储 (也 就 是 说 , 忽 略 所 有 的 UDP 报 头 信 息 ). 文 件 /etc/atalk.names 用 来 把 appletalk 网 络 和 节 点 号 翻 译 成 名 字 . 这 个 文 件 的 行 格 式 是
number name
1.254 ether 16.1 icsd-net 1.254.110 ace
前 两 行 给 出 了 appletalk 的 网 络 名 称 . 第 三 行 给 出 某 个 主 机 的 名 字 (主 机 和 网 络 依 据 第 三 组 数 字 区 分 − 网 络 号 一 定 是 两 组 数 字 , 主 机 号 一 定 是 三 组 数 字 .) 号 码 和 名 字 用 空 白 符 (空 格 或 tab) 隔 开 . /etc/atalk.names 文 件 可 以 包 含 空 行 或 注 释 行 (以 ’#’开 始 的 行 ).
Appletalk 地 址 按 这 个 格 式 显 示
net.host.port
144.1.209.2 > icsd-net.112.220 office.2 > icsd-net.112.220 jssmag.149.235 > icsd-net.2
(如 果 不 存 在 /etc/atalk.names , 或 者 里 面 缺 少 有 效 项 目 , 就 以 数 字 形 式 显 示 地 址 .) 第 一 个 例 子 里 , 网 络 144.1 的 209 节 点 的 NBP (DDP 端 口 2) 向 网 络 icsd 的 112 节 点 的 220 端 口 发 送 数 据 . 第 二 行 和 上 面 一 样 , 只 是 知 道 了 源 节 点 的 全 称 (’office’). 第 三 行 是 从 网 络 jssmag 的 149 节 点 的 235 端 口 向 icsd-net 的 NBP 端 口 广 播 (注 意 广 播 地 址 (255) 隐 含 在 无 主 机 号 的 网 络 名 字 中 − 所 以 在 /etc/atalk.names 中 区 分 节 点 名 和 网 络 名 是 个 好 主 意 ).
Tcpdump 可 以 翻 译 NBP (名 字 联 结 协 议 ) 和 ATP (Appletalk 交 互 协 议 ) 的 报 文 内 容 . 其 他 协 议 只 转 储 协 议 名 称 (或 号 码 , 如 果 还 没 给 这 个 协 议 注 册 名 称 ) 和 报 文 大 小 .
NBP 报 文 的 输 出 格 式 就 象 下 面 的 例 子 :
icsd-net.112.220 > jssmag.2: nbp-lkup 190: "=:LaserWriter@*" jssmag.209.2 > icsd-net.112.220: nbp-reply 190: "RM1140:LaserWriter@*" 250 techpit.2 > icsd-net.112.220: nbp-reply 190: "techpit:LaserWriter@*" 186
第 一 行 是 网 络 icsd 的 112 主 机 在 网 络 jssmag 上 的 广 播 , 对 名 字 laserwriter 做 名 字 查 询 请 求 . 名 字 查 询 请 求 的 nbp 标 识 号 是 190. 第 二 行 显 示 的 是 对 这 个 请 求 的 回 答 (注 意 它 们 有 同 样 的 标 识 号 ), 主 机 jssmag.209 表 示 在 它 的 250 端 口 注 册 了 一 个 laserwriter 的 资 源 , 名 字 是 "RM1140". 第 三 行 是 这 个 请 求 的 其 他 回 答 , 主 机 techpit 的 186 端 口 有 laserwriter 注 册 的 "techpit".
ATP 报 文 格 式 如 下 例 所 示 :
jssmag.209.165 > helios.132: atp-req 12266<0-7> 0xae030001 helios.132 > jssmag.209.165: atp-resp 12266:0 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:1 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:2 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:3 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:4 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:5 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:6 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp*12266:7 (512) 0xae040000 jssmag.209.165 > helios.132: atp-req 12266<3,5> 0xae030001 helios.132 > jssmag.209.165: atp-resp 12266:3 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:5 (512) 0xae040000 jssmag.209.165 > helios.132: atp-rel 12266<0-7> 0xae030001 jssmag.209.133 > helios.132: atp-req* 12267<0-7> 0xae030002
Jssmag.209 向 主 机 helios 发 起 12266 号 交 互 操 作 , 请 求 8 个 报 文 (’<0-7>’). 行 尾 的 十 六 进 制 数 是 请 求 中 ’userdata’ 域 的 值 .
Helios 用 8 个 512字 节 的 报 文 应 答 . 跟 在 交 互 号 后 面 的 ’:digit’ 给 出 了 交 互 过 程 中 报 文 的 序 列 号 , 括 弧 内 的 数 字 是 报 文 的 数 据 量 , 不 包 括 atp 报 头 . 报 文 7 的 ’*’ 表 明 设 置 了 EOM 位 .
然 后 Jssmag.209 请 求 重 传 第 3 & 5 报 文 . Helios 做 了 重 传 后 jssmag.209 结 束 这 次 交 互 操 作 . 最 后 , jssmag.209 发 起 下 一 次 交 互 请 求 . 请 求 中 的 ’*’ 表 明 没 有 设 置 XO (exactly once) 位 .
IP 分 片
分 片 的 Internet 数 据 报 显 示 为
(frag
id:size@offset+)
(frag
id:size@offset)
(第 一 种 形 式 表 明 还 有 更 多 的 分 片 . 第 二 种 形 式 表 明 这 是 最 后 一 片 .)
Id 是 分 片 标 识 号 . Size 是 分 片 大 小 (字 节 ), 不 包 括 IP 报 头 . Offset 是 该 分 片 在 原 数 据 报 中 的 偏 移 (单 位 是 字 节 ).
每 一 个 分 片 的 信 息 都 可 以 打 印 出 来 . 第 一 个 分 片 包 含 了 高 层 协 议 报 头 , 显 示 协 议 信 息 后 显 示 分 片 的 信 息 . 第 一 个 分 片 以 后 的 分 片 不 再 含 有 高 层 协 议 报 头 , 所 以 在 源 目 地 址 后 面 只 显 示 分 片 信 息 . 例 如 , 下 面 是 从 arizona.edu 到 lbl-rtsg.arpa 的 一 部 分 ftp 传 输 , 途 经 的 CSNET 看 上 去 处 理 不 了 576 字 节 的 数 据 报 :
arizona.ftp-data > rtsg.1170: . 1024:1332(308) ack 1 win 4096 (frag 595a:328@0+) arizona > rtsg: (frag 595a:204@328) rtsg.1170 > arizona.ftp-data: . ack 1536 win 2560
这 里 有 几 点 需 要 注 意 : 首 先 , 第 二 行 的 地 址 不 包 括 端 口 号 . 这 是 因 为 TCP 协 议 信 息 全 部 装 到 了 第 一 个 分 片 内 , 所 以 显 示 后 续 分 片 的 时 候 不 可 能 知 道 端 口 或 流 序 号 . 其 次 , 第 一 行 的 tcp 流 序 号 部 分 看 上 去 有 308 字 节 的 用 户 数 据 , 实 际 上 是 512 字 节 (第 一 个 分 片 的 308 和 第 二 个 分 片 的 204 字 节 ). 如 果 你 正 在 寻 找 流 序 号 中 的 空 洞 , 或 者 试 图 匹 配 报 文 的 确 认 (ack), 那 你 上 当 了 .
如 果 报 文 的 IP 标 有 不 要 分 片 标 志 , 那 么 在 尾 部 显 示 (DF).
时 戳
缺 省 情 况 下 , 所 有 输 出 行 的 前 面 都 有 时 戳 . 时 戳 就 是 当 前 时 间 , 显 示 格 式 为
hh:mm:ss.frac
精 度 和 内 核 时 钟 一 样 . 时 戳 反 映 了 内 核 收 到 报 文 的 时 间 . 从 以 太 接 口 收 到 报 文 到 内 核 响 应 ’报 文 就 绪 ’ 中 断 有 一 个 滞 后 , 该 滞 后 不 被 考 虑 .
另 见 (SEE ALSO)
traffic(1C), nit(4P), bpf(4), pcap(3)
作 者 (AUTHORS)
Van Jacobson, Craig Leres and Steven McCanne, all of the Lawrence Berkeley National Laboratory, University of California, Berkeley, CA.
当 前 版 本 可 以 从 匿 名 ftp 获 得 :
ftp://ftp.ee.lbl.gov/tcpdump.tar.Z
BUGS
请 把 臭 虫 报 告 传 往 tcpdump [AT] ee.gov.
NIT 不 允 许 监 视 你 自 己 的 传 出 数 据 , BPF 可 以 . 我 们 建 议 你 使 用 后 者 .
应 该 试 着 重 组 IP 分 片 , 至 少 可 以 为 更 高 层 的 协 议 计 算 出 正 确 的 长 度 .
名 字 服 务 逆 向 询 问 转 储 的 不 正 确 : 打 印 出 (空 的 )问 题 部 分 , 而 实 际 上 询 问 放 在 了 回 答 部 分 . 有 人 认 为 这 种 逆 向 询 问 本 身 就 是 bug, 应 该 修 改 产 生 问 题 的 程 序 , 而 非 tcpdump.
苹 果 Ethertalk DDP 的 报 文 应 该 象 KIP DDP 的 报 文 一 样 容 易 转 储 , 事 实 却 不 是 这 样 . 即 使 我 们 有 意 作 点 什 么 来 促 销 Ethertalk (我 们 没 有 ), LBL 也 不 允 许 Ethertalk 出 现 在 它 的 任 何 网 络 上 , 所 以 我 们 没 办 法 测 试 这 些 代 码 .
如 果 报 文 的 路 径 上 出 现 夏 时 制 时 间 变 化 , 可 能 导 致 时 戳 混 乱 . (这 个 时 间 变 化 将 忽 略 )
操 作 FDDI 报 头 的 过 滤 器 表 达 式 假 设 所 有 的 FDDI 报 文 被 封 装 在 以 太 报 文 中 . 这 对 IP, ARP 和 DECNET Phase IV 无 疑 是 正 确 的 , 但 对 某 些 协 议 如 ISO CLNS 不 正 确 . 因 此 , 过 滤 器 有 可 能 会 糊 里 糊 涂 的 的 接 收 一 些 并 不 真 正 匹 配 过 滤 器 表 达 式 的 报 文 .
[中 文 版 维 护 人 ]
徐 明 <xuming [AT] users.net>
[中 文 版 最 新 更 新 ]
2003/05/13