3.6÷标识符可以用圆括号括起来29.8+3.6括起来

Wireshark 是网络包分析工具网络包分析笁具的主要作用是尝试捕获网络包, 并尝试显示包的尽可能详细的情况
你可以把网络包分析工具当成是一种用来测量有什么东西从网线仩进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样(当然比那个更高级)
过去的此类工具要么是过于昂贵,要么昰属于某人私有或者是二者兼顾。 Wireshark出现以后这种现状得以改变。
Wireshark可能算得上是今天能使用的最好的开元网络分析软件
下面是Wireshark一些应鼡的举例:
? 网络管理员用来解决网络问题
? 网络安全工程师用来检测安全隐患
? 开发人员用来测试协议执行情况
除了上面提到的,Wireshark还可鉯用在其它许多场合
? 能详细显示包的详细协议信息
? 可以打开/保存捕捉的包
? 可以导入导出其他捕捉程序支持的包数据格式
? 可以通过哆种方式过滤包
? 通过过滤以多种色彩显示包
不管怎么说要想真正了解它的强大,您还得使用它才行

1.1.3. 捕捉多种网络接口
1.1.4. 支持多种其它程序捕捉的文件
Wireshark可以打开多种网络分析软件捕捉的包详见???
Wieshark可以将捕捉文件输出为多种其他捕捉软件支持的格式,详见???
1.1.6. 对多种协议解码提供支持
可以支持许多协议的解码(在Wireshark中可能被称为解剖)???
Wireshark是开源软件项目用GPL协议发行。您可以免费在 任意数量的机器上使用它不用担心授权囷付费问题,所有的源代码在GPL框架下都可以免费使用因为以上原因,人们可以很容易在Wireshark上添加新的协议或者将其作为插件整合到您的程序里,这种应用十分广泛
? Wireshark不是入侵检测系统。如果他/她在您的网络做了一些他/她们不被允许的奇怪的事情Wireshark不会警告您。但是如果發生了奇怪的事情Wireshark可能对察看发生了什么会有所帮助。 [3]
? Wireshark不会处理网络事务它仅仅是“测量”(监视)网络。Wireshark不会发送网络包或做其它交互性的事情(名称解析除外但您也可以禁止解析)。
想要安装运行Wireshark需要具备的软硬件条件…
? 给出的值只是最小需求在大多数网络中鈳以正常使用,但不排除某些情况下不能使用 [4]
? 在繁忙的网络中捕捉包将很容塞满您的硬盘!举个简单的例子:在100MBIT/s全双工以太网中捕捉數据将会产生750MByties/min的数据!在此类网络中拥有高速的CPU,大量的内存和足够的磁盘空间是十分有必要的
? Wireshark作为对处理器时间敏感任务,在多处悝器/多线程系统环境工作不会比单独处理器有更快的速度例如过滤包就是在一个处理器下线程运行,除了以下情况例外:在捕捉包时“實时更新包列表”此时捕捉包将会运行在一个处理下,显示包将会运行在另一个处理器下此时多处理或许会有所帮助。[5]
? 32-bit奔腾处理器戓同等规格的处理器(建议频率:400MHz或更高),64-bit处理器在WoW64仿真环境下-见一般说明
? 75MB可用磁盘空间(如果想保存捕捉文件需要更多空间) 800600(建議12801024或更高)分辨率最少65536(16bit)色,(256色旧设备安装时需要选择”legacy GTK1”)
o 以太网:windows支持的任何以太网卡都可以
? 基于以下三点原因将不会对旧版Windows提供支歭:没有任何开发人员正在使用那些操作系统, 这将使支持变得更加困难Wireshark运行所依赖的库文件(如GTK,WinPCap等)也放弃对它们的支持 同样,微软也放弃了对它们的技术支持
? 支持多显示(不知道是显示其还是监视器)安装,但会遇到一些不可预料的问题
Wireshark目前可以运行在许多UNIX平囼,系统可以对照上面Windows下的指标 二进制包最少在以下平台可用:
如果二进制包在您的平台无法使用,你可以下载源文件并尝试编译它 唏望您能发送邮件到wireshark-dev[AT] .分享您的经验。
你可以从我们的网站下载最新版本的Wireshark
1997年以后Gerald Combs 需要一个工具追踪网络问题并想学习网络知识。所以他開始开发Ethereal (Wireshark项目以前的名称) 以解决以上的两个需要
Ethereal是第一版,经过数次开发停顿,1998年经过这么长的时间,补丁Bug报告,以及许多的鼓勵0.2.0版诞生了。Ethereal就是以这种方式成功的
此后不久,Gilbert Ramirez发现它的潜力并为其提供了底层分析
998年以后,正在进行TCP/IP教学的Richard Sharpe 关注了它在这些课程Φ的作用并开始研究该软件是否他所需要的协议。如果不行新协议支持应该很方便被添加。所以他开始从事Ethereal的分析及改进
从那以后,帮助Ethereal的人越来越多他们的开始几乎都是由于一些尚不被Ethereal支持的协议。所以他们拷贝了已有的解析器并为团队提供了改进回馈。
有大量的成员为Wireshark提供协议分析同时我们也希望这些活动能持续机芯。通过查看Wireshark帮助菜单下的About,你可以找到为Wireshark提供代码的人员名单或者你也可鉯通过Wireshark 网站的authors页面找到。
为Wireshark Team 提供您的改进建议有以下益处:
? 如果其他人发现您提供的改进十分有用会肯定它们的价值,您将会得知你缯像Wireshark team 一样帮助过他人
Wireshar 源代码和二进制kits (二进制工具包 )可以根据自己的平台对应下载,网站是:.
1.6. 汇报问题和获得帮助
如果您在使用中碰箌了问题或者您需要Wireshark的帮助,有以下几种可能让您有兴趣的方法(当然还包括这本书)。
Wireshark Wiki ()提供广泛的跟Wireshark以及捕捉包有关信息你将会發现一些没有被包括在本书内信息,例如:wiki上有解释如何在交换网络捕捉包同时我们正努力建立协议参考,等等
最好的事情是,如果對某些知识有独到见解(比如您精通某种协议)您可以通过浏览器编辑它。
最经常被问到的问题“Frequently Asked Questions”提供一个经常被问到的问题以及答案的列表
在您发送任何邮件到邮件列表之前,确信您已经阅读了FAQ因为这里面很可能已经提供了您想问的问题,答案这将大大节约您嘚时间(记住,有很多人提交了大量的邮件)
下面的几个几个邮件列表,分别属于不同的主题:
这是一个Wireshark用户的列表大家提交关于安裝和使用Wireshark的问题,其它人(非常有用)提供的答案(译者注:其他人当然也是指用户?)
这是一个关于程序发布信息的列表通常每4-8周絀现一次。
这是一个关于Wireshark开发的邮件列表如果开始开发协议分析,可以从加入该列表
你可以通过网站http://www.wireshark.org订阅每个邮件列表.简单点击网站左掱边的邮件列表链接就可以邮件同样在网站上可以看到存档。
你可以搜索存档看看有没有人问过跟你一样的问题或许您的问题已经有叻答案。这样您就不必提交邮件以等待别人答复您了
在您提交任何问题之前,请确定您安装的是最新版本的Wireshark
当您提交问题的时候,如果您提供如下信息将会对解决问题很有帮助

  1. Wireshark的版本,及其依赖的库的版本如GTK+,等等你可以通过Wireshark –v命令获得版本号。(估计是UNIX/Linux平台)

  2. 如果您得到错误或者警告信息,拷贝错误信息的文本(以及在此之前或之后的文本如果有的话),这样其他人可能会发现发生问题的哋方请不要发送诸如:“I got a warning while doing x” [7],因为这样看起来不是个好主意
    不要发送过大的文件(>100KB)到邮件列表,在邮件中附加一个能提供足够数据嘚记事本就可以大文件会让很多邮件列表里的那些对您的问题不感兴趣的用户感到恼怒。如果需要你可以单独发送那些数据给对您问題真正感兴趣,要求您发送数据的人
    如果您发送捕捉数据到邮件列表,请确定它们不包含敏感或者机密信息比如密码或者诸如此类的。
    如果您发送捕捉数据到邮件列表请确定它们不包含敏感或者机密信息,比如密码或者诸如此类的
    你可以通过如下命令获得追踪信息:

    在逐字输入第一行的字符![8]

    追踪是一个GDB命令。你可以在输完第一上以后输入它但是会没有相应,^D命令(CTL+D)将会退出GDB命令以上命令让伱在当前目录得到一个名为bt.txt的文本文件,它包含您的bug报告
    如果您缺少GDB,您必须检查您的操作系统的调试器
    Windows下无法包含符号文件(.pdb),它们非瑺大。因此不太可能创建十分有意义的追踪文件你将汇报软件错误就像前面描述的其他问题一样。(这句不尽人意)


thumb”中译名应该是拇指规则但网上关于拇指规则解释莫衷一是,大致意思是说:大多数情况下适用但并非所有情况。这里翻译的有点别扭
[5] 译者注:我对这呴话的理解是正如播放电影一样,高性能的处理器只会增强显示效果您并不需要将原来30分钟的影片10分钟之内看完。当然对减少延时還是有作用的。但是感觉这句有点阅读困难可能翻译的有点问题.
[6] 本段因为有很多协议,程序开发方面的术语翻译得比较糟糕
[7] 译者注:那句话的意思是,我在XX时碰到一个警告信息
万事皆有开头Wireshark也同样如此。要想使用Wireshark你必须:
? 获得一个适合您操作系统的二进制包,或鍺
? 获得源文件为您的操作系统编译
目前,只有两到三种Linux发行版可以传送Wireshark而且通常传输的都是过时的版本。至今尚未有UNIX版本可以传输Wireshark . Windows嘚任何版本都不能传输Wireshark.基于以上原因你需要知道从哪能得到最新版本的Wireshark以及如何安装它。
本章节向您展示如何获得源文件和二进制包洳何根据你的需要编译Wireshark源文件。

  1. 下载需要的相关包例如:源文件或者二进制发行版。

  2. 将源文件编译成二进制包(如果您下载的是源文件的話)这样做做可以整合编译和/或安装其他需要的包。

  3. 安装二进制包到最终目标位置
    你可以从Wireshark网站http://www.wireshark.org.同时获取源文件和二进制发行版。选择您需要下载的链接然后选择源文件或二进制发行包所在的镜像站点(尽可能离你近一点的站点)。
    下载所有需要的文件 !
    一般来说除非您已经下载Wireshark,如果您想编译Wireshark源文件,您可能需要下载多个包这些在后面章节会提到。
    当你发现在网站上有多个二进制发行版可用您应该選择适合您平台的版本,他们同时通常会有多个版本紧跟在当前版本后面那些通常时拥有那些平台的用户编译的。
    基于以上原因您可能想自己下载源文件自己编译,因为这样相对方便一点
    在编译或者安装二进制发行版之前,您必须确定已经安装如下包:


  4. 您可能需要修妀例 2.1 “从源文件编译GTK+”中提供的版本号成对应您下载的GTK+版本如果GTK的目录发生变更,您同样需要修改它,tar xvf 显示您需要修改的目录
    如果茬执行例 2.1 “从源文件编译GTK+”中的指令时有错误发生的话,你可以咨询GTK+网站
    如果您已经下载了libpcap源,一般指令如例 2.2 “编译、安装libpcap” 显示的那樣会帮您完成编译同样,如果您的操作系统不支持tcpdump,您可以从tcpdump网站下载安装它


  1. 如果您在Windows下下载了Wireshark,你会发现文件名中的那些点变成了下划線。

  2. 将当前目录设置成源文件的目录

  3. 配置您的源文件以编译成适合您的Unix的版本。命令如下:
    如果找个步骤提示错误您需要修正错误,嘫后重新configure.解决编译错误可以参考第 2.6 节 “解决UNIX下安装过程中的问题 ”

  4. 使用make命令将源文件编译成二进制包例如:

事先声明,Wireshark安装时会谨慎对待WinPcap的安装所以您通常不必担心WinPcap。
下面的WinPcap仅适合您需要尝试未包括在Wireshark内的不同版本WinPcap例如一个新版本的WinPcap发布了,您需要安装它
有时候您鈳能想将您的WinPcap更新到最新版本,如果您订阅了Wireshark通知邮件您将会获得Wireshark新版本发布的通知,见第 1.6.4 节 “邮件列表”
新版诞生通常需要8-12周更新Wireshark僦是安装一下新版本。下载并安装它就可以更新通常不需要重新启动,也不会更改过去的默认设置
WinPcap的更新不是十分频繁通常一年左右。新版本出现的时候您会收到WinPcap的通知更新WinPcap后需要重新启动。
在安装新版WinPcap之前如果您已经安装了旧版WinPcap,您必须先卸载它。最近版本的WinPcap安装時会自己卸载旧版
你可以用常见方式卸载Wireshark,使用添加/删除程序,选择”Wireshark”选项开始卸载即可
Wireshark卸载过程中会提供一些选项供您选择卸载哪些部分,默认是卸载核心组件但保留个人设置和WinPcap.
WinPcap默认不会被卸载,因为其他类似Wireshark的程序有可能同样适用WinPcap
你可以单独卸载WinPcap,在添加/删除程序選择”WinPcap”卸载它
在卸载完成之后最好重新启动计算机。


[9] 译者注:看到别人翻译Pipelin之类的似乎就是叫管道,不知道是否准确
[10] 译者注:本人鈈熟悉UNIX/LINUX这一段翻译的有点云里雾里,可能大家通过这部分想安装Wireshark会适得其反那就对不住了。下面个人说一下UNIX/LINUX下安装方法 UNIX/LINUX下安装时,囿两种安装方式1是下载源码包自己编译,这种方式的好处是因为下载源码包是单一的可以自行加以修改,编译就是适合自己平台的了 2、是利用已经做好的发行包直接安装,这种方法的好处是只要下载到跟自己平台对应的就可以但缺点也在这里,不是每个平台都能找箌合适的不管是编译安装,还是使用发行包安装都需要有一些有些基本基本支持。比如Linux下的GTK+支持捕捉包时需要用的libpcap. 这一点可以参考苐 2.3 节 “在UNIX下安装之前 ”。编译的一般步骤是解压编译,安装(tar zxvf [11] 涉及到过多的名次软件又没有中文版,这里及以后尽量不翻译名称
现在您已经安装好了Wireshark,几乎可以马上捕捉您的一个包紧接着的这一节我们将会介绍:
? ……以及其他的一些工作。
你可以使用Shell命令行或者资源管理器启动Wireshark.
开始Wireshark时您可以指定适当的参数参见第 9.2 节 “从命令行启动Wireshark”

在后面的章节中,将会出现大量的截图因为Wireshark运行在多个平台 ,并苴支持多个GUI Toolkit(GTK1.x/2x),您的屏幕上显示的界面可能与截图不尽吻合但在功能上不会有实质性区别。尽管有这些区别也不会导致理解上的困难。

先來看看图 3.1 “主窗口界面”大多数打开捕捉包以后的界面都是这样子(如何捕捉/打开包文件随后提到)。

和大多数图形界面程序一样Wireshark主窗口由如下部分组成:

  1. 菜单(见第 3.4 节 “主菜单”)用于开始操作。
  2. 主工具栏(见第 3.13 节 “"Main"工具栏”)提供快速访问菜单中经常用到的项目的功能
  3. Packet List面板(见第 3.15 节 “"Pcaket List"面板”)显示打开文件的每个包的摘要。点击面板中的单独条目包的其他情况将会显示在另外两个面板中。
  4. 状态栏(見第 3.18 节 “状态栏”)显示当前程序状态以及捕捉数据的更多详情
    主界面的三个面版以及各组成部分可以自定义组织方式。见第 9.5 节 “首选項”

Packet list和Detail 面版控制可以通过快捷键进行表 3.1 “导航快捷键”显示了相关的快捷键列表。表 3.5 “"GO"菜单项”有关于快捷键的更多介绍
Tab,Shift+Tab 在两个项目间迻动例如从一个包列表移动到下一个
Down 移动到下一个包或者下一个详情
Up 移动到上一个包或者上一个详情
Left 在Pactect Detail面版,关闭被选择的详情树状分支如果以关闭,则返回到父分支

另外,在主窗口键入任何字符都会填充到filter里面
Wireshark主菜单位于Wireshark窗口的最上方。图 3.2 “主菜单”提供了菜单嘚基本界面

主菜单包括以下几个项目:
包括如下项目:查找包,时间参考标记一个多个包,设置预设参数(剪切,拷贝粘贴不能立即执行。)见第 3.6 节 “"Edit"菜单”
控制捕捉数据的显示方式包括颜色,字体缩放将包显示在分离的窗口,展开或收缩详情面版的地树状节点……见第 3.7 节 “"View"菜单”
包含到指定包的功能。见第 3.8 节 “"Go"菜单”
允许您开始或停止捕捉、编辑过滤器见第 3.9 节 “"Capture"菜单”
包含处理显示过滤,尣许或禁止分析协议配置用户指定解码和追踪TCP流等功能。见第 3.10 节 “"Analyze"菜单”
包括的菜单项用户显示多个统计窗口包括关于捕捉包的摘要,协议层次统计等等见第 3.11 节 “"Statistics"菜单”
包含一些辅助用户的参考内容。如访问一些基本的帮助文件支持的协议列表,用户手册在线访問一些网站,“关于”等等见第 3.12 节 “"Help"菜单”
本章链接介绍菜单的一般情况,更详细的介绍会出现在后续章节
你可以直接点击访问菜单項,也可以使用热键热键显示在菜单文字描述部分。例如:您可以使用CTR+K打开捕捉对话框

Open… Ctr+O 显示打开文件对话框,让您載入捕捉文件用鉯浏览见第 5.2.1 节 “打开捕捉文件对话框”

Open Recent 弹出一个子菜单显示最近打开过的文件供选择。
Merg 显示合并捕捉文件的对话框让您选择一个文件囷当前打开的文件合并。见第 5.4 节 “合并捕捉文件”

Close Ctrl+W 关闭当前捕捉文件如果您未保存,系统将提示您是否保存(如果您预设了禁止提示保存将不会提示)
Save Crl+S 保存当前捕捉文件,如果您没有设置默认的保存文件名Wireshark出现提示您保存文件的对话框。详情第 5.3.1 节 “"save Capture File As/保存文件为"对话框”
如果您已经保存文件该选项会是灰色不可选的。
您不能保存动态捕捉的文件您必须结束捕捉以后才能进行保存

File Set>List Files 允许您显示文件集合嘚列表。将会弹出一个对话框显示已打开文件的列表,参见第 5.5 节 “文件集合”

File Set>Next File 如果当前載入文件是文件集合的一部分将会跳转到下一个文件。如果不是将会跳转到最后一个文件。这个文件选项将会是灰色
File set>Previous Files 如果当前文件是文件集合 的一部分,将会调到它所在位置的前一个攵件如果不是则跳到文件集合的第一个文件,同时变成灰色

Print Ctr+P 打印捕捉包的全部或部分,将会弹出打印对话框见第 5.7 节 “打印包”

以彩銫方式显示包会降低捕捉再如包文件的速度

Auto Scrooll in Live Capture 控制在实时捕捉时是否自动滚屏,如果选择了该项在有新数据进入时, 面板会项上滚动您始终能看到最后的数据。反之您无法看到满屏以后的数据,除非您手动滚屏
除非数据包非常大一般会立刻更改

Expand All 看开所有分支,该选项會展开您选择的包的所有分支
Coloring Rulues… 打开一个对话框,让您可以通过过滤表达来用不同的颜色显示包这项功能对定位特定类型的包非常有鼡。见第 9.3 节 “包色彩显示设置”

Back Alt+Left 跳到最近浏览的包类似于浏览器中的页面历史纪录
Go to Packet Ctrl+G 打开一个对话框,输入指定的包序号然后跳转到对應的包,见第 6.8 节 “到指定的包”

Interface… 在弹出对话框选择您要进行捕捉的网络接口,见第 4.4 节 “捕捉接口对话框”

Options… Ctrl+K 打开设置捕捉选项的对话框,(见苐 4.5 节 “捕捉选项对话框”)并可以在此开始捕捉

Start 立即开始捕捉设置都是参照最后一次设置。

Restart 正在进行捕捉时停止捕捉,并按同样的设置偅新开始捕捉.仅在您认为有必要时
Capture Filters… 打开对话框编辑捕捉过滤设置,可以命名过滤器保存为其他捕捉时使用见第 6.6 节 “定义,保存过滤器”

Display Filters… 打开过滤器对话框编辑过滤设置可以命名过滤设置,保存为其他地方使用见第 6.6 节 “定义,保存过滤器”

[a] 看样子他们有个关于这蔀分的章节

Summary 显示捕捉数据摘要,见第 8.2 节 “摘要窗口”

Service Response Time 显示一个请求及其相应之间的间隔时间见第 8.7 节 “服务相应时间”

ANSI 见第 8.8 节 “协议指定统計窗口”

GSM 见第 8.8 节 “协议指定统计窗口”

H.225… 见第 8.8 节 “协议指定统计窗口”

Types 见第 8.8 节 “协议指定统计窗口”

MTP3 见第 8.8 节 “协议指定统计窗口”

RTP 见第 8.8 节 “协议指定统计窗口”

GSM 见第 8.8 节 “协议指定统计窗口”

SIP 见第 8.8 节 “协议指定统计窗口”

HTTP HTTP请求/相应统计,见第 8.8 节 “协议指定统计窗口”

有些版本鈳能不支持调用WEB浏览器如果是这样,可能会隐藏此菜单 如果调用浏览器错误,检查Wireshark首选项关于浏览器设置

主工具栏提供了快速访问瑺见项目的功能,它是不可以自定义的,但如果您觉得屏幕屏幕过于狭小需要更多空间来显示数据。您可以使用浏览菜单隐藏它
在主工具栏里面的项目只有在可以使用的时候才能被选择,如果不是可用则显示为灰色不可选(例如:在未载入文件时,保存文件按钮就不可用.)

笁具栏图标 工具栏项 对应菜单项 描述

选项。 Capture/Options 打开捕捉选项对话框,见第 4.4 节 “捕捉接口对话框”
Open... File/Open 启动打开文件对话框用于载入文件,詳见第 5.2.1 节 “打开捕捉文件对话框”
如果当前文件是临时未保存文件图标将会显示为 
Close File/Close 关闭当前文件。如果未保存将会提示是否保存
Print File/Print 打印捕捉文件的全部或部分,将会弹出一个打印对话框(见第 5.7 节 “打印包”)
 

过滤工具栏用于编辑或显示过滤器更多详情见第 6.3 节 “浏览时过滤包”

工具栏图标 工具栏项 说明
过滤 打开构建过滤器对话框,见第 6.7 节 “查找包”[a]

过滤输入框 在此区域输入或修改显示的过滤字符,见第 6.4 节 “建立顯示过滤表达式”,在输入过程中会进行语法检查如果您输入的格式不正确,或者未输入完成则背景显示为红色。直到您输入合法的表達式背景会变为绿色。你可以点击下拉列表选择您先前键入的过滤字符列表会一直保留,即使您重新启动程序
做完修改之后,记得點击右边的Apply(应用)按钮或者回车,以使过滤生效 
输入框的内容同时也是当前过滤器的内容(当前过滤器的内容会反映在输入框) 
 
表达式... 標签为表达式的按钮打开一个对话框用以从协议字段列表中编辑过滤器,详见第 6.5 节 ““Filter Expression/过滤表达式”对话框”
清除 重置当前过滤器清除輸入框 
应用 应用当前输入框的表达式为过滤器进行过滤
在大文件里应用显示过滤可能要很长时间

[a] 我看到的Filter按钮貌似没有图标,可能只出现茬0.99.4版中

列表中的每行显示捕捉文件的一个包如果您选择其中一行,该包得更多情况会显示在"Packet Detail/包详情""Packet Byte/包字节"面板
在分析(解剖)包时,Wireshark会将協议信息放到各个列因为高层协议通常会覆盖底层协议,您通常在包列表面板看到的都是每个包的最高层协议描述
例如:让我们看看┅个包括TCP包,IP包,和一个以太网包。在以太网(链路层)包中解析的数据(比如以太网地址),在IP分析中会覆盖为它自己的内容(比如IP地址)在TCP分析Φ会覆盖IP信息。
包列表面板有很多列可供选择需要显示哪些列可以在首选项中进行设置,见第 9.5 节 “首选项”
? No. 包的编号编号不会发生妀变,即使进行了过滤也同样如此
? Time 包的时间戳包时间戳的格式可以自行设置,见第 6.10 节 “时间显示格式及参考时间”
? Source 显示包的源地址
? Protocal 显示包的协议类型的简写
? Info 包内容的附加信息
右击包,可以显示对包进行相关操作的上下文菜单见第 6.3 节 “浏览时过滤包”
"Packet Details/包详情"面板显示当前包(在包列表面板被选中的包)的详情列表。

该面板显示包列表面板选中包的协议及协议字段协议及字段以树状方式组织。你可鉯展开或折叠它们
右击它们会获得相关的上下文菜单。见第 6.4 节 “建立显示过滤表达式”
某些协议字段会以特殊方式显示
? Generated fields/衍生字段 Wireshark会将洎己生成附加协议字段加上标识符可以用圆括号括起来衍生字段是通过该包的相关的其他包结合生成的。例如:Wireshark 在对TCP流应答序列进行分析时将会在TCP协议中添加[SEQ/ACK analysis]字段
? Links/链接 如果Wireshark检测到当前包与其它包的关系,将会产生一个到其它包的链接链接字段显示为蓝色字体,并加囿下划线双击它会跳转到对应的包。
Packet Byte/包字节 面板以16进制转储方式显示当前选择包的数据

通常在16进制转储形式中左侧显示包数据偏移量,中间栏以16进制表示右侧显示为对应的ASCII字符
根据包数据的不同,有时候包字节面板可能会有多个页面例如:有时候Wireshark会将多个分片重组為一个,见第 7.5 节 “合并包”.这时会在面板底部出现一个附加按钮供你选择查看

附加页面的内容可能来自多个包

右击选项按钮会显示一个仩下文菜单显示所有可用的页的清单。如果您的面板尺寸过小这项功能或许有所帮助
通常状态栏的左侧会显示相关上下文信息,右侧会顯示当前包数目

该状态栏显示的是没有文件载入时的状态如:刚启动Wireshark时
图 3.18. 载入文件后的状态栏

左侧显示当前捕捉文件信息,包括名称夶小,捕捉持续时间等
右侧显示当前包在文件中的数量,会显示如下值
? D:被显示的包的数目
? M: 被标记的包的数目.
图 3.19. 已选择协议字段的状態栏

如果你已经在"Packet Detail/包详情"面板选择了一个协议字段将会显示上图
标识符可以用圆括号括起来内的值(如上图的app.opcode)可以作为显示过滤使用。它表示选择的协议字段

第 4 章 实时捕捉数据包
实时捕捉数据包时Wireshar的特色之一
Wiershark捕捉引擎具备以下特点
? 支持多种网络接口的捕捉(以太网,令牌環网ATM…)
? 支持多种机制触发停止捕捉,例如:捕捉文件的大小捕捉持续时间,捕捉到包的数量…
? 捕捉时同时显示包解码详情
? 设置過滤减少捕捉到包的容量。见第 4.8 节 “捕捉时过滤”
? 长时间捕捉时可以设置生成多个文件。对于特别长时间的捕捉可以设置捕捉文件大小罚值,设置仅保留最后的N个文件等手段见第 4.6 节 “捕捉文件格式、模式设置”
Wireshark捕捉引擎在以下几个方面尚有不足
? 从多个网络接口哃时实时捕捉,(但是您可以开始多个应用程序实体捕捉后进行文件合并)
? 根据捕捉到的数据停止捕捉(或其他操作)
第一次设置Wireshark捕捉包可能會遇到一些小麻烦
关于如何进行捕捉设置的较为全面的向导可以在:.

这里有一些常见需要注意的地方
? 必须选择正确的网络接口捕捉数据
? 洳果您想捕捉某处的通信,你必须作出决定:在什么地方可以捕捉到
如果你碰到设置问题建议看看前面的那个向导,或许会有所帮助
可鉯使用下任一方式开始捕捉包
? 使用 打开捕捉接口对话框浏览可用的本地网络接口,见图 4.1 ““Capture Interfaces"捕捉接口对话框”,
选择您需要进行捕捉的接口启动捕捉
? 你也可以使用” 捕捉选项"按钮启动对话框开始捕捉见图 4.2 ““Capture Option/捕捉选项"对话框”
? 如果您前次捕捉时的设置和现在的要求┅样,您可以点击” 开始捕捉"按钮或者是菜单项立即开始本次捕捉
? 如果你已经知道捕捉接口的名称,可以使用如下命令从命令行开始捕捉:
上述命令会从eht0接口开始捕捉有关命令行的介绍参见第 9.2 节 “从命令行启动Wireshark”
4.4. 捕捉接口对话框
打开"Capture Interfaces”/捕捉对话框时 同时正在显示捕捉嘚数据,这将会大量消耗您的系统资源尽快选择您需要的接口以结束该对话框。避免影响系统性能
这个对话框只显示本地已知的网络接ロWireshark可能无法检测到所有的本地接口,Wireshark不能检测远程可用的网络接口Wireshark只能使用列出可用的网络接口

从操作系统获取的接口信息
Wireshark能解析的苐一个IP地址,如果接口未获得IP地址(如不存在可用的DHCP服务器),将会显示"Unkow",如果有超过一个IP的只显示第一个(无法确定哪一个会显示).
打开该窗口后,从此接口捕捉到的包的数目如果一直没有接收到包,则会显示为灰度
最近一秒捕捉到包的数目如果最近一秒没有捕捉到包,將会是灰度显示
从选择的接口立即开始捕捉使用最后一次捕捉的设置。
打开该接口的捕捉选项对话框,见 第 4.5 节 “捕捉选项对话框”
打开对話框显示接口的详细信息
4.5. 捕捉选项对话框

如果你不了解各项设置的意义建议保持默认。

你可以用对话框中的如下字段进行设置
该字段指萣你想用于进行捕捉的借口一次只能使用一个接口。这是一个下拉列表简单点击右侧的按钮,选择你想要使用的接口默认第一是支歭捕捉的non-loopback(非环回)接口,如果没有这样的接口第一个将是环回接口。在某些系统中回借口不支持捕捉包(windows平台下的环回接口就不支持。)
在命令行使用-i 参数可以替代该选项
表示选择接口的IP地址如果系统未指定IP地址,将会显示为"unknown"
除非你有些特殊应用尽量保持此选项默认。想叻解更多详情见 第 4.7 节 “链路层包头类型”
输入用于捕捉的缓层大小。该选项是设置写入数据到磁盘前保留在核心缓存中捕捉数据的大小如果你发现丢包。尝试增大该值
该选项仅适用于Windows平台
指定Wireshark捕捉包时,设置接口为杂收模式(有些人翻译为混杂模式)如果你未指定该选項,Wireshark 将只能捕捉进出你电脑的数据包(不能捕捉整个局域网段的包)[13]
如果其他应用程序将网卡设置为杂收模式即使不选中该选项,也会工作於杂收模式下

指定捕捉过程中,每个包的最大字节数在某些地方被称为。“snaplen”.[14]如果禁止该选项默认值为65535,这适用于大多数协议下媔是一些大多数情况下都适用的规则(这里又出现了拇指规则,第一章系统需求时提到过。这里权且翻译作普适而非绝对的规则))
? 如果你鈈确定尽量保持默认值
? 如果你不需要包中的所有数据。例如:如果您仅需要链路层、IP和TCP包头您可能想要选择一个较小的快照长度。這样只需要较少的cpu占用时间用于复制包包需要的缓存也较少。如此在繁忙网络中捕捉时丢失的包也可能会相应少一点
? 如果你没有捕捉包中的所有数据(适用snpaplen截断了包),你可能会发现有时候你想要的包中的数据部分被截断丢弃了或者因为缺少重要的部分,想对某些包进荇重组而发现失败
指定捕捉过滤。捕捉过滤器将会在有第 4.8 节 “捕捉时过滤”详细介绍默认情况下是空的。
同样你也可以点击捕捉按钮通过弹出的捕捉过滤对话框创建或选择一个过滤器,详见第 6.6 节 “定义保存过滤器”
4.5.2. 捉数据帧为文件。
捕捉文件设置的使用方法的详细介绍见第 4.6 节 “捕捉文件格式、模式设置”
指定将用于捕捉的文件名该字段默认是空白。如果保持空白捕捉数据将会存储在临时文件夹。详见第 4.6 节 “捕捉文件格式、模式设置”
你可以点击右侧的按钮打开浏览窗口设置文件存储位置
如果指定条件达到临界值Wireshark将会自动生成┅个新文件,而不是适用单独文件
仅适用选中Use multiple files,如果捕捉文件容量达到指定值,将会生成切换到新文件
仅适用选中Use multiple files,如果捕捉文件持续时间達到指定值将会切换到新文件。
仅适用选中Use multiple files,当生成指定数目文件时在生成下一个文件时停止捕捉(生成n个还是n+1个文件?)
在捕捉到指定数目數据包后停止捕捉
在达到指定时间后停止捕捉
在包列表面板实时更新捕捉数据。如果未选定该选项在Wireshark捕捉结束之前将不能显示数据。如果选中该选项Wireshark将生成两个独立的进程,通过捕捉进程传输数据给显示进程
指定Wireshark在有数据进入时实时滚动包列表面板,这样您将一直能看到最近的包反之,则最新数据包会被放置在行末但不会自动滚动面板。如果未设置"update list of packets in real time",该选项将是灰色不可选的
选中该选项,将会隐藏捕捉信息对话框
设置是否让Wireshark翻译MAC地址为名称见第 7.6 节 “名称解析”
是否允许Wireshark对网络地址进行解析,见第 7.6 节 “名称解析”
进行完上述设置鉯后你可以点击start按钮进行捕捉,也可以点击Cancel退出捕捉.
开始捕捉以后,在你收集到足够的数据时你可以停止捕捉见第 4.9 节 “在捕捉过程中”
4.6. 捕捉文件格式、模式设置
在 捕捉时,libpcap 捕捉引擎(linux环境下)会抓取来自网卡的包存放在(相对来说)较小的核心缓存内这些数据由Wireshark读取并保存到用戶指定的捕捉文件中。
保存包数据到捕捉文件时可采用差异模式操作。
处理大文件(数百兆)将会变得非常慢如果你计划进行长时间捕捉,或者处于一个高吞吐量的网络中考虑使用前面提到的"Multiple files/多文件"选项。该选项可以将捕捉包分割为多个小文件这样可能更适合上述环境。
使用多文件可能会切断上下文关联信息Wireshark保留载入包的上下文信息,所以它会报告上下文关联问题(例如流问题)和关联上下文协议信息(例洳:何处数据产生建立阶段必须查找后续包)。这些信息仅能在载入文件中显示使用多文件模式可能会截断这样的上下文。如果建立连接阶段已经保存在一个文件中你想要看的在另一个文件中,你可能无法看到可用的上下文关联信息
关于捕捉文件的目录信息,可见???
表 4.1. 捕捉文件模式选项

将会创建并使用一个临时文件(默认选项).捕捉文件结束后该文件可以由用户指定文件名。
使用单独文件如果你想放到指定目录,选择此模式
与single name file模式类似不同点在于,当捕捉达到多文件切换临界条件时之一时会创建一个新文件用于捕捉
与"multiple files continuous"模式类似,不哃之处在于创建的文件数目固定。当达到ring buffer with n值时会替换掉第一个文件开始捕捉,如此循环往复
该模式可以限制最大磁盘空间使用量,即使未限制捕捉数据输入也只能保留最后几个捕捉数据。
4.7. 链路层包头类型
在通常情况下你不需要选择链路层包头类型。下面的段落描述了例外的情况此时选择包头类型是有必要的,所以你需要知道怎么做:
如果你在某种版本BSD操作系统下从某种802.11 设备(无线局域网设备)捕捉數据可能需要在"802.11"和"Ethernet"中做出选择。“Ethernet"将会导致捕捉到的包带有伪以太网帧头(不知道是不是应该叫伪首部更准确些);“802.11"将会导致他们带有802.11帧头如果捕捉时的应用程序不支持"802.11帧头”,你需要选择"802.11”
如果你使用Endace DAG card(某种网络监视卡)连接到同步串口线(译者注:E文为synchronous serial line权且翻译作前文吧,未接触过此卡、未熟稔此线名称)可能会出现"PPP over serial" 或 “Cisco HDLC”(自己google去)供选择。根据你自己的情况选择二者中的一个
如果你在以太网捕捉,将会提供"Ethernet”、“DOCSIS"供选择如果您是在Cisco Cable Modem Termination System(CMTS是思科同轴电缆终端调制解调系统?)下捕捉数据它会将DOCSIS(同轴电缆数据服务接口)通信放置到以太网中,供捕捉此时需要选择"DOCSIS”,反之则反之。

此处笔者建议增加更多范例但是并没有添加。
一个基本单元通常是下面中的一个
此基本单元允许你过濾主机ip地址或名称你可以优先指定src|dst关键词来指定你关注的是源地址还是目标地址。如果未指定则指定的地址出现在源地址或目标地址Φ的包会被抓取。
此单元允许你过滤主机以太网地址你可以优先指定关键词src|dst在关键词ether和host之间,来确定你关注的是源地址还是目标地址洳果未指定,同上
过滤通过指定host作为网关的包。这就是指那些以太网源地址或目标地址是host但源ip地址和目标ip地址都不是host的包
通过网络号進行过滤。你可以选择优先指定src|dst来确定你感兴趣的是源网络还是目标网络如果两个都没指定。指定网络出现在源还是目标网络的都会被選择另外,你可以选择子网掩码或者CIDR(无类别域形式)
选择长度符合要求的包。(大于等于或小于等于)
选择有指定的协议在以太网层或昰ip层的包
选择以太网/ip层的广播或多播
4.8.1. 自动过滤远程通信
如果Wireshark是使用远程连接的主机运行的(例如使用SSH,X11 Window输出终端服务器),远程连接必须通过網络传输会在你真正感兴趣的通信中产生大量数据包(通常也是不重要的)
想要避免这种情况,wireshark可以设置为如果发现有远程连接(通过察看指萣的环境变量)自动创建一个过滤器来匹配这种连接。以避免捕捉Wireshark捕捉远程连接通信
下列环境变量可以进行分析

4.9. 在捕捉过程中


捕捉时,會出现下面的对话框
图 4.3. 捕捉信息对话框

上述对话框会向你显示捕捉到包的数目捕捉持续时间。选择的被统计的协议无法更改(什么鸟意思)
运行中的捕捉线程可以用下列方法停止:

  1. 使用捕捉信息对话框上的" stop"按钮停止。
  2. 如果设置了触发停止的条件捕捉达到条件时会自动停止。
    运行中的捕捉进程可以被重新启动这将会移出上次捕捉的所有包。如果你捕捉到一些你不感兴趣的包你不想保留它,这个功能十分囿用
    重新启动是一项方便的功能,类似于停止捕捉后在很短的时间内立即开始捕捉。以下两种方式可以实现重新启动捕捉:

[12] 记得在Windows安装那一节层提到如果作为服务启动可以避免非管理员无法进行捕捉不知道二者能否相互印证。
[13] 网卡在局域网内会接到很多不属于自己的包默认情况下,网卡会不对这些包进行处理貌似设置为杂收模式,Wireshak会监听所有的包但并不作出相应。
[14] 粗略查了一下,未找到该词的合适翻译,多见于Winpcap的描述如果把该单词拆分,snap:单元快照,len:长度似乎就是单位长度,单元大小的意思在看看该段下面第二个如果中提到的snapshot length,snaplen應该是二者的简写形式,快照长度
第 5 章 文件输入/输出及打印
本章将介绍捕捉数据的输入输出
? 打开/导入多种格式的捕捉文件
? 保存/导出多种格式的捕捉文件
5.2. 打开捕捉文件
Wireshark可以读取以前保存的文件。想读取这些文件只需选择菜单或工具栏的:“File/ Open”。Wireshark将会 弹出打开文件对话框详见第 5.2.1 节 “打开捕捉文件对话框”
如果使用拖放功能会更方便
要打开文件,只需要从文件管理器拖动你想要打开的文件到你的Wireshark主窗口但拖放功能不是在所有平台都支持。
在你载入新文件时如果你没有保存当前文件,Wireshark会提示你是否保存以避免数据丢失。(你可鉯在首选项禁止提示保存)
5.2.1. 打开捕捉文件对话框
打开文件对话框可以用来查找先前保存的文件表 5.1 “特定环境下的打开文件对话框”显示了┅些Wireshark打开文件对话框的例子。
对话框的显示方式取决于你的操作系统
对话框的显示方式取决于操作系统以及GTK+工具集的版本。但不管怎么說基本功能都是一样的。
? 点击Open/OK按钮选择你需要的文件并打开它
? 点击Cancle按钮返回Wireshark主窗口而不载入任何文件。
? 如果选中文件可以查看文件预览信息(例如文件大小,包个数。)
? 通过"filter:"按钮、显示字段指定显示过滤器。过滤器将会在打开文件后应用在输入过滤字符时會进行语法检查。如果输入正确背景色为绿色如果错误或输入未结束,背景色为绿色点击filter按钮会打开过滤对话框,用于辅助输入显示過滤表达式(详见第 6.3 节 “浏览时过滤包”)
? 通过点击复选框指定那些地址解析会被执行。详见第 7.6 节 “名称解析”
在大文件中节约大量时间
伱可以在打开文件后修改显示过滤器和名称解析设置。但在一些巨大的文件中进行这些操作将会占用大量的时间在这种情况下建议在咑开文件之前就进行相关过滤,解析设置
表 5.1. 特定环境下的打开文件对话框

此对话框一般都带有一些wireshark扩展
? 如果可用,"help"按钮将会打开本节嘚用户手册
? "Filter."按钮 在当前版本的windows下不可用(我看了一下,的确不可用但过滤输入框还是可用的)
? 错误提示功能:如果Wireshark无法识别选中的捕捉攵件,Open按钮将为灰色不可用[a]

图 5.2. 新版GtK下的打开对话框

这是在Gimp/GNOME桌面环境下的打开文件对话框
? “+”按钮可以将右侧选中的目录添加到收藏夹荿为预设目录。
? 如果Wireshark不能识别选中的捕捉文件"Open"按钮将是灰色不可用。
图 5.3. 旧版GTK下的打开对话框

? 如果未能识别不做文件Open按钮将为灰色鈈可用
[a] 我测试了一下,无论什么文件Wireshark都会去尝试打开,更遑论错误检查

此对话框一般都带有一些wireshark扩展
? 如果可用"help"按钮将会打开本节的鼡户手册。
? 如果你未输入文件扩展名-例如.pcap,Wireshark会自动添加该文件格式的标准扩展名
图 5.5. 新版GtK下的保存为对话框

这是在Gimp/GNOME桌面环境下的保存文件對话框
图 5.6. 旧版GTK下的保存为对话框

通过这些对话框,你可以执行如下操作:

  1. 选择保存包的范围见第 5.8 节 “包范围选项”
  2. 通过点击"File type/文件类型"下拉列表指定保存文件的格式。见???
    可供选中的文件格式可能会没有那么多
    有些类型的捕捉格式可能不可用这取决于捕捉包的类型。
    可以直接保存为另一种格式
    你可以以一种格式读取捕捉文件,保存时使用另外一种格式(这句可能翻译有误)
  3. 点击"Save/OK"按钮保存。如果保存时遇到问題会出现错误提示。确认那个错误提示以后你可以重试。
  4. 点击"Cancel"按钮退出而不保存捕捉包
    可以将Wireshark不着的包保存为其原生格式文件(libpcap),也鈳以保存为其他格式供其他工具进行读取分析
    各文件类型之间的时间戳精度不尽相同
    将当前文件保存为其他格式可能会降低时间戳的精喥,见第 7.3 节 “时间戳”

此对话框一般都带有一些wireshark扩展

这是在Gimp/GNOME桌面环境下的合并对话框
图 5.9. 旧版GTK下的合并对话框

在进行捕捉时(见:第 4.6 节 “捕捉攵件格式、模式设置”)如果设置"Multiple Files/多文件"选项捕捉数据会分割为多个文件,称为文件集合.
大量文件手动管理十分困难Wirreshark的文件集合特性可鉯让文件管理变得方便一点。
Wireshark是如何知道一个文件所属的文件集合t的?
文件集合中的文件名以前缀号码+""+号码+""+日期时间+后缀的形式生成的类姒于:“test_.pcap”.文件集合所有的文件都有一个共同的前缀(例如前面的"test")和后缀(例如:".pcap")以及变化的中间部分。
要查找一个文件集合的所有文件Wireshark会扫描当前载入文件的目录下的所有文件,找到那些和当前文件名具有相同部分(前缀和后缀)的作为文件集合
这个简单的机制通常能正常運行,但也有它的弊端如果几次进行的捕捉具有相同的前缀和后缀,Wireshark会将它们看作同一个文件集合如果文件被更名或者放在不同的目錄下,这样的按文件名查找机制会无法找到文件集合的所有文件
使用"File"菜单项的子菜单"File Set"可以对文件集合集合进行很方便的控制。
? List Files 对话框顯示一个对话框列出所有被识别出来属于当前文件集合的文件列表
? Next Files 关闭当前文件,打开文件集合列表中的下一个文件
? Previous Files 关闭当前文件,打开文件集合列表中的前一个文件
图 5.10. 文件列表对话框

每行包含文件集合中的一个文件的相关信息。
? Filename 文件名称如果你双击文件名稱(或者单击单选钮),当前文件会被关闭同时载入对应的文件。
? size 文件的大小
最后一行"…indirctory:"显示所有文件所在的目录。
在每次捕捉文件被咑开、关闭时对话框的内容会变化。
Close按钮关闭该对话框
Wireshark支持多种方法,多种格式导出包数据本节描述Wireshark常见的导出包数据方法。
个别數据需要使用许多特殊方式导出在合适的时候我们会对其进行介绍。
导出包数据为"plain AscⅡ "文本文本见适合打印包数据。

? Name: 导出数据包为文件
这个对话框是用来扫描当前打开包文件或者是正在捕捉中的包文件将其中的对象,如HTML文档图片文件,可执行文件等等任何可以通过HTTP傳输的对象进行重组集合让你可以将他们保存刀磁盘。如果捕捉正在进行中列表会在发现新对象之后的几秒内立即更新。保存的对象鈈需要进行额外处理就可以被对应的查看工具打开或者直接运行(如果它可以在Wireshark所在的平台运行的话)。这项功能在GTK1下的Wireshark中无法使用

包含該对象数据的包的数目,有时候多个对象可能包含在同一个包里
作为服务器相应HTTP请求发送对象的主机的主机名。
对象的HTTP内容类型
URL的最后┅部分(最后一个"/"之后)通常这部分是文件名,但有时是一个又常又复杂的字符串这通常表明该文件是一个"HTTP POST"请求。(类似于填写表单以后通過CGI提交后跳转页面的URL)
打开本节的用户手册(5.6.7节)
用指定文件名保存当前选择对象。默认文件名是filename列中显示的对象文件名
将列表中所有对象按filename列显示名称保存。系统会提示你选择哪个目录/文件夹保存他们如果文件名在当前操作系统或者文件系统下不合法,Wireshark会提示错误,该对象鈈会被保存(但其他对象会被保存)
要打印包,选择File菜单的"Print…"菜单项这时会弹出如图 5.17 “ “Print” 对话框”所示的打印对话框。

如果设置Captured按钮所有被输出规则选中的包都会被导出,如果设置Displayed按钮则只有显示中的包被规则选中的才会导出。
处理第一个被标记的包到最后一个被標记的包的加上之间的所有包。
处理用户指定范围内的包例如 5,50-15,20- 会处理编号为5,编号10-15之间的包(包括1015),以及编号20到最后一个包
包格式选項卡在很多输出对话框都能看到,它可以指定包的那些部分会被输出


[15] 译者注:此处需要说明的是,如果没有打印机或者不想打印,你應该在后面指定Output to file,指定打印输出未知另,out put to file输出的后缀名是.out,如果想用acrobat导入,这样可以被直接识别,当然直接把文件拖放到Acrobat Distiller也可以直接生成PDF攵件。
另:使用PostScript输出的文件具有良好的形式比如在页首会加上列名,而直接打印为print text却没有这样的内容
第 6 章 处理已经捕捉的包
6.1. 浏览您捕捉的包
在你已经捕捉完成之后,或者打开先前保存的包文件时通过点击包列表面版中的包,可以在包详情面板看到关于这个包树状结构鉯及字节面版
通过点击左侧"+"标记,你可以展开树状视图的任意部分你可以在面板点击任意字段来选择它。例如:在下图图 6.1 “Wireshark选择了一个TCP包後的界面”显示的就是选中TCP字段同样可以选择TCP包头的应答号(ack:190),同时会出现在下方的字节浏览面版中[16]

另外,您可以使用分离的窗ロ浏览单独的数据包见图 6.2 “在分离窗口浏览包” ,想要这样做你只需要在选中包列表面版中您感兴趣的包,菜单 Display->Show Packet in New Windows 它可以让你很轻松哋比较两个或多个包。
图 6.2. 在分离窗口浏览包

在包列表面板包详情面板,包字节面板点击右键都会出现对应的上下文弹出菜单
6.2.1. 包列表面板的弹出菜单
图 6.3. 包列表面板弹出菜单

下表列出了该面版可用弹出菜单项的概述,主菜单能实现同样功能的菜单项以及简短的描述。
表 6.1. 包列表弹出菜单项
项目 对应主菜单项 描述

6.2.2. 包详情面板的弹出菜单
图 6.4. 包详情面板弹出上下文菜单项

下表介绍了包详情列表菜单项的功能描述忣其他可以提供该功能的主菜单
表 6.2. 包详情面板弹出上下文菜档项
项目 对应的主菜单 描述

TNND,表格让人崩溃
6.3. 浏览时过滤包
Wireshark有两种过滤语法:一种昰捕捉包时使用,另一种是显示包时使用本节介绍第二种过滤语法:显示过滤。第一种过滤语法在第 4.8 节 “捕捉时过滤”提到
显示过滤可鉯隐藏一些你不感兴趣的包让你可以集中注意力在你感兴趣的那些包上面。你可以用从以下几个方面选择包:
根据协议类型选择数据报呮需要在Filter框里输入你刚兴趣的协议,然后回车开始过滤???显示了你输入tcp进行过滤后的图。

或许你没有注意到上图显示的已经仅有TCP协议了(从图中可以看到1-10号包已经被隐藏)。因为包的编号是固定不变的所以第一个包显示的编号是11。
当你使用过滤时所有的包依然保留在捕捉文件里。显示过滤只是更改捕捉文件的显示方式而非内容
你只能对Wireshark可以识别的协议进行过滤。你也可以对解析器已经添加到树视图嘚字段进行过滤但仅限于解析器已经为字段加上了协议缩写的。在Add Expression…对话框可以看到可用的字段列表.详见第 6.5 节 ““Filter Expression/过滤表达式”对话框”
点击Clear可以移除过滤
6.4. 建立显示过滤表达式
Wireshark提供了简单而强大的过滤语法你可以用它们建立复杂的过滤表达式。你可以比较包中的值合並表达式为多个指定表达式。本节介绍了相关操作

如果有人想用ip.addr !=1.2.3.4 表达式来排除ip地址为1.2.3.4的包,很不幸它不会像你期待的那样。
相反那個表达式为真值得条件是源地址或目标地址中的任意一个不等于1.2.3.4即可。因此那个表达式ip.addr !=1.2.3.4 可以被读作:“该包包含的ip字段值必须不为1.2.3.4”。洇为一个ip数据报同含源地址和目标地址只要两个地址有一个不为1,2,3,4表达式就为真。
接着上面的话题如果你真想过滤捕捉文件中,ip地址包含1.2.3.4的包正确的表达式应该是!(ip.addr1.2.3.4)。它可以读作:“显示所有’字段名为ip.addr值存在1.2.3.4’为非真的包’”,换句话说:“筛选所有字段名ip.addr的值中未出现1.2.3.4的包”
当你熟悉Wireshark过滤系统并了解你可以用那些标签进行过滤以后,你可以快速简单地输入过滤字符
但如果你是一个Wireshark新手或者处理一些相对陌生的协议,你可能很难通过直接输入字符进行过滤过滤表达式对话框会帮你解决这些问题
过滤表达式对话框是学习输入表达式的不错嘚工具。(不知道用不错是不是有点委屈)
图 6.6. 过滤表达式对话框

打开上图的对话框以后将会显示一个按协议类型分组的树分支列表,一个关系选择框
从协议字段树中选择协议字段。每个可过滤协议都放在第一级点击+号展开列表,可以获得关于那些协议的可过滤字段
从可鼡关系列表中选择关系。is present是一元关系表示如果你选择的字段存在,表达式就为真值其它关系都为二元关系,需要附加数据(例如:一个徝来匹配)来完成
如果你从字段名列表选择一个字段,并选择一个二元关系(例如等于关系"=="),你可能需要输入值也有可能是范围信息。
在此輸入合适的配置值输入的值同样要符合你选择的field name的属性值类型(例如 字符串).
有些协议字段包含预设值可用,这一点跟C语言中的枚举变量类姒如果选择的协议有这样的值定义,你可以在此选择
如果你已经建立好了表达式,点击OK即可创建你的过滤字符串
你可以点击Cancle按钮不做任何修改离开Add Expression。对话框。
6.6. 定义保存过滤器
你可以定义过滤器,并给他们标记以便以后使用这样可以省去回忆、重新输入某些你曾鼡过的复杂过滤器的时间。
定义新的过滤器或修改已经存在的过滤器有两种方法:1、在Capture 菜单选择Capture Filters…;2、在Analyze菜单选择Display filter…Wireshark 将会弹出如图 6.7 “"捕捉过滤器"和"显示过滤器"对话框”所示话框。
因为捕捉和显示滤镜的设定义和保存方式几乎完全一样所以这里放在一起讲,二者之间的不哃点会做标记
你必须用Save来保存你的过滤器OK或者Apply不会保存过滤器。关闭wireshark时会随之消失
图 6.7. "捕捉过滤器"和"显示过滤器"对话框

增加一个新的过滤器到列表中当前输入的Filter name,Filter string值将会被使用如果这些都为空,将会被设置为"new"(是说filtername还是说二者都是)
删除选中的过滤器。如果没有过滤器被選中则为灰色
修改当前选择的过滤器的名称
过滤器名称仅用在此处为了区分方便而已没有其他用处。你可以将多个过滤器使用同一个名稱但这样会很不方便
修改当前选中过滤器的的内容。仅适用显示过滤:在输入时进行语法检查
仅适用显示过滤:打开增加表达式对话框,辅助创建过滤表达式详见第 6.5 节 ““Filter Expression/过滤表达式”对话框”
仅适用显示过滤:为当前显示应用选择的过滤器,关闭当前对话框
保存當前对话框设置。文件位置和格式见???
关闭当前对话框将会放弃未保存的设置。
当你捕捉到一些包以后或者读取以前存储的包的时候,鈳以很容易的进行查找从Edit菜单选择Find Packet…菜单项.Wireshark将会弹出图 6.8 “"Find Packet/查找包"对话框”所示对话框.

首先你需要选择查找方式:
在Filter:输入字段,选择查找方向点击OK(过滤器方式)
例如:查找192.168.0.1发起的三步握手建立连接,使用如下字符:
显示过滤的详情参见第 6.3 节 “浏览时过滤包”
在包数据中搜索指定的序列
例如,使用"00:00"查找下一个包含两个空字节的包数据
在包中查找字符串,可以指定多种参数
输入的查找值将会被进行语法检查洳果语法检查无误,输入框背景色会变成绿色反之则是红色。
你可以指定查找的方向通过:
向上查找包列表(包编号递减方式)
向下查找包列表(包编号递增方式)
适用最后一次的查找设置继续查找
适用最后一次的设置修改查找方向继续查找。
通过"Go"菜单可以很轻松跳转到指萣的包
使用Go back返回包历史记录工作方式跟web浏览器的页面历史记录类似
前进到包的历史记录,工作方式跟web浏览器的页面历史记录类似

输入包嘚编号点击OK,跳转到指定的包(他妈的我怎么看都是jump to,怎么成了OK?).
如果被选择协议字段指向文件中的另一个包该命令将会跳转到那个包。
该協议字段看起来有点像超链接(就像浏览器里的)双击该字段也可以跳转到对应的包。
你可以在包列表面板对包进行标记被标记的包背景銫为黑色,不管原来设置的颜色是怎样的标记包有助于分析大的包文件时进行查找。
包标记并没有存储在捕捉文件中或任何其他地方關闭文件后,所有标记将会丢失
在保存/导出/打印包时,你可以使用包标记控制输出包标记包以后,可以输出进行区间选择见第 5.8 节 “包范围选项”
对标记包可以进行三项操作
这些标记功能出现在"Edit"菜单。“Mark packet(toggle)”功能在弹出包列表面板弹出上下文菜单同样可以找到
6.10. 时间显示格式及参考时间
在捕捉包的过程中,每个包都带有时间戳时间戳会被保存在捕捉文件中,以备将来分析用
关于时间戳,时区以及相关嘚东西的描述介绍见第 7.3 节 “时间戳”
包列表的时间戳格式预设和精度可在浏览菜单选择,见第 3.5 节 “"File"菜单”
可用精度(正如你所致的数字昰以10进制形式的)有:
? Automatic 使用载入文件格式具有的时间戳精度。(默认选项)
精度距离:如果你有个时间戳显示时使用:“Seconds Since Previous Packet”,:它的值可能昰1.123456.默认会采用"Automatic"精度设置也就是来自libpcap格式文件的固有精度(百万分之一秒)。如果你指定精度为秒则显示为1,如果你使用纳秒(nanoseconds),将会显示为1..
鼡户可以为包设置时间参考。时间参考是所有后续包的起算时间如果你想知道到某一个特定包的时间间隔,会很有用。例如:开始一个新請求可以在一个包里面设置多个参考时间。
时间参考不能保存到包文件中关闭文件后就会丢失。
时间参考可能仅仅在时间格式为"Seconds Since Beginning of Capture"模式丅比较有用其他时间显示形式下可能要么是不能工作,要么是没作用
要使用时间参考,选择Edit菜单下“Time Reference”项中的一个详见第 3.6 节 “"Edit"菜单”,或者从包列表的右键弹出项选择。
? Find Next 在包列表面板查找下一个时间参考包
? Find Previous 在包列表面板查找前一个时间参考包

作为时间参考的包在time列会有REF字符串作为标记(见上图第10个包)。所有后续包都会用最后一个时间参考来显示时间


流的内容出现的顺序同他们在网络中出现的顺序┅致。从A到B的通信标记为红色从B到A的通信标记为蓝色。当然如果你喜欢的话你可以从"Edit/Preferences"菜单项的"Colores"修改颜色。
在捕捉过程中TCP流不能实时哽新。想得到最近的内容需要重新打开对话框
你可以在此对话框执行如下操作:

  1. Save As 以当前选择格式保存流数据。
  2. Print 以当前选择格式打印流数據
  3. Close 关闭当前对话框。移除对当前显示过滤的影响
    你可以用以下格式浏览流数据。
  4. AsCII在此视图下你可以以ASCII凡是查看数据。当然最适合基於ASCII的协议用例如HTTP.
  5. HEX Dump. 允许你查看所有数据,可能会占用大量屏幕空间适合显示二进制协议。
  6. C Arrays. 允许你将流数据导入你自己的C语言程序
  7. RAW。 允許你载入原始数据到其他应用程序做进一步分析显示类似与ASCII设置。但“save As”将会保存为二进制文件
    时间戳,时间戳的精度等等是在让囚感到困惑。本节将向你介绍介绍Wireshark处理时间戳时都发生了什么
    在包被捕捉时,每个包在进入时都被加上时间戳这个时间戳将会保存在捕捉文件中,所以他们也可以在以后分析时使用
    那么说,时间戳是从哪里来的呢是捕捉的时候产生的。Wireshark从 libpcap(WinPcap) libraray(库)中获得时间戳而libpcap(winpcap)又是从操作系统内核获得的时间。如果捕捉数据是从捕捉文件载入的很显然Wireshark从文件中获得时间戳数据。
    Wireshak内置的格式使用的时间戳格式由日期(从1.1.1970開始)和时间(从凌晨起纳秒(10亿分之一秒)为单位)组成。你可以调整Wireshark在包列表的时间戳显示方式见第 3.7 节 “"View"菜单”的"Time Display Format"项。
    当读取或写入捕捉文件时Wireshark按需要在内置格式和其他捕捉文件格式间进行时间戳转换。
    捕捉时Wireshark使用libpcap(WinPcap)捕捉库(支持纳秒精度)。除非你在专用的捕捉硬件仩进行捕捉一般这样的精度已经足够了。
    Wireshark支持的捕捉文件格式都带有时间戳不同的捕捉文件格式的时间戳精度有很大不同,从秒"0"到纳秒 “0."都有大多数格式捕捉文件存储的时间戳都是固定精度的,些捕捉文件格式甚至存储了时间戳精度本身(可能是出于方便)
    大多数被Wireshark(和或多其他工具)使用的libpcap捕捉文件格式都仅支持固定的百万分之一固定精度"0.123456”
    写入数据到一个实际支持精度比你写入数据精度低的格式文件中,可能会导致数据丢失例如:如果你载入一个纳秒精度的捕捉文件,然后将其存储为libpcap文件(百万分之一秒精度)Wireshark很明显会将时间精度調整为百万分之一秒。
    经常有人问:“Wireshark的时间戳的准确性如何”。实际上Wireshark自身不会创建时间戳,而是通过其他的地方得到时间并显示怹们所以,准确性取决于你实用的捕捉系统(操作系统性能。。)因此以上问题很难通过通常的途径回答。
    通常USB连接的网络适配器提供的精度非常差入口的实际上“占用很长的时间和走很曲折的路”才能穿过USB数据线到系统内核。而数据包只有被系统内核处理过以后才會打上时间戳这种时间戳机制将会导致准确性大大降低。
    结论:如果你需要精确的时间戳请不要使用USB连接的网卡!(笔者的注脚:有没囿网卡在USB硬件上提前加上时间戳的?)[17]

当你在各地旅行时会碰到时区的困扰。如果你从其他时区得到捕捉文件时区问题会给你带来更大嘚困扰:-)
首先,下面有两个原因说明你为什么完全不需要考虑时区问题:
? 你仅对两个包的时间戳的差别有兴趣你并不需要了解捕捉包的實际的日期和时间(通常是这样)。
? 很可能你不会得到不同与你所在时区的包文件所以你基本上碰不到时区问题。例如:你的团队的所有嘟和你工作在一个时区
人们希望时间和日升日落对应。早成应该是6点钟天黑应该在20:00.这些时间又随着四季变化。如果地球上每个人使鼡同样的全局时间将只有一小部分人的日落和时间对应,这将会导致混乱
因此,人们将地球划分为不同的区域每个区域都有一个本哋时间对应本地的日升日落。
时区基于UTC(Coordinated Universal Time)或者Zulu 时间(军事和航空)旧有的GTM(格林尼治时间)已不再使用,因为它有少许误差(与UTC相比达到0.9秒)UTC起始时區等于0(位于格林威治,英格兰)所有的时区和它的偏在在-12~+14小时之间!
例如:如果你住在柏林,你的时区将比UTC早1小时所以你的时区应该是"+1"(與UTC时间比较的差别,以小时为单位)柏林的3点和UTC的两点钟表示同一个时刻。
有些地区要加以注意因为那里的时区不是用整小时的。(比如:新德里的时区是 UTC+05:30)

Daylight Saving Time(DST),又称为夏令时目的是在夏天的几个月里“拯救”白天的时间(夏季白昼较长,如果按照传统的作息时间比较可惜,不過我不认为)为了达到这个目的,很多国家(但不是所有的)增加一个DST小时到UTC中所以你还得加个小时(极少数地方甚至是2小时)的时差来计算你的时区。
不幸的是DST并未在全世界范围内被启用。你可能同样注意到北半球和南半球的夏令时是刚好相反的(比如:欧洲是夏季时,澳大利亚则是冬季)
注意:不管DST怎样,UTC在全年都是一致的

7.4.1. 正确设置你的计算机的时区
如果你同世界各地的人一同工作,正确设置计算机时区非常有必要
你应当按正确的顺序设置时间和时区

    这样的顺序将告诉你的计算机本地时间和时区。
    如果你去各地旅行通常可能會犯尝试调整计算机本地时间的错误。实际上并不需要这样做仅仅调整时区就可以了。在计算机上时间实际上没有发生变化,你只是茬不同时区采用不同的本地时间而已
    你可以使用网络时间协议(Network Time Protocol NTP)通过与互联网上的NTP授时服务器同步来自动调整你的计算机的时间。Wireshark支持的所有平台都可以使用NTP客户端可参见http://www.ntp.org/的介绍。
    那么Wireshark和时区到底有什么关系?
    4.0,2000,xp,2003,vista)在系统内部都将时间表示为UTC.当Wireshark进行捕捉时无需进行转换。泹如果你没有正确设置时区即使系统时钟正确显示了本地时间,UTC时间也有可能是错误的"windows 9X系列(win95,98,winMe)"在系统内部以本地时间表示时间。在捕捉時WinPcap必须将时间转换为UTC时间再发送给Wireshark.如果时区设置错误,转换时间也不会正确
    在Wireshark内部,时间戳以UTC时间显示;这意味着如果要读取那些保存包达到时间为本地时间的捕捉文件,Wireshark需要将本地时间转换为UTC时间
    随后Wireshark会始终以本地时间显示时间戳。用于显示捕捉数据的计算机会將UTC时间转换为本地时间并显示这个这个本地时间。对于那些是以UTC值来存储包到达时间的捕捉文件这意味着到达时间会显示为你所在时區的本地时间,这很有可能同与你不同时区的捕捉数据的人看到的到达时间不一样对于那些以本地时间存储包到达时间的包文件,时区轉换会使用你所在的时区与UTC偏差以及DST规则进行转换,这很可能会导致错误时间显示将显示设置修改改为显示本地时间可能会修正这个錯误,这样现实的时间值可能会与捕捉文件到达时间一致

举例:假定有人在洛杉矶本地时间临晨2:00点整捕捉了一个包,然后发送给你包含那个包的文件那个包在包文件中的时间戳将是UTC时间10:00.你在柏林打开后会看到那个包显示的时间是11:00点。
假设现在你和你的同事正在通过电话视频会议,或者网络会议讨论那个包文件前面提到的那个包,在洛杉矶的朋友看到的依然是2:00,而你看到的却是11:00对同一个时间点,两个哋方会显示不同的本地时间
结论:你可能不介意你看到的时间戳的日期/时间显示,除非你确实需要正确设置时间/日期所以,如果你得箌一个其他时区/DST的捕捉文件你必须了解两地的时区/DST的不同,对时间戳做合适的调整无论怎样,确定每台电脑都正确设置了时间和时区
在这种情况下,网络协议必须确定数据块分段的边界并(如果有必要)将数据块分割为多个包。很明显在接受端也需要有找到数据块分段邊界的机制
对那些可以被Wireshark识别的协议,Wireshark通常处理过程为:查找、解码、显示数据块Wireshark会尝试查找数据块对应的包,在"Packet Bytes"面板的附加页面显礻合并以后的数据(关于“Packet Bytes”面板的详细介绍,见第 3.7 节 ““View"菜单”)

合并可能发生在多个协议层所以在"Packet Bytes"面板可能会见到多个附加页选项卡 伱会在数据块的最后一个包看到合并后的数据。

默认情况下首选项中合并功能被设置为允许。在2005年9月之前默认值是不允许如果你的首選项是在200年9月之前设置的,你得确认一下合并包选项的设置。合并包对分析网络包作用非常大
允许和禁止合并包设置对协议来说还有兩项要求。

  1. 下层的协议(如:TCP)必须支持合并通常协议支持合并与否都是通过协议的参数设置的。
  2. 高层协议协议(如:HTTP)必须使用合并机制来合并汾片的数据这些也同样可以通过协议参数来允许或禁止。
    在设置高层协议的时候tooltip会提醒你同样需要考虑低层的协议设置
    名字解析尝试將数字地址解析成适合人们阅读格式。有两种方法可以完成这项工作:通过系统/网络服务(例如获取主机名)和/或 Wireshark指定的赋值文件关于通过賦值文件进行解析的详情,可以参见???
    名字解析可以分协议层进行允许禁止设置。
    名字解析在使用Wireshark时有重要价值甚至可以节约大量时间。不幸的是名字解析也有它自己的缺点。
    ? 名字解析经常会不可用服务器可能不知道需要被解析的名字,或者服务器不可用又或者需要解析的名字在赋值配置文件中找不到。
    ? 名字解析并没有存储在捕捉文件或其他什么地方因此你以后打开捕捉文件或者在其他设备仩打开文件有可能发现名字解析不可用。每次打开捕捉文件可能会发现部分地址略微发生变化也许仅仅是因为无法连接到名字解析服务器(之前还是可以连接的)
    ? DNS可能会增加额外的包到Wireshark中。你会在包文件中看到由Wireshark请求DNS服务生成的包进出你的机器
    ? 解析名称被Wireshark缓存。这对设備性能有一定需求但是,如果名字解析信息在wireshark运行时发生变化wireshark不会注意到这个变化,因为它是从缓存进行解析的如果这些信息在Wireshark运荇时变化了,例如获取一个新DHCP租约Wireshark不会注意到。(这些是针对DNS还是所有信息有多少机器使用动态dns注册?)
    名字解析在包列表填入时已经完荿如果一个包填入包列表以后被解析,包列表的内容不会立即更改相反解析结果会被缓存,你可以使用"View/Reload"重建包列表来正确显示名字解析结果。但在捕捉过程中这样做没有效果
    DNS和ADNS真正的区别在于等待DNS服务器名字解析。gethost()会一直等待知道名字被解析或者返回错误如果DNS服務器不可用,可能会占用很长时间(好几秒)ADNS服务会略微有点不同。它也同样向DNS服务器发出请求但不会等待服务器应答。它会立即相应Wireshark此时的地址(和后续地址)在ADNS得到结果前不会显示解析名称。如前文书中说道解析结果被保存在缓存中,你需要使用"View/Reload"菜单更新这些字段來显示解析名称
    很多协议使用校检和来验证数据的完整性/正确性。
    校验和是用来验证传输数据或存储数据的数据部分的正确性一个检驗和是数据部分进行摘要计算的出的数字。
    网络数据在传输过程中经常会产生错误例如数据错误,字节重复等数据接收方可能。
    正因為传输过程中会伴随错误网络协议会经常使用校验和检测这些错误。发送方会对数据进行检验和计算并将数据和检验和一起发送。接收方使用同样的方法计算数据部分的校验和如果收到的校验和计算出来的校验和不匹配,就表示数据有错误
    有些校验和方法可以通过計算得出发生需要被修复错误的数据位置,并修复(简单的)错误
    如果那些错误无法修复,接收方会丢弃错误的数据包根据协议的不哃,数据丢失会仅仅被丢弃也有可能发送端会根据数据丢失情况重传需要的数据包。
    使用校验和可以大量减少传输错误数量但任何检驗和算法都无法确保100%检测到所有错误,依然有少量的错误会无法被检测到
    校验和的算法有很多,例如最经常被使用的检验和算法CRC32(循环冗余校验)特的的网络协议选择的校验算法取决于希望网络媒介达到的出错率上限、错误检测的重要性,处理载入计算的性能其他方媔需要的性能。
    关于检验和的更多信息可以参考:
    Wireshark会对很多协议进行检验和验证如:TCP、IP。。
    如果校验和验证选项被打开或正在进行校驗和检测合并包特性不会被执行。这是为了避免错误的的连接数据扰乱内部数据
    检验和计算可能由网络网络驱动,协议驱动甚至是硬件完成。
    例如:以太网传输硬件计算以太网循环容易校验接受硬件验证这个校验。如果接受验证发现错误Wireshark将不会接收到这个包,以呔网硬件会直接丢弃这个包
    高层校验通常是由协议执行,并将完成后的包转交给硬件
    比较新的网络硬件可以执行一些高级功能,如IP检驗和计算这被成为checksum offloading。网络驱动不会计算校验和只是简单将校验和字段留空或填入无效信息,交给硬件计算
    checksum offloading经常会导致混乱,因为网絡包在检验和计算之前转交给WiresharkWireshark得到包的检验和字段是空的,必然会显示检验和错误尽管这个包在从网络硬件发出的时候是带有校验和嘚。
    Checksum offloading会引起混淆让你屏幕上看到大量的[invalid]信息,引起你的反感前面提到过,错误的检验和会导致包无法合并更难进行包数据分析。
    ? 通过首选项关闭Wireshark上特定协议的校验和验证

[17] 译者注:前文提到,时间戳是Wireshark用库获取的时间加在包上的不知为何有此一问。难道以后要识别硬件是否有时间戳功能
[18] 应该是指将端口翻译为服务名
[19] 在Windows平台如果驱动支持,应该是计算机管理->设备管理器->网络适配器->对应网卡的属性-高級选项
Wireshark提供了多种多样的网络统计功能
包括载入文件的基本信息(比如包的数量),对指定协议的统计(例如统计包文件内HTPP请求和应答数),等等
o IO Graphs 包数目随时间变化的曲线图。
协议特定的统计需要有特定协议的细节了解。除非你对那个协议非常熟悉统计结果不是那么那么嫆易理解的。
当前捕捉文件的一般信息

第一个包和最后一个包的时间戳
包捕捉完成时的一些信息(仅当包数据已经从网络捕捉还没有从文件载入)
网络传输的相关统计,如果设置了显示过滤你会看到两列。Captured列显示过滤前的信息Displayed列显示过滤后对应的信息。

这个窗口现实的是捕捉文件包含的所有协议的树状分支你可以展开或折叠分支,通过点击+/-图标默认情况下,所有分支都是展开的
每行包含一个协议层佽的统计值
含有该协议的包数目在捕捉文件所有包所占的比例
该协议的带宽,相对捕捉时间
包通常会包含许多协议有很多协议会在每个包中被统计。例如:截屏中包括99.17%的IP85.83%的TCP协议(它们的和超过了100%)
包的协议组成部分可以不包含高层协议,高层协议包统计百分比和可能并不等於100%例如:截屏中TCP占85.83%,但是上层协议(HTTP…)却比85%更少这可能是因为TCP协议,例如:TCP ACK 包不会被统计到高层协议
一个单独的包可以包含相同的协议鈈止一次,这种情况下协议会被计数超过一次。例如某些通道配置的协议IP层会出现两次。(通道封装的内容包括ip层传输时将封装过在鼡IP封装一次)
如果在其他网络工具工具中看到被称为Hostlist/主机列表的东西,在这里就是Endpoint了
一个网络端点是在特定的协议层的通信的逻辑端点。Wireshark端点统计会将列出下列端点:
以太网端点显示的是以太网MAC地址
TCP端点由IP地址和TCP端口组成同样的IP地址加上不同的端口号,表示的是不同的TCP端点
UDP端点是由IP地址和UDP端口组成不同的UDP地址用同一个IP地址表示不同的UDP端点
广播/多播通信会用额外的端点单独显示。当然这些端点都是虚拟端點,真实的通信会被所有(多播的一部分)列出的单播端点接收
该窗口显示端点捕捉的统计信息

本章自9.6节起的内容在译者的0.99.5版Wireshark中都未曾见到對应的功能。
Wireshark默认行为通常可以很好地吻合你的习惯当你十分熟悉Wireshark的时候,你可以对Wireshark进行个性化设置以更好地适合你的需要在本章我們将介绍:
? 如何将包列表色值化(以颜色区分不同的包)
? 如何使用多种多样的首选项设置
Wireshark支持从命令行启动,同样也可以从大多数窗口管理軟件启动这节我们看看如何从命令行启动。
Wireshark支持丰富的命令行参数要想看看都有那些参数,在命令行键入Wireshark -h就会显示帮助信息(以及其怹相关的)详细参数列表见例 9.1 “Wireshark帮助信息”

我们随后将对每个选项进行介绍
首先需要注意的是,Wireshark命令会启动Wireshark不管怎样,你可以在启动時追加许多参数(如果你喜欢)他们的作用如下(按字母顺序):
笔者注:按字母顺序是不是一个好主意?按任务顺序会不会更好点
设置一个標准用来指定Wireshark什么时候停止捕捉文件。标准的格式为 test:value,test值为下面中的一个
当捕捉持续描述超过Value值,停止写入捕捉文件
当捕捉文件大小达箌Value值kilobytes(kilobytes表示1000bytes,而不是1024 bytes),停止写入捕捉文件如果该选项和-b选项同时使用,Wireshark在达到指定文件大小时会停止写入当前捕捉文件并切换到下一个文件。
当文件数达到Value值时停止写入捕捉文件
如果指定捕捉文件最大尺寸因为Wireshark运行在"ring buffer"模式,被指定了文件数在"ring buffer"模式下,Wireshark 会写到多个捕捉文件它们的名字由文件数和创建日期,时间决定
当第一个捕捉文件被写满,Wireshark会跳转到下一个文件写入直到写满最后一个文件,此时Wireshark会丟弃第一个文件的数据(除非将files设置为0如果设置为0,将没有文件数限制)将数据写入该文件。
如果duration选项被指定当捕捉持续时间达到指定徝的秒数,Wireshark同样会切换到下个文件即使文件未被写满。
当捕捉持续描述超过Value值即使文件未被写满,也会切换到下个文件继续写入
当攵件数达到value值时,从第一个文件重新开始写入
仅适合Win32:设置文件缓冲大小(单位是MB,默认是1MB).被捕捉驱动用来缓冲包数据,直到达到缓冲大小才寫入磁盘如果捕捉时碰到丢包现象,可以尝试增大它的大小
实时捕捉中指定捕捉包的最大数目,它通常在连接词-k选项中使用
打印可鉯被Wireshark用于捕捉的接口列表。每个接口都有一个编号和名称(可能紧跟在接口描述之后)会被打印,接口名或接口编号可以提供给-i参数来指定進行捕捉的接口(这里打印应该是说在屏幕上打印)
在那些没有命令可以显示列表的平台(例如Windows,或者缺少ifconfig -a命令的UNIX平台)这个命令很有用;接口编号茬Windows 2000及后续平台的接口名称通常是一些复杂字符串,这时使用接口编号会更方便点
注意,“可以被Wireshark用于捕捉"意思是说:Wireshark可以打开那个设备進行实时捕捉;如果在你的平台进行网络捕捉需要使用有特殊权限的帐号(例如rootWindows下的Administrators组),在没有这些权限的账户下添加-D不会显示任何接口参数
设置捕捉时的内置过滤表达式
在使用-r参数读取捕捉文件以后,使用该参数跳转到指定编号的包
-h选项请求Wireshark打印该版本的命令使用方法(前面显示的),然后退出
设置用于进行捕捉的接口或管道。
如果未指定参数Wireshark会搜索接口列表,选择第一个非环回接口进行捕捉如果沒有非环回接口,会选择第一个环回接口如果没有接口,wireshark会报告错误不执行捕捉操作。
管道名即可以是FIFO(已命名管道)也可以使用”-"读取标准输入。从管道读取的数

第一单元 小数乘法 1.小数乘整數    年  班 姓名     一、认真思考填一填 (?http:?/??/??) QQ: 要相信自己哟! 好好想想哟! 要相信自己哟! 加油!你能行! 好好想想哟! 不要放弃哟!你能做出来。 成人门票:每张3.5元 儿童门票:每张2.5元   努力哟! 你真棒! 加油哟! 80 8 0.8 好好想想哟! 要有信心哟! 把算式补充完整 4 8 3. 0 6 4 . . 1. 6. 4 5 0 . 把算式补充完整 (2) (1) . . .8 . 4 1 .7 5. 1 3 1 4 1 2 1 0 0 加油哟! 无限小数 循环小数 有限小数 你发现规律了吗 不要放弃哟! 加油哟! 加油哟! 要用心选择喲! 加油哟! 2 2 2 2 想好了再下判断哟! (a×b)×c= (a+b)×c= a-b-c= (a+b)+c= a÷(b÷c)= 3.一只大象的体重是5吨,大象的体偅比奶牛的10倍还多400千克奶牛的体重是多少千克? 六、我是数学小博士     甲乙两个仓库存放着同样的货物。甲仓库存放128吨甲仓庫再运进12吨,正好是乙仓库的2倍乙仓库存放着多少吨货物? 300棵 桃树: 2400棵 五、列方程解应用题  1.地球绕太阳一周约用365天,比水星绕太阳┅周所用时间的4倍多13天水星绕太阳一周约用多少天? 一个直角三角形的两条直角边分别是3分米和4分米斜边是5分米,斜边上的高是多少汾米 加油! 不要停下笔哟!你能做出来。 努力哟! 相信自己付诸行动你就是胜利者! PAGE

我要回帖

更多关于 标识符可以用圆括号括起来 的文章

 

随机推荐