首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Linux下IEEE1394组网技术研究及实现(2)

Linux下IEEE1394组网技术研究及实现(2)

内核模块不被编译在内核中,因而控制内核大小。然而模块一旦被插入内核,则与内核其他部分一样。
内核模块的实现机制是:启动时,由函数voidinti_modules()初始化模块,因为大多时启动时很多时候没有模块。这个函数往往把内核自身当作一个虚模块。如有系统需要,则调用一系列以sys开头的函数,对模块进行操作,如:sys_creat_modules(),sys_inti_modules(),sys_deldte_modules()等。Linux从2.2 开始支持1394,在内核中开始加入Linux Subsystem。
4 技术需求
为实现1394网络与千兆以太网的互联互通,需要组成1394网络及研制1394网关。为组成1394网络,需3台具有1394接口的设备,构成最小的1394网络;其中一台设备具有千兆以太网接口,作为网关,实现1394网络与千兆以太网的互联互通。1394网络组成框图如图1所示。


1394网关与1394设备使用带有1394接口卡的计算机:X86处理器,操作系统为Windows或Linux。
5 1394组网实验
1394组网实验环境如下:
1)硬件环境PC机2台,1394适配卡2块,1394连接线缆(4针),以太网(外网,可访问Internet)。
2)软件环境操作系统为CentOS 5和Fedora 6。
3)网络结构 2台PC用1394线缆连接,其中一台PC连接外网,可通过以太网访问Internet,另一台无其他连接。
2台PC机通过1394实现通信,且其中一台PC可通过1394访问外网。
实验总体原理:通过编译安装相关模块,实现“IP over1394”,之后通过一系列配置,实现通过1394连接访问外网。通信时,数据先被封装成以太网下的标准包,再被封装成符合1394标准的传输格式,传到目标节点后,再进行相反顺序的解包分析工作。
图2说明了在Linux中IEEE1394的模块组成关系。其中,OHCI1394-IEEE1394-eth1394-TCP/IP这条分支实现了1394的网络功能,也就是IP over 1394。


PC间通过1394连接实现网络通信的原理图如图3所示。2台PC的通信所使用的方式还是IP模式下的,只是物理连接变成了1394高速连接,而实现IP与1394之间联系的是一个转换模块。


图4显示该转换模块所做的工作。通过转换包的结构,使包的格式在两种情况下转换,就可以实现用1394传输,用IP操作。


为了在PC间建立通信,需要先使用ARP协议寻找目标机的物理地址,这就需要发出ARP请求并接受ARP响应。
图5是1394的ARP包的格式。Hardware_type:硬件类型,针对于1394,这里就是0x0018rotocol_type:协议类型,针对1394的ARP,该值是0x0800;Opeode:值1代表请求,值2代表响应;Sender_unique_ID:发送者的 ID;Sender_IP_address:发送者的IP地址;Target_IP_a-ddress:目标IP地址。通过使用ARP协议获得目标物理地址后,就可建立通信连接。


1394网关的配置可将1394网关看成是1394网络与以太网之间的路由器。在配置1394网关时,使用NAT技术,使该网关具有类似于以太网中内外网之间路由器的功能。
PC可相互Ping通,且未与外网直接连接的PC可通过另一台作为1394网关的PC访问外网,且网速较快。通过1394访问新浪网站时,用抓包软件WireShark可以抓到链接到新浪网的HTTP包与TCP包。
6 结论
通过努力,现在所取得的成果主要有:1)实现1394的Linux下组网,1394内部网络互相访问;2)实现1394网络与以太网的融合。通过一系列的安装配置,可以使1394网络与以太网连成一体,用户可以像在以太网中一样,进行访问各类网站,建立Ftp连接等正常网络活动;3)对1394网络性能进行了多方面的测试实验,对1394网络性能的影响因素进行了初步的总结。后续应深化和完善1394整体性能,进一步提升通信速率。造成实验测试速率偏低的原因:PC性能限制,1394线缆质量等,以及内核版本较旧,缓冲区偏小等。
返回列表