一种基于FPGA的IP报文网络地址转换方法及装置制造方法及图纸

技术编号:20686981 阅读:15 留言:0更新日期:2019-03-27 20:40
本发明专利技术实施例公开了一种基于FPGA的IP报文网络地址转换方法及装置。所述方法,应用于可编程逻辑器件中,包括:通过以太网端口并行接收IP报文并分别切分为cell单元;对首cell单元进行报文解析,得到IP报文属性信息,将属于同一IP报文的cell单元按照端口存储于报文缓存区中;采用端口轮询调度机制,依次在报文缓存区中获取与一个端口对应的cell单元作为当前cell单元,并根据当前cell单元的类型,对当前cell单元进行组装处理;在确定与一个IP报文对应的全部cell单元被组装完成时,通过与IP报文对应的端口将IP报文转发。本发明专利技术实施例的技术方案,通过FPGA对IP报文进行网络地址转换,提高了处理速度和通用性。

【技术实现步骤摘要】
一种基于FPGA的IP报文网络地址转换方法及装置
本专利技术实施例涉及网络通信领域技术,尤其涉及一种基于FPGA的IP报文网络地址转换方法及装置。
技术介绍
随着通信技术的不断发展,计算机的使用数量迅速增加,出现了IP地址(InternetProtocolAddress,互联网协议地址)空间衰竭的问题。网络地址转换技术可以实现私有网络访问公共网络的功能,这种通过使用少量的公有IP地址代表较多的私有IP地址的方式,有助于减缓可用IP地址空间的衰竭。当有保密需要或者网络的内部IP地址无法在外部网络使用时,网络交换设备需要进行IP报文的网络地址转换,现有技术主要是通过专用网络处理器(NetworkProcessor,NP)和主机的方式来实现对IP报文进行网络地址转换,但是目前市场上的很多常用设备中没有包括专用网络处理器,而使用包含专用网络处理器的设备花费成本又比较高,导致使用包含专用网络处理器的设备进行网络地址转换的客户群体相对比较少,因此这种方法不具有通用性。对于不包含专用网络处理器的设备来说,常用的方法是通过多核CPU(CentralProcessingUnit,中央处理器)来实现IP报文的网络地址转换,但是,这种通过多核CPU进行网络地址转换的传统CPU硬件方案,需要处理大量的指令,不仅处理速度上较慢,而且会使得整个系统处理较为复杂。
技术实现思路
本专利技术实施例提供一种基于FPGA的IP报文网络地址转换方法及装置,以通过可编程逻辑器件FPGA(Field-ProgrammableGateArray,现场可编程门阵列)实现快速、有效地对IP报文进行网络地址转换。第一方面,本专利技术实施例提供了一种基于FPGA的IP报文网络地址转换方法,应用于可编程逻辑器件中,包括:通过多个以太网端口并行接收多个IP报文,并将接收的各所述IP报文分别切分为多个cell单元,所述IP报文中的首cell单元中包括IP报文属性信息;对各所述首cell单元进行报文解析,得到与所述首cell单元对应的IP报文属性信息,并将所述首cell单元以及与所述首cell单元属于同一IP报文的其他cell单元按照端口对应存储于报文缓存区中;采用端口轮询调度机制,依次在报文缓存区中获取与一个端口对应的cell单元作为当前cell单元,并根据所述当前cell单元的类型,采取对应的处理方式对所述当前cell单元进行cell单元组装处理;在确定与一个IP报文对应的全部cell单元被组装完成时,通过与所述IP报文对应的端口将所述IP报文进行转发。可选的,根据所述当前cell单元的类型,采取对应的处理方式对所述当前cell单元进行cell单元组装处理,包括:如果当前cell单元为首cell单元,则对所述当前cell单元进行报文解析,将解析得到的IP报文属性信息进行网络地址转换,得到新的IP报文属性信息重新写入所述当前cell单元,并根据所述当前cell单元构造组装报文结构;如果所述当前cell单元不为首cell单元,则在与所述当前cell单元匹配的组装报文结构的尾部加入所述当前cell单元。可选的,采用端口轮询调度机制,依次在报文缓存区中获取与一个端口对应的cell单元作为当前cell单元,具体包括:在采用端口轮询调度机制确定轮询至目标端口时,检测是否接收到与所述目标端口匹配的调度控制指令;若是,则在所述报文缓存区中获取与所述目标端口对应的cell单元作为当前cell单元;其中,所述调度控制指令在当前调度的所述目标端口所对应的报文缓存区非空时生成。可选的,在将所述首cell单元以及与所述首cell单元属于同一IP报文的其他cell单元按照端口对应存储于报文缓存区中之后,还包括:在确定与同一IP报文对应的cell单元全部缓存于所述报文缓存区之后,确定与该IP报文对应的cell单元参与端口轮询调度。可选的,所述将解析得到的IP报文属性信息进行网络地址转换,得到新的IP报文属性信息重新写入所述当前cell单元,包括:将解析得到的所述IP报文属性信息与网络地址转换表进行匹配,若匹配成功,则根据匹配结果,获取与所述IP报文属性信息对应的转换IP报文属性信息写入所述当前cell单元中;其中,所述转换IP报文属性信息中包括:新的IP信息、新的TCP(TransmissionControlProtocol,传输控制协议)/UDP(UserDatagramProtocol,用户数据报协议)端口信息、新的IP校验和与新的TCP/UDP校验和;若匹配失败,则将所述当前cell单元中的以太网类型参数的值设置为目标值,并将当前cell单元中的报文数据返回给网络交换芯片;其中,所述以太网类型参数中的所述目标值用于通知与所述FPGA通过所述以太网接口相连的网络交换芯片在所述FPGA的网络地址转换表中添加与所述当前cell单元的IP报文属性信息对应的网络地址转换表项。可选的,所述采用端口轮询调度机制,依次在报文缓存区中获取与一个端口对应的cell单元作为当前cell单元,包括:根据端口cell单元数量轮询端口,若当前端口的端口cell单元数量不为0,则从当前端口调度一个cell单元,否则,当前端口不进行cell单元调度,继续轮询下一个端口;其中,当一个cell单元按照端口对应存储于报文缓存区时,该端口的端口cell单元数量加1,当端口的一个cell被调度出报文缓存区时,该端口的端口cell单元数量减1。可选的,在通过多个以太网端口并行接收多个IP报文之前,还包括:确认网络地址转换的期望带宽,根据所述期望带宽计算cell单元的位宽参数、FPGA的工作时钟频率参数以及报文缓存区;其中,所述报文缓存区包括FPGA内部RAM(RandomAccessMemory,随机存取存储器)和外部DDR(DoubleDataRateSDRAM,双倍速率同步动态随机存储器)。可选的,将所述首cell单元以及与所述首cell单元属于同一IP报文的其他cell单元按照端口对应存储于报文缓存区中,包括:将所述首cell单元存入对应端口的报文缓存区域;与所述首cell单元属于同一IP报文的其他cell单元通过从空闲指针链表获取空闲指针,串联到对应端口的cell单元指针链表;其中,所述cell单元指针链表中的首个指针指向首cell单元在所述对应端口的报文缓存区域的存储位置。可选的,所述将接收的各所述IP报文分别切分为多个cell单元,包括:按照端口顺序获取一个端口作为目标端口;将通过所述目标端口接收的一个IP报文切分为多个cell单元,并在检测到所述多个cell单元被全部存储在与所述目标端口对应的报文缓存区时,返回执行按照端口顺序获取一个端口作为目标端口的操作,直至满足结束处理条件。第二方面,本专利技术实施例还提供了一种基于FPGA的IP报文网络地址转换装置,应用于可编程逻辑器件中,包括:接收切分模块,用于通过多个以太网端口并行接收多个IP报文,并将接收的各所述IP报文分别切分为多个cell单元,所述IP报文中的首cell单元中包括IP报文属性信息;解析存储模块,用于对各所述首cell单元进行报文解析,得到与所述首cell单元对应的IP报文属性信息,将所述首cell单元以及与所述首cell单元属于同一IP报文的其他ce本文档来自技高网...

【技术保护点】
1.一种基于FPGA的IP报文网络地址转换方法,应用于可编程逻辑器件中,其特征在于,包括:通过多个以太网端口并行接收多个IP报文,并将接收的各所述IP报文分别切分为多个cell单元,所述IP报文中的首cell单元中包括IP报文属性信息;对各所述首cell单元进行报文解析,得到与所述首cell单元对应的IP报文属性信息,并将所述首cell单元以及与所述首cell单元属于同一IP报文的其他cell单元按照端口对应存储于报文缓存区中;采用端口轮询调度机制,依次在报文缓存区中获取与一个端口对应的cell单元作为当前cell单元,并根据所述当前cell单元的类型,采取对应的处理方式对所述当前cell单元进行cell单元组装处理;在确定与一个IP报文对应的全部cell单元被组装完成时,通过与所述IP报文对应的端口将所述IP报文进行转发。

【技术特征摘要】
1.一种基于FPGA的IP报文网络地址转换方法,应用于可编程逻辑器件中,其特征在于,包括:通过多个以太网端口并行接收多个IP报文,并将接收的各所述IP报文分别切分为多个cell单元,所述IP报文中的首cell单元中包括IP报文属性信息;对各所述首cell单元进行报文解析,得到与所述首cell单元对应的IP报文属性信息,并将所述首cell单元以及与所述首cell单元属于同一IP报文的其他cell单元按照端口对应存储于报文缓存区中;采用端口轮询调度机制,依次在报文缓存区中获取与一个端口对应的cell单元作为当前cell单元,并根据所述当前cell单元的类型,采取对应的处理方式对所述当前cell单元进行cell单元组装处理;在确定与一个IP报文对应的全部cell单元被组装完成时,通过与所述IP报文对应的端口将所述IP报文进行转发。2.根据权利要求1所述的方法,其特征在于,根据所述当前cell单元的类型,采取对应的处理方式对所述当前cell单元进行cell单元组装处理,包括:如果当前cell单元为首cell单元,则对所述当前cell单元进行报文解析,将解析得到的IP报文属性信息进行网络地址转换,得到新的IP报文属性信息重新写入所述当前cell单元,并根据所述当前cell单元构造组装报文结构;如果所述当前cell单元不为首cell单元,则在与所述当前cell单元匹配的组装报文结构的尾部加入所述当前cell单元。3.根据权利要求2所述的方法,其特征在于,采用端口轮询调度机制,依次在报文缓存区中获取与一个端口对应的cell单元作为当前cell单元,具体包括:在采用端口轮询调度机制确定轮询至目标端口时,检测是否接收到与所述目标端口匹配的调度控制指令;若是,则在所述报文缓存区中获取与所述目标端口对应的cell单元作为当前cell单元;其中,所述调度控制指令在当前调度的所述目标端口所对应的报文缓存区非空时生成。4.根据权利要求1-3任一项所述的方法,其特征在于,在将所述首cell单元以及与所述首cell单元属于同一IP报文的其他cell单元按照端口对应存储于报文缓存区中之后,还包括:在确定与同一IP报文对应的cell单元全部缓存于所述报文缓存区之后,确定与该IP报文对应的cell单元参与端口轮询调度。5.根据权利要求2所述的方法,其特征在于,所述将解析得到的IP报文属性信息进行网络地址转换,得到新的IP报文属性信息重新写入所述当前cell单元,包括:将解析得到的所述IP报文属性信息与网络地址转换表进行匹配,若匹配成功,则根据匹配结果,获取与所述IP报文属性信息对应的转换IP报文属性信息写入所述当前cell单元中;其中,所述转换IP报文属性信息中包括:新的IP信息、新的TCP/UDP端口信息、新的IP校验和与新的TCP/UDP校验和;若匹配失败,则将所述当前cell单元中的以太网类型参数的值设置为目标值,并将当前cell单元中的报文数据返回给网络交换芯片;其中,所述以太网类型参...

【专利技术属性】
技术研发人员:李文军
申请(专利权)人:北京物芯科技有限责任公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1