一种应用于l2tp中的数据处理方法及装置的制造方法_4

文档序号:9711408阅读:来源:国知局
外采用比特位的形式来标记,比使用整 型数组等其他方式节省了一些内存的使用,同时方便了很多。
[0093]最后还提出了如果需要select函数监听大于1024的fd的场景,使用了重新定义数 据结构的方法,重新申请大于l〇24bit位的内存。这样就使得多于1024的fd需要select函数 监听的场景也能处理了。
[0094] 在现有技术中,在L2TP中,需要建立256个隧道,每个隧道需要5个fd,那么至少要 有256*5 = 1280个比特位,所以select函数的1024个比特位就不能处理该业务,从而导致了 不能直接用select函数来监听。与现有技术相比,本发明提供的一种应用于L2TP中的数据 处理方法及装置,提出了在select函数监听的1024的比特位的后面扩展任意多个比特位, 使得大于1024的fd需要select监听的实现成为了可能。通过对创建的隧道进行了监听条件 的判断,将满足预设的监听条件的文件描述符分配至select函数的监听序列中,同时将不 满足预设的监听条件的文件描述符分配至select函数的监听序列之后,可以充分利用 select函数的监听序列,从而能够对满足预设的监听条件的文件描述符进行监听,扩展了 select函数监听的使用范围。另外,通过对监听序列之后的文件描述符确定索引,从而可以 方便地确定所有隧道中的文件描述符的位置。
[0095]在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另 一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情 况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可 以是元素、部件、或步骤中的一个或多个等。
[0096]虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的 实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭 露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明 的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【主权项】
1. 一种应用于L2TP中的数据处理方法,其特征在于,包括: 响应于创建L2TP隧道的请求,建立预设数量的socket; 判断所述socket对应的文件描述符的类型是否满足预设的监听条件; 若满足,则将所述socket对应的文件描述符分配至能够容纳所述文件描述符的select函数的监听序列中; 若不满足,则将所述socket对应的文件描述符分配至select函数的监听序列之后。2. 如权利要求1所述的一种应用于L2TP中的数据处理方法,其特征在于,所述判断所述 socket对应的文件描述符的类型是否满足预设的监听条件具体包括: 判断所述socket对应的文件描述符的隧道是否需要收发数据包; 若需要,则确定所述socket对应的文件描述符的类型满足预设的监听条件; 若不需要,则确定所述socket对应的文件描述符的类型不满足预设的监听条件。3. 如权利要求1所述的一种应用于L2TP中的数据处理方法,其特征在于,所述方法还包 括: 根据所述select函数的监听序列的长度,为分配至select函数的监听序列之后的文件 描述符确定索引。4. 如权利要求3所述的一种应用于L2TP中的数据处理方法,其特征在于,所述根据所述 select函数的监听序列的长度,为分配至select函数的监听序列之后的文件描述符确定索 引具体包括: 根据预设顺序,确定分配至select函数的监听序列之后的文件描述符的偏移量; 在所述select函数的监听序列的长度的基础上增加确定的所述偏移量,生成所述分配 至select函数的监听序列之后的文件描述符的索引。5. 如权利要求1-4中任一项所述的一种应用于L2TP中的数据处理方法,其特征在于,所 述将所述socket对应的文件描述符分配至能够容纳所述文件描述符的select函数的监听 序列中包括: 当满足预设的监听条件的文件描述符的总长度大于所述select函数的监听序列的长 度时,为所述select函数的监听序列重新分配内存,以确保重新分配的内存长度大于或者 等于满足预设的监听条件的文件描述符的总长度; 将所述select函数的监听序列占用的初始内存中的文件描述符复制到重新分配的内 存中。6. 如权利要求5所述的一种应用于L2TP中的数据处理方法,其特征在于,在将所述 select函数的监听序列中的文件描述符复制到重新分配的内存中的步骤之后,所述方法还 包括: 释放所述se1ect函数的监听序列占用的初始内存。7. -种应用于L2TP中的数据处理装置,其特征在于,包括: Socket建立单元,用来响应于创建L2TP隧道的请求,建立预设数量的socket; 判断单元,用来判断所述socket对应的文件描述符的类型是否满足预设的监听条件; 第一分配单元,用来当所述socket对应的文件描述符的类型满足预设的监听条件时, 将所述socket对应的文件描述符分配至能够容纳所述文件描述符的select函数的监听序 列中; 第二分配单元,用来当所述socket对应的文件描述符的类型不满足预设的监听条件 时,将所述socket对应的文件描述符分配至select函数的监听序列之后。8. 如权利要求7所述的一种应用于L2TP中的数据处理装置,其特征在于,所述判断单元 具体包括: 收发数据包判断子模块,用来判断所述socket对应的文件描述符是否需要收发数据 包; 第一确定子模块,用来当所述socket对应的文件描述符需要收发数据包,确定所述socket对应的文件描述符的类型满足预设的监听条件; 第二确定子模块,用来当所述socket对应的文件描述符不需要收发数据包,确定所述socket对应的文件描述符的类型不满足预设的监听条件。9. 如权利要求7所述的一种应用于L2TP中的数据处理装置,其特征在于,所述装置还包 括: 索引确定单元,用来根据所述select函数的监听序列的长度,为分配至select函数的 监听序列之后的文件描述符确定索引。10. 如权利要求9所述的一种应用于L2TP中的数据处理装置,其特征在于,所述索引确 定单元具体包括: 偏移量确定子模块,用来根据预设顺序,确定分配至select函数的监听序列之后的文 件描述符的偏移量; 索引生成子模块,用来在所述select函数的监听序列的长度的基础上增加确定的所述 偏移量,生成所述分配至select函数的监听序列之后的文件描述符的索引。11. 如权利要求7-10中任一项所述的一种应用于L2TP中的数据处理装置,其特征在于, 当满足预设的监听条件的文件描述符的总长度大于所述select函数的监听序列的长度时, 所述第一分配单元具体包括: 内存分配子模块,用来为所述select函数的监听序列重新分配内存,以确保重新分配 的内存长度大于或者等于满足预设的监听条件的文件描述符的总长度; 复制子模块,用来将所述select函数的监听序列占用的初始内存中的文件描述符复制 到重新分配的内存中。12. 如权利要求11所述的一种应用于L2TP中的数据处理装置,其特征在于,所述装置还 包括: 内存释放单元,用来在所述复制子模块将所述select函数的监听序列中的文件描述符 复制到重新分配的内存中之后,释放所述select函数的监听序列占用的初始内存。
【专利摘要】本发明公开了一种应用于L2TP中的数据处理方法及装置,其中方法包括:响应于创建L2TP隧道的请求,建立预设数量的socket;判断所述socket对应的文件描述符的类型是否满足预设的监听条件;若满足,则将所述socket对应的文件描述符分配至select函数的监听序列中;若不满足,则将所述socket对应的文件描述符分配至能够容纳所述文件描述符的select函数的监听序列之后。通过本发明,能够扩展select函数监听的使用范围。
【IPC分类】H04L29/06
【公开号】CN105471838
【申请号】CN201510761538
【发明人】杨青智, 田海燕
【申请人】瑞斯康达科技发展股份有限公司
【公开日】2016年4月6日
【申请日】2015年11月10日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1