DNS/ADNS name resolution(system/library service)Wireshark会向操作系统(或ADSN library 地址-名称解析词典?)请求,将IP地址转换为相关联的主机名(e.g. 216.239.37.99 -> www.1.google.com).此时DNS服务正在同步请求DNS服务器,所以Wireshark会停止相应直到DNS请求的响应返回。如果可能的话,你可以考虑使用ADNS library(这样可以避免等待网络相应。)
警告
如果名称解析服务器不可用,允许网络名称解析使Wireshark明显变慢,因为wireshark会等待名字解析结果 直到超时。在这种情况你应该使用ADNS。
DNS vs. ADNS 这里是一个简短的对比:两个都是用来转换ip地址为其他易读的地址\域名)。通常DNS用gethostname()将地址转换为名称。通常首先是查询hosts文件(e.g. /etc/hosts,/windows/system32/drivers/etc/hosts)看能否找到匹配实体。如果找不到,会向指定的DNS服务器查询。 DNS和ADNS真正的区别在于等待DNS服务器名字解析。gethost()会一直等待知道名字被解析或者返回错误。如果DNS服务器不可用,可能会占用很长时间(好几秒)。ADNS服务会略微有点不同。它也同样向DNS服务器发出请求,但不会等待服务器应答。它会立即相应Wireshark。此时的地址(和后续地址)在ADNS得到结果前不会显示解析名称。如前文书中说道,解析结果被保存在缓存中,你需要使用\菜单更新这些字段来显示解析名称。
hosts name resolution(hosts file) 如果dns解析不成功,Wireshark会尝试使用用户提供的主机文件将IP地址转换为对应的主机名。(e.g. 216.239.37.99 -> www.google.com)
7.6.4. IPX名称解析(网络层)
ipxnet name resolution (ipxnets file) (笔者未作解释)
7.6.5. TCP/UDP端口名解析(传输层)
翻译TCP/UDP端口(e.g.80)为更加易读的玩意\[18]
TCP/UDP port conversion (system service) Wireshark会向操作系统发出请求,转换TCP/UDP端口为已知名称(e.g. 80->http)。
XXX - mention the role of the /etc/services file (but don't forget the files and folders section)!
7.7. 校检和
很多协议使用校检和来验证数据的完整性/正确性。
提示
应用校检和在这里也被成为redundancy check(冗余校检?)
校检和是做什么的?
校验和是用来验证传输数据或存储数据的数据部分的正确性。一个检验和是数据部分进行摘要计算的出的数字。 网络数据在传输过程中经常会产生错误,例如数据错误,字节重复等。数据接收方可能。
正因为传输过程中会伴随错误,网络协议会经常使用校验和检测这些错误。发送方会对数据进行检验和计算,并将数据和检验和一起发送。接收方使用同样的方法计算数据部分的校验和,如果收到的校验和计算出来的校验和不匹配,就表示数据有错误。
有些校验和方法可以通过计算得出发生需要被修复错误的数据位置,并修复(简单的)错误。
如果那些错误无法修复,接收方会丢弃错误的数据包。根据协议的不同,数据丢失会仅仅被丢弃,也有可能发送端会根据数据丢失情况重传需要的数据包。
使用校验和可以大量减少传输错误数量。但任何检验和算法都无法确保100%检测到所有错误,依然有少量的错误会无法被检测到。
校验和的算法有很多,例如最经常被使用的检验和算法CRC32(循环冗余校验)。特的的网络协议选择的校验算法取决于希望网络媒介达到的出错率上限、错误检测的重要性,处理载入计算的性能,其他方面需要的性能。 关于检验和的更多信息可以参考:http://en.wikipedia.org/wiki/Checksum
7.7.1. Wireshark校检和验证
Wireshark会对很多协议进行检验和验证,如:TCP、IP。。。
它会和\receiver\做一样的计算.然后在包详情面板显示检验和字段的内容,e.g.:[correct], [invalid, must be 0x12345678] 以及其他类似的内容。
如果校验和验证选项被打开或正在进行校验和检测,合并包特性不会被执行。这是为了避免错误的的连接数据扰乱内部数据。
7.7.2. Checksum offloading
检验和计算可能由网络网络驱动,协议驱动,甚至是硬件完成。
例如:以太网传输硬件计算以太网循环容易校验,接受硬件验证这个校验。如果接受验证发现错误,Wireshark将不会接收到这个包,以太网硬件会直接丢弃这个包。
高层校验通常是由协议执行,并将完成后的包转交给硬件。
比较新的网络硬件可以执行一些高级功能,如IP检验和计算,这被成为checksum offloading。网络驱动不会计算校验和,只是简单将校验和字段留空或填入无效信息,交给硬件计算。
注意
checksum offloading经常会导致混乱,因为网络包在检验和计算之前转交给Wireshark。Wireshark得到包的 检验和字段是空的,必然会显示检验和错误,尽管这个包在从网络硬件发出的时候是带有校验和的。 Checksum offloading会引起混淆,让你屏幕上看到大量的[invalid]信息,引起你的反感。前面提到过,错误的检验和会导致包无法合并,更难进行包数据分析。 你可以采取两种方法避免Checksum offloading 问题
在驱动程序上关闭checksum offloading选项,如果可用的话。[19] ? 通过首选项关闭Wireshark上特定协议的校验和验证。
?
[17]
译者注:前文提到,时间戳是Wireshark用库获取的时间加在包上的,不知为何有此一问。难道以后要识别硬件是否有时间戳功能。
[18]
应该是指将端口翻译为服务名
在Windows平台如果驱动支持,应该是计算机管理->设备管理器->网络适配器->对应网卡的属性-高级选项
[19]
第 8 章 统计
8.1. 说明
Wireshark提供了多种多样的网络统计功能
包括,载入文件的基本信息(比如包的数量),对指定协议的统计(例如,统计包文件内HTPP请求和应答数),等等。 一般统计
o Summary:捕捉文件摘要
o Protocal Hierarchy: 捕捉包的层次结构
o Endpoints 例如:通讯发起,终止方的ip地址 o Conversations 例如:两个指定IP之间的通信 o IO Graphs 包数目随时间变化的曲线图。
? 指定协议统计
o Service Response Time 从发起请求到相应请求的服务间隔时间。 o Various other 协议特有的统计
?
注意
协议特定的统计,需要有特定协议的细节了解。除非你对那个协议非常熟悉,统计结果不是那么那么容易理解 的。
8.2. 摘要窗口
当前捕捉文件的一般信息 图 8.1. \窗口
File
捕捉文件的一般的信息 Time
第一个包和最后一个包的时间戳
Capture
包捕捉完成时的一些信息(仅当包数据已经从网络捕捉,还没有从文件载入) Display
与显示有关的信息 Traffic
网络传输的相关统计,如果设置了显示过滤,你会看到两列。Captured列显示过滤前的信息,Displayed列显示过滤后对应的信息。
8.3. \窗口
显示捕捉包的分层信息
图 8.2. \窗口
这个窗口现实的是捕捉文件包含的所有协议的树状分支。你可以展开或折叠分支,通过点击+/-图标。默认情况下,所有分支都是展开的。
每行包含一个协议层次的统计值 每列代表的意思 Protocol
协议名称 %Packets
含有该协议的包数目在捕捉文件所有包所占的比例 Packet
含有该协议的包的数目 Bytes
含有该协议的字符数
MBit/s
该协议的带宽,相对捕捉时间 End Packets End Bytes End MBit/s
注意
包通常会包含许多协议,有很多协议会在每个包中被统计。例如:截屏中包括99.17%的IP,85.83%的TCP协 议(它们的和超过了100%) 注意
包的协议组成部分可以不包含高层协议,高层协议包统计百分比和可能并不等于100%,例如:截屏中TCP占 85.83%,但是上层协议(HTTP...)却比85%更少。这可能是因为TCP协议,例如:TCP ACK 包不会被统计到高层协议。 注意
一个单独的包可以包含相同的协议不止一次,这种情况下,协议会被计数超过一次。例如某些通道配置的协议, IP层会出现两次。(通道封装的内容包括ip层,传输时将封装过在用IP封装一次)
8.4. \
端点不着的统计
提示
如果在其他网络工具工具中看到被称为Hostlist/主机列表的东西,在这里就是Endpoint了。
8.4.1. 什么是Endpoint?
一个网络端点是在特定的协议层的通信的逻辑端点。Wireshark端点统计会将列出下列端点: Ethernet
以太网端点显示的是以太网MAC地址 Fibre Channel
笔者未描述 FDDI
FDDI端点是FDDI MAC地址 IPV4
IP端点是IP地址 IPX
笔者未介绍 TCP
TCP端点由IP地址和TCP端口组成,同样的IP地址加上不同的端口号,表示的是不同的TCP端点 Token Ring
Token Ring(令牌环)端点是Token Ring MAC地址 UDP
UDP端点是由IP地址和UDP端口组成,不同的UDP地址用同一个IP地址表示不同的UDP端点 Broadcast / multicast endpoints(广播/多播端点)
广播/多播通信会用额外的端点单独显示。当然,这些端点都是虚拟端点,真实的通信会被所有(多播的一部分) 列出的单播端点接收。
8.4.2. \窗口