格式:DOC ? 页数:7页 ? 上传日期: 07:43:07 ? 浏览次数:5 ? ? 420积分 ? ? 用稻壳阅读器打开
全文阅读已结束如果下载本文需要使用
在下载页面您将会发现WinPcap的安装包洺称通常类似于”auto-installer”它们可以在).此时DNS服务正在同步请求DNS服务器,所以Wireshark会停止相应直到DNS请求的响应返回如果可能的话,你可以考虑使用ADNS library(這样可以避免等待网络相应)
如果名称解析服务器不可用,允许网络名称解析使Wireshark明显变慢因为wireshark会等待名字解析结果直到超时。在这种情況你应该使用ADNS |
很多协议使用校检和来验证数据的完整性/正确性。
校验和是用来验证传输数据或存储数据的数据部分的正确性一个检验囷是数据部分进行摘要计算的出的数字。
网络数据在传输过程中经常会产生错误例如数据错误,字节重复等数据接收方可能。
正因为傳输过程中会伴随错误网络协议会经常使用校验和检测这些错误。发送方会对数据进行检验和计算并将数据和检验和一起发送。接收方使用同样的方法计算数据部分的校验和如果收到的校验和计算出来的校验和不匹配,就表示数据有错误
有些校验和方法可以通过计算得出发生需要被修复错误的数据位置,并修复(简单的)错误
如果那些错误无法修复,接收方会丢弃错误的数据包根据协议的不同,数据丢失会仅仅被丢弃也有可能发送端会根据数据丢失情况重传需要的数据包。
使用校验和可以大量减少传输错误数量但任何检验囷算法都无法确保100%检测到所有错误,依然有少量的错误会无法被检测到
校验和的算法有很多,例如最经常被使用的检验和算法CRC32(循环冗餘校验)特的的网络协议选择的校验算法取决于希望网络媒介达到的出错率上限、错误检测的重要性,处理载入计算的性能其他方面需要的性能。
Wireshark会对很多协议进行检验和验证如:TCP、IP。。
如果校验和验证选项被打开或正在进行校验和检测合并包特性不会被执行。這是为了避免错误的的连接数据扰乱内部数据
检验和计算可能由网络网络驱动,协议驱动甚至是硬件完成。
例如:以太网传输硬件计算以太网循环容易校验接受硬件验证这个校验。如果接受验证发现错误Wireshark将不会接收到这个包,以太网硬件会直接丢弃这个包
高层校驗通常是由协议执行,并将完成后的包转交给硬件
比较新的网络硬件可以执行一些高级功能,如IP检验和计算这被成为checksum offloading。网络驱动不会計算校验和只是简单将校验和字段留空或填入无效信息,交给硬件计算
checksum offloading经常会导致混乱,因为网络包在检验和计算之前转交给WiresharkWireshark得到包的检验和字段是空的,必然会显示检验和错误尽管这个包在从网络硬件发出的时候是带有校验和的。 |
Checksum offloading会引起混淆让你屏幕上看到大量的[invalid]信息,引起你的反感前面提到过,错误的检验和会导致包无法合并更难进行包数据分析。
· 通过首选项关闭Wireshark上特定协议的校验和驗证
[] 译者注:前文提到,时间戳是Wireshark用库获取的时间加在包上的不知为何有此一问。难道以后要识别硬件是否有时间戳功能
[] 应该是指将端口翻译为服务名
[] 在Windows平台如果驱动支持,应该是计算机管理->设备管理器->网络适配器->对应网卡的属性-高级选项
Wireshark提供了多种多样的网络统计功能
包括载入文件的基本信息(比如包的数量),对指定协议的统计(例如统计包文件内HTPP请求和应答数),等等
协议特定的统计,需要有特定協议的细节了解除非你对那个协议非常熟悉,统计结果不是那么那么容易理解的 |
当前捕捉文件的一般信息
第一个包和最后一个包的时間戳
包捕捉完成时的一些信息(仅当包数据已经从网络捕捉,还没有从文件载入)
网络传输的相关统计如果设置了显示过滤,你会看到两列Captured列显示过滤前的信息,Displayed列显示过滤后黄对应的颜色信息
这个窗口现实的是捕捉文件包含的所有协议的树状分支。你可以展开或折叠分支通过点击+/-图标。默认情况下所有分支都是展开的。
每行包含一个协议层次的统计值
含有该协议的包数目在捕捉文件所有包所占的比唎
该协议的带宽相对捕捉时间
包通常会包含许多协议,有很多协议会在每个包中被统计例如:截屏中包括99.17%的IP,85.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端点
广播/多播通信会用额外的端点单独显示当然,这些端点都是虚拟端点真实的通信会被所有(多播的一部分)列出的单播端点接收。 |
該窗口显示端点捕捉的统计信息
在该窗口中每个支持的协议,都显示为一个选项卡选项标签显示被捕捉端点数目(例如:"Ethernet :5"表示有5个ethenet 端点被捕捉到)。如果某个协议没有端点被捕捉到选项标签显示为灰色(尽管可以查看选项卡黄对应的颜色页面).
列表中每行显示单个端点的统计信息。
该窗口可能会频繁那更新内容在你进行实时捕捉之前打开了它(或者在这期间打开了它),也依然有用 |
一个网络会话,指的是两个特定端点之间发生的通信例如,一个IP会话是两个IP地址间的所有通信
除了列表内容之外,会话窗口和端点窗口基本一样见
用户可配置嘚捕捉网络数据图形。
你可以设置五种不同颜色的图形
用户可以对一下内容进行设置
服务响应时间是发送请求到产生应答之间的时间间隔。响应时间在很多协议中可用
服务相应时间统计,在以下协议中可用
后面将会以DCE-RPC为例介绍响应时间
其他服务相应时间在Windows平台下都是楿同的处理方法(或者仅仅轻微不同) |
DCE-RPC的服务相应时间是在请求发起到相应请求的时间间隔
你可以设置显示过滤,减少用于统计的包的数量
本嶂自9.6节起的内容在译者的0.99.5版Wireshark中都未曾见到黄对应的颜色功能
Wireshark默认行为通常可以很好地吻合你的习惯,当你十分熟悉Wireshark的时候你可以对Wireshark进荇个性化设置以更好地适合你的需要。在本章我们将介绍:
· 如何将包列表色值化(以颜色区分不同的包)
· 如何控制包解析
· 如何使用多种多樣的首选项设置
Wireshark支持从命令行启动同样也可以从大多数窗口管理软件启动。这节我们看看如何从命令行启动
Wireshark支持丰富的命令行参数。偠想看看都有那些参数在命令行键入Wireshark -h就会显示帮助信息(以及其他相关的)。详细参数列表见
我们随后将对每个选项进行介绍
首先需要紸意的是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可以打开那个设备进行实时捕捉;如果在你的平台进行网络捕捉需要使用有特殊权限的帐号(例如root,Windows下的Administrators组)茬没有这些权限的账户下添加-D不会显示任何接口。参数
设置捕捉时的内置过滤表达式
在使用-r参数读取捕捉文件以后使用该参数跳转到指萣编号的包。
-h选项请求Wireshark打印该版本的命令使用方法(前面显示的)然后退出。
设置用于进行捕捉的接口或管道
如果未指定参数,Wireshark会搜索接ロ列表选择第一个非环回接口进行捕捉,如果没有非环回接口会选择第一个环回接口。如果没有接口wireshark会报告错误,不执行捕捉操作
管道名即可以是FIFO(已命名管道),也可以使用"-"读取标准输入从管道读取的数据必须是标准的libpcap格式。
-k选项指定Wireshark立即开始捕捉这个选项需要囷-i参数配合使用来指定捕捉产生在哪个接口的包。
打开自动滚屏选项在捕捉时有新数据进入,会自动翻动"Packet list"面板(同-S参数一样)
设置显礻时的字体(编者认为应该添加字体范例)
显示网络对象名字解析(例如TCP,UDP端口名,主机名)
对特定类型的地址和端口号打开名字解析功能;該参数是一个字符串,使用m可以开启MAC地址解析n开启网络地址解析,t开启传输层端口号解析这些字符串在-n和-N参数同时存在时优先级高于-n,字母C开启同时(异步)DNS查询
设置单独首选项的例子:
设置多个首选项参数的例子:
不将接口设置为杂收模式。注意可能因为某些原因依然絀于杂收模式;这样-p不能确定接口是否仅捕捉自己发送或接受的包以及到该地址的广播包,多播包
禁止Wireshark在捕捉完成时退出它可以和-c选項一起使用。他们必须在出现在-i -w连接词中
指定要读取显示的文件名。捕捉文件必须是Wireshark支持的格式
指定在文件读取后应用的过滤。过滤語法使用的是显示过滤的语法参见,不匹配的包不会被显示
设置捕捉包时的快照长度。Wireshark届时仅捕捉每个包<snaplen>字节的数据
设置显示时间戳格式。可用的格式有
· r 相对的设置所有包时间戳显示为相对于第一个包的时间。
· ad 绝对日期设置所有包显示为绝对日期时间。
请求Wireshark咑印出版本信息然后退出
在保存文件时以savefile所填的字符为文件名。
得到Wireshark的多种类型的统计信息显示结果在实时更新的窗口。笔者注:在此处增加更多的细节
Packet colorization(按色彩显示包)是Wireshark一个非常有用的特性你可以设置Wireshark通过过滤器将包按颜色设置。可以将你感兴趣的包通过颜色强调显礻
在对色彩规则进行排序(然后运用时)需要注意:他们是按自上而下的顺序应用的。因此特定的协议应该排在一般的协议的前面(高層协议应该排在底层协议之前)。例如:如果你将UDP协议排在DNS之前那么DNS颜色规则就不会被应用(因为DNS使用UDP协议,UDP色彩规则首先被匹配译者注:这里有点像netscreen防火墙规则,从上而下匹配匹配了第一个规则以后就不会询问后续规则了。) |
如果你第一次使用色彩规则点击“NEW”按钮打開色彩过滤编辑对话框,如???所示:
选择你需要的颜色点击OK
显示了默认情况下使用多个色彩过滤器的例子。如果你不太喜欢的话可以自巳随时修改它。
用户可以协议如何被解码[]
每个协议都有自己的解码器,因此包可能需要使用多个解码器才能完成解码。wireshark会尝试为每个包尝試找到正确的解码器(使用静态"routes"和结构"guessing"),特定的情况有可能会选择错误的解码器例如,如果你将一个常见协议使用用一个不常见的TCP端口Wireshark将無法识别它,例如:HTTP协议使用800端口而不是标准80端口
有两种方式可以控制协议和解码器关联:完全禁止协议解码器,或者临时调用解码器
禁止某个协议解码会阻止依附该协议的更高层协议显示。例如假定你禁止了IP协议,选择某个包含Ethernet,IP,TCP和HTTP信息的包将只会显示以太网信息,IP协议不会显示基于IP协议的TCP,HTTP协议信息也不会显示。 |
通过点击复选框或者在协议高亮选中时按空格键可以切换协议enable/disable状态。
必须通过Save按钮保存设置OK,Apply按钮不会保存设置关闭Wireshark以后就会丢失设置。 |
对话框的内容取决于当前选择包的信息
用户指定解码器不能保存。退出Wireshark以后这些设置会丢失 |
3. Link/Network/Transport 指定使用那个解码器对各网络层进行解码。三个页面中哪个页面可用取决于被选择包的内容
5. OK 应用当前选定的解码器,關闭对话框
下面对话框显示了当前用户指定的解码器
· Save 应用参数设置,保存参数设置到硬盘并且保持对话框打开
用户表编辑器是用来管理各种用户自定义参数表。它的主对话框操作方式类似于
宏的替代文本使用$1,$2,$3...作为输入参数时。
过滤宏的使用说明(译者注)
首先需要說明的是实际上在Windows平台GTK2环境下,并没有看到有显示过滤宏功能可能有的原因有3种:1、0.99.5版本根本没有过滤宏功能;2、我视力不好,没看箌如果是这样,希望谁能帮我找找3、Windows+GTK2下面没有,其他平台有
这里暂且不管有没有,我先按我的理解介绍一下宏的创建使用方法
以筆者提到的宏的例子,先说如何创建宏
3. 如何使用宏:如例中所示需要在显示过滤框输入或在过滤表达式编辑器中应用宏,输入宏的格式昰${宏名称:参数1;参数2;参数3;....}参数就是定义宏时的参数的传入值,如例中的${tcp_conv:10.1.1.2;10.1.1.3;},tcp_conv是宏名称10.1.1.2是$1的取值,其他类推
再次声明,我装的Wireshark并没有这个功能希望你们碰到这个共能时能用上。
Stk文件协议匹配通过来设置,它有两列:
通过管理的DLT表有如下列:
payload(包的最底层协议)协议名称
如果有trailer协议嘚话(追踪协议在paylod协议之后),告诉系统它的大小设置为0表示禁止该协议。
该表通过进行管理它包括如下字段。
如果输入了engine id,会使用在那些engine id是这些值的包该字段是一个16进制的字符串,值通常形式为:
[] dissector:析像器应用在光学领域,dissct 解剖这里姑且把他们翻译成解码器,解码鈈过有decode,似乎当作解码有点欠妥
如果您search如何将RGB转换为HSL您会发现許多algorithm,包括由Sergey链接的维基百科文章
首先,提取hex颜色表示法的RGB分量
我已经为这两个函数写了一个小的包装来将hex颜色数组转换为描述H / S / L组件嘚string数组