CN103763217A - Packet scheduling method and device for multi-path TCP - Google Patents
Packet scheduling method and device for multi-path TCP Download PDFInfo
- Publication number
- CN103763217A CN103763217A CN201410045242.2A CN201410045242A CN103763217A CN 103763217 A CN103763217 A CN 103763217A CN 201410045242 A CN201410045242 A CN 201410045242A CN 103763217 A CN103763217 A CN 103763217A
- Authority
- CN
- China
- Prior art keywords
- subflow
- current
- packet
- send window
- grouping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The invention discloses a packet scheduling method and device for a multi-path TCP. The method comprises the steps of receiving a data stream of an application layer and dividing the data stream into multiple groups, wherein the data stream is provided with multiple sub-streams, and each sub-stream is provided with a sending queue; sending the multiple groups to an input queue; sequentially obtaining the multiple groups in the input queue or sequentially distributing the multiple groups to the sending queue of one sub-stream to fill a vacant sending window when the number of the currently overstocked groups in the sending queue of one sub-stream is smaller than the vacant sending window in the sub-stream or when the number of the groups sent by the sub-stream currently is smaller than the current sending window of the sub-stream; reinserting the groups in the sending queues of the sub-streams to the input queue in order and scheduling the groups to sending queues of other sub-streams when packet loss of the sub-streams overtimes or a path loses efficacy. The scheduling method has the advantages of being small in calculation expense, wide in application range, easy to achieve and the like.
Description
Technical field
The present invention relates to Internet technical field, relate in particular to a kind of grouping scheduling method and device of multi-path data stream.
Background technology
Along with the evolution of the Internet and the development of network access technique, increasing end system has had many hosts' characteristic, can utilize multiple ISP(Internet Service Provider, ISP simultaneously) the service accessing Internet that provides.Owing to having multiple network interfaces, multi-host mainframe configures multiple IP(Internet Protocol, the agreement interconnecting between network conventionally) address.By using different IP addresses, can be at different path transmitting datas between multi-host mainframe, so can be design multipath TCP(Transmission Control Protocol, transmission control protocol) agreement provides material base.Article one, multipath TCP stream is comprised of some subflows, and every subflow is used different IP addresses, thus can carry out transfer of data via different paths, thus improve throughput and the robustness of end-to-end communication.
But, at present as a kind of for application layer provides the agreement of reliable byte stream transmission service, can there is the out of order arrival of grouping and the problem of restructuring in multipath TCP.In the situation that single path is transmitted, packet disorder arrives receiving terminal and mainly contains two reasons: packet loss and route change.Rely on good confirmation retransmission mechanism, receiving terminal can be selected neatly buffer memory or abandon grouping.The in the situation that of multi-path transmission, out of order problem is more remarkable, and reason is that every paths has difference and random lag characteristic and congestion condition.Out-of-order packet can consume a large amount of cache resources of receiving terminal, and takies the sequence of more processor time for data flow.Conventional TCP agreement reduces the expense of buffer memory and sequence by abandoning out-of-order packet, but this strategy be not suitable for multi-path transmission scheme, because out-of-order packet is from different paths, receiving terminal has sent acknowledge message to source on path separately, therefore can not abandon.Out-of-order packet delayed acknowledgement neither one be reasonably selected, because this size that may cause the overtime re-transmission of source and reduce send window has a negative impact to protocol capabilities.
Summary of the invention
The present invention is intended to solve at least to a certain extent one of technical problem in correlation technique.
For this reason, first object of the present invention is to propose the grouping scheduling method of a kind of multipath TCP.The method has that computing cost is little, applicability is wide, be easy to the features such as realizations, and the multi-path data being applicable in various network topologies transmits demand.
Second object of the present invention is to propose the packet scheduling apparatus of a kind of multipath TCP.
To achieve these goals, the grouping scheduling method of the multipath TCP of first aspect present invention embodiment, comprising: the data flow that receives application layer, and described data flow is divided and generated multiple groupings, wherein, described data flow has many subflows, and every described subflow all has transmit queue; Described multiple groupings are sent in input rank; When current overstocked number of packet in the described transmit queue that judges subflow is less than the size of the idle send window in described subflow, or the current number of packet sending of described subflow is while being less than the current send window of described subflow size, obtain successively multiple described groupings in described input rank, and described multiple groupings are dispensed to successively to the described transmit queue of described subflow, to fill up the send window of described free time; When judging the overtime or path failure of subflow generation packet loss, the grouping in the transmit queue of described subflow is inserted into described input rank again according to the order of sequence, and by described packet scheduling to the transmit queue of other subflows.
According to the grouping scheduling method of the multipath TCP of the embodiment of the present invention, can divide and generate multiple groupings the data flow receiving, and these groupings are sent in input rank, when current overstocked number of packet in the transmit queue that judges certain subflow is less than the size of the idle send window in this subflow, or the current number of packet sending of this subflow is while being less than the current send window of this subflow size, can from input rank, dispatch successively multiple transmit queues that are grouped into this subflow, to fill up the send window of this subflow free time; When judging the overtime or path failure of certain subflow generation packet loss, grouping in the transmit queue of this subflow can be inserted into input rank again according to the order of sequence, to redistribute in other subflows, make the grouping of parallel transmission from mulitpath arrive as far as possible according to the order of sequence receiving terminal, minimize the expense of receiving terminal buffer memory and assembling out-of-order packet, and applicability is wide, be easy to realize, be applicable to the multi-path data transmission demand in various network topologies.
To achieve these goals, the packet scheduling apparatus of the multipath TCP of second aspect present invention embodiment, comprise: receive and divide module, for receiving the data flow of application layer, and described data flow is divided and generated multiple groupings, wherein, described data flow has many subflows, and every described subflow all has transmit queue; Sending module, for being sent to input rank by described multiple groupings; Scheduler module, for be less than the size of the idle send window in described subflow at the current overstocked number of packet of the described transmit queue that judges subflow, or the current number of packet sending of described subflow is while being less than the current send window of described subflow size, obtain successively multiple described groupings in described input rank, and described multiple groupings are dispensed to successively to the described transmit queue of described subflow, to fill up the send window of described free time; Described scheduler module also, for when judging the overtime or path failure of subflow generation packet loss, is inserted into described input rank by the grouping in the transmit queue of described subflow again according to the order of sequence, and by described packet scheduling to the transmit queue of other subflows.
According to the packet scheduling apparatus of the multipath TCP of the embodiment of the present invention, by receiving and divide module, the data flow receiving is divided and generated multiple groupings, sending module is sent to these groupings in input rank, scheduler module current overstocked number of packet in the transmit queue that judges certain subflow is less than the size of the idle send window in this subflow, or the current number of packet sending of this subflow is while being less than the current send window of this subflow size, can from input rank, dispatch successively multiple transmit queues that are grouped into this subflow, to fill up the send window of this subflow free time, scheduler module also can be when judging the overtime or path failure of certain subflow generation packet loss, grouping in the transmit queue of this subflow is inserted into input rank again according to the order of sequence, to redistribute in other subflows, make the grouping of parallel transmission from mulitpath arrive as far as possible according to the order of sequence receiving terminal, minimize the expense of receiving terminal buffer memory and assembling out-of-order packet, and applicability is wide, be easy to realize, be applicable to the multi-path data transmission demand in various network topologies.
The aspect that the present invention is additional and advantage in the following description part provide, and part will become obviously from the following description, or recognize by practice of the present invention.
Accompanying drawing explanation
Fig. 1 is the flow chart of the grouping scheduling method of multipath TCP according to an embodiment of the invention;
Fig. 2 is the schematic diagram of the transmitting terminal two-level scheduler framework in the grouping scheduling method of multipath TCP according to an embodiment of the invention;
Fig. 3 is the flow chart of the grouping scheduling method of the multipath TCP of a specific embodiment according to the present invention;
Fig. 4 is the structural representation of the packet scheduling apparatus of multipath TCP according to an embodiment of the invention;
Fig. 5 is the structural representation of the packet scheduling apparatus of the multipath TCP of a specific embodiment according to the present invention;
Fig. 6 is the structural representation of the packet scheduling apparatus of the multipath TCP of another specific embodiment according to the present invention.
Embodiment
Describe embodiments of the invention below in detail, the example of described embodiment is shown in the drawings, and wherein same or similar label represents same or similar element or has the element of identical or similar functions from start to finish.Below by the embodiment being described with reference to the drawings, be exemplary, be intended to for explaining the present invention, and can not be interpreted as limitation of the present invention.
Disclosing below provides many different embodiment or example to be used for realizing different structure of the present invention.Of the present invention open in order to simplify, hereinafter the parts to specific examples and setting are described.Certainly, they are only example, and object does not lie in restriction the present invention.In addition, the present invention can be in different examples repeat reference numerals and/or letter.This repetition is in order to simplify and object clearly, itself do not indicate the relation between discussed various embodiment and/or setting.
Below with reference to accompanying drawing, describe according to grouping scheduling method and the device of the multipath TCP of the embodiment of the present invention.
Fig. 1 is the flow chart of the grouping scheduling method of multipath TCP according to an embodiment of the invention.
As shown in Figure 1, the grouping scheduling method of this multipath TCP can comprise:
S101, receives the data flow of application layer, and data stream is divided and generated multiple groupings, and wherein, data flow has many subflows, and every subflow all has transmit queue.
Wherein, in an embodiment of the present invention, grouping can be the block of formatted data of transmitting in current packet switching network, is basic communication unit.In different networks, grouping has a lot of forms, such as the grouping as unit take position (with certain bit representation control information), contains for another example the multibyte grouping of stem etc. in Ethernet.
S102, is sent to multiple groupings in input rank.
It should be noted that, the grouping scheduling method of the multipath TCP of the embodiment of the present invention can be applicable in scheduler, can adopt input rank and transmit queue two-level scheduler framework, and the capacity of these two kinds of queues is all limited.
For example, as shown in Figure 2, from the data flow of application layer, first can deposit input rank in, wait for that scheduler is assigned in the transmit queue of subflow with the unit of being grouped into.If input rank is filled, application layer can be suspended transmission data, waits between idle queue empty.
S103, when current overstocked number of packet in the transmit queue that judges subflow is less than the size of the idle send window in subflow, or the current number of packet sending of subflow is while being less than the current send window of subflow size, obtain successively multiple groupings in input rank, and multiple groupings are dispensed to successively to the transmit queue of subflow, to fill up idle send window.
It should be noted that, in an embodiment of the present invention, the number of packet of scheduling relies on three variablees: current overstocked number of packet in the current number of packet sending of send window size (sw), subflow (being that subflow is current has sent but do not received the number of packet (flightSize) of confirmation) that subflow is current and the transmit queue of subflow (being the number of packet (backLog) not yet sending in subflow transmit queue).
Wherein, in an embodiment of the present invention, the large I of the idle send window in subflow is calculated acquisition according to the current send window size of subflow and the current number of packet sending of subflow.That is to say, the current send window size of subflow is subtracted each other obtained numerical value with the current number of packet sending of subflow, is the size of the idle send window in subflow.
Particularly, if the size of the current send window of subflow is greater than the current number of packet sending of this subflow, be sw>flightSize, or the number of packet not yet sending in subflow transmit queue is less than send window size idle in this subflow, be backLog<sw-flightSize, can from input rank, dispatch successively in multiple transmit queues that are grouped into this subflow, to fill up send window idle in this subflow.Wherein, filling up the concrete obtain manner of the number of packet of idle send window can be with reference to the description of subsequent embodiment.
Also it should be noted that, in an embodiment of the present invention, if the size of the current send window of subflow is less than or equal to the current number of packet sending of subflow, be sw≤flightSize, or the size of the current send window of subflow is more than or equal to send window size idle in subflow, be backLog >=sw-flightSize, this subflow is current in saturation condition, current there is no need as this subflow scheduling grouping.
S104, when judging the overtime or path failure of subflow generation packet loss, is inserted into input rank again according to the order of sequence by the grouping in the transmit queue of subflow, and by packet scheduling to the transmit queue of other subflows.
For example, as shown in Figure 2, when judging the path failure of subflow 2 or the phenomenons such as overtime re-transmission occur, the grouping in the transmit queue of this subflow 2 20, grouping 21 can be inserted in input rank again according to the order of sequence, to grouping 20, grouping 21 are redistributed to other subflows.
It should be noted that, in an embodiment of the present invention, when the grouping scheduling method of the multipath TCP of the embodiment of the present invention shifts grouping between each transmit queue, only need to revise the pointer that points to packet header, and without executing data copy operation.Can greatly improve like this efficiency of packet scheduling.
According to the grouping scheduling method of the multipath TCP of the embodiment of the present invention, can divide and generate multiple groupings the data flow receiving, and these groupings are sent in input rank, when current overstocked number of packet in the transmit queue that judges certain subflow is less than the size of the idle send window in this subflow, or the current number of packet sending of this subflow is while being less than the current send window of this subflow size, can from input rank, dispatch successively multiple transmit queues that are grouped into this subflow, to fill up the send window of this subflow free time; When judging the overtime or path failure of certain subflow generation packet loss, grouping in the transmit queue of this subflow can be inserted into input rank again according to the order of sequence, to redistribute in other subflows, make the grouping of parallel transmission from mulitpath arrive as far as possible according to the order of sequence receiving terminal, minimize the expense of receiving terminal buffer memory and assembling out-of-order packet, and applicability is wide, be easy to realize, be applicable to the multi-path data transmission demand in various network topologies.
Fig. 3 is the flow chart of the grouping scheduling method of the multipath TCP of a specific embodiment according to the present invention.
In order to improve accuracy, can travel through successively every subflow, and after judging that packet loss or path failure do not occur subflow, calculate the current send window size of this subflow, and calculate the current number of packet sending of this subflow, and can judge that this subflow is current according to current overstocked number of packet in the transmit queue of the current number of packet sending of subflow current send window size, subflow and subflow and whether need scheduling grouping.Particularly, as shown in Figure 3, the grouping scheduling method of this multipath TCP can comprise:
S301, receives the data flow of application layer, and data stream is divided and generated multiple groupings, and wherein, data flow has many subflows, and every subflow all has transmit queue.
Wherein, in an embodiment of the present invention, grouping can be the block of formatted data of transmitting in current packet switching network, is basic communication unit.In different networks, grouping has a lot of forms, such as the grouping as unit take position (with certain bit representation control information), contains for another example the multibyte grouping of stem etc. in Ethernet.
S302, is sent to multiple groupings in input rank.
It should be noted that, the grouping scheduling method of the multipath TCP of the embodiment of the present invention can be applicable in scheduler, can adopt input rank and transmit queue two-level scheduler framework, and the capacity of these two kinds of queues is all limited.
For example, as shown in Figure 2, from the data flow of application layer, first can deposit input rank in, wait for that scheduler is assigned in the transmit queue of subflow with the unit of being grouped into.If input rank is filled, application layer can be suspended transmission data, waits between idle queue empty.
S303, travels through every subflow successively.
S304, judges whether subflow the overtime or path failure of packet loss occurs.
S305, after judging that packet loss or path failure do not occur subflow, calculates the current send window size of this subflow, and calculates the current number of packet sending of this subflow.
Particularly, after judging that packet loss or path failure do not occur certain subflow, can first obtain the current congestion window size cwnd of this subflow and the current Flow Control Window of this subflow size win, get minimum value in cwnd and win as the current send window size sw of this subflow.Afterwards, can first obtain the sequence number nextTx of the grouping to be sent such as grouping serial number highestAck the highest in the current confirmed grouping of this subflow and this subflow next one, then nextTx and highestAck are subtracted each other, the numerical value obtaining is the current number of packet flightSize sending of this subflow.
S306, judge whether current overstocked number of packet in the transmit queue of subflow is less than the size of the idle send window in this subflow, or whether the current number of packet sending of subflow is less than the current send window size of this subflow.
It should be noted that, in an embodiment of the present invention, the number of packet of scheduling relies on three variablees: current overstocked number of packet in the current number of packet sending of send window size (sw), subflow (being that subflow is current has sent but do not received the number of packet (flightSize) of confirmation) that subflow is current and the transmit queue of subflow (being the number of packet (backLog) not yet sending in subflow transmit queue).
Wherein, in an embodiment of the present invention, the large I of the idle send window in subflow is calculated acquisition according to the current send window size of this subflow and the current number of packet sending of this subflow.That is to say, the current send window size of subflow is subtracted each other with the current number of packet sending of this subflow, and the numerical value obtaining is the size of the idle send window in subflow.
Also it should be noted that, in an embodiment of the present invention, if the size of the current send window of subflow is less than or equal to the current number of packet sending of this subflow, be sw≤flightSize, or the size of the current send window of subflow is more than or equal to send window size idle in this subflow, be backLog >=sw-flightSize, this subflow is current in saturation condition, current there is no need as this subflow scheduling grouping, at this moment can continue to travel through next subflow, continue execution step S303.
S307, when current overstocked number of packet in the transmit queue that judges subflow is less than the size of the idle send window in this subflow, or the current number of packet sending of subflow is while being less than the current send window of this subflow size, obtain successively multiple groupings in input rank, and these multiple groupings are dispensed to successively to the transmit queue of this subflow, to fill up idle send window.
Particularly, if the size of the current send window of subflow is greater than the current number of packet sending of this subflow, be sw>flightSize, or the number of packet not yet sending in subflow transmit queue is less than send window size idle in this subflow, be backLog<sw-flightSize, send window size sw that can be first current according to this subflow, in the transmit queue of the current number of packet flightSize sending and this subflow, current overstocked number of packet backLog obtains the number of packet that fills up idle send window, from input rank, dispatch successively sw-flightSize-backLog grouping, afterwards, these a few groupings are assigned in the transmit queue of this subflow successively, to fill up the send window of this subflow free time, thereby can make full use of the transmit queue of subflow.
The scheduling process circulation that should be appreciated that above-described embodiment is carried out, until the DTD in application layer.That is to say, as shown in Figure 3, also need to judge the whether end of transmission (step S308) of data in current application layer after step S307, if the end of transmission, scheduling process stops; If transmission does not finish, continue next subflow of traversal, continue execution step S303.
S309, when judging the overtime or path failure of subflow generation packet loss, is inserted into input rank again according to the order of sequence by the grouping in the transmit queue of this subflow, and by this packet scheduling to the transmit queue of other subflows.
For example, as shown in Figure 2, when judging the path failure of subflow 2 or the phenomenons such as overtime re-transmission occur, the grouping in the transmit queue of this subflow 2 20, grouping 21 can be inserted in input rank again according to the order of sequence, to grouping 20, grouping 21 are redistributed to other subflows.
It should be noted that, in an embodiment of the present invention, when the grouping scheduling method of the multipath TCP of the embodiment of the present invention shifts grouping between each transmit queue, only need to revise the pointer that points to packet header, and without executing data copy operation.Can greatly improve like this efficiency of packet scheduling.
Also it should be noted that, the grouping scheduling method of the multipath TCP of the embodiment of the present invention is without every subflow of lasting poll, because the scheduling process of above-described embodiment can be carried out via two class Event triggered: a class is when a new subflow starts, because the transmit queue of this subflow is empty, now scheduler can be number of packet that this subflow transmit queue distributes and equals the size of its send window; Another kind of for when a certain subflow received acknowledge message, scheduler can be deleted the grouping of having confirmed from the transmit queue of this subflow, then new grouping is dispatched to the transmit queue of this subflow from input rank, to fill up its send window.
According to the grouping scheduling method of the multipath TCP of the embodiment of the present invention, can travel through successively every subflow, and judge whether subflow the overtime or path failure of packet loss occurs, after judging that packet loss or path failure do not occur subflow, calculate the current send window size of this subflow, and calculate the current number of packet sending of this subflow, and can judge that this subflow is current according to current overstocked number of packet in the transmit queue of the current number of packet sending of subflow current send window size, subflow and subflow and whether need scheduling grouping, improved accuracy.
In order to realize above-described embodiment, the present invention also proposes the packet scheduling apparatus of a kind of multipath TCP.
Fig. 4 is the structural representation of the packet scheduling apparatus of multipath TCP according to an embodiment of the invention.
As shown in Figure 4, the packet scheduling apparatus of this multipath TCP can comprise: receive and divide module 100, sending module 200 and scheduler module 300.
Particularly, receive and divide module 100 for receiving the data flow of application layer, and data stream is divided and generated multiple groupings, wherein, data flow has many subflows, and every subflow all has transmit queue.Wherein, in an embodiment of the present invention, grouping can be the block of formatted data of transmitting in current packet switching network, is basic communication unit.In different networks, grouping has a lot of forms, such as the grouping as unit take position (with certain bit representation control information), contains for another example the multibyte grouping of stem etc. in Ethernet.
Sending module 200 is for being sent to input rank by multiple groupings.It should be noted that, the packet scheduling apparatus of the multipath TCP of the embodiment of the present invention can adopt input rank and transmit queue two-level scheduler framework, and the capacity of these two kinds of queues is all limited.
For example, as shown in Figure 2, sending module 200 can first deposit the data flow receiving and division module 100 receives in input rank, waits for and being assigned in the transmit queue of subflow with the unit of being grouped into.If input rank is filled, sending module 200 can suspend transmission data, waits between idle queue empty.
Scheduler module 300 is for being less than the size of the idle send window in subflow at the current overstocked number of packet of the transmit queue that judges subflow, or the current number of packet sending of subflow is while being less than the current send window of subflow size, obtain successively multiple groupings in input rank, and multiple groupings are dispensed to successively to the transmit queue of subflow, to fill up idle send window.
It should be noted that, in an embodiment of the present invention, the number of packet of scheduling relies on three variablees: current overstocked number of packet in the current number of packet sending of send window size (sw), subflow (being that subflow is current has sent but do not received the number of packet (flightSize) of confirmation) that subflow is current and the transmit queue of subflow (being the number of packet (backLog) not yet sending in subflow transmit queue).
Wherein, in an embodiment of the present invention, the large I of the idle send window in subflow is calculated acquisition according to the current send window size of subflow and the current number of packet sending of subflow.That is to say, the current send window size of subflow is subtracted each other obtained numerical value with the current number of packet sending of subflow, is the size of the idle send window in subflow.
More specifically, in the size of the current send window of subflow, be greater than the current number of packet sending of this subflow, be sw>flightSize, or the number of packet not yet sending in subflow transmit queue is less than send window size idle in this subflow, while being backLog<sw-flightSize, scheduler module 300 can be first according to the big or small sw of the current send window of this subflow, in the transmit queue of the current number of packet flightSize sending and this subflow, current overstocked number of packet backLog obtains the number of packet that fills up idle send window, from input rank, dispatch successively sw-flightSize-backLog grouping, afterwards, these a few groupings are assigned in the transmit queue of this subflow successively, to fill up the send window of this subflow free time, thereby can make full use of the transmit queue of subflow.
Also it should be noted that, in an embodiment of the present invention, in the size of the current send window of subflow, be less than or equal to the current number of packet sending of this subflow, be sw≤flightSize, or the size of the current send window of subflow is more than or equal to send window size idle in this subflow, while being backLog >=sw-flightSize, this subflow is current in saturation condition, and scheduler module 300 is current be there is no need as this subflow scheduling grouping.
In one embodiment of the invention, scheduler module 300 also, for when judging the overtime or path failure of subflow generation packet loss, is inserted into input rank by the grouping in the transmit queue of subflow again according to the order of sequence, and by packet scheduling to the transmit queue of other subflows.For example, as shown in Figure 2, when judging the path failure of subflow 2 or the phenomenons such as overtime re-transmission occur, scheduler module 300 can be inserted into the grouping in the transmit queue of this subflow 2 20, grouping 21 in input rank again according to the order of sequence, to grouping 20, grouping 21 are redistributed to other subflows.
It should be noted that, in an embodiment of the present invention, when scheduler module 300 shifts grouping between each transmit queue, only need to revise the pointer that points to packet header, and without executing data copy operation.Can greatly improve like this efficiency of packet scheduling.
According to the packet scheduling apparatus of the multipath TCP of the embodiment of the present invention, by receiving and divide module, the data flow receiving is divided and generated multiple groupings, sending module is sent to these groupings in input rank, scheduler module current overstocked number of packet in the transmit queue that judges certain subflow is less than the size of the idle send window in this subflow, or the current number of packet sending of this subflow is while being less than the current send window of this subflow size, can from input rank, dispatch successively multiple transmit queues that are grouped into this subflow, to fill up the send window of this subflow free time, scheduler module also can be when judging the overtime or path failure of certain subflow generation packet loss, grouping in the transmit queue of this subflow is inserted into input rank again according to the order of sequence, to redistribute in other subflows, make the grouping of parallel transmission from mulitpath arrive as far as possible according to the order of sequence receiving terminal, minimize the expense of receiving terminal buffer memory and assembling out-of-order packet, and applicability is wide, be easy to realize, be applicable to the multi-path data transmission demand in various network topologies.
Fig. 5 is the structural representation of the packet scheduling apparatus of the multipath TCP of a specific embodiment according to the present invention.
As shown in Figure 5, the packet scheduling apparatus of this multipath TCP can comprise: receive and divide module 100, sending module 200, scheduler module 300, spider module 400, the first judge module 500 and computing module 600.
Particularly, spider module 400 is for traveling through successively every subflow.The first judge module 500 is for judging whether subflow the overtime or path failure of packet loss occurs.Computing module 600, for after the first judge module 500 judges that packet loss or path failure do not occur subflow, calculates the current send window size of this subflow, and calculates the current number of packet sending of this subflow.
Particularly, computing module 600 is after the first judge module 500 judges that packet loss or path failure do not occur certain subflow, can first obtain the current congestion window size cwnd of this subflow and the current Flow Control Window of this subflow size win, get minimum value in cwnd and win as the current send window size sw of this subflow.Afterwards, can first obtain the sequence number nextTx of the grouping to be sent such as grouping serial number highestAck the highest in the current confirmed grouping of this subflow and this subflow next one, then nextTx and highestAck are subtracted each other, the numerical value obtaining is the current number of packet flightSize sending of this subflow.
It should be noted that, the spider module 400 of the embodiment of the present invention is without every subflow of lasting poll, because the scheduling process of above-described embodiment can be carried out via two class Event triggered: a class is when a new subflow starts, because the transmit queue of this subflow is empty, now scheduler module 300 can be number of packet that this subflow transmit queue distributes and equals the size of its send window; Another kind of for when a certain subflow received acknowledge message, scheduler module 300 can be deleted the grouping of having confirmed from the transmit queue of this subflow, then new grouping is dispatched to the transmit queue of this subflow from input rank, to fill up its send window.
According to the packet scheduling apparatus of the multipath TCP of the embodiment of the present invention, by spider module, travel through successively every subflow, computing module is after the first judge module judges that packet loss or path failure do not occur subflow, calculate the current send window size of this subflow, and calculate the current number of packet sending of this subflow, whether scheduler module judges according to current overstocked number of packet in the transmit queue of the current number of packet sending of subflow current send window size, subflow and subflow that this subflow is current needs scheduling grouping, has improved accuracy.
Fig. 6 is the structural representation of the packet scheduling apparatus of the multipath TCP of another specific embodiment according to the present invention.
As shown in Figure 6, the packet scheduling apparatus of this multipath TCP can comprise: receive and divide module 100, sending module 200, scheduler module 300, spider module 400, the first judge module 500, computing module 600 and the second judge module 700.
Particularly, the second judge module 700 is for judging whether the current overstocked number of packet of transmit queue of subflow is less than the size of the idle send window in this subflow, or whether the current number of packet sending of subflow is less than the current send window size of this subflow.
It should be noted that, in an embodiment of the present invention, the number of packet of scheduling relies on three variablees: current overstocked number of packet in the current number of packet sending of send window size (sw), subflow (being that subflow is current has sent but do not received the number of packet (flightSize) of confirmation) that subflow is current and the transmit queue of subflow (being the number of packet (backLog) not yet sending in subflow transmit queue).
Wherein, in an embodiment of the present invention, the large I of the idle send window in subflow is calculated acquisition according to the current send window size of this subflow and the current number of packet sending of this subflow.That is to say, the current send window size of subflow is subtracted each other with the current number of packet sending of this subflow, and the numerical value obtaining is the size of the idle send window in subflow.
According to the packet scheduling apparatus of the multipath TCP of the embodiment of the present invention, by the second judge module, judge whether current overstocked number of packet in the transmit queue of subflow is less than the size of the idle send window in this subflow, or whether the current number of packet sending of subflow is less than the current send window size of this subflow, so that the scheduler module send window size current according to subflow, whether in the transmit queue of the current number of packet sending of subflow and subflow, current overstocked number of packet judges that this subflow is current needs scheduling grouping, further improved accuracy.
Any process of otherwise describing in flow chart or at this or method are described and can be understood to, represent to comprise that one or more is for realizing module, fragment or the part of code of executable instruction of step of specific logical function or process, and the scope of the preferred embodiment of the present invention comprises other realization, wherein can be not according to order shown or that discuss, comprise according to related function by the mode of basic while or by contrary order, carry out function, this should be understood by embodiments of the invention person of ordinary skill in the field.
The logic and/or the step that in flow chart, represent or otherwise describe at this, for example, can be considered to the sequencing list of the executable instruction for realizing logic function, may be embodied in any computer-readable medium, for instruction execution system, device or equipment (as computer based system, comprise that the system of processor or other can and carry out the system of instruction from instruction execution system, device or equipment instruction fetch), use, or use in conjunction with these instruction execution systems, device or equipment.With regard to this specification, " computer-readable medium " can be anyly can comprise, device that storage, communication, propagation or transmission procedure are used for instruction execution system, device or equipment or in conjunction with these instruction execution systems, device or equipment.The example more specifically (non-exhaustive list) of computer-readable medium comprises following: the electrical connection section (electronic installation) with one or more wirings, portable computer diskette box (magnetic device), random-access memory (ram), read-only memory (ROM), the erasable read-only memory (EPROM or flash memory) of editing, fiber device, and portable optic disk read-only memory (CDROM).In addition, computer-readable medium can be even paper or other the suitable medium that can print described program thereon, because can be for example by paper or other media be carried out to optical scanner, then edit, decipher or process in electronics mode and obtain described program with other suitable methods if desired, be then stored in computer storage.
Should be appreciated that each several part of the present invention can realize with hardware, software, firmware or their combination.In the above-described embodiment, multiple steps or method can realize with being stored in software or the firmware carried out in memory and by suitable instruction execution system.For example, if realized with hardware, the same in another embodiment, can realize by any one in following technology well known in the art or their combination: there is the discrete logic for data-signal being realized to the logic gates of logic function, there is the application-specific integrated circuit (ASIC) of suitable combinational logic gate circuit, programmable gate array (PGA), field programmable gate array (FPGA) etc.
Those skilled in the art are appreciated that realizing all or part of step that above-described embodiment method carries is can carry out the hardware that instruction is relevant by program to complete, described program can be stored in a kind of computer-readable recording medium, this program, when carrying out, comprises step of embodiment of the method one or a combination set of.
In addition, the each functional unit in each embodiment of the present invention can be integrated in a processing module, can be also that the independent physics of unit exists, and also can be integrated in a module two or more unit.Above-mentioned integrated module both can adopt the form of hardware to realize, and also can adopt the form of software function module to realize.If described integrated module realizes and during as production marketing independently or use, also can be stored in a computer read/write memory medium using the form of software function module.
The above-mentioned storage medium of mentioning can be read-only memory, disk or CD etc.
In the description of this specification, the description of reference term " embodiment ", " some embodiment ", " example ", " concrete example " or " some examples " etc. means to be contained at least one embodiment of the present invention or example in conjunction with specific features, structure, material or the feature of this embodiment or example description.In this manual, to the schematic statement of above-mentioned term not must for be identical embodiment or example.And, specific features, structure, material or the feature of description can one or more embodiment in office or example in suitable mode combination.In addition,, not conflicting in the situation that, those skilled in the art can carry out combination and combination by the feature of the different embodiment that describe in this specification or example and different embodiment or example.
Although illustrated and described embodiments of the invention above, be understandable that, above-described embodiment is exemplary, can not be interpreted as limitation of the present invention, and those of ordinary skill in the art can change above-described embodiment within the scope of the invention, modification, replacement and modification.
Claims (10)
1. a grouping scheduling method of multipath TCP, is characterized in that, comprising:
Receive the data flow of application layer, and described data flow is divided and generated multiple groupings, wherein, described data flow has many subflows, and every described subflow all has transmit queue;
Described multiple groupings are sent in input rank;
When current overstocked number of packet in the described transmit queue that judges subflow is less than the size of the idle send window in described subflow, or the current number of packet sending of described subflow is while being less than the current send window of described subflow size, obtain successively multiple described groupings in described input rank, and described multiple groupings are dispensed to successively to the described transmit queue of described subflow, to fill up the send window of described free time;
When judging the overtime or path failure of subflow generation packet loss, the grouping in the transmit queue of described subflow is inserted into described input rank again according to the order of sequence, and by described packet scheduling to the transmit queue of other subflows.
2. method according to claim 1, is characterized in that, described multiple groupings are sent to input rank in after, also comprise:
Travel through successively every described subflow;
Judge whether described subflow the overtime or path failure of packet loss occurs;
After judging that packet loss or path failure do not occur described subflow, calculate the current send window size of described subflow, and calculate the current number of packet sending of described subflow.
3. method according to claim 2, is characterized in that, also comprises:
Judge whether current overstocked number of packet in the transmit queue of described subflow is less than the size of the idle send window in described subflow, or whether the current number of packet sending of described subflow is less than the current send window size of described subflow.
4. method according to claim 1, it is characterized in that, described in obtaining according to current overstocked number of packet in the transmit queue of the current send window size of described subflow, the current number of packet sending and described subflow, fill up the number of packet of idle send window.
5. method according to claim 2, is characterized in that, the current number of packet sending of described calculating subflow comprises:
Obtain the sequence number of the grouping to be sent such as grouping serial number the highest in the current confirmed grouping of described subflow and the described subflow next one, and calculate the current number of packet sending of described subflow according to the sequence number of the grouping to be sent such as the highest described grouping serial number and the next one.
6. a packet scheduling apparatus of multipath TCP, is characterized in that, comprising:
Receive and divide module, for receiving the data flow of application layer, and described data flow being divided and generated multiple groupings, wherein, described data flow has many subflows, and every described subflow all has transmit queue;
Sending module, for being sent to input rank by described multiple groupings;
Scheduler module, for be less than the size of the idle send window in described subflow at the current overstocked number of packet of the described transmit queue that judges subflow, or the current number of packet sending of described subflow is while being less than the current send window of described subflow size, obtain successively multiple described groupings in described input rank, and described multiple groupings are dispensed to successively to the described transmit queue of described subflow, to fill up the send window of described free time;
Described scheduler module also, for when judging the overtime or path failure of subflow generation packet loss, is inserted into described input rank by the grouping in the transmit queue of described subflow again according to the order of sequence, and by described packet scheduling to the transmit queue of other subflows.
7. device according to claim 6, is characterized in that, also comprises:
Spider module, for traveling through successively every described subflow;
The first judge module, for judging whether described subflow the overtime or path failure of packet loss occurs;
Computing module, for after described the first judge module judges that packet loss or path failure do not occur described subflow, calculates the current send window size of described subflow, and calculates the current number of packet sending of described subflow.
8. device according to claim 7, is characterized in that, also comprises:
The second judge module, for judging whether the current overstocked number of packet of transmit queue of described subflow is less than the size of the idle send window in described subflow, or whether the current number of packet sending of described subflow is less than the current send window size of described subflow.
9. device according to claim 6, it is characterized in that, described in obtaining according to current overstocked number of packet in the transmit queue of the current send window size of described subflow, the current number of packet sending and described subflow, fill up the number of packet of idle send window.
10. device according to claim 7, it is characterized in that, described computing module specifically for: obtain the sequence number of the grouping to be sent such as grouping serial number the highest in the current confirmed grouping of described subflow and the described subflow next one, and calculate the current number of packet sending of described subflow according to the sequence number of the highest described grouping serial number and the grouping to be sent such as next.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410045242.2A CN103763217A (en) | 2014-02-07 | 2014-02-07 | Packet scheduling method and device for multi-path TCP |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410045242.2A CN103763217A (en) | 2014-02-07 | 2014-02-07 | Packet scheduling method and device for multi-path TCP |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103763217A true CN103763217A (en) | 2014-04-30 |
Family
ID=50530379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410045242.2A Pending CN103763217A (en) | 2014-02-07 | 2014-02-07 | Packet scheduling method and device for multi-path TCP |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103763217A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954206A (en) * | 2015-07-31 | 2015-09-30 | 重庆邮电大学 | Disorder analyzing method for multipath parallel transmission system |
CN105100140A (en) * | 2014-05-04 | 2015-11-25 | 腾讯科技(深圳)有限公司 | File transmission method and system |
WO2018032412A1 (en) * | 2016-08-17 | 2018-02-22 | 华为技术有限公司 | Policy control method for multi-path transmission, and related device |
CN107743099A (en) * | 2017-08-31 | 2018-02-27 | 华为技术有限公司 | Data flow processing method, device and storage medium |
CN108768596A (en) * | 2018-05-25 | 2018-11-06 | 京信通信系统(中国)有限公司 | Signal automatic retransmission request method and device |
CN109391559A (en) * | 2017-08-10 | 2019-02-26 | 华为技术有限公司 | The network equipment |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130077501A1 (en) * | 2011-09-22 | 2013-03-28 | Qualcomm Incorporated | Dynamic subflow control for a multipath transport connection in a wireless communication network |
-
2014
- 2014-02-07 CN CN201410045242.2A patent/CN103763217A/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130077501A1 (en) * | 2011-09-22 | 2013-03-28 | Qualcomm Incorporated | Dynamic subflow control for a multipath transport connection in a wireless communication network |
Non-Patent Citations (3)
Title |
---|
YU CAO ET AL: ""Explicit Multipath Congestion Control for Data Center Networks"", 《PROCEEDING OF THE NINTH ACM CONFERENCE ON EMERGING NETWORKING EXPERIMENTS AND TECHNOLOGIES》 * |
徐明伟等: ""MPTCP联合拥塞控制机制的Markov模型"", 《清华大学学报(自然科学版)》 * |
曹宇等: ""一种按需分配的多路径传输分组调度算法"", 《软件学报》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100140A (en) * | 2014-05-04 | 2015-11-25 | 腾讯科技(深圳)有限公司 | File transmission method and system |
CN105100140B (en) * | 2014-05-04 | 2019-05-14 | 腾讯科技(深圳)有限公司 | Document transmission method and system |
CN104954206A (en) * | 2015-07-31 | 2015-09-30 | 重庆邮电大学 | Disorder analyzing method for multipath parallel transmission system |
CN104954206B (en) * | 2015-07-31 | 2018-03-30 | 重庆邮电大学 | A kind of out of order analysis method of multipath parallel transmission system |
WO2018032412A1 (en) * | 2016-08-17 | 2018-02-22 | 华为技术有限公司 | Policy control method for multi-path transmission, and related device |
US11349765B2 (en) | 2016-08-17 | 2022-05-31 | Huawei Technologies Co., Ltd. | Policy control method for multipath transmission, and related device |
CN109391559A (en) * | 2017-08-10 | 2019-02-26 | 华为技术有限公司 | The network equipment |
US11165710B2 (en) | 2017-08-10 | 2021-11-02 | Huawei Technologies Co., Ltd. | Network device with less buffer pressure |
CN107743099A (en) * | 2017-08-31 | 2018-02-27 | 华为技术有限公司 | Data flow processing method, device and storage medium |
CN107743099B (en) * | 2017-08-31 | 2021-08-03 | 华为技术有限公司 | Data stream processing method, device and storage medium |
CN108768596A (en) * | 2018-05-25 | 2018-11-06 | 京信通信系统(中国)有限公司 | Signal automatic retransmission request method and device |
CN108768596B (en) * | 2018-05-25 | 2021-08-24 | 京信网络系统股份有限公司 | Method and device for requesting automatic retransmission of signal |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103763217A (en) | Packet scheduling method and device for multi-path TCP | |
CN102132535B (en) | Method for transferring data packets in communication network and switching device | |
US11362957B2 (en) | Jitter elimination and latency compensation at DetNet transport egress | |
US8559365B2 (en) | After transmission return signal | |
KR101749261B1 (en) | Hybrid networking system with seamless path switching of streams | |
CN115396077A (en) | Data transmission method and device | |
US7801183B2 (en) | Synchronous transmission over packet based network | |
EP3103218A1 (en) | Bandwidth and latency estimation in a communication network | |
CN103841041A (en) | Multi-stream business concurrent transmission control method and device | |
CN102318312B (en) | Controlling bandwidth share | |
CN103348647A (en) | Mechanisms to improve the transmission control protocol performance in wireless networks | |
CN103918304A (en) | Dynamic subflow control for multipath transport connection in wireless communication network | |
CN107770085B (en) | Network load balancing method, equipment and system | |
CN106105141A (en) | Realize the delivery acceleration device of extension transmission control function | |
CN102201977A (en) | Bulk data transfer | |
CN104782133A (en) | Method and apparatus for media data delivery control | |
US20150288609A1 (en) | Deadline-aware network protocol | |
US20190116000A1 (en) | Transport layer identifying failure cause and mitigation for deterministic transport across multiple deterministic data links | |
CN106533954A (en) | Message scheduling method and device | |
US20150263948A1 (en) | Device and method for retransmitting data in a network switch | |
JP2019106697A (en) | Method for dynamically managing message retransmission delay in interconnection network and device | |
JP2009071411A (en) | Method, apparatus and program for transferring data | |
US9184928B2 (en) | Communications terminal, communications method, and program and integrated circuit for controlling a reproduction delay time in distributing a stream | |
CN101883047B (en) | Data concurrency transmission method of multi-network interface device | |
US20080019278A1 (en) | Network congestion analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140430 |
|
WD01 | Invention patent application deemed withdrawn after publication |