RU2329607C2 - Method and device to control queue buffer - Google Patents

Method and device to control queue buffer Download PDF

Info

Publication number
RU2329607C2
RU2329607C2 RU2006126636/09A RU2006126636A RU2329607C2 RU 2329607 C2 RU2329607 C2 RU 2329607C2 RU 2006126636/09 A RU2006126636/09 A RU 2006126636/09A RU 2006126636 A RU2006126636 A RU 2006126636A RU 2329607 C2 RU2329607 C2 RU 2329607C2
Authority
RU
Russia
Prior art keywords
queue
procedure
value
lth
data blocks
Prior art date
Application number
RU2006126636/09A
Other languages
Russian (ru)
Other versions
RU2006126636A (en
Inventor
Хеннинг ВАЙМАНН (DE)
Хеннинг ВАЙМАНН
Райнер ЛЮДВИГ (DE)
Райнер ЛЮДВИГ
Original Assignee
Телефонактиеболагет Лм Эрикссон (Пабл)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Телефонактиеболагет Лм Эрикссон (Пабл) filed Critical Телефонактиеболагет Лм Эрикссон (Пабл)
Priority to RU2006126636/09A priority Critical patent/RU2329607C2/en
Publication of RU2006126636A publication Critical patent/RU2006126636A/en
Application granted granted Critical
Publication of RU2329607C2 publication Critical patent/RU2329607C2/en

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: queue buffer control system, where the queue length parameter QL is compared to the threshold value Lth to initiate the overload notification procedure, contains the procedure of making a decision whether or not to report the overload. Also, the Lth threshold automatic adaptation procedure S5 is provided, based on the estimated communication channel capacity (LC) value. The S5 automatic threshold adaptation procedure takes effect in one of at least two adaptation modes, where the first adaptation mode relates to the delay minimisation in the queue and adapts the Lth threshold value on the basis of n·LC, where n≥1, and the second mode relates to use maximisation and adapts the Lth threshold value based on m·LC, where m≥1 and m>n.
EFFECT: actualisation of two different operation modes, one for reduction of the queue delay, the other - for use maximisation.
36 cl, 4 dwg

Description

ОписаниеDescription

Область техникиTechnical field

Настоящее изобретение относится к способу и устройству для управления буфером очереди, причем упомянутый буфер очереди помещает блоки данных в одну или более очередей.The present invention relates to a method and apparatus for managing a queue buffer, said queue buffer placing data blocks in one or more queues.

Предшествующий уровень техникиState of the art

В системах связи, основанных на блоках данных, то есть в которых подлежащая передаче информация делится на множество блоков, и отдельные блоки посылаются по коммуникационной сети, известно обеспечение буферов очередей в каналах связи в сети, чтобы блоки данных, передаваемые по такому каналу связи, могли быть буферизованы. Буфер может представлять собой передающий или выходной буфер (т.е. буфер для блоков данных, которые должны посылаться по исходящему каналу связи), или принимающий или входной буфер (т.е. буфер для блоков данных, которые посылаются по входящему каналу связи).In communication systems based on data blocks, that is, in which the information to be transmitted is divided into many blocks, and individual blocks are sent over a communication network, it is known to provide queue buffers in communication channels in a network so that data blocks transmitted through such a communication channel can to be buffered. The buffer may be a transmit or output buffer (i.e., a buffer for data blocks to be sent on the outgoing communication channel), or a receive or input buffer (i.e., a buffer for data blocks that are sent on the outgoing communication channel).

Такие блоки для транспортировки данных могут иметь множество наименований, таких как протокольные блоки данных, кадры, пакеты, сегменты, комбинации и т.д., в зависимости от конкретного контекста, конкретного используемого протокола и некоторых других соглашений. В контексте настоящего документа все такие блоки данных будут называться в обобщенном виде как блоки данных.Such blocks for transporting data can have many names, such as protocol data blocks, frames, packets, segments, combinations, etc., depending on the specific context, the particular protocol used and some other conventions. In the context of this document, all such data blocks will be referred to collectively as data blocks.

Процедуры для помещения блоков данных в очередь, продвижения их в очереди и удаления блоков данных из очереди упоминаются как манипулирование очередью или управление очередью.The procedures for placing data blocks in a queue, moving them into a queue, and removing data blocks from a queue are referred to as manipulating a queue or managing a queue.

Известно множество принципов управления очередью, включая такие принципы, в которых параметр длины очереди (например, абсолютная длина очереди или средняя длина) контролируется и сравнивается с пороговым значением длины, чтобы выполнить процедуру уведомления о перегрузке, если пороговое значение превышено. Такая процедура уведомления о перегрузке может состоять в отбрасывании блока данных и/или в маркировке блоков данных (например, установке флага уведомления о перегрузке в блоках данных). Различные примеры таких принципов управления, например отбрасывание при заполнении или случайное раннее обнаружение (RED), описаны во вводной части документа EP-А-1 249 972, поэтому повторять их здесь нет необходимости.A variety of queue management principles are known, including those in which a queue length parameter (e.g., absolute queue length or average length) is monitored and compared with a threshold length value to perform an overload notification procedure if the threshold value is exceeded. Such an congestion notification procedure may consist of discarding a data block and / or marking data blocks (for example, setting the congestion notification flag in data blocks). Various examples of such control principles, such as dropping on filling or random early detection (RED), are described in the introductory part of EP-A-1 249 972, so there is no need to repeat them here.

В документе EP-А-1 249 972 предложена схема, в которой пороговое значение длины, которое должно сравниваться с параметром длины очереди, автоматически обновляется на основе одной или более характеристик канала связи, по которому должны посылаться блоки данных из очереди. Путем адаптации порога к одной или более характеристикам канала связи получается очень гибкая форма активного управления очередью, которая обеспечивает улучшенную пропускную способность и сниженную задержку, особенно по каналам связи, которые имеют изменяющиеся во времени характеристики, таким как беспроводные каналы связи. В частности, в документе EP-А-1 249 972 предлагается оценивать значение емкости канала связи на основе скорости передачи данных в канале связи и адаптации порового значения на основе оцененной емкости канала связи.EP-A-1 249 972 proposes a scheme in which a threshold length value to be compared with a queue length parameter is automatically updated based on one or more characteristics of a communication channel through which data blocks from the queue are to be sent. By adapting the threshold to one or more characteristics of the communication channel, a very flexible form of active queue management is obtained that provides improved throughput and reduced latency, especially over communication channels that have time-varying characteristics, such as wireless communication channels. In particular, EP-A-1 249 972 proposes to evaluate a communication channel capacity based on a data rate in a communication channel and adapting a pore value based on an estimated communication channel capacity.

Задача изобретенияObject of the invention

Задачей настоящего изобретения является создание усовершенствованного способа и устройства для управления буфером очереди.An object of the present invention is to provide an improved method and apparatus for managing a queue buffer.

Сущность изобретенияSUMMARY OF THE INVENTION

Указанная задача решается способом и устройством, как описано в независимых пунктах в настоящей заявке. Предпочтительные варианты осуществления описаны в зависимых пунктах.This problem is solved by the method and device, as described in the independent clauses in this application. Preferred embodiments are described in the dependent claims.

В соответствии с настоящим изобретением в системе, в которой управление буфером очереди или администрирование буфера очереди содержит определение значения параметра длины, связанного с длиной очереди, сравнение этого значения с порогом и выполнение процедуры уведомления о перегрузке, если порог превышен, и в котором предусмотрена процедура адаптации, указанная процедура автоматической адаптации порога действует в одном из, по меньшей мере, первого и второго режима адаптации, где первый режим адаптации связан с минимизацией задержки в очереди, и адаптирует пороговое значение (Lth) на основе n·LC, где LC представляет оцененное значение емкости канала связи, и n=1, и второй режим адаптации связан с максимизацией использования и адаптирует упомянутое пороговое значение (Lth) на основе m·LC, где m>1 и m>n.In accordance with the present invention, in a system in which managing a queue buffer or administering a queue buffer comprises determining a length parameter value related to the queue length, comparing this value with a threshold, and performing an overload notification procedure if the threshold is exceeded, and which includes an adaptation procedure , said automatic threshold adaptation procedure operates in one of at least the first and second adaptation modes, where the first adaptation mode is associated with minimizing the delay in queue, and adapts the threshold value (Lth) based on n · LC, where LC represents the estimated value of the capacity of the communication channel, and n = 1, and the second adaptation mode is associated with maximizing utilization and adapts the mentioned threshold value (Lth) based on m · LC , where m> 1 and m> n.

В соответствии с настоящим изобретением способ управления буфером очереди и контроллер буфера очереди выполнены таким образом, что, по меньшей мере, возможны два различных режима работы, один из которых предусмотрен для снижения задержки очереди, а другой предусмотрен для увеличения использования. В режиме для увеличения использования пороговое значение устанавливается выше, чем в режиме для уменьшения задержки очереди. Причина этого заключается в том, что чем выше порог, тем более длинной становится средняя длина очереди, но отправитель должен иметь возможность разместить больше нагрузки (например, увеличить окно передачи или скорость передачи) в сети передающей блоки данных, поскольку уведомления о перегрузке передаются менее часто, вследствие более высокого порога. Это улучшает использование, так как это означает, что в общем случае всегда будут иметься блоки данных для посылки по каналу связи, но также увеличивает задержку очереди. С другой стороны, если желательно снизить задержку очереди, то порог, при котором может устанавливаться процедура уведомления о перегрузке, должен быть более низким, тем самым приводя к тому, что отправители блоков данных снижают свою нагрузку на сеть более часто, и при этом снижая среднюю задержку очереди. Однако снижение нагрузки также вызывает высокий риск уменьшения использования, поскольку нагрузка может сократиться в такой степени, при которой имеются периоды, в которых отсутствуют блоки данных для пересылки, т.е. в которых канал связи является недоиспользованным. Поэтому настоящее изобретение обеспечивает способ и систему управления очередью, которые обеспечивают гибкое уравновешивание компромисса между задержкой и использованием, за счет обеспечения соответствующих режимов для каждой ситуации.According to the present invention, the queue buffer control method and the queue buffer controller are configured such that at least two different modes of operation are possible, one of which is provided to reduce queue delay, and the other is provided to increase utilization. In mode to increase utilization, the threshold value is set higher than in mode to reduce queue delay. The reason for this is that the higher the threshold, the longer the average queue length becomes, but the sender should be able to place more load (for example, increase the transmission window or transmission speed) in the network transmitting the data blocks, since congestion notifications are transmitted less often due to a higher threshold. This improves utilization, since it means that in general there will always be data blocks to send over the communication channel, but it also increases the queue delay. On the other hand, if it is desirable to reduce the queue delay, the threshold at which the congestion notification procedure can be set should be lower, thereby leading to the fact that senders of data blocks reduce their network load more often, while reducing the average queue delay. However, load reduction also poses a high risk of reduced use, since the load can be reduced to such an extent that there are periods in which there are no data blocks for transfer, i.e. in which the communication channel is underutilized. Therefore, the present invention provides a queue management method and system that provides a flexible balancing of the trade-off between delay and use, by providing appropriate modes for each situation.

Установка первого и второго режима может быть выполнена любым желательным способом. Например, установка может быть осуществлена вручную оператором, например оператор устанавливает параметр так, что процедура управления используется для идентификации того, какой режим должен использоваться. В соответствии с другим примером установка режима может выполняться автоматически. Предпочтительным образом автоматическая установка учитывает число событий указания потерь блоков данных, возникающих вне устройства передачи, в котором предусмотрен управляемый буфер. В частности, в предпочтительном варианте осуществления автоматическая процедура установки режима устанавливает адаптацию порога на второй режим (более высокий порог), если число событий указания потерь блоков данных превышает предварительно заданное значение. Превышение предварительно заданного значения указывает, что возникают потери блоков данных, причем эти потери блоков данных приведут к тому, что отправители блоков данных снижают свою нагрузку, так что дополнительное выполнение уведомлений о перегрузке (например, пропуск блока данных и/или маркировка блока данных) могло бы привести к ненужному дальнейшему снижению нагрузки, что в итоге привело бы к недоиспользованию канала связи.The installation of the first and second mode can be performed in any desired way. For example, the installation can be carried out manually by the operator, for example, the operator sets the parameter so that the control procedure is used to identify which mode should be used. According to another example, setting a mode may be performed automatically. Preferably, the automatic installation takes into account the number of events indicating the loss of data blocks that occur outside the transmission device in which the controllable buffer is provided. In particular, in a preferred embodiment, the automatic mode setting procedure sets the threshold adaptation to the second mode (higher threshold) if the number of data loss indication events exceeds a predetermined value. Exceeding the preset value indicates that data block losses are occurring, and these data block losses will cause the senders of the data blocks to reduce their load, so that additional execution of congestion notifications (for example, skipping a data block and / or marking a data block) could would lead to unnecessary further load reduction, which would ultimately lead to underutilization of the communication channel.

Иными словами, описанный вариант осуществления предполагает, что управление потоком, выполняемое на стороне отправителя и/или получателя, таково, что отправитель будет сокращать свою нагрузку на сеть, передающую блоки данных (т.е. посылать меньше блоков данных), если определяется, что произошла потеря блоков данных. Целью уведомлений о нагрузке, выдаваемых из управляемого буфера очереди, является, таким образом, указание отправителю на необходимость снижения нагрузки на сеть. Вследствие этого данный вариант осуществления имеет преимущество, заключающееся в том, что обеспечивает возможность регулирования выдачи уведомлений о перегрузке в зависимости от потенциальных потерь данных вне устройства передачи блоков данных, в котором предусмотрен буфер. Это позволяет избежать уведомлений о перегрузках (пропусков блоков данных и/или маркировок блоков данных) в случаях, когда потери блоков данных случались бы таким образом, что уведомления о перегрузках могли бы привести к тому, что отправитель снизил бы свою нагрузку в большей степени, чем это необходимо, что, в свою очередь, могло бы привести к недоиспользованию канала связи, в котором предусмотрен буфер очереди. Недоиспользование означает состояние, в котором канал связи не работает, то есть не передает никаких блоков данных. Весьма желательно исключать недоиспользование канала связи, так как неработающий канал связи означает напрасную трату ресурсов.In other words, the described embodiment assumes that the flow control performed on the sender and / or receiver side is such that the sender will reduce its load on the network transmitting data blocks (i.e., send fewer data blocks) if it is determined that Lost data blocks. The purpose of the load notifications issued from the managed queue buffer is, therefore, to indicate to the sender the need to reduce the load on the network. As a result of this, this embodiment has the advantage of allowing the regulation of congestion notifications depending on potential data loss outside the data block transmission device in which the buffer is provided. This avoids congestion notifications (omissions of data blocks and / or data block markings) in cases where loss of data blocks would occur in such a way that congestion notifications could lead to the sender reducing its load to a greater extent than this is necessary, which, in turn, could lead to underutilization of the communication channel, in which the queue buffer is provided. Underutilization means a state in which the communication channel is down, that is, it is not transmitting any data blocks. It is highly desirable to exclude the underutilization of the communication channel, since an idle communication channel means a waste of resources.

В соответствии с другим предпочтительным вариантом осуществления изобретения способ управления буфером очереди и контроллер буфера очереди выполнены таким образом, что события, которые указывают потенциальную потерю данных в потоке, который помещен в очередь в буфере очереди, также принимаются во внимание для динамической адаптации порогового значения длины в заданном режиме адаптации. Иными словами, после того как заданный режим установлен (например, вручную или автоматически, причем автоматическая установка может быть выполнена на основе измеренного числа событий указания потерь), что означает, что пороговое значение базовым образом адаптируется на основе соотношений n·LC или m·LC, где LC представляет емкость канала связи и m>n, динамическая последующая настройка может быть выполнена в зависимости от измеренного числа событий указания потерь.According to another preferred embodiment of the invention, the queue buffer control method and the queue buffer controller are configured such that events that indicate potential data loss in a stream queued in the queue buffer are also taken into account for dynamically adapting the length threshold value to preset adaptation mode. In other words, after the preset mode is set (for example, manually or automatically, and automatic installation can be performed based on the measured number of loss indication events), which means that the threshold value is adapted in a basic way based on the ratios n · LC or m · LC where LC represents the capacity of the communication channel and m> n, dynamic subsequent tuning may be performed depending on the measured number of loss indication events.

Следует отметить, что события указания потерь могут представлять собой любое событие, имеющее возможность указания на потенциальную потерю данных. Например, таким событием может быть пропуск блока данных из последовательности блоков данных, находящихся в очереди (что означает потенциальную потерю данных выше по потоку от буфера очереди) или информацию указания потерь, содержащуюся в блоках данных подтверждения приема, посылаемых от получателя потока, поставленного в очередь, к отправителю потока, поставленного в очередь. Такая информация указания потерь может быть выражена в явной форме, например уведомление в явной форме от получателя потока к отправителю потока, что конкретный блок данных последовательности отсутствует, или в неявной форме, например посылка повторных подтверждений приема для последнего блока данных, принятого корректным образом в последовательности.It should be noted that loss indication events can be any event that has the ability to indicate potential data loss. For example, such an event may be a skip of a data block from a sequence of data blocks in the queue (which means potential data loss upstream of the queue buffer) or loss indication information contained in the acknowledgment data blocks sent from the recipient of the queued stream , to the sender of the stream queued. Such loss indication information may be expressed in explicit form, for example, an explicit notification from the receiver of the stream to the sender of the stream that a particular data block of the sequence is missing, or in an implicit form, for example, sending repeated acknowledgments for the last data block received correctly in the sequence .

Возможность автоматической адаптации порога для реализации в первом режиме или втором режиме означает, что заданной очередью в буфере управляют в соответствии с одним из режимов. Возможно, что буфер содержит множество очередей, каждая из которых связана с одним из доступных режимов (разумеется, может иметься более двух доступных режимов работы, например третий режим, в котором порог длины адаптируется на основе q·LC, где q>m). Иными словами, каждая очередь имеет свое соответствующее пороговое значение длины для сравнения с соответствующим измеренным параметром длины, и каждый порог длины адаптируется индивидуальным образом. В такой ситуации предпочтительным является вариант осуществления, в котором входящие блоки данных, которые должны быть помещены в очередь, разделяются на категории, связанные с режимами, и затем помещаются в очередь, управляемую в соответствии с указанным режимом. Например, контроллер буфера может осуществлять синтаксический анализ блока данных на наличие конкретной информации, например идентификатора протокола или идентификатора порта в заголовке, и назначать блоки данных, являющиеся чувствительными к задержке (например, блоки данных, транспортирующие сегменты из приложения Telnet), в очередь, управляемую в режиме для снижения задержки, и назначать блоки данных, являющиеся чувствительными к пропускной способности (например, блоки данных, транспортирующие сегменты из приложения ftp), в очередь, управляемую в режиме для максимизации использования.The ability to automatically adapt the threshold for implementation in the first mode or second mode means that the specified queue in the buffer is controlled in accordance with one of the modes. It is possible that the buffer contains many queues, each of which is associated with one of the available modes (of course, there can be more than two available modes of operation, for example, the third mode, in which the length threshold is adapted based on q · LC, where q> m). In other words, each queue has its own corresponding threshold length value for comparison with the corresponding measured length parameter, and each length threshold is individually adapted. In such a situation, an embodiment is preferred in which the incoming data blocks to be queued are divided into categories associated with the modes, and then placed in a queue managed in accordance with the specified mode. For example, a buffer controller can parse a data block for specific information, such as a protocol identifier or port identifier in the header, and assign delay sensitive data blocks (for example, data blocks transporting segments from a Telnet application) to a queue controlled by in the mode to reduce the delay, and assign data blocks that are sensitive to bandwidth (for example, data blocks transporting segments from the ftp application), in turn, trolled mode to maximize utilization.

Краткое описание чертежейBrief Description of the Drawings

Дальнейшие аспекты и детали настоящего изобретения поясняются в последующем детальном описании и предпочтительных вариантах осуществления со ссылками на чертежи, на которых представлено следующее:Further aspects and details of the present invention are explained in the following detailed description and preferred embodiments with reference to the drawings, in which the following is presented:

фиг. 1 - схематичное представление блок-схемы буфера и контроллера буфера в соответствии с изобретением;FIG. 1 is a schematic diagram of a block diagram of a buffer and a buffer controller in accordance with the invention;

фиг. 2 - блок-схема варианта осуществления способа в соответствии с изобретением;FIG. 2 is a flowchart of an embodiment of a method in accordance with the invention;

фиг. 3 - блок-схема другого варианта осуществления способа в соответствии с изобретением;FIG. 3 is a flowchart of another embodiment of a method in accordance with the invention;

фиг. 4 - блок-схема базового варианта осуществления способа в соответствии с изобретением.FIG. 4 is a flowchart of a basic embodiment of a method in accordance with the invention.

Детальное описание вариантов осуществления изобретенияDetailed Description of Embodiments

Хотя в некоторых из описываемых далее вариантов осуществления могут даваться ссылки на конкретные протоколы, такие как TCP/IP, настоящее изобретение может быть применено к любой системе, транспортирующей блоки данных, в которых используется схема управления очередью, где проводится процедура уведомления о перегрузке в зависимости от события достижения параметром длины очереди порогового значения длины. Настоящее изобретение не ограничивается каким-либо конкретным таким порогом длины и схемой уведомления о перегрузке, и поэтому, например, применимо к любой известной схеме RED, к схемам, которые отбрасывают блоки данных, когда очередь заполнена, например, с отбрасыванием концевого сегмента, случайным отбрасыванием или отбрасыванием переднего сегмента, и к любой известной схеме, которая выполняет уведомление о перегрузке в явной форме вместо или в дополнение к любому отбрасыванию блоков данных.Although some of the embodiments described below may refer to specific protocols, such as TCP / IP, the present invention can be applied to any system transporting data blocks using a queue management scheme where congestion notification is performed depending on events when the queue length parameter reaches the threshold length value. The present invention is not limited to any particular length threshold and congestion notification scheme, and therefore, for example, applies to any known RED scheme, to schemes that discard data blocks when the queue is full, for example, dropping the end segment, random dropping or dropping the front segment, and to any known scheme that performs overload notification explicitly instead of or in addition to any dropping of data blocks.

Предпочтительно применять способ и устройство, соответствующие настоящему изобретению, в связи с активным управлением очередью, раскрытым в ЕР-А-1249972. Все раскрытие данного документа и соответствующая ему заявка США включены в настоящее описание посредством ссылки.It is preferable to apply the method and apparatus of the present invention in connection with the active queue management disclosed in EP-A-1249972. All disclosure of this document and its corresponding US application are incorporated herein by reference.

На фиг. 1 показано схематичное представление контроллера 10 буфера очереди, обеспечивающего реализацию настоящего изобретения для управления блоками данных в буфере 20 очереди. Ссылочной позицией 3 обозначена коммуникационная сеть, по которой блоки 30 данных поступают в буфер 20 очереди для помещения в очередь 21, прежде чем передаваться по каналу 40 связи. Ссылочная позиция 50 относится к устройству передачи блоков данных, в котором предусмотрены буфер 20 и контроллер 10. Устройство передачи блоков данных может представлять собой, например, маршрутизатор или сервер, соединенный с коммуникационной сетью 3.In FIG. 1 is a schematic representation of a queue buffer controller 10 providing an implementation of the present invention for managing data blocks in a queue buffer 20. Reference numeral 3 denotes a communication network through which the data blocks 30 enter the queue buffer 20 for placing in the queue 21 before being transmitted via the communication channel 40. Reference numeral 50 relates to a data block transmission device, in which a buffer 20 and a controller 10 are provided. The data block transmission device may be, for example, a router or a server connected to a communication network 3.

Блоки 30 данных, помещенные в очередь 21, могут принадлежать одному или более потокам. Поток в общем случае идентифицируется адресом источника и получателя, идентификатором пункта доступа к услугам (SAP) и идентификатором протокола. Определение и концепция потока хорошо известны в уровне техники, например, из TCP/IP, и в этом случае адреса источника и получателя называются IP-адресами, а SAP-идентификатор является адресом порта, так что дальнейшее объяснение здесь не требуется.The data blocks 30 queued 21 may belong to one or more streams. A stream is generally identified by a source and destination address, a service access point identifier (SAP), and a protocol identifier. The definition and concept of a stream is well known in the art, for example, from TCP / IP, in which case the source and destination addresses are called IP addresses, and the SAP identifier is the port address, so no further explanation is required here.

Далее описаны конкретные элементы для воплощения принципа настоящего изобретения в контроллере 10 буфера очереди. Следует отметить, что контроллер буфера очереди в общем случае содержит больше элементов, чем эти показанные элементы, в частности известные элементы для обработки принимаемых блоков данных и управления буфером, которые для простоты не описаны подробно. В частности, контроллер 10 может иметь дополнительные элементы, чтобы реализовать систему, описанную в ЕР-А-1 249 972.The following describes specific elements for implementing the principle of the present invention in the controller 10 of the queue buffer. It should be noted that the queue buffer controller generally contains more elements than these elements shown, in particular, well-known elements for processing received data blocks and buffer control, which are not described in detail for simplicity. In particular, the controller 10 may have additional elements to implement the system described in EP-A-1 249 972.

Ссылочная позиция 101 относится к блоку определения длины очереди, предназначенному для определения значения параметра длины, связанного с длиной очереди 21. Кроме того, предусмотрен блок 102 сравнения для сравнения определенного значения длины с пороговым значением Lth длины, обеспечиваемым блоком 104 адаптации порога, который выполнен с возможностью автоматической адаптации пороговых значений путем оценивания значения LC емкости канала связи на основе скорости DR передачи данных канала 40 связи. Блок 102 сравнения соединен с блоком 103 уведомления о перегрузке, который выполняет процедуру уведомления о перегрузке, если определенное значение длины больше, чем пороговое значение длины. Как пояснено более детально ниже, параметр длины, который должен быть определен, может выбираться любым подходящим или желательным способом, например представлять собой абсолютную длину QL очереди или усредненную длину QLav очереди, и процедура уведомления о перегрузке может быть равным образом выбрана как подходящая или желательная, например, как процедура отбрасывания блоков данных и/или процедура маркировки блоков данных в явной форме.Reference numeral 101 relates to a queue length determination unit for determining a length parameter value associated with a queue length 21. In addition, a comparison unit 102 is provided for comparing a specific length value with a length threshold value Lth provided by the threshold adaptation unit 104, which is configured to the ability to automatically adapt threshold values by estimating the LC value of the communication channel capacity based on the data rate DR of the communication channel 40. The comparison unit 102 is connected to the congestion notification unit 103, which performs the congestion notification procedure if the determined length value is greater than the threshold length value. As explained in more detail below, the length parameter to be determined may be selected in any suitable or desirable way, for example, be the absolute length of the QL queue or the average length of the QLav queue, and the congestion notification procedure may equally be selected as suitable or desirable, for example, as a procedure for discarding data blocks and / or a procedure for marking data blocks in explicit form.

Блок 103 уведомления о перегрузке предпочтительно содержит решающий блок 1031 для принятия решения о том, следует ли выполнить уведомление о перегрузке или нет по отношению к одному или более блокам данных в очереди 21. Иными словами, блок 103 уведомления о перегрузке выполняется таким образом, что он не обязательно выполняет уведомление о перегрузке, если параметр длины очереди превышает пороговое значение длины. Это, в принципе, известно из предшествующего уровня техники, например из системы RED или других систем, описанных в ЕР-А-1 249 972, где пороговое значение длины является первым или более низким порогом, и также предусмотрен второй или более высокий порог, причем если параметр длины очереди превышает первый порог, но не превышает второй порог, то принимается вероятностное решение для выполнения уведомления о перегрузке по отношению к одному или более блокам данных.The congestion notification unit 103 preferably comprises a decision unit 1031 for deciding whether or not to perform congestion notification with respect to one or more data blocks in queue 21. In other words, the congestion notification unit 103 is configured such that optionally performs congestion notification if the queue length parameter exceeds a threshold length value. This is, in principle, known from the prior art, for example from the RED system or other systems described in EP-A-1 249 972, where the length threshold value is a first or lower threshold, and a second or higher threshold is also provided, wherein if the queue length parameter exceeds the first threshold but does not exceed the second threshold, then a probabilistic decision is made to perform congestion notification with respect to one or more data blocks.

В соответствии с настоящим изобретением блок 104 адаптации порога работает в одном из, по меньшей мере, двух режимов адаптации. Первый режим адаптации связан с минимизацией задержки очереди и осуществляет адаптацию порогового значения Lth длины на основе соотношения n·LC, где n ≥ 1. Например, n может быть равно 1, и первый режим адаптации устанавливает Lth = LC или Lth = LC + Δ1, где Δ1 - положительный коэффициент, меньший, чем LC, например 0 < Δ1 ≤ LC/10. Второй режим адаптации связан с максимизацией использования и осуществляет адаптацию порогового значения длины Lth на основе соотношения m·LC, где m>1 и m>n. Например, m может быть равно 3, и второй режим адаптации устанавливает Lth = 3·LC - Δ2, где Δ2 - положительный коэффициент, меньший, чем LC, например 0 < Δ2 ≤ LC/10. Если предусмотрена функция динамической адаптации по отношению к внешним событиям (таким, как события указания потерь) после установки режима, то вышеуказанные установки являются начальными и затем могут быть изменены в соответствии с появлением таких событий. Если не предусматривается функция динамической адаптации, то значение Lth может сохраняться в том виде, как установлено, но следует отметить, что значение LC в общем случае не является статическим, то есть LC будет изменяться во времени, что приведет к возможности изменения соответствующего значения Lth.In accordance with the present invention, the threshold adaptation unit 104 operates in one of at least two adaptation modes. The first adaptation mode is associated with minimizing the queue delay and adapts the threshold value Lth of the length based on the relation n · LC, where n ≥ 1. For example, n may be 1, and the first adaptation mode sets Lth = LC or Lth = LC + Δ1, where Δ1 is a positive coefficient smaller than LC, for example 0 <Δ1 ≤ LC / 10. The second adaptation mode is associated with maximizing utilization and adapts the threshold value of length Lth based on the relation m · LC, where m> 1 and m> n. For example, m can be equal to 3, and the second adaptation mode sets Lth = 3 · LC - Δ2, where Δ2 is a positive coefficient smaller than LC, for example 0 <Δ2 ≤ LC / 10. If a function of dynamic adaptation is provided with respect to external events (such as loss indication events) after setting the mode, then the above settings are initial and then can be changed in accordance with the appearance of such events. If the dynamic adaptation function is not provided, then the value of Lth can be stored as it was established, but it should be noted that the value of LC is generally not static, that is, the LC will change in time, which will lead to the possibility of changing the corresponding value of Lth.

Коэффициенты m и n могут быть произвольными положительными числами, но предпочтительно являются положительными натуральными числами.The coefficients m and n can be arbitrary positive numbers, but are preferably positive natural numbers.

Установка первого режима или второго режима может осуществляться любым подходящим или желательным способом. Например, это может осуществляться вручную оператором, с помощью соответствующего механизма, как показано переключателем 106 на фиг. 1, который может устанавливаться в первый режим М1 или во второй режим М2. Элемент 106 может представлять собой действительный переключатель, но предпочтительным образом является элементом программного обеспечения, с помощью которого пользователь может устанавливать блок адаптации порога в желательный режим.The installation of the first mode or the second mode can be carried out in any suitable or desirable way. For example, this can be done manually by the operator, using the appropriate mechanism, as shown by switch 106 in FIG. 1, which can be installed in the first mode M1 or in the second mode M2. Element 106 may be a valid switch, but is preferably a software element by which a user can set a threshold adaptation unit to a desired mode.

Под значением емкости канала связи может пониматься минимальный объем данных, который отправитель рассматриваемого потока должен отправить, чтобы ширина полосы, которую канал 40 связи выделяет данному потоку, полностью использовалась. Полное использование означает, что доля ширины полосы канала связи, выделенная данному потоку, всегда полностью используется. Иными словами, если рассмотреть упрощенный пример канала 40 связи, который обслуживает только единственный поток, то это означает, что отправитель данного потока посылает такой объем данных, что канал 40 связи постоянно занят, то есть постоянно передает блоки данных, без какого-либо времени ожидания между ними. Иными словами, емкость канала связи определяется объемом данных, который отправитель посылает, так что любые дополнительные посылаемые данные не приведут к увеличению пропускной способности, так как дополнительные данные помещаются в очередь.The value of the capacity of the communication channel can be understood as the minimum amount of data that the sender of the stream in question must send, so that the bandwidth that the communication channel 40 allocates to this stream is fully used. Full use means that the fraction of the bandwidth allocated to this stream is always fully utilized. In other words, if we consider a simplified example of a communication channel 40, which serves only a single stream, this means that the sender of this stream sends such a volume of data that the communication channel 40 is constantly busy, that is, it constantly transmits data blocks, without any waiting time between them. In other words, the capacity of the communication channel is determined by the amount of data that the sender sends, so that any additional data sent will not lead to an increase in throughput, since additional data is queued.

Поэтому емкость канала связи также можно понимать как произведение скорости передачи данных, обеспечиваемой каналом 40 связи для рассматриваемого потока, на время двустороннего распространения (RTT), связанное с упомянутым потоком для случая незагруженной сети. Незагруженная сеть означает, что отсутствует задержка очереди. Вследствие этого значение RTT для незагруженной сети равно разности между действительным RTT потока и всеми задержками очереди для упомянутого потока. Емкость канала связи также определяется иногда как емкость магистрали для гипотетической магистрали между конечными пунктами потока, причем данная магистраль имеет "ширину" DR и "длину", равную значению RTT для незагруженной сети.Therefore, the capacity of the communication channel can also be understood as the product of the data rate provided by the communication channel 40 for the stream under consideration by the round-trip time (RTT) associated with the stream for the case of an unloaded network. An unloaded network means that there is no queue delay. As a result, the RTT value for an unloaded network is equal to the difference between the actual RTT of the stream and all queue delays for said stream. The capacity of the communication channel is also sometimes defined as the capacity of the trunk for a hypothetical trunk between the end points of the flow, and this trunk has a "width" DR and a "length" equal to the RTT value for an unloaded network.

Поэтому оценка значения емкости канала связи будет в общем случае заключаться в определении значения времени, указывающего на значение RTT незагруженной сети, и умножении этого значения на скорость DR передачи данных, обеспечиваемую каналом 40 связи для рассматриваемого потока. Определение этого значения RTT незагруженной сети может осуществляться любым подходящим или желательным способом. Одним примером этого является вычисление суммы постоянного значения RTTwc и значения RTT, обеспечиваемого каналом 40 связи. Значение RTTwc является оценкой наихудшего случая полного значения RTT незагруженной сети, исключая вклад, вносимый каналом 40 связи, и может иметь значение от 150 до 300 мс, более предпочтительно от 150 до 250 мс. Использование этого принципа имеет преимущество, заключающееся в том, что не требуется получать информацию, специфическую для потока.Therefore, the estimation of the communication channel capacity value will generally consist in determining the time value indicating the RTT value of the unloaded network and multiplying this value by the data transfer rate DR provided by the communication channel 40 for the stream in question. The determination of this RTT value of an unloaded network may be carried out in any suitable or desirable way. One example of this is the calculation of the sum of the constant value RTTwc and the value of RTT provided by the communication channel 40. The RTTwc value is the worst case estimate of the full RTT value of an idle network, excluding the contribution made by the communication channel 40, and may have a value of 150 to 300 ms, more preferably 150 to 250 ms. Using this principle has the advantage that it is not necessary to obtain flow specific information.

Альтернативная возможность оценивания значения RTT незагруженной сети для данного потока состоит в вычислении задержки очереди в буфере 20, например, путем сохранения среднего значения времени, в течение которого буферизуемый блок 30 данных находится в очереди 21, и вычисления разности между действительным RTT потока и этой задержкой очереди. Значение действительного RTT для потока может, например, вводиться в блоки данных упомянутого потока отправителем и считываться контроллером 10.An alternative way to estimate the RTT value of an unloaded network for a given stream is to calculate the queue delay in buffer 20, for example, by storing the average time that the buffered data block 30 is in queue 21, and calculating the difference between the actual RTT of the stream and this queue delay . The actual RTT value for the stream may, for example, be entered into the data blocks of the stream by the sender and read by the controller 10.

Следует отметить, что оценка LC емкости канала связи, в общем случае, не будет идентичной текущей мгновенной емкости канала связи. Процесс оценивания емкости канала связи предпочтительно таков, что оцененное значение превышает действительную емкость канала связи, то есть оценка является консервативной. Это может быть реализовано любым подходящим или желательным способом, например, с использованием вышеупомянутых оценок наихудшего случая для RTT незагруженной сети и/или путем добавления предварительно определенных положительных коэффициентов к одному или более параметрам, используемым при оценивании емкости канала связи. Иными словами, можно добавить предварительно определенный коэффициент к значению RTT незагруженной сети и/или к значению RTT канала связи, и/или к значению DR, и можно добавить предварительно заданный положительный коэффициент ε к результату вычислений, то есть заменить вычисленное значение LC на LC + ε: LC ← LC + ε.It should be noted that the estimate of the LC capacity of the communication channel, in General, will not be identical to the current instantaneous capacity of the communication channel. The process of estimating the capacity of the communication channel is preferably such that the estimated value exceeds the actual capacity of the communication channel, that is, the estimate is conservative. This can be implemented in any suitable or desirable way, for example, using the aforementioned worst case estimates for an RTT unloaded network and / or by adding predefined positive coefficients to one or more parameters used in estimating the capacity of the communication channel. In other words, you can add a predefined coefficient to the RTT value of an unloaded network and / or to a RTT value of a communication channel and / or a DR value, and you can add a predefined positive coefficient ε to the calculation result, that is, replace the calculated LC value with LC + ε: LC ← LC + ε.

Выбор параметров n и m для первого и второго режима предпочтительно выполняется в соответствии с реакцией, которую отправитель блоков данных будет проявлять при приеме уведомления о перегрузке. Если отправитель относится к типу, который снижает свою нагрузку на сеть в соответствии с коэффициентом k, например делит свое окно передачи на k, если используется основанное на использовании окна управление потоком, то n предпочтительным образом выбирается как равное k-1, а m предпочтительным образом выбирается как k2-1. Причина этого поясняется ниже.The selection of parameters n and m for the first and second mode is preferably carried out in accordance with the reaction that the sender of the data blocks will exhibit upon receipt of the congestion notification. If the sender is of a type that reduces its network load in accordance with the coefficient k, for example, divides its transmission window by k, if window-based flow control is used, then n is preferably chosen to be equal to k-1, and m is preferred selected as k 2 -1. The reason for this is explained below.

Как отмечено выше, оцененная емкость LC канала связи такова, что как только отправленных блоков данных становится больше, чем это значение, возникает очередь. Как следствие, если достигнуто пороговое значение Lth длины, то объем отправленных данных равен LC+Lth. Вследствие этого, если инициированы уведомления о перегрузке, то основанный на использовании окна отправитель будет иметь окно передачи, равное LC+Lth.As noted above, the estimated LC link capacity is such that as soon as the sent data blocks become larger than this value, a queue occurs. As a result, if the threshold value Lth of the length is reached, then the amount of data sent is equal to LC + Lth. As a result, if congestion notifications are triggered, then the window-based sender will have a transmission window equal to LC + Lth.

В качестве условия для установки Lth в режим, который служит для минимизации задержки очереди, желательно получить корректный баланс между поддержанием средней длины очереди малой и сохранением канала связи занятым, то есть желательно установить длину очереди по возможности малой, не вызывая состояния недоиспользования. Это приводит в тому, что после установления уведомления о перегрузке, то есть когда окно передачи размером Lth+LC разделено на k, то результирующий размер окна будет равен LC, так как это означает, что нагрузка достаточна для поддержания канала связи занятым:As a condition for setting Lth to a mode that serves to minimize queue delay, it is desirable to obtain the correct balance between keeping the average queue length small and keeping the communication channel busy, that is, it is desirable to set the queue length as small as possible without causing a state of underuse. This leads to the fact that after the notification of congestion is established, that is, when the transmission window of size Lth + LC is divided by k, the resulting window size will be equal to LC, since this means that the load is sufficient to keep the communication channel busy:

Figure 00000002
,
Figure 00000002
,

что приводит к Lth=LC·(k-1).which leads to Lth = LC · (k-1).

В качестве условия установки значения Lth в режим, который служит для максимизации использования, учитывается то, что помимо характеристики уведомлений о перегрузке для уменьшения нагрузки, которую отправитель размещает в сети, возникают события индикации потери данных, которые также приводят к тому, что отправитель снижает свою нагрузку. Затем делается следующее предположение наихудшего случая: после первого сокращения окна передачи в k раз возникает событие потери данных (не являющееся намеренным отбрасыванием данных в контексте уведомления о перегрузке), вызывающее дальнейшее уменьшение соответственно коэффициенту k. В таком сценарии, который предполагает возникновение потерь данных вне устройства передачи, в котором находится управляемый буфер, это приводит к условию:As a condition for setting the Lth value to the mode, which serves to maximize utilization, it is taken into account that in addition to the characteristics of congestion notifications to reduce the load that the sender places on the network, data loss indication events occur that also lead to the sender reducing its load. Then the following assumption of the worst case is made: after the first reduction of the transmission window by a factor of k, a data loss event occurs (which is not an intentional discarding of data in the context of an overload notification), causing a further decrease corresponding to the coefficient k. In such a scenario, which assumes data loss outside the transmission device in which the managed buffer is located, this leads to the condition:

Figure 00000003
,
Figure 00000003
,

которое, в свою очередь, приводит к Lth=LC·(k2-1).which, in turn, leads to Lth = LC · (k 2 -1).

В случае протокола TCP/IP, k=2, то есть передатчик уменьшает окно передачи при приеме уведомления о перегрузке или определении события указания потери блока данных. Вследствие этого, если для помещения в очередь сегментов TCP используется управляемый буфер, то n предпочтительно равно 1, а m предпочтительно равно 3.In the case of the TCP / IP protocol, k = 2, that is, the transmitter reduces the transmission window when receiving an overload notification or determining an event indicating the loss of a data block. Because of this, if a managed buffer is used to queue TCP segments, then n is preferably 1, and m is preferably 3.

В соответствии с предпочтительным вариантом осуществления настоящего изобретения дополнительно предусмотрен детектор 105 события указания потери. Детектор 105 выполнен с возможностью обнаружения события вне упомянутого устройства 50 передачи блоков данных, причем упомянутое событие указывает потенциальную потерю блока данных в потоке, помещенном в очередь 21.In accordance with a preferred embodiment of the present invention, a loss indication event detector 105 is further provided. The detector 105 is configured to detect an event outside said data block transmission device 50, said event indicating a potential loss of a data block in a stream placed in queue 21.

В примере, показанном на фиг. 1, детектор 105 события указания потери соединен как с блоком 104 адаптации порога, так и с решающим блоком 1031, так что оба они могут принимать во внимание обнаруженные события указания потери или сигналы, выведенные из них. Однако в объем изобретения также входит вариант, когда только блок 104 адаптации порога принимает во внимание результаты блока 105 обнаружения события указания потери, или когда только решающий блок 1031 принимает во внимание результаты блока 105 обнаружения события указания потери.In the example shown in FIG. 1, a loss indication event detector 105 is connected to both a threshold adaptation unit 104 and a decision block 1031, so that both of them can take into account detected loss indication events or signals output from them. However, it is also within the scope of the invention that only the threshold adaptation unit 104 takes into account the results of the loss indication event detection unit 105, or when only the decision block 1031 takes into account the results of the loss indication event detection unit 105.

Другие особенности процедур, проводимых вышеописанными элементами, поясняются ниже в связи с примерами способа, соответствующими изобретению, которое может быть воплощено в контроллере буфера по фиг. 1.Other features of the procedures carried out by the above elements are explained below in connection with examples of the method according to the invention, which may be embodied in the buffer controller of FIG. one.

Следует отметить, что вышеописанные элементы 101-105 могут быть обеспечены как аппаратные средства, программное обеспечение или любая подходящая комбинация аппаратных средств и программного обеспечения. Предпочтительным образом контроллер 10 представляет собой программируемый процессор данных, а элементы 101 - 105 представляют собой элементы программного обеспечения, то есть части программного кода.It should be noted that the above elements 101-105 may be provided as hardware, software, or any suitable combination of hardware and software. Preferably, the controller 10 is a programmable data processor, and elements 101-105 are software elements, that is, pieces of software code.

На фиг. 4 показана блок-схема базового варианта осуществления способа, соответствующего настоящему изобретению, причем этот способ может быть выполнен с использованием контроллера 10, показанного на фиг. 1. На первом этапе S1 определяется значение параметра длины, связанное с длиной очереди 21. Этот параметр, связанный с длиной очереди, может быть связан с длиной очереди любым желательным или подходящим способом, например, представлять собой действительное или мгновенное значение QL длины очереди или параметр, выведенный из действительного или мгновенного значения длины очереди, такой как среднее значение QLav.In FIG. 4 is a flowchart of a basic embodiment of a method according to the present invention, which method may be performed using the controller 10 shown in FIG. 1. At the first step S1, the value of the length parameter associated with the queue length is determined 21. This parameter associated with the queue length can be associated with the queue length in any desired or suitable way, for example, be a real or instant value QL of the queue length or parameter derived from the actual or instantaneous value of the queue length, such as the average QLav value.

В примере по фиг. 4 параметр, связанный с длиной очереди, представляет собой действительное значение QL длины очереди. Если желательно использовать среднее значение QLav длины очереди, это среднее значение может быть определено в соответствии с любым известным подходящим алгоритмом усреднения, и такой алгоритм может в типовом случае состоять в обновлении старого значения путем вычисления суммы старого среднего значения, умноженного на первый весовой коэффициент, и мгновенного значения длины очереди, умноженного на второй весовой коэффициент. Например, значение Qlav может быть вычислено следующим образом:In the example of FIG. 4, the parameter associated with the queue length is the actual QL of the queue length. If it is desired to use the average value QLav of the queue length, this average value can be determined in accordance with any known suitable averaging algorithm, and such an algorithm may typically consist in updating the old value by calculating the sum of the old average value multiplied by the first weight coefficient, and instantaneous value of the length of the queue multiplied by the second weight coefficient. For example, the Qlav value can be calculated as follows:

Qlav (новое) = Qlav (старое) х (1-1/2wf) + (QL х 1/2wf),Qlav (new) = Qlav (old) x (1-1 / 2 wf ) + (QL x 1/2 wf ),

где QL представляет мгновенное значение длины очереди и wf - экспоненциальный весовой коэффициент, настраиваемый между 0 и 1.where QL represents the instantaneous value of the length of the queue and wf is the exponential weight coefficient, adjustable between 0 and 1.

Согласно фиг. 4 на этапе S2 параметр QL длины очереди сравнивается с пороговым значением Lth длины очереди. Если пороговое значение Lth длины очереди превышено, то выполняется процедура S3 уведомления о перегрузке, в противном случае процедура S3 уведомления о перегрузке пропускается.According to FIG. 4, in step S2, the queue length parameter QL is compared with the queue length threshold value Lth. If the threshold value Lth of the queue length is exceeded, the congestion notification procedure S3 is executed, otherwise the congestion notification procedure S3 is skipped.

Как отмечено выше, процедура уведомления о перегрузке может быть выбрана для проведения любым подходящим или желательным способом. Например, она может содержать отбрасывание/маркировку одного или более предварительно определенных или выбранных случайным образом блоков данных из очереди 21, или отбрасывание/маркировку одного или более вновь поступающих блоков данных перед помещением их в очередь 21.As noted above, the congestion notification procedure may be selected to be carried out in any suitable or desirable manner. For example, it may include discarding / marking one or more predefined or randomly selected data blocks from queue 21, or discarding / marking one or more newly arriving data blocks before placing them in queue 21.

Процедура уведомления о перегрузке может также содержать процедуру принятия решения о том, следует ли действительно выполнять уведомление о перегрузке по отношению к одному или более блокам данных из очереди 21. Как отмечено выше, такая процедура принятия решения может, например, зависеть от функции вероятности, как это известно в предшествующем уровне техники.The congestion notification procedure may also include a decision-making procedure on whether or not to perform congestion notification with respect to one or more data blocks from queue 21. As noted above, such a decision-making procedure may, for example, depend on a probability function, such as this is known in the prior art.

В примере, показанном на фиг. 4, процедура управления затем продолжается на этапе S5, на котором выполняется процедура автоматической адаптации порога. Как определено выше, процедура S5 автоматической адаптации порога выполняется в одном из, по меньшей мере, первого и второго режима адаптации, причем первый режим адаптации связан с минимизацией задержки очереди и адаптацией порогового значения Lth на основе соотношения n·LC, где n=1, а второй режим адаптации связан с максимизацией использования и адаптацией порогового значения Lth на основе соотношения m·LC, где m>1 и m>n.In the example shown in FIG. 4, the control procedure then continues to step S5, in which the automatic threshold adaptation procedure is performed. As defined above, the automatic threshold adaptation procedure S5 is performed in one of at least the first and second adaptation modes, the first adaptation mode being associated with minimizing the queue delay and adapting the threshold value Lth based on the relation n · LC, where n = 1, and the second adaptation mode is associated with maximizing utilization and adapting the threshold value Lth based on the relation m · LC, where m> 1 and m> n.

Режим, в котором реализуется этап S5, может быть установлен вручную оператором или может быть установлен автоматически подпрограммой, предназначенной для выполнения этой задачи. Пример такой подпрограммы описан ниже.The mode in which step S5 is implemented can be manually set by the operator or can be set automatically by a subroutine designed to perform this task. An example of such a routine is described below.

На фиг. 2 показан вариант осуществления способа, который содержит все этапы варианта, показанного на фиг. 4, так что повторное их описание не требуется, при этом процедура S4 обнаружения события указания потери добавлена после этапов S2, S3. Эта процедура S4 обнаружения события указания потери может обнаруживать события, которые указывают на потенциальную потерю блока данных в одном или более потоков, помещенных в очередь 21, где возникает эта потенциальная потеря блока данных вне устройства 15 передачи блоков данных. Например, процедура S4 обнаружения события указания потери может содержать контроль идентификаторов блоков данных помещенного в очередь потока, где пропуск блока данных из последовательности указывает на потенциальную потерю блока данных. Альтернативно или дополнительно, процедура обнаружения события указания потери может содержать контроль информации указания потери в блоках данных подтверждения, посланных от получателя потока к отправителю потока, причем эта информация указания потери может быть представлена в явной или неявной форме.In FIG. 2 shows an embodiment of a method that comprises all the steps of the embodiment shown in FIG. 4, so that a repeated description thereof is not required, with the procedure for detecting the loss indication event S4 being added after steps S2, S3. This loss indication event detection procedure S4 can detect events that indicate a potential loss of a data block in one or more streams placed in a queue 21 where this potential loss of a data block occurs outside of the data block transmitting device 15. For example, the loss indication event detection procedure S4 may comprise monitoring the identifiers of the data blocks of the queued stream, where skipping the data block from the sequence indicates a potential loss of the data block. Alternatively or additionally, the procedure for detecting a loss indication event may comprise monitoring the loss indication information in acknowledgment data blocks sent from the receiver of the stream to the sender of the stream, this loss indication information may be presented in explicit or implicit form.

В соответствии с примером на фиг. 2, процедура S5 автоматической адаптации порога принимает во внимание результаты, обеспечиваемые процедурой S4 обнаружения события указания потери, для того чтобы автоматически устанавливать первый или второй режим адаптации. Например, процедура S4 обнаружения события указания потери может вывести значение отсчета, указывающее число таких событий указания потерь (что поясняется ниже более детально), и если это значение отсчета превышает предварительно заданное значение, то процедура адаптации устанавливается для работы во втором режиме (оптимизация использования), а в противном случае она устанавливается в первый режим (оптимизация задержки).In accordance with the example of FIG. 2, the automatic threshold adaptation procedure S5 takes into account the results provided by the loss indication event detection procedure S4 in order to automatically set the first or second adaptation mode. For example, the loss indication event detection procedure S4 may output a reference value indicating the number of such loss indication events (which will be explained in more detail below), and if this reference value exceeds a predetermined value, the adaptation procedure is set to work in the second mode (optimization of use) otherwise, it is set to the first mode (delay optimization).

Помимо использования результата процедуры обнаружения события указания потери для автоматической установки режима адаптации, дополнительно или альтернативно также возможно использовать результат процедуры обнаружения события указания потери для динамической адаптации порогового значения Lth в первом или втором режиме. Иными словами, после того как данный режим установлен (например, вручную или автоматически, причем автоматическая установка может быть выполнена на основе измеренного числа событий указания потери), что означает, что пороговое значение, в принципе, адаптируется на основе соотношения nxLC или mxLC, дальнейшая динамическая регулировка может выполняться в зависимости от измеренного числа событий указания потерь.In addition to using the result of the loss indication event detection procedure to automatically set the adaptation mode, it is additionally or alternatively possible to use the result of the loss indication event detection procedure for dynamically adapting the threshold value Lth in the first or second mode. In other words, after this mode is set (for example, manually or automatically, and automatic installation can be performed based on the measured number of loss indication events), which means that the threshold value is, in principle, adapted based on the ratio nxLC or mxLC, further dynamic adjustment may be performed depending on the measured number of loss indication events.

Например, если процедура обнаружения события указания потери указывает некоторое количество потенциальных потерь блоков данных вне устройства 50 передачи, то порог Lth, используемый для запуска процедуры уведомления о перегрузке, может быть увеличен относительно значения, которое было установлено в заданном режиме. Например, он может быть увеличен относительно оцененного значения LC емкости канала связи, которое могло бы являться начальным вариантом выбора для значения Lth в первом режиме. Увеличение будет составлять только долю от LC, например, до одной десятой LC, в качестве некоторого типа «тонкой настройки» в заданном режиме.For example, if the loss indication event detection procedure indicates a number of potential data block losses outside the transmission device 50, then the threshold Lth used to start the congestion notification procedure may be increased relative to the value that was set in the predetermined mode. For example, it can be increased relative to the estimated LC value of the communication channel capacity, which could be the initial choice for the Lth value in the first mode. The increase will be only a fraction of the LC, for example, up to one tenth of the LC, as some type of “fine tuning” in a given mode.

Увеличение порогового значения Lth делает менее вероятным то, что параметр QL длины очереди достигнет порогового значения Lth на этапе S2, так что менее вероятно, что будет выполнено уведомление о перегрузке. Поэтому можно избежать того, что уведомления о перегрузке будут выполняться, хотя отправитель потока уже снизил нагрузку на сеть ввиду потерь блоков данных, которые возникли независимо от процедуры уведомления о перегрузке. Потери блоков данных вне блока 50 передачи вместе с уведомлениями о перегрузке от блока 50 передачи могут привести к тому, что отправитель потока снизит свою нагрузку на сеть в слишком большой степени, что, в свою очередь, могло бы привести к недоиспользованию канала 40 связи.Increasing the threshold value Lth makes it less likely that the queue length parameter QL will reach the threshold value Lth in step S2, so it is less likely that congestion notification will be performed. Therefore, it is possible to avoid the fact that congestion notifications will be executed, although the sender of the stream has already reduced the load on the network due to the loss of data blocks that occurred regardless of the congestion notification procedure. Losses of data blocks outside the transmission unit 50 together with congestion notifications from the transmission unit 50 can cause the sender of the stream to reduce its network load too much, which, in turn, could lead to the underutilization of communication channel 40.

Следует обратить внимание на тот факт, что конкретный порядок этапов, показанный на фиг. 2 и 4, приведен только для примера. В частности, этапы S1, S2 и S3, которые совместно образуют процедуру принятия решения о запуске процедуры уведомления о перегрузке, не зависят от процедуры адаптации, воплощенной посредством этапа S5. Следовательно, этапы S1-S3 могут быть упорядочены независимо от этапа S5. Равным образом, этап S4 может реализовываться независимо от этапов S1-S3 и S5, например, как процедура, которая выполняется параллельно с другими и/или селективно вызывается в качестве подпрограммы.Attention is drawn to the fact that the particular order of steps shown in FIG. 2 and 4 are for example purposes only. In particular, steps S1, S2, and S3, which together form the decision procedure for starting the congestion notification procedure, are independent of the adaptation procedure implemented by step S5. Therefore, steps S1-S3 can be ordered independently of step S5. Similarly, step S4 may be implemented independently of steps S1-S3 and S5, for example, as a procedure that is executed in parallel with others and / or is selectively called as a subroutine.

В отношении примеров, показанных на фиг. 2 и 4, следует отметить, что все показанные этапы, в принципе, будут содержаться в более масштабном способе управления буфером 20 очереди, причем этот более масштабный способ имеет больше этапов и процедур, но эти дополнительные этапы и процедуры не показаны, поскольку они не касаются настоящего изобретения. Способы по фиг. 2 и 4, как и все варианты осуществления способов согласно изобретению, могут быть реализованы как программное обеспечение, где этапы S1-S3 могут быть реализованы, например, в одной цепочке программ, в то время как этап S5 может быть реализован в другой независимой цепочке программ. Этап S4 может быть реализован в еще одной независимой цепочке программ.With respect to the examples shown in FIG. 2 and 4, it should be noted that all the steps shown will, in principle, be contained in a larger-scale way of managing the queue buffer 20, and this larger-scale method has more steps and procedures, but these additional steps and procedures are not shown, since they do not concern of the present invention. The methods of FIG. 2 and 4, like all embodiments of the methods according to the invention, can be implemented as software, where steps S1-S3 can be implemented, for example, in one program chain, while step S5 can be implemented in another independent program chain . Step S4 may be implemented in yet another independent program chain.

В примере, показанном на фиг. 2, процедура адаптации для Lth на этапе S5 может принимать во внимание результат процедуры S4 обнаружения события указания потери любым желательным или подходящим образом. В принципе, процедура адаптации порога должна быть реализована таким образом, чтобы пороговое значение Lth длины увеличивалось с увеличением появления потенциальных потерь данных вне устройства 50 передачи блоков данных, чтобы сделать запуск процедуры S3 уведомления о перегрузке менее вероятным, как пояснено выше.In the example shown in FIG. 2, the adaptation procedure for Lth in step S5 may take into account the result of the procedure for detecting the loss indication event S4 in any desired or suitable manner. In principle, the threshold adaptation procedure should be implemented in such a way that the threshold value Lth of the length increases with the occurrence of potential data loss outside the data block transmission device 50 to make the start of the congestion notification procedure S3 less likely, as explained above.

В соответствии с предпочтительным вариантом осуществления изобретения способ обнаружения события потери выполняется таким образом, что предусматривается процедура подсчета для подсчета числа событий указания потери блоков данных, возникающих вне устройства 50 передачи в рассматриваемом помещенном в очередь потоке, и обеспечивается процедура для получения характеристического значения отсчета из отсчитанных чисел. Автоматическая процедура адаптации порога затем содержит этап установки режима адаптации и/или точной настройки порогового значения Lth в зависимости от этого характеристического значения отсчета.According to a preferred embodiment of the invention, the method of detecting a loss event is performed in such a way that a counting procedure is provided for counting the number of events indicating loss of data blocks occurring outside the transmission device 50 in the queued stream under consideration, and a procedure is provided for obtaining a characteristic count value from the counted numbers. The automatic threshold adaptation procedure then comprises the step of setting the adaptation mode and / or fine-tuning the threshold value Lth depending on this characteristic reference value.

Процесс получения характеристического значения отсчета может быть выбран любым подходящим или желательным способом. Например, он может содержать определение числа событий указания потерь, возникающих вне устройства 50 передачи блоков данных в рассматриваемом помещенном в очередь потоке в каждом из р соответствующих предварительно определенных временных интервалов, где р - натуральное число, и затем выбор максимума из этих чисел в качестве характеристического значения отсчета. Если р равно 1, то это означает просто отсчет числа событий указания потерь в пределах предварительно определенного интервала и выдачу значения отсчета для каждого последовательного интервала. Для того чтобы сделать характеристическое значение отсчета менее восприимчивым к кратковременным флуктуациям, предпочтительно выбрать р большим, чем 1, например р=5. В этом случае процедура удерживает отсчитанное число событий указания потерь в пяти самых последних интервалах и выводит максимум из событий указания потерь самых последних пяти интервалов в качестве характеристического значения отсчета.The process of obtaining the characteristic value of the reference can be selected by any suitable or desirable method. For example, it may contain determining the number of events indicating losses incurred outside the data block transmission device 50 in the queued stream in each of p corresponding predefined time intervals, where p is a natural number, and then selecting the maximum of these numbers as characteristic reference values. If p is 1, then this simply means a count of the number of loss indication events within a predetermined interval and the output of a count value for each consecutive interval. In order to make the characteristic value of the reference less susceptible to short-term fluctuations, it is preferable to choose p greater than 1, for example p = 5. In this case, the procedure holds the counted number of loss indication events in the five most recent intervals and derives the maximum from the loss indication events of the most recent five intervals as the characteristic value of the reference.

Предварительно определенный интервал или интервалы, в течение которых отсчитывается число событий указания потерь, могут быть выбраны любым подходящим или желательным образом, например, как имеющие предварительно определенную фиксированную длину. Предпочтительным образом они определяются динамически, как время между двумя последовательными решениями по выполнению уведомления о перегрузке для одного или более блоков данных посредством процедуры решения, содержащейся в процедуре уведомления о перегрузке. Иными словами, когда процедура решения в процедуре уведомления о перегрузке решает выполнить уведомление о перегрузке, инициируется новый интервал, и, следовательно, начинается новый отсчет событий указания потерь. Этот отсчет событий указания потерь продолжается до следующего выполнения уведомления о перегрузке.The predetermined interval or intervals during which the number of loss indication events is counted can be selected in any suitable or desirable manner, for example, as having a predetermined fixed length. Advantageously, they are determined dynamically, as the time between two consecutive decisions to execute congestion notification for one or more data units by means of the decision procedure contained in the congestion notification procedure. In other words, when the decision procedure in the congestion notification procedure decides to perform congestion notification, a new interval is triggered, and therefore a new count of loss indication events begins. This count of loss indication events continues until the next congestion notification.

Другая возможность получения характеристического значения отсчета заключается в определении среднего числа событий указания потерь, возникающих вне устройства 50 передачи. Такое усреднение может проводиться путем контроля числа событий указания потерь в последовательных предварительно определенных интервалах, как в примере, описанном выше, и затем усреднения отсчитанных таким образом чисел по ряду интервалов. Такая операция усреднения предпочтительно проводится как текущее усреднение, например:Another possibility of obtaining the characteristic value of the reference is to determine the average number of events indicating the losses that occur outside the transmission device 50. Such averaging can be carried out by controlling the number of events indicating losses in successive predefined intervals, as in the example described above, and then averaging the numbers thus calculated over a number of intervals. Such an averaging operation is preferably performed as current averaging, for example:

AV(новое)=AV(старое) x (1-q) + Num x q,AV (new) = AV (old) x (1-q) + Num x q,

где AV представляет усредненное значение, q - весовой коэффициент, определяемый как 0<q<1, и Num представляет число событий указания потерь в самом последнем завершенном интервале.where AV represents the average value, q is the weighting factor, defined as 0 <q <1, and Num represents the number of loss indication events in the most recent completed interval.

Как уже упомянуто, в общем случае процедура S5 адаптации длины порога будет увеличивать пороговое значение Lth длины, если характеристическое значение отсчета указывает возрастание событий указания потерь.As already mentioned, in the general case, the threshold length adaptation procedure S5 will increase the threshold length value Lth if the characteristic reference value indicates an increase in loss indication events.

Относительно отсчета событий указания потерь следует отметить, что выбор того, что отсчитывается в качестве события указания потери, может выполняться любым подходящим или желательным образом. Например, если процедура обнаружения события указания потери содержит контроль идентификаторов последовательности в рассматриваемом потоке, то каждое обнаружение пропущенного блока данных в последовательности («пропуск» в последовательности) может отсчитываться как событие указания потери. Этот процесс может также модифицироваться тем, что распознавание такого пропуска не отсчитывается непосредственно как событие указания потери, но процедура сначала ожидает в течение предварительно определенного периода ожидания, и событие указания потери отсчитывается только в том случае, если пропущенный блок данных не появляется в течение периода ожидания. Введение такого периода ожидания делает процедуру более устойчивой к переупорядочиванию блоков данных в канале передачи в сети 3.Regarding the count of loss indication events, it should be noted that the selection of what is counted as a loss indication event can be made in any suitable or desirable manner. For example, if the procedure for detecting a loss indication event includes monitoring sequence identifiers in the stream under consideration, then each detection of a missing data block in the sequence (“skip” in the sequence) can be counted as a loss indication event. This process can also be modified in that the recognition of such a gap is not directly counted as a loss indication event, but the procedure first waits for a predetermined wait period, and the loss indication event is counted only if the missing data block does not appear during the wait period . The introduction of such a waiting period makes the procedure more resistant to reordering of data blocks in the transmission channel in network 3.

В качестве другого примера, если процедура обнаружения события указания потери содержит контроль информации указания потерь в блоках данных подтверждения, то, например, возникновение информации указания потерь может отсчитываться как событие указания потери. Например, в случае протокола TCP/IP событие указания потери может представлять собой появление дублирующего подтверждения приема. Как таковое, каждое появление дублирующего подтверждения может отсчитываться как событие указания потери. Однако при контроле блоков данных подтверждения на наличие информации указания потерь предпочтительно, чтобы контроллер буфера работал тем же самым способом, что и отправитель блоков данных, что касается идентификации событий потерь блоков данных. Иными словами, контроллер буфера должен применять те же самые критерии для определения события потери блока данных, что и у отправителя блока данных, для цели управления потоком. Например, в случае протокола TCP/IP отправитель блока данных будет определять, что произошло событие потери блока данных после приема предварительно определенного числа (например, 3) дублирующих подтверждений приема. В этом случае предпочтительно, чтобы контроллер буфера также отсчитывал дублирующие подтверждения приема и определял, что произошло событие потери блока данных после отсчета предварительно определенного числа (например, 3) дублирующих подтверждений приема.As another example, if the procedure for detecting a loss indication event comprises monitoring loss indication information in acknowledgment data blocks, then, for example, the occurrence of loss indication information may be counted as a loss indication event. For example, in the case of TCP / IP, a loss indication event may be the occurrence of duplicate acknowledgment. As such, each occurrence of a duplicate acknowledgment may be counted as a loss indication event. However, when monitoring the acknowledgment data blocks for loss indication information, it is preferable that the buffer controller operate in the same manner as the sender of the data blocks with regard to identifying data block loss events. In other words, the buffer controller must apply the same criteria to determine the data block loss event as the sender of the data block for the purpose of flow control. For example, in the case of the TCP / IP protocol, the sender of the data block will determine that an event has occurred when the data block was lost after receiving a predetermined number (for example, 3) of duplicate acknowledgments. In this case, it is preferable that the buffer controller also counts duplicate acknowledgments and determines that a data block loss event has occurred after counting a predetermined number (e.g. 3) duplicate acknowledgments.

Если уведомление о перегрузке, выполняемое контроллером буфера, соответствует пропускам блоков данных, то контроллер предпочтительным образом должен быть выполнен с возможностью регистрации этих пропусков во взаимосвязи с номером последовательности пропущенного блока данных, чтобы иметь возможность идентифицировать сообщения подтверждения приема, которые относятся к указанному пропущенному блоку данных, и не отсчитывать такую информацию указания потери в качестве события, которое указывает на потерю данных вне устройства 50 передачи.If the congestion notification performed by the buffer controller corresponds to gaps in the data blocks, then the controller should preferably be able to register these gaps in conjunction with the sequence number of the skipped data block in order to be able to identify acknowledgment messages that refer to the specified skipped data block , and do not count such loss indication information as an event that indicates data loss outside the transmission device 50 chi.

Далее другой вариант осуществления настоящего изобретения описан со ссылкой на фиг. 3. Этапы S1 и S2 идентичны тем, которые уже были описаны со ссылкой на фиг. 2 и 4, так что нет необходимости в повторении этого описания. Однако в примере по фиг. 3 процедура S3 уведомления о перегрузке состоит из этапов S31, S32 и S33, которые отличаются от примера, показанного на фиг. 2 или 4. Этап S31 представляет процедуру S32 принятия решения о том, следует ли выполнять уведомление о перегрузке по отношению к одному или более блокам данных. Например, это может быть приведенным выше примером проверки функции вероятности. Если результат этой процедуры принятия решения утвердительный, то проводится этап S31, то есть процедура определения того, не произошло ли событие, указывающее на потенциальную потерю блока данных вне устройства 50 передачи данных для рассматриваемого потока, и если такое событие произошло, то решение о выполнении уведомления о перегрузке на этапе S31 отменяется. Иными словами, в этом случае не выполняется уведомление о перегрузке.Next, another embodiment of the present invention is described with reference to FIG. 3. Steps S1 and S2 are identical to those already described with reference to FIG. 2 and 4, so there is no need to repeat this description. However, in the example of FIG. 3, the congestion notification procedure S3 consists of steps S31, S32 and S33, which are different from the example shown in FIG. 2 or 4. Step S31 represents a decision procedure S32 on whether to perform congestion notification with respect to one or more data blocks. For example, this could be the above example of checking a probability function. If the result of this decision procedure is affirmative, then step S31 is performed, that is, a procedure for determining whether an event has occurred indicating a potential loss of a data block outside the data transmission device 50 for the stream in question, and if such an event has occurred, is the decision to notify overload in step S31 is canceled. In other words, in this case, congestion notification is not performed.

В конкретном примере по фиг. 3 этап S32 заключается в определении того, произошло ли событие указания потери в пределах предварительно заданного защитного интервала времени GT после того, как обнаружено, что значение параметра QL длины превысило пороговое значение Lth длины.In the specific example of FIG. 3, step S32 is to determine whether a loss indicating event has occurred within the predetermined guard time interval GT after it is detected that the length parameter QL has exceeded the threshold length value Lth.

Иными словами, после обнаружения превышения параметром QL значения Lth, контролируется, произошло ли событие LIE указания потери в течение времени GT или нет. Если возникает событие указания потери, то принятое на этапе S31 решение об уведомлении о перегрузке отменяется или блокируется, то есть не выполняется, так как предполагается, что отправитель потока будет снижать свою нагрузку на сеть на основе указанной потери блоков данных вне устройства 50 передачи, так что выполнение уведомления о перегрузке могло бы привести к избыточному сокращению посылаемых блоков данных со стороны отправителя потока, тем самым, возможно, приводя к недоиспользованию канала 40 связи.In other words, after detecting that the QL parameter has exceeded the value of Lth, it is monitored whether the LIE event has occurred indicating loss during GT time or not. If a loss indication event occurs, then the decision about the congestion notification made in step S31 is canceled or blocked, that is, it is not executed, since it is assumed that the sender of the stream will reduce its network load based on the specified loss of data blocks outside the transmission device 50, so that the implementation of the congestion notification could lead to an excessive reduction in the data blocks sent by the sender of the stream, thereby possibly leading to the underutilization of the communication channel 40.

С другой стороны, если в процедуре на этапе S32 не обнаруживается события указания потери в течение защитного интервала времени GT, то уведомление о перегрузке, решение о котором принято на этапе S31, выполняется на этапе S33.On the other hand, if no loss indication events are detected in the procedure in step S32 during the guard time interval GT, then an overload notification decided in step S31 is performed in step S33.

В вышеприведенном примере по фиг. 3 процедура решения, которая состоит из этапов S31, S32 и S33, принимает во внимание результат обнаружения события указания потери. В примере по фиг. 2 именно процедура S5 автоматической адаптации порога принимала во внимание результат обнаружения события указания потери. Следует отметить, что эти две возможности использования результата обнаружения события указания потери могут также объединяться, т.е. как процедура автоматической адаптации порога, так и процедура решения принимают во внимание результат обнаружения события указания потери.In the above example of FIG. 3, a decision procedure, which consists of steps S31, S32, and S33, takes into account the result of detecting a loss indication event. In the example of FIG. 2, it was the automatic threshold adaptation procedure S5 that took into account the result of detecting a loss indication event. It should be noted that these two possibilities of using the result of the detection of a loss indication event can also be combined, i.e. both the automatic threshold adaptation procedure and the decision procedure take into account the result of detecting a loss indication event.

Далее описан еще один вариант осуществления. Возможность автоматической адаптации S5 порога или возможность работы блока 1094 адаптации порога в первом режиме или во втором режиме означает, что заданная очередь в управляемом буфере управляется в соответствии с одним из режимов. Возможно, что буфер поддерживает множество очередей, каждая из которых связана с одним или более из доступных режимов. Разумеется, может иметься больше, чем два режима, например третий режим, в котором порог длины адаптируется на основе sxLC, где s>m. Иными словами, каждая очередь имеет свое соответствующее пороговое значение длины для сравнения с соответствующим измеренным параметром длины, и каждый порог длины адаптируется индивидуально. В такой ситуации предложен вариант осуществления, в котором входящие блоки данных, которые должны помещаться в очередь, селектируются по категориям, связанным с режимами, и затем помещаются в очередь, управляемую в соответствии с выбранным режимом. Например, контроллер буфера может выполнять синтаксический анализ блока данных на наличие конкретной информации, например идентификатора протокола или идентификатора в заголовке, и относить блоки данных, чувствительных к задержке (например, блоки данных, транспортирующие сегменты из Telnet-приложения), к очереди, управляемой в режиме для снижения задержки, и относить блоки данных, чувствительных к пропускной способности (например, блоки данных, транспортирующие сегменты из ftp-приложения), к очереди, управляемой в режиме для максимизации использования.The following describes another embodiment. The ability to automatically adapt the threshold threshold S5 or the ability of the threshold adaptation unit 1094 to operate in the first mode or in the second mode means that the specified queue in the managed buffer is controlled in accordance with one of the modes. It is possible that the buffer supports many queues, each of which is associated with one or more of the available modes. Of course, there can be more than two modes, for example, the third mode, in which the length threshold is adapted based on sxLC, where s> m. In other words, each queue has its own corresponding threshold length value for comparison with the corresponding measured length parameter, and each length threshold is individually adapted. In such a situation, an embodiment is proposed in which incoming data blocks to be queued are selected by categories associated with the modes, and then placed in a queue managed in accordance with the selected mode. For example, a buffer controller can parse a data block for specific information, such as a protocol identifier or an identifier in the header, and assign delay sensitive data blocks (for example, data blocks transporting segments from a Telnet application) to a queue managed in mode to reduce latency, and assign data units sensitive to bandwidth (for example, data blocks transporting segments from an ftp application) to a queue managed in mode to maximize olzovaniya.

Хотя настоящее изобретение описано на конкретных примерах, они не должны интерпретироваться как ограничительные, поскольку объем изобретения определяется только формулой изобретения. Ссылочные позиции, указанные в пунктах формулы изобретения, служат только упрощению восприятия пунктов формулы изобретения и не должны иметь никакого ограничительного влияния.Although the present invention has been described with specific examples, they should not be interpreted as limiting, since the scope of the invention is defined only by the claims. The reference numbers indicated in the claims serve only to simplify the perception of the claims and should not have any restrictive effect.

Claims (36)

1. Способ управления буфером (20) очереди в устройстве (50) передачи блоков данных, причем упомянутый буфер очереди предназначен для помещения блоков (30) данных в очередь (21) и соединен с каналом (40) связи, содержащий1. A method for controlling a queue buffer (20) in a data block transmission device (50), said queue buffer being used to place data blocks (30) in a queue (21) and connected to a communication channel (40), comprising определение (S1) значения (QL; QLav) параметра длины, связанного с длиной очереди,determining (S1) the value (QL; QLav) of the length parameter associated with the queue length, сравнение (S2) этого значения (QL; QLav) с пороговым значением (Lth) и выполнения (S3) процедуры уведомления о перегрузке относительно одного или более блоков данных из упомянутой очереди, если упомянутое значение (QL; QLav) больше, чем упомянутое пороговое значение (Lth) длины, иcomparing (S2) this value (QL; QLav) with a threshold value (Lth) and performing (S3) the congestion notification procedure for one or more data blocks from said queue if said value (QL; QLav) is greater than said threshold value (Lth) length, and процедуру (S5) автоматической адаптации порога, которая содержит оценивание значения (LC) емкости канала связи на основе скорости (DR) передачи данных канала (40) связи и адаптацию порогового значения (Lth) на основе оцененного значения (LC) емкости канала связи,an automatic threshold adaptation procedure (S5) that comprises estimating a communication channel capacity (LC) value based on a communication channel data rate (40) of a communication channel (40) and adapting a threshold value (Lth) based on an estimated communication channel capacity (LC), отличающийся тем, чтоcharacterized in that процедура (S5) автоматической адаптации порога действует в одном из, по меньшей мере, первого и второго режима адаптации, где первый режим адаптации связан с минимизацией задержки в очереди и адаптирует пороговое значение (Lth) на основе n·LC, где LC представляет оцененное значение емкости канала связи, и n≥1, и второй режим адаптации связан с максимизацией использования и адаптирует упомянутое пороговое значение (Lth) на основе m·LC, где m>1 и m>n.the automatic threshold adaptation procedure (S5) operates in one of at least the first and second adaptation modes, where the first adaptation mode is associated with minimizing the delay in the queue and adapts the threshold value (Lth) based on n · LC, where LC represents the estimated value the capacitance of the communication channel, and n≥1, and the second adaptation mode is associated with maximizing utilization and adapts the said threshold value (Lth) based on m · LC, where m> 1 and m> n. 2. Способ по п.1, в котором буфер очереди выполнен с возможностью приема блоков данных от отправителя, который выполняет управление потоком на основе окна и делит свое окно передачи на k, k>1, при приеме уведомления о перегрузке или при обнаружении потери блока данных, причем n=k-1 и m=k2-1.2. The method according to claim 1, in which the queue buffer is configured to receive data blocks from the sender, which performs window-based flow control and divides its transmission window by k, k> 1, upon receipt of an overload notification or upon detection of a block loss data, with n = k-1 and m = k 2 -1. 3. Способ по п.2, в котором k=2, n=1 и m=3.3. The method according to claim 2, in which k = 2, n = 1 and m = 3. 4. Способ по любому из пп.1-3, в котором настройка первого режима или второго режима выполняется вручную оператором.4. The method according to any one of claims 1 to 3, in which the setting of the first mode or second mode is performed manually by the operator. 5. Способ по любому из пп.1-3, содержащий процедуру автоматической установки режима для автоматической установки первого режима или второго режима.5. The method according to any one of claims 1 to 3, comprising a procedure for automatically setting a mode for automatically setting a first mode or a second mode. 6. Способ по п.5, содержащий процедуру обнаружения события указания потери для обнаружения потенциальных потерь блоков данных вне упомянутого устройства (50) передачи блоков данных в потоке, помещенном в очередь, в упомянутом буфере потоков.6. The method according to claim 5, comprising a procedure for detecting a loss indication event for detecting potential loss of data blocks outside said data block transmission device (50) in a stream queued in said stream buffer. 7. Способ по п.6, в котором процедура обнаружения события указания потери содержит контроль идентификаторов последовательности блоков данных в упомянутом помещенном в очередь потоке.7. The method of claim 6, wherein the procedure for detecting a loss indication event comprises monitoring sequence identifiers of data blocks in said queued stream. 8. Способ по п.6, в котором процедура обнаружения события указания потери содержит контроль информации указания потерь в блоках данных подтверждения, посланных от получателя потока, помещенного в очередь, к отправителю упомянутого помещенного в очередь потока.8. The method of claim 6, wherein the procedure for detecting a loss indication event comprises monitoring loss indication information in acknowledgment data blocks sent from the receiver of the queued stream to the sender of said queued stream. 9. Способ по п.6, в котором процедура обнаружения события указания потери содержит9. The method of claim 6, wherein the procedure for detecting a loss indication event comprises процедуру счета для подсчета числа событий указания потерь блоков данных, возникающих вне упомянутого устройства передачи блоков данных в помещенном в очередь потоке, иa counting procedure for counting the number of events indicating loss of data blocks occurring outside said data block transmission device in a queued stream, and процедуру получения характеристического значения отсчета из отсчитанных чисел.the procedure for obtaining the characteristic value of the reference from the counted numbers. 10. Способ по п.9, в котором упомянутая процедура получения характеристического значения отсчета определяет число событий указания потерь, возникающих вне упомянутого устройства передачи блоков данных в помещенном в очередь потоке в каждом из р соответствующих предварительно определенных интервалов, причем р является натуральным числом, и выбирает максимальное значение из упомянутых чисел в качестве характеристического значения отсчета.10. The method according to claim 9, in which the aforementioned procedure for obtaining the characteristic value of the reference determines the number of events indicating losses incurred outside the device for transmitting data blocks in a queued stream in each of p corresponding predetermined intervals, and p is a natural number, and selects the maximum value from the mentioned numbers as the characteristic value of the reference. 11. Способ по п.10, в котором упомянутые предварительно определенные интервалы определены как время между двумя последовательными решениями о выполнении уведомления о перегрузке для блока данных в упомянутом помещенном в очередь потоке.11. The method of claim 10, wherein said predetermined intervals are defined as the time between two successive decisions about performing congestion notification for a data block in said queued stream. 12. Способ по п.9, в котором упомянутая процедура получения характеристического значения отсчета определяет среднее число событий указания потерь, возникающих вне упомянутого устройства передачи блоков данных в помещенном в очередь потоке, в качестве упомянутого характеристического значения отсчета.12. The method according to claim 9, in which the aforementioned procedure for obtaining the characteristic value of the reference determines the average number of events indicating the loss occurring outside the said device for transmitting data blocks in the queued stream, as the said characteristic value of the reference. 13. Способ по любому из пп.6-12, в котором упомянутая процедура автоматической установки режима учитывает результат упомянутой процедуры обнаружения события указания потери.13. The method according to any one of claims 6-12, wherein said automatic mode setting procedure takes into account the result of said loss indication event detection procedure. 14. Способ по п.13, в котором упомянутая процедура автоматической адаптации порога учитывает результат упомянутой процедуры обнаружения события указания потери для динамической адаптации упомянутого порогового значения (Lth) в упомянутом первом или втором режиме адаптации.14. The method of claim 13, wherein said automatic threshold adaptation procedure takes into account the result of said loss indication event detection procedure for dynamically adapting said threshold value (Lth) in said first or second adaptation mode. 15. Способ по любому из пп.6-12, 14, в котором упомянутая процедура уведомления о перегрузке содержит этап принятия решения для решения о том, следует ли выполнить процедуру уведомления о перегрузке по отношению к одному или более блокам данных, причем этап принятия решения зависит от результата процедуры обнаружения события указания потери.15. The method according to any one of claims 6-12, 14, wherein said congestion notification procedure comprises a decision step for deciding whether to perform the congestion notification procedure with respect to one or more data blocks, the decision making step depends on the outcome of the procedure for detecting a loss indication event. 16. Способ по п.15, содержащий контроль того, произошло ли событие, которое указывает потенциальную потерю блока данных в помещенном в очередь потоке, в течение предварительно определенного интервала времени (GT) после того как обнаружено, что упомянутое значение упомянутого параметра (QL, QLav) длины, относящегося к длине упомянутой очереди, больше, чем упомянутое пороговое значение (Lth) длины, причем на упомянутом этапе принятия решения уведомление о перегрузке не выполняется, если событие, указывающее на потенциальную потерю блока данных, произошло в течение упомянутого предварительно определенного периода времени (GT), а в противном случае упомянутое уведомление о перегрузке выполняется.16. The method of claim 15, comprising monitoring whether an event has occurred that indicates a potential loss of a data block in the queued stream during a predetermined time interval (GT) after it is detected that said value of said parameter (QL, QLav) of the length related to the length of said queue is larger than the threshold value (Lth) of the length, and at the said decision stage, congestion notification is not performed if an event indicating a potential loss of the data block oshlo during said predetermined period of time (GT), and otherwise, said congestion notification is made. 17. Способ по п.1 или 16, в котором упомянутый буфер очереди выполнен с возможностью хранения, по меньшей мере, первой очереди и второй очереди, причем упомянутая процедура автоматической адаптации порога адаптирует первое пороговое значение (Lth_1), связанное с первой очередью, в соответствии с упомянутым первым режимом адаптации, и адаптирует второе пороговое значение (Lth_2), связанное со второй очередью, в соответствии с упомянутым вторым режимом адаптации.17. The method according to claim 1 or 16, wherein said queue buffer is configured to store at least a first queue and a second queue, said automatic threshold adaptation procedure adapting the first threshold value (Lth_1) associated with the first queue to according to said first adaptation mode, and adapts the second threshold value (Lth_2) associated with the second queue in accordance with said second adaptation mode. 18. Способ по п.17, содержащий процедуру различения и помещения для различения блоков данных, подлежащих помещению в очередь, на основе их содержания и для помещения блоков данных в упомянутую первую очередь или вторую очередь в зависимости от результата различения.18. The method of claim 17, comprising a discrimination and placement procedure for distinguishing data blocks to be queued based on their contents and for placing data blocks in said first or second stage, depending on the result of the discrimination. 19. Контроллер (10) буфера очереди для управления буфером (20) очереди в устройстве (50) передачи блоков данных, причем упомянутый буфер (20) очереди предназначен для помещения блоков (30) данных в очередь (21) и соединен с каналом (40) связи, содержащий19. The controller (10) of the queue buffer for controlling the buffer (20) of the queue in the data block transmission device (50), said queue buffer (20) being used to place the data blocks (30) in the queue (21) and connected to the channel (40 ) communication containing блок (101) определения длины очереди для определения значения параметра (QL; QLav) длины, связанного с длиной упомянутой очереди (21),a queue length determining unit (101) for determining a parameter value (QL; QLav) of a length associated with the length of said queue (21), блок (102) сравнения для сравнения упомянутого значения с пороговым значением (Lth),a comparison unit (102) for comparing said value with a threshold value (Lth), блок (103) уведомления о перегрузке для выполнения процедуры уведомления о перегрузке, если упомянутое значение больше, чем упомянутое пороговое значение длины, иan overload notification unit (103) for performing an overload notification procedure if said value is greater than said length threshold value, and блок (104) адаптации порога для автоматической адаптации упомянутого порогового значения (Lth) длины путем оценивания значения (LC) емкости канала связи на основе скорости (DR) передачи данных упомянутого канала (40) связи и адаптации упомянутого порогового значения (Lth) длины на основе оцененного значения (LC) емкости канала связи,a threshold adaptation unit (104) for automatically adapting said length threshold value (Lth) by estimating a communication channel capacitance value (LC) based on a data rate (DR) of said communication channel (40) and adapting said length threshold value (Lth) based estimated value (LC) of the capacity of the communication channel, отличающийся тем, чтоcharacterized in that упомянутый блок (104) адаптации порога действует в одном из, по меньшей мере, первого и второго режима адаптации, где первый режим адаптации связан с минимизацией задержки в очереди и адаптирует пороговое значение (Lth) на основе n·LC, где LC представляет оцененное значение емкости канала связи и n≥1,и второй режим адаптации связан с максимизацией использования и адаптирует упомянутое пороговое значение (Lth) на основе m·LC, где m>1 и m>n.said threshold adaptation unit (104) operates in one of at least the first and second adaptation mode, where the first adaptation mode is associated with minimizing queue delay and adapts the threshold value (Lth) based on n · LC, where LC represents the estimated value communication channel capacities and n≥1, and the second adaptation mode is associated with maximizing utilization and adapts the said threshold value (Lth) based on m · LC, where m> 1 and m> n. 20. Контроллер буфера очереди по п.19, в котором буфер очереди выполнен с возможностью приема блоков данных от отправителя, который выполняет управление потоком на основе окна и делит свое окно передачи на k, k>1, при приеме уведомления о перегрузке или при обнаружении потери блока данных, причем упомянутый блок (104) адаптации порога выполнен таким образом, что n=k-1 и m=k2-1.20. The queue buffer controller according to claim 19, wherein the queue buffer is adapted to receive data blocks from the sender, which performs window-based flow control and divides its transmission window by k, k> 1, upon receipt of an overload notification or upon detection loss of a data block, wherein said threshold adaptation block (104) is configured such that n = k − 1 and m = k 2 −1. 21. Контроллер буфера очереди по п.20, в котором k=2, n=1 и m=3.21. The queue buffer controller according to claim 20, in which k = 2, n = 1 and m = 3. 22. Контроллер буфера очереди по любому из пп.19-21, содержащий механизм установки для установки первого режима или второго режима вручную оператором.22. The queue buffer controller according to any one of claims 19-21, comprising an installation mechanism for manually setting the first mode or second mode by the operator. 23. Контроллер буфера очереди по любому из пп.19-21, содержащий механизм автоматической установки режима для автоматической установки первого режима или второго режима.23. The queue buffer controller according to any one of claims 19-21, comprising a mechanism for automatically setting a mode for automatically setting a first mode or a second mode. 24. Контроллер буфера очереди по п.23, содержащий блок (105) обнаружения события указания потери для обнаружения потенциальных потерь блоков данных вне упомянутого устройства (50) передачи блоков данных в потоке, помещенном в очередь, в упомянутом буфере потоков.24. The queue buffer controller according to claim 23, comprising a loss indication event detection unit (105) for detecting potential loss of data blocks outside said data block transmitting device (50) in a stream queued in said stream buffer. 25. Контроллер буфера очереди по п.24, в котором упомянутый блок (105) обнаружения события указания потери содержит блок контроля для контроля идентификаторов последовательности блоков данных в упомянутом помещенном в очередь потоке.25. The queue buffer controller according to claim 24, wherein said loss indication event detection unit (105) comprises a control unit for monitoring sequence identifiers of data blocks in said queued stream. 26. Контроллер буфера очереди по п.24, в котором упомянутый блок (105) обнаружения события указания потери содержит блок контроля для контроля информации указания потерь в блоках данных подтверждения, посланных от получателя потока, помещенного в очередь, к отправителю упомянутого помещенного в очередь потока.26. The queue buffer controller according to claim 24, wherein said loss indication event detection unit (105) comprises a control unit for monitoring loss indication information in acknowledgment data blocks sent from the receiver of the queued stream to the sender of said queued stream . 27. Контроллер буфера очереди по п.24, содержащий счетчик для подсчета числа событий указания потерь блоков данных, возникающих вне упомянутого устройства передачи блоков данных в упомянутом помещенном в очередь потоке, и процессор отсчитанных чисел для получения характеристического значения отсчета из отсчитанных чисел.27. The queue buffer controller according to claim 24, comprising a counter for counting the number of events indicating loss of data blocks occurring outside said data block transmission device in said queued stream, and a counted number processor to obtain a characteristic count value from the counted numbers. 28. Контроллер буфера очереди по п.27, в котором упомянутый процессор отсчитанных чисел выполнен с возможностью определения числа событий указания потерь, возникающих вне упомянутого устройства передачи блоков данных в помещенном в очередь потоке в каждом из р соответствующих предварительно определенных интервалов, причем р является натуральным числом, и выбора максимального значения из упомянутых чисел в качестве характеристического значения отсчета.28. The queue buffer controller according to claim 27, wherein said counted number processor is configured to determine the number of loss indication events occurring outside said data block transmission device in a queued stream in each of p of corresponding predetermined intervals, wherein p is natural number, and selecting the maximum value from the mentioned numbers as the characteristic value of the reference. 29. Контроллер буфера очереди по п.28, в котором упомянутые предварительно определенные интервалы определены как время между двумя последовательными решениями о выполнении уведомления о перегрузке для блока данных в упомянутом помещенном в очередь потоке.29. The queue buffer controller according to claim 28, wherein said predetermined intervals are defined as the time between two successive decisions about performing congestion notification for a data block in said queued stream. 30. Контроллер буфера очереди по п.27, в котором упомянутый процессор отсчитанных чисел выполнен с возможностью определения среднего числа событий указания потерь, возникающих вне упомянутого устройства передачи блоков данных в помещенном в очередь потоке, в качестве упомянутого характеристического значения отсчета.30. The queue buffer controller according to claim 27, wherein said counted number processor is configured to determine an average number of loss indication events occurring outside said data block transmission device in a queued stream as said reference characteristic value. 31. Контроллер буфера очереди по любому из пп.24-30, в котором упомянутый механизм автоматической установки режима выполнен с возможностью учета выходного результата упомянутого блока обнаружения события указания потери.31. The queue buffer controller according to any one of paragraphs.24-30, wherein said automatic mode setting mechanism is configured to take into account the output of said loss indication event detection unit. 32. Контроллер буфера очереди по п.31, в котором упомянутый блок (104) адаптации порога выполнен с возможностью учета выходного результата процедуры обнаружения события указания потери для динамической адаптации упомянутого порогового значения (Lth) в упомянутом первом или втором режиме адаптации.32. The queue buffer controller according to claim 31, wherein said threshold adaptation unit (104) is adapted to take into account the output of a loss indication event detection procedure for dynamically adapting said threshold value (Lth) in said first or second adaptation mode. 33. Контроллер буфера очереди по любому из пп.24-30, 32, в котором упомянутый блок (103) уведомления о перегрузке содержит решающий блок (1031) для принятия решения о том, следует ли выполнить процедуру уведомления о перегрузке по отношению к одному или более блокам данных, причем решающий блок (1031) выполнен с возможностью учета выходного результата блока (105) обнаружения события указания потери.33. The queue buffer controller according to any one of claims 24-30, 32, wherein said congestion notification unit (103) comprises a decision unit (1031) for deciding whether to perform the congestion notification procedure with respect to one or more data blocks, and the decision block (1031) is configured to take into account the output of the block (105) detection events of the indication of loss. 34. Контроллер буфера очереди по п.33, в котором упомянутый блок (105) обнаружения события указания потери выполнен с возможностью контроля того, произошло ли событие, которое указывает потенциальную потерю блока данных в помещенном в очередь потоке, в течение предварительно определенного интервала времени (GT) после того, как обнаружено, что упомянутое значение упомянутого параметра (QL, QLav) длины, относящегося к длине упомянутой очереди, больше, чем упомянутое пороговое значение (Lth) длины, причем упомянутый решающий блок (1031) выполнен с возможностью не выполнять уведомление о перегрузке, если событие, указывающее на потенциальную потерю блока данных, произошло в течение упомянутого предварительно определенного периода времени (GT), и в противном случае выполнять упомянутое уведомление о перегрузке.34. The queue buffer controller according to claim 33, wherein said loss indication event detection unit (105) is configured to monitor whether an event has occurred that indicates a potential loss of a data block in the queued stream over a predetermined time interval ( GT) after it has been found that said value of said length parameter (QL, QLav) related to the length of said queue is larger than said length threshold value (Lth), said decision block (1031) being configured to Stu not perform congestion notification if an event indicating a potential data unit loss occurred during said predetermined period of time (GT), and to otherwise perform said congestion notification. 35. Контроллер буфера очереди по п.19 или 34, в котором упомянутый буфер очереди выполнен с возможностью хранения, по меньшей мере, первой очереди и второй очереди, причем упомянутый блок адаптации порога выполнен с возможностью адаптации первого порогового значения (Lth_1), связанного с первой очередью, в соответствии с упомянутым первым режимом адаптации, и адаптации второго порогового значения (Lth_2), связанного со второй очередью, в соответствии с упомянутым вторым режимом адаптации.35. The queue buffer controller according to claim 19 or 34, wherein said queue buffer is configured to store at least a first queue and a second queue, said threshold adaptation unit being adapted to adapt a first threshold value (Lth_1) associated with a first queue, in accordance with said first adaptation mode, and an adaptation of a second threshold value (Lth_2) associated with the second queue, in accordance with said second adaptation mode. 36. Контроллер буфера очереди по п.35, содержащий блок различения и помещения для различения блоков данных, подлежащих помещению в очередь, на основе их содержания и для помещения блоков данных в упомянутую первую очередь или вторую очередь в зависимости от результата различения.36. The queue buffer controller according to claim 35, comprising a discriminating unit and premises for distinguishing data blocks to be queued based on their contents and for placing data blocks in said first or second stage depending on the result of the distinguishing.
RU2006126636/09A 2003-12-23 2003-12-23 Method and device to control queue buffer RU2329607C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2006126636/09A RU2329607C2 (en) 2003-12-23 2003-12-23 Method and device to control queue buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2006126636/09A RU2329607C2 (en) 2003-12-23 2003-12-23 Method and device to control queue buffer

Publications (2)

Publication Number Publication Date
RU2006126636A RU2006126636A (en) 2008-01-27
RU2329607C2 true RU2329607C2 (en) 2008-07-20

Family

ID=39109682

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006126636/09A RU2329607C2 (en) 2003-12-23 2003-12-23 Method and device to control queue buffer

Country Status (1)

Country Link
RU (1) RU2329607C2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2515997C2 (en) * 2009-03-20 2014-05-20 Телефонактиеболагет Л М Эрикссон (Пабл) Active queue management for wireless communication network uplink
RU2611337C1 (en) * 2016-01-13 2017-02-21 Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук" (ФГУ ФНЦ НИИСИ РАН) Method for transmitting messages between computing devices

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584397B2 (en) 2004-06-10 2009-09-01 Interdigital Technology Corporation Method and apparatus for dynamically adjusting data transmission parameters and controlling H-ARQ processes

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2515997C2 (en) * 2009-03-20 2014-05-20 Телефонактиеболагет Л М Эрикссон (Пабл) Active queue management for wireless communication network uplink
US8964539B2 (en) 2009-03-20 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Active queue management for wireless communication network uplink
RU2611337C1 (en) * 2016-01-13 2017-02-21 Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук" (ФГУ ФНЦ НИИСИ РАН) Method for transmitting messages between computing devices

Also Published As

Publication number Publication date
RU2006126636A (en) 2008-01-27

Similar Documents

Publication Publication Date Title
EP1704684B1 (en) Method and device for controlling a queue buffer
JP3548720B2 (en) A method for improving system performance in data networks by queue management based on incoming rate monitoring
US7069356B2 (en) Method of controlling a queue buffer by performing congestion notification and automatically adapting a threshold value
US6788697B1 (en) Buffer management scheme employing dynamic thresholds
KR101075724B1 (en) Apparatus and method for limiting packet transmission rate in a communication system
US7830801B2 (en) Intelligent fabric congestion detection apparatus and method
US7646709B2 (en) Flow control in computer networks
US6738386B1 (en) Controlled latency with dynamically limited queue depth based on history and latency estimation
KR100666980B1 (en) Method for controlling traffic congestion and apparatus for implementing the same
US8761012B2 (en) Packet relay apparatus and method of relaying packet
CN101360049B (en) Packet forwarding method and apparatus
US20020188648A1 (en) Active queue management with flow proportional buffering
US8081644B2 (en) Method and device for controlling a queue buffer
EP0932282A2 (en) TCP admission control
JP2002208937A (en) Flow controller and node device
US6771601B1 (en) Network switch having source port queuing and methods, systems and computer program products for flow level congestion control suitable for use with a network switch having source port queuing
US7142507B1 (en) Traffic monitoring equipment and system and method for datagram transfer
KR100763217B1 (en) Method and apparatus for determining a quality measure of a channel within a communication system
US10560401B2 (en) Network packet microburst detection via network switching device hardware supporting quantizied congestion notification
RU2329607C2 (en) Method and device to control queue buffer
US7391785B2 (en) Method for active queue management with asymmetric congestion control
US20070064716A1 (en) Methods and devices for controlling data unit handling
WO2004084508A1 (en) Method and apparatus for controlling congestion in communications network

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20161224