[发明专利]基于光纤多路耦合的单向传输方法无效
申请号: | 201010216072.1 | 申请日: | 2010-07-01 |
公开(公告)号: | CN101867417A | 公开(公告)日: | 2010-10-20 |
发明(设计)人: | 唐勇;陈曙晖;黄高平;苏金树;杨岳湘;王勇军;钟求喜;赵国鸿;宣蕾 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | H04B10/12 | 分类号: | H04B10/12;H04L29/06 |
代理公司: | 国防科技大学专利服务中心 43202 | 代理人: | 郭敏 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 光纤 耦合 单向 传输 方法 | ||
1.一种基于光纤多路耦合的单向传输方法,其特征在于包括以下步骤:
第一步,构建单向传输系统,单向传输系统由外端机、内端机和n个单向传输通道组成,n为正整数;其中,外端机是低密级的计算机设备,连接到低密级网络中,它将需要单向传输的数据发送到n个单向传输通道中;单向传输通道以物理上不可逆方式将数据发送到内端机;内端机是高密级的计算机设备,连接到高密级网络中,对收到的单向数据进行还原和处理;n个单向传输通道的构建方法是:
1.1将光纤网卡区分为光发送适配器和光接收适配器,通过物理封堵等手段屏蔽光发送适配器的接收端口,使光发送适配器只具有正常的数据发送功能而没有数据接收功能;通过物理封堵手段屏蔽光接收适配器的发送端口,使光接收适配器只有数据接收功能而没有发送功能;然后,利用一根光纤连接光发送适配器的发送端口以及光接收适配器的接收端口;一个光发送适配器、一个光接收适配器、一根连接它们的光纤组成一个单向传输通道;
1.2将多个单向传输通道并联,组成多路耦合的单向传输通道,方法是将n个单向传输通道即单向传输通道1至单向传输通道n的光发送适配器都连接到外端机,将单向传输通道的光接收适配器都连接到内端机,光纤1至光纤n按顺序平行连接相应单向通道内的光发送适配器和光接收适配器;
第二步,修改光发送适配器的驱动程序,得到发送端程序,修改方法如下:
2.1在光发送适配器驱动程序的初始化代码中,修改光发送适配器的设备控制寄存器,将光发送适配器的接收端口配置为发送端口,使光发送适配器的两个端口皆配置为发送端口;屏蔽光发送适配器驱动程序的链路监测程序,使得不再监测光纤网卡的链路状态;
2.2修改光发送适配器驱动程序的报文发送接口函数hard_start_xmit,报文发送接口函数流程变为:
2.2.1检查光发送适配器状态是否正常;
2.2.2对发送报文进行串行化:将当前待发送报文转化为一个数据块,设置该数据块的id即BlockID值为上一次发送报文的BlockID值加1;
2.2.3检查数据块的长度是否正确;
2.2.4检查数据块的校验和是否正确;
2.2.5对数据块进行分割:依次将待发送数据块分割成若干固定长度为k的数据子块:假设待发送数据块长度为l,则将数据块分割为个子块,如果最后一个数据子块的有效数据不足k,则填充0使数据子块长度为k;分割后的数据子块包含数据块原来的链路层报文头以及数据分割管理信息:所属的数据块id即BlockID、所属数据块被分割为多少个数据子块SegmCnt、数据子块在数据块中的序号SegmNo、数据子块有效数据长度Length、数据子块的数据校验和ChkSum、数据内容Payload;
2.2.6轮询发送数据子块:将待发送数据子块循环均匀地分配给n个光发送适配器;
2.2.7将数据子块加入到所分配的光发送适配器的DMA发送队列;第三步,修改光接收适配器的驱动程序,得到接收端程序,修改方法如下:
3.1通过屏蔽链路检测代码使得光接收适配器驱动程序不再监测光纤网卡的链路状态;
3.2修改光接收适配器驱动程序中的报文接收中断处理程序,将检查校验和及调用操作系统报文接收服务程序这两步扩展为数据块拼接程序,数据块拼接程序的流程如下:
3.2.1检查校验和;
3.2.2根据数据子块的数据校验和ChkSum字段检查数据子块的正确性,如果校验和不正确则转3.2.7;
3.2.3根据数据子块所属的数据块id即BlockID找到数据子块所属的串行数据块Block,判断Block接收是否超时,即从接收到Block第一个数据子块到现在是否超过阈值,如果超过阈值转3.2.7;
3.2.4根据数据子块的Length即数据子块有效数据长度、Payload即数据内容,将数据子块拼接到数据块Block中;
3.2.5根据数据子块中的SegmCnt字段判断数据块Block的所有数据子块是否都已接收,如果数据子块没有全部接收则转3.2.8,否则转3.2.6;
3.2.6将拼接完成的数据块转化为一个报文,调用操作系统报文接收服务程序将数据块分发到上层单向传输应用程序,转3.2.8;
3.2.7数据块传输错误或超时,丢弃数据块和已接收的数据子块;
3.2.8数据块拼接程序执行完成;
第四步,利用单向传输系统进行单向传输,包括以下步骤:
4.1单向传输上层应用程序发送数据块,操作系统调用发送端程序的报文发送接口hard_start_xmit提交待发送的数据块;
4.2发送端程序将待发送数据块串行化,分配数据块id;
4.3发送端程序将待发送数据块分割为固定长度的数据子块;
4.4发送端程序将数据子块按照轮循方式分配给光发送适配器1至光发送适配器n,n个光发送适配器并行将数据子块发送到n个单向传输通道中;
4.5多个光接收适配器并行接收到数据子块并引发中断,在报文接收中断处理程序中接收端程序被调用;
4.6接收端程序检查数据子块的校验和是否正确;
4.7接收端程序检查数据子块所属数据块的接收是否超时;
4.8接收端程序将数据子块拼接到所属的数据块中;
4.9如果数据块的所有数据子块都已接收完成,则将数据块转化为一个报文分发到上层单向传输应用程序,完成数据的单向传输。
2.如权利要求1所述的基于光纤多路耦合的单向传输方法,其特征在于所述阈值在接收端程序加载时设置,为1-5秒。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010216072.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:源发起的通信切换
- 下一篇:多维网络及其数据传输方法