首页 » 技术文章 » Linux下IEEE1394组网技术研究及实现

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

作者:  时间:2011-03-28 18:57  来源:EDN

  NAT的实现方式有3种,即静态转换(Slatic NAT)、动态转换(Dynamic NAT)和端口多路复用(OverLoad)。静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问;动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址对是不确定的,所有被授权访问Intemet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时,可以采用动态转换的方式;端口多路复用是指改变外出数据包的源端口并进行端口转换,即端口地址转换PAT(Port Address Translation),采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Intemet的访问。从而可最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自Internet的攻击。因此。目前网络中应用最多的就是端口多路复用方式。

  NAT依赖于本地网络上的一台机器来初始化和路由器另一边的主机的任何连接,它可以阻止外部网络上的主机的恶意活动,这样就可以阻止网络蠕虫病毒,提高本地系统的可靠性;阻挡恶意浏览,提高本地系统的私密性。同时,它也为UDP的跨局域网传输提供了方便。

  3 内核支持模块

  Linux内核具有模块化设计。在引导时,只有少量的驻留内核被载入内存。这之后,无论何时用户要求使用驻留内核中没有的功能,相关的内核模块(kemel module),有时称驱动程序(driver),就会被动态地载入内存。

  内核模块不被编译在内核中,因而控制内核大小。然而模块一旦被插入内核,则与内核其他部分一样。

  内核模块的实现机制是:启动时,由函数voidinti_modules()初始化模块,因为大多时启动时很多时候没有模块。这个函数往往把内核自身当作一个虚模块。如有系统需要,则调用一系列以sys开头的函数,对模块进行操作,如:sys_creat_modules()sys_inti_modules()sys_deldte_modules()等。Linux22开始支持1394,在内核中开始加入Linux Subsystem

  4 技术需求

  为实现1394网络与千兆以太网的互联互通,需要组成1394网络及研制1394网关。为组成1394网络,需3台具有1394接口的设备,构成最小的1394网络;其中一台设备具有千兆以太网接口,作为网关,实现1394网络与千兆以太网的互联互通。1394网络组成框图如图1所示。

  1394网关与1394设备使用带有1394接口卡的计算机:X86处理器,操作系统为WindowsLinux

  5 1394组网实验

  1394组网实验环境如下:

  1)硬件环境PC2台,1394适配卡2块,1394连接线缆(4),以太网(外网,可访问Internet)

  2)软件环境操作系统为CentOS 5Fedora 6

  3)网络结构 2PC1394线缆连接,其中一台PC连接外网,可通过以太网访问Internet,另一台无其他连接。

  2PC机通过1394实现通信,且其中一台PC可通过1394访问外网。

  实验总体原理:通过编译安装相关模块,实现“IP over1394”,之后通过一系列配置,实现通过1394连接访问外网。通信时,数据先被封装成以太网下的标准包,再被封装成符合1394标准的传输格式,传到目标节点后,再进行相反顺序的解包分析工作。

  图2说明了在LinuxIEEE1394的模块组成关系。其中,OHCI1394-IEEE1394-eth1394-TCPIP这条分支实现了1394的网络功能,也就是IP over 1394

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

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

  为了在PC间建立通信,需要先使用ARP协议寻找目标机的物理地址,这就需要发出ARP请求并接受ARP响应。

  图51394ARP包的格式。Hardware_type:硬件类型,针对于1394,这里就是0x0018Protocol_type:协议类型,针对1394ARP,该值是0x0800Opeode:值1代表请求,值2代表响应;Sender_unique_ID:发送者的IDSender_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)实现1394Linux下组网,1394内部网络互相访问;2)实现1394网络与以太网的融合。通过一系列的安装配置,可以使1394网络与以太网连成一体,用户可以像在以太网中一样,进行访问各类网站,建立Ftp连接等正常网络活动;3)1394网络性能进行了多方面的测试实验,对1394网络性能的影响因素进行了初步的总结。后续应深化和完善1394整体性能,进一步提升通信速率。造成实验测试速率偏低的原因:PC性能限制,1394线缆质量等,以及内核版本较旧,缓冲区偏小等。

相关推荐

Linux将进军汽车智能系统领域

Linux  汽车智能系统  2013-07-09

Android回归Linux核心怀抱

Google  Linux  Android  2012-11-01

EXT4数据损失bug影响Linux稳定版内核

EXT4  Linux  2012-10-25

Fedora Linux 18 延期至年底

Fedora Linux 18  2012-10-17

Marvell和Tuxera推出业界最快的全功能NAS解决方案

Marvell  Linux  NAS  2012-01-19

ARM-Linux嵌入式系统的BootLoader分析与设计

嵌入式系统  Linux  2011-09-19
在线研讨会
焦点