IEEE 1394,又称火线(FireWire)接口,是一种高速度传送接口,适用于主板的标准工作速率为12.5、25或50 Mb/s,适用于外设的标准所支持的数据率为100、200和400 Mb/s。

IEEE1394具备高速率宽带;实时性等时传输;采用细缆便于安装;采用总线结构;支持热插拔等特点。因此,基予IEEE1394的特点,这里提出一种Linux下IEEE1394组网技术的设计方案。

1 IEEE1394简介

对于多媒体数据传输的高要求催生了IEEE1394(以下简称1394)的发展。多媒体数据传输要具有实时性。单纯图形传输或网络应用一般对实时性要求并不高。例如在Internet上浏览主页,虽有延迟,但一般尚可接受。如果网络会议就要求具有实时性。其次是连接的方便性、通用性,并且成本较低,这样接口连接更简便,应用更广泛。

1394可应用于家庭网、商业网以及Internet中的各种远程系统,具有相同功能的1394产品要比普通的微机配套设备便宜,具有更好的可扩展性。所有这些都使1394产品获得了强劲无比的竞争力。

1394具有如下特点:

1)高速率  IEEE1394-1995中规定速率为100~400 Mb/s。IEEE1394b的更高速度是800 Mb/s~3.2 Gb/s。其实400Mb/s就可以满足所有要求。现在通常可能达到的物理流LSI速度是200Mb/s。另外,实际传输的数据一般都要经过压缩处理,并不是直接传输原始视频数据。因此200Mb/s能够满足实际需要。但对多路数字视频信号传输来说,传输速率总是越高越好。

2)实时性  1394的特点是利用等时性传输来保证实时性,因此,SSA,Fiber Channel及Ultra SCSI也都与IEEE1394具有同样的性能。

3)采用细缆,便于安装  4根信号线与2根电源线构成的细缆使安装简单,而且价格便宜。但接点间距只有4.5 m。似乎略显不足。而采用延伸接点间距的方法,POF可以将接点间距延长至70m。

4)总线结构  1394是总线,不是I/O。向各装置传送数据时,是按IEEE1212标准读写列入转换的空间。总之,从上一层看,1394是与PCI总线相同。

1394总线和常见的USB总线的不同之处在于:1394是一个对等的总线。就是说。任何一个总线上的设备都可主动发出请求。而USB总线上的设备则是等待主机发送请求,然后做相应的动作。因而1394设备更智能化,因此1394就复杂一些,成本高一些。这个特性决定了1394可以是脱离以桌面主机为中心的束缚。

1394总线的拓扑结构与USB相同,都是树形结构。但IEEE1394b提出了一个避免环状结构的方法,即使设备连接形成一个圆环时,也能保证正常工作。1394串行总线与PCI并行总线不一样,前者的两个设备之间如果必须经过第三个设备,那么数据必须从第三个设备穿过。而后者则可直接在两个设备间传输,不用经过第三个设备。

1394总线上的设备之间也会选举一些设备成为总线管理,做些额外的工作,如:①根节点主要是在总线仲裁中做最终的裁判。②同步资源管理器:主要是在同步传输中,管理带宽,或者提供总线的拓扑结构和有限的电源管理。③总线管理器可以设置根节点,提供总线拓扑结构,优化网络的响应时间,和更高级的电源管理。

5)热插拔  能带电插拔。增删新装置,不必关闭电源,操作非常简单。

6)即插即用  增加新装置不必设定ID,可自动予以分配。1394的使用者不需要任何相关知识,操作非常简单,接上即用。实际上,当有新的设备接入某个1394端口时,整个总线将会进行一次总线复位(bus reset)。所有设备重新给自己起名字(节点标识,Node ID)。1394的起名字的机制很简单,从0开始往上,最多到62。一般叶子节点的ID小,树根的ID最大。1394的总线复位时间:短的只要1 μs,长的要160μs。

2 网络地址转换NAT原理

网络地址转换NAT(Network Address Translation)广泛应用于各种类型Internet接入方式和各种类型的网络中。NAT不仅完美地解决了lP地址不足的问题,而且还能够有效避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

借助于NAT,私有(保留)地址的“内部”网络通过路由器发送数据包,私有地址被转换成合法的IP地址,一个局域网只需使用少量外部IP地址即可实现私有地址网络内所有计算机与Intemet的通信需求。NAT将自动修改IP报文头的源IP地址和目的IP地址,IP地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还需要同时对报文进行修改,以匹配IP头中已经修改过的源IP地址。否则,在报文数据都分别嵌入IP地址的应用程序就不能正常工作。

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()等。Linux从2.2开始支持1394,在内核中开始加入Linux Subsystem。

4 技术需求

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

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

linux1394b接口,Linux下IEEE1394组网技术研究及实现相关推荐

  1. Linux系统接口ioc,Linux下SCSI API研究及应用

    Linux下SCSI API研究及应用 Linux SCSI体系结构及API数据结构的操作原理和相关的系统调用,运用SCSI API实现了有关的数据存储. 关键词: SCSI通用驱动器  SCSI接口 ...

  2. Linux输入密码接口,Linux下搭建接口自动化测试平台

    前言 我们今天来学习一下在Linux下如何搭建基于HttpRunner开发的接口自动化测试平台吧! 需要在Linux上提前准备的环境(下面是本人搭建时的环境): 1,Python 3.6.8 (可参考 ...

  3. 串口设置波特率linux函数接口,Linux下串口编程之一:基础设置函数

    1,串口操作需要的头文件 #include /* 标准输入输出定义 */ #include /* 标准函数库定义 */ #include /* Unix 标准函数定义 */ #include #inc ...

  4. Windows和Linux下通用的线程接口

    对于多线程开发,Linux下有pthread线程库,使用起来比较方便,而Windows没有,对于涉及到多线程的跨平台代码开发,会带来不便.这里参考网络上的一些文章,整理了在Windows和Linux下 ...

  5. linux查看接口名,在linux下 怎么查看网络接口的名字? 网络接口的名字英文是什么呀?...

    满意答案 ofkdk 2013.07.27 采纳率:52%    等级:12 已帮助:9666人 一般linux下有一块网卡默认是eth0, 第二块是eth1..以此类推 bond0是双网卡绑定出来的 ...

  6. linux i2c调试命令,嵌入式Linux下I2C接口调试

    By Toradex秦海 1).简介 I2C是嵌入式设备最为常用的接口之一,常用于如下面这些应用场景,因此本文就基于嵌入式Linux演示在User Space进行I2C设备调试. - Digital ...

  7. linux下read函数缺失字节_机器人、工控机和Linux 网络编程接口能否蹭出火花?

    今日份干货分享 随着全国大学生机器人大赛的不断发展,机器人的控制器也由以单片机为主的控制器逐渐转向以工控机为主的控制器,工控机上可以跑操作系统,系统的实时性以及对大数据的处理性也十分不错.以后机器人的 ...

  8. Multi-thread--Windows和Linux下通用的线程接口

    对于多线程开发,Linux下有pthread线程库,使用起来比较方便,而Windows没有,对于涉及到多线程的跨平台代码开发,会带来不便.这里参考网络上的一些文章,整理了在Windows和Linux下 ...

  9. linux mysql 修改密码之后还是不能登录_怎样在Linux下搭建接口自动化测试平台?...

    前言 之前在学习HttpRunner时,我们都是把用例写在 YAML/JSON 中进行维护,使用起来也很方便.其实,现在有不少大佬都喜欢开发自动化测试平台,比如我们今天要搭建的HttpRunnerMa ...

最新文章

  1. 学Java的软件哪些比较好用
  2. 五分钟体验分布式调度框架xxl-job
  3. 先装VS2008再装SQL2005的问题
  4. Java 函数式编程和 lambda 表达式
  5. 思科、华为、Juniper命令对比
  6. 专科 java转go 翱翔之路(一)基础语法:变量声明,匿名函数,结构体,函数,map
  7. 第五十六期:百度CTO王海峰CNCC2019演讲:深度学习平台支撑产业智能化
  8. Spring 是如何解决循环依赖的?
  9. vue 引入json地图_VUE中通过Echarts引入地图
  10. Intel超线程技术 Hyper-Threading Technology (7) - 最早的一篇超线程论文介绍
  11. mysql的预准备语句_mysql – 将字符串插入到没有”的预准备语句中
  12. Java在程序设计题目中的妙用
  13. ArcGIS水文分析实战教程(12)河网分级流程
  14. Linux的tomcat文件夹下没有startup.sh
  15. calico更换ip地址池-k8s
  16. 模拟信号与数字信号的本质区别
  17. sklearn基础篇(三)-- 鸢尾花(iris)数据集分析和分类
  18. 小学生心算CAI系统
  19. 纳米金/聚多巴胺/普鲁士蓝/四氧化三铁(Au-Dopa-PB-Fe3O4)|铂/普鲁士蓝(Pt/PB)复合纳米线|PDDA包裹的普鲁士蓝纳米粒子
  20. mysql药品库管理项目简介_MySQL数据库项目化教程简介,目录书摘

热门文章

  1. 数据结构专题 | 先序非递归遍历二叉树
  2. 关于xilinx zynq petalinux 使用32MB(W25Q256)的SPI FLSH无法正常读写16M以上内存的BUG的调试过程
  3. 一道数学题引发的惨案!4只小鸭子在一个圆形的大水池中,分别随机的出现圆圈中任意一点。4只鸭子在同一半圆内的概率是多少?
  4. Ubuntu下基于Qt框架,使用WebRtc开发总结(二):Qt工程配置总结
  5. 火山小视频伪原创怎么做
  6. webpack配置排除打包
  7. 计算机控制系统的品质指标,浅谈统计数据质量控制方法
  8. Unity 第三人称角色控制器:动画混合树、Cinemachine等功能或插件的使用
  9. 安装和使用 Python
  10. gitLab代码拉取到本地