KR20050099883A - Method for network congestion adaptive buffering - Google Patents

Method for network congestion adaptive buffering Download PDF

Info

Publication number
KR20050099883A
KR20050099883A KR1020040025105A KR20040025105A KR20050099883A KR 20050099883 A KR20050099883 A KR 20050099883A KR 1020040025105 A KR1020040025105 A KR 1020040025105A KR 20040025105 A KR20040025105 A KR 20040025105A KR 20050099883 A KR20050099883 A KR 20050099883A
Authority
KR
South Korea
Prior art keywords
buffer
packet
input
processing
boundary
Prior art date
Application number
KR1020040025105A
Other languages
Korean (ko)
Inventor
이승룡
최창범
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 KR1020040025105A priority Critical patent/KR20050099883A/en
Publication of KR20050099883A publication Critical patent/KR20050099883A/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B02CRUSHING, PULVERISING, OR DISINTEGRATING; PREPARATORY TREATMENT OF GRAIN FOR MILLING
    • B02CCRUSHING, PULVERISING, OR DISINTEGRATING IN GENERAL; MILLING GRAIN
    • B02C18/00Disintegrating by knives or other cutting or tearing members which chop material into fragments
    • B02C18/0007Disintegrating by knives or other cutting or tearing members which chop material into fragments specially adapted for disintegrating documents
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B02CRUSHING, PULVERISING, OR DISINTEGRATING; PREPARATORY TREATMENT OF GRAIN FOR MILLING
    • B02CCRUSHING, PULVERISING, OR DISINTEGRATING IN GENERAL; MILLING GRAIN
    • B02C18/00Disintegrating by knives or other cutting or tearing members which chop material into fragments
    • B02C18/0007Disintegrating by knives or other cutting or tearing members which chop material into fragments specially adapted for disintegrating documents
    • B02C2018/0015Disintegrating by knives or other cutting or tearing members which chop material into fragments specially adapted for disintegrating documents for disintegrating CDs, DVDs and/or credit cards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B02CRUSHING, PULVERISING, OR DISINTEGRATING; PREPARATORY TREATMENT OF GRAIN FOR MILLING
    • B02CCRUSHING, PULVERISING, OR DISINTEGRATING IN GENERAL; MILLING GRAIN
    • B02C18/00Disintegrating by knives or other cutting or tearing members which chop material into fragments
    • B02C18/0007Disintegrating by knives or other cutting or tearing members which chop material into fragments specially adapted for disintegrating documents
    • B02C2018/0038Motor drives

Abstract

네트워크의 혼잡을 원활하게 수용할 수 있는 네트워크 혼잡 적응 버퍼링 방법이 제공된다. 입력되는 패킷을 수용할 수 있는 버퍼의 용량을 너무 크게 설정하면 메모리의 자원을 낭비할 수가 있으며 너무 작은 용량으로 설정하면 패킷을 폐기시키는 문제점이 발생하므로 버퍼의 용량을 최적의 크기로 설정하는 것이 중요하다. 그러나 최적의 크기로 설정한다고 하더라도 네트워크의 불확실한 특성으로 인해서 네트워크의 혼잡이 발생할 우려가 있다. 따라서 본 발명은 패킷을 송신하는 버퍼와 수신하는 버퍼가 처음 설정되어 있는 버퍼의 용량으로 제한되어 있는 것이 아니라 패킷의 유입량에 따라 버퍼의 용량을 동적으로 조절하기 위하여 두 개의 버퍼가 각각 두개의 배열을 상호 공유하고 각각의 버퍼를 구별하기 위하여 배열에 경계를 설정하는 과정을 통해서 버퍼를 최적화시키고 버퍼에 입력되는 패킷을 버퍼링할 때 입력되는 패킷에 따라 경계를 이용하여 버퍼의 용량을 동적으로 조절할 수 있도록 구현되어 있다. 그러므로 본 발명은 네트워크의 혼잡을 수용할 수 있고, 메모리의 효율을 높일 수 있을 뿐만 아니라 폐기되는 패킷을 최소화할 수 있으므로 QoS를 보장할 수 있는 효과가 있다.A network congestion adaptive buffering method is provided that can smoothly accommodate network congestion. If the capacity of the buffer that can accommodate the incoming packet is set too large, it may waste the resources of the memory. If the capacity is set too small, the problem of discarding the packet is important. Therefore, it is important to set the optimal capacity of the buffer. Do. However, even if the optimal size is set, network congestion may occur due to the uncertainty of the network. Therefore, the present invention is not limited to the capacity of the buffer for transmitting a packet and the buffer for which the packet is initially set. Instead, two buffers each have two arrays in order to dynamically adjust the capacity of the buffer according to the inflow of the packet. By optimizing the buffer through the process of setting a boundary on the array to share each other and distinguishing each buffer, it is possible to dynamically adjust the buffer capacity by using the boundary according to the input packet when buffering the packet. It is implemented. Therefore, the present invention can accommodate the congestion of the network, increase the efficiency of the memory and minimize the discarded packets, thereby ensuring the QoS.

Description

네트워크 혼잡 적응 버퍼링 방법 {Method for network congestion adaptive buffering} Method for network congestion adaptive buffering

본 발명은 네트워크 혼잡 적응 버퍼링 방법에 관한 것으로 보다 상세하게는 송수신 버퍼가 각각 두 개의 배열을 상호 공유하고 각각의 버퍼를 구별하기 위하여 경계를 설정하며 버퍼에 입력되는 패킷의 양에 따라 상기 경계의 위치를 변경하여 버퍼의 용량을 동적으로 조절하는 네트워크 혼잡 적응 버퍼링 방법에 관한 것이다.The present invention relates to a network congestion adaptive buffering method, and more particularly, that a transmit / receive buffer shares two arrays with each other, sets a boundary to distinguish each buffer, and positions the boundary according to the amount of packets input to the buffer. The present invention relates to a network congestion adaptive buffering method that dynamically adjusts the capacity of a buffer by changing a.

현재의 네트워크는 폭발적으로 늘어나는 인터넷 사용과 트래픽의 증가로 상습적인 병목 현상을 겪고 있다. 이에 따라 인터넷 서비스를 원활하게 이용할 수 있고 QoS의 보장과 서비스의 실시간성 향상을 위하여 네트워크 혼잡 제어에 관한 연구가 활발히 진행되고 있다. Today's networks are constantly being bottlenecked by the explosion of Internet usage and increased traffic. Accordingly, researches on network congestion control have been actively conducted to smoothly use Internet services and to guarantee QoS and to improve service real-time.

네트워크의 혼잡을 해결하기 위한 방안으로 트래픽의 완충 역할을 하는 버퍼를 주로 사용하여 관리하고 있다. 일반적으로 통신상에서의 버퍼라 함은 완충 기억 장치를 뜻하는 것으로 데이터가 다른 장치로 전송될 때 일시적으로 데이터를 기억하는 것을 말하는 것이다. 이러한 네트워크에서 사용되는 버퍼는 그 용량을 크게 하면 할당된 메모리 자원을 낭비하게 되고 용량을 작게 하면 사용 가능한 네트워크 대역폭을 모두 사용하지 못하게 되어 네트워크 자원을 낭비하게 되는 문제점이 있게 된다. 따라서 최적의 크기로 버퍼의 용량을 정하는 것이 중요하지만 아무리 최적으로 버퍼의 용량을 결정해서 사용한다고 하더라도 네트워크의 불확실한 특성으로 인해 혼잡이 발생하게 된다.In order to solve the congestion of the network, the buffer is mainly used as a buffer for traffic. In general, a buffer in communication refers to a buffer storage device, which refers to temporarily storing data when data is transferred to another device. The buffer used in such a network wastes allocated memory resources when the capacity thereof is increased, and when the capacity is decreased, the buffer cannot be used all of the available network bandwidth, which wastes network resources. Therefore, it is important to determine the capacity of the buffer at the optimal size, but no matter how optimally the buffer capacity is determined, congestion occurs due to the uncertainty of the network.

네트워크상에서의 버퍼를 구성하고 있는 자료구조는 배열 또는 리스트로 이루어져 있다. 종래의 리스트로 구성된 버퍼에서는 데이터 저장부에서 이를 임시 저장한 후 요청이 있으면 데이터를 전송하는 구조로 되어있다. 상기 리스트는 데이터의 주소 공간을 따로 할당하고 상기 데이터의 주소를 참조하여 데이터의 순서를 관리한다. 따라서 주소 공간을 따로 할당하기 때문에 메모리 공간을 낭비하는 문제점이 있으며 요청이 집중되면 데이터 노드를 공유하기 때문에 리스트의 주소관리의 문제가 생겨 메모리가 누출이 발생하게 된다. 이러한 메모리 누출은 단순한 패킷의 손실로 보이기 때문에 이를 해결하는데 어려움이 있다. The data structures that make up a buffer on a network consist of arrays or lists. In the conventional list buffer, the data storage unit temporarily stores the data and transmits the data upon request. The list allocates the address space of the data separately and manages the order of the data with reference to the address of the data. Therefore, there is a problem of wasting memory space because the address space is allocated separately, and since the data nodes are shared when requests are concentrated, there is a problem of address management of the list, which causes a memory leak. This memory leak is difficult to solve because it appears as a simple packet loss.

한편, 버퍼를 구성하고 있는 자료 구조 중의 하나인 배열은 한 가지 특성을 지닌 데이터를 연속된 메모리 공간에 일렬로 할당하는 것을 말하는 것이다. 배열로 이루어진 버퍼는 배열의 특성상 정적으로 할당되어 있기 때문에 네트워크에서 혼잡이 발생하여 다량의 패킷이 유입되면 버퍼의 용량을 동적으로 관리할 수 없어 버퍼의 용량을 초과하는 패킷을 폐기시키게 되는 문제점이 있다.On the other hand, an array, which is one of the data structures that make up a buffer, refers to the allocation of data with one characteristic to a series of contiguous memory spaces. Since buffers composed of arrays are statically allocated due to the characteristics of the arrays, congestion occurs in the network, and when a large amount of packets are introduced, the capacity of the buffers cannot be managed dynamically, resulting in the discarding of packets that exceed the capacity of the buffers. .

본 발명은 이러한 문제점을 해결하기 위해 제안된 것으로 그 목적은 네트워크의 QoS와 실시간성을 보장하기 위해 컴퓨터의 처리율을 높이며 버퍼의 용량을 패킷의 유입량에 따라 동적으로 관리할 수 있도록 하는 네트워크 혼잡 적응 버퍼링 방법을 제공하는 것이다. The present invention has been proposed to solve this problem. The purpose of the present invention is to increase the throughput of the computer and to dynamically manage the buffer capacity according to the inflow of packets to ensure the QoS and real-time of the network. To provide a way.

이러한 목적을 달성하기 위한 본 발명은 두 개의 배열을 메모리에 할당하고, 각 배열의 일부분씩을 갖는 두 개의 버퍼를 설정하고 각 버퍼의 입력위치와 처리위치를 설정하는 버퍼 초기화 단계와, 입력되는 패킷을 해당 버퍼의 입력위치에 저장하고 입력위치를 변경하는 패킷 저장 단계와, 각 버퍼의 처리위치에 있는 패킷을 처리하고 처리위치를 다음 패킷이 있는 위치로 변경하는 패킷 처리 단계를 구비한다. 패킷을 송신하는 버퍼와 수신하는 버퍼의 용량이 처음 설정되어 있는 버퍼의 용량으로 제한되어 있는 것이 아니라 입력되는 패킷의 양에 따라 유동적으로 버퍼의 용량을 조절하기 위하여 본 발명에 따른 버퍼를 초기화한다. 초기화 단계는 두 개의 배열을 메모리에 할당하고 각 배열에 대하여 각 버퍼의 시작 위치를 설정하고 상기 버퍼의 최소 용량을 나타내는 인덱스를 설정한 후 각 버퍼의 입력 위치와 처리 위치, 각 배열의 경계를 설정할 수 있다. 한편 패킷 저장 단계는 입력위치가 경계이면 입력 위치 알고리즘을 호출하고 입력 위치의 인덱스에 패킷이 존재하면 패킷을 폐기시키고 패킷이 존재하지 않으면 입력된 패킷을 입력위치에 저장하고 입력위치를 이동시킴으로서 구현할 수 있다. 상기 입력 위치 알고리즘에 대한 설명은 도면을 참조하여 후술하겠다. 또한 패킷 처리 단계는 처리 위치가 경계이면 처리 위치 알고리즘을 호출하고 처리 위치에 패킷이 존재하지 않으면 기다리고 패킷이 존재하면 패킷을 처리하고 처리 위치를 이동시킴으로서 구현할 수 있다. 상기 처리 위치 알고리즘 역시 도면을 참조하여 후술하도록 하겠다.In order to achieve the above object, the present invention provides a buffer initialization step of allocating two arrays to a memory, setting two buffers having portions of each array, and setting an input position and a processing position of each buffer, and an incoming packet. A packet storing step of storing a packet at an input position of a corresponding buffer and changing the input position, and a packet processing step of processing a packet at a processing position of each buffer and changing the processing position to a position where the next packet is located. The capacity of the buffer for transmitting and receiving packets is not limited to the capacity of the buffer that is initially set, but the buffer according to the present invention is initialized in order to flexibly adjust the capacity of the buffer according to the amount of incoming packets. The initialization step allocates two arrays to memory, sets the starting position of each buffer for each array, sets the index representing the minimum capacity of the buffer, and sets the input and processing positions of each buffer, and the boundaries of each array. Can be. On the other hand, the packet storing step can be implemented by calling the input location algorithm if the input location is a boundary, discarding the packet if the packet exists at the index of the input location, and storing the input packet at the input location and moving the input location if the packet does not exist. have. Description of the input position algorithm will be described later with reference to the drawings. The packet processing step can also be implemented by invoking the processing location algorithm if the processing location is a boundary, waiting if no packet exists at the processing location and processing the packet and moving the processing location if the packet is present. The processing position algorithm will also be described later with reference to the drawings.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 네트워크 혼잡 적응 버퍼링 방법을 사용하는 예를 보여주는 도면이다.1 illustrates an example of using a network congestion adaptive buffering method according to the present invention.

서버측의 패킷 송신자(101)는 버퍼(108)에 저장된 패킷을 클라이언트 측으로 송신한다. 송신된 패킷은 라우터 또는 게이트웨이의 패킷 수신자(103)를 통해 본 발명의 네트워크 혼잡 적응 버퍼링 방법에 따라 구현된 버퍼(109)에 임시 저장된다. 라우터 또는 게이트 웨이에 있는 패킷 송신자(105)는 임시 저장되어 있는 패킷을 클라이언트측의 패킷 수신자(107)에게 전송하고, 클라이언트 측의 패킷 수신자(107)는 수신된 패킷을 버퍼(111)에 저장함으로써 서버에서 클라이언트로의 패킷 전송이 이루어진다. 본 발명의 방법을 적용한 버퍼는 라우터 또는 게이트웨이에서뿐만 아니라 서버나 클라이언트 측에서도 적용 가능하다. 한편, 본 발명의 방법을 적용한 버퍼는 2개의 배열과 2개의 버퍼로 구성되며, 각 버퍼를 송신용과 수신용으로 구분하여 사용하는 것도 가능하다.The packet sender 101 on the server side transmits the packet stored in the buffer 108 to the client side. The transmitted packets are temporarily stored in the buffer 109 implemented according to the network congestion adaptive buffering method of the present invention via the packet receiver 103 of the router or gateway. The packet sender 105 in the router or gateway transmits the temporarily stored packet to the packet receiver 107 on the client side, and the packet receiver 107 on the client side stores the received packet in the buffer 111. Packet transfer from the server to the client takes place. The buffer to which the method of the present invention is applied is applicable not only at the router or gateway but also at the server or client side. On the other hand, the buffer to which the method of the present invention is applied is composed of two arrays and two buffers, and each buffer can be used separately for transmission and reception.

다음으로 도 2를 참조하여 본 발명에 따른 네트워크 혼잡 적응 버퍼링에 의한 버퍼의 내부 구조도에 대해서 설명한다. Next, an internal structure diagram of a buffer by network congestion adaptive buffering according to the present invention will be described with reference to FIG. 2.

본 발명에 따른 네트워크 혼잡 적응 버퍼링 방법은 패킷의 유입량에 따라 버퍼의 용량을 동적으로 관리하기 위하여 두 개의 버퍼가 각각 두개의 배열을 상호 공유하고, 각각의 버퍼를 구별하기 위한 경계를 설정하며, 입력되는 패킷의 유입량에 따라 경계를 이용하여 버퍼의 용량을 조절하는 것이다. In the network congestion adaptive buffering method according to the present invention, in order to dynamically manage the capacity of a buffer according to the inflow amount of packets, two buffers each share two arrays, and a boundary for distinguishing each buffer is set. The capacity of the buffer is adjusted by using the boundary according to the amount of incoming packets.

이를 도면에 적용하여 설명하면 다음과 같다. 버퍼1은 도면에 명시되어 있는 배열A의 버퍼1 시작위치에서 배열A의 경계 이전까지의 크기로 이루어진 배열과 배열B의 버퍼1 시작위치에서 배열B의 경계 이전까지의 크기로 이루어진 배열로 구성되어 있다. 버퍼 2는 버퍼1과 상호 연관되어 구성되어 있다. 즉, 버퍼 1과 버퍼 2는 배열A와 배열B를 상호 공유하고 있으며 경계를 기점으로 버퍼를 구분하고 있다. 따라서 두 개의 버퍼가 고정적인 크기의 제한적 형태의 용량을 가지고 있는 것이 아니라 입력되는 패킷의 양에 따라 경계의 위치를 이동시켜 버퍼의 용량을 유동적으로 조절시키도록 하여 네트워크의 불확실성에 의한 혼잡을 제어하게 된다.The following description applies to the drawings. Buffer 1 consists of an array consisting of the size from the start of buffer 1 of array A to the boundary of array A and the size of the array B from the start of buffer 1 to the boundary of array B as specified in the drawing. have. Buffer 2 is configured to correlate with Buffer 1. That is, buffer 1 and buffer 2 share array A and array B and divide the buffer from the boundary. Therefore, the two buffers do not have a limited size of fixed size, but move the position of the boundary according to the amount of incoming packets to flexibly adjust the capacity of the buffer to control congestion due to the uncertainty of the network. do.

도 2에서 처리 위치는 처리될 패킷의 위치를 나타내며, 입력위치는 버퍼에 들어오는 패킷이 저장될 위치를 나타낸다.In FIG. 2, the processing position indicates the position of the packet to be processed, and the input position indicates the position where the packet entering the buffer is to be stored.

다음으로 도 3 내지 도 7을 참조하여 본 발명에 따른 네트워크 혼잡 적응 버퍼링 방법에 관하여 설명한다. Next, a network congestion adaptive buffering method according to the present invention will be described with reference to FIGS. 3 to 7.

도 3은 본 발명에 따른 네트워크 혼잡 적응 버퍼링 방법에 관한 버퍼의 초기화를 나타낸 도면이다.3 is a diagram illustrating initialization of a buffer in a network congestion adaptive buffering method according to the present invention.

먼저 메모리에 두 개의 배열을 할당한다(S301). 배열의 크기는 사용 가능한 메모리 크기와 전송되는 패킷의 양, 처리되는 패킷의 양에 따라서 적절하게 설정하면 된다.First, two arrays are allocated to the memory (S301). The size of the array can be set appropriately according to the available memory size, the amount of packets to be transmitted, and the amount of packets to be processed.

다음에, 각 배열에 대하여 두 버퍼의 시작위치를 설정하고(S303) 버퍼의 최소 용량을 나타내는 위치를 설정한다(S305). 상기 버퍼의 최소 용량을 나타내는 위치를 설정하는 것은 각 버퍼의 최소 용량을 보장하기 위함이다. 만약 버퍼의 최소 용량의 위치를 설정하지 않는다면 패킷의 입력이 많은 버퍼가 입력이 적은 버퍼의 공간을 모두 차지하게 되어 입력이 적은 버퍼가 패킷을 할당할 수 있는 공간이 없어지기 때문에 입력이 적은 버퍼의 용량을 보장하기 위해 최소 용량을 나타내는 위치를 설정한다.Next, start positions of two buffers are set for each array (S303), and a position indicating the minimum capacity of the buffer is set (S305). Setting a position indicating the minimum capacity of the buffer is to ensure the minimum capacity of each buffer. If you do not set the location of the minimum capacity of the buffer, a buffer with a lot of input will occupy all the space of the buffer with a small amount of input, and a buffer with a small amount of input will have no space to allocate a packet. To ensure the capacity, set a location that represents the minimum capacity.

각 버퍼의 최소 용량을 나타내는 위치를 설정한 후 각 버퍼의 입력 위치를 설정하고(S307), 각 버퍼의 처리 위치를 설정한 후(S309) 각 배열의 경계를 설정한다(S311). 각 배열의 경계를 설정하는 이유는 각 버퍼를 구분짓기 위한 것으로 상기 경계의 위치를 변동시킴으로써 입력되는 패킷의 유입량에 따라 버퍼의 크기를 유동적으로 조절할 수 있게 된다.  After setting the position indicating the minimum capacity of each buffer, the input position of each buffer is set (S307), the processing position of each buffer is set (S309), and the boundary of each array is set (S311). The reason for setting the boundary of each array is to distinguish each buffer, and by changing the position of the boundary, the size of the buffer can be flexibly adjusted according to the inflow amount of the input packet.

다음으로 도 4를 참조하여 본 발명에 따른 버퍼에 패킷을 저장할 때의 절차를 설명한다.Next, a procedure of storing a packet in a buffer according to the present invention will be described with reference to FIG. 4.

패킷을 저장한 입력위치가 경계 위치와 일치하는지 판단하고(S401), 입력위치가 경계이면 입력 위치 변경 알고리즘을 호출한다(S405). 입력 위치 변경 알고리즘은 도 6을 참조하여 후술한다.It is determined whether the input position storing the packet coincides with the boundary position (S401). If the input position is the boundary, the input position change algorithm is called (S405). The input position change algorithm will be described later with reference to FIG. 6.

이상의 절차에 의해 패킷을 저장할 입력위치가 확정되면 확정된 입력 위치에 패킷이 존재하는지를 확인한다(S403). 입력 위치에 패킷이 존재하면 패킷을 저장할 버퍼공간이 남아있지 않은 것이므로 들어온 패킷을 폐기시키고(S407), 다음에 패킷이 들어오기를 기다린다. 입력 위치에 패킷이 존재하지 않으면 입력된 패킷을 입력위치에 저장하고(S409), 입력 위치의 인덱스를 이동시킨다(S411). 인덱스의 이동은 버퍼 1의 경우에는 인덱스를 한 개 증가시키는 것을 의미하며 버퍼 2의 경우에는 인덱스를 한 개 감소시키는 것을 의미한다.When the input position to store the packet is determined by the above procedure, it is checked whether the packet exists at the determined input position (S403). If the packet exists in the input position, there is no buffer space for storing the packet, so the incoming packet is discarded (S407) and the next packet is waited for. If the packet does not exist at the input position, the input packet is stored at the input position (S409), and the index of the input position is moved (S411). Moving an index means increasing the index by one in the case of buffer 1 and decreasing the index by one in the case of buffer 2.

다음으로 도 5를 참조하여 본 발명에 따른 버퍼에 있는 패킷을 처리할 때의 절차를 설명한다.Next, with reference to Figure 5 will be described the procedure when processing the packet in the buffer according to the present invention.

버퍼에 저장되어 있는 패킷을 처리하고자 하는 경우에는 처리 위치가 경계 위치와 일치한지 판단하고(S501), 처리 위치가 경계이면 처리 위치 변경 알고리즘을 호출한다(S503). 상기 처리 위치 변경 알고리즘은 도 7을 참조하여 후술한다. When the packet stored in the buffer is to be processed, it is determined whether the processing position matches the boundary position (S501). If the processing position is the boundary, the processing position change algorithm is called (S503). The processing position change algorithm will be described later with reference to FIG. 7.

위의 절차에 의해 처리 위치가 확정되면 이 처리 위치에 패킷이 존재하는지를 확인하고(S505). 처리위치에 패킷이 존재하지 않으면 처리할 패킷이 없는 것이므로 다음에 들어올 패킷을 기다린다(S507). 패킷이 존재하면 해당 패킷을 처리하고(S509), 처리 위치의 인덱스를 이동시켜(S511) 인덱스 한 개를 증가 또는 감소시킴으로서 해당 처리 위치의 인덱스에 대한 패킷 처리를 종료한다.When the processing position is determined by the above procedure, it is checked whether a packet exists at this processing position (S505). If there is no packet at the processing position, there is no packet to process, and the next packet is waited for (S507). If a packet exists, the packet is processed (S509), and the index of the processing position is moved (S511) to increase or decrease one index to terminate the packet processing for the index of the processing position.

다음으로 도 6을 참조하여 입력 위치 변경 알고리즘에 대하여 설명한다.Next, the input position change algorithm will be described with reference to FIG. 6.

전술한 바와 같이 입력 위치가 경계이면 입력 위치 변경 알고리즘이 호출된다. 입력 위치 변경 알고리즘은 먼저 입력 위치의 다음 인덱스가 비어있고 입력 위치의 다음 인덱스가 다른 버퍼의 최소 용량을 가리키지 아니하는지를 판단한다(S601). 만약 다음 인덱스가 비어있지 않거나 다른 버퍼의 최소 용량을 가리키는 인덱스이면 경계를 다른 버퍼쪽으로 이동시킬 수 없는 상황이므로 입력 위치를 다른 배열의 버퍼 시작 위치로 변경한다(S603).As described above, if the input position is a boundary, the input position change algorithm is called. The input position change algorithm first determines whether the next index of the input position is empty and the next index of the input position does not indicate the minimum capacity of another buffer (S601). If the next index is not empty or an index indicating the minimum capacity of another buffer, the boundary cannot be moved to another buffer, so the input position is changed to the buffer start position of another array (S603).

한편 입력 위치의 다음 인덱스가 비어 있고 다른 버퍼의 최소 용량을 가리키는 인덱스가 아니라면 다른 버퍼의 동기화를 위하여 다른 버퍼의 입력 위치가 경계 위치와 일치하는지를 확인한다(S605). 다른 버퍼의 입력위치가 경계이면 현재 버퍼의 용량을 증가시킬 것이기 때문에 다른 버퍼의 입력 위치를 다른 배열의 버퍼 시작 위치로 변경한다(S607). 또한, 다른 버퍼의 처리 위치도 경계 위치와 일치하는지를 판단하고(S609) 처리위치가 경계이면 다른 버퍼의 처리 위치 변경 알고리즘을 호출하여 다른 버퍼의 처리 위치를 변경시킨다(S611). 현재 버퍼의 시퀀스를 확인하기 위하여 현재 버퍼의 처리 위치 변경 알고리즘을 호출한다(S613). 처리 위치 변경 알고리즘은 도 7을 참조하여 후술한다. 이상의 절차에 의해 경계가 이동할 곳을 정리한 다음에 경계의 인덱스를 이동시킨다(S615). On the other hand, if the next index of the input position is empty and not the index indicating the minimum capacity of the other buffer, it is checked whether the input position of the other buffer coincides with the boundary position for the synchronization of the other buffer (S605). If the input position of another buffer is a boundary, the capacity of the current buffer will be increased, so the input position of the other buffer is changed to the buffer start position of the other array (S607). In addition, it is determined whether the processing position of the other buffer also matches the boundary position (S609). If the processing position is the boundary, the processing position changing algorithm of the other buffer is called to change the processing position of the other buffer (S611). In order to check the sequence of the current buffer, the processing position change algorithm of the current buffer is called (S613). The processing position change algorithm will be described later with reference to FIG. 7. The index of the boundary is moved after arranging where the boundary moves by the above procedure (S615).

이를 도 2의 버퍼 내부 구조도의 실시예에 대응하여 설명하면 다음과 같다. 만약 버퍼 1의 입력 위치가 배열B의 경계이면 입력 위치 변경 알고리즘이 호출되고 호출될 때 배열B에서 호출됨을 알려주는 값과 B배열의 경계 위치를 인자값으로 받게 된다. 그리고 도 6의 흐름도에 의해 배열B의 입력 위치 다음 인덱스가 비어 있고 다른 버퍼의 최소 용량을 가리키지 아니하는지를 판단한다. 입력위치와 경계 위치가 일치한다는 가정하에서 도 2상에서 배열B의 경계 위치(입력 위치와 일치하므로) 다음 인덱스가 비어있으므로 버퍼2의 입력위치가 경계 위치와 일치하는지를 판단하는 루틴과정등을 거쳐서, 결국 배열B에 대한 경계의 인덱스를 이동시킨다.This will be described with reference to the embodiment of the buffer internal structure of FIG. 2 as follows. If the input position of buffer 1 is the boundary of array B, the input position change algorithm is called and when it is called, it receives a value indicating that it is called from array B and the boundary position of array B as argument values. 6, it is determined whether the index next to the input position of the array B is empty and does not indicate the minimum capacity of another buffer. Under the assumption that the input position and the boundary position coincide with each other, the boundary index of the array B (since it matches the input position) on FIG. 2 is empty, and then the routine process for determining whether the input position of the buffer 2 matches the boundary position is performed. Move the index of the boundary for array B.

다음으로 도 7을 참조하여 처리 위치 변경 알고리즘에 대하여 설명한다.Next, the processing position change algorithm will be described with reference to FIG.

처리 위치 변경 알고리즘은 현재 처리 위치의 인덱스와 경계 위치의 인덱스가 일치한 경우 호출된다. 또는 입력 위치 변경 알고리즘의 수행 도중에 처리위치를 변경할 필요가 있을때 호출된다. 상기 처리 위치 변경 알고리즘이 호출되면 먼저 다른 배열의 버퍼 시작 위치가 비어있는지를 확인한다(S701). 다른 배열의 버퍼 시작위치가 비어 있으면 현재 버퍼의 입력 위치 인덱스와 경계의 인덱스가 일치하는지 여부를 판단하고(S703) 입력 위치가 경계이면 처리 위치를 변경하지 않는다. 만약 다른 배열의 버퍼 시작 위치가 비어 있지 않으면 처리 위치를 다른 배열의 시작위치로 변경한다(S705).The processing position change algorithm is called when the index of the current processing position and the index of the boundary position match. It is also called when the processing position needs to be changed during the execution of the input position changing algorithm. When the processing position change algorithm is called, first, it is checked whether a buffer start position of another array is empty (S701). If the buffer start position of another array is empty, it is determined whether the input position index of the current buffer and the index of the boundary coincide (S703). If the input position is the boundary, the processing position is not changed. If the buffer start position of another array is not empty, the processing position is changed to the start position of another array (S705).

이를 도 2의 버퍼 내부 구조도의 실시예에 대응하여 설명하면 다음과 같다.만약 버퍼1의 처리위치가 배열B의 경계이면 처리 위치 변경 알고리즘이 호출되고 호출될때 배열 B에서 호출됨을 알려주는 값과 배열 B의 경계위치를 인자값으로 받게된다. 처리 위치 변경 알고리즘 루틴에서 보면 다른 배열의 버퍼 시작 위치가 비어있는지를 판단하게 되는데 상기 알고리즘 과정을 적용해 보면 다른 배열 즉, 배열 A의 시작 위치가 비어 있기 때문에 버퍼1의 입력위치와 경계 위치가 일치하는지를 판단하고 입력위치가 경계 위치와 일치하지 않으므로 처리 위치를 배열 A의 시작위치로 변경한다.This will be described with reference to the embodiment of the buffer internal structure diagram of FIG. 2 as follows. If the processing position of the buffer 1 is the boundary of the array B, a value and an array indicating that the processing position change algorithm is called and is called from the array B when the processing position is called. The boundary position of B is received as a factor value. In the processing position change algorithm routine, it is determined whether the buffer start position of another array is empty. According to the above algorithm, the input position of the buffer 1 and the boundary position of the other array, that is, the array A are empty, are identical. If the input position does not match the boundary position, change the processing position to the start position of array A.

이상, 본 발명을 실시예를 사용하여 설명하였으나 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자라면 본 발명의 사상에서 벗어나지 않으면서 다양한 수정과 변경을 가할 수 있음을 이해할 수 있을 것이다.As mentioned above, although this invention was demonstrated using the Example, these Examples are illustrative and not restrictive. Those skilled in the art will appreciate that various modifications and changes can be made without departing from the spirit of the invention.

이상 설명한 것처럼 본 발명에 따르면 네트워크 혼잡 적응 버퍼링 방법이 제공된다. 패킷을 송신하는 버퍼와 수신하는 버퍼의 용량이 처음 설정되어 있는 버퍼의 용량으로 제한되어 있는 것이 아니라 버퍼에 유입되는 패킷의 양에 따라 버퍼의 용량을 유동적으로 조절함으로서 네트워크의 불확실성을 대비할 수 있는 효과가 있다. 또한 배열을 사용하여 버퍼의 혼잡을 수용하기 때문에 리스트를 사용할 때보다 메모리의 누출이 없으므로 컴퓨터 처리율을 높일 수 있는 효과도 있다.As described above, the present invention provides a network congestion adaptive buffering method. The capacity of the buffer to send and receive packets is not limited to the capacity of the buffer that is initially set, but the effect of preparing the network uncertainty by dynamically adjusting the buffer capacity according to the amount of packets flowing into the buffer. There is. Also, because arrays are used to accommodate buffer congestion, there is no memory leak compared to using lists, which can increase computer throughput.

도 1은 본 발명에 따른 네트워크 혼잡 적응 버퍼링 방법을 사용하는 예를 보여주는 도면이다.1 illustrates an example of using a network congestion adaptive buffering method according to the present invention.

도 2는 본 발명에 따른 네트워크 혼잡 적응 버퍼링에 의한 버퍼의 내부 구조도이다.2 is an internal structure diagram of a buffer by network congestion adaptive buffering according to the present invention.

도 3는 본 발명에 따른 네트워크 혼잡 적응 버퍼링 방법에 관한 버퍼의 초기화를 나타낸 도면이다.3 is a diagram illustrating initialization of a buffer in a network congestion adaptive buffering method according to the present invention.

도 4는 본 발명에 따른 버퍼에 패킷을 저장할 때의 흐름도이다.4 is a flowchart when storing a packet in a buffer according to the present invention.

도 5은 본 발명에 따른 버퍼에 있는 패킷을 처리할 때의 흐름도이다.5 is a flow chart when processing a packet in a buffer in accordance with the present invention.

도 6은 본 발명에 따른 입력 위치 변경 알고리즘에 관한 흐름도이다.6 is a flowchart illustrating an input position change algorithm according to the present invention.

도 7은 본 발명에 따른 처리 위치 변경 알고리즘에 관한 흐름도이다.7 is a flowchart of a processing position change algorithm according to the present invention.

Claims (6)

두 개의 배열을 메모리에 할당하고, 각 배열의 일부분씩을 갖는 두 개의 버퍼를 설정하고 각 버퍼의 입력위치와 처리위치를 설정하는 버퍼 초기화 단계와,A buffer initialization step of allocating two arrays to memory, setting up two buffers with portions of each array, and setting the input and processing positions of each buffer; 입력되는 패킷을 해당 버퍼의 입력위치에 저장하고 입력위치를 변경하는 패킷 저장 단계와,A packet storing step of storing an input packet at an input position of a corresponding buffer and changing the input position; 각 버퍼의 처리위치에 있는 패킷을 처리하고 처리위치를 다음 패킷이 있는 위치로 변경하는 패킷 처리 단계Packet processing step of processing the packet at the processing position of each buffer and changing the processing position to the position where the next packet is located. 를 포함하는 네트워크 혼잡 적응 버퍼링 방법.Network congestion adaptive buffering method comprising a. 제 1항에 있어서, 버퍼 초기화 단계는The method of claim 1, wherein the buffer initialization step 두 개의 배열을 메모리에 할당하는 단계;Allocating two arrays to memory; 각 배열에 대하여 두 버퍼의 시작 위치를 설정하고 두 버퍼의 최소용량을 나타내는 인덱스를 설정하는 단계;Setting a starting position of two buffers for each array and setting an index indicating a minimum capacity of the two buffers; 각 버퍼의 입력위치와 처리위치를 설정하는 단계;Setting an input position and a processing position of each buffer; 각 배열에서 두 버퍼 사이의 경계를 설정하는 단계Setting the boundary between two buffers in each array 를 포함하는 것을 특징으로 하는 네트워크 혼잡 적응 버퍼링 방법.Network congestion adaptive buffering method comprising a. 제 2항에 있어서, 패킷 저장 단계는The method of claim 2, wherein storing the packet 입력위치가 경계이면 입력 위치 변경 알고리즘을 호출하고, If the input position is a boundary, call the input position change algorithm, 입력위치에 패킷이 존재하면 입력된 패킷을 폐기시키고 패킷이 존재하지 않으면 입력된 패킷을 입력위치에 저장하고 입력위치를 이동시키는 것을 특징으로 하는 네트워크 혼잡 적응 버퍼링 방법.And discarding the input packet if the packet exists at the input location, and storing the input packet at the input location and moving the input location if the packet does not exist. 제 3항에 있어서, 상기 입력 위치 변경 알고리즘은 4. The method of claim 3, wherein the input position change algorithm 입력 위치의 다음 인덱스가 비어있는지 여부와 다음 인덱스가 다른 버퍼의 최소 용량을 나타내는지 여부를 판단하는 제 1단계;A first step of determining whether the next index of the input position is empty and whether the next index represents the minimum capacity of another buffer; 제 1단계의 판단결과 입력 위치의 다음 인덱스가 비어있지 않거나 다른 버퍼의 최소 용량을 가리키는 인덱스이면 입력 위치를 다른 배열의 버퍼 시작 위치로 변경하는 제 2단계;A second step of changing the input position to a buffer start position of another array if the next index of the input position is not empty or an index indicating a minimum capacity of another buffer; 제 1단계의 판단 결과 입력 위치의 다음 인덱스가 비어있고 다른 버퍼의 최소 용량을 가리키는 인덱스가 아니라면 다른 버퍼의 입력 위치가 경계 위치와 일치하는지 여부를 확인하는 제 3단계;Determining whether the input position of the other buffer coincides with the boundary position if the next index of the input position is empty and is not an index indicating the minimum capacity of the other buffer; 제 3단계의 확인 결과 일치하면 다른 버퍼의 입력 위치를 다른 배열의 버퍼 시작 위치로 변경하며 다른 버퍼의 처리 위치와 경계 위치가 일치하는지를 판단하는 제 4단계;A fourth step of changing the input position of the other buffer to the buffer start position of the other array and confirming whether or not the processing position of the other buffer coincides with the check result of the third step; 제 3단계의 확인 결과 일치하지 않으면 다른 버퍼의 처리 위치와 경계 위치가 일치하는 지를 판단하는 제 5단계;A fifth step of determining whether or not the processing position of the other buffer and the boundary position coincide with each other if the result of the checking in the third step does not match; 다른 버퍼의 처리 위치와 경계 위치가 일치하면 다른 버퍼의 처리 위치 변경 알고리즘을 호출한 후 현재 버퍼의 처리 위치 변경 알고리즘을 호출하고 일치하지 않으면 현재 버퍼의 처리 위치 변경 알고리즘을 호출하는 제 6단계;A sixth step of calling a processing position changing algorithm of another buffer after calling the processing position changing algorithm of the other buffer if the processing position and the boundary position of the other buffer match, and calling the processing position changing algorithm of the current buffer if they do not match; 경계의 인덱스를 이동하는 제 7단계Seventh step of moving the index of the boundary 를 포함하는 것을 특징으로 하는 네트워크 혼잡 적응 버퍼링 방법.Network congestion adaptive buffering method comprising a. 제 4항에 있어서, 상기 처리 위치 변경 알고리즘은 The method of claim 4, wherein the processing position change algorithm is 다른 배열의 버퍼 시작 위치가 비어있는지 판단하는 제 8단계;An eighth step of determining whether a buffer start position of another array is empty; 제 8단계의 판단결과 비어있지 않으면 처리 위치를 다른 배열의 시작 위치로 변경하는 제 9단계;A ninth step of changing a processing position to a start position of another array if the determination result of the eighth step is not empty; 제 8단계의 판단결과 비어 있으면 현재 버퍼의 입력위치 인덱스와 경계의 인덱스가 일치하는지를 판단하는 제 10단계;A tenth step of determining whether the index of the current position of the buffer and the index of the boundary coincide if the determination result of the eighth step is empty; 제 10단계의 판단결과 일치하지 않으면 처리 위치를 다른 배열의 시작위치로 변경하는 제 11단계The eleventh step of changing the processing position to the start position of another array if the determination result of the tenth step does not match 를 포함하는 것을 특징으로 하는 네트워크 혼잡 적응 버퍼링 방법.Network congestion adaptive buffering method comprising a. 제 5항에 있어서, 패킷 처리단계는The method of claim 5, wherein the packet processing step 처리위치가 경계이면 상기 처리 위치 변경 알고리즘을 호출하고 If the processing position is a boundary, the processing position changing algorithm is called. 처리위치에 패킷이 존재하지 않으면 기다리고 패킷이 존재하면 패킷을 처리하고 처리위치를 이동시키는 것을 특징으로 하는 네트워크 혼잡 적응 버퍼링 방법Network congestion adaptive buffering method characterized in that if there is no packet at the processing location, if the packet exists, processing the packet and moving the processing location
KR1020040025105A 2004-04-12 2004-04-12 Method for network congestion adaptive buffering KR20050099883A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040025105A KR20050099883A (en) 2004-04-12 2004-04-12 Method for network congestion adaptive buffering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040025105A KR20050099883A (en) 2004-04-12 2004-04-12 Method for network congestion adaptive buffering

Publications (1)

Publication Number Publication Date
KR20050099883A true KR20050099883A (en) 2005-10-17

Family

ID=37278867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040025105A KR20050099883A (en) 2004-04-12 2004-04-12 Method for network congestion adaptive buffering

Country Status (1)

Country Link
KR (1) KR20050099883A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100603584B1 (en) * 2004-11-16 2006-07-24 삼성전자주식회사 Router and method for managing queue of packet using the same
KR100757872B1 (en) * 2006-02-06 2007-09-11 삼성전자주식회사 Apparatus and method of backward congestion notification on network
KR20110031714A (en) * 2009-09-21 2011-03-29 삼성전자주식회사 Apparatus and method for transmitting/receiving data in point to point communication
KR101390192B1 (en) * 2008-01-17 2014-04-29 삼성전자주식회사 Transmission apparatus and receiving apparatus of video trasmission system, and buffer control method thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100603584B1 (en) * 2004-11-16 2006-07-24 삼성전자주식회사 Router and method for managing queue of packet using the same
KR100757872B1 (en) * 2006-02-06 2007-09-11 삼성전자주식회사 Apparatus and method of backward congestion notification on network
KR101390192B1 (en) * 2008-01-17 2014-04-29 삼성전자주식회사 Transmission apparatus and receiving apparatus of video trasmission system, and buffer control method thereof
KR20110031714A (en) * 2009-09-21 2011-03-29 삼성전자주식회사 Apparatus and method for transmitting/receiving data in point to point communication

Similar Documents

Publication Publication Date Title
US9225668B2 (en) Priority driven channel allocation for packet transferring
US5367517A (en) Method and system of requesting resources in a packet-switched network with minimal latency
JP3305326B2 (en) Overload state control in frame relay networks
KR100875739B1 (en) Apparatus and method for packet buffer management in IP network system
US20140036680A1 (en) Method to Allocate Packet Buffers in a Packet Transferring System
KR100463697B1 (en) Method and system for network processor scheduling outputs using disconnect/reconnect flow queues
WO2021147368A1 (en) Method and apparatus for adjusting service level, device, system and storage medium
CN113076280A (en) Data transmission method and related equipment
TWI360744B (en) Data packet processing device
JP2023511889A (en) Service level configuration method and apparatus
JP2000312212A (en) Delay assignment of network element for efficient use of network resource
KR20050099883A (en) Method for network congestion adaptive buffering
EP1288777A2 (en) Buffer storage system
JPH08504546A (en) Congestion management method in frame relay network and node of frame relay network
Ehsan et al. On the optimality of an index policy for bandwidth allocation with delayed state observation and differentiated services
JP2009081595A (en) Packet data relay apparatus
EP1142258B1 (en) Packet concatenation method and apparatus
JP3768422B2 (en) Dynamic band allocation circuit, subscriber termination device, PON system, dynamic band allocation method, dynamic band allocation program, and recording medium
KR20120055947A (en) Method and apparatus for providing Susbscriber-aware per flow
CN117155874A (en) Data packet transmitting method, forwarding node, transmitting terminal and storage medium
JP2003511976A (en) Link capacity sharing for throughput blocking optimization
KR20210129872A (en) Method and apparatus for high precision data communication
WO2008085635A1 (en) Communication device and methods thereof
EP1447998A1 (en) Adaptively maintaining quality of service (Qos) in distributed PBX networks
US6891943B1 (en) Method and device for establishing connection path in a communications network

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application