KR20050099883A - Method for network congestion adaptive buffering - Google Patents
Method for network congestion adaptive buffering Download PDFInfo
- 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
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B02—CRUSHING, PULVERISING, OR DISINTEGRATING; PREPARATORY TREATMENT OF GRAIN FOR MILLING
- B02C—CRUSHING, PULVERISING, OR DISINTEGRATING IN GENERAL; MILLING GRAIN
- B02C18/00—Disintegrating by knives or other cutting or tearing members which chop material into fragments
- B02C18/0007—Disintegrating by knives or other cutting or tearing members which chop material into fragments specially adapted for disintegrating documents
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B02—CRUSHING, PULVERISING, OR DISINTEGRATING; PREPARATORY TREATMENT OF GRAIN FOR MILLING
- B02C—CRUSHING, PULVERISING, OR DISINTEGRATING IN GENERAL; MILLING GRAIN
- B02C18/00—Disintegrating by knives or other cutting or tearing members which chop material into fragments
- B02C18/0007—Disintegrating by knives or other cutting or tearing members which chop material into fragments specially adapted for disintegrating documents
- B02C2018/0015—Disintegrating 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B02—CRUSHING, PULVERISING, OR DISINTEGRATING; PREPARATORY TREATMENT OF GRAIN FOR MILLING
- B02C—CRUSHING, PULVERISING, OR DISINTEGRATING IN GENERAL; MILLING GRAIN
- B02C18/00—Disintegrating by knives or other cutting or tearing members which chop material into fragments
- B02C18/0007—Disintegrating by knives or other cutting or tearing members which chop material into fragments specially adapted for disintegrating documents
- B02C2018/0038—Motor 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
본 발명은 네트워크 혼잡 적응 버퍼링 방법에 관한 것으로 보다 상세하게는 송수신 버퍼가 각각 두 개의 배열을 상호 공유하고 각각의 버퍼를 구별하기 위하여 경계를 설정하며 버퍼에 입력되는 패킷의 양에 따라 상기 경계의 위치를 변경하여 버퍼의 용량을 동적으로 조절하는 네트워크 혼잡 적응 버퍼링 방법에 관한 것이다.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)
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)
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 |
-
2004
- 2004-04-12 KR KR1020040025105A patent/KR20050099883A/en not_active Application Discontinuation
Cited By (4)
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 |