Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberCN105027506 A
Publication typeApplication
Application numberCN 201480009707
PCT numberPCT/IB2014/059459
Publication date4 Nov 2015
Filing date5 Mar 2014
Priority date15 Mar 2013
Also published asDE112014000322T5, US9444748, US9503382, US20140269320, US20150055476, WO2014141006A1, WO2014141006A9
Publication number201480009707.7, CN 105027506 A, CN 105027506A, CN 201480009707, CN-A-105027506, CN105027506 A, CN105027506A, CN201480009707, CN201480009707.7, PCT/2014/59459, PCT/IB/14/059459, PCT/IB/14/59459, PCT/IB/2014/059459, PCT/IB/2014/59459, PCT/IB14/059459, PCT/IB14/59459, PCT/IB14059459, PCT/IB1459459, PCT/IB2014/059459, PCT/IB2014/59459, PCT/IB2014059459, PCT/IB201459459
InventorsC德库萨提斯, R克里希纳穆尔塞, F彼得里尼
Applicant国际商业机器公司
Export CitationBiBTeX, EndNote, RefMan
External Links: SIPO, Espacenet
Scalable flow and congestion control in a network
CN 105027506 A
Abstract
A method of performing congestion management in a network includes monitoring a congestion status at a switch in the network. It is determined at the switch that the congestion status indicates that there is congestion at the switch. Based on the congestion being related to data received at the switch from a source at a first rate, a first message is transmitted from the switch to the source requesting the source to send the data at a second rate that is slower than the first rate. Based on the congestion being related to data requests received at the switch from a destination at third rate, a second message is transmitted from the switch to the destination requesting the destination to request the data at a fourth rate slower than the third rate.
Claims(16)  translated from Chinese
1.一种用于执行网络中的拥塞管理的方法,所述方法包括: 监视在所述网络中的交换机处的拥塞状态; 在所述交换机处确定所述拥塞状态表明在所述交换机处存在拥塞;基于所述拥塞与在所述交换机处以第一速率从一个源接收的数据有关,从所述交换机向所述源发送第一消息,请求所述源以低于所述第一速率的第二速率发送所述数据;以及基于所述拥塞与在所述交换机处以第三速率从一个目的地接收的数据请求有关,从所述交换机向所述目的地发送第二消息,请求所述目的地以低于所述第三速率的第四速率发送所述数据请求。 1. A method for performing network congestion management, the method comprising: monitoring the state of congestion at the switch in the network; determining the state of congestion at the switch in the switch indicates the presence of at congestion; based on the congestion at a first rate and received from a data source in the relevant exchange, sending a first message from the source to the switch, requesting said source to said first rate is lower than the first the two data transmission rate; and based on the congestion of the switch at the rate imposed from a third destination receiving requests for data, sending a second message from the switch to the destination, the destination request third rate lower than said fourth data rate said transmission request.
2.如权利要求1所述的方法,进一步包括: 基于发送所述第一消息: 监视在所述网络中的所述交换机处的所述拥塞状态;以及基于确定所述拥塞状态表明在所述交换机处不再存在与在所述交换机处从所述源接收的数据有关的拥塞,从所述交换机向所述源发送第三消息,请求所述源以高于所述第二速率的第五速率发送所述数据。 2. The method of claim 1, further comprising: transmitting the first message based: monitoring the network at the congested state of the switch; and determining based on said congestion status indicates that the and at a switch in the switch no longer exists at the source of the data received from the relevant congestion, transmitting a third message from the switch to the source, requesting said source to said second rate is higher than the fifth the data transmission rate.
3.如权利要求1或2所述的方法,进一步包括: 基于发送所述第二消息: 监视在所述网络中的所述交换机处的所述拥塞状态;以及基于确定所述拥塞状态表明在所述交换机处不再存在与在所述交换机处从所述目的地接收的数据请求有关的拥塞,从所述交换机向所述目的地发送第四消息,请求所述目的地以高于所述第四速率的第六速率发送所述数据请求。 3. The method of claim 1 or claim 2 wherein, further comprising: sending the second message based on: monitoring the network at the congested state of the switch; and determining based on said congestion status indicates is no longer present at the switch and the switch at the destination at the request of the data received from the congestion, a fourth message transmitted from the switch to the destination, the destination of the request is higher than the the sixth transmission rate of said fourth data rate request.
4.如前面任何一个权利要求所述的方法,其中,所述交换机是OpenFlow交换机,所述网络是OpenFlow网络。 The method according to any one of the preceding claims claim 4., wherein the switch is a switch OpenFlow, the network is a network OpenFlow.
5.如权利要求4所述的方法,其中,所述源和目的地是OpenFlow交换机。 5. The method of claim 4, wherein, the source and destination are OpenFlow switch.
6.如权利要求1至3中任何一个所述的方法,其中,所述交换机是OpenFlow交换机,所述确定包括检查在所述交换机处的流表中的条目的报头字段中的旗标。 6. The method according to any one of 1 to 3 claim, wherein the switch is OpenFlow switch, determining the header field includes checking the flow table of the switch at the entry of the flag.
7.如权利要求6所述的方法,其中,基于在所述交换机处存储所接收的数据的队列超过一指定容量,设置所述旗标以表明在所述交换机处的拥塞与在所述交换机处接收的数据有关。 7. The method of claim 6, wherein, based on more than one queue specified capacity, the flag is set to indicate congestion in the switch at the switch and storing the data received at the switch of receiving data related.
8.如权利要求6所述的方法,其中,基于在所述交换机处存储数据请求的队列超过一指定容量,设置所述旗标以表明在所述交换机处的拥塞与在所述交换机处接收的数据请求有关。 8. The method of claim 6, wherein, based on the data stored at the switch request specifies more than one queue capacity, the flag is set to indicate congestion of the switch at the switch at the reception at requests for data.
9.一种用于网络中的拥塞管理的计算机程序产品,所述计算机程序产品包括可由处理电路读取的存储介质,所述存储介质上存储由所述处理电路执行的用于实现如前面任何一个权利要求所述的方法的指令。 9. A method for managing congestion in the network computer program product, the computer program product includes a storage medium readable by a processing circuit, the storage medium stores the execution by the processing circuitry used to implement any of the previous the instruction of a method claim.
10.一种用于执行网络中的拥塞管理的系统,所述系统包括: 被配置为连接到网络的交换机,所述交换机包括: 具有计算机可读计算机指令的存储器;以及处理器,用于执行计算机可读指令以便: 监视在所述交换机处的拥塞状态; 确定所述拥塞状态表明在所述交换机处存在拥塞; 基于所述拥塞与在所述交换机处以第一速率从一个源接收的数据有关,向所述源发送第一消息,请求所述源以低于所述第一速率的第二速率发送所述数据;以及基于所述拥塞与在所述交换机处以第三速率从一个目的地接收的数据请求有关,向所述目的地发送第二消息,请求所述目的地以低于所述第三速率的第四速率发送所述数据请求。 10. A method for performing congestion management in the network system, the system comprising: a network is configured to connect to a switch, said switch comprising: a computer-readable computer instructions having a memory; and a processor for executing computer-readable instructions to: monitor the state of congestion at the switch; determining the congestion status indicates the presence of congestion at the switch; and based on the congestion at a first rate of data received from a source in the relevant switch sending a first message to the source, the source of the request is lower than said first rate to a second rate of transmission of the data; and based on the congestion in the switch and the third rate imposed from a receiving destination for data request, sending a second message to the destination, the destination request to a third lower than the transmission rate of the fourth data rate request.
11.如权利要求10所述的系统,其中,所述指令进一步包括: 基于发送所述第一消息: 监视所述拥塞状态;以及基于确定所述拥塞状态表明在所述交换机处不再存在与在所述交换机处从所述源接收的数据有关的拥塞,向所述源发送第三消息,请求所述源以高于所述第二速率的第五速率发送所述数据。 11. The system of claim 10, wherein the instructions further comprising: transmitting the first message based: monitoring the state of congestion; and determining based on the congested state of the switch indicates no longer exists at the in the data relating to congestion at a switch received from the source, sending a third message to the source, requesting said source to said second rate is higher than a fifth of the data transmission rate.
12.如权利要求10或11所述的系统,其中,所述指令进一步包括: 基于发送所述第二消息: 监视所述拥塞状态;以及基于确定所述拥塞状态表明在所述交换机处不再存在与在所述交换机处从所述目的地接收的数据请求有关的拥塞,向所述目的地发送第四消息,请求所述目的地以高于所述第四速率的第六速率发送所述数据请求。 12. A system as claimed in claim 10 or claim 11, wherein the instructions further comprising: transmitting the second message based on: monitoring the state of congestion; and determining based on the congested state of the switch indicates the not in the presence of the switch and receiving data from the destination of the request relating to congestion, sending a fourth message to the destination, the destination of the request is higher than the fourth to sixth speed transmission rate of the data request.
13.如权利要求10至12至任何一个所述的方法,其中,所述交换机、源和目的地是OpenFlow交换机,所述网络是OpenFlow网络。 13. The method of 10 to 12 to any one of the preceding claims, wherein said switch, the source and destination are OpenFlow switch, the network is a network OpenFlow.
14.如权利要求10所述的方法,其中,所述交换机是OpenFlow交换机,所述确定包括检查在所述交换机处的流表中的条目的报头字段中的旗标。 14. A method as claimed in claim 10, wherein the switch is OpenFlow switch, determining the header field includes checking the flow table of the switch at the entry of the flag.
15.如权利要求14所述的装置,其中,基于在所述交换机处存储所接收的数据的队列超过一指定容量,设置所述旗标以表明在所述交换机处的拥塞与在所述交换机处接收的数据有关。 15. The apparatus of claim 14, wherein, in the queue based on more than one switch at the specified storage capacity of the received data, the flag is set to indicate congestion at the switch with the switch in the receiving data related.
16.如权利要求14所述的装置,其中,基于在所述交换机处存储数据请求的队列超过一指定容量,设置所述旗标以表明在所述交换机处的拥塞与在所述交换机处接收的数据请求有关。 16. The apparatus of claim 14, wherein, based on the data stored at the switch request specifies more than one queue capacity, the flag is set to indicate congestion at the switch at the switch at the reception requests for data.
Description  translated from Chinese
网络中的可扩展流和拥塞控制 Scalable network flow and congestion control

技术领域 TECHNICAL FIELD

[0001] 本发明涉及计算机网络,更具体地,涉及网络中的可扩展流(scalable flow)和拥塞控制。 [0001] The present invention relates to computer networks and, more particularly, to a network scalable stream (scalable flow) and congestion control.

背景技术 Background technique

[0002] 在包括多个网络交换机的局域网(LAN)中典型地采用以太网网络。 [0002] Ethernet network typically includes a plurality of network switches in a local area network (LAN) medium. 已经开发多个通信协议,并且继续演化以提高对于各种环境的以太网网络性能。 Multiple communication protocols have been developed and continue to evolve in order to improve the environment for a variety of Ethernet network performance. 例如,被称为数据中心桥接(DCB)、融合增强型以太网(CEE)或数据中心以太网(DCE)的对于以太网的增强支持LAN与存储区域网(SAN)的融合。 For example, known as Data Center Bridging (DCB), Converged Enhanced Ethernet (CEE) or Data Center Ethernet (DCE) for enhanced support for Ethernet LAN and storage area network (SAN) integration. 可以与以太网结合在数据中心环境中使用的其他协议包括例如以太网光纤通道(FCoE)、互联网广域远程直接内存访问协议(iWARP)、聚合以太网远程直接内存访问(RoCE)。 Can be combined with the use of Ethernet in the data center environment include other protocols such as Fibre Channel over Ethernet (FCoE), Internet WAN Remote Direct Memory Access Protocol (iWARP), converged Ethernet Remote Direct Memory Access (RoCE).

[0003] 在OpenFlow网络环境中,交换机经由安全链路连接到各个控制器,以便控制交换机配置和路由。 [0003] In the OpenFlow network environment, the switch is connected via a secure link to each controller to control the switch configuration and routing. 这样的控制器典型地经由在安全链路上发送的控制数据分组提供这种控制,这保持比传统以太网结构更高的数据完整性水平。 Such a controller typically provides such control via the control data packets transmitted on a secure link, which is maintained higher than traditional Ethernet structure data integrity level.

[0004] 典型地,当数据分组由交换机通过一个指定端口传送时,在进入和离开分组速率之间存在不平衡时,在交换机缓存器中对分组进行排队。 [0004] Typically, when a data packet from the switch through a designated port transfer, in entering and leaving the imbalance that exists between the packet rate, the switch buffer in the packet queue. 网络拥塞是在交换机携带了太多数据、缓冲器队列条目已经耗尽或者缓冲器已经充满到相对于缓冲器大小来说到达一定级别时所出现的问题。 Network congestion is carrying too much data in the switch buffer queue entry has been exhausted or has filled the buffer with respect to the size of the buffer when it reaches a certain level problems that arise. 这种拥塞导致服务质量的下降,使得分组被丢弃,或者分组的排队和/或传输被延迟。 This leads to degradation of service congestion, so that packets are dropped, or queued packet and / or the transmission is delayed.

发明内容 SUMMARY

[0005] 本发明的各个方面包括用于执行网络中的拥塞管理的方法、计算机程序产品和系统,其包括监视在网络中的交换机处的拥塞状态。 [0005] Various aspects of the invention include a method for performing network congestion management, computer program products and systems, including monitoring the state of congestion in the network at the switch. 确定该拥塞状态表明在该交换机处存在拥塞。 Determining the congestion state indicates the presence of the congestion in the switch. 基于该拥塞与在该交换机处以第一速率从一个源接收的数据有关,从该交换机向源发送第一消息,请求源以低于第一速率的第二速率发送数据。 And based on the congestion in the switch at a first rate from a source to receive data related to the first message sent from the switch to the source, the request source lower than the first rate second rate of transmission data. 基于该拥塞与在该交换机处以第三速率从一个目的地接收的数据请求有关,从该交换机向目的地发送第二消息,请求目的地以低于第三速率的第四速率发送数据请求。 Imposed on the congestion and the third rate of data received from a destination of the request relating to the switch, send a second message from the switch to the destination, the destination request to a third rate less than the rate of the fourth request to send data.

[0006] 通过这里所描述的实施例,实现了其他特征和优点。 [0006] The embodiments described herein to achieve other features and advantages. 在这里详细描述了本发明的其他实施例和方面,将其考虑为所要求保护的发明的一部分。 Are described in detail here other embodiments and aspects of the present invention, it is considered part of the claimed invention. 参考说明书和附图可以更好地理解本发明的优点和特征。 Reference to the specification and drawings may be better understood the advantages and features of the invention.

附图说明 BRIEF DESCRIPTION

[0007] 下面仅以例子的方式,参考附图描述本发明的实施例,其中: [0007] The following way of example only, with reference to the accompanying drawings of embodiments of the present invention, wherein:

[0008]图1描绘可以根据一个实施例实施的包括具有OpenFlow能力的交换机的网络的系统的框图; [0008] Figure 1 depicts an embodiment according to an embodiment of a block diagram of a network switch having ability OpenFlow system;

[0009] 图2描绘根据一个实施例的具有OpenFlow能力的交换机的框图; [0009] Figure 2 depicts a block diagram of one embodiment of the switch having a capability according OpenFlow;

[0010] 图3描绘可以在实施例中使用的OpenFlow流交换定义的示例;以及 [0010] Example OpenFlow stream switching 3 depicts defined that can be used in the embodiment; and

[0011] 图4描绘根据一个实施例用于在交换机执行拥塞管理的过程。 [0011] Figure 4 depicts an embodiment of a process used in the switch performs congestion management.

[0012] 具体实施例方式 [0012] Specific examples of the embodiment

[0013] 实施例涉及在网络中的交换机处提供可扩展流和拥塞控制。 [0013] Example relates to switches in the network at providing a scalable flow and congestion control. 当从源接收数据流的速率(例如,在网络交换机处)比能够输出或发送数据流的速率更快时,会发生网络拥塞。 Received from the source data stream rate (for example, a network switch at) ratio can output or transmit data stream at a rate faster when network congestion occurs when. 在网络是OpenFlow网络的实施例中,当数据分组由交换机通过一指定端口发送时,在进入和离开分组速率之间存在不平衡时,在交换机缓存器中对分组进行排队。 The network is an example of OpenFlow network, when data packets by the switch through a designated port to send, when entering and leaving the packet rate between an imbalance in the switch buffer in the packet queue. 网络拥塞是在交换机携带了太多数据、缓冲器队列条目已经耗尽或者缓冲器已经充满到相对于缓冲器大小来说到达一定级别时所出现的问题。 Network congestion is carrying too much data in the switch buffer queue entry has been exhausted or has filled the buffer with respect to the size of the buffer when it reaches a certain level problems that arise. 这种拥塞导致服务质量的下降,使得分组被丢弃,或者分组的排队和/或传输被延迟。 This leads to degradation of service congestion, so that packets are dropped, or queued packet and / or the transmission is delayed.

[0014] 在现在的OpenFlow网络中,流和拥塞控制由连接到网络中的所有交换机的OpenFlow控制器管理。 [0014] In the present OpenFlow network, flow and congestion control is connected to the network all the switches in OpenFlow controller management. 与对于流和拥塞控制的这种集中式方法不同,在这里所描述的实施例中,流和拥塞控制的全部或者一部分由具有OpenFlow-能力的(OpenFlow-capable)交换机(这里也称为“OpenFlow交换机”)来管理。 This centralized approach with respect to the flow and congestion control is different, in the embodiment described herein, the flow and congestion control in whole or in part by having OpenFlow- capacity (OpenFlow-capable) switch (also called "OpenFlow switch ") to manage it. 在一个实施例中,检测拥塞的OpenFlow交换机独立于OpenFlow控制器向可能导致交换机处的拥塞的源和/或目的地发送消息。 In one embodiment, the detection of congestion OpenFlow OpenFlow controller to switch independent of the source may cause congestion at the switch and / or destination to send a message. 在交换机处缓解拥塞可以使得整个网络具有更少的拥塞。 Relieve congestion at the switch can make the whole network is less congested.

[0015] 现在转到图1,现在将更加具体地描述包括支持OpenFlow的网络101(即,OpenFlow网络)的系统100的示例。 [0015] Now 1 will now be described in more detail to FIG OpenFlow network 101 comprises a support (i.e., OpenFlow network) of an example system 100. 在图1中描述的示例中,系统100是数据中心环境,其包括配置为使用具有OpenFlow能力的交换机106在网络101上通信的多个服务器102和客户端系统104。 Example depicted in Figure 1, the system 100 is a data center environment, which includes the ability to configure using a OpenFlow switch 106 on a network of more than 101 server communication and client systems 102 104. 在示例性实施例中,也称为主机或主机系统的服务器102是高速处理设备(例如,大型计算机、桌面型计算机、膝上型计算机、手持设备、嵌入式计算设备,等等),其包括能够读取和执行指令并且处理与系统100的各种组件的交互的至少一个处理电路(例如,计算机处理器/CPU)。 In an exemplary embodiment, also known as the host server or host system 102 is a high-speed processing equipment (for example, mainframe computers, desktop computers, laptop computers, handheld devices, embedded computing devices, etc.), which comprises ability to read and execute instructions and handle interactions with the various components of the system 100 at least one processing circuit (e.g., a computer processor / CPU). 服务器102可以是存储系统服务器,配置为访问和存储大量数据到一个或多个数据存储系统108。 Storage server 102 may be a server system configured to access and store large amounts of data to the one or more data storage system 108.

[0016] 客户端系统104可以包括多种桌面型、膝上型、通用计算机设备、移动计算设备、和/或具有处理电路和输入/输出(I/O)接口(诸如键/按钮、触摸屏、音频输入、显示设备和音频输出)的联网设备。 [0016] Client system 104 may include a variety of desktop, laptop, general-purpose computer equipment, mobile computing devices, and / or interface (such as a key / button, touch screen having a processing circuit and input / output (I / O), audio input, display and audio output) of the connected devices. 客户端系统104可以直接或通过一个或多个无线接入点110无线地链接到一个或多个交换机106。 Client system 104 can be linked directly or through one or more wireless access points 110 wirelessly to one or more switches 106.

[0017] 数据存储系统108指任何类型的计算机可读存储介质,并且可以包括一个或多个辅助存储元件,例如硬盘驱动器(HDD)、固态存储器、带、或服务器102内部或外部的存储子系统。 [0017] The data storage system 108 refers to any type of computer-readable storage medium, and may include one or more secondary storage elements, such as a hard disk drive (the HDD), solid state memory, tape, a server 102, or internal or external storage subsystem . 可以存储在数据存储系统108中的数据的类型例如包括各种文件和数据库。 The type of data can be stored in the data storage system 108, for example, include various files and databases. 可能存在由可以分布在系统100的各种位置的每个服务器102利用的多个数据存储系统108。 There could be a variety of servers may be distributed at each position of the system 102 utilizes 100 a plurality of data storage system 108.

[0018] 系统100还包括网络控制器112,其为中心软件定义的网络控制器,被配置为进行网络101内的路由决定。 [0018] System 100 also includes a network controller 112, which is a software-defined network central controller is configured to determine routing within the network 101. 网络控制器112建立一个或多个安全链路103以配置交换机106,并且建立交换机106之间链路105的通信属性。 The network controller 112 to establish a secure link 103 or more in order to configure the switch 106, and a communication link is established between switches 106 105 properties. 例如,网络控制器112可以配置交换机106以控制服务器102和客户端系统104之间以及与一个或多个防火墙114和一个或多个负载平衡器116之间的数据流的分组路由路径。 For example, the network controller 112 may be configured to control the switch 106 between the server and client systems 102 and 104 with one or more packet data traffic across the firewall routing paths 114 and one or more load balancer 116 between. 一个或多个防火墙114限制网络101和一个或多个外部网络118之间网络通信量的存取和流动。 One or more firewalls 114 limit network 101 and one or more external networks 118 network traffic between the access and flow. 一个或多个负载平衡器116可以跨越诸如服务器102之间的多个计算机分布工作负载。 One or more load balancer 116 can distribute the workload across multiple computers, such as between the server 102.

[0019] 服务器102、客户端系统104和网络控制器112可以包括现有技术中已知的各种计算机/通信硬件和软件技术,诸如一个或多个处理单元或电路、包括可移除介质的易失性和非易失性存储器、电源、网络接口、支持电路、操作系统等。 [0019] the server 102, the client system 104 and the network controller 112 may include known in the art for a variety of computer / communications hardware and software technologies, such as one or more processing units or circuits, including removable media volatile and non-volatile memory, power supply, network interface, support circuitry, operating system, etc. 尽管网络控制器112描述为分离组件,但是将理解的是网络配置功能可以可替代地以独立或分布式方式在一个或多个服务器102或客户端系统104中实施。 Although the network controller 112 is described as separate components, it will be appreciated that the network configuration can function independently or may alternatively be implemented in a distributed manner or more servers 102 or 104 in the client system.

[0020] 网络101可以包括无线、有线和/或光纤链路的组合。 [0020] Network 101 may include a combination of wireless, cable and / or fiber optic links. 如图1所描述的网络101代表为了说明目的的简化示例。 A network 101 as shown in the representative examples described for the purpose of simplification of explanation. 网络101的实施例可以包括数目众多的交换机106(例如,几百),其中每个交换机106具有数十个端口和链路。 Example network 101 may include a large number of switches 106 (e.g., a few hundred), wherein each switch 106 has 10 ports and the number of links. 网络101可以支持允许数据在服务器102、客户端系统104、交换机106、网络控制器112、防火墙114和负载平衡器116之间传输的多种已知通信标准。 Data network 101 can support allows the server 102, the client system 104, the switch 106, a variety of known communication standard transmission between the network controller 112, the firewall 114 and 116 of the load balancer. 通信协议典型地在一个或多个层(诸如物理层(层-1)、链路层(层-2)、网络层(层_3)、传输层(层-4)和应用层(层-5))中实施。 Communication protocol is typically one or more layers (such as a physical layer (layer-1), the link layer (layer-2), network layer (layer _3), the transport layer (Layer -4) and application layer (Layer - 5)) are implemented. 在示例性实施例中,网络101支持OpenFlow作为层-2协议。 In an exemplary embodiment, the network 101 supports OpenFlow as a layer-2 protocol. 交换机106可以是还支持层_2和层-3以太网的专用OpenFlow交换机或OpenFlow使能通用交换机。 Switch 106 may be also _2 support layer and Layer-3 Ethernet switches or dedicated OpenFlow OpenFlow enabled general switch.

[0021] 图2描绘支持OpenFlow的图1的交换机106的框图。 Switch block diagram 106 [0021] Figure 2 depicts a support OpenFlow FIG. 1. 交换机106包括交换机逻辑202、拥塞通知逻辑218、安全信道204、协议支持205、流表206、包括各个队列209a_209n的缓冲器208a-208n以及端口210a_210n。 Switch 106 includes a logical switch 202, congestion notification logic 218, a secure channel 204, 205 protocol support, the stream table 206, including 209a_209n each queue buffer 208a-208n and port 210a_210n. 交换机106包括各种计数器或定时器211,例如与队列209a-209n、流表206和/或流表条目相关联的定时器。 Switch 106 includes various counter or timer 211, such as a timer queue 209a-209n, flow table 206 and / or the flow table entries associated with. 交换机逻辑202和拥塞通知逻辑218可以在一个或多个处理电路中实施,其中计算机可读存储介质配置为保持用于交换机逻辑202的指令,以及用于支持交换机106的操作的各种变量和常数。 Switch congestion notification logic 202 and logic 218 may be implemented in one or more processing circuits, wherein the computer-readable storage medium configured to hold 202 to switch logic instructions, as well as to support the operation of the switch 106 variables and constants . 交换机逻辑202在端口210a-210n之间转发分组,如由图1的网络控制器112定义的流。 Switch logic 202 between the ports 210a-210n forwards the packet, as indicated by the network controller 112 of FIG. 1 is defined stream. 可以包括在交换机逻辑202中的拥塞通知逻辑218的一个实施例监视交换机106的拥塞,并且,如果在交换机106检测到拥塞则采取纠正措施。 Switch logic 202 may be included in the congestion notification logic 218 according to an embodiment example congestion monitoring switch 106, and, if congestion is detected in the switch 106 to take corrective measures.

[0022] 安全信道204将交换机106连接到图1的网络控制器112。 [0022] The secure channel 204 to the switch 106 is connected to the network controller 112 of FIG. 安全信道204允许命令和分组经由OpenFlow协议在网络控制器112和交换机106之间通信。 Secure channel 204 via OpenFlow protocol allows communication between the network controller 112 and switch 106 commands and grouping. 安全信道204可以以软件实施为在交换机106内存储的可执行指令。 Secure channel 204 may be implemented as executable software instructions stored in a switch 106. 用于建立对于OpenFlow和其他协议的实施的协议定义的协议细节可以存储在协议支持205中。 For details of the agreement for the establishment of OpenFlow and other implementation of the agreement protocol definition can be stored in the 205 protocol support. 协议支持205可以是定义一个或多个所支持协议格式的软件。 Protocol support 205 may be defined by one or more protocol format software support. 协议支持205可以体现在例如闪速存储器的计算机可读存储介质中,该计算机可读存储介质配置为保持用于由交换机逻辑202执行的指令。 205 may be embodied in protocol support such as a computer-readable storage medium, flash memory, the computer-readable storage medium configured to hold instructions for execution by the switch logic 202. 将协议支持205实施为软件使得能够对于协议的新版本或变体现场更新,并且可以提供OpenFlow作为对于现有传统路由器或交换机的提升。 The protocol supports 205 implemented as software makes it possible for the new version of the protocol or variant field updates, and can provide OpenFlow as routers or switches to an existing tradition of improvement.

[0023] 流表206定义与特定地址、虚拟局域网或交换机端口相关联的支持连接类型,并由交换机用来处理在交换机接收到的数据流。 [0023] the flow table 206 is defined with a specific address, or virtual LAN switch ports support connection types associated with the switch by the switch for processing the received data stream. 数据流是以某些方式、例如以源和/或目的地或由所选择的标准限定的组合的数据分组序列。 The data stream is in some way, such as data packet sequence to standard source and / or destination or defined by the selected combination. 基于流表206,每个数据流可以映射到一个端口及相关联的队列。 Based on the flow table 206, each data stream can be mapped to a port and queue associated. 例如,数据流可以定义为匹配特定报头格式的所有分组。 For example, the data stream can be defined as all packets that match a specific header format.

[0024] 流表206中的每个条目211可以包括与特定流相关联的一个或多个规则212、动作214和统计216。 [0024] the flow table 206 for each entry 211 may include a flow with a particular one or more rules associated with 212, 214 and Statistics 216 action. 规则212定义每个流,并且可以由分组报头确定。 Rule 212 defines each stream, and can be determined by the packet header. 动作214定义如何处理分组。 Action 214 define how packets. 统计216追踪诸如每个流的大小(例如,字节的数目)、每个流的分组的数目、以及自从流的最后匹配分组或连接时间起的时间的信息。 Statistics such as the track size of each stream 216 (e.g., number of bytes), the number of packets of each stream, and since the last connection or a packet flow matches the time information from the time. 动作的示例包括用于转发流的分组到一个或多个特定端口210a-210n(例如,单播或多播)、封装并且转发流的分组到图1的网络控制器112、以及丢弃流的分组的指令。 Example actions include forwarding for a packet stream to one or more specific ports 210a-210n (e.g., unicast or multicast), encapsulates and forwards the packet stream to the network controller 112 of Figure 1, and packet discarding stream instructions. 流表206中的条目211可以经由安全信道204由图1的网络控制器112添加或移除。 Flow table 206 entries 211 can be removed or added via a secure channel 204 by the network controller 112 of FIG. 图1的网络控制器112可以预先填充流表206中的条目211。 The network controller 112 of Figure 1 can be expressed 206 entries in 211 pre-filled stream. 此外,交换机106可以在接收流而在流表206中没有对应条目211的情况下请求从网络控制器112创建条目211。 In addition, the switch 106 may be without a corresponding entry in the case of 211 requests from the network controller 112 creates an entry 211 in the receiving stream flow table 206.

[0025] 在分组在端口210a-2 1n之间发送时,缓冲器208a_208n提供用于流在队列209a-209n中的临时存储。 [0025] When packets between ports 210a-2 1n transmit buffer 208a_208n provided for temporarily storing the stream in the queue 209a-209n. 在无损配置中,在网络拥塞时,不是丢弃分组,而是由缓冲器208a-208n临时存储分组,直到图1中的相关联端口210a_210n和链路105可用。 In lossless configuration, when the network is congested, packets are not discarded, but by the temporary storage buffer 208a-208n packet until FIG. 1 and associated port 210a_210n link 105 is available. 缓冲器208a-208n的每个可以与特定端口、流或子网络相关联。 Each buffer 208a-208n may be associated with a particular port, or a sub-network traffic. 缓冲器208a_208n的每个是逻辑分离的,但是不需要物理上独立。 Each logical buffer 208a_208n separate, but need not be physically independent. 因此,当缓冲器208a-208n之一满时,不会不利地影响交换机106中其他缓冲器208a-208n的性能。 Thus, when one of the buffers 208a-208n full, without adversely affecting the performance of the switch 106 in the other buffers 208a-208n.

[0026] 例如,在OpenFlow交换机中,将每个端口210a_21n连接到一个相应的队列209a-209n上。 [0026] For example, in OpenFlow switch, each port 210a_21n connected to a corresponding queue 209a-209n. 在操作中,当交换机106接收分组时,交换机106尝试通过将字段(称之为“匹配字段”)与每个流表206的流条目中的对应字段进行比较来匹配该分组。 In operation, when the switch 106 receives a packet, the switch 106 attempts a field (called "matching field") are compared with each stream flow entry table 206 in the corresponding field to match the packet. 例示性的匹配字段包括进入端口和元数据字段,以及如在下面参考图3所描述的报头字段。 Match fields Exemplary including access to ports and metadata fields as well as in the following with reference to FIG. 3 described in the header field. 在一个实施例中,从第一个列表开始匹配,可以继续到其他的流表。 In one embodiment, the first from the beginning of the list match, you can continue to other flow table.

[0027] 如果未找到匹配,交换机106可以基于交换机配置执行一个动作,例如,可以将分组转发到控制器,或者丢弃。 [0027] If no match is found, the switch 106 can switch configured to perform an action based on, for example, you can forward the packet to the controller, or discarded. 如果分组与流表中的流条目匹配,则基于流条目、例如动作字段214执行对应的指令集合。 If the packet flow with the flow table entry matches, flow-based items, such as action field 214 executes the corresponding instruction set. 例如,当分组与一个包括输出动作的流条目匹配时,分组被转发到在该流条目中指定的端口210a-210n中的一个。 For example, when a packet with a flow entry includes output action match, the packet is forwarded to the specified stream in the entry of a port 210a-210n.

[0028] 在一个实施例中,将分组转发到端口包括将流中的分组匹配到一个连接到该端口的队列。 [0028] In one embodiment, the packet is forwarded to the port comprises a stream of packets matching a connection to the queue to the port. 根据该队列的配置(例如,最小速率)来对待这样的流。 To treat such stream depending on the configuration (for example, the minimum rate) of the queue.

[0029] 图3描绘可以在实施例中使用的OpenFlow流交换定义300的示例。 [0029] FIG. 3 depicts OpenFlow can be used in the exemplary embodiment, stream switching definitions 300. OpenFlow流交换定义300是定义流(这里也称为“数据流”)的分组报头,并且包括多个字段。 OpenFlow stream switching definitions 300 is defined flow (also referred to as "data flow") packet header, and includes a plurality of fields. 在该示例中,交换定义300是包括多至11个元组或字段的流报头;然而,不是所有元组都需要定义,这取决于特定的流。 In this example, the exchange 300 is defined to include multi-stream header 11 yuan group or field; however, not all tuples need to be defined, depending on the particular stream. 在图3的示例中,OpenFlow流交换定义300包括用于标识进入端口302、以太网目的地地址304、以太网源地址306、以太网类型308、虚拟局域网(VLAN)优先级310、VLAN标识符312、因特网协议(IP)源地址314、IP目的地地址316、IP协议318、传输控制协议(TCP)/用户数据报协议(UDP)源端口320TCP/UDP目的地端口322、前向拥塞旗标324以及后向拥塞旗标326的元组。 In the example of FIG. 3, the stream switching is defined as OpenFlow 300 including information for identifying an access port 302, a destination Ethernet address 304, a source Ethernet address 306, an Ethernet type 308, Virtual LAN (VLAN) priority 310, VLAN identifier 312, an Internet protocol (IP) source address 314, IP destination address 316, IP protocol 318, transmission control protocol (TCP) / user datagram protocol (UDP) source port 320TCP / UDP destination port 322, a forward congestion flag 324, and after a tuple to congestion flag 326. 以太网目的地地址304可以代表在传统交换和路由中使用的层-2以太网硬件地址或介质存取控制(MAC)地址。 Ethernet destination address 304 may represent a layer used in conventional switching and routing -2 Ethernet hardware address or Media Access Control (MAC) address. IP目的地地址316可以代表在传统交换和路由中使用的层-3IP地址。 IP destination address 316 may represent a layer -3IP address used in traditional switching and routing. 可以为OpenFlow流交换定义300中的元组的任何组合来定义流交换,将特定组合的元组用作密钥。 You can define any combination of flow exchange 300 tuples of OpenFlow defined flow exchange, a specific combination of tuples as keys. 例如,通过对于聚合MAC-子网、IP-子网、端口、VLAN标识符等的精确匹配或通配符匹配,可以在图2的规则212中定义流。 For example, by the polymerization MAC- subnet, IP- subnet, port, VLAN identifiers such as exact matches or wildcard matching, you can define the flow rule 212 of FIG. 在一个实施例中,前向拥塞旗标324用于指示,对于与该条目相关联的数据流来说,数据源发送数据的速率比交换机能够处理数据的速率更快。 In one embodiment, the forward congestion flag 324 for indicating, for the entry associated with the data stream, the data transmission rate than the data source can switch faster data processing speed. 在一个实施例中,后向拥塞旗标324用于指示数据流的数据请求的目的地请求数据的速率比交换机能够处理数据的速率更快。 In one embodiment, a backward congestion flag 324 for indicating the data rate at which the data stream of the requested destination switch request data than can handle data faster.

[0030] 图4描绘根据一个实施例用于在网络中的交换机执行拥塞管理的过程。 [0030] FIG. 4 depicts a process according to the switch performs congestion management for example in the network implementation. 在一个实施例中,图4所示的过程由拥塞通知逻辑218执行。 In one embodiment, the process shown in FIG. 4 by the congestion notification logic 218 executed. 在方框402,监视交换机处的拥塞状态。 At block 402, the congestion status monitoring at the switch. 在一个实施例中,通过检查位于交换机的缓冲器208a-208n以及队列209a_209n的全部或者一个子集来执行该监视。 In one embodiment, or a subset of the overall inspection by running these sits on the switch buffer queue 208a-208n and the 209a_209n. 在OpenFlow网络中,例如可以由流表206将每个数据流匹配到一个相关联的缓冲器或队列。 In OpenFlow network, for example, 206 will match the flow table for each data stream to a buffer or queue associated. 在一个实施例中,当在交换机接收到数据流的一个数据分组时,检查与该数据流相关联的一个或多个队列,以确定其是否包含多于条目的指定数目。 In one embodiment, when the switch receives a data stream of data packets, check with the data stream associated with one or more queues to determine if more than the specified number of entries it contains. 条目的指定数目可以用一个实际数目和/或者用满队列的百分比来表示。 Specifies the number of entries can be a real number and / or percentage of full queue to represent. 当确定队列具有超过条目的指定数目时,在与该数据流相关联的报头设置前向拥塞旗标324或者后向拥塞旗标326(例如,基于队列存储的是数据还是数据请求)。 When it is determined that has more than the specified number of queue entries when, before the data stream associated with the header to set the congestion flag 324 or backward congestion flag 326 (for example, a queue based on the stored data or data request). 在另一个实施例中,周期性地检查队列209a-209n的全部或者一个子集,并且,基于确定队列包含超过条目的指定数目时(该数目对于不同的队列可以是不同的),确定哪个数据流与该队列相关联,并在流表208中的用于该数据流的条目中(例如,报头或规则212)设置旗标(例如,前向拥塞旗标324,后向拥塞旗标326)。 In another embodiment, periodically checking the queues 209a-209n, or a subset of, and, based queue contains more than a specified number of entries is determined (for the number of different queues may be different), which determines the data flow and the queue is associated, and the entry for the data stream (for example, a header or rule 212) setting a flag (for example, forward congestion flag 324, a backward congestion flag 326) in flow table 208 .

[0031] 在一个实施例中,交换机(例如连接到服务器、客户机系统、控制器、另一个交换机、或连接到网络的其他部件)是OpenFlow交换机,网络是OpenFlow网络。 [0031] In one embodiment, the switch (such as other components connected to the server, the client system, controller, another switch, or connect to the network) is OpenFlow switches, network OpenFlow network. 在一个实施例中,源和目的地交换机(例如连接到服务器、客户机系统、控制器、另一个交换机、或连接到网络的其他部件)可以包括OpenFlow使能交换机,也可以包括非OpenFlow使能交换机,或同时包括二者。 In one embodiment, the source and destination switches (such as other components connected to the server, the client system, controller, another switch, or connect to a network) may include the implementation of OpenFlow enabled switch, can also include non-OpenFlow enabled switch, or include both.

[0032] 在方框404,确定在交换机处是否有拥塞。 [0032] In block 404, it is determined whether there is congestion at the switch. 在一个实施例中,通过检查与数据流相关联的旗标(例如,前向拥塞旗标324,后向拥塞旗标326)来进行确定。 In one embodiment, by examining the data stream associated with the flag (for example, forward congestion flag 324, a backward congestion flag 326) to be determined. 在一个实施例中,在每一次(或者每X次)在交换机处接收到数据流的一个分组时检查旗标。 In one embodiment, every (or every X times) receives a data packet stream at the check flag at the switch. 在另一个实施例中,周期性地检查旗标。 In another embodiment, periodically check the flag. 在又一个实施例中,在设置旗标时发送通知。 In yet another embodiment, a notification is sent when you set the flag.

[0033] 在方框406,确定拥塞是否与从一个源接收的数据有关。 [0033] At block 406, it is determined whether congestion received from a data source related. 在一个实施例中,当前向拥塞旗标324被设置时,拥塞与从一个源接收的数据有关。 In one embodiment, the current congestion flag is set to 324, a congestion received from the relevant data source.

[0034] 如果在方框406确定拥塞与从一个源接收的数据有关,执行方框408。 [0034] If it is determined at block 406 and congestion data received from a source related to the implementation of block 408. 或者,如果在方框406确定拥塞与从一个源接收的数据无关,执行方框410。 Alternatively, if the congestion is determined from a source independent of the data received at block 406, block 410 executed.

[0035] 在方框408,向源发送一个消息,请求源减慢向交换机的数据传输。 [0035] At block 408, send a message to the source, it slows down data transfer request source to the switch. 在一个实施例中,一旦将该消息发送给源,交换机就继续监视拥塞状态。 In one embodiment, once the message is sent to the source, the switch will continue to monitor the state of congestion. 如果确定在交换机处不再存在该数据流的拥塞,则向源发送一个消息,请求源以一个更快速率发送数据(例如,以与之前相同的速率,或者其他速率)。 If it is determined at the switch for the data stream is no longer congestion, it sends a message to the source, requesting a source to send data faster rate (e.g., in the same rate as before, or other rate). 处理然后在方框410继续。 Processing then continues at block 410.

[0036] 在方框410,确定拥塞是否与从一个目的地接收的数据请求有关。 [0036] In block 410, it is determined whether the congestion request from one destination to receive data related. 在一个实施例中,当后向拥塞旗标326被设置时,拥塞与从一个目的地接收的数据请求有关。 In one embodiment, when the post is set to congestion flag 326, congestion and destination data received from a related request.

[0037] 如果在方框410确定拥塞与从一个目的地接收的数据请求有关,执行方框412。 [0037] If it is determined at block 410 received from congestion and a request destination data related to the implementation of block 412. 或者,如果在方框410确定拥塞与从一个目的地接收的数据请求无关,流程在方框402继续。 Alternatively, if it is determined at block 410 received from the congested destination of a data request independent of flow continues at block 402.

[0038] 在方框412,向目的地发送一个消息,请求目的地减慢向交换机的数据请求传输。 [0038] At block 412, send a message to the destination, a request to slow down the destination data transmission request switch. 在一个实施例中,一旦将该消息发送给目的地,交换机就继续监视拥塞状态。 In one embodiment, once the message is sent to the destination, the switch will continue to monitor the state of congestion. 如果确定在交换机处不再存在该数据流的拥塞,则向目的地发送一个消息,请求目的地以一个更快速率发送数据请求(例如,以与之前相同的速率,或者其他速率)。 If it is determined at the switch for the data stream is no longer congestion, it sends a message to the destination, the destination request to a request to send data faster rate (e.g., in the same rate as before, or other rate). 处理然后在方框410继续。 Processing then continues at block 410.

[0039] 在一个实施例中,将请求源或目的地减慢(或加速)数据或数据分组的传输的一个或多个消息插入到一个物理帧中,并通过网络发送到源(例如,交换机或者连接到交换机的部件)。 [0039] In one embodiment, the source of the request or slow down (or speed) of data or a destination of transmission of data packets or a plurality of messages into the physical frame, and transmitted to the source (e.g., via a network switch or to a member of the switch). 在一个实施例中,该物理帧是前向显式拥塞通知(FECN)或后向显式拥塞通知(BECN)帧。 In one embodiment, the physical frame is a forward explicit congestion notification (FECN) notification (BECN) frames to explicit congestion or later. 因为FECN和BECN帧是控制帧,可以由网络和/或在接收交换机处给其更高的优先级,因此以比数据或数据请求帧更高的优先级(例如,在其之前)进行处理,从而导致对这些消息的延迟更低。 Because FECN and BECN frame is a control frame may be received by the network and / or at the switch to its higher priority, so the data or data requests than higher priority frame (for example, prior to its) processing, resulting in lower latency for these messages. 通过利用用于数据的虚拟平面和用于控制的另外的虚拟平面,在SDN中可以实现不同的优先级。 By using virtual plane for data and another for control of the virtual plane in SDN can be achieved in different priorities.

[0040] 在一个实施例中,执行监视和旗标设置的逻辑(例如,方框402)与确定是否发送消息以及发送消息的逻辑(例如,方框404 - 412)相互独立地执行。 [0040] In one embodiment, the monitoring and implementation of logic flag is set (for example, block 402) and determines whether to send a message and sending logical message (for example, block 404--412) executed independently of each other.

[0041 ] 在一个实施例中,监视步骤设置一个旗标,表明交换机可以以一个更快速率处理进来的数据或请求(例如,队列低于一个阈值)。 [0041] In one embodiment, the monitoring step to set a flag indicating that the switch can handle a faster rate of incoming data or request (for example, a queue is below a threshold value). 在这种情况下,交换机可以请求源和/或目的地以比当前速率更快的速率发送数据。 In this case, the switch can request the source and / or destination faster rate than the current rate of transmission data.

[0042] 技术效果包括在网络(例如,OpenFlow网络)中的交换机处实现流控制和拥塞管理的能力。 [0042] Technical effects include the ability to network (for example, OpenFlow network) switches in place to achieve flow control and congestion management.

[0043] 所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。 [0043] Those skilled in the art that various aspects of the present invention may be implemented as a system, method or computer program product. 因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。 Thus, the various aspects of the present invention may be embodied in the following forms, namely: an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining hardware and software, here can be referred to as "circuit", "module" or "system." 此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。 Additionally, in some embodiments, various aspects of the present invention can also be implemented as one or more computer-readable media in the form of a computer program product, the computer-readable medium having computer-readable program code.

[0044] 可以采用一个或多个计算机可读介质的任意组合。 [0044] can be used in any combination of one or more computer-readable media. 计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。 Computer-readable media may be a computer readable signal medium or a computer readable storage medium. 计算机可读存储介质例如可以是一一但不限于一一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。 The computer-readable storage medium may be-but are not limited to eleven electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. 计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(R0M)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。 A computer-readable storage medium More specific examples (a non-exhaustive list) comprising: an electrical connection having one or more wires connected to a portable computer diskette, a hard disk, a random access memory (RAM), read only memory (R0M), erasable programmable read-only memory (EPR0M or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing. 在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。 In this document, a computer-readable storage medium may be any tangible medium comprising or storing the program, the program may be the instruction execution system, apparatus, or device used or used in conjunction therewith.

[0045] 计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。 [0045] Computer readable medium may include a signal in baseband or as part of the data carrier signal transmission, wherein the carrying computer-readable program code. 这种传播的数据信号可以采用多种形式,包括一一但不限于一一电磁信号、光信号或上述的任意合适的组合。 This data signal propagation can take many forms, including-but not limited to combinations eleven suitable electromagnetic signals, optical signals or any of the foregoing. 计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。 Computer readable signal medium may be any computer-readable medium further computer readable storage medium other than the computer readable medium may be transmitted, propagate, or transport instructions for execution by a system, apparatus, or device or in connection with the use of the program used .

[0046] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一一但不限于一一无线、有线、光缆、RF等等,或者上述的任意合适的组合。 [0046] Computer program code readable medium may include any suitable transmission medium, including but not limited to eleven eleven wireless, wireline, optical fiber cable, the RF, etc., or any suitable combination of the above.

[0047] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。 [0047] can be any combination of one or more programming languages to write a computer program code for carrying out operations of the present invention, the object-oriented programming language includes a programming language such as Java, Smalltalk, C ++, etc., also it includes a conventional procedural programming languages, such as a "C" programming language or similar language. 程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。 Program code can be entirely on the user's computer, partly on the user computer to perform as a stand-alone software package, partly partly on a remote computer on the user's computer or entirely on the remote computer or server. 在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。 In the case involving the remote computer, the remote computer can be any kind of network - including a local area network (LAN) or wide area network (WAN) - to connect to the user's computer, or can be connected to an external computer (for example, through use of the Internet service provider Internet connection).

[0048] 这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。 [0048] Here reference method according to an embodiment of the present invention, a flowchart apparatus (systems) and computer program products and / or block diagrams describing the present invention. 应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。 It should be appreciated, as well as combinations of the flowchart and / or block diagram block each flowchart and / or block diagrams of various blocks, can be implemented by computer program instructions. 这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。 These computer program instructions may be provided to a processor general purpose computer, special purpose computer, or other programmable data processing apparatus, thereby producing a machine, such that the computer program instructions executed by a processor in a computer or other programmable data processing apparatus when , resulting in a flow chart and / or a block diagram of one or more boxes specified function / operation of the device.

[0049] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。 [0049] Also These computer program instructions can be stored on computer readable media, the instructions cause the computer, other programmable data processing apparatus, or other devices in a particular manner, so that, in the storage medium readable instructions on a computer produce including flow chart / block diagram or in one or more blocks and functions specified / operation instruction manufactured goods (article of manufacture).

[0050] 也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。 [0050] The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices, so that the implementation of a series of steps on the computer, other programmable data processing apparatus, or other devices to produce a computer-implemented process, such that the instructions on the computer or other programmable apparatus capable of providing flow chart and / or block diagram block specified function and / or operation of the process.

[0051] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。 [0051] flowcharts and block diagrams in the figures show the system according to the present invention, a plurality of embodiments, the architecture may be implemented method and computer program product, functions and operations. 在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。 In this regard, the flowchart or block diagrams may represent a portion of each block in a module, segment or code, a module, segment, or portion of the program code for implementing one or more predetermined logical function executable instructions. 也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。 It should also be noted that in some alternative implementations, the functions noted in the block may be different from the figures marked the order of occurrence. 例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。 For example, two consecutive blocks may actually be executed substantially concurrently, they may also be performed in reverse order, depending on the functionality involved it may be. 也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。 It should also be noted that, as well as combinations of the block diagrams and / or flowchart each block of the block diagrams and / or flowchart block, you can use a dedicated hardware-based systems to achieve the implementation of the provisions of the function or operation or you can use a dedicated hardware and computer instructions to achieve.

[0052] 在此使用的术语仅是为了描述特定实施例,且不旨在限制本发明。 [0052] The terminology used herein is for describing particular embodiments only examples and not intended to limit the present invention. 如在此使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外清楚地指明。 As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. 还将理解,当在说明书中使用时,术语“包括”和/或“包含”指明存在所述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件和/或组件。 Will also be appreciated that when used in this specification, the term "includes" and / or "comprising" specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, and / or components.

[0053] 所附权利要求书中的所有装置或步骤加功能元件的相应结构、材料、操作以及等价物,旨在包括用于结合如特别要求保护的其他所要求保护的元件来执行所述功能的任何结构、材料或操作。 [0053] the appended claims all means or step plus function elements corresponding structures, materials, operations, and equivalents thereof, is intended to include such particular claimed for binding other claimed elements to perform the functions of any structure, materials, or operations. 呈现本发明的说明是为了示出和描述的作用,但不是穷尽性地或将本发明限制于所公开的形式。 Presentation is to illustrate the present invention shown and described the role, but is not intended to be exhaustive or to limit the invention to the form disclosed. 许多修改和变化对本领域普通技术人员来说是明显的,且不脱离本发明的范围。 Many modifications and variations are those of ordinary skill in apparent without departing from the scope of the invention. 选择和描述实施例是为了最佳地解释本发明的原理和实际应用,并使得本领域普通技术人员能针对适于考虑的特定用途的具有各种修改的各种实施例理解本发明。 Chosen and described embodiments in order to best explain the principles and practical application of the present invention and enable those skilled in the art that various modifications can have various suitable for the particular use contemplated embodiment of the understanding of the present invention.

[0054] 这里所示的流程图仅仅是示例。 [0054] The flowchart shown here are only examples. 在不偏离本发明的精神的情况下,还存在这里所描述的流程图或步骤(或操作)的许多变型。 In the present invention without departing from the spirit of the case, there is the flowchart or step described herein (or operations) of many variations. 例如,这些步骤可以以不同的顺序执行,或者,可以增加、删除或修改这些步骤。 For example, these steps can be executed in a different order, or you can add, delete, or modify these steps. 所有这些变型都被认为是所要求保护的发明的一部分。 All of these variations are considered a part of the claimed invention.

[0055] 虽然已经描述了本发明的优选实施例,现在以及未来的本领域技术人员将会理解的是,可以作出落入权利要求的范围内的各种改进和增强。 [0055] Although the present invention has been described in a preferred embodiment of the present and future skilled in the art will appreciate that various modifications may be made within the scope of the appended claims and enhanced. 这些权利要求应该用于维护对于所描述的发明的适当保护。 These claims should be used for the maintenance of the described invention adequate protection.

Classifications
International ClassificationH04L12/26
Cooperative ClassificationH04L47/10, H04L47/215, H04L47/21, H04L47/12, H04L47/25, H04L47/11
Legal Events
DateCodeEventDescription
4 Nov 2015C06Publication
2 Dec 2015C10Entry into substantive examination