《无线访问点(AP)上的服务重定向问题的研究和实现毕业设计论文.doc》由会员分享,可在线阅读,更多相关《无线访问点(AP)上的服务重定向问题的研究和实现毕业设计论文.doc(39页珍藏版)》请在三一办公上搜索。
1、毕业设计(论文)无线访问点(AP)上的服务重定向问题的研究和实现论文作者姓名:申请学位专业:申请学位类别:指导教师姓名(职称):论文提交日期:无线访问点(AP)上的服务重定向问题的研究和实现摘 要802.11无线网络因为其卓越的移动性能,快速的部署能力,低廉的价格和经过修正后过硬的安全性能正在成为企业网络新的选择。AP是无线网络中的接入设备,所有的经过无线网络的数据都是由一个一个的AP交换到骨干网络中的。HTTP服务则是Internet服务中最基础,数据传输流量最大的服务 。服务重定向是保护企业数据最简单也是最有效的工具之一。为了控制企业中非授权用户对敏感信息的访问,对企业级数据提供一个更安全
2、的保护,用户提出了这篇毕业论文所研究的大部分问题。本论文从基础的HTTP数据报文入手,分析了HTTP的数据交互序列,分别从IP层和HTTP层给出了最容易实现和消耗系统资源最少的解决方法,又详细的分析了无线网的基础知识,对无线网的报文结构,无线访问点(AP)等设备进行了深入的探索,最后,结合嵌入式系统编程,实现了整体的重定向功能。关键词:802.11无线网络;AP;HTTP服务;服务重定向;数据报文Investigation and Implementation of Service Redirect in Wireless Access PointsAbstract802.11 Wireles
3、s networks offered several advantages to be a new better choice for company networks, its great mobility, fast deployment, lower cost and good security. Access Points is the base of the wireless network. AP transferred every piece of data to its backbone network. HTTP service is the basic service on
4、 the Internet. It holds most of the data on the net. Service Redirect is one of the simple and most powerful ways to protect the data of a company. In the aim to keep important information of a company from unauthorized user, give a best protection to the company data, the customer had all the quest
5、ions investigated here. The paper starts with HTTP data packet, analyzed the data sequence between the Client and the Server, finally gives a most simple and lowest waste way from IP layer and HTTP layer. At the same time, it analyzed the basic information about wireless network, the data fragment a
6、nd the Access Points. At last, in coding part, the Service Redirect in Access Points was implemented.Key words: 802.11Wireless Network; AP; HTTP Service; Service Redirect; Data Packet目 录论文总页数:28页1引言12802.11无线网络基础12.1无线网络的类型12.1.1独立网络12.1.2基本网络22.1.3扩展网络22.2无线网络的通信22.2.1站点和AP的连接过程22.2.2AP和分发系统的数据传输42
7、.3802.11无线网的帧格式42.3.1基本帧格式42.3.2管理帧42.3.3控制帧52.3.4数据帧62.4AP的功能62.4.1无线中继62.4.2网络桥接63TCP/IP协议简介63.1TCP/IP的分层63.2数据链路层73.3IP协议83.4TCP/UDP协议93.5应用层协议94Vxworks操作系统和开发工具Tornado简介104.1Vxwroks操作系统简介104.1.1Vxworks的基本特点104.1.2Vxworks操作系统的组成104.2开发工具Tornado简介124.2.1Tornado IDE的主要组成124.2.2Tornado的核心开发工具125数据分析
8、及设计145.1四种通过AP的HTTP数据流分析145.1.1抓包时的模拟网络拓扑结构图145.1.2抓包时的使用的设备145.1.3抓包时的有线和无线工具155.1.4包文件的命名规则155.1.5HTTP域名直接访问报文分析155.1.6HTTP IP直接访问报文分析165.1.7HTTP 域名代理访问报文分析175.1.8HTTP IP代理访问报文分析185.2与DNS报文有关的设计思路195.2.1修改DNS查询报文中的URL字段195.2.2发送重定向页面的DNS应答205.3与HTTP数据报文有关的设计思路205.3.1用地址映射表来处理HTTP数据205.3.2HTTP应答数据报
9、文中插入页面跳转指令215.4详细设计与处理流程215.4.1修改DNS查询报文中的URL字段的实现215.4.2HTTP应答数据报文中插入页面跳转指令的实现226实现与测试236.1逻辑代码236.1.1修改DNS查询报文中的URL字段的逻辑代码236.1.2HTTP应答数据报文中插入页面跳转指令的逻辑代码246.2功能测试256.2.1代码级测试256.2.2黑盒测试25结 论26参考文献26致 谢27声 明281 引言HTTP服务是网络服务中占有极大数据量的服务,在企业网中,HTTP是最容易泄漏企业非授权资源的服务。怎样把这种服务提供给授权用户,而又对非授权用户保持秘密?怎样把这种限制措
10、施搬上无线网?在无线网络中,又怎样针对无线网的特点考虑其他的限制因素?这些都是困扰着用户的问题,最终,厂商选择了服务重定向,这是一个最简单也最解决问题的方法。通过网络管理员最简单的设置,从AP上直接过滤对非授权资源的访问,重定向非授权用户的网络链接,从而达到防止数据外泄的目的。本论文在802.11无线网络基础之上,从最基本的HTTP数据包入手,分析了HTTP数据包的内容,HTTP数据包在客户端和服务器端的交互顺序,而后,根据分析得到的数据得出了关于服务重定向问题实现的思路和方法,做出了理论上最优的设计。由于该功能是在无线访问点(AP)上实现的,这种嵌入式的环境不同于拥有较高硬件资源的专业服务器
11、,因此对实体设计提出了比较苛刻的要求,使得最初的实体设计显得异常简单。同时,无线网络和有线网络从传输媒介上的差异,又要求设计开发人员必须将过多的时间和精力集中在无线网的传输能力和传输速度上,这从另一个方面对编码实现提出了较高的要求。在综合了简单的设计和精练的编码原则以后,服务重定向问题得到圆满的解决。2 802.11无线网络基础2.1 无线网络的类型图2-1典型的无线网络拓扑2.1.1 独立网络在图2-1的左边部分就是一个独立基本服务集(independent Basic Service Set),站点之间都在互相可以覆盖的区域内直接相连。最简单的独立基本服务集只需要两个站点。这种网络被用来做
12、短距离短时间的直接通信。2.1.2 基本网络上图的右边部分就是一个基础服务集(infrastructure Basic Service Set),基础服务集和独立基本服务集的差别就是它有一个无线访问点(AP),AP用来为基础服务集中的每个站点做中转服务。一个站点发送到另一个站点的数据首先被送到AP,然后再由AP送到该目的站点。所有与AP相连的站点都必须在AP的覆盖范围内。2.1.3 扩展网络图2-2 扩展网络示意图扩展服务集网络(Extended Service Set)是由互相连接在一起的BSS网络组成的,把BSS连接在一起可以使用有线网络,也可以使用无线网络。在同一个ESS中的站点可以互相
13、访问,AP在ESS中扮演网桥的角色。2.2 无线网络的通信2.2.1 站点和AP的连接过程在AP启动后,它每隔固定时间广播一个信标帧(Beacon),任何无线网站点都能收到该信标帧,信标帧包含了AP和站点连接的所有物理层信息。收到信标帧的站点则会记录该信标帧的内容,供上层选择。若上层有连接到该AP的需求,站点就会发出探测请求报文(Probe Request),请求加入该AP的BSS网络。若AP收到该探测请求报文,则会发回确认帧。确认帧包含目的MAC地址。随后,AP会给该站点一个探测响应报文(Probe Response),站点用该报文的内容来更新有关该AP的所有信息。随后,由站点向AP确认自己
14、的身份,发送鉴权帧(Authentication)。鉴权是一个双向的过程,站点向AP鉴权,表明自己是一个站点,AP则向站点鉴权,表明自己也是一个站点,并且双方都采用同样的传输格式和加密格式。在互相确认身份之后,站点向AP发出关联请求(Association Request),AP在验证站点身份后,接受该请求,给站点返回关联响应报文(Association Response)。至此,站点和AP的连接过程才完全建立,才能给上层提供数据传输的服务。之所以采用如此复杂的连接方式,完全是由于无线媒介不能提供可靠的物理层数据传输所决定的。图2-3 AP和站点的连接报文序列图2.2.2 AP和分发系统的数据
15、传输在基础网络中的无线站点发出的每一帧都要通过分发系统。一个分发系统囊括了无线媒介和有线媒介,而AP则是分发系统中的桥。无线站点通过分发系统与骨干网络中的主机进行交互。在无线站点之间,因为站点没有直接连接,因此从站点A到站点B的数据传输也是通过分发系统进行的,AP仅仅是分发系统的一个组成部分。2.3 802.11无线网的帧格式2.3.1 基本帧格式图2-4 基本帧格式图基本帧格式如上图,包括帧控制域(2字节),持续时间(2字节),地址域(单地址6个字节,地址的个数随着帧类型的不同有改变),顺序控制域(2字节),帧实体域(0-2312字节),以及最后的帧校验序列,MAC帧相似,帧校验序列4个字节
16、。2.3.2 管理帧图2-5 信标(Beacon)帧的帧格式图2-6 探测请求帧(Probe Request)的帧格式图2-7 探测响应帧(Probe Response)的帧格式图2-8 鉴权帧(Authentication)的帧格式图2-9关联请求帧(Association Request)帧的帧格式图2-10 关联响应帧(Association Response)帧的帧格式2.3.3 控制帧图2-11确认帧(Ack)帧格式图2-12 请求发送帧(RTS)帧格式图2-13 允许发送帧(CTS)帧格式2.3.4 数据帧图2-14 数据帧格式数据帧是一个独立的子类帧,一个数据帧包含帧控制域,持续
17、时间域,地址域(3个或4个),顺序控制域,帧实体域和冗余校验域。2.4 AP的功能2.4.1 无线中继在BSS中,AP本身也是一个可以充当站点的设备,它最基础的功能是给站点间提供一个数据中继。当站点S发送数据给站点D的时候,站点S直接将数据传送给AP,AP再根据无线媒介的使用状况,将该数据传送给站点D。这样,就可以适用于大规模的数据交换,并且极大的拓展了无线网的覆盖范围和无线媒介的使用效率。2.4.2 网络桥接AP是分发系统的一个最基础的节点,将接入站点和骨干网络连接起来。AP可能接入无线骨干网络,也可能接入有线骨干网络。在接入无线骨干网络的时候,AP可以充当一个站点。在接入有线骨干网络的时候
18、,AP则负责将无线网络的数据包在链路层转换格式,变成可以使用有线网络的数据包,完成从无线到有线的转换作用。同是,又将骨干网络上的目的地为无线站点的数据重新组装,变成可以在无线媒介中传输的数据,最终送达目的地,完成从有线到无线的数据转换。3 TCP/IP协议简介3.1 TCP/IP的分层TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到20世纪90年代已经成为计算机之间最普遍的组网方式。TCP/IP协议是一组不同层次上的多个协议的组合,最基础的部分是一个分为四层的协议系统。图3-1 TCP/IP协议分层图链路层也称为数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计
19、算机对应的网络接口卡。它们一起处理通信中的物理细节。网络层处理分组在网络中的活动,包括路径的选择,网络的管理等。运输层为两台主机上的应用程序提供端到端的通信,主要包括两个协议,面向连接的TCP协议和无连接的UDP协议。应用层处理特定的应用程序细节,应用层是面向用户的,提供如FTP,SMTP,SNMP等最基础的网络应用。3.2 数据链路层在TCP/IP协议族中,链路层主要有三个目的:1为IP模块发送和接收IP数据报;2 为ARP模块发送ARP请求和ARP应答;3 为RARP模块发送RARP请求和RARP应答。TCP/IP支持多种的链路层协议,如以太网,IEEE802.3网络,串行线路IP网络,以
20、及点对点协议。以太网是当今TCP/IP采用的主要的局域网技术,它采用CSMA/CD的接入方法,含义为带冲突检测的载波侦听多点访问。基本速率为10Mb/s,地址为48比特。图3-2 以太网封装格式图IEEE802委员会公布了另一个与以太网稍微不同的链路层协议,其中802.3针对CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络,这三个链路层协议都包括802网络共有的逻辑链路控制(LLC)。图3-3 IEEE802.3封装格式图3.3 IP协议IP是TCP/IP协议族中最核心的协议,TCP,UDP,ICMP,IGMP数据都以IP数据报格式传输。IP层提供不可靠,无连接的数据传
21、输服务。不可靠是它不能保证IP数据报能成功到达目的地。无连接是IP并不维护任何关于后期数据报的状态信息。图3-4 IP数据报的格式IP层在内存中有一个路由表,当收到一份数据报并进行发送时,它都要搜索该表。当收到数据报时,首先检查目的IP地址是否为本机的IP地址之一或广播地址,如果是,则送到高层协议处理。如果不是,那么当本机被设置为路由器时,就对该报文转发,如果不是路由器,则直接丢弃。当本机为路由器时,路由选择将首先查找与该报文的目的IP地址一致的路由表表项,如果有就从该对应端口发出。如果没有一致的表项则继续查找网络地址与目的IP地址一致的表项,发到对应的网关。如果仍然没有找到,则发送至默认。3
22、.4 TCP/UDP协议UDP数据报被封装到IP数据报中进行传输,UDP只是把应用程序的数据送到IP层发送出去,它并不保证数据一定到达目的地。UDP数据报包括UDP首部和UDP数据两部分。图3-5 UDP报文的格式TCP提供一种面向连接的,可靠的字节流服务。为了在两个站点之间建立一个TCP连接,需要请求端发送一个SYN报文给服务器端,服务器端返回给请求端上个报文的确认和SYN报文,再由请求端对服务器的SYN报文进行确认,至此一个TCP连接才建立。而TCP连接的中止则需要请求端和服务器端的四次握手才能完成,这些都是为了维护连接所做出的数据传输量上的消耗。图3-6 TCP报文的数据格式3.5 应用
23、层协议应用层主要提供面向用户的服务,大多数的网络应用程序都被设计成客户服务器模式,服务器为客户提供某种服务。在同一层上,双方都由对应的一个或多个协议进行通信。应用程序通常是一个用户进程,应用层关心的是应用程序的细节,而不是数据在网络中的传输活动。应用层含有支持不同应用的多种应用实体,提供多种应用服务,这些服务都是直接与用户交互的,例如,FTP,SMTP等等。4 Vxworks操作系统和开发工具Tornado简介4.1 Vxwroks操作系统简介Vxworks操作系统是美国Wind River公司推出的一种嵌入式强实时操作系统,自20世纪80年代以来,以其不断推出的升级版本,高性能内核以及友好的
24、用户开发环境,在嵌入式实时操作系统领域逐渐占据一席之地,在国内外拥有较多的用户。尤其以成功应用于火星车和爱国者导弹等高科技产品而声名鹊起。4.1.1 Vxworks的基本特点具有一个高性能的操作系统内核Wind,内核的主要特点包括以可抢占式调度为基础,辅以时间片轮转调度的调度策略,支持快速多任务切换,采用中断处理与普通任务分别在不同栈中处理的中断处理机制,任务间通信多样化。有任务切换时间短,中断延迟小,网络流量大等特点。Vxworks具有较好的兼容性,Vxworks是最早兼容POSIX1003.1b标准的嵌入式实时操作系统之一,同时也是POSIX组织的主要会员。Vxworks的TCP/IP协议
25、栈部分与BSD4.4版本的TCP/IP协议栈除了实时性方面有很大差别外,其他方面都兼容,使得基于BSD4.4 UNIX Socket的应用程序可以很方便的移植到Vxworks中。Vxworks支持多种运行环境,支持包括PowerPC,68K,CPU32,SPARC,i960,x86,MIPS等众多的CPU及支持RISC和DSP等技术,支持多种硬件环境也是Vxworks得以流行的一个主要原因,同时,Vxworks同世界诸多硬件厂商有着紧密的联系。4.1.2 Vxworks操作系统的组成Vxworks操作系统包括了进程管理,存储管理,设备管理,文件系统管理,网络协议及系统应用等几个部分。图4-1
26、Vxworks体系结构框图Vxworks的核心,一般称为Wind,包括多任务调度,任务间的同步和进程间通信机制以及中断处理,看门狗和内存管理机制。Wind提供信号量做为任务间同步和互斥的机制,它的信号量类型有,二进制信号量,计数信号量,互斥信号量和POSIX信号量。板级支持包BSP对各种板子的硬件功能提供了统一的软件接口,它包括硬件初始化,中断的产生和处理,硬件时钟和计时管理,局域和总线内存地址映射,内存分配等等。每个板级支持包包括一个ROM启动或其他启动机制。Vxworks的网络部分提供了对其他网络和TCP/IP网络系统的“透明”访问,包括与BSD套接字兼容的编程接口,远程过程调用,SNMP
27、,远程文件访问,以及BOOTP和ARP代理。无论是松耦合的串行线路,标准的以太网连接还是紧耦合的利用共享内存的背板总线,所有的Vxworks网络机制都遵循标准的Internet协议。Vxworks提供了一个实用例程的扩展集,包括中断处理,看门狗计时器,消息登录,内存分配,字符扫描,线缓冲和环缓冲管理,链表管理和ANSI C 标准。4.2 开发工具Tornado简介Tornado是与Vxworks相配套的集成开发环境,以其提供完善而实用的编辑,编译,连接,源代码级调试等诸多调试工具和调试手段而闻名。Tornado给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境.4.2.1 T
28、ornado IDE的主要组成Tornado是交叉开发环境运行在主机上的部分,是开发和调试Vxworks系统不可缺少的组成部分。Tornado的基本目的和作用就是将与操作系统及应用程序无关的工作,如编辑,编译,测试,配置等工作与目标机分离开来,使这些工作一方面不会与操作系统争夺资源,另一方面通过将它们作成一个集成开发环境来方便系统的开发和调试工作。同时,由于该集成开发环境与目标机通过统一的接口连接,并为接口提供了丰富的API,使得用户可以方便的添加和修改开发工具。Tornado的组成部分有:集成的源代码编辑器,工程管理工具,集成的C和C+编译器和make工具,用于收集可视化资源,监视目标系统的
29、浏览器,图形化的增强调试器CrossWind,C语言命令外壳windsh,集成的Vxworks目标仿真器VxSim,集成的软件逻辑分析仪WindView,还包括各种选项,可以改变归TornadoGUI的外观等。使用TornadoIDE,可以大大缩短嵌入式开发周期.Tornado支持动态连接与加载,允许开发者可以分批将目标模块加载到目标系统上去。这样,编辑-测试-调试的周期就会大为缩短,而且所有的模块都是可以共享的,主机上的应用程序模块也不需要重新链接,为开发者省去了很多通常的开发步骤。4.2.2 Tornado的核心开发工具Tornado软件工具包的核心工具是各个Tornado软件工具包都具有
30、的开发工具,主要包括以下几种:图形化的交叉调试器(Debugger)CrossWind/WDB这是一个远程的源代码集成调试器,支持任务级和系统级调试,支持混合源代码和汇编代码显示,支持多目标机同时调试。它的加速器特征包括开发者可以成组的观察表达式的观察窗口;可以在调试器的图形界面中迅速改变变量,寄存器和局部变量的值;可以为不同组的元素设定根值数,通过信息规整和分类的方法有效的提供信息,还提供开发者熟悉的GNU/GDB调试器引擎,具有很强的灵活性。工程配置工具(Project facility/Configuration)工程工具简化了Vxworks应用程序的组织,配置和建立工作,使得工程管理和
31、配置的许多方面实现了自动化,增强了开发小组的专业技术,单独的组件可以单独独立开发,小组中各个成员可以独立工作而不相互干扰。它的功能主要有makefile自动生成维护,软件工程维护,自动的依赖性分析,代码容量计算,自动裁剪。集成仿真器(Integrated Simulator)仿真器做为核心工具包含在各个软件包中,因而允许开发者在 没有BSP,操作系统配置,目标机硬件的情况下,使用Tornado迅速开始开发工作。但该仿真器都是限制版本的,如果想获得全部功能的仿真器,可以根据所买的软件包的条件从WindPower可选工具进行选择。诊断分析工具(WindView for the Integrated
32、 Simulator)WindView是一个图形化的动态诊断和分析工具,主要是向开发者提供目标机硬件上实际运行的应用程序的许多的详细情况。它可以和VxSim一起使用。这种权功能版本的WindView提供了运行在集成仿真器上的Vxworks应用程序的详细的动态行为,图形化显示了任务,中断和系统对象互相作用的复杂关系,还可以选择用于监视目标硬件系统行为。C/C+编译环境(C/c+ compilation Environment)Tornado提供交叉编译器,iostreams类库和一系列的工具来支持C语言和C+语言。交叉编译器进行了很多优化,允许开发者能够迅速产生高效而简洁的代码。Iostream
33、s类库支持C+中的格式化的和类型安全的I/O,也可以扩展到用户自定义数据类型。它对C+语言的支持包括,一场时间处理,标准模板库,运行类型识别,支持静态构造器和析构器的加载器,C+调试器,保证了工具与开发环境紧密的结合在一起。5 数据分析及设计5.1 四种通过AP的HTTP数据流分析5.1.1 抓包时的模拟网络拓扑结构图图5-1 抓包的实验网络拓扑结构在该拓扑图中,对外网和AP来说,测试HUB是透明的,为了便于抓取AP和外网交互的数据报文,特意使用了具有链路层广播能力的HUB来使Host的有线网卡获取AP传输到外网的报文,利于分析。因为有限网卡使用了一个私有的IP地址,所以Host主机不能通过有
34、线网卡与外界交互,保持了通信链路的唯一性。5.1.2 抓包时的使用的设备PC一台(含有线以太网接口)MAC:00-16-E6-55-F2-31。IP:192.168.0.121无线网卡WDA-2320一台(无线接口)MAC:00-19-5B-CA-E7-13。IP:172.18.213.183无线网卡530一台(无线接口)MAC:00-17-9A-C3-4C-E0。IP:192.168.0.50无线访问点一台(AP,含有线出口)无线网卡MAC地址:00:03:7f:be:f0:40 - 00:03:7f:be:f0:46。有线出口的MAC地址:00:03:7f:be:f0:3f 。AP的IP地
35、址:172.18.213.184测试用HUB一台(具体数据无记录)5.1.3 抓包时的有线和无线工具无线网抓包工具:Airopeek有线网抓包工具:Etherpeek5.1.4 包文件的命名规则packets-Proxy/Direct-With-Name/IP-Host/AP-NO . apc/pkt其中Proxy是指通过HTTP代理服务器访问网络时抓的包,Direct则是直接访问,没有使用代理时抓到的包。Name是指在浏览器地址栏直接输入域名访问网络时抓到的包,IP则是直接在地址栏输入IP地址访问网络时抓到的包。Host是在实验机的无线网卡上抓到的包,AP是在AP的以太网出口上抓到的包。NO
36、是指抓到的报文的编号,一般同类型的报文抓取三次,所以编号最高为3。后缀为apc表明是在Host上抓的包,后缀为pkt表明是在AP端抓的包。5.1.5 HTTP域名直接访问报文分析HOST分析文档(3个):packetsDirectWithNameHost1.apcpacketsDirectWithNameHost2.apcpacketsDirectWithNameHost3.pacAP分析文档(3个):packetsDirectWithNameAP1.pktpacketsDirectWithNameAP2.pktpacketsDirectWithNameAP3.pkt表5-1HTTP域名直接访
37、问报文分析文档的基本数据文件名报文个数有效报文个数DNS报文个数HTTP报文个数Host1.apc9445243Host2.apc3733231Host3.apc6344242AP1.pkt5653251AP2.pkt211028AP3.pkt5541041表中的报文个数是文件中抓包所获取到的所有报文的个数,包括广播报文,非本机报文等。表中的有效报文个数是测试主机和AP及服务器交互的HTTP报文总数。在HTTP的报文交互过程中,首先是浏览器将地址栏内的域名解析成IP地址,所以,在5个数据包文件中,都出现了DNS域名解析报文。DNS域名解析报文没有在AP3.pkt中出现的原因是IE仍然在缓存中保
38、留了上一次对域名解析的结果,因此不需要使用域名解析。在域名解析完成后,Host主机直接使用HTTP协议与HTTP服务器进行交互,其中TCP的三次握手,以及其后的数据交换都很顺利的完成。在测试的整个环境中,不能直接访问外部的HTTP服务器,只能通过代理,因此,在直接访问的测试中,都是使用同一个内网HTTP服务器,因此出现了没有进行域名解析的报文交换序列。图5-2 HTTP域名直接访问报文交换序列图5.1.6 HTTP IP直接访问报文分析Host分析文档(3个)packetsDirectWithIPHost1.apcpacketsDirectWithIPHost2.apcpacketsDirec
39、tWithIPHost3.apcAP分析文档(3个)packetsDirectWithIPAP1.pktpacketsDirectWithIPAP2.pktpacketsDirectWithIPAP3.pkt表5-2 HTTP IP直接访问报文分析文档的基本数据文件名总报文个数有效报文个数DNS报文个数HTTP报文个数Host1.apc17909Host2.apc5242042Host3.apc19808AP1.pkt5753053AP2.pkt11707AP3.pkt29707在地址栏中直接输入IP地址访问HTTP服务的过程相对简单,6个包文件中无一例外的都没有DNS报文,是主机Host直接
40、和HTTP服务器交互的结果,同样由于网络的原因,访问的都是同一个内网的HTTP服务器。图5-3 HTTP IP 直接访问报文交换序列图5.1.7 HTTP 域名代理访问报文分析HOST分析文档(3个)packetsProxyWithNameHost1.apcpacketsProxyWithNameHost2.apcpacketsProxyWithNameHost3.apcAP分析文档(3个)packetsProxyWithNameAP1.pktpacketsProxyWithNameAP2.pktpacketsProxyWithNameAP3.pkt表5-3 HTTP域名代理访问报文分析文档的
41、基本数据文件名总报文个数有效报文个数DNS报文个数HTTP报文个数Host1.apc3215015Host2.apc4173920392Host3.apc8847047AP1.pkt3826026AP2.pkt5747047AP3.pkt1141060106图5-4 HTTP 域名代理访问报文交换序列图在HTTP域名代理访问的报文序列中,所有的从客户端到代理服务器的端口号都是8080,报文的格式与HTTP协议的报文格式是相同的。从客户端到代理服务器端的报文序列中没有出现DNS报文,是代理服务器完成了相应的域名解析的工作。在报文交互序列中,有一个协议上的302状态,这是一个HTTP域名重定向的状
42、态,服务器告诉客户机,所访问的资源暂时移动到了其它的位置,并且返回了一个新的该资源的URI。随后,客户端主机直接向代理发出了该URI的GET请求,并得到了响应。这可以给HTTP重定向的研究提供一个新的解决思路,即将返回的URI指向用户设置的URI。但有一个细节不明确,在发出该URI的请求后,代理服务器是否进行了第二次域名解析,并抛弃了前一阶段获取的数据。并且,如果在这一阶段处理数据,AP要接受TCP连接时的报文,模拟一个简单的代理服务器,并不需要获取数据,直接告诉客户端主机资源的改变位置。5.1.8 HTTP IP代理访问报文分析HOST分析文档(3个)packetsProxyWithIPHo
43、st1.apcpacketsProxyWithIPHost2.apcpacketsProxyWithIPHost3.apcAP分析文档(3个)packetsProxyWithIPAP1.pktpacketsProxyWithIPAP2.pktpacketsProxyWithIPAP3.pkt表5-4 HTTP IP代理访问报文分析文档的基本数据文件名总报文个数有效报文个数DNS报文个数HTTP报文个数Host1.apc3215015Host2.apc4173910391Host3.apc8846046AP1.pkt1161130113AP2.pkt5751051AP3.pkt114108010
44、8HTTP IP代理访问的报文序列和域名代理访问并没有任何质的差别,因为代理服务器屏蔽了关于DNS解析部分的报文,所以在报文序列上几乎没有什么变化。客户端告诉代理自己需要访问的IP地址,然后代理去获取数据,在此时,如果服务器的实现方法不一样,则可能出现302 Moved状态,然后客户端会重新发出GET请求,数据由代理返回给客户。图5-5 HTTP IP代理访问报文交互序列图在客户端与服务器端的HTTP报文交互数据中,还有一类数据需要特别注意,那就是客户端使用浏览器管理AP时发送到AP的WEB服务器的请求。当管理AP的动作发生时,用户在浏览器中实际输入的是AP的IP地址,报文的交互顺序和HTTP
45、 IP直接访问保温交互序列的顺序是一样的,但这类数据是不能被重定向的数据,否则会对普通用户的使用造成非常大的麻烦。5.2 与DNS报文有关的设计思路5.2.1 修改DNS查询报文中的URL字段在直接访问HTTP SERVER的用户数据流中,首先出现的是DNS查询和应答数据流,这就给我们提供了一个解决重定向问题的最简单的思路。修改DNS查询报文中的查询地址字段,将用户要访问的网页的URL替换为我们需要重定向的页面的URL。因此最初的设计就是在这个想法上做出的。鉴于这个思路的单一性,在设计中并没有多少值得深究的问题。全面检查存放在TCP/IP协议栈中的需要转发的报文数据,找到DNS报文,并修改它的
46、查询字段,计算校验和,然后重新送到网络媒介上去。5.2.2 发送重定向页面的DNS应答修改DNS查询报文中的URL字段从理论上来说是很简单的,但在实现上则可能要麻烦一点,找到查询URL字段的位置,涉及到大数据量的查找,对AP来说是一个比较大的负担。因此就有了下边的想法。由AP做一个简单的DNS服务器,只负责将查询指定到重定向页面的IP地址。当收到DNS查询的报文的时候,并不查看查询报文实际查找的URL,而直接组包,将重定向页面的IP地址发给DNS查询客户端,这样不用进行内存中大数据量的查找工作,由于重新组包的工作是由代码人员独立完成,因此,校验和的计算也变的非常简单,不会过度消耗AP的CPU资源,是一个技术上可行的比较好的办法。5.3 与HTTP数据报文有关的设计思路直接处理DNS查询和应答的数据报对网络使用来说有很大的风险。客户端的很多服务都需要使用DNS