CN110365591B - 数据包处理方法、装置及设备 - Google Patents
数据包处理方法、装置及设备 Download PDFInfo
- Publication number
- CN110365591B CN110365591B CN201810313392.5A CN201810313392A CN110365591B CN 110365591 B CN110365591 B CN 110365591B CN 201810313392 A CN201810313392 A CN 201810313392A CN 110365591 B CN110365591 B CN 110365591B
- Authority
- CN
- China
- Prior art keywords
- plane device
- buffer
- data packet
- data
- forwarding
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/74—Admission control; Resource allocation measures in reaction to resource unavailability
- H04L47/745—Reaction in network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种数据包处理方法、装置及设备,其中,所述方法包括:若接收到第一数据包,则确定所述第一缓存区中用于存储所述第一数据包的第一缓存队列;若所述第一缓存队列的状态为无效状态,则将所述第一数据包缓存于所述第二缓存区,所述第一数据包的数据量小于所述第二缓存区的容量,所述第一缓存队列的状态是在所述第一缓存区的当前数据量达到所述第一缓存区的容量时设置为无效状态的;若所述第二缓存区的数据量达到所述第二缓存区的容量,则将所述第二缓存区的所有数据包发送至控制面设备,可以降低转发面设备与控制面设备之间的链路开销。
Description
技术领域
本发明涉及通信技术,尤其涉及一种数据包处理方法、装置及设备。
背景技术
软件定义网络(Software Defined Networking,SDN)是一种新型的网络体系架构,通过将转发面设备与控制面设备分离,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。在SDN网络构架中,转发面设备与控制面设备通过标准南向接口交互,其中,OpenFlow是目前应用最广泛的南向接口协议。基于OpenFlow协议的SDN网络构架中,控制面设备用于向转发设备发送流表,转发面设备用于根据流表执行数据包的处理操作(如转发、丢弃或修改),其中,一个流表包括至少一条流表项,每条流表项至少包括匹配字段和处理动作。实际应用中,若转发面设备接收到数据包,将该数据包中的字段(如头部的字段)与转发面设备中的流表进行匹配,若转发面设备的流表中存在与该数据包的字段匹配的匹配字段,则转发面设备根据该匹配字段对应的处理动作对该数据包执行处理操作;若转发面设备的流表中不存在与该数据包的字段匹配的匹配字段,则转发面设备需要将接收到的数据包缓存到缓存区中。但是,在转发面设备的缓存区的数据量到达该缓存区的容量后,转发面设备需要将后续接收到的与流表不匹配的数据包一个一个地发送至控制面设备,增加了转发面设备与控制面设备之间的链路开销。
发明内容
本发明提供一种数据包处理方法、装置及设备,通过在转发面设备增加第二缓存区,在转发面设备的第一缓存区的数据量达到该第一缓存区的容量时,将数据包缓存于转发面设备的第二缓存区,以降低转发面设备与控制面设备之间的链路开销。
第一方面,本发明实施例提供了一种数据包处理方法,该方法应用于转发面设备,该转发面设备包括第一缓存区和第二缓存区,该第一缓存区包括至少一个缓存队列,该方法包括:若接收到第一数据包,则确定该第一缓存区中用于存储所述第一数据包的第一缓存队列;若该第一缓存队列的状态为无效状态,则将该第一数据包缓存于所述第二缓存区,该第一数据包的数据量小于所述第二缓存区的容量,该第一缓存队列的状态是在该第一缓存区的当前数据量达到所述第一缓存区的容量时设置为无效状态的,若该第二缓存区的数据量达到该第二缓存区的容量,则将该第二缓存区的所有数据包发送至控制面设备。
在该技术方案中,通过在转发面设备增加第二缓存区,在转发面设备的第一缓存区的数据量达到第一缓存区的容量时,不需要一个一个地将与流表不匹配的数据包发送至控制面设备,而是将与流表不匹配的数据包缓存在第二缓存区中,在第二缓存区的数据量达到容量时,将第二缓存区的所有数据包批量发送至控制面设备,减少了向控制面设备发送数据包的次数,可以减少转发面设备与控制面设备之间的链路的开销。
作为一种可选的实施方式,转发面设备接收该控制面设备发送的转发流表,该转发流表是该控制面设备响应该转发面设备发送的该第二缓存区的所有数据包所生成的,接收第二数据包,若该第二数据包的数据标识与该第一缓存队列中的任一数据包的数据标识匹配,则响应该转发流表将该第二数据包缓存于该第二缓存区。
在该技术方案中,转发面设备可以接收控制面设备发送的转发流表,根据转发流表将第二数据包缓存于第二缓存区,该第二数据包的数据标识与该第一缓存队列中的任一数据包的数据标识匹配,即第二数据包为该第一缓存队列对应数据流的数据包,表明第一缓存队列的状态为无效状态后,该第一缓存队列对应数据流中后续到达转发面设备的数据包先缓存于第二缓存区,然后才将缓存于第二缓存区的数据包发送至控制面设备,由于控制面设备处理数据包的原理为先进先出,第一缓存队列的状态为无效状态后,转发面设备也是采用的先进先出的方式将第二缓存区的数据包发送至控制面设备,因此,通过转发流表,可以确保同一条数据流中的各个数据包的转发顺序。
作为一种可选的实施方式,转发面设备可以接收第三数据包,确定所述第一缓存区中不存在用于存储所述第三数据包的缓存队列,且所述第一缓存区的数据量达到所述第一缓存区的容量;将所述第三数据包发送给所述控制面设备,接收该控制面设备发送的处理流表,该处理流表是该控制面设备响应所述第三数据包所生成的;若该第一缓存队列的当前数据量为零,则删除所述第一缓存队列;响应该处理流表在所述第一缓存区中建立用于存储所述第三数据包的第二缓存队列,将该第三数据包缓存于所述第二缓存队列。
该技术方案中,转发面设备可以接收第三数据包,确定该第一缓存区中不存在用于存储该第三数据包的缓存队列,且该第一缓存区的数据量达到该第一缓存区的容量,表明该第三数据包为某条数据流的首个数据包,转发面设备还没有为该第三数据包对应数据流建立缓存队列,且第一缓存区当前不能缓存数据包,可以将第三数据包发送至控制面设备。转发面设备接收该控制面设备发送的处理流表,在第一缓存队列删除后,为第三数据包建立第二缓存队列,将响应处理离别第三数据包缓存于第二缓存队列中。
作为一种可选的实施方式,转发面设备执行响应所述处理流表在所述第一缓存区中建立用于存储所述第三数据包的第二缓存队列步骤之前,还可以删除所述转发流表。
该技术方案中,第一缓存队列对应的数据流中的数据包比第三数据包先达到转发面设备,为了按序地将第一缓存队列对应的数据流中的数据包和第三数据包转发,可以设置转发流表和处理流表的执行优先级,转发面设备的执行优先级高于处理流表的执行优先级,即在根据转发流表将第二数据包发送至控制面设备,且确定控制面设备的第三缓存区的数据量为零时,达到转发面设备的且属于第一缓存队列对应的数据流中的数据包已经被转发,转发流表已经被执行,将删除转发流表。在转发流表删除后,转发面设备可以执行响应该处理流表在该第一缓存区中建立用于存储该第三数据包的第二缓存队列的步骤,以便等待控制面设备发送第二缓存队列对应的匹配流表,以使转发面设备根据第二缓存队列对应的匹配流表将第二缓存队列的数据包转发,可以使得先达到转发面设备的数据包先转发,以确保不同数据流的转发顺序。
作为一种可选的实施方式,若该第一缓存队列的当前数据量为零,则向该控制面设备发送第一通知消息,该第一通知消息用于通知该控制面设备该第一缓存队列的当前数据量为零,接收该控制面设备发送的第二通知消息,该第二通知消息是该控制面设备转发该控制面设备缓存的数据标识与该第一数据包的数据标识匹配的所有数据包之后生成的,响应该第二通知消息删除该转发流表。
该技术方案中,若该第一缓存队列的当前数据量为零,确定转发面设备中存在与第一缓存队列中的数据包匹配的匹配流表,且第一缓存队列的数据包根据匹配流表转发,向控制面设备发送第一通知消息,以通知该控制面设备该第一缓存队列的当前数据量为零,并接收控制面设备发送的第二通知消息,并响应该通消息删除该转发流表,以便可以根据匹配流表处理第一缓存队列对应数据流后续到达的数据包,提高数据包处理的效率。
第二方面,本发明实施例提供了另一种数据包处理方法,应用于控制面设备,该方法包括:接收转发面设备发送的该转发面设备的第二缓存区的所有数据包,将接收到的该第二缓存区的数据包缓存于第三缓存区,该第三缓存区对应于该第二缓存区。
该技术方案中,控制面设备也具有缓存功能,在接收到该转发面设备的第二缓存区的所有数据包,可以将该第二缓存区的所有数据包缓存,转发面设备通过批量的方式向控制面设备发送第二缓存区的数据包,减少了控制面设备接收数据包的次数,减轻控制面设备处理数据包的负担。
作为一种可选的实施方式,响应接收到的该第二缓存区的数据包生成转发流表,将该转发流表发送至所述转发面设备。
该技术方案中,在接收到第二缓存区的数据包后,可以生成转发流表,将转发流表发送至转发面设备,以便转发面设备可以根据转发流表将数据包缓存,以确保转发缓存的数据包顺序。
作为一种可选的实施方式,接收该转发面设备发送的第三数据包,该第三数据包是该转发面设备的第一缓存区中不存在用于存储所述第三数据包的缓存队列,且所述第一缓存区的数据量达到所述第一缓存区的容量时所转发;响应所述第三数据包生成处理流表;将所述处理流表发送至所述转发面设备。
该技术方案中,控制面设备可以根据第三数据包生成处理流表,并将处理流表发送至转发面设备,以便转发面设备可以将与处理流表匹配的数据包缓存。
作为一种可选的实施方式,接收所述转发面设备发送的第一通知消息,根据所述第一通知消息确定所述转发面设备的第一缓存队列的当前数据量为零;转发所述第三缓存区的所有数据包至所述转发面设备,发送第二通知消息,所述第二通知消息用于通知所述转发面设备所述第三缓存区的当前数据量为零。
该技术方案中,第一缓存队列中的数据包比控制面的第三缓存区的数据包先到达转发面设备,控制面设备在确定第一缓存队列中的数据包被转发后,可以将第三缓存区的数据包转发至控制面设备,以便转发面设备可以转发该第三缓存区的所有数据包,可以确保数据包转发的顺序。
第三方面,本发明实施例提供了一种数据包处理装置,该数据包处理装置具有实现上述第一方面的实现方式中行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,该模块可以是软件和/或硬件。基于同一发明构思,由于该数据包处理装置解决问题的原理以及有益效果可以参见上述第一方面的方法实施方式以及所带来的有益效果,因此该数据包处理装置的实施可以参见上述第一方面的方法实施方式,重复之处不再赘述。
第四方面,本发明实施例提供了另一种数据包处理装置,该数据包处理装置具有实现上述第二方面的实现方式中行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,该模块可以是软件和/或硬件。基于同一发明构思,由于该数据包处理装置解决问题的原理以及有益效果可以参见上述第二方面的方法实施方式以及所带来的有益效果,因此该数据包处理装置的实施可以参见上述第二方面的方法实施方式,重复之处不再赘述。
第五方面,本发明实施例提供了一种转发面设备,该转发面设备包括:存储器,用于存储一个或多个程序;处理器,用于调用存储在该存储器中的程序以实现上述第一方面的方法设计中的方案,该转发面设备解决问题的实施方式以及有益效果可以参见上述第一方面的方法的实施方式以及有益效果,重复之处不再赘述。
第六方面,本发明实施例提供了一种控制面设备,该控制面设备包括:存储器,用于存储一个或多个程序;处理器,用于调用存储在该存储器中的程序以实现上述第一方面的方法设计中的方案,该控制面设备解决问题的实施方式以及有益效果可以参见上述第二方面的方法的实施方式以及有益效果,重复之处不再赘述。
第七方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被至少一个处理器执行时,可以实现上述第一方面的实施方式以及有益效果,重复之处不再赘述。
第八方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被至少一个处理器执行时,可以实现上述第二方面的实施方式以及有益效果,重复之处不再赘述。
第九方面,本发明实施例提供了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机实现上述第一方面的方法的步骤,该计算机程序产品解决问题的实施方式以及有益效果可以参见上述第一方面的方法的实施方式以及有益效果,重复之处不再赘述。
第十方面,本发明实施例提供了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机实现上述第二方面的方法的步骤,该计算机程序产品解决问题的实施方式以及有益效果可以参见上述第二方面的方法的实施方式以及有益效果,重复之处不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例中所需要使用的附图进行说明。
图1是本发明实施例提供的一种数据包处理系统的架构示意图;
图2是本发明实施例提供的一种数据包处理方法的流程示意图;
图3是本发明实施例提供的一种数据包处理装置的结构示意图;
图4是本发明实施例提供的另一种数据包处理装置的结构示意图;
图5是本发明实施例提供的一种转发面设备的结构示意图;
图6是本发明实施例提供的一种控制面设备的结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。
为了更好理解本发明实施例提供的一种数据包处理方法、装置及设备,下面先描述本发明实施例的系统架构。
请参见图1,图1是本发明实施例提供的一种数据包处理系统的架构示意图,在图1中所示的数据包处理系统的架构可包括控制面设备和至少一个转发面设备,控制面设备构成控制面,至少一个转发面设备构成转发面,控制面设备用于向转发面设备发送流表,转发面设备用于根据流表对接收到的数据包进行操作处理。图1中,以数据包处理系统包括三个转发面设备为例,转发面设备S1、转发面设备S2、转发面设备S3以及控制面设备K之间可以两两建立网络连接,以进行数据通信。
本发明实施例中的转发面设备可以是指交换机、路由器或其他网络设备,控制面设备可以是指控制器,例如服务器。
上述各个转发面设备和控制面设备都具备缓存数据包的功能,其中,每个转发面设备包括第一缓存区和第二缓存区,第一缓存区包括至少一个缓存队列。转发面设备(以转发面设备S1为例)和控制面设备K缓存数据包的方式如下:转发面设备S1接收到与流表不匹配的第一数据包,在第一缓存区查找用于存储第一数据包的缓存队列,若查找到用于存储第一数据包的第一缓存队列,且第一缓存队列的状态为无效时,表明第一缓存区的数据量达到第一缓存区的容量,第一缓存队列中当前不能缓存数据包,转发面设备S1将第一数据包缓存于第二缓存区。在第二缓存区存入多个数据包后,若第二缓存区的数据量到达第二缓存区的容量,则将第二缓存区的所有数据包发送至控制面设备K,控制面设备K将接收到的第二缓存区的数据包缓存。通过在控制面设备S1中增加第二缓存区,在第一缓存区的数据量达到容量时,不需要转发面设备S1将后续接收到的数据包一个一个的发送至控制面设备K,转发面设备S1将数据包缓存于第二缓存区,在第二缓存区的数量达到第二缓存区时,转发面设备S1批量地将第二缓存区的数据包发送至控制面设备K,减少了向控制面设备K发送数据包的次数,可以减少转发面设备与控制面设备之间的链路的开销。
需要说明的是,一条数据流至少包括多个数据包,且同一条流中的各个数据包之间的数据标识相互匹配,数据标识可以是指数据包中的字段或数据包的编号,字段可以是指源地址字段、目的地址字段或接收端口字段中的至少一个字段。源地址字段包括发送数据包的发送设备对应的标识,如发送设备的IP地址,目的地址字段包括接收数据包的接收设备对应的标识,如,接收设备的IP地址,接收端口字段包括转发面设备接收数据包的端口号,数据包的编号可以是为了确定该数据包对应的数据流设置的。
上述第一缓存队列的状态可以是根据第一缓存区的数据量设置的,如,在建立第一缓存队列时,可以将第一缓存队列的状态设置为有效状态,有效状态表明该第一缓存队列中还可以缓存数据包,在第一缓存区的数据量达到第一缓存区的容量时,且接收到数据标识与第一缓存队列中的任一数据包的数据标识匹配的数据包时,将第一缓存队列的状态设置为无效状态,无效状态表明第一缓存队列中当前不能缓存数据包,且当第一缓存队列的状态被设置为无效状态后,直到该第一缓存队列被删除之前,该第一缓存队列的状态会一直保持为无效状态。
举例来说,假设第一缓存区的总容量为100M,第一缓存区包括a(即第一缓存队列)、b及c三个缓存队列,当前a、b及c三个缓存队列的数据量分别为20M,30M,30M,第一缓存区当前的数据量为80M,第一缓存区当前的数据量还未达到第一缓存区的容量,若接收到数据包F1(数据量为10M),在该第一缓存区未查找到用于存储数据包F1的缓存队列,在第一缓存区建立用于存储数据包F1的缓存队列d,将缓存队列d的状态设置为有效状态,并将数据包F1缓存于缓存队列d中。将数据包F1缓存后,第一缓存区的数据量为90M,这时若接收到数据包F2(数据量为10M),并查找到用于存储数据包F2的缓存队列为缓存队列a,将数据包F2缓存于第一缓存队列的中,将数据包F2缓存后,第一缓存区的数据量为100M,即第一缓存区当前的数据量达到第一缓存区的容量,将缓存队列a的状态设置为无效状态。且当缓存队列a的状态被设置为无效状态后,直到该缓存队列a被删除之前,该缓存队列a的状态会一直保持为无效状态。
基于上述对一种数据包处理系统的架构的描述,本发明实施例提供一种数据包处理方法,请参见图2,该方法应用于图1所示的数据包处理系统,该系统至少包括控制面设备和转发面设备,该转发面设备包括第一缓存区和第二缓存区,该第一缓存区包括至少一个缓存队列,该方法包括:
S101、转发面设备接收第一数据包。
转发面设备接收第一数据包,该第一数据包可以是指终端发送的支付请求数据、网页请求数据、上传或下载的数据等等。
S102、转发面设备确定该第一缓存区中用于存储该第一数据包的第一缓存队列。
转发面设备可以通过第一数据包中的数据标识与第一缓存区的数据包的数据标识,确定用于存储该第一数据包的第一缓存队列,具体的,若第一数据包的数据标识与第一缓存队列的中任一数据包的数据标识匹配,则将第一缓存队列作为用于存储该第一数据包的缓存队列,并执行步骤S103;若第一数据包的数据标识与第一缓存区的数据包的数据标识都不匹配,确定在第一缓存区不存在用于存储该第一数据包的缓存队列,表明第一数据包为某条数据流的首个数据包,转发面设备还没有为第一数据包建立缓存队列。若在第一缓存区不存在用于存储该第一数据包的缓存队列,且第一缓存区的数据量未达到第一缓存区的容量,则在第一缓存区建立用于缓存第一数据包的缓存队列,将第一数据包缓存于新建的缓存队列中;若在第一缓存区不存在用于存储该第一数据包的缓存队列,且第一缓存区的数据量达到第一缓存区的容量,则将第一数据包发送至控制面设备。
举例来说,数据标识可以是指数据包的字段,若第一数据包的源地址字段、目的地址字段及接收端口字段与第一缓存队列中的任一数据包的源地址字段、目的地址字段及接收端口字段匹配,则将第一缓存队列作为用于存储该第一数据包的第一缓存队列。
S103、若该第一缓存队列的状态为无效状态,则转发面设备将该第一数据包缓存于该第二缓存区,该第一数据包的数据量小于该第二缓存区的容量,该第一缓存队列的状态是在该第一缓存区的当前数据量达到该第一缓存区的容量时设置为无效状态的。
在第一缓存区存在用于存储第一数据包的第一缓存队列时,由于第一缓存队列的状态用于指示该第一缓存队列是否还能够缓存数据包,因此可以查看第一缓存队列的状态,若第一缓存队列的状态为无效状态,表明第一缓存队列不能再缓存数据包,可以将第一数据包缓存在第二缓存区,若第一缓存队列的状态为有效状态,将第一数据包缓存于第一缓存队列中。
需要说明的是,如果第二缓存区的容量设置过大(如200M),则第二缓存区可以缓存更多(如10)的数据包,但是需要更长的时间(如10ms)才能使第二缓存区的数据量达到第二缓存区的容量,使得转发数据包的时延较大;如果第二缓存区的容量设置过小(如20M),则第二缓存区可以缓存更少(如1个)的数据包,即需要更短的时间(如1ms)才能使第二缓存区的数据量达到第二缓存区的容量,使得转发面设备向控制面设备发送数据包的次数增多,增加了转发面设备与控制面设备的链路的负载。转发面设备可以根据转发时延和链路负载综合设置第二缓存区的大小,转发面设备可以提供一个调节第二缓存区的容量的外部接口,用户可以通过该外部接口调节第二缓存区的容量,以满足用户不同的需求。
S104、若该第二缓存区的数据量达到该第二缓存区的容量,则转发面设备将该第二缓存区的所有数据包发送至控制面设备。
若后续接收到数据标识与第一缓存队列中的任一数据包的数据标识匹配的数据包,则重复执行步骤S103将数据包缓存于第二缓存区,由于第一数据包的数据量小于第二缓存区的容量,因此,在第二缓存区缓存多个数据包后,若第二缓存区的数据量达到该第二缓存区的容量,则转发面设备可以将第二缓存区的所有数据包发送至控制面设备,相比于,采用传统方案:每接收到一个与流表不匹配的数据包,直接将不匹配的数据包发送至控制面设备,本方案减少了向控制面设备发送数据包的次数,减少转发面设备与控制面设备之间的链路的开销。在将第二缓存区的数据包发送至控制面后,第二缓存区的存储的数据包被清空,第二缓存区的数据量为零,第二缓存区可用于缓存后续接收到的数据包。
举例来说,设第二缓存区可以缓存X个数据包,在第一缓存区(即缓存空间)的数据量达到容量时,接收到X个与流表不匹配的数据包,若采用传统方案,则需要发送X次才能将X个数据包发送至转发面设备,而本方案将X个数据缓存于第二缓存区,只需要发送一次就可以将X个数据包发送至控制面设备,可以减少向控制面设备发送数据包的次数,减少转发面设备与控制面设备之间的链路的开销。
作为一种可选的实施方式,转发面设备将该第二缓存区的所有数据包发送至控制面设备的具体方式包括:转发面设备可以向控制面设备发送第一类型的packet-in信息,该第一类型的packet-in消息至少包括第二缓存区的所有数据包和消息类型标识(如数字1),该消息类型标识用于指示第一缓存区中存在用于存储该第一类型的packet-in消息中的数据包的缓存队列。
S105、控制面设备可以将接收到的第二缓存区的数据包缓存于第三缓存区,第三缓存区与第二缓存区对应。
控制面设备可以接收转发面设备发送的第二缓存区的所有数据包,并将接收到第二缓存区的数据包缓存于第三缓存区,转发面设备以批量的方式将第二缓存区的数据包发送至控制面设备,减少了控制面设备接收数据包的次数,减轻控制面设备处理数据包的负担。
第三缓存区与第二缓存区对应是指第二缓存区所缓存的数据包和第三缓存区所缓存的数据包属于同一条数据流。
S106、控制面设备响应接收到的该第二缓存区的数据包生成转发流表。
控制面设备可以响应接收到的第二缓存区的数据包生成转发流表,该转发流表至少包括匹配字段和处理动作,匹配字段是控制面设备根据第二缓存区的数据包的数据标识所生成,处理动作为缓存于第二缓存区,即该转发流表用于指示转发面设备将接收到数据标识与第二缓存区的数据包的数据标识匹配的数据包时,将匹配的数据包缓存于第二缓存区。
举例来说,控制面设备根据第二缓存区的数据包的数据标识生成转发流表的匹配字段,第二缓存区的数据包的标识包括数据包的字段,如源IP地址字段、目标IP地址字段和接收数据包的端口(In_port)字段,即将第二缓存区的数据包的源IP地址字段、目标IP地址字段、接收数据包的端口的字段作为转发流表的匹配字段,将处理动作设置为缓存于第二缓存区。如第二缓存区的数据包对应的源IP地址字段的值为101.224.112.01、目标IP地址的值为126.136.134.221、接收数据包的端口为S1-1,控制面设备响应第二缓存区的数据包生成如表1所示转发流表,转发流表的匹配字段包括的源IP地址字段的值为101.224.112.01、目标IP地址的值为126.136.134.221、接收数据包的端口为S1-1,处理动作设置为缓存于第二缓存区。
表1
S107、控制面设备将转发流表发送至转发面设备。
S108、转发面设备接收第二数据包。
S109、若该第二数据包的数据标识与该第一缓存队列中的任一数据包的数据标识匹配,则转发面设备响应该转发流表将所述第二数据包缓存于该第二缓存区。
若该第二数据包的数据标识与该第一缓存队列中的任一数据包的数据标识匹配,同时,由于第二缓存区的数据包的数据标识与第一缓存队列中的数据包的标识匹配,表明第一缓存队列中的数据包、第二缓存区的数据包及第二数据包属于同一条数据流中的数据包,因此,转发面设备响应该转发流表将该第二数据包缓存于该第二缓存区,反映了转发面设备采用的先进先出的方式将第二缓存区的数据包发送至控制面设备,由于控制面设备处理数据包的方式也为先进先出,因此,通过控制面设备发送的转发流表,可以确保同一条数据流中的各个数据包的转发顺序。
S110、转发面设备接收第三数据包。
S111、转发面设备确定该第一缓存区中不存在用于存储所述第三数据包的缓存队列,且该第一缓存区的数据量达到该第一缓存区的容量。
若转发面设备确定该第一缓存区中不存在用于存储该第三数据包的缓存队列,且该第一缓存区的数据量达到该第一缓存区的容量,表明该第三数据包为某条数据流的首个数据包,转发面设备还没有为该第三数据包对应数据流建立缓存队列,且第一缓存区当前不能缓存数据包。
S112、转发面设备将该第三数据包发送给该控制面设备。
若转发面设备确定该第一缓存区中不存在用于存储所述第三数据包的缓存队列,且该第一缓存区的数据量达到该第一缓存区的容量,可以将第三数据包发送至控制面设备,以便控制面设备可以根据第三数据包发送处理流表。
作为一种可选的实施方式,转发面设备将第三数据包发送至控制面设备的具体方式包括:向控制面设备发送携带指定标志值的packet-in消息,该携带指定标志值的packet-in消息至少包括第三数据包和指定标志值,该指定标志值可以是指无效的缓存地址的值(如-1),该指定标志值用于指示转发面设备中不存在用于缓存第三数据包的缓存队列,指定标志值可以是控制面设备和转发面设备约定的值,不限于上述无效的缓存地址的值。
S113、控制面设备响应该第三数据包生成处理流表。
控制面设备响应该第三数据包生成处理流表,处理流表可以包括匹配字段和处理动作,该匹配字段可以是控制面设备根据第三数据包的数据标识生成的,该数据标识可以包括第三数据包的字段,如源IP地址字段、目标IP地址字段和接收数据包的端口(In_port)字段,处理动作可以是指缓存于第一缓存区。如第三数据包对应的源IP地址字段的值为101.224.112.02、目标IP地址的值为126.136.134.222、接收数据包的端口为S1-2,控制面设备响应第三数据包生成如表2所示处理流表,处理流表的匹配字段包括的源IP地址字段的值为101.224.112.02、目标IP地址的值为126.136.134.222、接收数据包的端口为S1-2,将处理动作设置为缓存于第一缓存区。
表2
S114、控制面设备将该处理流表发送至该转发面设备。
控制面设备可以将该处理流表发送至该转发面设备,以便转发面设备可以执行步骤S120,在第一缓存区建立用于缓存第三数据包的缓存队列。
S115、若该第一缓存队列的当前数据量为零,转发面设备删除该第一缓存队列。
若控制面设备接收到第二缓存区的数据包,可以向转发面设备发送第二缓存区的数据包对应的匹配流表,该匹配流表包括匹配字段及处理动作,该匹配流表的匹配字段与第二缓存区的数据包的数据标(如字段)匹配,第二缓存区的数据包的数据标识与第一缓存队列中的数据包的数据标识匹配,表明第一缓存队列的数据包与第二缓存区的数据包对应的匹配流表匹配,即可将该匹配流表作为第一缓存队列对应数据流的匹配流表。转发面设备接收到匹配流表,根据匹配流表将第一缓存队列中的数据包转发到下一个转发设备或转发到数据包的目标IP地址对应的设备。将第一缓存队列中的数据包转发后,第一缓存队列中的数据包被清空,即第一缓存队列中的当前数据量为零,转发面设备可以删除第一缓存队列,以便可以在第一缓存区建立新的缓存队列。
S116、转发设备向该控制面设备发送第一通知消息。
在第一缓存队列的数据包被清空后,转发设备可以向控制面设备发送第一通知消息,以通知该控制面设备该第一缓存队列的当前数据量为零。
举例来说,若该第一缓存队列的当前数据量为零,则转发面设备可以向控制面设备发送第一通知消息,第一通知消息可以是指第二类型的packet-in消息,第二类型的packet-in消息至少包括消息类型标识(如数字2)、第一缓存队列的缓存标识(如第一缓存队列的缓存首地址)。
S117、控制面设备根据该第一通知消息确定该转发面设备的第一缓存队列的当前数据量为零。
S118、控制面设备转发该第三缓存区的所有数据包及第二通知消息至该转发面设备。
由于第一缓存队列中的数据包比控制面的第三缓存区的数据包先到达转发面设备,因此,在控制面设备通过执行步骤S115确定第一缓存队列中的数据包被转发面设备转发后,控制面设备可以转发该第三缓存区的所有数据包至转发面设备,以便转发面设备可以转发该第三缓存区的所有数据包,可以确保数据包转发的顺序。
举例来说,在转发面设备接收到第二类型的packet-in消息后,可以向转发面设备发送packet-out消息转发该第三缓存区的所有数据包。
在控制面设备转发该第三缓存区的所有数据包至该转发面设备后,该第三缓存区的当前数据量为零,控制面设备可以向转发面设备发送第二通知消息,通知该转发面设备该第三缓存区的当前数据量为零。
S119、转发面设备响应该第二通知消息删除该转发流表。
转发面设备接收第二通知消息,根据第二通知消息确定第三缓存区的数据包已经被转发,转发面设备可以根据第二缓存区的数据包对应的匹配流表将第三缓存区的数据包转发至下个转发面设备或转发到数据包的目标IP地址对应的设备,确定到达转发面设备的且属于第一缓存队列对应的数据流的数据包已经被按序转发,转发面设备中当前存在第一缓存队列对应数据流的匹配流表。因此,转发面设备可以根据匹配流表处理第一缓存队列对应数据流后续到达的数据包,而不需要发送至第二缓存区进行缓存,可以响应该第二通知消息删除该转发流表,不仅可以确保数据包的转发顺序,还可以提高数据包处理的效率。
S120、转发面设备响应该处理流表在该第一缓存区中建立用于存储该第三数据包的第二缓存队列。
转发面设备在删除转发流表后,可以在转发面设备的第一缓存区建立第二缓存队列,以便可以在第二缓存队列中缓存第三数据包和第三数据包对应数据流后续达到的数据包。
S121、转发面设备将该第三数据包缓存于该第二缓存队列。
第一缓存队列对应的数据流中的数据包比第三数据包先达到转发面设备,为了按序地将第一缓存队列对应的数据流中的数据包和第三数据包转发,可以设置转发流表和处理流表的执行优先级,转发面设备的执行优先级高于处理流表的执行优先级。即在根据转发流表将第二数据包发送至控制面设备,且确定控制面设备的第三缓存区的数据量为零时,确定达到转发面设备的且属于第一缓存队列对应的数据流中的数据包已经被转发,即转发流表已经被执行,执行步骤S119将删除转发流表。在转发流表删除后,转发面设备可以执行步骤S120和S121,以便等待控制面设备发送第二缓存队列对应的匹配流表,以使转发面设备根据第二缓存队列对应的匹配流表将第二缓存队列的数据包转发,可以使得先达到转发面设备的数据包先转发,以确保不同数据流的转发顺序。
本发明实施例中,转发面设备接收第一数据包,并确定用于存储第一数据包的第一缓存队列,若第一缓队列的状态为无效状态,第一缓存队列的状态是在第一缓存区的数据量达到容量(当前的剩余存储空间不足)时设置为无效状态的,所以在第一缓存队列的状态为无效状态时,表明第一缓存队列和第一缓存区当前不能缓存数据包,可以将第一数据包缓存在第二缓存区。在第二缓存区的数据量达到第二缓存区的容量时,转发面设备将第二缓存区的所有数据包发送至控制面设备,控制面设备将接收到的第二缓存区的数据包缓存在第三缓存区,通过在转发面设备增加第二缓存区(即缓冲区),和在控制面设备增加第三缓存区,在转发面设备的第一缓存区(即缓存空间)的数据量达到第一缓存区的容量时,不需要一个一个地将与流表不匹配的数据包发送至控制面设备,而是将与流表不匹配的数据包缓存在第二缓存区中,在第二缓存区的数据量达到容量时,将第二缓存区的所有数据包批量发送至控制面设备,减少了向控制面设备发送数据包的次数,可以减少转发面设备与控制面设备之间的链路的开销,并减轻控制面设备处理数据包的负担。
在控制面设备缓存接收到的第二缓存区的数据包后,根据第二缓存区的数据包生成转发流表,以便转发面设备可以根据转发流表将第二数据包缓存于第二缓存区,在第一缓存队列的状态为无效状态后,该数据流中后续到达转发面设备的数据包先缓存于第二缓存区,然后才将缓存于第二缓存区的数据包发送至控制面设备,由于控制面设备处理数据包的原理为先进先出,第一缓存队列的状态为无效状态后,转发面设备也是采用的先进先出的方式将第二缓存区的数据包发送至控制面设备,因此,通过控制面设备发送的转发流表,可以确保同一条数据流中的各个数据包的转发顺序。
请参见3,为本发明实施例提供的一种数据包处理装置的结构示意图。本实施例中所描述的数据包处理装置,应用于转发面设备,所述转发面设备包括第一缓存区和第二缓存区,所述第一缓存区包括至少一个缓存队列,所述装置包括:
确定模块301,用于若接收到第一数据包,则确定所述第一缓存区中用于存储所述第一数据包的第一缓存队列。
缓存模块302,用于若所述第一缓存队列的状态为无效状态,则将所述第一数据包缓存于所述第二缓存区,所述第一数据包的数据量小于所述第二缓存区的容量,所述第一缓存队列的状态是在所述第一缓存区的当前数据量达到所述第一缓存区的容量时设置为无效状态的。
发送模块303,用于若所述第二缓存区的数据量达到所述第二缓存区的容量,则将所述第二缓存区的所有数据包发送至控制面设备。
可选的,第一接收模块304,用于接收所述控制面设备发送的转发流表,所述转发流表是所述控制面设备响应所述转发面设备发送的所述第二缓存区的所有数据包所生成的。
可选的,所述第一接收模块304,还用于接收第二数据包。
可选的,所述缓存模块302,还用于若所述第二数据包的数据标识与所述第一缓存队列中的任一数据包的数据标识匹配,则响应所述转发流表将所述第二数据包缓存于所述第二缓存区。
可选的,第二接收模块305,还用于接收第三数据包。
可选的,所述确定模块301,还用于确定所述第一缓存区中不存在用于存储所述第三数据包的缓存队列,且所述第一缓存区的数据量达到所述第一缓存区的容量。
可选的,所述发送模块303,还用于将所述第三数据包发送给所述控制面设备。
可选的,所述第二接收模块305,还接收所述控制面设备发送的处理流表,所述处理流表是所述控制面设备响应所述第三数据包所生成的。
可选的,第一删除模块306,用于若所述第一缓存队列的当前数据量为零,则删除所述第一缓存队列。
可选的,建立模块307,用于响应所述处理流表在所述第一缓存区中建立用于存储所述第三数据包的第二缓存队列。
可选的,所述缓存模块302,还用于将所述第三数据包缓存于所述第二缓存队列。
可选的,所述第一删除模块306,还用于删除所述转发流表。
可选的,所述发送模块303,还用于若所述第一缓存队列的当前数据量为零,则向所述控制面设备发送第一通知消息,所述第一通知消息用于通知所述控制面设备所述第一缓存队列的当前数据量为零;
可选的,第三接收模块308,还用于接收所述控制面设备发送的第二通知消息,所述第二通知消息是所述控制面设备转发所述控制面设备缓存的数据标识与所述第一数据包的数据标识匹配的所有数据包之后生成的;
可选的,第二删除模块309,用于响应所述第二通知消息删除所述转发流表。
本发明实施例中,转发面设备接收第一数据包,并确定用于存储第一数据包的第一缓存队列,若第一缓队列的状态为无效状态,第一缓存队列的状态是在第一缓存区的数据量达到容量(当前的剩余存储空间不足)时设置为无效状态的,所以在第一缓存队列的状态为无效状态时,表明第一缓存队列和第一缓存区当前不能缓存数据包,可以将第一数据包缓存在第二缓存区。在第二缓存区的数据量达到第二缓存区的容量时,转发面设备将第二缓存区的所有数据包发送至控制面设备,控制面设备将接收到的第二缓存区的数据包缓存在第三缓存区,通过在转发面设备增加第二缓存区(即缓冲区),和在控制面设备增加第三缓存区,在转发面设备的第一缓存区(即缓存空间)的数据量达到第一缓存区的容量时,不需要一个一个地将与流表不匹配的数据包发送至控制面设备,而是将与流表不匹配的数据包缓存在第二缓存区中,在第二缓存区的数据量达到容量时,将第二缓存区的所有数据包批量发送至控制面设备,减少了向控制面设备发送数据包的次数,可以减少转发面设备与控制面设备之间的链路的开销,并减轻控制面设备处理数据包的负担。
请参见4,为本发明实施例提供的另一种数据包处理装置的结构示意图。本实施例中所描述的数据包处理装置,应用于控制面设备,该数据包处理装置包括:
接收模块401,用于接收转发面设备发送的所述转发面设备的第二缓存区的所有数据包。
缓存模块402,用于将接收到的所述第二缓存区的数据包缓存于第三缓存区,所述第三缓存区对应于所述第二缓存区。
可选的,第一生成模块403,用于响应接收到的所述第二缓存区的数据包生成转发流表;
可选的,第一发送模块404,用于将所述转发流表发送至所述转发面设备。
可选的,所述接收模块401,还用于接收所述转发面设备发送的第三数据包,所述第三数据包是所述转发面设备的第一缓存区中不存在用于存储所述第三数据包的缓存队列,且所述第一缓存区的数据量达到所述第一缓存区的容量时所转发。
可选的,第二生成模块405,用于响应所述第三数据包生成处理流表。
可选的,第二发送模块406,用于将所述处理流表发送至所述转发面设备。
可选的,所述接收模块401,还用于接收所述转发面设备发送的第一通知消息;
可选的,确定模块407,用于根据所述第一通知消息确定所述转发面设备的第一缓存队列的当前数据量为零;
可选的,第三发送模块408,用于转发所述第三缓存区的所有数据包至所述转发面设备;向所述控制面设备发送第二通知消息,所述第二通知消息用于通知所述转发面设备所述第三缓存区的当前数据量为零。
本发明实施例中,控制面设备也具有缓存功能,在接收到该转发面设备的第二缓存区的所有数据包,可以将该第二缓存区的所有数据包包缓存,以便可以减少了向控制面设备发送数据包的次数,可以减少转发面设备与控制面设备之间的链路的开销,并减轻控制面设备处理数据包的负担。
请参见5,为本发明实施例提供的一种转发面设备的结构示意图。该转发面设备包括:包括处理器501、存储器502、通信接口503和电源504,所述处理器501、存储器502、通信接口503和电源504通过总线相互连接。
处理器501可以是一个或多个CPU,在处理器501是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU,处理器501,处理器501可以包括调制解调器,用于对收发器505接收到的信号进行调制或解调处理。
存储器502包括但不限于是RAM、ROM)、EPROM、CD-ROM,该存储器502用于存储指令、操作系统、各种应用及数据。
上述通信接口503与其他转发面设备或控制面设备相连。例如,通信接口503包括多个接口,分别与多个终端相连或者与控制设备相连接。通信接口503可以是有线接口,无线接口或其组合。有线接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线接口例如可以为无线局域网(英文:wireless local area network,缩写:WLAN)接口,蜂窝网络接口或其组合。
电源504,用于为转发面设备进行供电。
上述存储器502还用于存储程序指令。上述处理器501可以调用上述存储器502存储的程序指令,实现如本申请上述各实施例所示的数据包处理方法。
基于同一发明构思,本发明实施例中提供的转发面设备解决问题的原理与本发明方法实施例相似,因此该转发面设备的实施以及有益效果可以参见以及有益效果,为简洁描述,在这里不再赘述。
请参见6,为本发明实施例提供的一种控制面设备的结构示意图。该控制面设备包括:包括处理器601、存储器602、通信接口603和电源604,所述处理器601、存储器602、通信接口603和电源604通过总线相互连接。
处理器601可以是一个或多个CPU,在处理器601是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU,处理器601,处理器601可以包括调制解调器,用于对收发器805接收到的信号进行调制或解调处理。
存储器602包括但不限于是RAM、ROM)、EPROM、CD-ROM,该存储器602用于存储指令、操作系统、各种应用及数据。
上述通信接口603与转发面设备或其他控制面设备相连。例如,通信接口603包括多个接口,分别与多个终端相连或者与转发面设备相连接。通信接口603可以是有线接口,无线接口或其组合。有线接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线接口例如可以为无线局域网(英文:wireless local area network,缩写:WLAN)接口,蜂窝网络接口或其组合。
电源604,用于为控制面设备进行供电。
上述存储器602还用于存储程序指令。上述处理器601可以调用上述存储器602存储的程序指令,实现如本申请上述各实施例所示的数据包处理方法。
基于同一发明构思,本发明实施例中提供的控制面设备解决问题的原理与本发明方法实施例相似,因此该控制面设备的实施以及有益效果可以参见以及有益效果,为简洁描述,在这里不再赘述。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序解决问题的实施方式以及有益效果可以参见上述图2的数据包处理方法的实施方式以及有益效果,重复之处不再赘述。
本发明实施还提供了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非易失性计算机可读存储介质,该计算机程序被执行时使计算机执行上述图2对应实施例中的数据包处理方法的步骤,该计算机程序产品解决问题的实施方式以及有益效果可以参见上述图2的数据包处理方法的实施方式以及有益效果,重复之处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
Claims (17)
1.一种数据包处理方法,其特征在于,所述方法应用于转发面设备,所述转发面设备包括第一缓存区和第二缓存区,所述第一缓存区包括至少一个缓存队列,所述方法包括:
若接收到第一数据包,则确定所述第一缓存区中用于存储所述第一数据包的第一缓存队列;
若所述第一缓存队列的状态为无效状态,则将所述第一数据包缓存于所述第二缓存区,所述第一数据包的数据量小于所述第二缓存区的容量,所述第一缓存队列的状态是在所述第一缓存区的当前数据量达到所述第一缓存区的容量时设置为无效状态的;
若所述第二缓存区的数据量达到所述第二缓存区的容量,则将所述第二缓存区的所有数据包发送至控制面设备;
接收所述控制面设备发送的转发流表,所述转发流表是所述控制面设备响应所述转发面设备发送的所述第二缓存区的所有数据包所生成的;
接收第二数据包;
若所述第二数据包的数据标识与所述第一缓存队列中的任一数据包的数据标识匹配,则响应所述转发流表将所述第二数据包缓存于所述第二缓存区。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第三数据包;
确定所述第一缓存区中不存在用于存储所述第三数据包的缓存队列,且所述第一缓存区的数据量达到所述第一缓存区的容量;
将所述第三数据包发送给所述控制面设备;
接收所述控制面设备发送的处理流表,所述处理流表是所述控制面设备响应所述第三数据包所生成的;
若所述第一缓存队列的当前数据量为零,则删除所述第一缓存队列;
响应所述处理流表在所述第一缓存区中建立用于存储所述第三数据包的第二缓存队列;
将所述第三数据包缓存于所述第二缓存队列。
3.根据权利要求2所述的方法,其特征在于,所述响应所述处理流表在所述第一缓存区中建立用于存储所述第三数据包的第二缓存队列之前,所述方法还包括:
删除所述转发流表。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
若所述第一缓存队列的当前数据量为零,则向所述控制面设备发送第一通知消息,所述第一通知消息用于通知所述控制面设备所述第一缓存队列的当前数据量为零;
接收所述控制面设备发送的第二通知消息,所述第二通知消息是所述控制面设备转发所述控制面设备缓存的数据标识与所述第一数据包的数据标识匹配的所有数据包之后生成的;
响应所述第二通知消息删除所述转发流表。
5.一种数据包处理方法,应用于控制面设备,其特征在于,包括:
接收转发面设备发送的所述转发面设备的第二缓存区的所有数据包;
将接收到的所述第二缓存区的数据包缓存于第三缓存区,所述第三缓存区对应于所述第二缓存区;
响应接收到的所述第二缓存区的数据包生成转发流表;
将所述转发流表发送至所述转发面设备。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述转发面设备发送的第三数据包,所述第三数据包是所述转发面设备的第一缓存区中不存在用于存储所述第三数据包的缓存队列,且所述第一缓存区的数据量达到所述第一缓存区的容量时所转发;
响应所述第三数据包生成处理流表;
将所述处理流表发送至所述转发面设备。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述转发面设备发送的第一通知消息;
根据所述第一通知消息确定所述转发面设备的第一缓存队列的当前数据量为零;
转发所述第三缓存区的所有数据包至所述转发面设备;
向所述控制面设备发送第二通知消息,所述第二通知消息用于通知所述转发面设备所述第三缓存区的当前数据量为零。
8.一种数据包处理装置,其特征在于,所述装置应用于转发面设备,所述转发面设备包括第一缓存区和第二缓存区,所述第一缓存区包括至少一个缓存队列,所述装置包括:
确定模块,用于若接收到第一数据包,则确定所述第一缓存区中用于存储所述第一数据包的第一缓存队列;
缓存模块,用于若所述第一缓存队列的状态为无效状态,则将所述第一数据包缓存于所述第二缓存区,所述第一数据包的数据量小于所述第二缓存区的容量,所述第一缓存队列的状态是在所述第一缓存区的当前数据量达到所述第一缓存区的容量时设置为无效状态的;
发送模块,用于若所述第二缓存区的数据量达到所述第二缓存区的容量,则将所述第二缓存区的所有数据包发送至控制面设备;
第一接收模块,用于接收所述控制面设备发送的转发流表,所述转发流表是所述控制面设备响应所述转发面设备发送的所述第二缓存区的所有数据包所生成的;
所述第一接收模块,还用于接收第二数据包;
所述缓存模块,还用于若所述第二数据包的数据标识与所述第一缓存队列中的任一数据包的数据标识匹配,则响应所述转发流表将所述第二数据包缓存于所述第二缓存区。
9.根据权利要求8所述的装置,其特征在于,
第二接收模块,用于接收第三数据包;
所述确定模块,还用于确定所述第一缓存区中不存在用于存储所述第三数据包的缓存队列,且所述第一缓存区的数据量达到所述第一缓存区的容量;
所述发送模块,还用于将所述第三数据包发送给所述控制面设备;
所述第二接收模块,还接收所述控制面设备发送的处理流表,所述处理流表是所述控制面设备响应所述第三数据包所生成的;
所述装置还包括:
第一删除模块,用于若所述第一缓存队列的当前数据量为零,则删除所述第一缓存队列;
建立模块,用于响应所述处理流表在所述第一缓存区中建立用于存储所述第三数据包的第二缓存队列;
所述缓存模块,还用于将所述第三数据包缓存于所述第二缓存队列。
10.根据权利要求9所述的装置,其特征在于,
所述第一删除模块,还用于删除所述转发流表。
11.根据权利要求9或10所述的装置,其特征在于,
所述发送模块,还用于若所述第一缓存队列的当前数据量为零,则向所述控制面设备发送第一通知消息,所述第一通知消息用于通知所述控制面设备所述第一缓存队列的当前数据量为零;
所述装置还包括:
第三接收模块,用于接收所述控制面设备发送的第二通知消息,所述第二通知消息是所述控制面设备转发所述控制面设备缓存的数据标识与所述第一数据包的数据标识匹配的所有数据包之后生成的;
第二删除模块,用于响应所述第二通知消息删除所述转发流表。
12.一种数据包处理装置,应用于控制面设备,其特征在于,包括:
接收模块,用于接收转发面设备发送的所述转发面设备的第二缓存区的所有数据包;
缓存模块,用于将接收到的所述第二缓存区的数据包缓存于第三缓存区,所述第三缓存区对应于所述第二缓存区;
第一生成模块,用于响应接收到的所述第二缓存区的数据包生成转发流表;
第一发送模块,用于将所述转发流表发送至所述转发面设备。
13.根据权利要求12所述的装置,其特征在于,
所述接收模块,还用于接收所述转发面设备发送的第三数据包,所述第三数据包是所述转发面设备的第一缓存区中不存在用于存储所述第三数据包的缓存队列,且所述第一缓存区的数据量达到所述第一缓存区的容量时所转发;
所述装置还包括:
第二生成模块,用于响应所述第三数据包生成处理流表;
第二发送模块,用于将所述处理流表发送至所述转发面设备。
14.根据权利要求13所述的装置,其特征在于,
所述接收模块,还用于接收所述转发面设备发送的第一通知消息;
所述装置还包括:
确定模块,用于根据所述第一通知消息确定所述转发面设备的第一缓存队列的当前数据量为零;
第三发送模块,用于转发所述第三缓存区的所有数据包至所述转发面设备;向所述控制面设备发送第二通知消息,所述第二通知消息用于通知所述转发面设备所述第三缓存区的当前数据量为零。
15.一种转发面设备,所述转发面设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,其特征在于,所述至少一个处理器执行所述指令,以实现权利要求1至4中任一项所述的数据包处理方法的步骤。
16.一种控制面设备,所述控制面包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,其特征在于,所述至少一个处理器执行所述指令,以实现权利要求5至7中任一项所述的数据包处理方法的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至7中任一项所述的数据包处理方法的步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810313392.5A CN110365591B (zh) | 2018-04-09 | 2018-04-09 | 数据包处理方法、装置及设备 |
EP19785323.7A EP3748924A4 (en) | 2018-04-09 | 2019-04-09 | METHOD, DEVICE AND DEVICE FOR DATA PACKAGE PROCESSING |
PCT/CN2019/081976 WO2019196848A1 (zh) | 2018-04-09 | 2019-04-09 | 数据包处理方法、装置及设备 |
US17/014,670 US11483261B2 (en) | 2018-04-09 | 2020-09-08 | Data packet processing method and apparatus, and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810313392.5A CN110365591B (zh) | 2018-04-09 | 2018-04-09 | 数据包处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110365591A CN110365591A (zh) | 2019-10-22 |
CN110365591B true CN110365591B (zh) | 2021-11-19 |
Family
ID=68162804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810313392.5A Active CN110365591B (zh) | 2018-04-09 | 2018-04-09 | 数据包处理方法、装置及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11483261B2 (zh) |
EP (1) | EP3748924A4 (zh) |
CN (1) | CN110365591B (zh) |
WO (1) | WO2019196848A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105553880A (zh) * | 2015-12-24 | 2016-05-04 | 北京邮电大学 | 一种软件定义网络中的数据处理方法及装置 |
CN106603409A (zh) * | 2016-11-30 | 2017-04-26 | 中国科学院计算技术研究所 | 一种数据处理系统、方法及设备 |
CN107181663A (zh) * | 2017-06-28 | 2017-09-19 | 联想(北京)有限公司 | 一种报文处理方法、相关设备及计算机可读存储介质 |
CN107484439A (zh) * | 2015-08-31 | 2017-12-15 | 华为技术有限公司 | 一种数据报文处理方法及设备 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731901A (zh) * | 2012-10-11 | 2014-04-16 | 中兴通讯股份有限公司 | 一种路由转发的方法、系统及控制器 |
CN104426815B (zh) * | 2013-08-27 | 2019-07-09 | 中兴通讯股份有限公司 | 一种sdn中流表下发的方法和系统、of控制器和of交换机 |
US9253028B2 (en) * | 2013-12-13 | 2016-02-02 | International Business Machines Corporation | Software-defined networking tunneling extensions |
WO2015149343A1 (zh) * | 2014-04-04 | 2015-10-08 | 华为技术有限公司 | 网络中的报文处理方法、转发设备和报文处理系统 |
CN105791169A (zh) * | 2014-12-16 | 2016-07-20 | 电信科学技术研究院 | 软件定义网络中交换机转发控制、转发方法及相关设备 |
US20170295074A1 (en) * | 2015-03-02 | 2017-10-12 | Hewelett Packard Enterprise Development Lp | Controlling an unknown flow inflow to an sdn controller in a software defined network (sdn) |
CN104821923A (zh) * | 2015-05-15 | 2015-08-05 | 杭州华三通信技术有限公司 | Sdn网络中发送上送控制器协议报文的方法和装置 |
US10530684B2 (en) * | 2015-05-19 | 2020-01-07 | International Business Machines Corporation | Management of unreachable OpenFlow rules |
CN105591977A (zh) | 2015-08-28 | 2016-05-18 | 杭州华三通信技术有限公司 | 报文处理方法以及装置 |
WO2017071834A1 (en) | 2015-10-30 | 2017-05-04 | Nec Europe Ltd. | Method for offloading data-plane functions in networks operated with data-plane/control-plane separated network functions |
US10326854B2 (en) * | 2015-12-14 | 2019-06-18 | Huawei Technologies Co., Ltd. | Method and apparatus for data caching in a communications network |
CN105791129A (zh) | 2016-03-08 | 2016-07-20 | 浪潮集团有限公司 | 一种OpenFlow流表处理无效数据包的方法 |
US10230810B1 (en) * | 2016-03-18 | 2019-03-12 | Barefoot Networks, Inc. | Storing packet data in mirror buffer |
WO2018006929A1 (en) * | 2016-07-04 | 2018-01-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Packet buffering in a telecommunications network |
EP3607707A1 (en) * | 2017-04-07 | 2020-02-12 | Telefonaktiebolaget LM Ericsson (publ) | Technique for packet buffering |
CN108289104B (zh) * | 2018-02-05 | 2020-07-17 | 重庆邮电大学 | 一种工业SDN网络DDoS攻击检测与缓解方法 |
-
2018
- 2018-04-09 CN CN201810313392.5A patent/CN110365591B/zh active Active
-
2019
- 2019-04-09 WO PCT/CN2019/081976 patent/WO2019196848A1/zh unknown
- 2019-04-09 EP EP19785323.7A patent/EP3748924A4/en active Pending
-
2020
- 2020-09-08 US US17/014,670 patent/US11483261B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107484439A (zh) * | 2015-08-31 | 2017-12-15 | 华为技术有限公司 | 一种数据报文处理方法及设备 |
CN105553880A (zh) * | 2015-12-24 | 2016-05-04 | 北京邮电大学 | 一种软件定义网络中的数据处理方法及装置 |
CN106603409A (zh) * | 2016-11-30 | 2017-04-26 | 中国科学院计算技术研究所 | 一种数据处理系统、方法及设备 |
CN107181663A (zh) * | 2017-06-28 | 2017-09-19 | 联想(北京)有限公司 | 一种报文处理方法、相关设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019196848A1 (zh) | 2019-10-17 |
US11483261B2 (en) | 2022-10-25 |
EP3748924A1 (en) | 2020-12-09 |
US20200403941A1 (en) | 2020-12-24 |
CN110365591A (zh) | 2019-10-22 |
EP3748924A4 (en) | 2021-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107819695B (zh) | 一种基于sdn的分布式控制负载均衡系统与方法 | |
WO2020192358A1 (zh) | 一种转发报文的方法和网络设备 | |
CN108494676B (zh) | 数据传输方法、装置、数据收发设备、系统及存储介质 | |
US9276854B2 (en) | Scaling egress network traffic | |
EP3846405A1 (en) | Method for processing tcp message, toe assembly, and network device | |
CN111355669A (zh) | 控制网络拥塞的方法、装置及系统 | |
JP2020017806A (ja) | ネットワーク制御装置及びネットワーク制御方法 | |
US11689646B2 (en) | Network packet processing method and apparatus and network server | |
CN104468254A (zh) | 网络流量统计上报处理方法、装置、控制器及交换机 | |
CN112714075B (zh) | 一种桥转发数据包限速的方法 | |
CN111193756A (zh) | 一种vxlan隧道负载均衡方法及相关设备 | |
CN113055301A (zh) | 拥塞控制方法及相关设备 | |
CN113014627B (zh) | 报文转发方法、装置、智能终端及计算机可读存储介质 | |
CN110365591B (zh) | 数据包处理方法、装置及设备 | |
CN103795648A (zh) | 一种队列调度方法、装置及系统 | |
CN111416775A (zh) | 数据接收和发送方法、装置及系统 | |
WO2021101640A1 (en) | Method and apparatus of packet wash for in-time packet delivery | |
CN109005120B (zh) | 一种报文处理方法及网络设备 | |
CN111130968A (zh) | 一种解决Modbus总线通信粘包的方法及终端 | |
CN111245744A (zh) | 一种报文传输控制方法及装置 | |
JP2015106865A (ja) | 通信装置、通信システム、通信方法、及び通信プログラム | |
CN112532535B (zh) | 一种用于优化网络拥塞的方法和装置 | |
JP7251060B2 (ja) | 情報処理装置、情報処理システム及び情報処理プログラム | |
CN113810305B (zh) | 报文转发方法、装置、转发节点以及计算机可读存储介质 | |
US9078167B2 (en) | System and method for local flow control in a communications device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |