在网络方面Linux和Vxworks系统之间的差异



主要软件: Driver Software>>NI-RIO
主要软件版本: 13.0
主要软件修正版本: N/A
次要软件: N/A
硬件: CompactRIO

问题: 我想要在同一个网段下使用多张网卡,为什么配置Vxworks系统的CRIO不可以实现,而配置Linux RT系统的CRIO可以实现。在它们之间还有其他的差异么?

解答: VxWorks: VxWorks CompactRIO没有能力控制两个以太网端口在同一网络之间的通信。这种情况下默认的操作是在第一个网卡和网络之间建立路径。为了成功地实现一个安全网络,推荐您使用不同的网络定义比如使用不同的IP网段范围或使用隔离两个连接的子网掩码。 Linux Real-Time: Linux实时系统能够在同一个网络维持多个连接但需要指出的是,开发人员在部署前确认RT系统可以处理这些类型的连接。系统上的每个网络设备都被分配一个优先级。这个优先级被当做一种度量。当你试图打开一个网络连接时,操作系统将首先查看路由表是否有连接到目标的路径。如果这是你的CRIO第一次连接到特定的IP地址,那么刚刚定义的度量值将被应用去判断哪些网卡应该被用来与特定设备进行通信。如果通信失败将遍历网络设备系统的优先级列表,直到它建立一个连接或由于无法通信而失败。 一旦一个成功的链接被建立,Linux RT系统将创立一个路由表链接信息,保存它到特定设备所经过的网络连接。所以在路由路径中顺序添加经过的网关后,如果网络状态良好,Linux 会打开路由表使用相同的网络连接。为了确认网络的状态是否良好,它必须从另一端设备(如路由器、计算机)接受一个链接脉冲。如果硬件没有检测到脉冲这意味着网络链接是断开的。如果确认网络是断开的,路由表中相关的链接将被系统自动删除。 网络的行为也依赖于设备。路由器可以从静止的网络中隔离关闭的链接,但是路由器会通知所有的设备都不可以通信即使两个设备没有报告网络是断开的。这是一个典型的网络设备问题,网络设备可以转换到另一种媒质中传输(光纤、无线、EoP等) 同样地,光纤网络设备有一个详细的说明它是否支持链接。这是设备的一个特点,如果设备的一端停止从另一端接收连接脉冲,铜纤转换设备将这种变化传递到终端设备和光纤转换器之间。这就使其他网络知道网络物理连接已经断开。 如果没有一个信号报告网络已经物理断开了,那么你的应用将不知道它的数据包没有被其他终端设备接收到(取决于所使用的传输协议)。Linux实时保存路由并使用第一条路径传输数据包,直到该链接报告为关闭。网络不会切换到备份网络直到这些路径被删除。如果开发人员不能控制网络基础设施但冗余是必要的需求,有单独的网络允许应用程序控制传输而不是依靠一个链接。 一旦路由路径被重置,Linux实时系统将依赖度量值寻找到达目标设备的新路径。如果主链接断开, Linux实时系统将使用第二个以太网端口如果它是打开的并可用来通信。如果这条路径成功的创立,循环继续,直到网络发生问题。

相关链接: 相关链接 White Paper: Introduction to Linux Real-Time External Link: Wikipedia: Switches, Routers, Bridges, and LANs External Link: Wikipedia: Autonegotiating External Link: Transition: Link Pass-Through animation

附件:





报告日期: 03/25/2015
最近更新: 07/29/2015
文档编号: 6VO62JJQ