无线数据转发

2024-09-05

无线数据转发(精选7篇)

无线数据转发 篇1

摘要:铁路无线Mesh网络不仅要求用户数据包按照确定的无线多跳链进行数据转发, 而且需要根据节点故障概率的动态变化进行自适应的调整。为此设计了用户/管理数据包选择性转发策略, 并基于Linux开源代码进行了具体的功能实现。实验结果表明, 基于用户/管理数据包选择性转发策略的铁路无线Mesh网络能正确而高效地进行数据转发, 同时可根据Mesh节点故障概率的动态变化进行自适应的转发路径调整。

关键词:铁路无线Mesh网络,无线多跳链,选择性转发策略,尾节点

互联网已经成为人们生活的一部分, 但是在旅客列车上至今还难以提供高效的互联网服务, 旅客列车Internet应用成为国内外的研究热点之一[1]。如图1所示, 文献[2]提出了一种榕树型拓扑, 并设计了一种多出口总线结构的铁路无线Mesh网络。理论分析表明:铁路无线Mesh网络具有较高的传输带宽和较低的传输延迟, 部署便捷, 结构调整灵活, 适合于铁路无线宽带覆盖的部署。

铁路无线Mesh网络由交换控制中心 (Switch Center, SC) 、Mesh网关 (Mesh Gateway, MG) 和Mesh路由器 (Mesh Router, MR) 构成。其中, SC是铁路无线Mesh网络的核心, 通过它实现网络的集中式管理。MR是部署在铁路沿线的多模Mesh节点, 为部署在列车上的Mesh终端 (Mesh Client, MC) 提供无缝的无线宽带接入, 当它与有线网络出口直接连接时, 它就成为MG, 同时负责起进行无线/有线网络数据转发的任务。MC承担着车-地无线互联的任务, 随着列车快速地从一个MR切换到下一个MR而保持着不间断的网络连接。

MR是铁路无线Mesh网络的主体, 它承担着MC接入、ingress和egress数据回传3项主要任务。MR由3个无线模块和1个有线模块构成[2], 其中3个无线模块分别负责这3项任务。当该节点作为网关节点时, 由有线模块负责与有线网络的数据传输任务。MR设计为一个2层网络设备, 采用bridge模块将4个网络模块连接在一起, 实现数据包的转发。

根据bridge的数据包转发策略[3], MRi接收的数据包可能同时通过MRi-1和MRi+1转发给SC, 从而导致重复数据包的出现, 严重影响铁路无线Mesh网络的性能。为此, 文献[2]设计了动态最小生成树算法。该算法根据节点故障概率的动态变化, 导出一棵不包含任何回路的最小生成树, 从而用户数据包可按照节点失效危险性最小的路径进行转发。在铁路无线Mesh网络中, 该路径实质上是一条无线多跳链l<i, j>=vi, vi+1, …, vj。其中, vj是MG节点, vi是最后一个MR节点。

bridge的数据包转发策略不能满足铁路无线Mesh网络这种特定的需求。本文将对这种需求进行深入分析, 提出用户/管理数据包选择性转发策略, 并基于bridge开源代码对该策略进行具体的功能实现。

1 选择性数据包转发策略

显然, 为避免重复数据包的出现, 节点vi不能将用户数据包转发给相邻另一条无线多跳链l<i-1, j-1>=vi-1, vi-2, …, vj-1, 而只能沿l<i, j>转发, 从而在逻辑上将铁路无线Mesh网络转化为一棵不包含回路的普通树型结构。

同时, 节点vi需要将包含节点故障信息或最小生成树信息的管理数据包不受限制地转发。因为若无线多跳链l<i, j>=vi, …, vk-1, vk, vk+1, …, vj的某节点vk出现故障, 则vivk-1的节点故障信息不能再通过l<i, j>转发到SC, 而只能通过l<i-1, j-1>转发给SC。SC根据节点故障概率的动态变化, 更新最小生成树, 并将最小生成树信息发布给各Mesh节点, 从而得到两条新的无线多跳链l<k+1, j>=vk+1, …, vjl<k-1, j-1>=vk-1, …, vi, …, vj-1。

所以, 铁路无线Mesh网络要求对用户和管理数据包进行选择性的转发, 即必须阻止用户数据包而许可管理数据包转发给相邻的另一条无线多跳链。

2 总体方案设计

由于MR采用bridge实现数据包的转发, 选择性数据包转发策略将基于bridge开源代码进行具体的功能实现。为此, 首先定义实现方案应遵循的两个基本原则:

用户无关性原则:必须保证用户应用的透明性;

最小修改原则:在保证功能实现的前提下, 仅对bridge开源代码进行最小修改。

对于用户数据包的转发, 铁路无线Mesh网络基于最小生成树算法, 从逻辑上划分为若干条以MG节点为终点的无线多跳链。对于每条无线多跳链, 其接入用户的数据包均只能经由该路径转发。我们不妨定义无线多跳链的最后一个MR节点为尾节点。显然, 若尾节点不将用户数据包转发给相邻的另一条无线多跳链, 则可实现无线多跳链的逻辑划分。同时, 尾节点的设置决定了如何进行这种无线多跳链的逻辑划分。

对于管理数据包的转发, 铁路无线Mesh网络要求不受无线多跳链逻辑划分的限制, 即尾节点应该允许管理数据包转发给相邻的另一条无线多跳链。

为此, 选择性数据包转发策略将主要集中在尾节点的功能实现。对任意两个相邻MG节点间的MR节点集合, 根据最小生成树信息, 设置且仅设置两个尾节点, 从而确定出两条无线多跳链。若无故障节点, 则两个尾节点是相邻节点, 否则两个尾节点之间的MR节点将不属于任意无线多跳链, 成为孤岛。并且, 尾节点应该阻止用户数据包而许可管理数据包转发给另一条无线多跳链, 即尾节点至少需要具备如下两个功能:

功能I:可阻止用户数据包而许可管理数据包转发给另一条无线多跳链;

功能II:可动态实现正常节点与尾节点的状态变换。

显然, 实现功能I的关键是如何识别用户数据包和管理数据包, 实现功能II的关键是如何更新正常节点和尾节点状态。

基于用户无关性原则, 我们必须设置一个bridge处理程序可以读取的、与所有用户数据包均不同的管理数据标志。根据数据包的包头定义[4], 在给定的3个标志位中, 第一位是未使用的位, 系统将默认地赋值为0。从而对于所有的用户数据包, 该标志位的值均为0。如果管理数据包将该标志位设置为1, 则可以通过该标志位识别用户数据包和管理数据包。我们不妨称该标志为管理数据标志。

基于最小修改原则, 我们必须设置一个bridge处理程序可以读取的、与其它所有Mesh节点不同的尾节点标志。根据bridge的stp协议实现方法[5,6], 网桥的每个端口均可以通过用户配置命令设置其pathcost值, 在存在环路的情况下, bridge网桥处理程序根据各端口的pathcost值决定数据包该往哪个端口转发。由于铁路无线Mesh网络由最小生成树算法避免了环路的出现, 所以各端口的pathcost值不再需要, 为此可借用于标志尾节点。在默认情况下, 所有Mesh节点各端口的pathcost值均为100, 不妨设尾节点与另一无线多跳链相连接的端口的pathcost值为1 000, 则bridge处理程序可以通过该标志判断是否向该端口转发数据包。我们不妨称该标志为尾节点标志。

根据以上的分析和方案设计, 我们将基于bridge开源代码进行具体的实现。

3 程序设计与实现

3.1 尾节点功能实现

bridge的端口处于混杂工作模式, 它接受与之相连的所有LAN传送的每一个数据包。当数据包到达时, bridge必须决定将其丢弃还是转发。钩子函数net/core/dev.c/net_bh () 接收到数据包之后将其交给bridge处理程序br_input.c, 经过如图2所示的处理流程, 判断该数据包应该被丢弃, 还是转发给一个或多个目标端口。

当查找到数据包的转发目标端口后, bridge处理程序br_forward.c将判决目标端口是否应该转发该数据包, 判决子函数should_deliver () 的实现原型如下:

根据功能I的要求, 对于与另一个无线多跳链连接的端口p, 它不应该转发用户数据包。为此, 我们只需要给判决子函数should_deliver () 增加两个判决条件即可实现第I个功能。由于与另一个无线多跳链连接的端口p的p->path_cost恒为1 000, 且用户数据包包头的第一位标志位总为0, 故我们可将判决条件修改为:

if (skb->dev == p->dev ||p->state != BR_STATE_FORWARDING || (p->path_cost ==1000 && skb->nh.iph->frag_off & 0x8000 ==0) )

则可阻止将用户数据包转发给另一条无线多

跳链。显然, 对于管理数据包依然可以转发给另一条无线多跳链。

3.2 管理数据包封装

根据前面的分析, 对于管理数据包需要设置管理数据标志位为1。由于在socket编程中, 数据包的包头将由操作系统自动封装为普通的用户数据包[7], 为此, 我们采用原始套接字 (raw socket) 编程, 并指定数据包的包头封装由用户程序完成, 然后在数据包的包头封装时将管理数据标志位设置为1。为此, 我们编写一个管理数据包发送程序send.c, 其核心代码如下:

3.3 辅助程序设计

为测试管理数据包可通过无线多跳链的尾节点转发给另一条无线多跳链, 在通信对端设计了一个简单的管理数据包接收程序receive.c。该程序调用函数recvfrom () 接收数据, 然后将相应字节内容读出, 其核心代码如下:

4 实验与验证

4.1 实验平台

为验证本文提出的方法是否成功实现功能I和II, 本节在实验室环境下建立了如图3所示的实验平台。

节点1和节点3为两台通信主机, 它们之间的数据通信由节点2进行转发。其中, 节点1可以发送普通的用户数据包 (执行ping 211.80.197.3) , 也可以发送管理数据包 (执行./send 211.80.197.3) ;节点2配置两块集成了atheros芯片的无线网卡ath0和ath1, 由上节改进的bridge网桥处理模块br0实现数据转发, 它可以允许用户数据包转发 (执行brctl set pathcost br0 eth0 100) , 也可以阻止用户数据包转发 (执行brctl set pathcost br0 eth0 1000) 。

这3个节点的配置为:P4 2.6 GHZ CPU, 512 MB内存, Linux FC4操作系统, 内核版本为2.6.11。节点1、2、3的IP地址分别是211.80.197.1、211.80.197.2、211.80.197.3。下面将基于该实验平台进行具体的功能验证。

4.2 实验步骤

4.2.1 允许管理数据包转发

步骤1:节点2执行brctl set pathcost br0 eth0 1 000设置为尾节点状态

步骤2:节点1执行./send 211.80.197.3产生管理数据包

步骤3:节点3执行./receive接收管理数据包:

4.2.2 阻止用户数据包转发

步骤1:节点2执行brctl set pathcost br0 eth0 1000设置为尾节点状态

步骤2:节点1执行ping 211.80.197.3产生用户数据包, 节点3接受信息

4.2.3 取消尾节点状态

步骤1:节点2执行brctl set pathcost br0 eth0 100设置为正常节点状态

步骤2:节点1执行./send 211.80.197.3产生管理数据包

步骤3:节点3执行./receive接收管理数据包

步骤4:节点1执行ping 211.80.197.3产生用户数据包, 节点3接受信息

4.2.4 实验结论

节点1构造了载荷长度为64B的IPv4_TCP数据包进行测量[8], 在接收端节点3对收到的数据包进行统计。实际测得节点3对不同节点下的不同数据包的丢包率如表1所示:

实验结果表明:无线多跳链的尾节点能很好地实现阻止用户数据包而许可管理数据包转发给另一条无线多跳链, 同时能保证正常节点与尾节点的状态变换。

5 结论与展望

本文设计了用户/管理数据包选择性转发策略, 并基于Linux开源代码, 遵循最小修改和用户无关性原则进行了具体的功能实现。实验结果表明, 基于用户/管理数据包选择性转发策略的铁路无线Mesh网络能正确而高效地进行数据转发, 同时可根据Mesh节点故障概率的动态变化进行自适应的链路调整。下一步将要开展的工作是支持用户大都是快速移动的铁路无线Mesh网络数据包转发策略研究。

参考文献

[1]蒋新华, 邹复民, 林漳希, 等.旅客列车Internet应用与研究现状综述.铁道学报, 2007;29 (5) :103—110

[2]邹复民, 蒋新华, 林漳希, 等.一种基于榕树型拓扑的铁路无线Mesh网络结构.铁道学报

[3]IEEE std802.1D—2004.Media Access Control (MAC) Bridges.2004.6

[4]周明天, 汪文勇.TCP/IP网络原理与技术.北京:清华大学出版社, 2000

[5]朱斌.Linux Socket编程及其在无线网关中的应用.微计算机信息, 2007;23:12—22

[6]Nguyen U T, Jin X.Multicast routing in wireless mesh networks:minimum cost trees or shortest path trees?IEEE Communications Magazine, 2007;45 (11) :72—77

[7]贾明, 严世贤.Linux下的C编程.北京:人民邮电出版社, 2001

[8]周炎涛, 李立明.TCP/IP协议下网络编程技术的实现.航空计算技术, 2002;32 (3) :122—125

无线数据转发 篇2

无线传感器网络中的传感器节点随机分布, 且一般节点都是通过电池供电, 所以无线传感器网络的路由协议的研究重点一直放在如何提高能量效率, 减少能量消耗和延长网络寿命上。但在输电线路监测系统中, 传感器节点位置固定且能源供应不受限制, 因此其路由设计不必再考虑节点能耗问题, 基于此, 本文提出了基于博弈的平行数据转发算法--Mhop-Pg数据转发算法, 该算法不以考察剩余能量和能量消耗为第一要素的转发算法, 而是考察选择产生数据最少, 接受到数据最多的节点 (博弈中最适宜转发的节点) 进行转发。

1. Mhop-Pg算法介绍

1.1 算法的提出

输电线路监测系统是用于监测输电线路故障及其工作状态的无线传感器网络, 完成实时监测的任务。其节点通常部署在被监测线路的线杆之上, 因而属于典型的长链路型网络, 其数据传输到离汇聚节点较近时会出现数据拥塞也就是漏斗效应, 大大降低数据传输量, 影响系统效率, 降低了监测数据的实时性。

在输电监测系统中, 借助LEACH分簇协议的思想, 首先将三条线路进行分层, 然后每层里进行轮动簇头的选举, 每轮中选举出的簇头节点完成簇内数据整合和数据向sink节点的转发, 以分簇数据传送的方式主要考虑簇内节点的检测数据可能有类似性, 数据的融合可以降低sink借点周围的压力, 虽然输电线路检测对节点能耗没有要求, 但是这样做法也节省了节点能量消耗。

1.2 算法特点

Mhop-Pg数据转发算法有以下特点:

1) 监测节点部署位置固定并已知。在输电线路监测无线传感器网络中, 每一个杆塔上的三项线路, 各有一个监测点, 即一个传感器节点。簇内节点的发射功率在2跳和3跳之间, 簇头节点功率在3跳与4跳之间。

2) 监测节点具有不同编号, 由于是三项平行输电线路, 首先平行的层有两位, 标记为0、1、2三层, 即三条线路。而每一路的节点从1开始编号, 编号随距sink节点距离成正比例关系递增。

3) 每层监测节点的簇头在选择时, 基于博弈论 (Game Theory) 对时延条件等条件进行判断从而轮流选择簇头。

1.3 算法拓扑结构

Mhop-Pg数据转发算法的拓扑结构如下图:

对监测系统的无线传感器的三层分割, 采用虚拟分层可以使得网内数据转发的数据量降低, 并使得每层对于sink节点是对等的, 每层的数据转发是相对独立的。因此以其中一层为例, 进行Mhop-Pg数据转发算法描述。一层的分簇拓扑如下:

2. 算法描述

2.1 簇头选举触发器设置

Tmer1用来触发健康数据包的发送。如果节点A在5个Tirner1间隔内没有收到同簇B节点的健康数据包, 则节点A将删除本地节点B的相应收益Income、id信息记录。Nash-Timer:Nash-Timer=0并且在阀值 (10ms) 后依然满足Nash-Timer=0时触发新簇首节点的选举进行。

其中:C.In:簇头节点产生的数据包;

C.Out:簇头节点收到的数据包;

C.Forward:簇头节点转发的数据包;

触发点选择的博弈原理:在簇头节点达到Nash-Timer触发点, 即Nash-Timer=0, 是一个动态平衡点。即簇头节点将自身产生的数据包和收到的数据包全部转发到下一跳节点的瞬间, 激发了簇头选举。这个触发节点符合对网络稳定的博弈最优。首先, 这个平衡触发点出现的时机一定是在网络内信息量较少的时候, 由于选举需要簇内节点互相通信, 所以在平衡触发点对网络通信影响最小。其次, 由于平衡触发点簇首节点不在工作状态, 因此, 丢包和对簇间通信影响也最小。

另外, 阀值的设置需要根据具体网络设置不同的阀值, 设置阀值的目的是减少不必要的簇首选举被激发, 从而影响网络的效率。

2.2 簇头选举办法

与LEACH等分簇协议基于概率方法选举簇头以及MHop-CL路由协议利用节点部署位置和节点能量作为重要参考不同, Mhop-Pg数据转发算法使用簇头轮换机制选举簇头, 依据各节点已转发数据量和产生数据量所形成的博弈结果进行簇头选择。

按照博弈算法构建参与人和受益函数, 即产生数据量k.In获得负收益, 收到的数据量k.Out记为正收益, 二者计量单位均为数据流量。则基于博弈的数据轮换策略即为:

k-Incom=k.Out-k.In

其中, k-Cid表示第k个簇的簇头节点号, k代表簇编号。k-Incom为主参数是每个节点的收益, k-Id为次参数, 若节点的Income值相等, 则选择节点编号小者作为簇头节点。每次选举完成后, 记录的变量都归零。

2.3 簇内数据通信和簇间多跳数据转发的建立

被选举成簇头的节点, 若之前的簇头节点是自己则不广播声明信息, 若上轮簇头节点不是自己则用发射功率P广播簇头声明消息Leader-msg (id, k) , 簇内节点接收到簇头声明消息后, 确认簇头并以发射功率Pm (Pm

将其簇内节点数据整合后簇头节点转发到下一跳的簇头节点。以第一轮簇头选举为例, 其网络拓扑图如图所示。

3. 分析和结论

在不考虑节点失效的前提下, Mhop-Pg数据转发算法, 并非像有的数据转发算法一样由簇内节点轮流担任簇头, 而是允许有可能一个簇头节点连续担任簇头的情况出现, 因为输电线监测系统不存在能量限制, 所以Mhop-Pg数据转发算法不是以考察剩余能量和能量消耗为第一要素的转发算法, 而是考察选择产生数据最少, 接受到数据最多的节点 (博弈中最适宜转发的节点) 进行转发。每当选举被触发, 则进行簇头节点选举。Mhop-Pg数据转发算法满足博弈论中自身利益最大化要求的策略, 从而实现网络整体利益最优。若有节点失效情况的发生, 无法发送健康数据包, 则同簇内节点在5个Time1周期后将删除其Income记录, 簇头选举将在其余两簇内节点中产生, 只有当同簇内3个节点全部失效时, 网络才会出现断裂情况, 可见, Mhop-Pg数据转发算法具有一定的网络鲁棒性和稳定性要求。

参考文献

[1]翟学明, 齐立朔, 朱永利, 于永华.[J]链路型输电线路监测系统中WSN路由策略的研究.计算机应用研究.2010;

[2]杨宁, 田辉, 黄平等.基于博弈理论的无线传感器网络分布式节能路由算法[J].电子与信息学报, 2008;

[3]赵永辉, 史浩山.一种无线传感器网络数据包转发的博弈论算法[J].西安电子科技大学学报, 2010;

[4]Dorigo M, Maniezzo V, Colorni A.nt System:Optimiza-tionby a Colony Cooperating Agents[J].IEEE Trans on Systems, Man andCybernetics, Part B:Cybernetics, 1996, 26 (1) :29—41;

无线数据转发 篇3

一种实现无线网桥内部vlan报文转发的方法。

2 所属技术领域

本发明涉及无线数据通信领域, 特别涉及到无线数据应用中用于连接两个分立网络的的网桥模块。

3 背景技术

3.1 无线网桥简介

无线网桥是为使用无线 (微波) 进行远距离数据传输的点对点网间互联而设计。它是一种在链路层实现lan互联的存储转发设备, 可用于固定数字设备与其他固定数字设备之间的远距离、高速无线组网。无线网桥有三种工作方式, 点对点, 点对多点, 中继连接。

3.2 VLAN技术简介

Vlan技术又称虚拟局域网技术。

VLAN的实现原理非常简单, 通过交换机的控制, 某一VLAN成员发出的数据包交换机只发个同一VLAN的其它成员, 而不会发给该VLAN成员以外的计算机。

使用VLAN的目的不仅仅是隔离广播, 还有安全和管理等方面的应用, 例如将重要部门与其它部门通过VLAN隔离, 即使同在一个网络也可以保证他们不能互相通讯, 确保重要部门的数据安全;也可以按照不同的部门、人员, 位置划分VLAN, 分别赋给不同的权限来进行管理。

3.3 部分厂商解决方案

部分厂商, 例如思科为了解决无线网桥中传递VLAN报文的问题, 使用了修改报文格式, 在无线报文中保留802.1q标准的tag信息的方法;这种方法的弊端在于需要修改无线报文的格式, 在802.11规定的报文格式中添加VLAN tag;增加了报文处理难度, 降低了报文的兼容性。

4 技术方案

4.1 技术方案的基本思路

虚拟局域网技术是当前非常流行的在二层划分冲突域的方法, 用途广泛, 给用户提供非常好的管理方法和操作, 但是, 正是由于虚拟局域网技术是基于网路第二层, 即M A C层的, 它的实现时依赖于M A C层协议的。当前在有线局域网中, 使用广泛的VLAN协议标准是IEEE802.1Q, 另外还有Cisco ISL协议等等。但是这些协议的实现都只涉及到以太网MAC层, 脱离了以太网MAC层, 就无法实现VLAN的划分和传递。

无线802.11协议, 因为无线是一个共享传输介质的通信方法, 即使定义了vlan tag, 也没有办法在二层划分vlan, 隔离冲突域, 所以现有的IEEE802.11协议是一个没有定义vlan的协议。

无线网桥的作用之一是连接分立的距离较远且电缆架设不方便的网络 (局域网) , 比如通过无线连接, 将AP_A和A P_B所带的局域网连接起来。

AP_A和AP_B两边的网络可能存在多个vlan, 但是通过无线网桥传输的时候, 因为二层协议的改变, 无法在两边的配置中统一vlan的划分, 两边的vlan互相是独立的:vlan信息在通过无线网桥的时候被丢失了。

为了能够在无线网桥传输的过程中保留报文的V L A N信息, 我们使用在无线网桥中建立多个虚拟连接的方法来“划分”vlan。

4.2 技术方案的实现要点

一般无线网桥的实现方案, 不支持带VLAN信息的报文的的传输。

为了能够支持VLAN, 使用内部协商过程, 建立不同的“虚拟通信连接”来对应不同的VLAN, 实现的关键步骤有如下。

(1) AP之间采用握手方式建立vlan连接 (通过MAC地址一一对应) , 建立不成功则按照普通方式转发, 不使用VLAN。

(2) 虚拟连接建立成功, 发送方发送前去除VLAN tag。

(3) 接收方接受报文, 按照之前建立的连接信息, 重新给报文打上vlan tag。

连接的建立过程。

4.2.1 说明

(1) AP_A根据自身的MAC地址 (BSSID) 按照一定算法偏移出一个新的M A C (BSSID_A_1) 地址, 用来向AP_B发送虚拟连接建立请求报文。

(2) AP_A使用数据报文向AP_B发送虚拟连接建立请求, 数据报文内容中包含欲建立的连接对应的V L A N信息;当前的BSSID信息, 偏移出的MAC地址, 当前信息标签号等信息。

(3) AP_B接收到请求报文;同样使用当前的BSSID信息按照一定算法经过偏移得到新的M A C (B S S I D_B_2) 地址信息;在AP_B中将BSSID_A_1作为一个"STA"与AP_B相关联。

(4) AP_B接收到反馈信息按照相同格式发送数据报文给AP_A, 确认连接建立;报文的信息标签和步骤1中的不同, 以便区分发起连接步骤和接受连接步骤。

(5) AP_A将BSSID_B_2作为一个"STA"与AP_A相关联;反馈确认信息给AP_B, 完成建立连接的握手过程。

连接建立完毕之后的等效效果图如图1。

唯一MAC对 (BSSID_A_1, BSSID_B_2) 对应一个vlan n。

4.2.2 报文的发送接收过程

如图1, AP_A接收到VLANn的报文;按照如下步骤处理。

(1) 去除报文的VLAN tag, 同时找到对应的标识一个V L A N的M A C对。

(2) 数据报文的四地址格式如表1。

将Address2的内容替换成BSSID_A_1 (一般情况下应该是BSSID_A) , 然后正常发送。

(3) 接收方接受到报文, 察觉Address2的内容是BSSID_A_1, 就将报文转发到对应的vlan n。

(4) 同理AP_B发送报文的流程同上。

4.2.3 连接的断开过程

连接的断开过程同连接的建立过程, 区别在于将BSSID_A_1和BSSID_B_2的关联操作替换成解关联操作。

4有益效果

本发明应用于无线网桥, 使得通过无线网桥的报文通过无线网桥之后可以属于不同的V L A N冲突域, 方便了无限网桥连接的两部分网络的无缝组网。并解决了通过无线网桥的报文无法分类标识的问题, 使得无线网桥可以将不同的报文分开到不同的V L A N中。

摘要:现有的现有的IEEE802.11标准没有规定VLAN信息的携带域, 导致无线网桥在工作时, 没法在一个网桥连接中传递多个vlan的报文, 或则传递之后会导致VLAN信息的丢失;本文介绍一种方法, 使用建立网桥之间虚拟连接的方法实现对VLAN报文的透明转发;使得在无线网桥的通信连接中可以传递多VLAN的报文, 并且在保留VLAN信息的基础上保留了对其他IEEE802.11标准设备的兼容性。

无线数据转发 篇4

1 技术实现

本系统采用IEC-TC57 60870-5-1的通信规约进行数据的封装, 主站和各子站之间采用轮询的方式进行数据的交换, 主站和子站通过的数据包中的地址字段进行识别。该应用是通过扩展通信规约中的地址字段来实现的。现通过实现4级路由转发功能的举例来说明该技术的具体实现。

转发站号:实现转发功能的站点 (站号由13个比特组成, 可包括站号为1~8192) ;

传输方向:数据传输由主站到子站还是子站到主站, 0表示下行 (主站到子站) , 1表示上行 (子站到主站) ;

下行处理标志:数据在下行过程中是否已经由该转发结构中的站点处理过, 1表示未处理, 0表示已处理;

上行处理标志:表示数据在上行过程中是否已经由该转发结构中的站点处理过, 1表示未处理, 0表示已处理。

具体实现过程说明如下:

主站在发送需要转发的数据包之前, 先将转发结构和目的地址结构中的传输方向标志位置为0 (表示下行) , 下行处理标志位置为1, 上行处理标志位置为0。主站发出数据后, 所有子站监听并检测数据包中的传输方向标志位, 当为下行时, 则依次从左到右检测每个转发结构中的转发站号, 若和本地站号不同, 则丢弃数据包;若和本地站号相同, 则检查下行处理标志位是否为1, 为1则先将该标志位置为0, 然后转发数据, 否则将数据包丢弃。若目的地址结构中的站号和本站相同, 并且所有转发结构中的下行标志都为0, 则接收并处理该数据包。

当目的站处理完数据并要发送应答数据包前, 先在应答数据包中将转发结构和目的地址结构中的传输方向标志置为1 (表示上行) , 下行处理标志位置为0, 上行处理标志位置为1。待目的站将数据发出, 所有子站将监听并检测数据包中的传输方向标志位, 当判为上行时, 则依次从右到左检测每个转发结构中的转发站号, 若和本地站号不同, 则丢弃数据包;若和本地站号相同, 则检查上行处理标志位是否为1, 为1则先将该标志位置为0, 然后转发数据, 否则将数据包丢弃。当主站收到上行数据包并且检测到所有转发结构中的上行标志位都为0时, 处理数据包, 整个转发过程结束。具体流程图如下所示:

在实际项目应用中, 通过路由转发, 解决了由于通信距离和通信阻挡等问题引起的数据传输问题。

2 结语

由于GPRS、CDMA等公网数据传输通信方式的兴起, 基于专网的通信方式将逐渐退出传统的数据传输行业, 但是当遇到公网信号未覆盖的区域时, 专网的通信方式还是有它的使用价值的, 特别是在远距离传输时, 本文提出的解决办法具有一定的实用价值。

参考文献

[1]中华人民共和国电力行业标准IEC-TC5760870-5-1远动设备及系统第5部分传输规约第一篇传输帧格式.

无线数据转发 篇5

随着Internet快速发展, 在网络分组化的趋势下, 大约97%的骨干网已经承载了IP业务, 随着接入宽带技术的发展、业务量的增长以及服务质量 (QoS) 保证的要求, 对网络结构和设备的数据转发性能提出更高的要求。通过分析MPLS快速数据转发技术, 将标记交换的链路层数据转发机制与网络层的选路机制进行结合, 提出一种基于ATM的MPLS数据转发方法, 并进行设计和实现, 这种传统逐跳转发和标记转发共存的形式, 能够根据流量最大程度地提高数据转发效率和业务的性能。

1MPLS快速数据转发特性分析

1.1技术特性

MPLS的技术特性主要集中在多协议和标记。多协议是指MPLS既可运行于多种数据链路层协议之上, 如异步传输模式和帧中继, 又可以与多种网络层协议兼容, 如IP和IPX;标记是一个简短的、固定长度的、具有本地意义的标识符, 是MPLS技术的精髓所在。

MPLS数据转发的原理就是以MPLS技术为基础, 在数据链路层和网络层同时实现其转发功能。

国际电联 (ITU-T) 给出MPLS协议参考模型。在数据面, IP数据包经过AAL5的适配后, 转换为ATM信元进行转发;在控制面, MPLS除了采用标记分发协议 (LDP) 和受限路由标记分发协议 (CR-LDP) 之外, 还采用IP协议族中的外部网关协议 (BGP) 、开放式最短路径优先协议 (OSPF) ;在管理面, 采用IP协议族中的简单网络管理协议 (SNMP) 。

1.2网络结构

采用MPLS结构的网络包括边缘标记路由器、标记交换路由器 (LSR) 和标记分发协议 (LDP) 。用户端通过边缘标记路由器与核心网相连, 每个边缘标记路由器可与上百个用户端相连。用户与边缘标记路由器连接的设备 (CPE) 一般运行IP协议, 与MPLS网络独立。值得注意的是, 边缘标记路由器属于网络提供商端的设备。采用MPLS结构的网络如图1所示。

图1中标记交换路由器基于标记来转发IP包, 同时支持网络层的选路功能, 实质是带选路功能的交换机或带交换功能的路由器。

2基于ATM的MPLS数据转发方法

基于MPLS技术的数据转发基本原理是将基于标记交换的数据转发机制与网络层的选路机制结合在一起, 即把数据链路层的快速转发特性与网络层寻路的可扩展性和灵活性集成在一起, 可用于采用二层交换的网络。

当应用于ATM网络时, MPLS把IP寻路和ATM交换有机结合起来, 提供可扩展的IP/ATM集成网络, 具有一些独特的特点。由于MPLS技术的高效与良好的扩展性和ATM强大的转发能力及高可靠性, ATM技术和MPLS技术的结合可以充分发挥在流量管理和QoS方面的作用。同时, ATM技术通过VPI、VCI标识完成信息交换, 具备天然的标记转发功能, 支持MPLS转发相对容易实现。MPLS的转发过程和ATM交换过程非常相似, 如果将MPLS中的标记直接映射到ATM中的VPI、VCI域, 则传统ATM交换机的硬件可以实现标记交换, 这样就可以在不改变ATM硬件的基础上实现MPLS机制。基于以上考虑, 采用MPLS技术将基于ATM标记交换的链路层数据转发机制与网络层的选路机制结合起来, 集成了数据链路层的快速转发性与网络层的可扩展性和灵活性, 加快了分组转发的速度, 有效地利用了网络资源。

在MPLS数据转发的实现过程中, 为提高数据转发的快速性, 从数据转发的各个方面进行考虑, 通过在业务单元上增加地址解析协议 (ARP) , 以及创建本地三层路由转发表来提高本地数据交换速度;通过数据流驱动建立标记交换通道 (LSP) 的方式提高网络的数据业务转发速度。

3应用和实现

MPLS数据转发方法以软件方法实现, 主要包括系统构成和运行流程2个部分。

3.1系统构成

MPLS数据转发软件承载了交换机各种IP数据业务的转发处理、IP控制信息的转发处理、MPLS转发表项的建立、应用和维护, 保证了交换机IP数据业务的正常运转。既保留了传统路由的逐跳转发方式, 又提供了MPLS标记数据转发的能力, 能根据业务流量情况自动改变数据的转发方式, 由逐跳转发自动调整为标记转发。

MPLS数据转发软件按功能可以设计为4个部分:数据接收模块、转发处理模块、数据发送模块和转发管理模块。数据转发软件系统构成如图2所示。

3.1.1 数据接收模块

数据接收模块从不同的消息队列接收来自各个方向、各种类型的数据, 解析每个数据包, 提取出分组的目的IP地址以及消息队列中携带的相关信息等对数据来源进行判断和分类, 根据分类选择相应的转发方式即调用相应的转发处理模块进行处理。

3.1.2 转发处理模块

转发处理模块根据数据接收模块的调用来执行各种类型数据的转发, 主要完成2种类型的转发操作:逐跳转发和标记转发。

3.1.3 数据发送模块

数据发送模块把封装好的数据通过不同的消息队列进行发送, 发送方向包括本地业务端口、中继口和固定数据消息通道等。

3.1.4 转发管理模块

转发管理模块对整个数据转发处理过程中涉及到的各种转发表项进行维护和管理, 通过控制消息队列来接收其他模块/软件的各种控制消息, 按照控制消息类型进行相应操作以及发送各种通知消息或响应消息。

3.2运行流程

MPLS数据转发的运行流程如图3所示, 各种网络承载的业务经IP预处理后, 形成IP分组。当数据到达后, 首先会查询标记转发表, 判断有没有与该IP分组对应的LSP, 如果有则按LSP进行标记转发。若标记转发表里没有与该IP分组相应的LSP, 则查找IP路由表, 进行逐跳转发。在数据开始进行逐跳转发的同时, 向LDP发送请求建立LSP的消息。LDP协议会根据目的IP地址建立LSP, 然后把新的LSP添加到标记转发表里 (细箭头为数据信息流, 粗箭头为控制信息流) 。

经过IP预处理后的IP数据分组有2种转发方式:一是通过查找核心路由表进行传统逐跳数据转发;二是经过分类后, 直接进行标记数据转发。

① 传统IP逐跳转发方式中, 各个互通网络承载的业务经业务板的IP预处理后, 形成IP分组。首先判断标记转发表里有没有相应的LSP, 若标记转发表里没有与该IP分组相应的LSP, 则查找核心路由表, 然后从相应的中继端口进行传统的逐跳转发。

② 基于MPLS的标记转发方式是将IP协议与ATM等下层协议紧密结合在一起, 在网络边缘对收到的分组进行分类, 按照分类的结果给分组加上一个定长的标记, 此标记将与该分组的处理方式相对应 (包括使用的路由、业务等级等) 。在入口节点, 提取出目的地址, 按照标记转发表, 在LSP上进行标记转发;在中间节点, 直接进行标记转发, 不再经过寻路处理;在出口节点, 对接收的IP分组进行链路层封装, 直接发往相连的网络。

4实验验证

在数据转发过程中, 业务的性能非常重要, 直接体现了交换机所具备的对数据业务传送的质量保证能力, 分别在不采用MPLS和采用MPLS连接2种模式下, 对IP分组的丢失率和转发时延进行统计和分析, 验证MPLS数据转发软件性能指标。

端口速率100 M, 不采用标记连接时接口间IP分组的丢失率和转发时延如表1所示。

端口速率100 M, 经过标记连接时接口间IP分组的丢失率和转发时延如表2所示。

由实验结果可以看出, 采用MPLS后IP分组的丢失率和转发时延都明显降低, 基于MPLS的数据转发方法能够根据网络流量提高数据转发效率和业务的性能。

5结束语

基于ATM的MPLS数据转发充分利用了MPLS标记交换的技术, 把基于链路层数据转发机制与网络层的选路机制进行完美的结合, 综合转发和路由的功能, 优化了网络的性能, 有效利用了网络资源, 在最大程度上提供了高效的数据业务处理能力, 将在IP网络中得到广泛的应用。

参考文献

[1]周三友.MPLS技术研究与LDP协议的软件仿真[D].石家庄:通信测控技术研究所硕士研究生学位论文, 2000:22-25.

无线数据转发 篇6

无线传感器网络(Wireless Sensor Networks, WSNs)是由大量带有感知、检测和处理功能的传感器节点组成,但这些节点被布置在监测区域,可以以自组织的方式形成无线网络[1]。无线传感器网络在环境监测、救援、生物医学和智能家居等领域有广泛的应用[2]。传感器节点是由电池供电,由于其部署场景的特殊性,使得不易补给,因此,合理高效的利用传感器节点有限的能量极为重要[3]。而在传统的通信方式中,每个传感器节点将采集的信息直接以广播的形式发送到汇聚节点,由于传感器节点数量庞大、分布较密集,由此会产生频繁的碰撞和冲突,导致广播风暴问题(Broadcast Storm Problem)[4]。各节点冗余数据较多,通信负载重,无谓消耗了宝贵的能量资源。

1 相关工作

针对以上问题,国内外学者已做大量研究。如文献[5]中的概率广播是研究较多的一种解决办法,主要思想是一个节点在收到广播消息之后以概率P进行转播,但概率值的设定是一个NP问题,应根据网络情况动态的设置概率值的大小。文献[6] 中提出了一种基于计数器的方法,节点收到一个广播消息后,发起一个计数器,并设初值为1,阈值为C,设置一个随机等待时延,在等待时间段内,节点每收到一个副本消息计数器的值就加1,如果节点收到重复消息的数量小于C,就进行转发,否则,丢弃此消息。文献[7] 中提出构建一个由连通支配集CDS(connected dominating set)构成的主干网,主干网中的节点称为支配点,负责路由表的计算和维护、消息的收集和转发;网络中其它节点称为被支配点,主要负责信息的采集。通过构造主干网使得消息限制在网络的一小部分节点间转发,有效地减少了产生广播风暴的机率,而在任意图中求解最小连通支配集是NP问题。分簇路由具有拓扑管理方便、能量利用高效、数据融合简单等优点,它是另外一种经典的分层结构路由协议,成为当前重点研究的路由技术[8]。在分簇的拓扑管理机制下,网络中的节点可以划分为簇头节点和成员节点两类。在每个簇内,根据一定的机制算法选取某个节点作为簇头,用于管理或控制整个簇内成员节点,协调成员节点之间的工作,负责簇内信息的收集和数据的融合处理以及簇间转发。分簇算法中簇的构建过程开销大,簇头节点通信任务重,会导致节点能耗不均。

以上这些方法虽然能够一定程度上降低广播风暴发生概率,节约节点能量,但是需要所有节点均参与数据采集与转发,邻居节点间的冗余数据较多,并且一次数据传输过程只能收集一种数据。本文的基于分离树数据转发机制,以汇聚节点为根节点来建立m颗均匀覆盖整个网络的分离树,当仅需采集一种数据时,仅其中一棵树负责数据收集与转发,极大地减少了冗余数据量,其他树中的节点则进行休眠,节约能耗。当需要同时采集两种或多种数据时(如温度、湿度、光照等),多棵树同时工作,分别各自采集不同数据,这样汇聚节点可以实现同时采集到多种数据。

2 基于分离树的能量有效数据转发机制

2.1 基本思想

本文所提出的机制主要思想是从汇聚节点开始构建m个无交集的生成树,m棵树中的节点均匀分布在整个网络。由于网络节点分布较密集,邻居节点之间采集的信息有很大的相似性和冗余性,因此在通信过程中,m棵树交替进行通信任务,其余的则处于休眠状态,能保证实现信息采集的目的的同时,节省更多能量。另一方面,由于树形结构的特殊性,各节点保存有父节点、子节点信息,因此在数据转发过程中,可以保证数据有方向的传送到汇聚节点,能有效避免环路和消息回传的产生,同时消息碰撞的概率大大降低,缓解了广播风暴问题。

2.2 网络模型

为了简化网络模型,本文做了如下假设:

(1)网络中共有N个节点随机部署在m*m的区域内;

(2)所有节点和汇聚节点一旦部署完毕处于静止暂态;

(3)节点可通过功率控制来调整发射功率;

(4)每个节点有唯一的id号;

(5)汇聚节点位于监测区域外,并且能量不受限。

2.3 分离树的构建

这里以m=2 为例详细说明分离树的构建过程。构建过程中通过给节点标记不同颜色(深色和浅色)来区分两棵树,除了汇聚节点每个节点充当三种角色中的一个:深色节点、浅色节点,孤立节点。汇聚节点是深色、浅色两个生成树的共同节点,因此它可看做既是深色节点也是浅色节点。其构建过程如下:首先由汇聚节点广播一个hello消息给所有邻居,收到此hello消息的邻居节点随机地给自己标记深色、浅色(如图1(a))。然后深色、浅色节点分别广播red-hello、blue-hello给邻居节点。一个节点一旦收到至少一个来自浅色或深色节点的hello消息,此节点将等待一段时间T来接受足够的hello消息,然后根据这些邻居的颜色再决定其自身颜色,以概率pr成为深色节点、pb成为浅色节点( 0<pb+pr≤ 1),以概率1-pb-pr成为叶节点。为了使更多的节点收到来自深色和浅色节点的hello消息,需要在给定邻居情况下平衡两种节点。因此,如果一个节点的浅色邻居节点比深色多,那么此节点以更大概率选择成为深色;如果一个节点的深色邻居节点比浅色多,那么此节点更可能选择标记为浅色。一个节点通过接收到的red-hello、blue-hello消息估计两种颜色的邻居节点数量,并选择它自己的颜色保证其他节点最大可能的接收到两种颜色的节点消息。若一个节点没有收到任何hello消息,表示此节点既不能标记为浅色也不能标记深色,成为孤立节点。当所有节点均选定自己角色之后,建立起了深色、浅色两颗以汇聚节点为根节点的分离树(如图1(b))。

为了保证尽量多的节点参与路由,希望所选的分离树尽可能大并覆盖整个网络,需要采取合适的策略来决定pr、pb的值,如果收到很少的hello消息,则pr+pb应该大一点,这样可以得到更大覆盖的树。如果节点收到red-hello比blue-hello多,为了平衡两种颜色此节点将会有更大的机会成为浅色节点。因此,由公式(1)(2)来计算pr、pb:

其中,Nred、Nblue分别表示收到的red-hello、blue-hello消息的数量; p是一个节点成为非叶子节点的概率p=pb+pr,为了保证网络全覆盖,这里设置p =1,即所建立的分离树能够完全覆盖整个网络。

2.4 数据转发过程

当分离树建立起之后,则可以开始数据传输过程,为了实现m颗分离树分开各自通信,不同颜色节点互相不允许转发彼此的消息。如果一个节点成为了浅色或是深色节点,他就会加入相应的树并转发消息给它的父节点。当采集单一数据时,分离树交替工作,不工作的分离树中的节点进入休眠状态。工作状态的节点将自己采集的数据和子节点发来的数据进行融合,然后发送给父节点,直到消息到达汇聚节点。当需采集n( m ≥n )种数据时,任意n棵分离树执行通信任务,其余进行休眠;当其中某一分离树由于节点能量耗尽而不能继续任务时,则休眠的分离树进行唤醒,继续此中断任务,由此保证通信质量。

3 仿真分析

为了研究本文所提出机制的有效性,用OMNe T++仿真软件对此进行验证,在相同实验条件下,对比传统的广播方式和本文的机制,主要对比网络中网络开销和节点能耗情况。

仿真参数设置如表1:

(1)广播风暴发生概率

图2 反映了广播风暴发生概率随着节点数的变化趋势,可见本文的分离树机制性能相比广播方式有明显提高,主要原因是本文建立的两颗分离树交替工作,参与的节点数量有所减少,冗余数据大大减少;另外在数据转发过程中,节点有方向性的将数据发给自己的父节点,碰撞的概率大大降低,广播风暴问题得到明显缓解。

(2)节点能耗情况

图3 反映了节点每一轮结束时剩余能量的变化情况,从图中可以看出本文所提机制变化趋势较平缓,即节点耗能速度较慢,主要是因为网络中冗余数据大大减少,节点能量利用率得到提高;同时节点周期性的工作通信量有所降低,有助减少节点耗能;此外,节点在数据转发过程中,每个节点都会对数据进行融合处理,使得数据包较小,减小了传输能耗。

4 总结

本文提出的基于分离树的能量有效数据转发机制利用以汇聚节点为根节点来建立m个均匀覆盖整个网络的分离树,实现进一步降低能耗,还能同时采集多种数据。由于网络节点分布密集,邻居节点之间的感测数据有很大的相似性,故分离树交替执行通信任务,完成通信目的,不工作时,使其处于休眠状态以节省更多能耗。此外利用树形结构的特殊性,在数据转发阶段,有方向性的将数据以最短路径发送给汇聚节点,使节点能量得到高效利用。仿真实验表明,本文的机制能有效缓解广播风暴问题,实现了节能,节点能量利用率大大提高。

摘要:在无线传感网中,由于传感器节点能量极度受限,而传统的广播通信方式会产生很大的数据冗余,因而造成能量利用率较低。文章通过建立以汇聚节点为根节点的分离树来解决以上问题,m颗分离树均匀覆盖整个网络并交替进行工作,不工作时则进入休眠状态以节省能量。在数据转发阶段,分离树中的节点有方向性地将数据转发到汇聚节点,有效避免环路和回传,从而大幅度降低了冗余数据的转发。

关键词:无线传感网,分离树,能量利用率,休眠状态,数据冗余

参考文献

[1] Yu J,Wang N,Wang G,et al.Connected dominating sets in wireless ad hoc and sensor networks-A comprehensive survey[J].Computer Communications,2013,36(2):121-134

[2] Pantazis N,Nikolidakis S A,Vergados D D.Energy-efficient routing protocols in wireless sensor networks:A survey[J].Communications Surveys&Tutorials,IEEE,2013,15(2):551-591

[3] Kuila P,Jana P K.Energy efficient clustering and routing algorithms for wireless sensor networks:Particle swarm optimization approach[J].Engineering Applications of Artificial Intelligence,2014,33:127-140

[4] Tseng Y C,Ni S Y,Chen Y S,et al.The broadcast storm problem in a mobile ad hoc network[J].Wireless networks,2002,8(2-3):153-167

[5] Hanashi A M,Siddique A,Awan I,et al.Performance evaluation of dynamic probabilistic broadcasting for flooding in mobile ad hoc networks[J].Simulation Modelling Practice and Theory,2009,17(2):364-375

[6] Yassein M B,Nimer S F,Al-Dubai A Y A new dynamic counter-based broadcasting scheme for Mobile Ad hoc Networks[J].Simulation Modelling Practice and Theory,2011,19(1):553-563

[7]凌飞,吴振华.能量均衡的最小连通支配集分布式算法[J].传感技术学报,2013,25(9):1316-1321

无线数据转发 篇7

由于生活和工业上的特殊应用, 经常需要数据转发和透传功能, 路由器可以实现数据转发, 但实际生活中是在某一平台上做数据转发同时实现其它功能, 所以要自己开发具有数据转发功能的平台。在应用开发中可以使用scoket编程实现数据转发, 但这样做费时费力, 而且转发的稳定性不敢保证。NAT可以对数据包的源IP地址、目的IP地址、源端口、目的端口等进行改写[1], 从而可以实现数据转发。Iptables具有nat功能, iptables是linux系统自带的防火墙系统, 利用iptables实现数据转发, 不但简单而且稳定性很好。

1.NAT的工作原理

NAT的基本原理:改变IP包头, 使目的地址、源地址或两个地址在包头中被不同地址替换。

NAT的工作原理:下图所示, 是两个公司通过Internet网络互相交流, 是NAT的典型应用, 通过它来认识N A T工作原理。我们清楚, 在局域网内部的私有地址是不能访问外网的, 必须转换成公有地址才可以访问Internet, 我们以PC1:192.168.2.4访问Us er1:1 92.168.2.4为例说明访问过程。

1.1 PC1向RA (网关) 发送请求, 告诉自己的私有IP地址和MAC地址, 并且要求自己要到达User1主机。

1.2 RA收到请求后, 把PC 1的源I P地址进行转换, 变成内部全局地址, 即公有地址202.16.58.1, 并且为PC1指定一个随机产生的端口号, 发送到Inter网。

1.3 Inter网络收到了内部全局IP地址的请求, 进行路由选择, 被RB接收, RB通过查看RA发送过来的内部全局IP地址和端口号等信息, 直接发送给1 9 2.1 6 8.2.4网络的网关。

1.4网关路由器RB收到了信息, 根据对方发过来的目标主机信息, 把数据传输给User1主机。

1.5根据ICMP协议, user1主机需要回应, 对数据进行相应的处理, 把数据封装后发送给网关。

1.6网关把us er 1的私有IP地址转换成外部局部IP地址, 即公有地址202.16.5 8.2, 通过这个公有地址, 转发到路由器RA。

1.7 RA收到数据包, 查看自己缓存里的对应的主机和端口, 并对PC1进行转发。

图1所示是两个公司通过Internet网络互相交流, 实际过程也就是ip映射来进行数据转发。

2.iptables数据转发脚本[2,4]

上面演示了NAT工作原理, 现在介绍如何用iptables实现上面过程, 为了便于结果的验证, 笔者把中间的internet公网ip, 换成局域网ip, 原理上还是一样的。

首先我们需要一台l i n u x的双网卡PC/嵌入式平台。接下来按照图2所示, 搭建实验环境。设置A、B网段的子网掩码为2 5 5.2 5 5.2 5 5.0, P C1的I P地址为1 9 2.168.1.4, User1的IP地址为192.168.2.4, 这样两个网段的机器是不能相互访问的。现要使PC1和User1互相访问, 主要实现脚本如下。

2.1 Linux平台网口1接A网段, 网口2接B网段。设置两个网卡的ip, 命令如下:

ifconfig eth0 192.168.1.2 netmask2 5 5.2 5 5.2 5 5.0 u p//设置A网段任意可用ip, 命令根据具体平台改变

ifconfig eth1 192.168.2.2 netmask255.255.255.0 up//设置B网段任意可用ip

2.2实现linux数据包转发, 把文件/proc/sys/net/ipv4/ip_forward的值设定为1, 命令如下:echo"1">/proc/sys/net/ipv4/ip_forward。

2.3清空原有的i p t ab l e s的表 (主要是filter表和nat表) 和表中的链:

2.4为了不影响其他机子访问linux平台, 给网卡添加ip地址, 这样, 访问A网段192.168.1.3的时候, 就会转发到B网段的192.168.2.4上去, 而访问192.168.1.2则不会受影响。

2.5设置filter表中三个链的默认规则, 进入 (IN PU T) 发出 (OU TPUT) 都是允许A C C E P T, 转发 (F O R W A R D) 是丢弃DROP。

2.6设置允许对机器1 9 2.1 6 8.1.4和1 9 2.1 6 8.2.4的访问

2.7下面命令的意义是nat标的三条链默认接受任何数据传输

2.8真正实现地址转换的语句, 意义为:在PREROUTING链中 (也就是刚进入l i n u x服务器的数据包) , 将目的地址为1 9 2.1 6 8.1.3的数据包进行修改, 使得其目的地址变为1 9 2.1 6 8.2.4;在POSTROUTING链中 (要送出linux服务器的数据包) , 将源地址为192.168.2.4的数据包的源地址改为192.168.1.3[3];

自此已经完成脚本的编写, 如果上图中间的平台为PC机, 那么直接执行上述脚本, PC1和User1就可以互相访问。比如:PC1要ping User1, 在PC1终端执行ping192.168.1.3实际上ping的就是User1, 类似的User1访问PC1也是通过访问192.1 6 8.2.3来转发实现。如果上图中间平台为嵌入式平台, 那么还要进行iptables移植操作。Iptables移植过程包括移植交叉编译支持iptables内核和移植交叉编译的iptables程序两部分, 在此不做详细叙述。

3.实验结果

笔者在装有linux系统PC平台和嵌入式平台都做了测试。

PC平台:选用装有lin ux系统的笔记本, 笔记本有线网连接A网段、无线网连接B网段, 相应的上述脚本设置IP命令的网卡eth1换成wlan0。

嵌入式平台:选用SBC6020 (SBC6020具有双网卡) , SBC6020原始内核和文件系统不支持iptables, 所以要移植交叉编译过的支持iptables的内核、和移植交叉编译的iptables和自己编写iptables转发脚本到嵌入式平台。

依照图2连接好各硬件平台, 运行iptables转发脚本, 使用PC平台和嵌入式平台效果一样, 测试结果如下:

A网段pc1 (IP:192.168.1.4) 通过终端telnet192.168.1.3结果登录到B网段User1 (IP:192.168.2.4) 的机子上, 在pc1上ping192.168.1.3, 在User1上用Wireshark软件可以捕获到由开发板I P:192.168.2.3转发过来的消息, 这些足以说明通过以上方法实现了数据转发。为了验证数据转发的可靠性, 我通过在pc1上安装视频监控客户端, 在客户端上添加IP为192.168.1.3的设备, 把User1设为IPCamera (IP:192.168.2.4) , 所有设置好以后, pc1机子上的客户端可以预览和控制IP Camera (IP:192.168.2.4) , 通过长时间测试, 视频转发不丢帧, 非常稳定。

参考文献

[1]阮元生, 陶虹才, 林霞.网络地址转换技术及其在校园网中的应用.现代计算机[J], 2004 (2) :47~50

[2] (美) Michael Rash著;陈健译.Linux防火墙[M].北京:人民邮电出版社, 2009

[3]张金良, 用iptables实现NAT.唐山师范学院学报[J], 2007.29 (2) :74~76

上一篇:电气设备公司下一篇:高清视频会议系统