基于以太网二层头压缩的传输设备及方法
技术领域
本发明涉及一种基于以太网二层头压缩的传输设备及方法,主要用于宽带无线通信和微波通信领域。
背景技术
传统的数字微波通信是一类基于时分复用技术的数字通信体制,一般采用点到点的传输方式。参见图1,通常一个传输节点由室内单元IDU(Indoor Unit)和室外单元ODU(Outdoor Unit)组成,IDU和ODU之间采用中频信号传输。其中,IDU决定着系统的容量和业务接口,设置业务接口、网管接口、辅助接口;ODU单元是微波信号(射频信号)的收/发信部分,决定着系统的工作频率和输出功率。由于无线通信技术尤其是高阶QAM调制(正交振幅调制)技术的发展,数字微波通信系统日益成长、壮大。使得系统传输容量越来越大,传输的业务种类越来越丰富。表现为既支持TDM(时分复用)业务,也支持以太网数据业务。
LTE(Long Term Evolution,长期演进)是由3GPP(第三代合作伙伴计划)组织制定的UMTS(通用移动通信系统)技术标准的长期演进。随着3G网络大规模的应用和LTE部署的全面展开,大带宽的需求普遍应用于网络的各个层级,网络IP化将是不可逆转的趋势。微波作为移动回传的主力应用,在调制模式和频率资源限制的条件下,如何做到带宽迅速提升成为业界的挑战和关注。网络之间互连的协议(IP)也就是为网络相互连接进行通信而设计的协议。IP微波帧头压缩技术在此时应运而生,其通过将微波中传输的以太网数据帧中重复传递而不发生变化的内容在微波发送端用短字节替代,从而大幅度提升微波传输的有效字节,提升单载波的IP业务传送能力,很好地减轻了运营商所面临数据业务迅速增长所带来的压力。
目前IP数据包头压缩采用的解决方案中,大都采用的是通信双方维护同一张地址映射表为基础来实现的,当通信双方频繁发生变化时,就会导致通信双方之间需要维护大量地址映射信息。这样不但增加了系统的复杂程度,降低了系统的稳定性;同时也增加了资源消耗,进而增加了系统成本。
发明内容
本发明的目的在于提出一种实现以太网数据包二层头压缩的技术方案,通过压缩方和解压缩方的匹配工作,提升微波传输系统中空口传输的有效字节,提升单载波的IP业务传送能力。
本发明的技术方案提供一种基于以太网二层头压缩的传输设备,包括接口数据缓存模块、下行MAC帧缓存单元、下行映射表帧缓存单元、上行MAC帧缓存单元、上行映射表帧缓存单元、业务组帧/分帧模块,设置MAC地址学习模块、以太网帧压缩模块、MAC地址映射表组帧模块、MAC地址映射表解帧模块和以太网帧解压缩模块,
MAC地址学习模块,用于根据接口数据缓存模块发送的以太网帧进行地址学习,同时将以太网帧透传给以太网帧压缩模块,并在一个学习周期结束后,将学习所得用于压缩的MAC地址发送给以太网帧压缩模块和MAC地址映射表组帧模块,所述学习所得用于压缩的MAC地址形成MAC地址映射表;
以太网帧压缩模块,用于对输入该模块的每一个以太网帧进行解析得到 MAC地址,然后遍历MAC地址学习模块学习到的MAC地址进行一一比较,根据解析出的MAC地址与学习到的MAC地址的匹配情况,在满足压缩条件的情况下对MAC地址进行压缩,反之则不进行压缩,所得结果输入下行MAC帧缓存单元进行缓存,经业务组帧/分帧模块输出;
MAC地址映射表组帧模块,用于根据MAC地址学习模块所得MAC地址映射表,结合MAC地址映射表解帧模块根据对端发送过来的MAC地址映射表帧所得CRC校验结果进行组帧,所得MAC地址映射表帧输入下行映射表帧缓存单元进行缓存,经业务组帧/分帧模块通过无线链路输出;
MAC地址映射表解帧模块,用于在得到MAC地址映射表帧时,所述MAC地址映射表帧由接收对端的传输设备经无线链路、业务组帧/分帧模块、上行映射表帧缓存单元发送过来,进行以下处理,
对MAC地址映射表帧进行CRC校验确认该帧经过无线链路传输后是否出现误码,并将CRC校验结果输出给本端的MAC地址映射表组帧模块,以决定对端是否满足压缩条件;
解析MAC地址映射表帧,一是得到供解压缩的MAC地址映射表,二是解析出对端传送过来的CRC校验结果输出给本端的以太网帧压缩模块,以决定本端是否满足压缩条件;
以太网帧解压缩模块,用于根据MAC帧以及MAC地址映射表解帧模块所得供解压缩的MAC地址映射表,进行解压缩恢复以太网帧;所述MAC帧由接收对端的传输设备经无线链路、业务组帧/分帧模块、上行MAC帧缓存单元发送过来。
而且,各模块基于FPGA实现。
本发明还提供了一种根据上述基于以太网二层头压缩的传输设备实现的传输方法,在本端和对端分别设置传输设备,
在下行链路中,任一端内相应传输过程如下,
接口数据缓存模块接收到以太网帧并发送到MAC地址学习模块;
MAC地址学习模块根据接口数据缓存模块发送的以太网帧进行地址学习,同时将以太网帧透传给以太网帧压缩模块,并在一个学习周期结束后,将学习所得用于压缩的MAC地址发送给以太网帧压缩模块和MAC地址映射表组帧模块,所述学习所得用于压缩的MAC地址形成MAC地址映射表;
以太网帧压缩模块对输入该模块的每一个以太网帧进行解析得到 MAC地址,然后遍历MAC地址学习模块学习到的MAC地址进行一一比较,根据解析出的MAC地址与学习到的MAC地址的匹配情况,在满足压缩条件的情况下对MAC地址进行压缩,反之则不进行压缩,所得结果输入下行MAC帧缓存单元进行缓存,经业务组帧/分帧模块通过无线链路输出;
MAC地址映射表组帧模块根据MAC地址学习模块所得MAC地址映射表,结合MAC地址映射表解帧模块根据对端发送过来的MAC地址映射表帧所得CRC校验结果进行组帧,所得MAC地址映射表帧输入下行映射表帧缓存单元进行缓存,经业务组帧/分帧模块通过无线链路输出;
在上行链路中,任一端内相应传输过程如下,
业务组帧/分帧模块获取经无线链路传输过来的数据,分开MAC地址映射表帧和MAC帧并分别缓存到上行映射表帧缓存单元和上行MAC帧缓存单元;
MAC地址映射表解帧模块在从上行MAC帧缓存单元得到MAC地址映射表帧时,进行以下处理,
对MAC地址映射表帧进行CRC校验确认该帧经过无线链路传输后是否出现误码,并将CRC校验结果输出给本端的MAC地址映射表组帧模块,以决定对端是否满足压缩条件;
解析MAC地址映射表帧,一是得到供解压缩的MAC地址映射表,二是解析出对端传送过来的CRC校验结果输出给本端的以太网帧压缩模块,以决定本端是否满足压缩条件;
以太网帧解压缩模块根据从上行MAC帧缓存单元得到的MAC帧以及MAC地址映射表解帧模块所得供解压缩的MAC地址映射表,进行解压缩恢复以太网帧。
而且,所述MAC地址学习模块根据接口数据缓存模块发送的以太网帧进行地址学习时,采用老化机制,将经常通信的主机的MAC地址保存在MAC地址映射表中,而不常用的地址则被老化掉。
而且,以太网帧压缩模块根据解析出的MAC地址与学习到RAM表中的MAC地址的匹配情况,将压缩模式分为4种,包括目的地址和源地址都压缩模式、只压缩目的地址模式、只压缩源地址模式以及不压缩模式,在满足压缩条件的情况下根据相应模式对以太网帧进行处理,完成对MAC地址进行压缩;
当启用目的地址和源地址都压缩模式时,对以太网帧进行处理,
将以太网帧的前导序列、帧开始定界符和循环冗余检验码字段去除;
根据学习到的MAC地址,在压缩条件满足时,将以太网帧中的MAC地址用与之对应的ID号代替,然后进行封装并添加压缩模式、帧头和帧尾字段;此时MAC地址包括目的地址和源地址;
当启用只压缩目的地址压缩模式时,对以太网帧进行处理,
将以太网帧的前导序列、帧开始定界符和循环冗余检验码字段去除;
根据学习到的MAC地址,在压缩条件满足时,将以太网帧中的MAC地址用与之对应的ID号代替,然后进行封装并添加压缩模式、帧头和帧尾字段;此时MAC地址仅包括目的地址;
当启用只压缩源地址压缩模式时,对以太网帧进行处理,
将以太网帧的前导序列、帧开始定界符和循环冗余检验码字段去除;
根据学习到的MAC地址,在压缩条件满足时,将以太网帧中的MAC地址用与之对应的ID号代替,然后进行封装并添加压缩模式、帧头和帧尾字段;此时MAC地址仅包括目的地址;
当启用不压缩模式时,对以太网帧进行处理,
将以太网帧的前导序列、帧开始定界符和循环冗余检验码字段去除,然后进行封装并添加压缩模式、帧头和帧尾字段。
而且,以太网帧解压缩模块在进行解压缩恢复以太网帧时,解析压缩模式字段从而判断该如何恢复原始数据,恢复出来包括删除压缩时添加的帧头与帧尾,根据压缩模式和MAC地址映射表恢复原来的目的MAC地址和源MAC地址,恢复以太网帧的前导序列、帧开始定界符和循环冗余校验码字段。
而且,MAC地址映射表解帧模块解析MAC地址映射表帧得到供解压缩的MAC地址映射表时,根据压缩模式字段的最高比特来乒乓切换得到用于解压的MAC地址映射表,保证压缩方与解压缩方使用的MAC地址映射表是匹配的。
本发明所提供技术方案可以充分利用现有微波设备的硬件(主要是FPGA),来完成以太网数据的头压缩,从而大幅度提升微波传输的有效字节,并进而提高无线带宽的利用率。与现有的技术方案相比,本发明所提供传输装置采用FPGA实现,具有设计灵活与开发周期短的优点。此外,引入交换机中MAC地址学习与老化的机制,使得通信双方之间的信息维护量因为只需维护有效的地址映射信息而大大降低。这样,不但使MAC地址的匹配命中率更高、资源消耗更少、压缩效率更大,同时也使系统成本降低,从而大幅度提升微波传输的有效字节,提升单载波的IP业务传送能力,很好地减轻了运营商所面临数据业务迅速增长所带来的压力,很大程度的提高了无线带宽的利用率。
附图说明
图1是一种典型的数字微波传输系统的组成框图。
图2是本发明实施例的FPGA内部功能模块划分的实现框图。
图3是本发明实施例的MAC地址学习和老化实现原理图。
图4是本发明实施例的仅压缩源MAC地址(SA)的帧结构示意图。
图5是本发明实施例的MAC地址解映射模块中解析出的MAC地址乒乓切换的结构示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
传输系统一般包括本端和对端,本端的传输节点和对端的传输节点均布置IDU和ODU。任一端作为压缩方,另一端作为解压缩方,通过压缩方和解压缩方的匹配工作,可以大幅度提升微波传输系统中空口传输的有效字节,提升单载波的IP业务传送能力。
本发明在技术上采用基于FPGA的设计与实现方案。在本端和对端的IDU设备内,现有技术中设有接口数据缓存模块、下行MAC帧缓存单元、下行映射表帧缓存单元、上行MAC帧缓存单元、上行映射表帧缓存单元、业务组帧/分帧模块(SC)。本发明通过在FPGA内部添加设置5个模块来完成该设计,它们分别是MAC地址学习模块、以太网帧压缩模块、MAC地址映射表组帧模块、MAC地址映射表解帧模块和以太网帧解压缩模块。下面分别说明实施例中这5个模块的实现:
(1)MAC地址学习模块:根据接口数据缓存模块发送的以太网帧进行地址学习,包括处理以太网芯片发送出来的4位并行数据,解析以太网帧结构,在特定的位置提取出数据包的DA(目的地址)和SA(源地址)。然后完成MAC地址的学习、更新与老化,并将学习到的MAC地址保存在RAM表中,形成MAC地址映射表供后续的以太网帧压缩模块和MAC地址映射表组帧模块使用。
实施例引入MAC地址学习和老化的机制,使得只有那些在点对点通信中经常通信的主机的MAC地址被保存在地址映射表中,而那些不常用的地址则被老化掉,进而提高资源的利用率。
(2)以太网帧压缩模块:对输入该模块的每一个以太网帧进行解析,得到其MAC地址,然后遍历RAM表中学习到的MAC地址,让它们一一比较,如果解析出的MAC地址与RAM表中的MAC地址能够匹配,则在满足压缩条件的情况下(接收到对端传送过来的CRC校验结果为零),该MAC地址就可以被压缩,反之,则不进行压缩。所得结果输入下行MAC帧缓存单元进行缓存,经业务组帧/分帧模块通过无线链路输出。
实施例进一步提出,根据以太网帧中MAC地址与学习到的地址映射表项的匹配个数,可以将后续的压缩模式分为4种:目的地址和源地址都压缩模式、只压缩目的地址模式、只压缩源地址模式以及不压缩模式。
1.当压缩方启用目的地址和源地址都压缩模式时,对以太网帧进行处理,具体包括:
将以太网数据帧的前导序列、帧开始定界符和循环冗余检验码字段去除;
根据学习到的MAC地址,在压缩条件满足时,将以太网数据包中的MAC地址(包括DA与SA)用与之对应的ID号代替,然后进行封装并添加压缩模式、帧头和帧尾字段。
2.当压缩方启用只压缩目的地址压缩模式时,对以太网帧进行处理,具体包括:
将以太网数据帧的前导序列、帧开始定界符和循环冗余检验码字段去除;
根据学习到的MAC地址,在压缩条件满足时,将以太网数据包中的MAC地址(仅包括DA)用与之对应的ID号代替,然后进行封装并添加压缩模式、帧头和帧尾字段。
3.当压缩方启用只压缩源地址压缩模式时,对以太网帧进行处理,具体包括:
将以太网数据帧的前导序列、帧开始定界符和循环冗余检验码字段去除;
根据学习到的MAC地址,在压缩条件满足时,将以太网数据包中的MAC地址(仅包括SA)用与之对应的ID号代替,然后进行封装并添加压缩模式、帧头和帧尾字段。
4.当压缩方启用不压缩模式时,对以太网帧进行处理,具体包括:
将以太网数据帧的前导序列、帧开始定界符和循环冗余检验码字段去除,然后进行封装并添加压缩模式、帧头和帧尾字段。
(3)MAC地址映射表组帧模块:在一个学习周期之后,接收MAC地址学习模块发送过来的学习所得MAC地址映射表,对其结合MAC地址映射表解帧模块根据对端发送过来的MAC地址映射表帧所得CRC校验结果按照预设的帧结构完成组帧,得到MAC地址映射表帧。然后通过无线链路发送到对端,供对端进行解压缩时使用。即所得MAC地址映射表帧输入下行映射表帧缓存单元进行缓存,经业务组帧/分帧模块通过无线链路输出。
本发明设计为,本端由地址学习得到的地址映射表通过无线链路发送到对端,用于为解压缩方提供解压依据,对端完全接收到地址映射表之后,对其进行循环冗余校验,并将校验的结果通过上行链路反馈回去,本端通过解析判断该校验字段来决定是否开始进行压缩。
(4)MAC地址映射表解帧模块:对从无线链路接收所得对端发送过来的MAC地址映射表帧进行处理,MAC地址映射表帧由接收对端的传输设备经无线链路、业务组帧/分帧模块、上行映射表帧缓存单元发送过来。
首先,对该帧进行CRC校验以确认该映射表帧经过无线链路传输后是否出现误码,并将校验的结果输出给本端的MAC地址映射表组帧模块,基于此方式来决定对端是否能够开始压缩。亦即,如果校验的结果为零,说明地址映射表在传输的过程中没有出现误码,本端正确的接收到用于解压缩的地址映射表,则对端可以进行压缩,反之则不能进行压缩。然后,解析该帧结构,一是分解出MAC地址映射表帧中的MAC地址并缓存在RAM表中,得到供解压缩的MAC地址映射表;二是解析出对端传送过来的CRC校验结果输出给本端的以太网帧压缩模块,以决定本端是否开始进行压缩,即CRC校验结果为0则满足压缩条件,否则不满足。
实施例中,解压缩方根据压缩模式字段的最高比特来乒乓切换用于解压的地址映射表,从而保证压缩方与解压缩方使用的地址映射表是匹配的。
(5)以太网帧解压缩模块:从上行MAC帧缓存单元以及MAC地址映射表解帧模块中分别获取压缩后的数据和供解压缩的MAC地址映射表,解析接收到的帧结构,将获得的ID号与MAC地址映射表逐一比较,能够匹配的就完成ID号与对应MAC地址的替换,从而完成以太网帧的解压缩。
所述MAC帧由接收对端的传输设备经无线链路、业务组帧/分帧模块、上行MAC帧缓存单元发送过来。
实施例中,解压缩方解析压缩模式字段从而判断该如何恢复原始数据,其对数据包的处理具体包括:删除压缩时添加的帧头与帧尾;根据压缩模式和地址映射表恢复原来的目的MAC地址和源MAC地址;恢复以太网数据包的前导序列、帧开始定界符和循环冗余校验码字段。
为描述方便,将从本端设备发送以太网数据至对端设备的传输链路称为下行链路,从对端设备发送数据至本端设备的传输链路称为上行链路。
参见图2,
在下行链路中,本端设备的工作方式如下:接口数据缓存模块从FPGA外围的Switch(交换机)芯片接收到以太网帧数据,然后将以太网帧数据发送给MAC地址学习模块进行地址学习。在地址学习的过程中,MAC地址学习模块不断的将数据透传给后续的以太网帧压缩模块,同时,在一个学习周期结束后,将学习到得用于压缩的MAC地址发送给以太网帧压缩模块和MAC地址映射表组帧模块。在以太网压缩模块中,当压缩条件满足时,该模块开始用学习到的MAC地址开始压缩工作,否则,则对数据进行一般操作。但是,不管是压缩前还是压缩后的数据都要发送给下行MAC帧缓存单元进行缓存,然后经由业务组帧/分帧模块读取并最终通过数据总线发送给交叉控制单元(IDU设备的其中一块单盘);同理,在MAC地址映射表组帧模块中,将学习到的MAC地址按照约定的协议进行组帧,然后发送给下行映射表帧缓存单元进行缓存,最终也是经由业务组帧/分帧模块读取并最终通过数据总线发送给交叉控制单元,经无线链路发出,从而供对端上行进行解压缩使用。
在上行链路中,本端设备的工作方式如下:上行首先由业务组帧/分帧模块通过数据总线从交叉控制单元获取数据,然后将业务数据(MAC帧)和映射表帧区分开来并分别缓存到上行MAC帧缓存单元和上行映射表帧缓存单元中。其中,MAC地址映射表解帧模块通过读取上行映射表缓存单元获得本端用于解压的MAC地址映射表帧,该帧不仅包含用于本端是否开始压缩的标示(即对端传送过来的CRC校验结果)还有用于本端解压缩的MAC地址映射表。此外,通过对该帧进行CRC校验,得到标识,然后发送给下行的MAC地址映射表组帧模块,从而用来决定对端什么时候开始进行压缩。在以太网帧解压缩模块,通过读取上行MAC帧缓存单元的业务数据以及MAC地址映射表解帧模块得到的MAC地址映射表来完成业务数据的解压缩与恢复。解压缩恢复后的数据最后发送给接口数据缓存模块,然后按照标准的以太网接口协议发送给FPGA外围的Switch芯片。
为便于实施参考起见,提供利用本发明实施例中传输设备实现的以太网数据包二层头压缩的方法详细说明,包括以下步骤:
(1) 将从RGMII接口(吉比特介质独立接口)过来的4bit并行数据以及与之对应的使能信号通过一个IP CORE,知识产权核),在125M的时钟频率下完成1000M数据的8bit完整输出和对应的2bit使能信号输出,进而进入后续的接口数据缓存模块(FIFO)中进行缓存。
(2) MAC地址学习模块从接口数据缓存模块中读取以太网数据帧,然后提取其中的MAC地址(包括源地址(SA)与目的地址(DA)),按照地址由低到高的顺序写入到RAM表中。初始时刻,RAM表项为空,所以第一次获取的MAC地址就被保存在RAM表中。当从缓存中读取下一帧获取到MAC地址后,遍历RAM表中所有的表项,与新获取的MAC地址进行比较匹配。如果能够匹配,则将该地址对应的计数器加1;反之,则其对应的计数器值保持不变。这样,每来一个数据帧都进行上述的操作,从而完成MAC地址的学习。以此同时,老化机制与地址学习并行执行,当老化时间到达后,遍历RAM表每个地址对应的计数器,如果某个计数器小于系统设定的老化门限,说明该MAC地址不是系统传输过程中常用的,则应该将该地址从RAM表中老化掉,亦即该地址不用进行压缩。该MAC地址从RAM表项中老化掉以后,则该表项又可以重新开始学习新的MAC地址了,这样能够在很大程度上提高后续压缩的匹配率以及降低FPGA内部资源的消耗。参见图3,其中,MAC地址学习模块通过解析以太网帧结构来获取MAC地址;学习/工作表用来存储学习到得MAC地址,它是在不断的搜索匹配和老化的共同作用下得到的,可在FPGA内部用双口RAM(随机访问存储器)来实现,并且它的设计深度是8,数据位宽为48bit;学习周期是可由本领域技术人员预先设置的循环计数,它表示系统通过这个计数周期的匹配和老化,得到了那些可以用来进行压缩的MAC地址,形成MAC地址映射表。在下一个周期内,这些用于压缩的MAC地址可能更新。
(3) 在下行链路上,由于在压缩时需要去掉以太网的原始帧头,再添加自己定义的帧头(0x7E),所以在对每一个数据帧进行压缩之前要对其进行封装,以保证在后续的数据净荷中不会出现0x7E。本发明实施例中以太网帧压缩模块借鉴LAPS协议,遍历以太网数据包的每个字节,如果在信息字段中出现了0x7E,就将其转换为0x7D5E;如果出现了0x7D,就将其转换为0x7D5D 。在封装之后,就进入压缩判定阶段。如果压缩条件不满足,则数据不进行二层压缩,而只进行正常的数据LAPS封装操作;当压缩条件满足,进行二层压缩时,要根据解析的MAC地址与学习到的地址表项的匹配度分为2种不同的压缩类型。一是DA、SA有一个不匹配(可能是DA也可能是SA);二是DA、SA都能够匹配。这样,就必须分几种不同的情况对压缩类型进行标识,否则就会导致解压缩方不能正确解压。根据以太网帧中MAC地址与学习到的地址映射表项的匹配个数,实施例将后续的压缩模式分为4种:目的地址和源地址都压缩模式、只压缩目的地址模式、只压缩源地址模式以及不压缩模式。
(4) 如上所述,当以太网帧压缩模块解析得到的目的地址(DA)与源地址(SA)都在地址映射表中时,用“FF”用来表示;当目的地址(DA)进行了二层压缩,源地址(SA)没有进行二层压缩时,用“F0”用来表示;当目的地址(DA)没有进行二层压缩,源地址(SA)进行了二层压缩时,用“0F”用来表示。
(5) 通过地址学习得到常用MAC地址-ID号的映射表,以太网帧压缩模块据此完成二层帧头压缩,但这仅仅只完成了整个传输系统的一半,只有对端完成解压缩,这个传输系统才有意义。本端由地址学习得到的地址映射表通过无线链路发送到对端,用于为解压缩方提供解压依据,对端完全接收到地址映射表之后,对其进行循环冗余校验,并将校验的结果通过上行链路反馈回去,本端通过解析判断该校验字段来决定是否开始进行压缩。为了对端能够正确的解压缩,本端必须将学习到的地址映射表通过无线链路发送到远端去,实现的技术方案是:MAC地址映射表组帧模块接收从MAC地址学习模块中传输过来的MAC地址(以8个为例),然后按照特定的帧格式进行组帧。同时,接收上行部分MAC地址映射表解帧模块输出过来的CRC标示,然后组成69个字节的帧发送出去,如下表1所示。
表1: MAC地址映射表组帧的结构
其中,Preamble(前导序列)占用8个字节(8B),是该帧的帧头;其后的ID1(占用一个字节)与MAC1(占用6个字节)、ID2与MAC2等都是成对出现的,它们表示在压缩和解压缩时两者可用来相互替代;FCS字段是将除去前导序列后剩余的数据进行CRC32校验后得到的字段,占用4个字节;最后一个字节的ACK信号为对端发送过来的地址映射表帧校验后的结果。
(6) 压缩好的数据以及组好的地址映射表帧在通过调制发送到无线链路之前,首先要经过业务/组帧分帧模块完成业务与控制字段的分复接,即根据接收的帧头、时钟及系统的设定带宽,将缓存的以太网帧数据及MAC地址映射表帧从相应的缓存单元读取出来,然后通过业务数据总线发给交叉控制单元(IDU的一块单盘);同理,在上行链路,通过业务/组帧分帧模块接收交叉控制单元发送过来的帧头和系统设定的带宽,从数据总线上将以太网帧数据及MAC地址映射表帧从相应的位置提取出来,然后分别写入相应的缓存FIFO,即上行MAC帧缓存单元和上行映射表帧缓存单元中。
(7) 在解压缩之前,必须得到压缩时MAC地址与压缩ID标示的对应关系。MAC地址映射表解帧模块通过解析从上行映射表帧缓存单元读取的MAC地址映射表帧达到了此项目的。考虑到地址更新的问题,提取出的MAC地址需要在双口RAM表的高低地址来回切换写入,以保证用于本端压缩和对端解压缩的地址映射表是同一张表。 参见图5,该地址映射表帧也是由FPGA内部的双口RAM实现,并且双口RAM的设计深度为16,位宽为48bit。其中,RAM表的低地址(0~7)用来存放先学习到的8个MAC地址,高地址(8~15)用来存放下一个学习周期得到的8个新的MAC地址,这种高低地址存放MAC地址的变化通过压缩标识的最高bit变化(0/1翻转)来保证同步匹配,即根据地址更新来回切换写入地址,并根据压缩标识的最高bit来回切换读出地址。此外,该MAC地址映射表解帧模块将提取出下行地址映射表CRC校验值作为下行的压缩开始标识,并且还将对收到的传送过来的地址映射表的进行CRC校验,将计算得到的结果输出给下行链路,通过下行链路的MAC地址映射表组帧模块添加在其最后一个字节(即ACK信号),最后通过无线链路传送到对端下行链路,供对端下行完成压缩和解压缩。
(8) 由于在设计上保证了只有对端接收到正确的MAC地址映射表帧后,本端才能开始压缩,所以在接收到带有压缩标示的以太网帧时,就可以利用地址映射表进行解压缩。具体的处理是:以太网帧解压缩模块从上行的数据缓存中读取并检测数据帧,当检测到帧头0x7E7E信号时,去掉0x7E7E,并继续解析其后的标志字节。根据其后的压缩标识字节来控制数据缓存FIFO的读使能。进而根据ID号与MAC地址的对应关系进行二层解压缩。然后,再进行后续数据的解封装,即如果在数据帧信息字段中出现了0x7D5E,则将其替换为0x7E,如果出现了0x7D5D,则将其替换为0x7D。最后去掉帧头2个字节的7E与帧尾1个字节的7E,再添加上初始标准的帧头Preamble。即得到标准的以太网帧。
在上述以太网数据包二层头压缩的方法中,在仅压缩SA时,即压缩类型为“0F”时,显然DA此时不能够被压缩,所以就需要进行常规的封装。这就导致解压缩方不知道对应的ID标识所在的位置(因为远端不知道DA在封装的时候到底插入了几个“0x7D5E”或“0x7D5D”)。所以,在本端压缩时,就要将DA中所含的封装信息标识出来。
本发明实施例的各压缩模式分别处理如下:
参见表2,当压缩方启用目的地址和源地址都压缩模式时,对以太网帧进行处理,具体包括:
将以太网数据帧的前导序列、帧开始定界符和循环冗余检验码字段去除;
根据学习到得MAC地址,在压缩条件满足时,将以太网数据包中的MAC地址(包括DA与SA)用与之对应的ID号代替,然后进行封装并添加压缩模式、帧头和帧尾字段。
表2:目的MAC地址(DA)和源MAC地址(SA)都压缩的帧结构
其中,数据帧最开始的2个字节的7E表示该数据帧是一个经过压缩后的帧,其后的1个字节FF/7F表示该帧的两个MAC地址都进行了压缩,且用最高bit的翻转来区分前后使用了不同的地址映射表进行了压缩,以保证对端能依此进行辨别,从而采用正确的地址映射表进行解压缩;ID1和ID2各占用一个字节,用来替代未压缩前的两个MAC地址;后续的Type/Length和Payload字段保留以太网数据本身,未做修改;最后一个字节7E为一帧的帧尾,标记当前数据帧的结束。
参见表3,当压缩方启用只压缩目的地址压缩模式时,对以太网帧进行处理,具体包括:
将以太网数据帧的前导序列、帧开始定界符和循环冗余检验码字段去除;
根据学习到得MAC地址,在压缩条件满足时,将以太网数据包中的MAC地址(仅包括DA)用与之对应的ID号代替,然后进行封装并添加压缩模式、帧头和帧尾字段。
表3:仅压缩目的MAC地址(DA)的帧结构
与表2类似,其中,数据帧最开始的2个字节的7E表示该数据帧是一个经过压缩后的帧,其后的1个字节F0/70表示该帧仅目的MAC地址(DA)进行了压缩,而源MAC地址没有进行压缩,也用最高bit的翻转来区分新旧地址学习表;ID1用来替代未压缩前的DA;后续的SA、Type/Length和Payload字段保留以太网数据本身,未做修改;最后一个字节7E为一帧的帧尾,标记当前数据帧的结束。
参见图4,为只压缩源地址的情况,其帧结构大体与表2和表3类似,最大的区别在于帧头之后的一个字节,因为对端解压缩时不知道DA之中到底有多少个0x7E或0x7D,为保证解压缩方不解压错误,所以本端必须告知对端。具体的方法是:当DA中没有0x7E或0x7D时,帧头后的压缩标识就用0F/8F(同样用最高bit翻转来区分新旧地址学习表)表示;当DA中有一个0x7E或0x7D时,帧头后的压缩标识就用1F/9F表示;依次类推,当DA中有六个0x7E或0x7D时,帧头后的压缩标识就用6F/EF表示。
上述实例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其它的任何未违背本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化均应为等效的置换方式,都包含在本发明的保护范围之内。