当前位置:首页 > AVB传输协议数据包分析
AVB传输协议数据包分析 AVB传送协议改进了之前二层通讯协议(如CobraNet或EtherSound)的固有“先天性不足”。在控制能力大幅提升的前提下,借鉴了IEEE1394技术,在三层协议下传输同步的专业音/视频信号,并将传输延时压缩到微秒级。
AVB传送协议对数据流的三个主要定义:
1、多媒体格式及封装方法。包括原始数据流和压缩音、视频流,以及附带传输IEEE1394(IEEE1394接口是苹果公司开发的串行标准,俗称火线接口(firewire)。同USB一样,IEEE1394也支持外设热插拔,可为外设提供电源,省去了外设自带的电源,能连接多个不同设备,支持同步数据传输。火线)的信号。
2、流媒体传送的同步机制。包括基准时钟的同步和丢失重建,以及同步时钟延时控制和优化。
3、多播地址的分配。包括为AVB数据流分配ID以及媒体时钟发生器的分配方式。
AVB传送协议在OIS模型中的位置如图一所示
图1 AVB协议集在OSI模型中的层次
PS:音频视频桥接(IEEE 802.1 AVB和IEEE1722/1733)跨过混合使用网络为音视频流提供高服务质量的传输。
XMOS开发了一种灵活的、纯软件配置的AVB音频,该种AVB音频可以被配置成支持超过100个音频通道(借助以太网)的单立体声对。XMOS器件确定性的架构完美地匹配了AVB的低延时和时序同步特性,同时XMOS器件也拥有了集成数字音频接口、TCP/IP和DSP处理控制功能的能力。
从图一看出AVB协议组基本上跨越了TCP/IP协议组的全部层次,而不仅仅是二层协议传输,且为可路由协议,这就从传输本质上区别于二层的CobraNet和EtherSound协议。尽管AVB可以支持三层路由,但是并非意味着它可以发送到Internet公网中去,或者架构在Internet架构下的VPN上去。这是因为远距离传输的基准时钟延时问题没有根本得到解决,网络直径依然无法超过7个hop。这么说来,那这个三层协议好处在哪里呢?由于QoS的介入,使得数据管理和传输效率大大提高,更多的基于TCP/IP的硬件、管理软件可以支持AVB。这
使得AVB的各方面能力都是非常强大而灵活的。尽管刚才说AVB协议集包含的数据包类型繁多,但是每种不同用途的AVB数据包的基本框架结构是一样的,如图二所示。
图2. AVB数据包构成
上述的AVB数据包结构只是它的二层结构类型,也就是针对二层以太网传送的协议结构,而针对三层传输和控制协议则封装在AVB以太网荷载(Payload)的46~1500字节当中另外定义。如果不理解这句话的意思,可以查阅相关TCP/IP数据结构相关书籍,或者参考本连载之前的关于CobraNet数据结构封装的章节。简单来说,网络数据包封装就是一个“嵌套”结构,二层底层是最外层封装,三层结构则被镶嵌在内等等,如图三:
图3. 网络封装的“嵌套”结构
图二中从DA高位地址一直到AVB以太网类型之间的18个字节就是图三的以太网报头部分,图二中的AVB以太网荷载46~1500字节,就是对应图三的二层荷载(Payload)。也就是说图二分析了整个以太网数据包的数据结构,但是对于二层AVB荷载(46~1500字节)并未展开分析里面包含了什么数据,那么下面我们就单独分析这个AVB荷载的结构,这也是AVB技术和以前CobraNet及EtherSound技术完全不同的地方。AVB数据包按照包类型可以分为命令/控制数据包和流媒体数据包两大类,下面我们分两部分展开来讨论。 1、命令/控制数据包:
2、
图4.命令/控制数据包结构
这种数据包包含了命令发布和控制信号、数据流预约等除流媒体信号以外的其它数据结构包,属于第三层数据封装包(路由器层次)。第一个bit数据位称为CD数据位,只有两种表示状态,“0”表示流媒体数据,“1”表示控制型数据。4~11这8个字节的802.1Qat预约数据协议ID号码,它相当于TCP/IP协议集中的IP地址(比如192.168.0.1是4个字节“0xC0A8 0x0001”,表示的是目的地地址,后面紧接的192.168.0.1则是发送端地址,这样一共是8个字节。在AVB协议中,由于发送端和接收端不再使用IP地址的命名方法,而是使用标识ID来区别不同的设备,但是其作用和在数据包中的位置是与TCP/IP协议集类似的)。最后的1~3个字节的补足位是当荷载数据较短的时候(即三层荷载不足34个字节的时候),AVB控制设备自动添加足够的“0”来补足位数,称为“Padding”,以防止超短帧的形成。超短帧是指以太网数据包低于64字节(或者超过1518个字节)的时候,以太网传送机制CSMA/CD无法判断相邻接收帧的间距而形成网络冲突,为避免这种冲突出现,以太网规定了每个数据包的最小和最大长度。 3、流媒体数据流包:
图五 流媒体数据包结构 流媒体数据的数据结构显然比控制数据包复杂很多,但是基本含义没有太多的复杂性,和图四类似。以前提过AVB传输的媒体流数据可以是很多种类型,包含压缩和不压缩的音频及视频以及卫星电视数据等不同种类,这些不同类型的数据在媒体流数据包中在7bit的协议类型中得以体现,参见下图六:
上表中提到的61883的全称是IEC61883,要想了解这个规范,先简单介绍一下什么是IEC。IEC标准即国际电工委员会(International Electrical Commission),是由各国电工委员会组成的世界性标准化组织,其目的是为了促进世界电工电子领域的标准化。国际电工委员会的起源是1904年在美国圣路易召开的一次电气大会上通过一项决议。根据这项决议,1906年成立了IEC,它是世界上成立最早的一个标准化国际机构。IEC对很多电气规范做出国际标准,其中针对工业音频、视频等传输和接口方式作出定义(电脑中常用的1394火线接口就是IEC61883-6定义的),我们现在讨论的AVB以太网传输协议,只是从传输层面上作出一个新的规范,但是在AVB内部传输的流媒体数据则是按照IEC61883规定的格式进行的。IEC61883包含的数据格式有:
·61883-2 SD-DVCR 标清视频记录数据流格式 ·61883-4 MPEG2-TS 压缩视频数据流格式
·61883-6 非压缩音频数据格式(即IEEE1394传输格式) ·61883-7 卫星电视 MPEG 压缩格式 ·61883-8 Bt.601/656 视频流格式
·IIDC 非压缩工业级摄像头视频流传输格式
当然上述的只是几个我们可能会用到的数据格式,还有很多我们没有一一例举。简单地说也就是所有IEC61883定义的音视频数据流都可以通过AVB进行传送。这里我们重点讨论一下非压缩音频数据的传输,也是就是IEC61883-6即IEEE1394格式的数据流是怎样传输的。 由于1394信号和AVB传输协议的兼容性,所以直接通过火线转换成以太网信息也是可以加入到AVB网络中来,他们的相互传输见图七:
图7. AVB传送IEEE1394数据桥兼容性
从图七我们可以看出AVB和IEEE1394之间的兼容性还是相当的不错,无论是从AVB发送器还是1394发送器发送的信号,都可以从两者的接收端接受(同步)。这样跨越AVB和1394之间的传输本身并没有太多的实际应用,这主要是用来分析IEC61883定义的媒体数据流可以兼容地通过AVB网络。
在AVB发送和接收端,流媒体数据和标准时钟信号是怎样结合起来并打包形成以太网数据包的呢?详细的打包和解包的过程参见图八和图九:
共分享92篇相关文档