以太网数据帧时延损伤实现方法
技术领域
本发明涉及一种损伤实现方法,特别是涉及一种以太网数据帧时延损伤实现方法。
背景技术
当前以太网网络应用开发之初仅针对理想网络环境,未考虑实际网络带宽、时延、抖动、丢包等种种因网络资源有限而带来的各种问题。举例来说,在实验室环境或者说一般局域网内,带宽可以比较容易地跑到10MB,而在实际网络中,用户带宽可能只有100KB或者200KB。一个在实验室成功运行的应用,未必可以在实际网络中获得成功。以太网数据帧长度不定,最小数据帧为64字节。当数据帧经过FPGA(Field-ProgrammableGateArray,现场可编程门阵列)存储器设备(比如DDR、FIFO、BRAM)进行存储时,不利于数据帧帧头、帧尾的存储转发和判断。另外,现在也不存在以太网数据帧时延损伤实现方法,以太网数据帧的数据读取存在问题。
发明内容
本发明所要解决的技术问题是提供一种以太网数据帧时延损伤实现方法,其方便读取以太网数据帧的数据。
本发明是通过下述技术方案来解决上述技术问题的:一种以太网数据帧时延损伤实现方法,其特征在于,所述以太网数据帧时延损伤实现方法采用第一数据位宽转换电路、第一缓存电路、同步动态随机存储器、时延损伤控制器、控制器、现场可编程门阵列电路、内存条、第二数据位宽转换电路、第二缓存电路,所述以太网数据帧时延损伤实现方法包括以下步骤:
S1:第一被测设备发送用户的以太网数据帧至第一数据位宽转换电路和第一缓存电路;
S2:第一数据位宽转换电路完成以太网数据帧位宽到内存条数据处理位宽的转换;
S3:第一缓存电路实现用户处理电路与内存条的异步时钟处理,因为用户处理电路与内存条的时钟很可能不同;
S4:基于同步动态随机存储器存储分布式时延参数数据,参数可满足高斯分布、泊松分布、均匀分布等等,或者手动设定分布时延参数;
S5:以太网数据帧与同步动态随机存储器进行交互,获得分布式时延损伤参数;
S6:将分布式时延损伤参数的数值与以太网数据帧进入时延损伤控制器的时标相加得到数据包损伤时标;
S7:以太网数据帧通过时延损伤控制器和控制器后,现场可编程门阵列电路将第一被测设备发送的以太网数据帧的数据写入内存条进行存储;
S8:当从内存条读出以太网数据帧的数据时,首先进行时标比较,如果数据包损伤时标小于或者等于当前时标,说明已经满足数据帧时延要求,将以太网数据帧的数据读出,如果数据包损伤时标大于当前时标,说明尚未满足数据帧时延要求,继续等待,然后进行下一轮判断,直到数据包损伤时标小于或者等于当前时标时,将以太网数据帧的数据读出;
S9:从内存条读出的以太网数据帧的数据,经过第二缓存电路和第二数据位宽转换电路,最后发送至第二被测设备,这样方便读取以太网数据帧的数据。
优选地,所述步骤S7还可以包括以下步骤:
S71:每个以太网数据帧被分割成n个数据块,每一个数据块的大小为256位,n>2;
S72:每个数据块是由8个32位组成,从上到下为31到0,从左到右为7到0;数据块分为两种类型:帧首数据块和普通数据块;帧首数据块第一个32位的数据组成为:31-24位为保留位,23-0位为时标低24位;帧首数据块第二个32位的数据组成为:31-0位为时标高32位;帧首数据块第三到第七个32位的数据组成为:以太网数据包数据净荷;帧首数据块第八个32位的数据组成为:31位为数据帧结束符,30-29位为预留位,28-24位为块数据计数值,23-0位为数据帧计数值;普通数据块第一到第七个32位的数据组成为:以太网数据包数据净荷;普通数据块第八个32位的数据组成为:31位为数据帧结束符,30-29位为预留位,28-24位为块数据计数值,23-0位为数据帧计数值;
S73:一个时标位用于数据包损伤时标与当前时标比较,用于完成以太网数据帧时延损伤;
S74:一个数据帧结束符用于表示此数据帧是否结束,如果帧结束符为‘0’表示数据帧尚未结束,下一个数据块是当前数据帧的数据内容,如果帧结束符为‘1’表示当前数据帧结束,下一个数据块为下一个数据帧的数据内容;
S75:一个块数据计数位表示当前数据块的以太网数据载荷字节数;
S76:一个帧计数位表示当前数据帧的以太网数据载荷字节数;
S77:如果数据帧数据净荷不能填充满最后一个数据块,则通过全0或者全1填充数据块,保证每一个数据块的大小为256位,并且通过块数据计数位标识本数据块的有效数据净荷数目。
本发明的积极进步效果在于:本发明方便读取以太网数据帧的数据,另外有利于数据帧帧头的定位,便于实现数据帧的存储转发。
附图说明
图1为本发明以太网数据帧时延损伤实现方法的原理框图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
如图1所示,本发明以太网数据帧时延损伤实现方法采用第一数据位宽转换电路、第一缓存电路、同步动态随机存储器、时延损伤控制器、控制器、现场可编程门阵列(FPGA)电路、内存条、第二数据位宽转换电路、第二缓存电路,本发明以太网数据帧时延损伤实现方法包括以下步骤:
S1:第一被测设备(DeviceUnderTest)发送用户的以太网数据帧至第一数据位宽转换电路和第一缓存电路;
S2:第一数据位宽转换电路完成以太网数据帧位宽到内存条(比如DDR3型内存条)数据处理位宽的转换;
S3:第一缓存电路实现用户处理电路与内存条的异步时钟处理,因为用户处理电路与内存条的时钟很可能不同;
S4:基于同步动态随机存储器存储分布式时延参数数据,参数可满足高斯分布、泊松分布、均匀分布等等,或者手动设定分布时延参数;
S5:以太网数据帧与同步动态随机存储器进行交互,获得分布式时延损伤参数;
S6:将分布式时延损伤参数的数值与以太网数据帧进入时延损伤控制器的时标相加得到数据包损伤时标;
S7:以太网数据帧通过时延损伤控制器和控制器后,现场可编程门阵列(FPGA)电路将第一被测设备发送的以太网数据帧的数据写入内存条进行存储,其中控制器可以通过XilinxISE(一种硬件设计工具)的MIG(MemoryInterfaceGeneration,内存接口生成)形成和控制;
S8:当从内存条读出以太网数据帧的数据时,首先进行时标比较,如果数据包损伤时标小于或者等于当前时标,说明已经满足数据帧时延要求,将以太网数据帧的数据读出,如果数据包损伤时标大于当前时标,说明尚未满足数据帧时延要求,继续等待,然后进行下一轮判断,直到数据包损伤时标小于或者等于当前时标时,将以太网数据帧的数据读出;
S9:从内存条读出的以太网数据帧的数据,经过第二缓存电路和第二数据位宽转换电路,最后发送至第二被测设备,这样方便读取以太网数据帧的数据。
在以太网数据帧的数据写入内存条进行存储时,为了便于定位数据帧的帧头以及便于实现数据帧的存储转发,步骤S7还可以包括以下步骤:
S71:每个以太网数据帧被分割成n个数据块,每一个数据块的大小为256位(32字节),n>2(因为最小数据帧为64字节);
S72:每个数据块是由8个32位组成,从上到下为31到0,从左到右为7到0;数据块分为两种类型:帧首数据块和普通数据块;帧首数据块第一个32位(从左边算起)的数据组成为:31-24位为保留位,23-0位为时标低24位;帧首数据块第二个32位的数据组成为:31-0位为时标高32位;帧首数据块第三到第七个32位的数据组成为:以太网数据包数据净荷;帧首数据块第八个32位的数据组成为:31位为数据帧结束符,30-29位为预留位,28-24位为块数据计数值,23-0位为数据帧计数值;普通数据块第一到第七个32位的数据组成为:以太网数据包数据净荷;普通数据块第八个32位的数据组成为:31位为数据帧结束符,30-29位为预留位,28-24位为块数据计数值,23-0位为数据帧计数值(与帧首数据块第八个32位的数据组成相同);
S73:一个时标位(共56位)用于数据包损伤时标与当前时标比较,用于完成以太网数据帧时延损伤;
S74:一个数据帧结束符用于表示此数据帧是否结束,如果帧结束符为‘0’表示数据帧尚未结束,下一个数据块是当前数据帧的数据内容,如果帧结束符为‘1’表示当前数据帧结束,下一个数据块为下一个数据帧的数据内容;
S75:一个块数据计数位表示当前数据块的以太网数据载荷(Payload)字节数;
S76:一个帧计数位表示当前数据帧的以太网数据载荷字节数;
S77:如果数据帧数据净荷不能填充满最后一个数据块,则通过全0或者全1填充数据块,保证每一个数据块的大小为256位,并且通过块数据计数位标识本数据块的有效数据净荷数目。
本领域的技术人员可以对本发明进行各种改型和改变。因此,本发明覆盖了落入所附的权利要求书及其等同物的范围内的各种改型和改变。