AFDX(ARINC664)的网络协议——MAC层
上一篇:AFDX的概述与系统组成_Easy Code的博客-CSDN博客介绍了AFDX系统网络组成,主要包括端系统、AFDX交换机、虚拟链路等。这里重点回顾下端系统:
端系统(End System, ES)的主要功能是提供一些服务,它们保证到某个分区(partition)软件的安全可靠的数据互换。
服务质量(Quality of Service, QoS)提供一种方法进行流量分类,并且确保特定类别的流量将总是以授权给它们的服务等级通过网络,而不用考虑争用的要求。
对于飞机网络(Aircraft Network),不需要区别对待几种类型或流量等级。每个网络传输请求必须得到服务,而不考虑数据类型;最大的网络传输延迟(也被称为“端到端时延”)必须得到保证。因此,
飞机网络所需的仅有的服务等级就是保证服务。
保证服务提供一种稳固的、数学可证明的帧端到端传输延迟的上界。所以,对有界延迟的保证意味着在链路层次保证一定量的带宽。
这样,保证服务提供具有上界的延迟和固定的带宽,在一个发送节点与一个或多个接收节点之间得到一条逻辑上的开放性连接。属于同一个连接的帧定义为一条“流”(flow)。
“虚拟链路”(Virtual Link,VL)
一个端系统可以被设计为仅接收VL而不发送VL,或者与之相反(一个ES能够没有发起或接收的VL)。通过VL进行端系统之间以太网帧的互换。
在航空电子网络中任意一个VL都只有唯一的一个源端系统。
在ES支持的虚拟链路中,ES应该利用可用带宽提供逻辑隔离。不论某个分区试图在一条VL上得到
怎样的带宽利用率,其它任何的VL的可用带宽不受影响。
知识点:
虚拟链路的处理是通过一种流量控制机制获得的,这种机制将属于这个ES的不同的数据源的数据流
规进行规整,这种机制在网络层次提供的分区管理(partitioning)
对于每条虚拟链路,不论其他虚拟链路是如何使用带宽的,端系统的通信协议栈应该保证它所分配
的带宽,目的在于在网络层次上保持分区之间的隔离。一条虚拟链路不应被两个或两个以上的源分区所
共享。
流/流量控制
在每个端系统的输出端,与某条特定的虚拟链路相关联的帧的流量用两个参数来描述:带宽分配间隔(Bandwidth Allocation Gap,BAG)和抖动(Jitter)。
如果经过调度器的帧没有抖动,BAG反映了在同一个VL中两个相邻的帧的起始二进制位之间的最小时间间隔
VL中最大带宽的数据流的BAG
VL中非最大带宽的数据流的BAG
抖动(Jitter)是最大延迟和最小延迟之间的差异,即一帧从VL上的源到目的地所需最长时间与一帧所需的最短时间之间的差异。
为了保证每条VL的BAG,帧的流量被规整。
虚拟链路流的规整
调度
在调度器的输出端,对于给定的某个虚拟链路,帧能够在某个有界的时间间隔中出现。这个时间间
隔被定义为最大允许抖动(maximum admissable jitter)。该抖动是由调度算法引起的,而不是由流量本
身造成的
对于最大带宽的数据流的抖动效应
端系统应该以每个VL为基本单元对发送的数据进行规整,流量规整器(流量整形功能)应该对流进行整形,使得在每个BAG间隔中 (以毫秒为单位),发送的帧的数目不会多于一个。
知识点
流量整形功能的目的是通过将帧分隔开,用以限制虚拟链路上瞬时的帧速率。规整器负责按照BAG控制分给虚拟链路的带宽。
端系统在发送和接收端都应该能够容纳直到1518字节的VL帧。
对于每个VL,端系统应该通过端系统配置表获得一个BAG值。
知识点
ES的流量整形功能应该能够在1ms到128ms的范围内控制BAG的值。如果一个分区以低于128ms的频度发出数据,就应该用128作为BAG的值。
MAC寻址
虚拟链路应该仅被MAC目的地址识别并且AFDX帧的MAC源地址应该是单播地址,用 来识别物理的以太网接口。在AFDX帧中的MAC目的地址应该是组(Group)地址和本地管理(Locally Administered)地址, 并且应该与下面的格式兼容。
MAC源地址应该是与IEEE 802.3兼容的独立的和本地管理的地址。
固定域被设置为“0000 0010 0000 0000 0000 0000”。
第一个字节的最低二进制位表明这是个体地址(等于0)。
第一个字节的次低二进制位表明这是局部管理地址(等于1)。
User_Defined_ID(用户定义标识符)是一个单独的16-bit域。系统集成者应该合理地使用它,用以
为每个在网络上IP可寻址的主机给定一个独一无二的并且有含义的IP地址。
Interface_ID(接口标识符),表明以太网MAC控制器连接到哪个AFDX的冗余网络。
冗余管理
AFDX提供的另一个关键概念或关键特性是冗余的概念,每个终端系统都通过冗余网络进行通信,因此网络中的帧都被复制,您基本上有两个独立的网络,每个端系统同时在两个网络A和网络B上发送数据,并且在接收器处的通信栈(低于IP层)采取“先到有效者胜出”的策略,这意味着从其中一个网络中得到带有下一个有效顺序号的第一个帧将被接受,并向上通过通信栈到达接收分区。而带有这个顺序号的第二个帧被收到时,它将被地丢弃,确保应用程序仅收到每条消息的一个实例。
端系统地完整性检查和冗余管理
RM(Redundancy Management,冗余管理)被置于IC(Integrity Checking, 完整性检查)之后。在网络操作没有故障的情况下,IC仅仅是将它从网络中收到的帧传递到RM。AFDX 冗余管理的功能仅仅是去除那些冗余复制的帧。
在最小和最大长度的帧中序列号的位置
完成重复帧的识别,通过序列号,所以arinc664的另一个特殊功能是对于每条VL,发送端系统都会在发送帧的最后一个字节处加入一个序列号,接收器再次使用它来识别重复的帧。帧顺序号的长度应该是8位比特,取值范围是0到255。
冗余管理举例
例1:非正常发送帧
冗余管理结果:网络B发送一个非正常帧,非正常帧不被转发到分区。
例2:一个帧丢失
冗余管理结果:因为网络A中帧“A4”丢失,在网络B中到达的帧被接收。
例3:卡塞帧
冗余管理结果:因为完整性检查,网络B的帧没有被转发到IP层,网络A中到达的帧被接收。
持续分享工业领域相关知识:
易择扣得(上海)科技有限公司
易择扣得EasyCode专注于工业领域智能化、自动化研发。
AFDX(ARINC664)的网络协议——MAC层相关推荐
- 基于CSMA/CA无线传感器网络的MAC层研究
1.无线传感器网络简介及发展现状 无线传感器网络是嵌入式系统.无线通信技术.网络技术及微机电系统等学科互相融合.渗透而产生的新技术,广泛使用在军事国防领域.环境监测.交通管理.医疗健康.工商服务.反恐 ...
- 网络协议——七层、五层、四层协议概念
普及一篇网络协议基础知识. 一.7层 7层是指OSI七层协议模型,主要是:应用层(Application).表示层(Presentation).会话层(Session).传输层(Transport). ...
- 网络协议——七层、五层、四层协议概念及功能分析
一.7层 7层是指OSI七层协议模型,主要是:应用层(Application).表示层(Presentation).会话层(Session).传输层(Transport).网络层(Network).数 ...
- TCP/IP四层模型与OSI七层参考模型(网络协议)
TCP/IP四层模型与OSI七层参考模型 一. OSI七层参考模型 ①. 物理层 ②. 数据链路层 ③. 网络层 ④. 传输层 ⑤. 会话层 ⑥. 表示层 ⑦. 应用层 二. TCP/IP模型 ①. ...
- 【Linux4.1.12源码分析】协议栈gro收包之MAC层处理
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...
- 常见网络协议总结(五层自顶向下)
计算机网络基础知识:(10条消息) 计算机网络基础(已完结)_hellomq^_^的博客-CSDN博客 常见协议概览图: 一.应用层 分类 协议 全称 用途 使用TCP协议 HTTP 超文本传输协议 ...
- 网络协议 3 - 从物理层到 MAC 层
在上一篇博文中,我们见证了 IP 地址的诞生,机器一旦有了 IP,就可以在网络的环境里和其他的机器展开沟通了. 今天,我们来认识下 物理层 和 MAC 层. 日常生活中,身为 ...
- 基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC)
基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC) 无线传感器网络(wireless sensor networks, WSN)节点由电池供电,其能力非常有限,同时由于工 ...
- 网络协议 3 - 物理层 和 MAC 层
在上一篇博文中,我们见证了 IP 地址的诞生,机器一旦有了 IP,就可以在网络的环境里和其他的机器展开沟通了. 今天,我们来认识下 物理层 和 MAC 层. 日常生活中,身为 90 后 ...
最新文章
- oracle celient 作用,WebLogic Server 10.3 SSL配置及SSL协议传输的WebSevice调用.doc
- java 线程相关的属性介绍
- 计算机与十进制 教案,二进制与十进制间的转换教案
- C++ virtual笔试
- matlab 8.4,《DSP using MATLAB》Problem 8.42
- java平面_java知识点整理
- vue组件系列3、查询下载
- 继电器驱动原理详解(Relay)
- 利用可编程大容量网盘onedrive配合公有云做你的nas及做站
- Win11双系统引导怎么设置?Win11双系统引导设置方法介绍
- 境外上市,一个绝非遥不可及的梦想!
- 「励志文章」清华学霸演讲:你可曾为学习拼尽全力?
- revit插件建模助手的【快速工具箱】功能
- 1500ml等于多少l_1500毫升是多少升
- rabbitmq安装 虚拟ip_步骤4:配置IPv6地址
- 无需兑换码下载来自设备制造商的 HEVC 视频扩展
- cn域名不备案(cn域名必须备案么)
- 网络安全—ddos实验wireshark分析
- 话说“三百六十行,行行出状元”,作为一名PCB工程师必备的基础技能方法都在这里了,按需收藏。
- 原创:学习英语小助手(阅读粘贴的英文,使用MVVM)
热门文章
- android车载支持格式,DIY自己的安卓车载中控(支持原车协议)
- 【Python】将python程序打包成exe
- 开发者要变现,广告平台哪家强?
- 主键与外键以及唯一键的选择的依据——情况之一
- 什么是自我接纳?如何提高自我接纳度?
- centos安装流量监控软件,并指定端口号监控
- 终端服务的剪贴板的缺陷,导致WPF调用Clipboard.SetText() 失败
- 谷歌开发的最良心的应用,如今状态令人叹息,你用过吗?
- 二级c语言笔试试卷题型,计算机二级c语言题型
- 单片机c语言编程 时钟加日历转换,单片机C语言电子时钟加日历显示编程