首页  ·  知识 ·  基础设施
无线ip网关的设计
佚名  http://tech.ddvip.com  数据中心  编辑:dezai  图片来源:网络
1 概述   在实际网络中,许多不在同一地点的局域网之间需要交互信息,为实现专用无线网(数据链)与局域网之间的互连,而研制的具备下述功能的网关。首
1 概述

  在实际网络中,许多不在同一地点的局域网之间需要交互信息,为实现专用无线网(数据链)与局域网之间的互连,而研制的具备下述功能的网关。首先,实现IP级互连:即某一局域网的IP数据报经过网关的转换后可以通过无线网传到另一网关,再经转换后,IP数据报可到达另一局域网的相应的主机上,如图1所示;其次,实现连接认证。当网关启动时,与另一网关进行连接认证,当认证通过时,才建立IP连接。

  

  实验采用自主开发的软件,工作在Windows 9x操作系统下,在局域网中获得所有的IP数据报,通过判断、修改Ethernet头信息,将IP数据报送至串口,通过连接在串口的无线设备发送出去,目的网络的网关串口上连接的无线设备接收到后,通过网关转发到目的计算机。从功能上说,网关计算机实现的是路由器的功能。

  2 路由器的原理与作用

  2.1 路由器原理

  路由器(Router)是一种典型的网络层设备。它在两个局域网之间按IP数据报传输数据,在OSI / RM之中被称为中介系统,完成网络层中继或第三层中继的任务。路由器具有判断网络地址和选择路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,它不关心各子网使用的硬件设备,但要求运行与网络层协议相一致的软件。路由器分本地路由器和远程路由器,本地路由器是用来连接网络传输介质的,如光纤、同轴电缆、双绞线;远程路由器是用来连接远程传输介质,并要求相应的设备,如电话线要配调制解调器,无线要通过无线接收机、发射机。路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据--路由表(Routing Table),供路由选择时使用。路由表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路由表又分为以下两种:

  1. 静态路由表

  由系统管理员事先设置好固定的路由表称之为静态(Static)路由表,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。

  2. 动态路由表

  动态路由表是路由器根据网络系统的运行情况而根据一定的路由选择算法自动调整的路由表。路由器根据路由协议(Routing Protocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。

  2.2 路由器功能

  路由器的功能主要有以下五个方面:

  1. 网络间截获发送到远地网段的报文,起转发的作用。

  2. 选择最合理的路由,引导通信。

  3. 路由器在转发报文的过程中,为了便于在网络间传送报文,按照预定的规则把大的数据包分解成适当大小的数据包,到达目的地后再把分解的数据包包装成原有形式。

  4. 多协议的路由器可以连接使用不同通信协议的网络段,作为不同通信协议网络段通信连接的平台。

  5. 路由器的主要任务是把通信引导到目的地网络,然后到达特定的节点站地址。后一个功能是通过网络地址分解完成的。

  由上述可知,根据本项目的具体要求,所设计的无线网关功能上实现了路由器的一部分作用,但并不是一个完整意义上的路由器。在设计和实际编程实现的过程中参照了现有路由器的一些实现方法,但比作为商品的路由器较为简单。3 系统设计与实现

  3.1 系统结构

  系统结构如图1所示。

  对LAN而言,无线数据链是隐含在网关内的协议实体,它对LAN1和LAN2都是透明的。对外部而言,半网关1和半网关2是一个整体网关,它完成与IP有关的信息处理,路由选择和LAN内部物理寻址。两个LAN间的IP数据报传输处理过程如图2所示。这里网关主要解决转发决策、时延处理和地址转换等。

  3.2 半网关的体系结构

  VXD:从本地LAN接收和向本地LAN发送MAC帧;

  LAN接收:去掉VXD传递的数据中的MAC帧控制信息,并根据目的IP地址决定是否将其转给IP处理模块;

  LAN发送:根据IP模块转来的IP的目的IP地址,查找对应的MAC地址,进而组成完整的MAC帧交由VXD发送到本地LAN;

  IP处理模块:负责路由选择和其他IP层处理,并将LAN接收模块交来的IP数据报处理后交给 line发送模块,将Line接收模块交来的IP数据报交给本地LAN发送模块;

  Line接收模块:把从数据链路接收的完整IP数据报交给IP处理模块;

  Line发送模块:把从IP处理模块接收的IP数据报发送到数据链路上。由上述功能可以看出,若把网关看作是一个双向系统,那么入口端负责IP数据报的过滤,出口端负责IP数据报的转发。连接认证模块负责在建立IP连接前两个半网关的认证。

  管理模块:负责半网关的进程调度,并提供地址库的修改接口。

  对网卡的操作通过调用VXD软件实现。

   此外,半网关中附有一个地址库,存储本地LAN的IP地址和对应的MAC地址的信息,供LAN发送和LAN接收模块查询或调用 4 系统实现

  4.1 软件结构

  软件开发平台为Windows 95 / 98,开发软件为Microsoft Visual C++ 6.0。

  Windows 95支持多线程运行,一个软件可以创建多个线程同时执行不同的功能。进程间的运行是互相独立的,有各自的堆栈。网关功能模块和串口通信模块是同时运行的,需要设计成两个单独的线程。考虑到串口通信模块中数据的收发也是同时进行的,因此将串口通信模块设计成收发两个进程。

  4.2 模块设计

  4.2.1 认证模块设计

  开机后首先进行连接认证。在实施认证时,网关软件以Client和Server的方式运行,每个半网关均工作于Client / Server 模式,即都包含Client和Server实体,任何一方都可以请求建立连接。当请求超时,请求方将退出请求等待状态,待对方请求时再建立通信连接。在认证通过前不启动软件的网关功能,认证通过后开放网关功能。

  软件提供加密函数的接口,对本地输入的用户名和口令加密后传送。接收端提供认证函数的接口,返回认证结果。

  4.2.2 数据帧的监听和发送

  网关软件运行后,用户通过菜单命令启动网络监听线程。网络监听线程负责接收和发送数据报。网络监听线程首先从外部读入初始化信息,包括本机IP地址、NDIS序号、网络ARP表、路由表。然后装载VXD程序,并进行初始化,完成监听的准备工作。

  接下来线程开始循环访问网络接收缓冲区和串口缓冲区,对其中的IP数据报进行分析,转发。

  对于从网络接收缓冲区得到的数据报,网络监听线程首先对其目的IP地址分析,判断该数据分组是否需要转发。对于需要转发的,网关计算机给它加上相应的数据链路的头信息,并进行码字透明处理后存入串口发送缓冲区;对于不需要转发的数据报不予处理。这样的处理主要是为局域网中可能存在多个网关而设计的。 对于从串口接收缓冲区得到的数据报,网络监听线程首先提取该数据报的目的IP地址,通过该IP地址查询ARP表得到目的主机的MAC地址。线程在该数据报前加上MAC帧头,通过调用VXD接口函数发送该数据报。 4.2.3 串口通信模块设计

  串口通信部分为上层网关功能模块提供透明传输。实验规定的串口通信速率很低(4800bit / s),当局域网的数据流量增大时,将成为整个通信的瓶颈。因此,对这部分软件的主要要求是在保证通信误码率低的基础上达到高效。

  串口通信包括发送和接收两部分,以全双工的方式工作。这样可以保证串口的工作效率。采用线程的工作方式也便于和整个软件其他模块,如与上层网关功能模块之间的协调运行。

  1. 数据发送模块

  IP数据报的发送通过一个独立的线程来进行。由于串口通过无线链路连接,采用短波通信。误码率较高,因此要求一定的传输协议来保证数据的可靠传输。实际实施时,采用奇校验和停止等待协议来保证串口数据的可靠传输。每一个字节的传输都采用奇校验方式。在发送一个IP数据包时采用停止等待协议。每次发送数据时,先查询是否有确认或出错帧要发送,如果有,则发送确认或出错帧。如果没有,则查询数据缓冲区是否由IP包要发送。如果有,则从数据缓冲区中取出一个包,附上帧头和数据起始标志进行发送。发送完数据后,等待对方返回确认,如果对方在规定时间内没有返回确认则重新发送刚才的数据。在等待期间不发送新的数据,但是如果本地接收数据后需要发送确认消息给对方,则尽快发送。

  在本软件中,两个半网关用于连接两个局域网。对串口通信的要求是双向高速。两个半网关可能同时有大量数据要传送。当使用停止等待协议时,停止等待协议的等待时间应为对方发送最大一个数据包所需要的时间。根据实验得知,在以太网上,最大数据包长度为1500字节,因此,等待时间应为:1500×2×8 / 4800=5s以上时间是最大等待时间。在实验中,得到平均等待时间为853ms。因此,在软件中设置等待时间为1s。

  2. 数据接收模块

  接收模块由消息响应函数完成。先搜索报文头,对报文头进行处理。再判断接收帧的类型,作出相应处理。接收完后,查询数据接收错误标志,如果有错误发生,则丢弃该数据包;反之,将该数据包存入缓冲区。

  5 系统测试与应用前景

  WWW是目前Internet上的主要服务,它是基于TCP / IP的典型应用。我们以这项服务对所开发的网关软件进行了测试。实验表明,网关软件原理正确,开发获得成功。由于采用了串口通信技术,该成果可经简单改装,用在基于调制解调器的网络互连等多方面,如在监控系统的各级之间,公司总部与分公司,办事处之间实现廉价的LAN互联。避免采用费用昂贵路由器。具有实际的应用意义

本文作者:佚名 来源:http://tech.ddvip.com
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的