第五章 数据报文解码简析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章数据报文解码简析
本章主要对:数据报文分层、以太报文结构、IP协议、ARP协议、TCP协议、UDP协议等的解码分析做了简单的描述,目的在于介绍Sniffer软件在协议分析中的功能作用并通过解码分析对协议进一步了解。对其其他协议读者可以通过协议文档和Sniffer捕获的报文对比分析。
5.1数据报文分层
如下图所示,对于四层网络结构,其不同层次完成不通功能。每一层次有众多协议组成。
图5-1
如上图所示在Sniffer的解码表中分别对每一个层次协议进行解码分析。链路层对应“DLC”;网络层对应“IP”;传输层对应“TCP/UDP”;应用层对对应的是“HTTP”等高层协议。Sniffer 可以针对众多协议进行详细结构化解码分析。并利用树形结构良好的表现出来。
5.2以太报文结构
EthernetII以太网帧结构
图5-2
Sniffer 会在捕获报文的时候自动记录捕获的时间,在解码显示时显示出来,在分析问题时提供了很好的时间记录。源目的MAC 地址在解码框中可以将前3字节代表厂商的字段翻译出来,方便定位问题,例如网络上2台设备IP 地址设置冲突,可以通过解码翻译出厂商信息方便的将故障设备找到,如00e0fc 为华为,010042为Cisco 等等。如果需要查看详细的MAC 地址用鼠标在解码框中点击此MAC 地址,在下面的表格中会突出显示该地址的16进制编码。IP 网络来说Ethertype 字段承载的时上层协议的类型主要包括0x800为IP 协议,0x806为ARP 协议。
IEEE802.3以太网报文结构
IEEE802.3帧结构
上图为IEEE802.3SNAP 帧结构,与EthernetII 不同点是目的和源地址后面的字段代表的不是上层协议类型而是报文长度。并多了LLC 子层。
图5-3
5.3.IP 协议
版本:4位
IHL域(4位):指明了该头部要多长(以32位字的长度为单位)。最小值为5,最大值为15,这限制了头部的最大为60字节。
服务类型(TYPE OF Service 6位)
总长度(Total Length)域(16位):包含了该数据包中的所有内容,即头和数据最大长度65535字节。
标识(Identification)16位:让目标主机确定一个新到达的分段属于哪一个数据报,同一个数据报的所有分段包含同样的Identification值
接下来是一个未使用的位。
DF(1位):不分段
MF(1位):更多的分段
分段偏移(Fragment offset):13位,指明了该分段在当前数据报中的什么位置。
TTL(Time to live):8位,一个用于限制分组生存期的计数器,计数单位为秒,最大生存期为255秒
协议(Protocol):8位,指明了该将它交给哪个传输进程TCP/UDP
头部校验和(Header checksum):16位,只校验头部,这样的校验和对于检测“因路由器中的坏内存而产生的错误”非常有用
源地址(Source address):32位
目的地址(Destination address):32位
选项(Options):设计意图是提供一种途径,允许后续版本的协议,包含一些原来的设计中没有出现的信息,允许实验人员试验新的想法,避免为那些不常使用的信息分配头部域。选项是变长的,每个选项的第一个字节是一个标识码,它标明了该选项。有的选项后面跟着一个1字节的选项长度域,然后是一个或多个数据字节。Options域被补齐到4字节的倍数。
图5-4
上图为Sniffer对IP协议首部的解码分析结构,和IP首部各个字段相对应,并给出了各个字段值所表示含义的英文解释。
5.4 TCP协议
源端口(Source Port):16位
目的端口(Destination Port):16位
序列号(Sequence Number):32位
确认号(Acknowledgement Number):32位,指定的是下一个期望的字节,而不是已经正确接收的最后一个字节。
TCP头长度(TCP header length):4位,指明了TCP头部包含了多少32位的字。
接下来是未使用的6位。
ACK:表明了Acknowledgement number是有效的。
PSH:表示这是带有PUSH标志的数据
RST:被用于重置一个已经混乱的连接,之所以会混乱,可能是由于主机崩溃,或者其他原
因
SYN:被用于建立连接的过程
FIN:被用于释放一个连接,它表示发送方已经没有数据要传输了
Windows Size(窗口大小):16位,TCP中的流控制是通过一个可变大小的滑动窗口来完成的,窗口大小域指定了从被确认的字节算起,可以发送多少个字节
Checksum(校验和):16位,提供了额外的可靠性,它的校验范围包括头部数据以及概念性的伪头部
图5-5
5.5 UDP协议
版本域(Version):2位
P位:表示该分组已被填充到4字节的倍数
CC域:4位,指明了后面共有多少个分信源(contributing source),可以从0到15。M位
是一个与应用相关的标记位,它可以被用来标记一个视频帧的开始。音频信道中一个字的开始,或者其他由应用来理解的某一件事情,
净荷类型(Payload Type):7位,指出该分组使用了哪一种编码算法,
序列号(Sequence Number):16位,是一个计数器,在每个被发送出去的RTP分组中该计数器都要递增。
时间戳:32位,是由RTP流的源产生的,它注明了该分组中的第一个样本是什么时候产生的。
同步源标识符(Synchronization source identifier):32位,指明了该分组属于哪一个流。
分信源标识符(Contributing source identifier):在媒体制作过程中使用了混合器的话被使用。
5.6 ARP协议
HTYPE(硬件类型)。16位,用来定义运行ARP的网络的类型。每一个局域网基于其类型被指派给一个整数。例如,以太网是类型1。ARP可使用在任何网络上。
PTYPE(协议类型)。16位,用来定义协议的类型。例如,对IPv4协议,这个字段的值是0800。ARP可用于任何高层协议。
HLEN(硬件长度)。8位,用来定义以字节为单位的物理地址的长度。例如,对以太网这个值是6。
PLEN(协议长度)。8位,用来定义以字节为单位的逻辑地址的长度。例如,对IPv4协议这个值是4。
OPER(操作)。16位,用来定义分组的类型。已定义了两种类型:ARP请求(1),ARP回答(2)。
SHA(发送站硬件地址)。这是一个可变长度字段,用来定义发送站的物理地址的长度。例如,