一种网络加速的实现方法及装置与流程

文档序号:26751231发布日期:2021-09-25 02:33阅读:来源:国知局

技术特征:
1.一种网络加速的实现方法,其特征是,包括如下步骤;步骤s1:当某个输入接口有数据包准备发送给网络加速器时,该数据包称为输入数据包;该输入接口生成输入数据包描述符,内容是该输入数据包存储在外部存储器中的起始物理地址和长度;该输入接口将输入数据包描述符存入该输入接口的输入数据包描述符存储区中;随后该输入接口将输入数据包描述符的结束地址告知网络加速器,并通知网络加速器有新的输入数据包;步骤s2:网络加速器收到有新的输入数据包的通知后,获取输入数据包描述符结束地址;网络加速器将自身对该输入接口的输入数据包描述符存储区的读指针位置与获取的输入数据包描述符结束地址之间的部分判定为输入数据包描述符;网络加速器读取输入数据包描述符,然后仅读入每个输入数据包的开头一段长度的内容到内部缓存中进行处理,读取的长度从每个输入数据包的开头直至tcp/udp头部结束;步骤s3:当有数据包需要离开网络加速器时,该输出包称为输出数据包;网络加速器生成输出数据包描述符,内容是该输出数据包存储在外部存储器中的起始物理地址和长度;网络加速器将输出数据包描述符写入输出接口的输出数据包描述符存储区;然后网络加速器将自身在该输出数据包描述符存储区的写指针位置告知该输出接口;并通知该输出接口有输出数据包;步骤s4:该输出接口收到有新的输出数据包的通知后,获取网络加速器在该输出接口的输出数据包描述符存储区的写指针位置;输出接口将自身在该输出接口的输出数据包描述符存储区的读指针位置与获取的网络加速器在该输出接口的输出数据包描述符存储区的写指针位置之间的部分判定为输出数据包描述符;输出接口读取输出数据包描述符,然后逐一处理每个输出数据包描述符对应的输出数据包;处理完成后,输出接口释放掉输出数据包资源。2.根据权利要求1所述的网络加速的实现方法,其特征是,所述步骤s1中,如果输入接口有多个输入数据包准备发送给网络加速器,则生成每个输入数据包对应的输入数据包描述符,将多个输入数据包描述符顺序地存入输入数据包描述符存储区中。3.根据权利要求1所述的网络加速的实现方法,其特征是,所述步骤s1中,输入接口将输入数据包描述符的结束地址告知网络加速器,是通过写寄存器的方式,或者是输入接口将输入数据包描述符结束地址写到外部存储器的固定地址后、网络加速器来该固定地址读取的方式。4.根据权利要求1所述的网络加速的实现方法,其特征是,所述步骤s1中,每个输入接口在外部存储器中有一个单独的输入数据包描述符存储区;该输入数据包描述符存储区的起始地址和长度告知网络加速器,该输入数据包描述符存储区的起始地址作为网络加速器在该输入数据包描述符存储区中的初始化读指针地址。5.根据权利要求1所述的网络加速的实现方法,其特征是,所述步骤s1中,输入接口将输入数据包存储在外部存储器时,预留足够长度的空间以容纳最长的接口头部以及mac头部。6.根据权利要求1所述的网络加速的实现方法,其特征是,所述步骤s1中,各个输入接口告诉网络加速器如何解析该输入接口的数据包的接口头部,从而使网络加速器能够获取该数据包的总长度、头部的位置偏移。
7.根据权利要求1所述的网络加速的实现方法,其特征是,所述步骤s2中,网络加速器处理输入数据包是指判断每个输入数据包是否匹配进行加速的tcp和/或udp链路;如果匹配则对数据包进行相应的加速处理;否则将该数据包输出。8.根据权利要求7所述的网络加速的实现方法,其特征是,所述步骤s2中,网络加速器读取输入数据包描述符后,获取输入数据包在外部存储器中的起始物理地址和长度;随后网络加速器从这些输入数据包在外部存储器中的起始物理地址仅读取开头一段长度的内容;读取的长度大于或等于所有输入数据包的接口头部中最长的的长度+mac头部的固定长度+ip头部的长度+tcp/udp头部的长度;网络加速器从读取的内容中获取ip数据包的五元组信息,并根据ip数据包的五元组信息判定其是否与进行加速的tcp和/或udp链路相匹配;如果匹配,则进行相应的加速处理;如果不是tcp或udp数据包,或者没有匹配,则网络加速器输出该数据包。9.根据权利要求8所述的网络加速的实现方法,其特征是,所述步骤s2中,对数据包进行加速处理具体包括如下步骤;步骤s21:获取输出接口信息;步骤s22:决定是否需要计算或检验整个ip数据包的校验和;如不需要计算或检验整个ip数据包的校验和,跳过这一步;当数据包属于转发数据流时,不需要计算整个ip数据包的校验和,也不需要检验整个ip数据包的校验和;当数据包属于为非转发数据流时,由ap接口发送给其他接口的数据包需要计算整个ip数据包的校验和;ap接口收到其他接口的数据包需要检验整个ip数据包的校验和;其余情况不需要计算整个ip数据包的校验和,也不需要检验整个ip数据包的校验和;步骤s23:决定是否需要做网络地址转换;如不需要做网络地址转换,跳过这一步;如果ip数据包需要转发,则做网络地址转换;如果ip数据包不需要转发,则不做网络地址转换;步骤s24:网络加速器根据加速规则决定是否需要更新接口头部和mac头部;如不需要更新接口头部和mac头部,跳过这一步;更新接口头部是指将数据包的旧的接口头部和mac头部移除,再添加新的接口头部和mac头部;更新完成后,将更新后的接口头部和mac头部直至tcp或udp头部,写入到外部存储器中原有的位置;然后将新的数据包在外部存储器中的起始物理地址和新的数据包长度生成为输出数据包描述符,将其写入输出接口的输出数据包描述符存储区中。10.根据权利要求1所述的网络加速的实现方法,其特征是,所述步骤s3中,每个输出接口在外部存储器中有一个单独的输出数据包描述符存储区;该输出数据包描述符存储区的起始地址和长度信息告知网络加速器,该输出数据包描述符存储区的起始地址作为网络加速器在该输出数据包描述符存储区的初始化写指针地址。11.根据权利要求1所述的网络加速的实现方法,其特征是,所述步骤s4中,处理输出数据包包括送往网络协议栈处理、或者通过接口转发出去。12.一种网络加速的实现装置,其特征是,包括输入准备单元、输入处理单元、输出准备单元、输出处理单元;所述输入准备单元用来在某个输入接口有输入数据包时,令输入接口生成输入数据包
描述符,内容是该输入数据包存储在外部存储器中的起始物理地址和长度;将输入数据包描述符存入该输入接口的输入数据包描述符存储区中,将自身在输入数据包描述符存储区中写入的输入数据包描述符的结束地址告知网络加速器,还通知网络加速器有新的输入数据包;所述输入处理单元用来在网络加速器收到有新的输入数据包的通知后,获取输入数据包描述符结束地址;将网络加速器对该输入接口的输入数据包描述符存储区的读指针位置与获取的输入数据包描述符结束地址之间的部分判定为输入数据包描述符;读取输入数据包描述符,然后仅读入每个输入数据包的开头一段长度的内容到内部缓存中进行处理,读取的长度从每个输入数据包的开头直至tcp/udp头部结束;所述输出准备单元用来在网络加速器有输出数据包时,令络加速器生成输出数据包描述符,内容是该输出数据包存储在外部存储器中的起始物理地址和长度;将自身在该输出数据包描述符存储区的写指针位置告知输出接口,并通知该输出接口有输出数据包;所述输出处理单元用来在该输出接口收到有新的输出数据包的通知后,获取网络加速器在该输出接口的输出数据包描述符存储区的写指针位置;将输出接口在该输出接口的输出数据包描述符存储区的读指针位置与获取的网络加速器在该输出接口的输出数据包描述符存储区的写指针位置之间的部分判定为输出数据包描述符;读取这些输出数据包描述符,然后逐一处理每个输出数据包描述符对应的输出数据包;处理完成后,释放掉输出数据包资源。

技术总结
本申请公开了一种网络加速的实现方法。输入接口生成输入数据包描述符,存入输入数据包描述符存储区中;随后该输入接口将输入数据包描述符的结束地址告知网络加速器,并通知网络加速器有新的输入数据包。网络加速器读取输入数据包描述符,然后逐一处理每个输入数据包描述符对应的输入数据包。网络加速器生成输出数据包描述符,写入输出接口的输出数据包描述符存储区;然后网络加速器将自身在该输出数据包描述符存储区的写指针位置告知该输出接口;并通知该输出接口有输出数据包。该输出接口读取输出数据包描述符,然后逐一处理每个输出数据包描述符对应的输出数据包。本申请加快了数据包的处理进程,减少了网络传输的数据量。减少了网络传输的数据量。减少了网络传输的数据量。


技术研发人员:周侨 高玫涛 薄一帆
受保护的技术使用者:翱捷科技股份有限公司
技术研发日:2021.05.21
技术公布日:2021/9/24
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1