【技术实现步骤摘要】
本申请涉及计算机
,具体涉及互联网
,尤其涉及数据报文的转发方法和和装置。
技术介绍
数据报文,是通过一定的技术标准或协议,在互联网中用于交换与传输的数据单元。数据报文中包含了将要发送的完整的数据信息,其长短不一致,长度不限且可变。数据报文的高效转发可提高数据的传输速度,合理利用资源。然而,现有的数据报文的转发方式通常是在将数据报文全部读取完毕后再进行转发,使得终端处于空闲等待的时间过长,同时在读取数据报文时,不能很好的根据传输控制协议的长度合理的分配数据一次传输的长度,造成资源浪费,读取速度慢的问题。
技术实现思路
本申请的目的在于提出一种改进的数据报文的转发方法和装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请提供了一种数据报文的转发方法,所述方法包括:接收数据报文,同时读取所述数据报文的首行数据内容的长度值;判断所述长度值是否小于或者等于传输控制协议一次所能传输的最大报文段长度;响应于所述长度值小于或者等于所述传输控制协议一次所能传输的最大报文段长度,对所述数据报文的数据以分片段的形式读取;响应于所述长度值大于所述传输控制协议一次所能传输的最大报文段长度,对所述数据报文的数据以分行的形式读取;将读取的数据存放在用户缓存区中,当所述用户缓存区中的数据达到预设容量阈值,将所述用户缓存区中的数据发送给终端。在一些实施例中,所述响应于所述长度值小于或者等于所述传输控制协议一次所能传输的最大报文段长度,对所述数据报文的数据以分片段的形式读取,包括:根据所述最大报文段长度,将所述数据报文封装成至少一个数据片段;将所述至少一个数据片段中的每一 ...
【技术保护点】
一种数据报文的转发方法,其特征在于,所述方法包括:接收数据报文,同时读取所述数据报文的首行数据内容的长度值;判断所述长度值是否小于或者等于传输控制协议一次所能传输的最大报文段长度;响应于所述长度值小于或者等于所述传输控制协议一次所能传输的最大报文段长度,对所述数据报文的数据以分片段的形式读取;响应于所述长度值大于所述传输控制协议一次所能传输的最大报文段长度,对所述数据报文的数据以分行的形式读取;将读取的数据存放在用户缓存区中,当所述用户缓存区中的数据达到预设容量阈值,将所述用户缓存区中的数据发送给终端。
【技术特征摘要】
1.一种数据报文的转发方法,其特征在于,所述方法包括:接收数据报文,同时读取所述数据报文的首行数据内容的长度值;判断所述长度值是否小于或者等于传输控制协议一次所能传输的最大报文段长度;响应于所述长度值小于或者等于所述传输控制协议一次所能传输的最大报文段长度,对所述数据报文的数据以分片段的形式读取;响应于所述长度值大于所述传输控制协议一次所能传输的最大报文段长度,对所述数据报文的数据以分行的形式读取;将读取的数据存放在用户缓存区中,当所述用户缓存区中的数据达到预设容量阈值,将所述用户缓存区中的数据发送给终端。2.根据权利要求1所述的方法,其特征在于,所述响应于所述长度值小于或者等于所述传输控制协议一次所能传输的最大报文段长度,对所述数据报文的数据以分片段的形式读取,包括:根据所述最大报文段长度,将所述数据报文封装成至少一个数据片段;将所述至少一个数据片段中的每一个数据片段通过数据拷贝的方式拷贝到用户空间;在所述至少一个数据片段全部拷贝到所述用户空间之后,对所述至少一个数据片段解封装。3.根据权利要求2所述的方法,其特征在于,所述在所述至少一个数据片段全部拷贝到所述用户空间之后,对所述至少一个数据片段解封装,包括:从拷贝到所述用户空间的各个数据片段中按照拷贝时间从先到后的顺序依次确定每一个数据片段中各行的数据长度,其中,所述各行的数据长度是用于存放各行数据内容长度值的定长数据长度加上各行的数据内容长度;根据所述各行的数据长度,确定各行的数据内容。4.根据权利要求3所述的方法,其特征在于,所述从拷贝到所述用户空间的各个数据片段中按照拷贝时间从先到后的顺序依次确定每一个数据片段中各行的数据长度,包括:读取所述定长数据长度;通过读取所述定长数据长度,确定各行数据内容的长度值;由所述各行数据内容的长度值,确定所述各行数据内容的长度。5.根据权利要求2所述的方法,其特征在于,所述将所述至少一个数据片段中的每一个数据片段通过数据拷贝的方式拷贝到用户空间,包括:将所述数据片段通过直接存储器访问的方式从协议引擎拷贝到内核空间下的套接字缓冲区;将拷贝到套接字缓冲区中的数据片段拷贝到用户空间下的所述用户缓存区中。6.根据权利要求1所述的方法,其特征在于,所述响应于所述长度值大于所述传输控制协议一次所能传输的最大报文段长度,对所述数据报文的数据以分行的形式读取,包括:按照行数从大到小的顺序依次读取所述数据报文的各行数据并存放在所述用户空间的用户缓存区中;根据读取到的所述各行的数据长度,确定各行的数据内容。7.根据权利要求1所述的方法,其特征在于,所述将读取的数据存放在用户缓存区中,当所述用户缓存区中的数据达到预设容量阈值,将所述用户缓存区中的数据发送给终端,包括:将读取的所述数据报文的数据长度值进行累加,直到达到所述用户缓存区的预设容量阈值;将达到所述预设容量阈值时读取的各行数据发送至...
【专利技术属性】
技术研发人员:王天宇,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。