A kind of method, equipment and computer readable storage medium obtaining queue length
Technical field
The present invention relates to fields of communication technology more particularly to a kind of method, equipment and computer for obtaining queue length can
Read storage medium.
Background technique
In software defined network (SDN, Software Defined Network), the port branch of OpenFlow interchanger
Addition Priority Queues is held, as shown in Figure 1, it is generally the case that the number of queues of each OpenFlow switch port is 3, individual queue
Allow to distribute different bandwidth, all queue bandwidth summations are no more than port total bandwidth, and the size of queue bandwidth will be determined directly
The ability of queue forwarding data.From figure 1 it appears that in data plane, whenever thering are new data packets to reach interchanger,
Interchanger matches the destination address of data packet header with the flow entry in flow table (routing table in similar legacy network devices)
Domain is matched one by one, once successful match, data packet is directly exported the behavior aggregate specified according to flow entry
(output), it joins the team (set_queue), Hong Fan (flood), abandon the operation such as (drop).If it is enqueue operations, then data packet
It include precedence information in head, the data packet of different priorities enters the queue of different bandwidth, to guarantee the number of high priority
Large bandwidth is still enjoyed in network congestion according to packet, keeps lower Forwarding Delay.
Based on this, in order to provide better service quality, port bandwidth resource, OpenFlow switch port are made full use of
The Bandwidth Allocation Policy of upper each queue is particularly important.It is known that the basis of Bandwidth Allocation Policy is that queue is current
Queuing delay, and the current queuing delay of queue obtains according to the following formula (1), i.e. the current queuing delay t etc. of queue
In the current average queue length AvgQ of queue1With current queue bandwidth bw1Ratio;
T=AvgQ1/bw1 (1)
Wherein, the current average queue length AvgQ of queue1Shown in calculation formula such as following formula (2):
AvgQ1=(1-wq) * AvgQ0+wq*qLen1 (2)
In formula, AvgQ0For the average queue length of queue previous moment, qLen1For the current queue length of queue (i.e. real-time team
Column length), wq is weight, for measuring real-time queue length qLen1The average queue length AvgQ current to queue1Influence
Degree, size is depending on real network situation and system performance.
As can be seen that seeking the basis of the current average queue length of queue is the current queue of queue from above formula (2)
Length, that is, real-time queue length qLen1.However, OpenFlow agreement, which is not provided with, directly acquires real-time queue length
Interface method, real-time queue length be by being calculated indirectly, it is real in existing real-time queue length calculation method
When queue length qLen1(3) obtain according to the following formula, i.e. real-time queue length qLen1Enter equal to a certain moment is ended
The accumulated bytes number in_Byte of queue1(accumulated bytes of joining the team number) subtracts the accumulated bytes number out_ of synchronization dequeue
Byte1(going out team's accumulated bytes number).
qLen1=in_Byte1-out_Byte1 (3)
By above formula (3) it is found that existing real-time queue length calculation method, it is required that the cumulative data amount and team is tired out of joining the team
The amount of counting must be it is synchronous obtain, i.e., must obtain join the team cumulative data amount and team's cumulative data amount out in synchronization.
It but in practical applications, is that not can guarantee the data of joining the team of going out of acquisition be synchronization, as shown in Fig. 2, in one query
In, join the team cumulative data amount and the inquiry of team's cumulative data amount out including queue, from the point of view of timeline shown in figure, inquiry
Cumulative data amount of joining the team and the out time of team's cumulative data amount inevitably have that the regular hour is poor, lead to the accumulative total of joining the team of inquiry
It is bigger than actual cumulative data amount of joining the team according to measuring, alternatively, inquiry goes out team's cumulative data amount than actual team's cumulative data amount out
It is small, so that the real-time queue length qLen actually obtained1With certain error.In addition, being had when congestion occurs in queue
Partial data packet loss, and at this time when calculating real-time queue length, due to the in_Byte in above formula (3)1And out_Byte1It is
By the end of the aggregate-value at a certain moment, therefore lost part can be also calculated in the difference of disengaging queue;Also, with the time
Accumulation number of dropped packets be it is cumulative, the error that will so will lead to the real-time queue length of acquisition is increasing.
By three above formula it is found that if real-time queue length qLen1Obtaining inaccuracy will result directly in OpenFlow
The current queuing delay counting loss of switch port queue will be unable to effectively utilize Bandwidth Allocation Policy point on this basis
Network service quality is influenced with bandwidth resources so as to cause bandwidth resources utilization rate degradation.
Summary of the invention
In order to solve the above technical problems, an embodiment of the present invention is intended to provide it is a kind of obtain the method for queue length, equipment and
Computer readable storage medium, it is intended to more accurate real-time queue length can be obtained, to improve the utilization of bandwidth resources
Rate and network service quality.
The technical scheme of the present invention is realized as follows:
In a first aspect, the embodiment of the invention provides a kind of methods for obtaining queue length, this method comprises:
Obtain join the team data increment and the dequeue data increasing of OpenFlow switch port queue in the first preset time period
Amount;Wherein, first preset time period refers to the time span between current time and previous moment;
Using in first preset time period OpenFlow switch port queue join the team data increment and go out
The queue length of the OpenFlow switch port queue in team's data increment and the second preset time period, described in calculating
The real-time queue length of OpenFlow switch port queue;Wherein, when second preset time period is described first default
Between section previous time period.
In the above scheme, the data of joining the team for obtaining OpenFlow switch port queue in the first preset time period
Increment and dequeue data increment, specifically include:
Joining the team for OpenFlow switch port queue described in current time and previous moment is obtained cumulative data amount and to go out
Team's cumulative data amount;
Joining the team for the OpenFlow switch port queue obtained according to the current time and previous moment is accumulative
Data volume and out team's cumulative data amount calculate separately the OpenFlow switch port queue in first preset time period
Join the team data increment and dequeue data increment.
In the above scheme, the OpenFlow obtained according to the current time and previous moment exchanges generator terminal
Join the team cumulative data amount and the team's cumulative data amount out of mouthful queue, calculate separately in first preset time period described in
Join the team data increment and the dequeue data increment of OpenFlow switch port queue, specifically include:
The cumulative data amount of joining the team for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating the cumulative data amount of joining the team of the OpenFlow switch port queue of previous moment acquisition
State the data increment of joining the team of the OpenFlow switch port queue in the first preset time period;And
The team's cumulative data amount that goes out for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating team's cumulative data amount out of the OpenFlow switch port queue of previous moment acquisition
State the dequeue data increment of the OpenFlow switch port queue in the first preset time period.
In the above scheme, described to utilize the OpenFlow switch port queue in first preset time period
The team of the OpenFlow switch port queue in data increment and dequeue data increment and the second preset time period of joining the team
Column length calculates the real-time queue length of the OpenFlow switch port queue, specifically includes:
By the data increment of joining the team of the OpenFlow switch port queue in first preset time periodWith dequeue data incrementAnd second the OpenFlow in preset time period exchange generator terminal
The queue length of mouth queueIt substitutes into following formula (4) and the real-time of the OpenFlow switch port queue is calculated
Queue length
In the above scheme, the method also includes:
By the average queue length of second preset time period OpenFlow switch port queue calculatedWith the real-time queue length of the OpenFlow switch port queueFollowing formula (5) is substituted into be calculated
The current average queue length of the OpenFlow switch port queue
In formula, wq is weight, and value range is (0,1);
Obtain the current queue bandwidth of the OpenFlow switch port queue;
By the current average queue length of the OpenFlow switch port queueIt is handed over the OpenFlow
It changes planes the current queue bandwidth of port queueIt substitutes into following formula (6) and OpenFlow switch port team is calculated
The current queuing delay t of column:
It is the OpenFlow switch port according to the current queuing delay of the OpenFlow switch port queue
Bandwidth is redistributed in queue.
Second aspect, the embodiment of the invention provides a kind of device for obtaining queue length, described device includes: that data increase
Amount obtains module and real-time queue length computation module;Wherein,
The data increment obtains module, is configured to obtain OpenFlow switch port queue in the first preset time period
Join the team data increment and dequeue data increment;Wherein, first preset time period refer to current time and previous moment it
Between time span;
The real-time queue length computation module is configured to hand over using OpenFlow described in first preset time period
The OpenFlow exchange in join the team data increment and dequeue data increment and the second preset time period of port queue of changing planes
The queue length of machine port queue calculates the real-time queue length of the OpenFlow switch port queue;Wherein, described
Two preset time periods are the previous time period of first preset time period.
In the above scheme, the data increment obtains module, specifically includes: data query submodule and data increment meter
Operator module;Wherein,
The data query submodule is configured to obtain OpenFlow switch port described in current time and previous moment
Join the team cumulative data amount and the team's cumulative data amount out of queue;
The data increment computational submodule was configured to according to the current time and previous moment acquisition
Join the team cumulative data amount and the team's cumulative data amount out of OpenFlow switch port queue, calculate separately described first it is default when
Between in section the OpenFlow switch port queue join the team data increment and dequeue data increment.
In the above scheme, the data increment computational submodule, concrete configuration are as follows:
The cumulative data amount of joining the team for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating the cumulative data amount of joining the team of the OpenFlow switch port queue of previous moment acquisition
State the data increment of joining the team of the OpenFlow switch port queue in the first preset time period;And
The team's cumulative data amount that goes out for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating team's cumulative data amount out of the OpenFlow switch port queue of previous moment acquisition
State the dequeue data increment of the OpenFlow switch port queue in the first preset time period.
In the above scheme, the real-time queue length computation module, concrete configuration are as follows:
By the data increment of joining the team of the OpenFlow switch port queue in first preset time periodWith dequeue data incrementAnd second the OpenFlow in preset time period exchange generator terminal
The queue length of mouth queueIt substitutes into following formula (7) and the real-time of the OpenFlow switch port queue is calculated
Queue length
In the above scheme, described device further includes queuing delay computing module and policy management module;Wherein,
The queuing delay computing module is configured to hand over second preset time period OpenFlow calculated
It changes planes the average queue length of port queueWith the real-time queue length of the OpenFlow switch port queueIt substitutes into following formula (8) and the current average queue length of the OpenFlow switch port queue is calculated
In formula, wq is weight, and value range is (0,1);
The queuing delay computing module is configured to obtain the current queue band of the OpenFlow switch port queue
It is wide;
The queuing delay computing module is configured to the average queue that the OpenFlow switch port queue is current
LengthWith the current queue bandwidth of the OpenFlow switch port queueFollowing formula (9) is substituted into calculate
To the current queuing delay t of the OpenFlow switch port queue:
The policy management module, be configured to be according to the current queuing delay of the OpenFlow switch port queue
Bandwidth is redistributed in the OpenFlow switch port queue.
The third aspect, the embodiment of the invention provides a kind of equipment for obtaining queue length, the equipment includes: storage
Device, processor and it is stored in the computer program that can be run on the memory and on the processor;Wherein, the processing
Device realizes the above-described method and step for obtaining queue length when executing described program.
Fourth aspect, the embodiment of the invention provides a kind of computer readable storage medium, the computer-readable storage
Media storage has one or more program, and one or more of programs can be executed by one or more processor, with
Realize the above-described method and step for obtaining queue length.
The embodiment of the invention provides a kind of methods for obtaining queue length, and in/out queue is creatively utilized in this
Data increment recursively calculates the current queue size of the OpenFlow switch port queue, that is, real-time queue is long
Degree need to only guarantee join the team data increment and dequeue data increment since this method is without guaranteeing that queue passes in and out data while property
For the increment in same time length;Meanwhile by packet loss generate error be no longer aggregate-value, but it is a certain default when
Between monodrome in section, so if the period of setting is sufficiently small, which be can be ignored.So using of the invention real
The method for applying a kind of acquisition real-time queue length of example offer, can obtain more accurate real-time queue length, so that
Subsequent Bandwidth adjustment strategy plays more preferably effect, effectively improves the utilization rate of bandwidth resources;Meanwhile in queue congestion
When, congestion condition can be timely found, to provide more quality services for user.In addition, the embodiment of the present invention also mentions
A kind of equipment and computer readable storage medium for obtaining queue length is supplied.
Detailed description of the invention
Fig. 1 is a kind of OpenFlow switch port queue schematic diagram provided in an embodiment of the present invention;
Fig. 2 is a kind of data query schematic diagram provided in an embodiment of the present invention;
Fig. 3 is a kind of method schematic diagram for obtaining real-time queue length provided in an embodiment of the present invention;
Fig. 4 be a kind of queue length in real-time queue length and the second preset time period provided in an embodiment of the present invention it
Between relation schematic diagram;
Fig. 5 is another method schematic diagram for obtaining real-time queue length provided in an embodiment of the present invention;
Fig. 6 is a kind of method signal for obtaining join the team data increment and dequeue data increment provided in an embodiment of the present invention
Figure;
Fig. 7 is a kind of apparatus structure schematic diagram for obtaining real-time queue length provided in an embodiment of the present invention;
Fig. 8 is another apparatus structure schematic diagram for obtaining real-time queue length provided in an embodiment of the present invention;
Fig. 9 is the apparatus structure schematic diagram of another acquisition real-time queue length provided in an embodiment of the present invention;
Figure 10 is a kind of workflow schematic diagram of device for obtaining real-time queue length provided in an embodiment of the present invention;
Figure 11 is a kind of method schematic diagram of unit/terminal loopback test provided in an embodiment of the present invention;
Figure 12 is a kind of device structure schematic diagram for obtaining real-time queue length provided in an embodiment of the present invention.
Specific embodiment
Following will be combined with the drawings in the embodiments of the present invention, and technical solution in the embodiment of the present invention carries out clear, complete
Site preparation description.
Embodiment one
As shown in figure 3, the figure shows a kind of method for obtaining queue length provided in an embodiment of the present invention, it can from figure
To find out, this method mainly includes the following steps:
S110, join the team data increment and the team's number out for obtaining OpenFlow switch port queue in the first preset time period
According to increment;Wherein, first preset time period refers to the time span between current time and previous moment;
It is to be appreciated that OpenFlow switch port queue join the team data increment and dequeue data increment is identical
Duration in increment, go out to join the team data volume without guaranteeing to inquire the queue of OpenFlow switch port in the same time.
S120, the data increment of joining the team of the OpenFlow switch port queue in first preset time period is utilized
With the queue length of OpenFlow switch port queue described in dequeue data increment and the second preset time period, institute is calculated
State the real-time queue length of OpenFlow switch port queue;Wherein, second preset time period is described first default
The previous time period of period.
It is to be appreciated that in above-mentioned steps S120, due to the data of joining the team of the OpenFlow switch port queue
Increment and dequeue data increment inquire going out for port queue without guaranteeing as the basis for calculating real-time queue length in the same time
It joins the team data volume, the data increment that need to only guarantee to join the team out is the data increment obtained in identical duration, therefore, Fig. 3 institute
The method shown reduces due in the prior art because the real-time queue length caused by the asynchronism of data query obtains error;Together
When, since the error that packet loss generates no longer is aggregate-value, but the monodrome in preset time period, if the time span of setting
Sufficiently small, which can be ignored, and therefore, data packetloss can also be effectively reduced to real-time queue in method shown in Fig. 3
Length bring influences.
Illustratively, for step S110, OpenFlow switch port queue in the first preset time period of the acquisition
Join the team data increment and dequeue data increment, can specifically include following steps:
S1101, the cumulative data of joining the team for obtaining OpenFlow switch port queue described in current time and previous moment
Amount and out team's cumulative data amount;
S1102, entering according to the OpenFlow switch port queue of the current time and previous moment acquisition
Team's cumulative data amount and out team's cumulative data amount calculate separately the OpenFlow exchange generator terminal in first preset time period
Join the team data increment and the dequeue data increment of mouth queue.
Specifically, for step S1102, the OpenFlow obtained according to the current time and previous moment
Join the team cumulative data amount and the team's cumulative data amount out of switch port queue, calculate separately institute in first preset time period
Join the team data increment and the dequeue data increment for stating OpenFlow switch port queue may include:
The cumulative data amount of joining the team for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating the cumulative data amount of joining the team of the OpenFlow switch port queue of previous moment acquisition
State the data increment of joining the team of the OpenFlow switch port queue in the first preset time period;And
The team's cumulative data amount that goes out for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating team's cumulative data amount out of the OpenFlow switch port queue of previous moment acquisition
State the dequeue data increment of the OpenFlow switch port queue in the first preset time period.
Here, it should be noted that acquisition is joined the team cumulative data amount and team's cumulative data amount time point can be not phase out
With, that is to say, that without guaranteeing that inquiry is joined the team cumulative data amount and the synchronism of team's cumulative data amount out, as long as it is described currently
Time span between moment and previous moment is equal.In this way, utilizing data increment and the team out of joining the team in preset time period
It is (right can to eliminate existing calculation method as the real-time queue length for calculating the queue of OpenFlow switch port for data increment
Answer above-mentioned formula (3)) because data query asynchronism caused by real-time queue length acquisition error.
Illustratively, described to utilize the OpenFlow interchanger in first preset time period for step S120
The OpenFlow exchanges generator terminal in join the team data increment and dequeue data increment and the second preset time period of port queue
The queue length of mouth queue, calculates the real-time queue length of the OpenFlow switch port queue, can specifically include:
By the data increment of joining the team of the OpenFlow switch port queue in first preset time periodWith dequeue data incrementAnd the second OpenFlow switch port in preset time period
The queue length of queueIt substitutes into following formula (10) and the real-time of the OpenFlow switch port queue is calculated
Queue length
It is to be appreciated that as shown in figure 4, OpenFlow switch port queue is joined the team in the first preset time period
Difference between data increment and dequeue data increment is that OpenFlow switch port team is trapped in the period
Therefore data volume in column adds the data volume being trapped in the OpenFlow switch port queue in the period
The queue length of the OpenFlow switch port queue in second preset time period, the as described OpenFlow exchange generator terminal
The real-time queue length of mouth queue.
Illustratively, method shown in Fig. 3 further include:
S130, according to the following formula (11) calculate the current average queue length of the OpenFlow switch port queue
In formula,It indicates in the second preset time period Δ t0The OpenFlow switch port queue calculated
Average queue length;Wq is weight, and value range is (0,1);Indicate the OpenFlow switch port queue
Real-time queue length;
Here, it should be noted that in true SDN network, data usually have sudden, and queue is possible at certain
One moment was filled suddenly, then and was rapidly evacuated.Therefore, using above-mentioned formula (11) i.e. random early check formula
(RED, Random Early Detection) is to real-time queue lengthLow-pass filtering is carried out, the burst for ignoring data is special
Property, it is conceived to the change in long term of queue length, that is, the average queue length of queue, and then obtain more true and reliable row
Team's time delay.
S140, the current queue bandwidth for obtaining the OpenFlow switch port queue;
S150, according to the following formula (12) calculate the current queuing delay t of the OpenFlow switch port queue:
In formula,Indicate the current average queue length of the OpenFlow switch port queue;It indicates
The current queue bandwidth of the OpenFlow switch port queue;
S160, according to the current queuing delay of the OpenFlow switch port queue be the OpenFlow interchanger
Port queue redistributes bandwidth.
It is to be appreciated that illustrating queue when the current queuing delay of the OpenFlow switch port queue is larger
It at this time can be one bigger bandwidth of the queue assignment to improve the congestion state of queue in congestion state, thus plus
Fast data-forwarding rate alleviates the data congestion of queue.
The embodiment of the invention provides it is a kind of obtain real-time queue length method, this method mainly utilize first it is default when
Between in section OpenFlow switch port queue join the team in data increment and dequeue data increment and the second preset time period
The queue length of the OpenFlow switch port queue is long come the real-time queue for calculating OpenFlow switch port queue
Degree.Basis due to obtaining the real-time queue length of OpenFlow switch port queue is into and out the data increment of queue,
It is therefore not necessary to guarantee the synchronism of the cumulative data amount of inquiry disengaging queue, it need to only guarantee join the team data increment and dequeue data
Increment is the increment in same time length;Meanwhile by the error that packet loss generates no longer being aggregate-value, but first pre-
If the monodrome in the period, therefore, if the first set preset time period is sufficiently small, which be can be ignored.Institute
To provide the method for obtaining real-time queue length using the embodiment of the present invention, can not only reduce asynchronous due to data query
The calculating error of real-time queue length caused by property, additionally it is possible to which the calculating that data packetloss is effectively reduced to real-time queue length is brought
Error effectively improve the utilization rate and network service quality of bandwidth resources to obtain more accurate queuing delay.
Embodiment two
Understanding to above-mentioned technical proposal for convenience, as shown in figure 5, the figure shows provided in an embodiment of the present invention one
Kind obtains queue length and the specific implementation process using real-time queue length allocation queue bandwidth, it can be seen from the figure that
The process mainly includes that step is implemented as follows:
S210, the accumulated bytes number of joining the team for obtaining current time and previous moment OpenFlow switch port queue, go out
Team's accumulated bytes number and queue bandwidth;
S220, joining the team according to the OpenFlow switch port queue of the current time and previous moment acquisition
Accumulated bytes number and out team's accumulated bytes number calculate separately the OpenFlow switch port queue in the first preset time period
Join the team byte number increment and team's byte number increment out;Wherein, first preset time period refers to the current time with before
Time span between one moment;
It is to be appreciated that so-called data increment refers to data increment in a certain period of time.Therefore, here, institute
The byte number increment of joining the team for stating the OpenFlow switch port queue in the first preset time period is obtained equal to current time
The OpenFlow switch port queue accumulated bytes number of joining the team subtract previous moment acquisition the OpenFlow hand over
It changes planes the accumulated bytes number of joining the team of port queue.Similarly, the OpenFlow switch port in first preset time period
The accumulative word of team out for going out team's byte number increment and being equal to the OpenFlow switch port queue that current time obtains of queue
Joint number subtracts team's accumulated bytes number out of the OpenFlow switch port queue of previous moment acquisition.
As shown in fig. 6, calculating joining the team for the OpenFlow switch port queue in first preset time period
It is equal at the time of without guaranteeing to inquire/join the team cumulative data amount when byte number increment and out team's byte number increment, it only needs to guarantee
Join the team data increment and dequeue data increment is increment in same time length.
S230, according to the following formula (13) calculate the real-time queue length of the OpenFlow switch port queue
In formula,WithRespectively indicate the first preset time period Δ t1Interior OpenFlow is handed over
It changes planes join the team byte number increment and the team's byte number increment out of port queue;Indicate the second preset time period Δ t0
The queue length of the interior OpenFlow switch port queue;
S240, according to the following formula (14) calculate the current average queue length of the OpenFlow switch port queue
In formula,It indicates in the second preset time period Δ t0The OpenFlow switch port calculated
The average queue length of queue;Wq is weight, and value range is (0,1);
S250, according to the following formula (15) calculate the current queuing delay t of the OpenFlow switch port queue:
In formula,For the current queue bandwidth of the OpenFlow switch port queue;
S260, according to the current queuing delay of the OpenFlow switch port queue be the OpenFlow interchanger
Port queue redistributes bandwidth.
Embodiment three
Based on technical concept same as before, as shown in fig. 7, the figure shows a kind of acquisitions provided in an embodiment of the present invention
The device 30 of queue length, it can be seen from the figure that described device 30 may include: data increment obtain module 310 and in real time
Queue length computing module 320;Wherein,
The data increment obtains module 310, is configurable to obtain OpenFlow interchanger in the first preset time period
Join the team data increment and the dequeue data increment of port queue;Wherein, first preset time period refers to current time with before
Time span between one moment;
The real-time queue length computation module 320 is configurable to using described in first preset time period
It is described in join the team data increment and dequeue data increment and the second preset time period of OpenFlow switch port queue
The queue length of OpenFlow switch port queue, the real-time queue for calculating the OpenFlow switch port queue are long
Degree;Wherein, second preset time period is the previous time period of first preset time period.
In the above scheme, the data increment obtains module 310, as shown in figure 8, can specifically include: data query
Submodule 3101 and data incremental computations submodule 3102;Wherein,
The data query submodule 3101 is configurable to obtain the friendship of OpenFlow described in current time and previous moment
It changes planes join the team cumulative data amount and the team's cumulative data amount out of port queue;
The data increment computational submodule 3102 is configurable to be obtained according to the current time and previous moment
Join the team cumulative data amount and the team's cumulative data amount out of the OpenFlow switch port queue, it is pre- to calculate separately described first
If join the team data increment and the dequeue data increment of the OpenFlow switch port queue in the period.
In the above scheme, the data increment computational submodule 3102, is specifically configurable to:
The cumulative data amount of joining the team for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating the cumulative data amount of joining the team of the OpenFlow switch port queue of previous moment acquisition
State the data increment of joining the team of the OpenFlow switch port queue in the first preset time period;And
The team's cumulative data amount that goes out for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating team's cumulative data amount out of the OpenFlow switch port queue of previous moment acquisition
State the dequeue data increment of the OpenFlow switch port queue in the first preset time period.
In the above scheme, the real-time queue length computation module 320, is specifically configurable to:
By the data increment of joining the team of the OpenFlow switch port queue in first preset time periodWith dequeue data incrementAnd the second OpenFlow switch port in preset time period
The queue length of queueIt substitutes into following formula (16) and the real-time of the OpenFlow switch port queue is calculated
Queue length
In the above scheme, as shown in figure 9, described device 30 can also include queuing delay computing module 330 and strategy
Management module 340;Wherein,
The queuing delay computing module 330 is configured to second preset time period is calculated described
The average queue length of OpenFlow switch port queueIt is real-time with the OpenFlow switch port queue
Queue lengthIt substitutes into following formula (17) and the current average team of the OpenFlow switch port queue is calculated
Column length
In formula, wq is weight, and value range is (0,1);
The queuing delay computing module 330 is configured to obtain the current team of the OpenFlow switch port queue
Column bandwidth;
The queuing delay computing module 330 is configured to be averaged the OpenFlow switch port queue is current
Queue lengthWith the current queue bandwidth of the OpenFlow switch port queueSubstitute into following formula (18)
The current queuing delay t of the OpenFlow switch port queue is calculated:
The policy management module 340, when being configured to the current queuing according to the OpenFlow switch port queue
Prolong and redistributes bandwidth for the OpenFlow switch port queue.
Example IV
Understanding to above-mentioned technical proposal for convenience, in embodiments of the present invention will be in conjunction with above-mentioned apparatus 30 to the device
A kind of workflow in practical applications is illustrated, referring specifically to Figure 10, it can be seen from the figure that the workflow is main
Include the following steps:
S410, data query submodule 3101 and OpenFlow interchanger establish connection;
S420, the module are issued to OpenFlow interchanger by the connection between OpenFlow interchanger and join the team and go out
The querying command of team's cumulative data amount;
Here, it should be noted that in practical applications, between data query submodule 3101 and OpenFlow interchanger
Connection can be the safety shell protocol based on transmission control protocol (TCP, Transmission Control Protocol)
(SSH, Secure Shell Protocol) connection.Certain duration is needed due to initially setting up connection, in order to avoid every
Secondary data query requires to re-establish connection, can be using static long connection.
S430, when OpenFlow interchanger receives the querying command that module 3101 issues, OpenFlow interchanger will
The current cumulative data amount of joining the team of port queue, team's cumulative data amount and queue bandwidth are sent to module 3101 out;
S440, module 3101 are receiving the cumulative data amount of joining the team for the port queue that OpenFlow interchanger is sent, are going out
After team's cumulative data amount and queue bandwidth, data increment computational submodule 3102, real-time queue length computation will be successively called
Module 320 and queuing delay computing module 330, so that the current queuing delay of port queue be calculated;
The current queuing delay of port queue is sent to policy management module 340 by S450, module 3101;
S460, after policy management module 340 receives the current queuing delay of port queue, according to each port queue
Current queuing delay generates Bandwidth Allocation Policy;
S470, policy management module 340 give the policy distribution to OpenFlow interchanger;
S480, OpenFlow interchanger are each port queue bandwidth allocation according to the strategy again;
S490, OpenFlow interchanger are by the queue bandwidth feedback of port queue adjusted to module 3101.
Here, it should be noted that workflow shown in Fig. 10 be merely to illustrate that OpenFlow interchanger with it is upper
State between each virtual module for realize above-mentioned technical proposal specific collaboration process, above-mentioned apparatus 30 can be independently of
The terminal of OpenFlow interchanger is also possible to be inserted in such as personal computer (PC, Personal Computer)
Computer readable storage medium in OpenFlow interchanger here embodies with no restrictions the equipment of device 30.
In order to verify technical effect acquired by above-mentioned technical proposal, it is assumed that above-mentioned apparatus 30 is to hand over independently of OpenFlow
The terminal changed planes, as shown in figure 11, the figure shows a kind of methods by unit/terminal loopback test to test each port queue
Practical queuing delay flow chart, the cardinal principle of test are as follows: terminal is realized by path 1 shown in Figure 11 and path 3
Between the two be interconnected, after be connected to successfully, terminal log-on data receive program be used for monitoring whether there are data to transmit, and
Log-on data sends program, persistently sends data packet to OpenFlow interchanger, and each data packet carries unique sequence
Number and timestamp (system time when giving out a contract for a project).For each data packet, the data receiver program of terminal can listen to terminal
The same data packet is successively received twice: for the first time are as follows: data packet is directly captured in local by data receiver program, data receiver
Program records the time delay of this received data packet;Second are as follows: data packet is along path 1-> path 2-> road shown in Figure 11
The direction of diameter 3 is back to terminal and is received by data receiver program, and data receiver program records the time delay of this received data packet.By
Very in transmission time of the data packet on path 1 and path 3, thus this twice the reception delay of data packet difference be count
According to the practical queuing delay wrapped in port queue.
In fact, provided by the embodiment of the present invention it is a kind of obtain real-time queue length method in entity OpenFlow
A large amount of tests are carried out on interchanger, test result is as follows shown in table 1, and the table show be when data packet sends frequency
10000 packets/second, the queuing delay of each data package size different bandwidth queue that following three kinds of methods obtain when being 1KB,
In, queuing delay 1 shown in table 1 is the practical queuing delay obtained by unit/terminal loopback test method shown in Figure 11, when queuing
Prolong 2 to be lined up using a kind of method queuing delay obtained for obtaining real-time queue length provided by the embodiment of the present invention
Time delay 3 is the queuing delay obtained by method described in background technique.
The queuing delay (unit: millisecond) of 1 different bandwidth queue of table
|
Queue 0 (bandwidth 60M) |
Queue 1 (bandwidth 30M) |
Queue 2 (bandwidth 10M) |
Queuing delay 1 |
123 |
248 |
746 |
Queuing delay 2 |
114 |
234 |
739 |
Queuing delay 3 |
142 |
275 |
760 |
Real-time team is obtained using a kind of provided by the embodiment of the present invention it can be seen from the test result shown in upper table 1
Queuing delay acquired in the method for column length closer to port queue practical queuing delay, compared with the prior art, this
Provided by inventive embodiments it is a kind of obtain real-time queue length method can more effectively improve bandwidth resources utilization rate
And network service quality.
Embodiment five
Based on technical concept same as before, as shown in figure 12, the figure shows one kind provided in an embodiment of the present invention to obtain
The equipment 60 of queue length is taken, it can be seen from the figure that the equipment 60 may include: memory 610, processor 620 and storage
On memory 610 and the computer program 630 that can run on processor 620, processor 620 are realized when executing program 630
Following steps:
Obtain join the team data increment and the dequeue data increasing of OpenFlow switch port queue in the first preset time period
Amount;Wherein, first preset time period refers to the time span between current time and previous moment;
Using in first preset time period OpenFlow switch port queue join the team data increment and go out
The queue length of the OpenFlow switch port queue in team's data increment and the second preset time period, described in calculating
The real-time queue length of OpenFlow switch port queue;Wherein, when second preset time period is described first default
Between section previous time period.
In practical applications, above-mentioned memory 610 can be volatile memory (volatile memory), such as with
Machine accesses memory (RAM, Random-Access Memory);Or non-volatile reservoir (non-volatile memory),
Such as read-only memory (ROM, Read-Only Memory), flash memory (flash memory), hard disk (HDD, Hard
Disk Drive) or solid state hard disk (SSD, Solid-State Drive);Or the combination of the memory of mentioned kind, and to
Processor 620 provides computer program.
Above-mentioned processor 620 can be application-specific IC (ASIC, Application Specific
Integrated Circuit), digital signal processor (DSP, Digital Signal Processor), Digital Signal Processing
Device (DSPD, Digital Signal Processing Device), programmable logic device (PLD, Programmable
Logic Device), field programmable gate array (FPGA, Field Programmable Gate Array), central processing unit
At least one of (CPU, Central Processing Unit), controller, microcontroller, microprocessor.It is understood that
Ground, for different equipment, the electronic device for realizing above-mentioned processor function can also be it is other, the embodiment of the present invention is not
Make specific limit.
Illustratively, the data increment of joining the team for obtaining OpenFlow switch port queue in the first preset time period
With dequeue data increment, can also be executed by processor 620, to perform the steps of
Joining the team for OpenFlow switch port queue described in current time and previous moment is obtained cumulative data amount and to go out
Team's cumulative data amount;
Joining the team for the OpenFlow switch port queue obtained according to the current time and previous moment is accumulative
Data volume and out team's cumulative data amount calculate separately the OpenFlow switch port queue in first preset time period
Join the team data increment and dequeue data increment.
Specifically, the OpenFlow switch port queue obtained according to the current time and previous moment
Join the team cumulative data amount and team's cumulative data amount out, calculate separately the OpenFlow exchange in first preset time period
Join the team data increment and the dequeue data increment of machine port queue, can also be executed by processor 620, to perform the steps of
The cumulative data amount of joining the team for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating the cumulative data amount of joining the team of the OpenFlow switch port queue of previous moment acquisition
State the data increment of joining the team of the OpenFlow switch port queue in the first preset time period;And
The team's cumulative data amount that goes out for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating team's cumulative data amount out of the OpenFlow switch port queue of previous moment acquisition
State the dequeue data increment of the OpenFlow switch port queue in the first preset time period.
Illustratively, described to be joined the team using the OpenFlow switch port queue in first preset time period
The queue of the OpenFlow switch port queue is long in data increment and dequeue data increment and the second preset time period
Degree, calculate the real-time queue length of the OpenFlow switch port queue, can also be executed by processor 620, with realize with
Lower step:
By the data increment of joining the team of the OpenFlow switch port queue in first preset time periodWith dequeue data incrementAnd second the OpenFlow in preset time period exchange generator terminal
The queue length of mouth queueSubstitute into the reality that the OpenFlow switch port queue is calculated in following formula (19)
When queue length
Illustratively, it can also be performed the steps of when processor 620 executes program 630
By the average queue length of second preset time period OpenFlow switch port queue calculatedWith the real-time queue length of the OpenFlow switch port queueFollowing formula (20) is substituted into calculate
The average queue length current to the OpenFlow switch port queue
In formula, wq is weight, and value range is (0,1);
Obtain the current queue bandwidth of the OpenFlow switch port queue;
By the current average queue length of the OpenFlow switch port queueIt is handed over the OpenFlow
It changes planes the current queue bandwidth of port queueIt substitutes into following formula (21) and the OpenFlow switch port is calculated
The current queuing delay t of queue:
It is the OpenFlow switch port according to the current queuing delay of the OpenFlow switch port queue
Bandwidth is redistributed in queue.
Embodiment six
The technical solution of any of the above-described embodiment substantially the part that contributes to existing technology or the skill in other words
The all or part of art scheme can be embodied in the form of software products, which is stored in a calculating
In machine readable storage medium storing program for executing, including some instructions are used so that computer equipment (it can be personal computer, server,
Or network equipment etc.) or processor (processor) execute the present embodiment the method all or part of the steps.And it is aforementioned
Computer readable storage medium include: USB flash disk, mobile hard disk, read-only memory (ROM, Read Only Memory), deposit at random
The various media that can store program code such as access to memory (RAM, Random Access Memory), magnetic or disk.
Specifically, the corresponding computer program instructions of method that one of the present embodiment obtains queue length can be by
It is stored in CD, hard disk, on the computer readable storage mediums such as USB flash disk, i.e., above-mentioned computer-readable recording medium storage has one
Perhaps multiple program said ones or multiple programs can be executed by one or more processor, to perform the steps of
Obtain join the team data increment and the dequeue data increasing of OpenFlow switch port queue in the first preset time period
Amount;Wherein, first preset time period refers to the time span between current time and previous moment;
Using in first preset time period OpenFlow switch port queue join the team data increment and go out
The queue length of the OpenFlow switch port queue in team's data increment and the second preset time period, described in calculating
The real-time queue length of OpenFlow switch port queue;Wherein, when second preset time period is described first default
Between section previous time period.
Illustratively, in above-mentioned the first preset time period of acquisition OpenFlow switch port queue data increment of joining the team
With dequeue data increment, can be executed by said one or multiple processors, to perform the steps of
Joining the team for OpenFlow switch port queue described in current time and previous moment is obtained cumulative data amount and to go out
Team's cumulative data amount;
Joining the team for the OpenFlow switch port queue obtained according to the current time and previous moment is accumulative
Data volume and out team's cumulative data amount calculate separately the OpenFlow switch port queue in first preset time period
Join the team data increment and dequeue data increment.
Specifically, the OpenFlow switch port queue obtained according to the current time and previous moment
Join the team cumulative data amount and team's cumulative data amount out, calculate separately the OpenFlow exchange in first preset time period
Join the team data increment and the dequeue data increment of machine port queue can be executed by said one or multiple processors, with reality
Existing following steps:
The cumulative data amount of joining the team for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating the cumulative data amount of joining the team of the OpenFlow switch port queue of previous moment acquisition
State the data increment of joining the team of the OpenFlow switch port queue in the first preset time period;And
The team's cumulative data amount that goes out for the OpenFlow switch port queue that the current time obtains is subtracted into institute
Resulting numerical value is as institute after stating team's cumulative data amount out of the OpenFlow switch port queue of previous moment acquisition
State the dequeue data increment of the OpenFlow switch port queue in the first preset time period.
Illustratively, described to be joined the team using the OpenFlow switch port queue in first preset time period
The queue of the OpenFlow switch port queue is long in data increment and dequeue data increment and the second preset time period
Degree, calculates the real-time queue length of the OpenFlow switch port queue, can be by said one or multiple processors
It executes, to perform the steps of
By the data increment of joining the team of the OpenFlow switch port queue in first preset time periodWith dequeue data incrementAnd second the OpenFlow in preset time period exchange generator terminal
The queue length of mouth queueSubstitute into the reality that the OpenFlow switch port queue is calculated in following formula (22)
When queue length
Illustratively, said one or multiple programs can also be executed by one or more processor, following to realize
Step:
By the average queue length of second preset time period OpenFlow switch port queue calculatedWith the real-time queue length of the OpenFlow switch port queueFollowing formula (23) is substituted into calculate
The average queue length current to the OpenFlow switch port queue
In formula, wq is weight, and value range is (0,1);
Obtain the current queue bandwidth of the OpenFlow switch port queue;
By the current average queue length of the OpenFlow switch port queueIt is handed over the OpenFlow
It changes planes the current queue bandwidth of port queueIt substitutes into following formula (24) and the OpenFlow switch port is calculated
The current queuing delay t of queue:
It is the OpenFlow switch port according to the current queuing delay of the OpenFlow switch port queue
Bandwidth is redistributed in queue.
It should be understood by those skilled in the art that, the embodiment of the present invention can provide as method, system or computer program
Product.Therefore, the shape of hardware embodiment, software implementation or embodiment combining software and hardware aspects can be used in the present invention
Formula.Moreover, the present invention, which can be used, can use storage in the computer that one or more wherein includes computer usable program code
The form for the computer program product implemented on medium (including but not limited to magnetic disk storage and optical memory etc.).
The present invention be referring to according to the method for the embodiment of the present invention, the process of equipment (system) and computer program product
Figure and/or block diagram describe.It should be understood that every one stream in flowchart and/or the block diagram can be realized by computer program instructions
The combination of process and/or box in journey and/or box and flowchart and/or the block diagram.It can provide these computer programs
Instruct the processor of general purpose computer, special purpose computer, Embedded Processor or other programmable data processing devices to produce
A raw machine, so that being generated by the instruction that computer or the processor of other programmable data processing devices execute for real
The device for the function of being specified in present one or more flows of the flowchart and/or one or more blocks of the block diagram.
These computer program instructions, which may also be stored in, is able to guide computer or other programmable data processing devices with spy
Determine in the computer-readable memory that mode works, so that it includes referring to that instruction stored in the computer readable memory, which generates,
Enable the manufacture of device, the command device realize in one box of one or more flows of the flowchart and/or block diagram or
The function of being specified in multiple boxes.
These computer program instructions also can be loaded onto a computer or other programmable data processing device, so that counting
Series of operation steps are executed on calculation machine or other programmable devices to generate computer implemented processing, thus in computer or
The instruction executed on other programmable devices is provided for realizing in one or more flows of the flowchart and/or block diagram one
The step of function of being specified in a box or multiple boxes.
The foregoing is only a preferred embodiment of the present invention, is not intended to limit the scope of the present invention.