CN104969533A - 一种数据包处理方法和装置 - Google Patents

一种数据包处理方法和装置 Download PDF

Info

Publication number
CN104969533A
CN104969533A CN201380002979.XA CN201380002979A CN104969533A CN 104969533 A CN104969533 A CN 104969533A CN 201380002979 A CN201380002979 A CN 201380002979A CN 104969533 A CN104969533 A CN 104969533A
Authority
CN
China
Prior art keywords
protocol stack
packet
mark
domains
dps
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380002979.XA
Other languages
English (en)
Other versions
CN104969533B (zh
Inventor
唐继元
王伟
陈克平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104969533A publication Critical patent/CN104969533A/zh
Application granted granted Critical
Publication of CN104969533B publication Critical patent/CN104969533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种数据包处理方法和装置,该可包括:获取第一数据包,并解析所述第一数据包的包头,得到所述包头中DPS域包括的第一标识;其中,所述DPS域为用于携带接收设备的协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备与发送设备未建立协议栈对应关系,所述接收设备为所述包头中目的地址标识的设备,所述发送设备为所述包头中源地址标识的设备;根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目标协议栈处理所述第一数据包;其中,所述第一目标协议栈为启动的多个协议栈中的协议栈。本发明实施例可以提高协议栈的性能,从而提高设备的性能。

Description

一种数据包处理方法和装置
技术领域
本发明涉及通信领域, 尤其涉及一种数据包处理方法和装置。 背景技术
网络通信技术的快速发展促使网络带宽和流量不断增大,而网络带宽和流 量的增大, 导致协议栈的负载也增大, 这样协议栈的处理能力逐渐成为设备总 体性能的瓶颈。
虽然目前多核技术和网卡多队列技术的出现,能够将网络负载分摊到多个 内核上,但这些内核仍然共享一个协议栈。这样当多个内核同时获取到数据包 时, 这些内核都就会同时去访问协议栈的套接字 (socket )链表, 或者访问协 议栈的传输控制协议 ( Transmission Control Protocol, TCP )状态机或者通过 协议栈进行 TCP重组或者通过协议栈进行因特网互联协议( Internet Protocol , IP ) 重组时, 都将导致锁竟争开销、 緩存(cache ) 失效开销、 同步开销或者 异步开销等额外的开销。 且内核数越多时, 这些额外的开销就会越多。
可见, 目前协议栈的性能比较低, 从而设备的性能也会比较低。 发明内容
本发明实施例提供了一种数据包处理方法和装置,可以解决目前协议栈的 性能比较低, 从而设备的性能也会比较低的问题。
第一方面, 本发明实施例提供一种数据包处理方法, 包括:
获取第一数据包, 并解析所述第一数据包的包头,得到所述包头中目标协 议栈( Destination Protocol Stack , DPS )域包括的第一标识; 其中, 所述 DPS 为用于携带接收设备的协议栈的标识或者特定标识的域,所述特定标识用于表 示所述接收设备与发送设备未建立协议栈对应关系,所述接收设备为所述包头 中目的地址标识的设备, 所述发送设备为所述包头中源地址标识的设备;
根据所述第一标识将所述第一数据包分配至第一目标协议栈 ,所述第一目 标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多个协议 栈中的协议栈。
在第一方面的第一种可能的实现方式中,所述第一标识为所述接收端的协 议栈的标识;
所述根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第 一目标协议栈处理所述第一数据包, 包括:
从启动的多个协议栈中选择标识为所述第一标识的第一目标协议栈; 将所述第一数据包分配至所述第一目标协议栈 ,所述第一目标协议栈处理 所述第一数据包。
结合第一方面,在第一方面的第二种可能的实现方式中, 所述第一标识为 所述特定标识;
所述根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第 一目标协议栈处理所述第一数据包, 包括:
根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并将 所述第一数据包广播给启动的多个协议栈,当第一目标协议栈识别该第一目标 协议栈包括所述第一数据包的服务类型的服务时,所述第一目标协议栈处理所 述第一数据包; 或者
根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并从 预先获取的服务与协议栈的对应关系中查找第一目标协议栈,再将所述第一数 据包分配至所述第一目标协议栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述对应关系包括每个协议栈的服务信息, 所述第一目标协议栈为包括 所述第一数据包的服务类型的服务的协议栈。
结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第 二种可能的实现方式,在第一方面的第三种可能的实现方式中, 所述包头还包 括源协议栈(Source Protocol Stack , SPS )域, 所述 SPS域为用于携带所述 发送设备的协议栈的标识的域, 所述 SPS 域包括所述发送设备中处理所述第 一数据包的第二目标协议栈的第二标识;
所述第一目标协议栈处理所述第一数据包之后, 所述方法还包括: 向所述发送设备返回第二数据包,所述第二数据为所述第一数据包的响应 数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据 包的包头包括的 SPS域包括所述第一目标协议栈的标识, 所述第二数据包的 包头包括的 DPS域包括所述第二标识。
结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第 二种可能的实现方式,在第一方面的第四种可能的实现方式中, 所述获取第一 数据包, 并解析所述第一数据包的包头, 得到所述包头中 DPS域包括的第一 标识之前, 所述方法还包括:
启动多个协议栈, 并为每个协议栈分配标识;
当应用程序需要使用网络时,从所述多个协议栈中选择所述第一目标协议 栈为所述应用程序提供服务, 其中, 所述第一目标协议栈为所述应用程序提供 的服务为所述第一数据包的服务类型的服务。
第二方面, 本发明实施例提供一种数据包处理方法, 其特征在于, 包括: 通过第二目标协议栈生成第一数据包,所述第一数据包的得到所述包头包 括 SPS域和 DPS域; 其中, 所述 DPS域为用于携带接收设备的协议栈的标识 或者特定标识的域,所述特定标识用于表示所述接收设备与发送设备未建立协 议栈对应关系, 所述接收设备为所述包头中目的地址标识的设备,所述发送设 备为所述包头中源地址标识的设备; 所述 SPS域为用于携带所述发送设备的 协议栈的标识的域; 所述 DPS域包括第一标识, 所述 SPS域包括所述第二目 标协议栈的第二标识;
向所述接收设备发送所述第一数据包;以使所述接收设备根据所述第一标 识将所述第一数据包分配至第一目标协议栈,所述第一目标协议栈处理所述第 一数据包; 其中, 所述第一目标协议栈为所述接收设备启动的多个协议栈中的 协议栈。
在第二方面的第一种可能实现方式中,所述向所述接收设备发送所述第一 数据包之后, 所述方法还包括:
接收所述接收设备返回的第二数据包,所述第二数据为所述第一数据包的 响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二 数据包的包头包括的 SPS 域包括所述第一目标协议栈的标识, 所述第二数据 包的包头包括的 DPS域包括所述第二标识; 将所述第二数据包分配至所述第二目标协议栈,所述第二目标协议栈处理 所述第二数据包。
第三方面, 本发明实施例提供一种数据包处理装置, 包括: 获取单元和分 配单元, 其中:
所述获取单元, 用于获取第一数据包, 并解析所述第一数据包的包头, 得 到所述包头中 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设 备的协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备与 发送设备未建立协议栈对应关系,所述接收设备为所述包头中目的地址标识的 设备, 所述发送设备为所述包头中源地址标识的设备;
所述分配单元,用于根据所述第一标识将所述第一数据包分配至第一目标 协议栈, 通过所述第一目标协议栈处理所述第一数据包; 其中, 所述第一目标 协议栈为启动的多个协议栈中的协议栈。
在第三方面的第一种可能的实现方式中,所述分配单元用于当所述第一标 识所述第一标识为所述接收端的协议栈的标识时,从启动的多个协议栈中选择 标识为所述第一标识的第一目标协议栈;以及将所述第一数据包分配至所述第 一目标协议栈, 通过所述第一目标协议栈处理所述第一数据包。
结合第三方面,在第三方面的第二种可能的实现方式中, 所述分配单元用 于当所述第一标识为所述特定标识时,根据所述第一标识识别到未与所述发送 设备未建立协议栈对应关系, 并将所述第一数据包广播给启动的多个协议栈, 当第一目标协议栈识别该第一目标协议栈包括所述第一数据包的服务类型的 服务时, 通过所述第一目标协议栈处理所述第一数据包; 或者
所述分配单元用于当所述第一标识为所述特定标识时,根据所述第一标识 识别到未与所述发送设备未建立协议栈对应关系 ,并从预先获取的服务与协议 栈的对应关系中查找第一目标协议栈,再将所述第一数据包分配至所述第一目 标协议栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述对应关系包 括每个协议栈的服务信息,所述第一目标协议栈为包括所述第一数据包的服务 类型的服务的协议栈。
结合第三方面或者第三方面的第一种可能的实现方式或者第三方面的第 二种可能的实现方式,在第三方面的第三种可能的实现方式中, 所述包头还包 括 SPS域, 所述 SPS域为用于携带所述发送设备的协议栈的标识的域, 所述 SPS 域包括所述发送设备中处理所述第一数据包的第二目标协议栈的第二标 识;
所述装置还包括:
发送单元, 用于向所述发送设备返回第二数据包, 所述第二数据为所述第 一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据包的包头包括的 SPS 域包括所述第一目标协议栈的标识, 所述 第二数据包的包头包括的 DPS域包括所述第二标识。
结合第三方面或者第三方面的第一种可能的实现方式或者第三方面的第 二种可能的实现方式,在第三方面的第四种可能的实现方式中, 所述装置还包 括:
启动单元, 用于启动多个协议栈, 并为每个协议栈分配标识;
选择单元, 用于当应用程序需要使用网络时,从所述多个协议栈中选择所 述第一目标协议栈为所述应用程序提供服务, 其中, 所述第一目标协议栈为所 述应用程序提供的服务为所述第一数据包的服务类型的服务。
第四方面, 本发明实施例提供一种数据包处理装置, 包括: 生成单元和发 送单元, 其中:
所述生成单元, 用于通过第二目标协议栈生成第一数据包, 所述第一数据 包的得到所述包头包括 SPS域和 DPS域; 其中, 所述 DPS域为用于携带接收 设备的协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备 与发送设备未建立协议栈对应关系,所述接收设备为所述包头中目的地址标识 的设备, 所述发送设备为所述包头中源地址标识的设备; 所述 SPS域为用于 携带所述发送设备的协议栈的标识的域;所述 DPS域包括第一标识,所述 SPS 域包括所述第二目标协议栈的第二标识;
所述发送单元, 用于向所述接收设备发送所述第一数据包; 以使所述接收 设备根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目 标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为所述接收设备启 动的多个协议栈中的协议栈。
在第四方面的第一种可能的实现方式中, 所述装置还包括: 接收单元, 用于接收所述接收设备返回的第二数据包, 所述第二数据为所 述第一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据包的包头包括的 SPS域包括所述第一目标协议栈的标识, 所述第二数据包的包头包括的 DPS域包括所述第二标识;
分配单元, 用于将所述第二数据包分配至所述第二目标协议栈, 所述第二 目标协议栈处理所述第二数据包。
第五方面, 本发明实施例提供一种数据包处理装置, 包括: 接收器和存储 器, 以及分别与所述接收器和存储器连接的处理器, 其中, 所述存储器用于存 储一组程序代码, 所述处理器用于调用所述存储器存储的代码执行如下操作: 通过所述接收器获取第一数据包, 并解析所述第一数据包的包头,得到所 述包头中 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设备的 协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备与发送 设备未建立协议栈对应关系, 所述接收设备为所述包头中目的地址标识的设 备, 所述发送设备为所述包头中源地址标识的设备;
根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目 标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多个协议 栈中的协议栈。
在第五方面的第一种可能实现方式中,所述第一标识为所述接收端的协议 栈的标识;
所述处理器执行的根据所述第一标识将所述第一数据包分配至第一目标 协议栈, 所述第一目标协议栈处理所述第一数据包的操作, 包括:
从启动的多个协议栈中选择标识为所述第一标识的第一目标协议栈; 将所述第一数据包分配至所述第一目标协议栈 ,所述第一目标协议栈处理 所述第一数据包。
结合第五方面,在第五方面的第二种可能实现方式中, 所述第一标识为所 述特定标识;
所述处理器执行的根据所述第一标识将所述第一数据包分配至第一目标 协议栈, 所述第一目标协议栈处理所述第一数据包的操作, 包括:
根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系 ,并将 所述第一数据包广播给启动的多个协议栈,当第一目标协议栈识别该第一目标 协议栈包括所述第一数据包的服务类型的服务时,所述第一目标协议栈处理所 述第一数据包; 或者
根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并从 预先获取的服务与协议栈的对应关系中查找第一目标协议栈,再将所述第一数 据包分配至所述第一目标协议栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述对应关系包括每个协议栈的服务信息, 所述第一目标协议栈为包括 所述第一数据包的服务类型的服务的协议栈。
结合第五方面或者第五方面的第一种可能实现方式或者第五方面的第二 种可能实现方式, 在第五方面的第三种可能实现方式中, 所述包头还包括 SPS 域, 所述 SPS域为用于携带所述发送设备的协议栈的标识的域, 所述 SPS域 包括所述发送设备中处理所述第一数据包的第二目标协议栈的第二标识;
所述装置还包括发射器,所述处理器在执行第一目标协议栈处理所述第一 数据包的操作之后, 所述处理器还用于执行如下操作:
通过所述发射器向所述发送设备返回第二数据包,所述第二数据为所述第 一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据包的包头包括的 SPS 域包括所述第一目标协议栈的标识, 所述 第二数据包的包头包括的 DPS域包括所述第二标识。
结合第五方面或者第五方面的第一种可能实现方式或者第五方面的第二 种可能实现方式,在第五方面的第四种可能实现方式中,所述获取第一数据包, 并解析所述第一数据包的包头,得到所述包头中 DPS域包括的第一标识之前, 所述方法还包括:
启动多个协议栈, 并为每个协议栈分配标识;
当应用程序需要使用网络时,从所述多个协议栈中选择所述第一目标协议 栈为所述应用程序提供服务, 其中, 所述第一目标协议栈为所述应用程序提供 的服务为所述第一数据包的服务类型的服务。
第六方面, 本发明实施例提供数据包处理装置, 包括: 发射器和存储器, 以及分别与所述发射器和存储器连接的处理器, 其中, 所述存储器用于存储一 组程序代码, 所述处理器用于调用所述存储器存储的代码执行如下操作: 通过第二目标协议栈生成第一数据包,所述第一数据包的得到所述包头包 括 SPS域和 DPS域; 其中, 所述 DPS域为用于携带接收设备的协议栈的标识 或者特定标识的域,所述特定标识用于表示所述接收设备与发送设备未建立协 议栈对应关系, 所述接收设备为所述包头中目的地址标识的设备,所述发送设 备为所述包头中源地址标识的设备; 所述 SPS域为用于携带所述发送设备的 协议栈的标识的域; 所述 DPS域包括第一标识, 所述 SPS域包括所述第二目 标协议栈的第二标识;
通过所述发射器向所述接收设备发送所述第一数据包;以使所述接收设备 根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目标协 议栈处理所述第一数据包; 其中, 所述第一目标协议栈为所述接收设备启动的 多个协议栈中的协议栈。
在第六方面的第一种可能的实现方式中, 所述装置还包括接收器, 其中: 所述处理器在执行通过所述发射器向所述接收设备发送所述第一数据包的操 作之后, 还用于执行如下操作:
通过所述接收器接收所述接收设备返回的第二数据包,所述第二数据为所 述第一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据包的包头包括的 SPS域包括所述第一目标协议栈的标识, 所述第二数据包的包头包括的 DPS域包括所述第二标识;
将所述第二数据包分配至所述第二目标协议栈,所述第二目标协议栈处理 所述第二数据包。
上述技术方案中, 获取第一数据包后会根据第一数据包的包头中 DPS域 包括的第一标识将所述第一数据包分配至第一目标协议栈,这样第一目标协议 栈就可以处理所述第一数据包; 而其中, 第一目标协议栈为启动的多个协议栈 中的协议栈。这样就可以实现根据第一数据包携带的第一标识从多个协议栈中 选择第一目标协议栈处理第一数据包,相比现有技术中, 多个内核同时访问同 一个协议栈, 本发明实施例可以提高协议栈的性能, 从而提高设备的性能。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作筒单地介绍,显而易见地, 下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付 出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1是本发明实施例提供的一种数据包处理方法的流程示意图; 图 2是本发明实施例提供的另一种数据包处理方法的流程示意图; 图 3是本发明实施例提供的一种可选的包头示意图;
图 4是本发明实施例提供的另一种数据包处理方法的流程示意图; 图 5是本发明实施例提供的另一种数据包处理方法的流程示意图; 图 6是本发明实施例提供的另一种数据包处理方法的流程示意图; 图 Ί是本发明实施例提供的另一种数据包处理方法的示意图;
图 8是本发明实施例提供的一种可选的场景示意图;
图 9是本发明实施例提供的一种数据包处理装置的结构示意图; 图 10是本发明实施例提供的另一种数据包处理装置的结构示意图; 图 11是本发明实施例提供的另一种数据包处理装置的结构示意图; 图 12是本发明实施例提供的另一种数据包处理装置的结构示意图; 图 13是本发明实施例提供的另一种数据包处理装置的结构示意图; 图 14是本发明实施例提供的另一种数据包处理装置的结构示意图; 图 15是本发明实施例提供的另一种数据包处理装置的结构示意图; 图 16是本发明实施例提供的另一种数据包处理装置的结构示意图。 具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
请参阅图 1 , 图 1是本发明实施例提供的一种数据包处理方法的流程示意 图, 如图 1所示, 包括以下步骤:
101、 获取第一数据包, 并解析所述第一数据包的包头, 得到所述包头中 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设备的协议栈的 标识或者特定标识的域,所述特定标识用于表示所述接收设备与发送设备未建 立协议栈对应关系, 所述接收设备为所述包头中目的地址标识的设备, 所述发 送设备为所述包头中源地址标识的设备。
可选的, 上述协议栈的标识可以是用于唯一标识协议栈。 即一个协议栈唯 一对应一个标识, 这样通过该标识就可以查找到唯——个协议栈。 例如: 协议 栈的标识可以是编号, 例如: 启动 5个协议栈, 那么这 5个协议栈的标识就可 以分别为 1、 2、 3、 4、 5。
可选的, 上述接收设备与发送设备未建立协议栈对应关系可以是指,发送 设备不知道接收设备上是哪个协议栈处理上述第一数据包,即发送设备未获取 接收设备上处理上述第一数据包的协议栈的标识。 例如, 上述第一数据包为请 求包时, 上述接收设备与发送设备就可能未建立协议栈对应关系; 或者, 上述 第一数据包为上述发送设备与接收设备第一次通信的第一个数据包时,上述接 收设备与发送设备就可能未建立协议栈对应关系。
可选的,上述源地址可以是源 IP地址,上述目的地址可以是目的 IP地址。 102、 根据所述第一标识将所述第一数据包分配至第一目标协议栈, 所述 第一目标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多 个协议栈中的协议栈。
可选的, 上述启动的多个协议栈可以是至少两个协议栈。
可选的, 上述第一数据包可以是 IP数据包。
可选的, 上述方法具体可以是应用于服务器或者用户终端上, 具体可以是 服务器的服务端可以实现上述方法, 或者用户终端的用户端可以实现上述方 法; 还可以服务器或者用户终端的内核实现上述方法; 还可以服务器或者用户 终端的用户态集中式网络并行协议栈实现上述方法;还可以服务器或者用户终 端的 lib库协议栈实现上述方法。 其中。 用户终端可以是平板电脑、 手机、 电 子阅读器、 遥控器、 个人计算机( Personal Computer, PC )、 笔记本电脑、 车 载设备、 网络电视、 可穿戴设备等具有网络功能的智能设备。
上述技术方案中, 获取第一数据包后会根据第一数据包的包头中 DPS域 包括的第一标识将所述第一数据包分配至第一目标协议栈,这样第一目标协议 栈就可以处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多个协议 栈中的协议栈。这样就可以实现根据第一数据包携带的第一标识从多个协议栈 中选择第一目标协议栈处理第一数据包,相比现有技术中, 多个内核同时访问 同一个协议栈, 本发明实施例可以提高协议栈的性能, 从而提高设备的性能。 请参阅图 2, 图 2是本发明实施例提供的另一种数据包处理方法的流程示 意图, 如图 2所示, 包括以下步骤:
201、 启动多个协议栈, 并为每个协议栈分配标识。
可选的, 步骤 201可以是按照一定顺序启动多个协议栈,再为每个启动的 协议栈分配标识, 例如: 按照启动的先后顺序分配编号。 另外, 由于启动多个 协议栈, 这样这多个协议栈就为并行协议栈,且这多个协议栈可以是独立运行 的协议栈。
202、 当应用程序需要使用网络时, 从所述多个协议栈中选择所述第一目 标协议栈为所述应用程序提供服务, 其中, 所述第一目标协议栈为所述应用程 序提供的服务为所述第一数据包的服务类型的服务。
可选的,上述应用程序需要使用网络可以是指应用程序的进程或者线程需 要使用网络。上述第一目标协议栈为所述应用程序提供服务可以是, 第一目标 协议栈为应用程序的进程或者线程提供服务。其中,上述服务可以是网络服务, 例如: 上述服务对于 TCP/IP协议簇来说就是所有的 TCP/IP服务; 该上述服务 器还可以非 TCP/IP协议簇的网络服务等, 本实施例对此不作限定。 另外, 步 骤 202仅是介绍了第一目标协议栈为上述应用程序提供服务的实现方式,在本 实施例中还可以实现为启动的其它协议栈为其它应用程序提供服务, 当然, 不 同的协议栈提供的服务可以是不同的。
可选的 ,上述从所述多个协议栈中选择所述第一目标协议栈为所述应用程 序提供服务, 可以包括:
应用程序申请协议栈;
按特定原则为所述应用程序分配上述第一目标协议栈;
应用程序向所述第一目标协议栈发送建立服务请求;
第一目标协议栈建立服务。
可选的, 当应用程序需要传输层协议进行网络服务,应用程序还可以进行 端口申请, 如果应用程序用的是网络层或者数据链路层的协议时, 就可以不需 要端口申请。
可选的, 本实施例中,还可以通过一个专门用于管理协议栈的协议栈管理 模块管理启动的协议栈。 其中, 该协议栈管理模块可以是一个虚拟的模块。 这 样应用程序需要使用网络时,就可以向该协议栈管理模块进行端口申请和协议 栈申请, 该协议栈管理模块就可以为该应用程序分配端口和第一目标协议栈, 再将分配结果通知给应用程序,这样应用程序就可以向第一目标协议栈发送建 立服务请求。另外,上述按特定原则为所述应用程序分配上述第一目标协议栈, 可以包括:
判断上述应用程序是否绑定协议栈;
若上述应用程序绑定了协议栈时, 当上述应用程序只绑定一个协议栈时, 将该应用程序绑定的协议栈为作为上述第一目标协议栈;当上述应用程序绑定 了多个协议栈时 ,从该应用程序绑定的协议栈中选择一个协议栈作为上述第一 目标协议栈;
若上述应用程序未绑定协议栈时,从启动的多个协议栈中选择一个协议栈 作为上述第一目标协议栈。
可选的,上述从该应用程序绑定的协议栈中选择一个协议栈作为上述第一 目标协议栈可以是,从该应用程序绑定的协议栈中选择负载最轻的协议栈作为 上述第一目标协议,或者可以按照其他的分配方式来分配协议栈, 比如轮询方 式: 第一次分配为应用程序分配绑定的多个协议栈中的第一协议栈, 第二次分 配为应用程序分配绑定的多个协议栈中的第二协议栈等,对此本实施例不作限 定。 同理,从启动的多个协议栈中选择一个协议栈作为上述第一目标协议栈可 以是, 从启动的多个协议栈中选择负载最轻的协议栈作为上述第一目标协议 栈, 或者可以按照其他的分配方式来分配协议栈。
其中, 上述应用程序可以是指应用程序的进程或者线程。
可选的, 本实施例中, 还可以对启动的多个协议栈进行管理, 例如: 当网 络负载增大时, 当前启动的多个协议栈处理不过来时, 可以加载新的协议栈。 例如: 当网络负载减小时, 可以将启动的多个协议栈中存在需要卸载的协议栈 时, 卸载该协议栈, 或者迁移该协议栈的连接信息, 再卸载该协议栈; 其中, 该需要卸载的协议栈是指当前没有任何连接或者没有任何负载的协议栈,上述 连接信息可以包括: TCP连接信息、 TCP服务信息和 /或用户数据报协议(User Datagram Protocol, UDP )服务信息, 对此本实施例不作限定, 例如: 连接信 息还可以包括: IP服务信息、 文件传输协议(File Transfer Protocol, FTP )服 务信息、 安全壳协议(Secure Shell, SSH )服务信息等, 总的来说: 连接信息 就可以指所有的网络服务信息。 另外, TCP连接信息主要可以指: 每个连接的 状态机信息、 源 IP地址、 源端口号、 目的 IP地址、 目的端口号、 目的协议栈 信息。 TCP服务信息和 UDP服务信息主要可以是指: 目的 IP、 目的端口号、 目的协议栈信息等。 例如: 将协议栈 1的连接信息迁移至协议栈 2, 再卸载协 议栈 1 , 这样协议栈 2就可以处理协议栈 1上的连接, 即协议栈 2就可以处理 协议栈 1上的负载。 例如: 当某一个协议栈因错误导致异常时, 还可以重新加 载该协议栈。 另外, 本实施例可以建立一个协议栈管理模块管理协议栈。
203、 获取第一数据包, 并解析所述第一数据包的包头, 得到所述包头中 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设备的协议栈的 标识或者特定标识的域,所述特定标识用于表示所述接收设备与发送设备未建 立协议栈对应关系, 所述接收设备为所述包头中目的地址标识的设备, 所述发 送设备为所述包头中源地址标识的设备。
可选的, 上述第一数据包可以是上述应用程序处理的数据包, 例如: 上述 第一数据包的服务类型为上述第一目标协议栈为所述应用程序提供服务的类 型。
可选的, 上述包头还可以包括 SPS域, 所述 SPS域为用于携带所述发送 设备的协议栈的标识的域, 所述 SPS 域可以是包括所述发送设备中处理所述 第一数据包的第二目标协议栈的第二标识。 这样通过该 SPS域就可以知道发 送设备中第二目标协议栈的标识, 这样在往发送设备返回数据包时,就可以在 数据包的 DPS域中携带该第二目标协议栈的标识。
可选的, 第一数据包的包头可以为如图 3所示包头, 该包头可以包括: 版 本域、 头长域、 服务类型域、 总长域、 重组标识域、 标志域、 段偏移量域、 生 存时间域、 协议代码域、 头检验和域、 源 IP地址域、 目的 IP地址域、 SPS域、 DPS域、 可选数据域和用户数据域。 另外, 本实施例中对 SPS域和 DPS域的 长度不限的位置可以不作限定。
204、 根据所述第一标识将所述第一数据包分配至第一目标协议栈, 所述 第一目标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多 个协议栈中的协议栈。
可选的, 当上述第一标识为所述接收端的协议栈的标识时, 步骤 204, 可 以包括:
从启动的多个协议栈中选择标识为所述第一标识的第一目标协议栈; 将所述第一数据包分配至所述第一目标协议栈,所述第一目标协议栈处理 所述第一数据包。
该实施方式, 可以根据实现 DPS域中第一标识查找到上述第一目标协议 栈,再将第一数据包分配至第一目标协议栈处理, 这样可以第一目标协议栈独 立处理第一数据包, 以实现第一目标协议栈完全独立, 即第一目标协议栈与其 它协议栈没有任何协议连接信息。
可选的, 当上述第一标识为所述特定标识时, 步骤 204可以包括: 根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并将 所述第一数据包广播给启动的多个协议栈,当第一目标协议栈识别该第一目标 协议栈包括所述第一数据包的服务类型的服务时,所述第一目标协议栈处理所 述第一数据包。
该实施方式中由于第一数据包的服务类型是固定的,而上述第一目标协议 栈提供的服务类型也是固定的。这样当第一目标协议栈获取到上述第一数据包 后, 就可以检测第一数据包的服务类型, 当第一目标协议栈包括所述第一数据 包的服务类型的服务时, 第一目标协议栈处理所述第一数据包。 而其它协议栈 不包括第一数据包的服务类型的服务,这样这些其它协议栈就可以丟弃第一数 据包。
可选的, 当上述第一标识为所述特定标识时, 步骤 204可以包括: 根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并从 预先获取的服务与协议栈的对应关系中查找第一目标协议栈,再将所述第一数 据包分配至所述第一目标协议栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述对应关系包括每个协议栈的服务信息, 所述第一目标协议栈为包括 所述第一数据包的服务类型的服务的协议栈。
可选的,在步骤 204之前, 所述方法可以生成上述服务与协议栈的对应关 系, 该对应关系包括每个协议栈的服务信息, 即该对应关系表明每个协议栈的 服务。 可以是在每个协议为应用程序建立服务时生成的上述对应关系。 例如: 每个协议栈都可以通过步骤 202的实现方式为不同的应用程序提供服务,这样 就可以生成上述对应关系。 另外, 该对应关系具体可以是服务与协议栈的信息 表。
可选的, 所述包头还可以包括 SPS域, 所述 SPS域为用于携带所述发送 设备的协议栈的标识的域, 所述 SPS 域包括所述发送设备中处理所述第一数 据包的第二目标协议栈的第二标识; 如图 4所示, 在步骤 204之前, 所述方法 还可以包括:
205、 向所述发送设备返回第二数据包, 所述第二数据为所述第一数据包 的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第 二数据包的包头包括的 SPS域包括所述第一目标协议栈的标识, 所述第二数 据包的包头包括的 DPS域包括所述第二标识。
这样当发送设备接收到上述第二数据包时, 就可以是根据第二数据包的 DPS域包括的第二标识,直接将第二数据包分配至第二目标协议栈, 由第二目 标协议栈处理第二数据包。
可选的, 上述第一数据包可以是分片后的数据包, 即第一数据包为某一数 据包中的一部分。 但是分片后的数据包的包头中的 DPS域、 SPS域和服务类 型是一致的,这样通过上述步骤就可以实现将同一个数据包分片得到的多个数 据包分配至同一个协议栈处理。因为同一个数据包分片得到的多个数据包的包 头中的 DPS域、 SPS域和服务类型都是相同的, 这样通过上述步骤就一定会 分配至同一个协议栈。 另外, 可以采取将同一个数据流的分片数据包聚合到一 个緩存区中,待所有分片数据包都到达緩存区再合成一个完整数据包后再分配 至第一目标协议栈处理, 以减少第一目标协议栈的开销。
可选的, 上述方法具体可以是应用于服务器或者用户终端上, 具体可以是 服务器的服务端可以实现上述方法, 或者用户终端的用户端可以实现上述方 法; 还可以服务器或者用户终端的内核实现上述方法; 还可以服务器或者用户 终端的用户态集中式网络并行协议栈实现上述方法;还可以服务器或者用户终 端的 lib库协议栈实现上述方法。 其中。 用户终端可以是平板电脑、 手机、 电 子阅读器、 遥控器、 PC、 笔记本电脑、 车载设备、 网络电视、 可穿戴设备等 具有网络功能的智能设备。
上述技术方案中, 在第一个实施例的基本上增加了多种可选的实施方式, 且都可以实现提高协议栈的性能, 从而提高设备的性能。 请参阅图 5 , 图 5是本发明实施例提供的另一种数据包处理方法的流程示 意图, 如图 5所示, 包括以下步骤:
501、 通过第二目标协议栈生成第一数据包, 所述第一数据包的得到所述 包头包括 SPS域和 DPS域; 其中, 所述 DPS域为用于携带接收设备的协议栈 的标识或者特定标识的域,所述特定标识用于表示所述接收设备与发送设备未 建立协议栈对应关系, 所述接收设备为所述包头中目的地址标识的设备, 所述 发送设备为所述包头中源地址标识的设备; 所述 SPS域为用于携带所述发送 设备的协议栈的标识的域; 所述 DPS域包括第一标识, 所述 SPS域包括所述 第二目标协议栈的第二标识。
可选的,上述第一数据包可以是某个应用程序需要向接收设备发送的数据 包, 例如: 当某一应用程序需要与接收设备建立通信时, 就可以为该应用程序 分配上述第二目标协议栈; 其中, 为该应用程序分配上述第二目标协议栈可以 是按特定原则为该应用程序分配上述第二目标协议栈。上述按特定原则为该应 用程序分配上述第二目标协议栈, 可以包括:
判断该应用程序是否绑定协议栈;
若该应用程序绑定了协议栈时, 当上述应用程序只绑定一个协议栈时, 将 该应用程序绑定的协议栈为作为上述第二目标协议栈;当上述应用程序绑定了 多个协议栈时,将该应用程序绑定的协议栈中负载最轻的协议栈作为上述第二 目标协议栈;
若该应用程序未绑定协议栈时,将启动的多个协议栈中负载最轻的协议栈 作为上述第二目标协议栈。
其中, 上述应用程序可以是指应用程序的进程或者线程。 可选的,上述源地址可以是源 IP地址,上述目的地址可以是目的 IP地址。
502、 向所述接收设备发送所述第一数据包; 以使所述接收设备根据所述 第一标识将所述第一数据包分配至第一目标协议栈,所述第一目标协议栈处理 所述第一数据包; 其中, 所述第一目标协议栈为所述接收设备启动的多个协议 栈中的协议栈。
可选的,接收设备接收到上述第一数据包后, 就可以解析所述第一数据包 的包头, 得到所述包头中 DPS域包括的第一标识; 再根据所述第一标识将所 述第一数据包分配至第一目标协议栈,所述第一目标协议栈处理所述第一数据 包栈。
可选的, 如图 6所示, 在步骤 502之后, 所述方法还可以包括:
503、 接收所述接收设备返回的第二数据包, 所述第二数据为所述第一数 据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所 述第二数据包的包头包括的 SPS 域包括所述第一目标协议栈的标识, 所述第 二数据包的包头包括的 DPS域包括所述第二标识;
504、 将所述第二数据包分配至所述第二目标协议栈, 所述第二目标协议 栈处理所述第二数据包。
由于上述第二数据包的 DPS域包括上述第二标识, 这样步骤 504就可以 直接将第二数据包分配至第二目标协议栈, 由第二目标协议栈处理第二数据 包。
可选的, 上述方法具体可以是应用于服务器或者用户终端上, 具体可以是 服务器的服务端可以实现上述方法, 或者用户终端的用户端可以实现上述方 法; 还可以服务器或者用户终端的内核实现上述方法; 还可以服务器或者用户 终端的用户态集中式网络并行协议栈实现上述方法;还可以服务器或者用户终 端的 lib库协议栈实现上述方法。 其中。 用户终端可以是平板电脑、 手机、 电 子阅读器、 遥控器、 PC、 笔记本电脑、 车载设备、 网络电视、 可穿戴设备等 具有网络功能的智能设备。
上述技术方案中, 通过第二目标协议栈生成第一数据包, 所述第一数据包 的得到所述包头包括 SPS域和 DPS域;向所述接收设备发送所述第一数据包; 以使所述接收设备根据所述第一标识将所述第一数据包分配至第一目标协议 栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为 所述接收设备启动的多个协议栈中的协议栈。这样就可以实现根据第一数据包 携带的第一标识从多个协议栈中选择第一目标协议栈处理第一数据包,相比现 有技术中, 多个内核同时访问同一个协议栈, 本发明实施例可以提高协议栈的 性能, 从而提高设备的性能。 请参阅图 7和图 8, 图 7是本发明实施例提供的另一种数据包处理方法的 示意图, 图 8是本发明实施例提供的一种可选的场景示意图; 其中, 该实施例 以 IP为 192.168.1.1的服务器的提供 TCP 80服务(例如: 网页服务使用 TCP 的 80端口 ) , IP为 192.168.1.2的用户终端请求月良务进行举例说明。 如图 7所 示, 该实施例可以包括如下步骤:
701、服务器的服务端进程或者线程申请 80端口,再向协议栈管理模块申 请协议栈(这可以是以消息的形式发送, 也可以是***提供给应用程序的 API 接口);
702、服务器的协议栈管理模块按照规则从协议栈 #1和协议栈 #2中按照负 载均衡规则选择协议栈 #1 , 并将选择结果反馈给服务端进程或线程;
703、 服务器的服务端进程或者线程将服务建立请求发送给协议栈 #1 , 要 求建立 TCP 80服务;
704、 服务器的协议栈 #1创建 TCP 80服务, 该服务当前处于待连接状态 (即侦听状态, 表示服务端准备就绪, 等待客户端的连接请求), 并将创建结 果返回给服务端进程或线程;
705、 用户终端的客户端进程需要 tcp 80服务时, 该进程向协议栈管理模 块申请协议栈;
706、 用户终端的协议栈管理模块按照规则从当前合法的协议栈中 (该系 统目前只加载了一个协议栈)中按照负载均衡规则选择协议栈 #1 , 并将选择结 果反馈给客户端进程或线程;
707、用户终端的客户端进程或线程将连接请求(连接 IP地址为 192.168.1.1 的 TCP 80服务 )传给协议栈 #1 ;
708、 用户终端的协议栈 #1首先获得一个空闲 TCP端口 (比如 TCP 8888 端口), 然后构造连接请求的 IP数据包通过网卡发送给 IP地址为 192.168.1.1 的服务器;其中,连接请求的 IP数据包头的关键部分为:源 IP地址 192.168.1.2, 目的 IP地址 192.168.1.1 ; SP域为 1 , DPS域为 0, DPS域为 0可以等于上 面实施例介绍的特定标识; SP域为 1 , DPS域为 0是因为此时用户终端的协 议栈已经知道是协议栈 #1了, 所以 SPS为 1 , 但是目的 IP地址端的协议栈尚 不知道,所以 DPS为 0;连接请求的 TCP数据包头的关键部分为:源端口 8888, 目的端口 80;
709、 服务器接收到该 IP数据包, DPS分发模块从緩冲队列中获取该 IP 数据包;
7010、服务器的 DPS分发模块通过解析发现, 该 IP数据包 IP头的 DP值 为 0, DPS分发模块将该 IP数据广播给协议栈 #1和协议栈 #2;
7011、服务器的协议栈 #1收到该 IP数据包后,发现该 IP数据包为 TCP 80 服务的连接请求, 故发送一个连接请求回复数据包给用户终端; 其中, 连接请 求回复数据包关键部分为: 源 IP地址 192.168.1.1 , 目的 IP地址 192.168.1.2; SPSl , DP S1 ; 至此两端协议栈关联关系已经建立, 此时该连接的 IP数据包就 直接走这两个关联的协议栈。 由于协议栈 #2中没有 TCP 80服务, 故协议栈 #2 将丟弃该 IP数据包。
在图 8所示的示意图中,表示了该实施例中每个步骤的数据走向示意, 另 外, 本实施例中, DPS分发模块、 协议栈管理模块和协议栈都可以是由硬件, 或者软件实现的, 对此本实施例不作限定; 例如: 上述 DPS分发模块可以是 由网卡中硬件实现, 也可以通过软件实现。 下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例 一至四实现的方法, 为了便于说明, 仅示出了与本发明实施例相关的部分, 具 体技术细节未揭示的, 请参照本发明实施例一、 实施例二、 实施例三和实施例 四。 请参阅图 9, 图 9是本发明实施例提供的一种数据包处理装置的结构示意 图, 如图 9所示, 包括: 获取单元 91和分配单元 92, 其中: 获取单元 91 , 用于获取第一数据包, 并解析所述第一数据包的包头, 得 到所述包头中 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设 备的协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备与 发送设备未建立协议栈对应关系,所述接收设备为所述包头中目的地址标识的 设备, 所述发送设备为所述包头中源地址标识的设备。
可选的, 上述协议栈的标识可以是用于唯一标识协议栈。 即一个协议栈唯 一对应一个标识, 这样通过该标识就可以查找到唯——个协议栈。 例如: 协议 栈的标识可以是编号, 例如: 启动 5个协议栈, 那么这 5个协议栈的标识就可 以分别为 1、 2、 3、 4、 5。
可选的, 上述接收设备与发送设备未建立协议栈对应关系可以是指,发送 设备不知道接收设备上是哪个协议栈处理上述第一数据包,即发送设备未获取 接收设备上处理上述第一数据包的协议栈的标识。 例如, 上述第一数据包为请 求包时, 上述接收设备与发送设备就可能未建立协议栈对应关系; 或者, 上述 第一数据包为上述发送设备与接收设备第一次通信的第一个数据包时,上述接 收设备与发送设备就可能未建立协议栈对应关系。
可选的,上述源地址可以是源 IP地址,上述目的地址可以是目的 IP地址。 分配单元 92, 用于根据所述第一标识将所述第一数据包分配至第一目标 协议栈, 通过所述第一目标协议栈处理所述第一数据包; 其中, 所述第一目标 协议栈为启动的多个协议栈中的协议栈。
可选的, 上述启动的多个协议栈可以是至少两个协议栈。
可选的, 上述第一数据包可以是 IP数据包。
可选的, 上述装置具体可以是应用于服务器或者用户终端上, 具体可以是 服务器的服务端可以实现上述装置, 或者用户终端的用户端可以实现上述装 置; 还可以服务器或者用户终端的内核实现上述装置; 还可以服务器或者用户 终端的用户态集中式网络并行协议栈实现上述装置;还可以服务器或者用户终 端的 lib库协议栈实现上述装置。 其中。 用户终端可以是平板电脑、 手机、 电 子阅读器、 遥控器、 PC、 笔记本电脑、 车载设备、 网络电视、 可穿戴设备等 具有网络功能的智能设备。
上述技术方案中, 获取第一数据包后会根据第一数据包的包头中 DPS域 包括的第一标识将所述第一数据包分配至第一目标协议栈 ,这样第一目标协议 栈就可以处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多个协议 栈中的协议栈。这样就可以实现根据第一数据包携带的第一标识从多个协议栈 中选择第一目标协议栈处理第一数据包,相比现有技术中, 多个内核同时访问 同一个协议栈, 本发明实施例可以提高协议栈的性能, 从而提高设备的性能。 请参阅图 10, 图 10是本发明实施例提供的另一种数据包处理装置的结构 示意图, 如图 10所示, 包括: 启动单元 101、 选择单元 102、 获取单元 103 和分配单元 104, 其中:
启动单元 101 , 用于启动多个协议栈, 并为每个协议栈分配标识。
可选的, 启动单元 101可以是按照一定顺序启动多个协议栈,再为每个启 动的协议栈分配标识, 例如: 按照启动的先后顺序分配编号。 另外, 由于启动 多个协议栈, 这样这多个协议栈就为并行协议栈, 且这多个协议栈可以是独立 运行的协议栈。
选择单元 102, 用于当应用程序需要使用网络时, 从所述多个协议栈中选 择所述第一目标协议栈为所述应用程序提供服务, 其中, 所述第一目标协议栈 为所述应用程序提供的服务为所述第一数据包的服务类型的服务。
可选的,上述应用程序需要使用网络可以是指应用程序的进程或者线程需 要使用网络。上述第一目标协议栈为所述应用程序提供服务可以是, 第一目标 协议栈为应用程序的进程或者线程提供服务。其中,上述服务可以是网络服务, 例如: 上述服务对于 TCP/IP协议簇来说就是所有的 TCP/IP服务; 该上述服务 器还可以非 TCP/IP协议簇的网络服务等, 本实施例对此不作限定。 另外, 选 择单元 102仅是介绍了第一目标协议栈为上述应用程序提供服务的实现方式, 在本实施例中还可以实现为启动的其它协议栈为其它应用程序提供服务, 当 然, 不同的协议栈提供的服务可以是不同的。
可选的,选择单元 102可以用于控制应用程序向进行协议栈申请; 并按特 定原则为所述应用程序分配上述第一目标协议栈;以及控制应用程序向所述第 一目标协议栈发送建立服务请求; 以及控制第一目标协议栈建立服务。
可选的, 本实施例中,还可以通过一个专门用于管理协议栈的协议栈管理 模块管理启动的协议栈。 其中, 该协议栈管理模块可以是一个虚拟的模块。 这 样应用程序需要使用网络时,就可以向该协议栈管理模块进行端口申请和协议 栈申请, 该协议栈管理模块就可以为该应用程序分配端口和第一目标协议栈, 再将分配结果通知给应用程序,这样应用程序就可以向第一目标协议栈发送建 立服务请求。另外,选择单元 102可以用于判断上述应用程序是否绑定协议栈; 若上述应用程序绑定了协议栈时, 当上述应用程序只绑定一个协议栈时,将该 应用程序绑定的协议栈为作为上述第一目标协议栈;当上述应用程序绑定了多 个协议栈时,从该应用程序绑定的协议栈中选择一个协议栈作为上述第一目标 协议栈;
选择单元 102还可以用于若上述应用程序未绑定协议栈时,从启动的多个 协议栈中选择一个协议栈作为上述第一目标协议栈。
其中, 上述应用程序可以是指应用程序的进程或者线程。
可选的, 本实施例中, 还可以对启动的多个协议栈进行管理, 例如: 当网 络负载增大时, 当前启动的多个协议栈处理不过来时, 可以加载新的协议栈。 例如: 当网络负载减小时, 可以将启动的多个协议栈中存在需要卸载的协议栈 时, 卸载该协议栈, 或者迁移该协议栈的连接信息, 再卸载该协议栈; 其中, 该需要卸载的协议栈是指当前没有任何连接或者没有任何负载的协议栈,上述 连接信息可以包括: TCP连接信息、 TCP服务信息和 /或 UDP服务信息, 对此 本实施例不作限定, 例如: 连接信息还可以包括: IP服务信息、 FTP服务信 息、 SSH服务信息等, 总的来说: 连接信息就可以指所有的网络服务信息。 另 外, TCP连接信息主要可以指: 每个连接的状态机信息、 源 IP地址、 源端口 号、 目的 IP地址、 目的端口号、 目的协议栈信息。 TCP服务信息和 UDP服务 信息主要可以是指: 目的 IP、 目的端口号、 目的协议栈信息等。 例如: 将协 议栈 1的连接信息迁移至协议栈 2, 再卸载协议栈 1 , 这样协议栈 2就可以处 理协议栈 1上的连接, 即协议栈 2就可以处理协议栈 1上的负载。 例如: 当某 一个协议栈因错误导致异常时, 还可以重新加载该协议栈。 另外, 本实施例可 以建立一个协议栈管理模块管理协议栈。
获取单元 103 , 用于获取第一数据包, 并解析所述第一数据包的包头, 得 到所述包头中 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设 备的协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备与 发送设备未建立协议栈对应关系,所述接收设备为所述包头中目的地址标识的 设备, 所述发送设备为所述包头中源地址标识的设备。
可选的, 上述第一数据包可以是上述应用程序处理的数据包, 例如: 上述 第一数据包的服务类型为上述第一目标协议栈为所述应用程序提供服务的类 型。
可选的, 上述包头还可以包括 SPS域, 所述 SPS域为用于携带所述发送 设备的协议栈的标识的域, 所述 SPS 域可以是包括所述发送设备中处理所述 第一数据包的第二目标协议栈的第二标识。 这样通过该 SPS域就可以知道发 送设备中第二目标协议栈的标识, 这样在往发送设备返回数据包时,就可以在 数据包的 DPS域中携带该第二目标协议栈的标识。
可选的, 第一数据包的包头可以为如图 3所示包头, 该包头可以包括: 版 本域、 头长域、 服务类型域、 总长域、 重组标识域、 标志域、 段偏移量域、 生 存时间域、 协议代码域、 头检验和域、 源 IP地址域、 目的 IP地址域、 SPS域、 DPS域、 可选数据域和用户数据域。 另外, 本实施例中对 SPS域和 DPS域的 长度不限的位置可以不作限定。
分配单元 104, 用于根据所述第一标识将所述第一数据包分配至第一目标 协议栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述第一目标协议 栈为启动的多个协议栈中的协议栈。
可选的 ,分配单元 104可以用于当所述第一标识所述第一标识为所述接收 端的协议栈的标识时 ,从启动的多个协议栈中选择标识为所述第一标识的第一 目标协议栈; 以及将所述第一数据包分配至所述第一目标协议栈,通过所述第 一目标协议栈处理所述第一数据包。
该实施方式, 可以根据实现 DPS域中第一标识查找到上述第一目标协议 栈,再将第一数据包分配至第一目标协议栈处理, 这样可以第一目标协议栈独 立处理第一数据包, 以实现第一目标协议栈完全独立, 即第一目标协议栈与其 它协议栈没有任何协议连接信息。
可选的, 分配单元 104可以用于当所述第一标识为所述特定标识时,根据 所述第一标识识别到未与所述发送设备未建立协议栈对应关系 ,并将所述第一 数据包广播给启动的多个协议栈,当第一目标协议栈识别该第一目标协议栈包 括所述第一数据包的服务类型的服务时 ,通过所述第一目标协议栈处理所述第 一数据包。
该实施方式中由于第一数据包的服务类型是固定的,而上述第一目标协议 栈提供的服务类型也是固定的。这样当第一目标协议栈获取到上述第一数据包 后, 就可以检测第一数据包的服务类型, 当第一目标协议栈包括所述第一数据 包的服务类型的服务时, 第一目标协议栈处理所述第一数据包。 而其它协议栈 不包括第一数据包的服务类型的服务,这样这些其它协议栈就可以丟弃第一数 据包。
可选的, 分配单元 104可以用于当所述第一标识为所述特定标识时,根据 所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并从预先获取 的服务与协议栈的对应关系中查找第一目标协议栈,再将所述第一数据包分配 至所述第一目标协议栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所 述对应关系包括每个协议栈的服务信息,所述第一目标协议栈为包括所述第一 数据包的服务类型的服务的协议栈。
可选的, 所述装置可以生成上述服务与协议栈的对应关系, 该对应关系包 括每个协议栈的服务信息, 即该对应关系表明每个协议栈的服务。可以是在每 个协议为应用程序建立服务时生成的上述对应关系。例如: 每个协议栈都可以 通过选择单元 102实现为不同的应用程序提供服务,这样就可以生成上述对应 关系。 另外, 该对应关系具体可以是服务与协议栈的信息表。
可选的, 所述包头还可以包括 SPS域, 所述 SPS域为用于携带所述发送 设备的协议栈的标识的域, 所述 SPS 域包括所述发送设备中处理所述第一数 据包的第二目标协议栈的第二标识; 如图 11所示, 所述装置还可以包括: 发送单元 105 , 用于向所述发送设备返回第二数据包, 所述第二数据为所 述第一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据包的包头包括的 SPS域包括所述第一目标协议栈的标识, 所述第二数据包的包头包括的 DPS域包括所述第二标识。
这样当发送设备接收到上述第二数据包时, 就可以是根据第二数据包的 DPS域包括的第二标识,直接将第二数据包分配至第二目标协议栈, 由第二目 可选的, 上述第一数据包可以是分片后的数据包, 即第一数据包为某一数 据包中的一部分。 但是分片后的数据包的包头中的 DPS域、 SPS域和服务类 型是一致的,这样通过上述装置就可以实现将同一个数据包分片得到的多个数 据包分配至同一个协议栈处理。因为同一个数据包分片得到的多个数据包的包 头中的 DPS域、 SPS域和服务类型都是相同的, 这样通过上述步骤就一定会 分配至同一个协议栈。 另外, 可以采取将同一个数据流的分片数据包聚合到一 个緩存区中,待所有分片数据包都到达緩存区再合成一个完整数据包后再分配 至第一目标协议栈处理, 以减少第一目标协议栈的开销。
可选的, 上述装置具体可以是应用于服务器或者用户终端上, 具体可以是 服务器的服务端可以实现上述装置, 或者用户终端的用户端可以实现上述装 置; 还可以服务器或者用户终端的内核实现上述装置; 还可以服务器或者用户 终端的用户态集中式网络并行协议栈实现上述装置;还可以服务器或者用户终 端的 lib库协议栈实现上述装置。 其中。 用户终端可以是平板电脑、 手机、 电 子阅读器、 遥控器、 PC、 笔记本电脑、 车载设备、 网络电视、 可穿戴设备等 具有网络功能的智能设备。
上述技术方案中,在第一个装置实施例的基本上增加了多种可选的实施方 式, 且都可以实现提高协议栈的性能, 从而提高设备的性能。 请参阅图 12, 图 12是本发明实施例提供的另一种数据包处理装置的结构 示意图, 如图 12所示, 包括: 生成单元 121和发送单元 122, 其中:
生成单元 12, 用于通过第二目标协议栈生成第一数据包, 所述第一数据 包的得到所述包头包括 SPS域和 DPS域; 其中, 所述 DPS域为用于携带接收 设备的协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备 与发送设备未建立协议栈对应关系,所述接收设备为所述包头中目的地址标识 的设备, 所述发送设备为所述包头中源地址标识的设备; 所述 SPS域为用于 携带所述发送设备的协议栈的标识的域;所述 DPS域包括第一标识,所述 SPS 域包括所述第二目标协议栈的第二标识。
可选的,上述第一数据包可以是某个应用程序需要向接收设备发送的数据 包, 例如: 当某一应用程序需要与接收设备建立通信时, 生成单元 12就可以 为该应用程序分配上述第二目标协议栈; 其中, 生成单元 12为该应用程序分 配上述第二目标协议栈可以是按特定原则为该应用程序分配上述第二目标协 议栈。 例如: 生成单元 12还可以用于判断该应用程序是否绑定协议栈; 若该 应用程序绑定了协议栈时, 当上述应用程序只绑定一个协议栈时,将该应用程 序绑定的协议栈为作为上述第二目标协议栈;当上述应用程序绑定了多个协议 栈时,将该应用程序绑定的协议栈中负载最轻的协议栈作为上述第二目标协议 栈;
生成单元 12还可以用于若该应用程序未绑定协议栈时, 将启动的多个协 议栈中负载最轻的协议栈作为上述第二目标协议栈。
其中, 上述应用程序可以是指应用程序的进程或者线程。
可选的,上述源地址可以是源 IP地址,上述目的地址可以是目的 IP地址。 发送单元 122, 用于向所述接收设备发送所述第一数据包; 以使所述接收 设备根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目 标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为所述接收设备启 动的多个协议栈中的协议栈。
可选的,接收设备接收到上述第一数据包后, 就可以解析所述第一数据包 的包头, 得到所述包头中 DPS域包括的第一标识; 再根据所述第一标识将所 述第一数据包分配至第一目标协议栈,所述第一目标协议栈处理所述第一数据 包栈。
可选的, 如图 13所示, 所述装置还可以包括:
接收单元 123 , 用于接收所述接收设备返回的第二数据包, 所述第二数据 为所述第一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS 域, 其中, 所述第二数据包的包头包括的 SPS域包括所述第一目标协议栈的 标识, 所述第二数据包的包头包括的 DPS域包括所述第二标识;
分配单元 124, 用于将所述第二数据包分配至所述第二目标协议栈, 所述 第二目标协议栈处理所述第二数据包。
由于上述第二数据包的 DPS域包括上述第二标识, 这样分配单元 124就 可以直接将第二数据包分配至第二目标协议栈,由第二目标协议栈处理第二数 据包。
可选的, 上述装置具体可以是应用于服务器或者用户终端上, 具体可以是 服务器的服务端可以实现上述装置, 或者用户终端的用户端可以实现上述装 置; 还可以服务器或者用户终端的内核实现上述装置; 还可以服务器或者用户 终端的用户态集中式网络并行协议栈实现上述装置;还可以服务器或者用户终 端的 lib库协议栈实现上述装置。 其中。 用户终端可以是平板电脑、 手机、 电 子阅读器、 遥控器、 PC、 笔记本电脑、 车载设备、 网络电视、 可穿戴设备等 具有网络功能的智能设备。
上述技术方案中, 通过第二目标协议栈生成第一数据包, 所述第一数据包 的得到所述包头包括 SPS域和 DPS域;向所述接收设备发送所述第一数据包; 以使所述接收设备根据所述第一标识将所述第一数据包分配至第一目标协议 栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为 所述接收设备启动的多个协议栈中的协议栈。这样就可以实现根据第一数据包 携带的第一标识从多个协议栈中选择第一目标协议栈处理第一数据包,相比现 有技术中, 多个内核同时访问同一个协议栈, 本发明实施例可以提高协议栈的 性能, 从而提高设备的性能。 请参阅图 14, 图 14是本发明实施例提供的另一种数据包处理装置的结构 示意图, 如图 14所示, 包括: 接收器 141和存储器 142, 以及分别与所述接 收器 141和存储器 142连接的处理器 143 , 其中, 所述存储器 142用于存储一 组程序代码,所述处理器 143用于调用所述存储器 142存储的代码执行如下操 作:
通过所述接收器 141获取第一数据包, 并解析所述第一数据包的包头,得 到所述包头中 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设 备的协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备与 发送设备未建立协议栈对应关系,所述接收设备为所述包头中目的地址标识的 设备, 所述发送设备为所述包头中源地址标识的设备;
根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目 标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多个协议 栈中的协议栈。
可选的, 上述协议栈的标识可以是用于唯一标识协议栈。 即一个协议栈唯 一对应一个标识, 这样通过该标识就可以查找到唯——个协议栈。 例如: 协议 栈的标识可以是编号, 例如: 启动 5个协议栈, 那么这 5个协议栈的标识就可 以分别为 1、 2、 3、 4、 5。
可选的, 上述接收设备与发送设备未建立协议栈对应关系可以是指,发送 设备不知道接收设备上是哪个协议栈处理上述第一数据包,即发送设备未获取 接收设备上处理上述第一数据包的协议栈的标识。 例如, 上述第一数据包为请 求包时, 上述接收设备与发送设备就可能未建立协议栈对应关系; 或者, 上述 第一数据包为上述发送设备与接收设备第一次通信的第一个数据包时,上述接 收设备与发送设备就可能未建立协议栈对应关系。
可选的,上述源地址可以是源 IP地址,上述目的地址可以是目的 IP地址。 可选的, 上述启动的多个协议栈可以是至少两个协议栈。
可选的, 上述第一数据包可以是 IP数据包。
可选的, 上述装置具体可以是应用于服务器或者用户终端上, 具体可以是 服务器的服务端可以实现上述装置, 或者用户终端的用户端可以实现上述方 法; 还可以服务器或者用户终端的内核实现上述方法; 还可以服务器或者用户 终端的用户态集中式网络并行协议栈实现上述方法;还可以服务器或者用户终 端的 lib库协议栈实现上述方法。 其中。 用户终端可以是平板电脑、 手机、 电 子阅读器、 遥控器、 个人计算机( Personal Computer, PC )、 笔记本电脑、 车 载设备、 网络电视、 可穿戴设备等具有网络功能的智能设备。
上述技术方案中, 获取第一数据包后会根据第一数据包的包头中 DPS域 包括的第一标识将所述第一数据包分配至第一目标协议栈,这样第一目标协议 栈就可以处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多个协议 栈中的协议栈。这样就可以实现根据第一数据包携带的第一标识从多个协议栈 中选择第一目标协议栈处理第一数据包,相比现有技术中, 多个内核同时访问 同一个协议栈, 本发明实施例可以提高协议栈的性能, 从而提高设备的性能。 请参阅图 15 , 图 15是本发明实施例提供的另一种数据包处理装置的结构 示意图, 如图 15所示, 包括: 接收器 151和存储器 152, 以及分别与所述接 收器 151和存储器 152连接的处理器 153 , 其中, 所述存储器 152用于存储一 组程序代码,所述处理器 153用于调用所述存储器 152存储的代码执行如下操 作:
启动多个协议栈, 并为每个协议栈分配标识;
当应用程序需要使用网络时,从所述多个协议栈中选择所述第一目标协议 栈为所述应用程序提供服务, 其中, 所述第一目标协议栈为所述应用程序提供 的服务为所述第一数据包的服务类型的服务;
通过所述接收器 151获取第一数据包, 并解析所述第一数据包的包头,得 到所述包头中 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设 备的协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备与 发送设备未建立协议栈对应关系,所述接收设备为所述包头中目的地址标识的 设备, 所述发送设备为所述包头中源地址标识的设备;
根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目 标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多个协议 栈中的协议栈。
可选的, 处理器 153可以是按照一定顺序启动多个协议栈,再为每个启动 的协议栈分配标识, 例如: 按照启动的先后顺序分配编号。 另外, 由于启动多 个协议栈, 这样这多个协议栈就为并行协议栈,且这多个协议栈可以是独立运 行的协议栈。
可选的,上述应用程序需要使用网络可以是指应用程序的进程或者线程需 要使用网络。上述第一目标协议栈为所述应用程序提供服务可以是, 第一目标 协议栈为应用程序的进程或者线程提供服务。其中,上述服务可以是网络服务, 例如: 上述服务对于 TCP/IP协议簇来说就是所有的 TCP/IP服务; 该上述服务 器还可以非 TCP/IP协议簇的网络服务等, 本实施例对此不作限定。 另外, 上 述仅是介绍了第一目标协议栈为上述应用程序提供服务的实现方式,在本实施 例中还可以处理器 153实现为启动的其它协议栈为其它应用程序提供服务,当 然, 不同的协议栈提供的服务可以是不同的。
可选的,处理器 153执行的从所述多个协议栈中选择所述第一目标协议栈 为所述应用程序提供服务的操作, 可以包括:
应用程序申请协议栈;
按特定原则为所述应用程序分配上述第一目标协议栈;
应用程序向所述第一目标协议栈发送建立服务请求;
第一目标协议栈建立服务。
可选的, 当应用程序需要传输层协议进行网络服务,应用程序还可以进行 端口申请, 如果应用程序用的是网络层或者数据链路层的协议时, 就可以不需 要端口申请。
可选的, 本实施例中, 处理器 153还可以通过一个专门用于管理协议栈的 协议栈管理模块管理启动的协议栈。其中, 该协议栈管理模块可以是一个虚拟 的模块。这样应用程序需要使用网络时, 就可以向该协议栈管理模块进行端口 申请和协议栈申请,该协议栈管理模块就可以为该应用程序分配端口和第一目 标协议栈,再将分配结果通知给应用程序, 这样应用程序就可以向第一目标协 议栈发送建立服务请求。 另外, 处理器 153执行的按特定原则为所述应用程序 分配上述第一目标协议栈的操作, 可以包括:
判断上述应用程序是否绑定协议栈;
若上述应用程序绑定了协议栈时, 当上述应用程序只绑定一个协议栈时, 将该应用程序绑定的协议栈为作为上述第一目标协议栈;当上述应用程序绑定 了多个协议栈时 ,从该应用程序绑定的协议栈中选择一个协议栈作为上述第一 目标协议栈;
若上述应用程序未绑定协议栈时,从启动的多个协议栈中选择一个协议栈 作为上述第一目标协议栈。
其中, 上述应用程序可以是指应用程序的进程或者线程。
可选的, 本实施例中, 处理器 153还可以对启动的多个协议栈进行管理 , 例如: 当网络负载增大时, 当前启动的多个协议栈处理不过来时, 可以加载新 的协议栈。 例如: 当网络负载减小时, 可以将启动的多个协议栈中存在需要卸 载的协议栈时, 卸载该协议栈, 或者迁移该协议栈的连接信息, 再卸载该协议 栈; 其中, 该需要卸载的协议栈是指当前没有任何连接或者没有任何负载的协 议栈, 上述连接信息可以包括: TCP连接信息、 TCP服务信息和 /或 UDP服务 信息, 对此本实施例不作限定, 例如: 连接信息还可以包括: IP服务信息、 FTP服务信息、 SSH服务信息等, 总的来说: 连接信息就可以指所有的网络服 务信息。 另外, TCP连接信息主要可以指: 每个连接的状态机信息、 源 IP地 址、 源端口号、 目的 IP地址、 目的端口号、 目的协议栈信息。 TCP服务信息 和 UDP服务信息主要可以是指: 目的 IP、 目的端口号、 目的协议栈信息等。 例如: 将协议栈 1的连接信息迁移至协议栈 2, 再卸载协议栈 1 , 这样协议栈 2就可以处理协议栈 1上的连接, 即协议栈 2就可以处理协议栈 1上的负载。 例如: 当某一个协议栈因错误导致异常时, 还可以重新加载该协议栈。 另外, 本实施例可以建立一个协议栈管理模块管理协议栈。
可选的, 上述第一数据包可以是上述应用程序处理的数据包, 例如: 上述 第一数据包的服务类型为上述第一目标协议栈为所述应用程序提供服务的类 型。
可选的, 上述包头还可以包括 SPS域, 所述 SPS域为用于携带所述发送 设备的协议栈的标识的域, 所述 SPS 域可以是包括所述发送设备中处理所述 第一数据包的第二目标协议栈的第二标识。 这样通过该 SPS域就可以知道发 送设备中第二目标协议栈的标识, 这样在往发送设备返回数据包时,就可以在 数据包的 DPS域中携带该第二目标协议栈的标识。
可选的, 第一数据包的包头可以为如图 3所示包头, 该包头可以包括: 版 本域、 头长域、 服务类型域、 总长域、 重组标识域、 标志域、 段偏移量域、 生 存时间域、 协议代码域、 头检验和域、 源 IP地址域、 目的 IP地址域、 SPS域、 DPS域、 可选数据域和用户数据域。 另外, 本实施例中对 SPS域和 DPS域的 长度不限的位置可以不作限定。
可选的, 所述第一标识为所述接收端的协议栈的标识; 处理器 153执行的 根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目标协 议栈处理所述第一数据包的操作, 可以包括:
从启动的多个协议栈中选择标识为所述第一标识的第一目标协议栈; 将所述第一数据包分配至所述第一目标协议栈,所述第一目标协议栈处理 所述第一数据包。
该实施方式, 可以根据实现 DPS域中第一标识查找到上述第一目标协议 栈 ,再将第一数据包分配至第一目标协议栈处理, 这样可以第一目标协议栈独 立处理第一数据包, 以实现第一目标协议栈完全独立, 即第一目标协议栈与其 它协议栈没有任何协议连接信息。
可选的, 所述第一标识为所述特定标识; 处理器 153执行的根据所述第一 标识将所述第一数据包分配至第一目标协议栈,所述第一目标协议栈处理所述 第一数据包的操作可以, 包括:
根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并将 所述第一数据包广播给启动的多个协议栈,当第一目标协议栈识别该第一目标 协议栈包括所述第一数据包的服务类型的服务时,所述第一目标协议栈处理所 述第一数据包。
该实施方式中由于第一数据包的服务类型是固定的,而上述第一目标协议 栈提供的服务类型也是固定的。这样当第一目标协议栈获取到上述第一数据包 后, 就可以检测第一数据包的服务类型, 当第一目标协议栈包括所述第一数据 包的服务类型的服务时, 第一目标协议栈处理所述第一数据包。 而其它协议栈 不包括第一数据包的服务类型的服务,这样这些其它协议栈就可以丟弃第一数 据包。
可选的, 所述第一标识为所述特定标识; 处理器 153执行的根据所述第一 标识将所述第一数据包分配至第一目标协议栈,所述第一目标协议栈处理所述 第一数据包的操作可以, 包括:
根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并从 预先获取的服务与协议栈的对应关系中查找第一目标协议栈,再将所述第一数 据包分配至所述第一目标协议栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述对应关系包括每个协议栈的服务信息, 所述第一目标协议栈为包括 所述第一数据包的服务类型的服务的协议栈。
可选的, 所述装置可以生成上述服务与协议栈的对应关系, 该对应关系包 括每个协议栈的服务信息, 即该对应关系表明每个协议栈的服务。可以是在每 个协议为应用程序建立服务时生成的上述对应关系。例如: 每个协议栈都可以 通过处理器 153实现为不同的应用程序提供服务,这样就可以生成上述对应关 系。 另外, 该对应关系具体可以是服务与协议栈的信息表。 可选的, 所述包头还可以包括 SPS域, 所述 SPS域为用于携带所述发送 设备的协议栈的标识的域, 所述 SPS 域包括所述发送设备中处理所述第一数 据包的第二目标协议栈的第二标识; 所述装置还可以包括: 发射器 154; 处理 器 153 在执行第一目标协议栈处理所述第一数据包的操作之后, 处理器 153 还用于执行如下操作:
通过所述发射器 154向所述发送设备返回第二数据包,所述第二数据为所 述第一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据包的包头包括的 SPS域包括所述第一目标协议栈的标识, 所述第二数据包的包头包括的 DPS域包括所述第二标识。
这样当发送设备接收到上述第二数据包时, 就可以是根据第二数据包的 DPS域包括的第二标识,直接将第二数据包分配至第二目标协议栈, 由第二目 标协议栈处理第二数据包。
可选的, 上述第一数据包可以是分片后的数据包, 即第一数据包为某一数 据包中的一部分。 但是分片后的数据包的包头中的 DPS域、 SPS域和服务类 型都是相同的,这样通过上述步骤就可以实现将同一个数据包分片得到的多个 数据包分配至同一个协议栈处理。因为同一个数据包分片得到的多个数据包的 包头中的 DPS域、 SPS域和服务类型都是相同的, 这样通过上述步骤就一定 会分配至同一个协议栈。 另外, 可以采取将同一个数据流的分片数据包聚合到 一个緩存区中 ,待所有分片数据包都到达緩存区再合成一个完整数据包后再分 配至第一目标协议栈处理, 以减少第一目标协议栈的开销。
可选的, 上述装置具体可以是应用于服务器或者用户终端上, 具体可以是 服务器的服务端可以实现上述装置, 或者用户终端的用户端可以实现上述装 置; 还可以服务器或者用户终端的内核实现上述装置; 还可以服务器或者用户 终端的用户态集中式网络并行协议栈实现上述装置;还可以服务器或者用户终 端的 lib库协议栈实现上述装置。 其中。 用户终端可以是平板电脑、 手机、 电 子阅读器、 遥控器、 PC、 笔记本电脑、 车载设备、 网络电视、 可穿戴设备等 具有网络功能的智能设备。
上述技术方案中, 在上面实施例的基本上增加了多种可选的实施方式, 且 都可以实现提高协议栈的性能, 从而提高设备的性能。 请参阅图 16, 图 16是本发明实施例提供的另一种数据包处理装置的结构 示意图, 如图 16所示, 包括: 发射器 161和存储器 162, 以及分别与所述发 射器 161和存储器 162连接的处理器 163 , 其中, 所述存储器 162用于存储一 组程序代码,所述处理器 163用于调用所述存储器 162存储的代码执行如下操 作:
通过第二目标协议栈生成第一数据包,所述第一数据包的得到所述包头包 括 SPS域和 DPS域; 其中, 所述 DPS域为用于携带接收设备的协议栈的标识 或者特定标识的域,所述特定标识用于表示所述接收设备与发送设备未建立协 议栈对应关系, 所述接收设备为所述包头中目的地址标识的设备,所述发送设 备为所述包头中源地址标识的设备; 所述 SPS域为用于携带所述发送设备的 协议栈的标识的域; 所述 DPS域包括第一标识, 所述 SPS域包括所述第二目 标协议栈的第二标识;
通过所述发射器 161向所述接收设备发送所述第一数据包;以使所述接收 设备根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目 标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为所述接收设备启 动的多个协议栈中的协议栈。
可选的,上述第一数据包可以是某个应用程序需要向接收设备发送的数据 包, 例如: 当某一应用程序需要与接收设备建立通信时, 处理器 163就可以为 该应用程序分配上述第二目标协议栈; 其中, 处理器 163为该应用程序分配上 述第二目标协议栈可以是按特定原则为该应用程序分配上述第二目标协议栈。 处理器 163执行的按特定原则为该应用程序分配上述第二目标协议栈的操作, 可以包括:
判断该应用程序是否绑定协议栈;
若该应用程序绑定了协议栈时, 当上述应用程序只绑定一个协议栈时, 将 该应用程序绑定的协议栈为作为上述第二目标协议栈;当上述应用程序绑定了 多个协议栈时,将该应用程序绑定的协议栈中负载最轻的协议栈作为上述第二 目标协议栈;
若该应用程序未绑定协议栈时,将启动的多个协议栈中负载最轻的协议栈 作为上述第二目标协议栈。
其中, 上述应用程序可以是指应用程序的进程或者线程。
可选的,上述源地址可以是源 IP地址,上述目的地址可以是目的 IP地址。 可选的, 所述装置还可以包括接收器 164, 其中: 所述处理器 163通过所 述发射器 161向所述接收设备发送所述第一数据包之后,处理器 163还用于执 行如下操作:
通过所述接收器 164接收所述接收设备返回的第二数据包,所述第二数据 为所述第一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS 域, 其中, 所述第二数据包的包头包括的 SPS域包括所述第一目标协议栈的 标识, 所述第二数据包的包头包括的 DPS域包括所述第二标识;
将所述第二数据包分配至所述第二目标协议栈,所述第二目标协议栈处理 所述第二数据包。
由于上述第二数据包的 DPS域包括上述第二标识, 这样步骤 504就可以 直接将第二数据包分配至第二目标协议栈, 由第二目标协议栈处理第二数据 包。
可选的, 上述装置具体可以是应用于服务器或者用户终端上, 具体可以是 服务器的服务端可以实现上述装置, 或者用户终端的用户端可以实现上述装 置; 还可以服务器或者用户终端的内核实现上述装置; 还可以服务器或者用户 终端的用户态集中式网络并行协议栈实现上述装置;还可以服务器或者用户终 端的 lib库协议栈实现上述装置。 其中。 用户终端可以是平板电脑、 手机、 电 子阅读器、 遥控器、 PC、 笔记本电脑、 车载设备、 网络电视、 可穿戴设备等 具有网络功能的智能设备。
上述技术方案中, 通过第二目标协议栈生成第一数据包, 所述第一数据包 的得到所述包头包括 SPS域和 DPS域;向所述接收设备发送所述第一数据包; 以使所述接收设备根据所述第一标识将所述第一数据包分配至第一目标协议 栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为 所述接收设备启动的多个协议栈中的协议栈。这样就可以实现根据第一数据包 携带的第一标识从多个协议栈中选择第一目标协议栈处理第一数据包,相比现 有技术中, 多个内核同时访问同一个协议栈, 本发明实施例可以提高协议栈的 性能, 从而提高设备的性能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM )或随机存取存储器(Random Access Memory, 筒称 RAM )等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之 权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (1)

  1. 权 利 要 求
    1、 一种数据包处理方法, 其特征在于, 包括:
    获取第一数据包, 并解析所述第一数据包的包头,得到所述包头中目的协 议栈 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设备的协议 栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备与发送设备 未建立协议栈对应关系, 所述接收设备为所述包头中目的地址标识的设备, 所 述发送设备为所述包头中源地址标识的设备;
    根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目 标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多个协议 栈中的协议栈。
    2、 如权利要求 1所述的方法, 其特征在于, 所述第一标识为所述接收端 的协议栈的标识;
    所述根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第 一目标协议栈处理所述第一数据包, 包括:
    从启动的多个协议栈中选择标识为所述第一标识的第一目标协议栈; 将所述第一数据包分配至所述第一目标协议栈 ,所述第一目标协议栈处理 所述第一数据包。
    3、 如权利要求 1所述的方法, 其特征在于, 所述第一标识为所述特定标 识;
    所述根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第 一目标协议栈处理所述第一数据包, 包括:
    根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并将 所述第一数据包广播给启动的多个协议栈,当第一目标协议栈识别该第一目标 协议栈包括所述第一数据包的服务类型的服务时,所述第一目标协议栈处理所 述第一数据包; 或者
    根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并从 预先获取的服务与协议栈的对应关系中查找第一目标协议栈,再将所述第一数 据包分配至所述第一目标协议栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述对应关系包括每个协议栈的服务信息, 所述第一目标协议栈为包括 所述第一数据包的服务类型的服务的协议栈。
    4、 如权利要求 1-3 中任一项所述的方法, 其特征在于, 所述包头还包括 源协议栈 SPS域,所述 SPS域为用于携带所述发送设备的协议栈的标识的域, 所述 SPS域包括所述发送设备中处理所述第一数据包的第二目标协议栈的第 二标识;
    所述第一目标协议栈处理所述第一数据包之后, 所述方法还包括: 向所述发送设备返回第二数据包,所述第二数据为所述第一数据包的响应 数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据 包的包头包括的 SPS域包括所述第一目标协议栈的标识, 所述第二数据包的 包头包括的 DPS域包括所述第二标识。
    5、 如权利要求 1-3 中任一项所述的方法, 其特征在于, 所述获取第一数 据包, 并解析所述第一数据包的包头, 得到所述包头中 DPS域包括的第一标 识之前, 所述方法还包括:
    启动多个协议栈, 并为每个协议栈分配标识;
    当应用程序需要使用网络时,从所述多个协议栈中选择所述第一目标协议 栈为所述应用程序提供服务, 其中, 所述第一目标协议栈为所述应用程序提供 的服务为所述第一数据包的服务类型的服务。
    6、 一种数据包处理方法, 其特征在于, 包括:
    通过第二目标协议栈生成第一数据包,所述第一数据包的得到所述包头包 括 SPS域和 DPS域; 其中, 所述 DPS域为用于携带接收设备的协议栈的标识 或者特定标识的域,所述特定标识用于表示所述接收设备与发送设备未建立协 议栈对应关系, 所述接收设备为所述包头中目的地址标识的设备, 所述发送设 备为所述包头中源地址标识的设备; 所述 SPS域为用于携带所述发送设备的 协议栈的标识的域; 所述 DPS域包括第一标识, 所述 SPS域包括所述第二目 标协议栈的第二标识;
    向所述接收设备发送所述第一数据包;以使所述接收设备根据所述第一标 识将所述第一数据包分配至第一目标协议栈,所述第一目标协议栈处理所述第 一数据包; 其中, 所述第一目标协议栈为所述接收设备启动的多个协议栈中的 协议栈。
    7、 如权利要求 6所述的方法, 其特征在于, 所述向所述接收设备发送所 述第一数据包之后, 所述方法还包括:
    接收所述接收设备返回的第二数据包,所述第二数据为所述第一数据包的 响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二 数据包的包头包括的 SPS 域包括所述第一目标协议栈的标识, 所述第二数据 包的包头包括的 DPS域包括所述第二标识;
    将所述第二数据包分配至所述第二目标协议栈,所述第二目标协议栈处理 所述第二数据包。
    8、 一种数据包处理装置, 其特征在于, 包括: 获取单元和分配单元, 其 中:
    所述获取单元, 用于获取第一数据包, 并解析所述第一数据包的包头, 得 到所述包头中 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设 备的协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备与 发送设备未建立协议栈对应关系,所述接收设备为所述包头中目的地址标识的 设备, 所述发送设备为所述包头中源地址标识的设备;
    所述分配单元,用于根据所述第一标识将所述第一数据包分配至第一目标 协议栈, 通过所述第一目标协议栈处理所述第一数据包; 其中, 所述第一目标 协议栈为启动的多个协议栈中的协议栈。
    9、 如权利要求 8所述的装置, 其特征在于, 所述分配单元用于当所述第 一标识所述第一标识为所述接收端的协议栈的标识时,从启动的多个协议栈中 选择标识为所述第一标识的第一目标协议栈;以及将所述第一数据包分配至所 述第一目标协议栈, 通过所述第一目标协议栈处理所述第一数据包。
    10、 如权利要求 8所述的装置, 其特征在于, 所述分配单元用于当所述第 一标识为所述特定标识时,根据所述第一标识识别到未与所述发送设备未建立 协议栈对应关系, 并将所述第一数据包广播给启动的多个协议栈, 当第一目标 协议栈识别该第一目标协议栈包括所述第一数据包的服务类型的服务时,通过 所述第一目标协议栈处理所述第一数据包; 或者
    所述分配单元用于当所述第一标识为所述特定标识时,根据所述第一标识 识别到未与所述发送设备未建立协议栈对应关系 ,并从预先获取的服务与协议 栈的对应关系中查找第一目标协议栈,再将所述第一数据包分配至所述第一目 标协议栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述对应关系包 括每个协议栈的服务信息,所述第一目标协议栈为包括所述第一数据包的服务 类型的服务的协议栈。
    11、 如权利要求 8-10 中任一项所述的装置, 其特征在于, 所述包头还包 括 SPS域, 所述 SPS域为用于携带所述发送设备的协议栈的标识的域, 所述 SPS 域包括所述发送设备中处理所述第一数据包的第二目标协议栈的第二标 识;
    所述装置还包括:
    发送单元, 用于向所述发送设备返回第二数据包, 所述第二数据为所述第 一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据包的包头包括的 SPS 域包括所述第一目标协议栈的标识, 所述 第二数据包的包头包括的 DPS域包括所述第二标识。
    12、 如权利要求 8-10中任一项所述的装置, 其特征在于, 所述装置还包 括:
    启动单元, 用于启动多个协议栈, 并为每个协议栈分配标识;
    选择单元, 用于当应用程序需要使用网络时,从所述多个协议栈中选择所 述第一目标协议栈为所述应用程序提供服务, 其中, 所述第一目标协议栈为所 述应用程序提供的服务为所述第一数据包的服务类型的服务。
    13、 一种数据包处理装置, 其特征在于, 包括: 生成单元和发送单元, 其 中:
    所述生成单元, 用于通过第二目标协议栈生成第一数据包, 所述第一数据 包的得到所述包头包括 SPS域和 DPS域; 其中, 所述 DPS域为用于携带接收 设备的协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备 与发送设备未建立协议栈对应关系,所述接收设备为所述包头中目的地址标识 的设备, 所述发送设备为所述包头中源地址标识的设备; 所述 SPS域为用于 携带所述发送设备的协议栈的标识的域;所述 DPS域包括第一标识,所述 SPS 域包括所述第二目标协议栈的第二标识;
    所述发送单元, 用于向所述接收设备发送所述第一数据包; 以使所述接收 设备根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目 标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为所述接收设备启 动的多个协议栈中的协议栈。
    14、 如权利要求 13所述的装置, 其特征在于, 所述装置还包括: 接收单元, 用于接收所述接收设备返回的第二数据包, 所述第二数据为所 述第一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据包的包头包括的 SPS域包括所述第一目标协议栈的标识, 所述第二数据包的包头包括的 DPS域包括所述第二标识;
    分配单元, 用于将所述第二数据包分配至所述第二目标协议栈, 所述第二 目标协议栈处理所述第二数据包。
    15、 一种数据包处理装置, 其特征在于, 包括: 接收器和存储器, 以及分 别与所述接收器和存储器连接的处理器, 其中, 所述存储器用于存储一组程序 代码, 所述处理器用于调用所述存储器存储的代码执行如下操作:
    通过所述接收器获取第一数据包, 并解析所述第一数据包的包头,得到所 述包头中 DPS域包括的第一标识; 其中, 所述 DPS域为用于携带接收设备的 协议栈的标识或者特定标识的域,所述特定标识用于表示所述接收设备与发送 设备未建立协议栈对应关系, 所述接收设备为所述包头中目的地址标识的设 备, 所述发送设备为所述包头中源地址标识的设备;
    根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目 标协议栈处理所述第一数据包; 其中, 所述第一目标协议栈为启动的多个协议 栈中的协议栈。
    16、 如权利要求 15所述的装置, 其特征在于, 所述第一标识为所述接收 端的协议栈的标识;
    所述处理器执行的根据所述第一标识将所述第一数据包分配至第一目标 协议栈, 所述第一目标协议栈处理所述第一数据包的操作, 包括:
    从启动的多个协议栈中选择标识为所述第一标识的第一目标协议栈; 将所述第一数据包分配至所述第一目标协议栈 ,所述第一目标协议栈处理 所述第一数据包。
    17、 如权利要求 15所述的装置, 其特征在于, 所述第一标识为所述特定 标识;
    所述处理器执行的根据所述第一标识将所述第一数据包分配至第一目标 协议栈, 所述第一目标协议栈处理所述第一数据包的操作, 包括:
    根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并将 所述第一数据包广播给启动的多个协议栈,当第一目标协议栈识别该第一目标 协议栈包括所述第一数据包的服务类型的服务时,所述第一目标协议栈处理所 述第一数据包; 或者
    根据所述第一标识识别到未与所述发送设备未建立协议栈对应关系,并从 预先获取的服务与协议栈的对应关系中查找第一目标协议栈,再将所述第一数 据包分配至所述第一目标协议栈, 所述第一目标协议栈处理所述第一数据包; 其中, 所述对应关系包括每个协议栈的服务信息, 所述第一目标协议栈为包括 所述第一数据包的服务类型的服务的协议栈。 18、 如权利要求 15-17中任一项所述的装置, 其特征在于, 所述包头还包 括 SPS域, 所述 SPS域为用于携带所述发送设备的协议栈的标识的域, 所述 SPS 域包括所述发送设备中处理所述第一数据包的第二目标协议栈的第二标 识;
    所述装置还包括发射器,所述处理器在执行第一目标协议栈处理所述第一 数据包的操作之后, 所述处理器还用于执行如下操作:
    通过所述发射器向所述发送设备返回第二数据包,所述第二数据为所述第 一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据包的包头包括的 SPS 域包括所述第一目标协议栈的标识, 所述 第二数据包的包头包括的 DPS域包括所述第二标识。
    19、 如权利要求 15-17中任一项所述的装置, 其特征在于, 所述获取第一 数据包, 并解析所述第一数据包的包头, 得到所述包头中 DPS域包括的第一 标识之前, 所述方法还包括:
    启动多个协议栈, 并为每个协议栈分配标识;
    当应用程序需要使用网络时,从所述多个协议栈中选择所述第一目标协议 栈为所述应用程序提供服务, 其中, 所述第一目标协议栈为所述应用程序提供 的服务为所述第一数据包的服务类型的服务。
    20、 一种数据包处理装置, 其特征在于, 包括: 发射器和存储器, 以及分 别与所述发射器和存储器连接的处理器, 其中, 所述存储器用于存储一组程序 代码, 所述处理器用于调用所述存储器存储的代码执行如下操作:
    通过第二目标协议栈生成第一数据包,所述第一数据包的得到所述包头包 括 SPS域和 DPS域; 其中, 所述 DPS域为用于携带接收设备的协议栈的标识 或者特定标识的域,所述特定标识用于表示所述接收设备与发送设备未建立协 议栈对应关系, 所述接收设备为所述包头中目的地址标识的设备,所述发送设 备为所述包头中源地址标识的设备; 所述 SPS域为用于携带所述发送设备的 协议栈的标识的域; 所述 DPS域包括第一标识, 所述 SPS域包括所述第二目 标协议栈的第二标识; 通过所述发射器向所述接收设备发送所述第一数据包;以使所述接收设备 根据所述第一标识将所述第一数据包分配至第一目标协议栈,所述第一目标协 议栈处理所述第一数据包; 其中, 所述第一目标协议栈为所述接收设备启动的 多个协议栈中的协议栈。
    21、 如权利要求 20所述的装置, 其特征在于, 所述装置还包括接收器, 其中:所述处理器在执行通过所述发射器向所述接收设备发送所述第一数据包 的操作之后, 还用于执行如下操作:
    通过所述接收器接收所述接收设备返回的第二数据包,所述第二数据为所 述第一数据包的响应数据包, 所述第二数据包的包头包括 SPS域和 DPS域, 其中, 所述第二数据包的包头包括的 SPS域包括所述第一目标协议栈的标识, 所述第二数据包的包头包括的 DPS域包括所述第二标识;
    将所述第二数据包分配至所述第二目标协议栈,所述第二目标协议栈处理 所述第二数据包。
CN201380002979.XA 2013-12-25 2013-12-25 一种数据包处理方法和装置 Active CN104969533B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/090413 WO2015096058A1 (zh) 2013-12-25 2013-12-25 一种数据包处理方法和装置

Publications (2)

Publication Number Publication Date
CN104969533A true CN104969533A (zh) 2015-10-07
CN104969533B CN104969533B (zh) 2018-11-06

Family

ID=53477333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380002979.XA Active CN104969533B (zh) 2013-12-25 2013-12-25 一种数据包处理方法和装置

Country Status (2)

Country Link
CN (1) CN104969533B (zh)
WO (1) WO2015096058A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111490963A (zh) * 2019-01-25 2020-08-04 上海哔哩哔哩科技有限公司 基于quic协议栈的数据处理方法、***、设备及存储介质
CN112637329A (zh) * 2020-12-21 2021-04-09 网络通信与安全紫金山实验室 一种多应用程序的标识方法、装置、设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107920073A (zh) * 2017-11-17 2018-04-17 广西小草信息产业有限责任公司 一种协议栈运行装置和方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592303A (zh) * 2003-08-28 2005-03-09 国际商业机器公司 用于应用实例级工作负荷分配亲合性的方法和***
CN1852296A (zh) * 2005-09-30 2006-10-25 华为技术有限公司 一种多协议支持***及方法
US20090083756A1 (en) * 2007-09-20 2009-03-26 Electronics And Telecommunications Research Institute Apparatus and method for communication interface between application programs on virtual machines using shared memory
CN101442547A (zh) * 2008-12-12 2009-05-27 华为技术有限公司 一种报文处理方法、***及设备
US20090323691A1 (en) * 2008-06-30 2009-12-31 Sun Microsystems, Inc. Method and apparatus to provide virtual toe interface with fail-over
CN102238187A (zh) * 2011-07-26 2011-11-09 东念(杭州)科技有限公司 基于tcp/ip协议的通信协议的***及其实现方法
US20120166580A1 (en) * 2010-12-28 2012-06-28 Samsung Electronics Co., Ltd. Method and apparatus for communication using heterogeneous protocols
CN102970244A (zh) * 2012-11-23 2013-03-13 上海寰创通信科技股份有限公司 一种多cpu核间负载均衡的网络报文处理方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592303A (zh) * 2003-08-28 2005-03-09 国际商业机器公司 用于应用实例级工作负荷分配亲合性的方法和***
CN1852296A (zh) * 2005-09-30 2006-10-25 华为技术有限公司 一种多协议支持***及方法
US20090083756A1 (en) * 2007-09-20 2009-03-26 Electronics And Telecommunications Research Institute Apparatus and method for communication interface between application programs on virtual machines using shared memory
US20090323691A1 (en) * 2008-06-30 2009-12-31 Sun Microsystems, Inc. Method and apparatus to provide virtual toe interface with fail-over
CN101442547A (zh) * 2008-12-12 2009-05-27 华为技术有限公司 一种报文处理方法、***及设备
US20120166580A1 (en) * 2010-12-28 2012-06-28 Samsung Electronics Co., Ltd. Method and apparatus for communication using heterogeneous protocols
CN102238187A (zh) * 2011-07-26 2011-11-09 东念(杭州)科技有限公司 基于tcp/ip协议的通信协议的***及其实现方法
CN102970244A (zh) * 2012-11-23 2013-03-13 上海寰创通信科技股份有限公司 一种多cpu核间负载均衡的网络报文处理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111490963A (zh) * 2019-01-25 2020-08-04 上海哔哩哔哩科技有限公司 基于quic协议栈的数据处理方法、***、设备及存储介质
CN111490963B (zh) * 2019-01-25 2022-07-29 上海哔哩哔哩科技有限公司 基于quic协议栈的数据处理方法、***、设备及存储介质
US11954530B2 (en) 2019-01-25 2024-04-09 Shanghai Bilibili Technology Co., Ltd. Method and system of processing data based on QUIC protocol stack, device and storage medium
CN112637329A (zh) * 2020-12-21 2021-04-09 网络通信与安全紫金山实验室 一种多应用程序的标识方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN104969533B (zh) 2018-11-06
WO2015096058A1 (zh) 2015-07-02

Similar Documents

Publication Publication Date Title
EP3352431B1 (en) Network load balance processing system, method, and apparatus
US20150213134A1 (en) Data query method and system and storage medium
CN103139157B (zh) 一种基于socket的网络通信方法、装置及***
US8386614B2 (en) Network connection manager
WO2014082562A1 (en) Method, device, and system for information processing based on distributed buses
US9843514B2 (en) Packet processing method and background server
CN101924707A (zh) 地址解析协议报文的处理方法和设备
WO2024037296A1 (zh) 基于协议族的quic数据传输方法及装置
CN109729187B (zh) 一种代理通信方法、***、装置及存储介质
US8539089B2 (en) System and method for vertical perimeter protection
WO2009097776A1 (zh) 一种实现业务升级的***、装置及方法
CN103023857A (zh) 一种信息资源远程部署的方法及***
CN112631788A (zh) 数据传输方法及数据传输服务器
CN112261094A (zh) 一种报文处理方法及代理服务器
CN109688606B (zh) 数据处理方法、装置、计算机设备及存储介质
WO2023030178A1 (zh) 一种基于用户态协议栈的通信方法及相应装置
CN104969533A (zh) 一种数据包处理方法和装置
CN113014510A (zh) 惯导***分布式测试中数据缓存方法及装置
WO2020113817A1 (zh) 一种基于用户态协议栈的网络隔离方法和装置
US20120246274A1 (en) Method and computer program product utilizing multiple udp data packets to transfer a quantity of data otherwise in excess of a single udp packet
US7363383B2 (en) Running a communication protocol state machine through a packet classifier
CN113271336B (zh) 基于dpdk的机器人中间件dds数据传输方法、电子设备及计算机可读存储介质
CN102123079A (zh) 一种事务报文处理方法和装置
CN101312412A (zh) 一种基于嵌入式的以太网传输***
CN101715006A (zh) 一种客户端释放动态主机配置资源的方法及其客户端***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant