





























1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。
的,而是从这台计算机的层直接传送十层,直至到达物理层最后分解为比特流流经物理介质到达另台计算机,然后在从另台计算机中的底层逐层向上传送的。
当数据包被传输到层的时候,该层都会对数据包进行加工,在发送方通常是加上个与该层协议有关的控制或标志信息,即数据包的包头或包尾而在接受方则是需要逐层拆下本层标志,即去掉数据包的包头或包尾,根据控制信息进行相应的处理,将分解后的数据报逐层上传,直至应用程序获得最终数据。
比如发送方在数据链路层通常会在包头加上目的地址源地址其他些具体网络信息及帧定界符,在包尾加上循环冗余码,并使用字节填充或位填充,由接收方数据链路层去掉包头与包尾进行相关解释工作。
数据包的加工工作如图所示图数据封装示意传给的数据单元称作报文段或简称为段传给网络接口层的数据单元称作数据报通过以太网传输的比特流称作帧,分组既可以是个数据报也可以是数据报的个片。
协用户数据用户数据首部应用数据首部应用数据首部首部应用数据首部首部以太网头以太网尾应用程序以太网驱动程序议分析就是数据封装的逆过程。
协议分析的流程图如图所示图网络协议分析流程图从图可以看到,对于监听程序捕获到的数据报,需要按以下步骤分层次进行协议分析首先是读取数据链路层的报头,从报头中可以得到计算机的源地址和目的地址数据包的长度以及上层协议的类型。
然后需要去掉数据链层的报头,此时可以获得数据报数据包,在这层中可以对数据报做定的统计和分析等等对数据包可以获得发送端和目的等重要信息。
对于数据报去除网络层的报头以后,可以获得传输层数据报,对数据包的报头进行分析在这层中还可以获得数据报的端口号信息,根据端口号进步判断数据报属于何种应用层协议。
对数传输层数据报去除掉传输层报头以后,就获得了应用层数据报,在应用层进行协议分析的工作就是按照应用层的工作原理协议规范,还原获得应用层的内容,如协议分析可以还原出正在传输的邮件信息,协议分析可以还原出传输中的文件名以及用户名口令密码等信息,协议分析可以还原出目标主机浏览网页的原貌等等。
开始读取原始数据报文提取并分析链路层报头提取并分析地址信息提取并分析地址信息根据端口判断应用层协议显示提取报头中的主要信息结束显示对所有的数据报头分析处理后,取出其中的主要信息然后显示给用户。
对模型中各层协议的分析前面的内容已经提到过,我们在对数据包根据应用层协议进行分析的时候都需要首先剥离数据包中的包头并且需要根据包头信息判断是何种应用层协议。
下面就按照数据链路层网络层到传输层再到应用层的顺序详细的讲解每层包头的结构以及如何对每层的数据报进行协议分析。
以太网首部的分析与提取因为每个使用捕获的数据包,都会有个指向原始报文头的指针。
假设这个指针为。
把这个指针强制转换为以太帧格式。
我们就得到了以太帧的报文头,就可以对该层协议进行分析和处理。
由于在定义以前,以太网就存在,因为有多个以太网标准,所以可以支持多种不同的链路层协议,如以太网令牌环网光纤分布式数据接口等。
以太网是当今采用的主要的局域网技术,它采用种称作的媒体接入方法,其意思是带冲突检测的载波侦听多路接入,发送端在传输之前要侦听信道。
在以太网内的和数据报或者使用以太网的或者使用子网访问协议来封装数据。
这里我们只讨论最为常用的以太网数据报格式,这是在中定义的,如图所示,这是以太网的封装格式字节目的地址源地址类型数据图以太网的封装格式其中每个字段的含义如下帧初始同步字节长,提供接收端的同步和分隔帧的功能。
需要注意的是,帧初始同步字段在网络监视器中是不可见的。
目的地址字节长,指明目的地址。
目的地址可以是单播多播或者以太网的广播地址。
其中,单播地址也称为地址。
源地址字节长,指明发送节点的单播地址。
以太网类型字节长,指明在以太网帧中上层协议的类型。
这个字段被用来将以太网的有效载荷传给正确的上层协议实体。
如果在该字段中未注明有上层协议实体接收有效载荷帧。
该帧将被丢弃。
比如,对于数据报,这个字段的值为对于消息,该字段的值被设置为。
有效载荷以太网的帧的有效载荷由上层协议的协议数据单元组成,是数据包本身的具体内容。
以太网能发送最大字节的有效载荷。
因为以太网具有冲突检测机制,以太网的最小帧有效载荷为字节。
如果上层的协的值为。
保留个字节字段,为了未来的使用而保留。
标志个字节字段,指示个标志。
这个标志是紧急确训推复句同步结束。
窗口个字节的字段,表明该段的发送方的接收缓冲区中可供使用的空间有多少字节数。
窗口大小的广告是种实现接收流流控制的方式。
校验和个字节的字段,为段提供位级别的完整性校验。
紧急指针个字节字段,它表明段中紧急数据的位置。
选项为提高利用的通信性能所准备的选项。
用户数据报协议是定义用来在互连网络环境中提供包交换的计算机通信的协议。
此协议默认认为网路协议是其下层协议。
此协议提供了向另用户程序发送信息的最简便的协议机制。
此协议是面向操作的,未提供提交和复制保护。
以下是协议的报文头格式比特图数据包格式源端口位。
源端口是可选字段。
当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。
如果不使用,设置值为。
目的端口位。
目标端口在特殊因特网目标地址的情况下具有意义。
长度位。
该用户数据报的八位长度,包括协议头和数据。
长度最小值为。
校验和位。
协议头协议头和数据位,最后用填补的信息假协议头总和。
如果必要的话,可以由两个八位复合而成。
应用层协议的识别与分析对于应用层协议本程序采用的是端口识别技术。
端口是应用程序在网络通信上使用的数据输入输出口。
端口分为两种。
种为公认端口,另种为短暂端口。
公认端口被分配给网络上的服务程序。
当网络客户端利用其他计算机上的服务程序时,在根据地址指定服务计算机的同时,也指定了被分配的服务程序的公认端口号。
由此,可以利用与端口号对应的特定的网络服务。
公认端口号有很多,工人端口号被定义在类操作系统下的文件中下表列出了其中的部分。
表常用协议和对应的端口号上层协议端口号协议上层协议的意义回应请求,在上数据传送路径,在上控制数据通信路径,用于远程终端连接的标准,邮件发送服务源端口目的端口长度校验和,计时服务器,主机名服务器,服务,域名服务器,小型文件传输协议,信息服务,用户信息邮局协议,服务,网络新闻传输协议,网络时间协议,名称服务,会议服务短暂端口号是客服端程序与服务器程序进行通信时,短暂使用端口号。
短暂端口号是不可再生的,被运行系统分配给客户端程序。
因为常用端口和常用协议对应,我们可以利用这个原理来识别应用层协议。
关键代码如下短暂端口等找不到名称时现在介绍下函数。
此函数完成的是取得端口号和区别类别的两个参数并返回端口名称的工作。
函数的核心是调用函数。
用这个函数来检索与端口相关的信息,吧结果作为指向型的结构体的指针并返回。
型的结构体在头文件中被声明。
在这里使用的成员。
把端口名称赋给。
函数检索端口名称失败时,返回。
这是因为得到的端口号是短暂端口号,没有检索到它的端口名称。
这时,常把端口号作为端口的名称来用。
程序运行与测试测试环境硬件环境处理器以上内存以上多台普通搭载网卡的经过集线器互联。
程序运行环境安装有以上版本的操作系统。
测试步骤首先,用多台搭建局域网络。
其次,选定台对数据包捕获模块规则过滤模块协议分析模块进行功能测试。
然后对每个功能模块进行数据合法性检查数据致性检查。
最后对关键模块进行回归测试。
测试结果评价本设计在环境试运行下,编码后经过多次测试并将发现的及时修改,系统运行正常,基本达到设计目标,运行结果比较良好。
图议数据单元小于字节,则必须填充到字节。
帧校验序列,字节长,提供位级别的完整性校验,也被称为循环冗余校验。
本子段对于网络监视器来说同样是不可见的。
首部的分析与提取因为以太帧报头的长度都是样的。
所以在提取包头的时候可以将指针加上以太帧包头的长度后,把格式强制转化为包头格式即。
就得到了指向报头的指针,我们就可以进行相应的分析了。
网络上的主机是通过数据报来交换数据的,数据报包括数据单元和首部字段,其中,数据单元包含
