KR100552515B1 - Apparatus and method for packet processing - Google Patents

Apparatus and method for packet processing Download PDF

Info

Publication number
KR100552515B1
KR100552515B1 KR1020040001009A KR20040001009A KR100552515B1 KR 100552515 B1 KR100552515 B1 KR 100552515B1 KR 1020040001009 A KR1020040001009 A KR 1020040001009A KR 20040001009 A KR20040001009 A KR 20040001009A KR 100552515 B1 KR100552515 B1 KR 100552515B1
Authority
KR
South Korea
Prior art keywords
packet
protocol
packets
received
buffer
Prior art date
Application number
KR1020040001009A
Other languages
Korean (ko)
Other versions
KR20050072642A (en
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 KR1020040001009A priority Critical patent/KR100552515B1/en
Publication of KR20050072642A publication Critical patent/KR20050072642A/en
Application granted granted Critical
Publication of KR100552515B1 publication Critical patent/KR100552515B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/782Hierarchical allocation of resources, e.g. involving a hierarchy of local and centralised entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation

Abstract

본 발명은 IPv4 패킷과 IPv6 패킷이 혼재하는 네트워크에서 패킷 처리를 위한 자원할당을 효율적으로 수행하기 위한 것으로, 수신되는 패킷들의 프로토콜을 판단하여 패킷들을 각 프로토콜별로 분류하고, 그 분류 결과에 따른 패킷 정보를 생성하는 프로토콜 필드 룩업부와, 상기 프로토콜 필드 룩업부에 의해 분류된 패킷들을 각 프로토콜별로 저장하는 복수 개의 버퍼들과, 상기 버퍼들로부터 수신한 패킷들을 처리하는 네트워크 프로세서와, 상기 프로토콜 필드 룩업부로부터 상기 패킷 정보를 수신하고, 상기 패킷 정보에 따라 상기 버퍼들의 크기를 변경하는 버퍼 매니저를 포함하는 패킷 처리 장치를 제안한다.The present invention is to efficiently perform resource allocation for packet processing in a network in which IPv4 packets and IPv6 packets are mixed. The present invention is to determine the protocol of received packets and classify the packets according to each protocol. A protocol field lookup unit for generating a plurality of buffers, a plurality of buffers for storing the packets classified by the protocol field lookup unit for each protocol, a network processor processing the packets received from the buffers, and the protocol field lookup unit A packet processing apparatus including a buffer manager for receiving the packet information from the terminal and changing the size of the buffers in accordance with the packet information.

IPv4, IPv6, PPP, 자원할당, 패킷 처리, 버퍼IPv4, IPv6, PPP, Resource Allocation, Packet Processing, Buffer

Description

패킷 처리 장치 및 방법{APPARATUS AND METHOD FOR PACKET PROCESSING} Packet processing apparatus and method {APPARATUS AND METHOD FOR PACKET PROCESSING}             

도 1은 두 시스템간에 PPP 링크를 설정하는 과정을 도시하는 도면.1 is a diagram illustrating a process of establishing a PPP link between two systems.

도 2는 링크를 통해 전송되는 패킷 형태를 도시하는 도면.2 illustrates the form of packets transmitted over a link.

도 3은 종래기술에 따른 패킷 처리 장치의 구성을 도시하는 도면.3 is a diagram illustrating a configuration of a packet processing apparatus according to the prior art.

도 4는 본 발명에 따른 도면으로, IPv4 패킷과 IPv6 패킷을 분리하여 처리하기 위한 패킷 처리 장치의 구성을 도시하는 도면.4 is a diagram according to the present invention, illustrating a configuration of a packet processing apparatus for separating and processing an IPv4 packet and an IPv6 packet.

도 5는 본 발명의 구성 요소들인 프로토콜 필드 룩업부, 버퍼 매니저, 네트워크 프로세서간에 교환되는 정보를 정의한 메시지 형태를 도시하는 도면.5 is a diagram illustrating a message form defining information exchanged between a protocol field lookup unit, a buffer manager, and a network processor, which are components of the present invention;

도 6은 본 발명에 따른 도면으로, IPv4 패킷과 IPv6 패킷을 분리하여 처리하는 과정을 도시하는 순서 흐름도.6 is a flow chart illustrating a process of separating and processing an IPv4 packet and an IPv6 packet in accordance with the present invention.

본 발명은 네트워크에서 패킷의 처리 장치 및 방법에 관한 것으로, 더욱 상세히 말하자면, IPv4 패킷(버전 4인 인터넷 프로토콜 패킷, 이하 "IPv4 패킷"이라 칭한다)과 IPv6 패킷(버전 6인 인터넷 프로토콜 패킷, 이하 "IPv6 패킷"이라 칭한다)이 혼재하는 네트워크 상에서 효율적인 패킷(IPv4 패킷과 IPv6 패킷을 모두 포함)의 처리 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and a method for processing a packet in a network. More specifically, the present invention relates to an IPv4 packet (Internet Protocol packet of version 4, hereinafter referred to as "IPv4 packet") and an IPv6 packet (Internet protocol packet of version 6, hereinafter ". An apparatus and method for processing an efficient packet (including both an IPv4 packet and an IPv6 packet) on a mixed network of IPv6 packets.

네트워크 계층에서 처리되는 프로토콜이나 상위 계층의 애플리케이션이 생성하는 정보를 패킷(데이터그램이라고도 함)이라 하는데, 토큰 링(Token ring), FDDI(Fiber Distribution Data Interface), 이더넷(Ethernet), ISDN(Integrated Services Digital Network), ATM(Asynchronous Transfer Mode), PPP(Point to Point Protocol) 등을 통해 전송 가능하다. 이 중에서 PPP를 예로 들어보면, PPP는 세 가지의 구성 요소로 이루어져 있다. 첫 번째, 직렬 링크를 통해 패킷을 캡슐화하는 방법, 두 번째, 데이터 링크 연결을 시험, 구성 그리고 설정하기 위한 링크 제어 프로토콜(Link Control Protocol), 그리고 마지막으로 다른 네트워크 계층 프로토콜을 구성하고 설정하기 위한 네트워크 제어 프로토콜(Network Control Protocols)의 집합이다. 이러한 구성 요소들로 이루어진 PPP 링크를 통해서 통신하기 위해서는 먼저 데이터 링크를 시험하고 구성하기 위해서 링크 제어 프로토콜 패킷(Link Control Packet, LCP)을 전송한다. 그 후 하나 또는 그 이상의 네트워크 계층 프로토콜을 구성하고 결정하기 위해서 네트워크 제어 프로토콜 패킷을 전송해야만 한다. 이러한 과정이 모두 끝난 후 각 네트워크 계층 프로토콜이 보내려고 하는 패킷을 링크 계층을 통해서 전송할 수 있게 된다. 이렇게 설정된 링크는 외부적인 링크 제어 프로토콜 패킷 또는 네트워크 제어 프로토콜 패킷에 의해서 링크가 끊기거나 외부적인 사건이 발생하여 링크가 끊길 때까지 통신을 하기 위한 구 성상태가 존재하게 된다. 패킷들이 전송되기 전에 PPP는 네트워크 계층 프로토콜 상태에 도달해야만 하고 아이피 제어 프로토콜은 오픈된 상태에 도달해야한다. 이와 같이 네트워크 계층까지 링크가 설정되면, 설정된 링크를 통해 패킷들이 전송된다. 도 2는 설정된 링크를 통해 전송되는 패킷의 포맷을 예로 들어 도시하는 도면이다.Information generated by protocols or higher-layer applications processed at the network layer is called packets (also called datagrams) .Token ring, Fiber Distribution Data Interface (FDDI), Ethernet, and Integrated Services Digital Network (ATM), Asynchronous Transfer Mode (ATM), Point to Point Protocol (PPP), etc. Taking PPP as an example, PPP consists of three components. First, a method of encapsulating packets over a serial link; second, a link control protocol for testing, configuring, and establishing data link connections; and finally, a network for configuring and setting up other network layer protocols. A set of network control protocols. To communicate over a PPP link consisting of these components, a link control protocol packet (LCP) is first transmitted to test and configure the data link. The network control protocol packet must then be sent to configure and determine one or more network layer protocols. After all these steps, each network layer protocol can send packets through the link layer. In this way, the link is configured for communication until the link is disconnected due to an external link control protocol packet or a network control protocol packet or an external event occurs. The PPP must reach the network layer protocol state and the IP control protocol must reach the open state before packets can be sent. When the link is established up to the network layer as described above, packets are transmitted through the established link. 2 is a diagram illustrating a format of a packet transmitted through an established link as an example.

도 2에 도시된 바와 같이, 일반적으로 각 패킷들은 주소 필드(202), 제어 필드(204), 프로토콜 필드(206), 페이로드(208), FCS(Frame Check Sequence) 필드(210)를 포함하도록 구성된다. 전송하고자 하는 데이터인 페이로드(208)의 앞에 붙은, 데이터 전송을 위한 정보들을 포함하는 필드들(202 내지 206)을 헤더라 칭한다. 패킷을 수신하는 네트워크 시스템들은 헤더를 참조하여 패킷 전송을 위한 정보를 얻는다. 주소 필드(202)는 목적지의 주소를 포함하고, 제어 필드(204)는 적절한 처리를 확신하기 위해 일련번호(sequence number)를 포함한다. 도 2에는 주소 필드(202) 및 제어 필드(204)에 각각 FF 및 03이라는 수치가 들어 있는데, 이는 하나의 예시일 뿐, 특정되는 수치는 아니다.As shown in FIG. 2, each packet generally includes an address field 202, a control field 204, a protocol field 206, a payload 208, and a frame check sequence (FCS) field 210. It is composed. The fields 202 to 206 containing information for data transmission, which are attached to the payload 208 which is data to be transmitted, are called headers. Network systems receiving the packet obtain information for packet transmission by referring to the header. The address field 202 contains the address of the destination, and the control field 204 contains a sequence number to ensure proper processing. 2 includes numerical values FF and 03 in the address field 202 and the control field 204, respectively, which is one example only and is not specific.

도 3은 종래 기술에 따른 도면으로, 수신되는 패킷에 대한 처리를 수행하는 패킷 처리 장치를 도시하는 도면이다.3 is a diagram according to the prior art, which shows a packet processing apparatus for processing a received packet.

도 3에 도시된 바와 같이, 패킷 처리 장치는 프로토콜 필드 룩업부(300), 버퍼(310), 네트워크 프로세서(320)로 이루어져 있다. 프로토콜 필드 룩업부(300)는 링크로부터 수신한 패킷의 헤더를 참조하여 패킷의 정보를 획득하고, 수신한 패킷을 버퍼(310)에 송신한다. 네트워크 프로세서(320)는 버퍼(310)로부터 패킷을 수 신하여 패킷 처리를 수행한다.As shown in FIG. 3, the packet processing apparatus includes a protocol field lookup unit 300, a buffer 310, and a network processor 320. The protocol field lookup unit 300 obtains the packet information by referring to the header of the packet received from the link, and transmits the received packet to the buffer 310. The network processor 320 receives the packet from the buffer 310 and performs packet processing.

한편, 현재는 종래의 IPv4에서, IPv4의 주소 체계에 따른 주소의 부족 현상을 해결하기 위해 새로이 제안된, IPv6로 전환되어 가는 과도기로써, 네트워크 상에서 IPv4와 IPv6가 혼재하는 경우가 빈번하게 발생할 수 있다. 네트워크 프로세서(320)의 IPv4 패킷과 IPv6 패킷에 대한 처리 과정이 다르므로, 네트워크 프로세서(320)는 수신되는 패킷의 IP 헤더를 검사하여 수신되는 패킷이 IPv4 패킷인지 IPv6 패킷인지를 확인하는 작업을 더 수행하여야 한다. 네트워크 프로세서(320)는 PPP 링크를 통해 수신되는 PPP 프레임을 디캡슐레이션(decapsulation)해서 IP 패킷 내에서 IP 패킷 헤더(packet header) 처리를 통해 IPv4 패킷인지 IPv6 패킷인지 구분하여 패킷 처리를 한다. 하나의 IPv6 패킷은 PPP 데이터 링크 계층 프레임의 정보 영역에 캡슐화되어 있으며 PPP 데이터 링크 계층 프레임은 차세대 인터넷 프로토콜인 버전 6을 나타내는 0x0057의 값을 프로토콜 영역(206)에 가지고 있고, IPv4인 경우는 '0x0021'의 값을 가진다. 따라서 프로토콜 영역(206)을 참조함으로써 패킷의 프로토콜을 알 수 있다.On the other hand, in the current IPv4, as a transition period newly transitioned to IPv6, which is newly proposed to solve the address shortage due to the IPv4 addressing system, there may be frequent cases where IPv4 and IPv6 are mixed on the network. . Since the processing of the IPv4 packet and the IPv6 packet of the network processor 320 is different, the network processor 320 further checks whether the received packet is an IPv4 packet or an IPv6 packet by examining the IP header of the received packet. It must be done. The network processor 320 decapsulates the PPP frame received through the PPP link, and classifies whether the packet is an IPv4 packet or an IPv6 packet through an IP packet header process in the IP packet. One IPv6 packet is encapsulated in the information area of the PPP data link layer frame, and the PPP data link layer frame has a value of 0x0057 in the protocol area 206 indicating version 6, the next generation Internet protocol, and in the case of IPv4, '0x0021. Has a value of '. Thus, by referring to the protocol area 206, the protocol of the packet can be known.

다른 한편, 종래에는 IPv4 혹은 IPv6만 존재하는 네트워크에서도 IPv6 혹은 IPv4를 처리하기 위한 버퍼(310) 자원 및 네트워크 프로세서(320)의 자원을 할당해 두어야 했으므로, 불필요한 자원의 낭비가 발생하게 된다. 또, IPv4 패킷과 IPv6 패킷이 혼재하는 네트워크라 해도 IPv4 패킷과 IPv6 패킷을 위해 할당된 자원이 고정적이기 때문에 자원의 낭비가 발생하게 된다. IPv4 패킷을 위해 할당된 자원은 IPv4 패킷 처리를 위해서만 사용되고, IPv6용 패킷을 위해 할당된 자원은 IPv6 패 킷 처리를 위해서만 사용되기 때문이다. IPv4 패킷과 IPv6 패킷이 혼재하는 링크라 해도 수신되는 IPv4 패킷과 IPv6 패킷의 비율이 일정하게 유지되는 것은 아니므로, 수신되는 패킷의 비율에 따라 할당 자원을 동적으로 변화시킬 수 있는 패킷 처리 장치 및 방법이 요구된다. 또한, IPv4 패킷과 IPv6 패킷의 두 가지 패킷만이 아니라, 그 이상 여러 가지의 패킷이 혼재하는 네트워크가 존재할 수도 있을 것이다. 이러한 경우, 네트워크 시스템에서 상기 복수의 패킷에 대한 처리를 효율적으로 수행할 수 있도록 하는 패킷 처리 장치 및 방법이 요구될 것이다.On the other hand, conventionally, even in a network in which only IPv4 or IPv6 exists, resources of the buffer 310 and the network processor 320 for processing IPv6 or IPv4 have to be allocated, resulting in unnecessary waste of resources. In addition, even in a network in which IPv4 packets and IPv6 packets are mixed, resources allocated for IPv4 packets and IPv6 packets are fixed, resulting in waste of resources. This is because resources allocated for IPv4 packets are used only for IPv4 packet processing, and resources allocated for IPv6 packets are used only for IPv6 packet processing. A packet processing apparatus and method for dynamically allocating allocated resources according to the ratio of received packets, even if a link in which IPv4 packets and IPv6 packets are mixed does not maintain a constant ratio of received IPv4 packets and IPv6 packets. Is required. In addition, there may be a network in which not only two packets of IPv4 packets and IPv6 packets but also several packets are mixed. In such a case, there will be a need for a packet processing apparatus and method for efficiently processing a plurality of packets in a network system.

본 발명의 목적은 두 가지 프로토콜의 패킷이 혼재할 수 있는 네트워크에서의 패킷 처리를 효율적으로 수행 가능한 패킷 처리 장치 및 방법을 제공함에 있다.An object of the present invention is to provide a packet processing apparatus and method capable of efficiently performing packet processing in a network in which packets of two protocols can be mixed.

본 발명의 다른 목적은 두 가지 프로토콜의 패킷이 혼재할 수 있는 네트워크에서 발생하는 자원의 낭비를 감소시킬 수 있는 패킷 처리 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide a packet processing apparatus and method capable of reducing the waste of resources occurring in a network in which packets of two protocols can be mixed.

본 발명의 다른 목적은 수신되는 패킷들의 프로토콜별 비율에 따라 각 패킷 처리를 위해 할당하는 자원을 변화시킴으로써 효율적인 자원할당이 가능하도록 하는 패킷 처리 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide a packet processing apparatus and method for enabling efficient resource allocation by changing resources allocated for processing each packet according to a protocol-specific ratio of received packets.

본 발명의 또 다른 목적은 복수의 프로토콜의 패킷이 혼재할 수 있는 네트워크에서 패킷 처리를 효율적으로 수행 가능한 패킷 처리 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide a packet processing apparatus and method capable of efficiently performing packet processing in a network in which packets of a plurality of protocols may be mixed.

본 발명은 네트워크 프로세서가 수신되는 패킷의 프로토콜을 구분하는 과정을 수행할 필요가 없도록 각 프로토콜의 패킷을 저장하는 버퍼를 별도로 구비하도록 한다. 또, 링크 설정 및 링크로부터 수신되는 패킷 량의 감시를 통해 효율적인 자원할당이 이루어지도록 함으로써 자원의 낭비를 방지한다. 이를 위하여 본 발명은, 수신되는 패킷들의 프로토콜을 판단하여 패킷들을 각 프로토콜별로 분류하고, 그 분류 결과에 따른 패킷 정보를 생성하는 프로토콜 필드 룩업부와, 상기 프로토콜 필드 룩업부에 의해 분류된 패킷들을 각 프로토콜별로 저장하는 복수 개의 버퍼들과, 상기 프로토콜 필드 룩업부로부터 상기 패킷 정보를 수신하고, 상기 패킷 정보에 따라 상기 버퍼들로부터 수신한 패킷들을 처리하는 네트워크 프로세서와, 상기 프로토콜 필드 룩업부로부터 상기 패킷 정보를 수신하고, 상기 패킷 정보를 참조하여 각 프로토콜별 패킷 량들을 비교한 후 양이 적은 패킷을 저장할 버퍼의 크기를 감소시키고, 양이 많은 패킷을 저장할 버퍼의 크기를 증가시키는 버퍼 매니저를 포함함을 특징으로 하는 패킷 처리 장치를 제안한다.The present invention is to provide a separate buffer for storing the packet of each protocol so that the network processor does not need to perform the process of distinguishing the protocol of the received packet. In addition, efficient resource allocation is achieved through link establishment and monitoring of the amount of packets received from the link, thereby preventing waste of resources. To this end, the present invention is to determine the protocol of the received packets to classify the packets for each protocol, and to generate the packet information according to the classification result, the protocol field lookup section, and the packets classified by the protocol field lookup section A plurality of buffers stored for each protocol, a network processor that receives the packet information from the protocol field lookup unit, and processes the packets received from the buffers according to the packet information, and the packet from the protocol field lookup unit A buffer manager for receiving information, comparing packet amounts of each protocol with reference to the packet information, reducing the size of a buffer to store a small amount of packets, and increasing the size of a buffer to store a large amount of packets; We propose a packet processing apparatus characterized by the above.

또한 본 발명은, 수신되는 패킷의 프로토콜을 판단하는 제 1과정과, 상기 패킷을 그 프로토콜별로 구분하여 저장하고 프로토콜별 패킷 량을 카운트하는 제 2과정과, 상기 카운트 값을 사용하여 프로토콜별 패킷 량을 비교하는 제 3과정과, 상기 비교 결과에 따라 수신 량이 적은 프로토콜의 패킷을 저장하기 위한 버퍼의 크기를 감소시키고, 수신 량이 많은 프로토콜의 패킷을 저장하기 위한 버퍼의 크기를 증가시키는 제 4과정을 포함함을 특징으로 하는 패킷 처리 방법을 제안한다.The present invention also provides a first process of determining a protocol of a received packet, a second process of storing the packet separately for each protocol, counting the amount of packets for each protocol, and a packet amount for each protocol using the count value. Comparing a third process with a fourth process of reducing the size of a buffer for storing packets of a protocol having a low amount of reception and increasing the size of a buffer for storing packets of a protocol with a large amount of reception according to the comparison result. We propose a packet processing method characterized by including the.

한편, 상기와 같은 본 발명을 설명함에 있어서, 그 설명을 용이하게 하기 위해 IPv4 패킷과 IPv6 패킷의 두 프로토콜의 패킷이 PPP 링크를 통해 수신되는 네트 워크를 실시예로 들어 설명한다. 그러나 본 발명은 이로 인해 한정되지 않으며, 서로 다른 프로토콜의 패킷이 수신되는 모든 링크에 대하여 본 발명을 적용할 수 있다. 본 발명에 대한 구체적인 설명을 시작하기에 앞서 본 발명을 설명하기 위해 사용한 용어들에 대해 기술하도록 한다. "IPv4 패킷"은 버전 4의 아이피 패킷을 칭하는 단어이고, "IPv6 패킷"은 버전 6의 아이피 패킷을 칭하는 용어이다. 본 발명의 설명을 용이하게 하기 위해 예를 들고 있는 "PPP 링크"는 점대점(Point to Point) 링크 상으로 IP 패킷을 캡슐화해서 전송하기 위한 프로토콜이다. IPCP(Internet Protocol Control Packet)"는 IPv4 패킷을 링크 상으로 전송하기 위한 제어 패킷이다. "IPv6CP(Internet Protocol Version 6 Control Packet)"는 IPv6 패킷을 링크 상으로 전송하기 위한 제어 패킷이다.Meanwhile, in describing the present invention as described above, a network in which packets of two protocols, an IPv4 packet and an IPv6 packet, are received through a PPP link will be described as an example to facilitate the description. However, the present invention is not limited thereto, and the present invention can be applied to all links through which packets of different protocols are received. Before the detailed description of the present invention, the terms used to describe the present invention will be described. An "IPv4 packet" is a word referring to an IP packet of version 4, and an "IPv6 packet" is a term referring to an IP packet of version 6. An example "PPP link" to facilitate the description of the present invention is a protocol for encapsulating and transmitting IP packets over a point to point link. IPCP (Internet Protocol Control Packet) is a control packet for transmitting an IPv4 packet on a link. "IPv6CP (Internet Protocol Version 6 Control Packet)" is a control packet for transmitting an IPv6 packet on a link.

한편, 이상 기술한 용어들과 달리, 본 발명의 기술을 용이하게 하기 위해 "패킷 처리"와 "패킷 정보"라는 용어에 대해 다음과 같은 추가적인 의미가 부가되도록 정의하였다. "패킷 처리"는 네트워크 프로세서가 버퍼로부터 수신한 패킷에 대하여 수행하는 패킷 처리를 의미한다. 프로토콜 필드 룩업부가 패킷의 필드를 참조하여 수행하는 패킷의 판단 및 버퍼가 수행하는 패킷의 일시 저장 등도 패킷 처리 과정의 일부로 간주할 수 있으나, 이하 본 발명을 설명함에 있어서는 네트워크 프로세서의 동작만을 패킷 처리라 칭하기로 한다. "패킷 정보"는 설정된 링크가 지원하는 패킷의 프로토콜, 링크를 통해 수신되는 각 프로토콜별 패킷 량 등의 정보를 의미한다.On the other hand, unlike the terms described above, in order to facilitate the description of the present invention, the terms "packet processing" and "packet information" have been defined to add the following additional meanings. "Packet processing" means packet processing performed by a network processor on a packet received from a buffer. Determination of a packet performed by the protocol field lookup unit referring to a packet field and temporary storage of a packet performed by the buffer may also be considered as part of the packet processing process. However, in the following description of the present invention, only the operation of the network processor is referred to as packet processing. It will be called. "Packet information" means information such as the protocol of a packet supported by the established link, the packet amount of each protocol received through the link, and the like.

도 4는 본 발명에 따른 도면으로, IPv4 패킷과 IPv6 패킷을 분리하여 처리하 기 위한 패킷 처리 장치의 구성을 도시하는 도면이다.4 is a diagram of a packet processing apparatus for separating and processing an IPv4 packet and an IPv6 packet according to the present invention.

도 4에 도시된 바와 같이, 본 발명은 PPP 헤더에서 프로토콜 필드 룩업부(200), 버퍼 매니저(400), 데이터 전송에 필요한 버퍼(410)(420)로 이루어져 있다. 버퍼는 IPv4 패킷을 저장하기 위한 버퍼 1(410)과 IPv6 패킷용 버퍼 2(420)의 두 개의 버퍼가 사용된다. 버퍼 1(410)은 IPv4 패킷을 저장하기 위한 버퍼이고, 버퍼 2(420)는 IPv6 패킷을 저장하기 위한 버퍼이다. 프로토콜 필드 룩업부(300)는 프로토콜 필드(206)에 저장된 패킷 정보를 참조하여 수신되는 패킷의 프로토콜을 판단한 후, IPv4 패킷을 버퍼 1(410)에 저장하고, IPv6 패킷을 버퍼 2(420)에 저장한다. 프로토콜 필드 룩업부(300)는 수신되는 패킷들을 그 프로토콜에 따라 버퍼 1(410) 혹은 버퍼 2(420)에 저장하고 IPv4 패킷 및 IPv6 패킷 량을 카운트하여 그 카운트 값을 버퍼 매니저(400)에 전달한다. 카운트 값을 전달받은 버퍼 매니저(400)는 수신되는 패킷의 비율에 따라 버퍼 1(410) 및 버퍼 2(420)의 크기를 변경하도록 네트워크 프로세서(320)를 제어한다. 상기 카운트 값은 후술하는 도 5에 도시된 메시지의 형태로 프로토콜 필드 룩업부(300)로부터 버퍼 매니저(400) 및 네트워크 프로세서(320)에 전달된다.As shown in FIG. 4, the present invention includes a protocol field lookup unit 200, a buffer manager 400, and buffers 410 and 420 required for data transmission in a PPP header. As a buffer, two buffers are used: buffer 1 410 for storing IPv4 packets and buffer 2 420 for IPv6 packets. Buffer 1 410 is a buffer for storing IPv4 packets, and buffer 2 420 is a buffer for storing IPv6 packets. After determining the protocol of the received packet by referring to the packet information stored in the protocol field 206, the protocol field lookup unit 300 stores the IPv4 packet in the buffer 1 410 and stores the IPv6 packet in the buffer 2 420. Save it. The protocol field lookup unit 300 stores the received packets in the buffer 1 410 or the buffer 2 420 according to the protocol, counts the amount of IPv4 packets and IPv6 packets, and transfers the count values to the buffer manager 400. do. The buffer manager 400 receiving the count value controls the network processor 320 to change the sizes of the buffer 1 410 and the buffer 2 420 according to the ratio of the received packets. The count value is transferred from the protocol field lookup unit 300 to the buffer manager 400 and the network processor 320 in the form of a message shown in FIG. 5 to be described later.

프로토콜 필드 룩업부(200)는 링크 설정 시 얻은 정보로부터 링크가 IPv4만을 지원하는지, IPv4 및 IPv6를 모두 지원하는지 판단한다. 링크가 IPv4와 IPv6를 모두 지원할 시, 프로토콜 필드 룩업부(200)는 링크를 통해 수신되는 패킷이 IPv4 패킷인지 IPv6 패킷인지 판단한다. 패킷 프로토콜의 판단은 수신되는 패킷의 헤더 중 프로토콜 필드(206)에 포함된 정보를 참조함으로써 이루어진다. 프로토콜 필드 룩업부(200)는 IPv4 패킷이 수신되면 수신된 패킷을 IPv4 패킷 저장용 버퍼인 버퍼 1(410)에 송신하여 저장하도록 하고, IPv6 패킷이 수신되면 수신된 패킷을 IPv6 패킷 저장용 버퍼인 버퍼 2(420)에 송신하여 저장하도록 한다. 프로토콜 필드 룩업부(200)는 수신되는 IPv4 패킷과 IPv6 패킷을 각각 카운트하고, 이에 따른 정보를 버퍼 매니저(400)에 송신한다. 상기 프로토콜 필드 룩업부(300)가 판단하는 정보들은 하기 도 5에 도시된 메시지 형태로 버퍼 매니저(400) 및 네트워크 프로세서(320)에 전달된다.The protocol field lookup unit 200 determines whether the link supports only IPv4 or both IPv4 and IPv6 from information obtained at link establishment. When the link supports both IPv4 and IPv6, the protocol field lookup unit 200 determines whether a packet received through the link is an IPv4 packet or an IPv6 packet. The determination of the packet protocol is made by referring to the information contained in the protocol field 206 of the header of the received packet. When the IPv4 packet is received, the protocol field lookup unit 200 transmits the received packet to buffer 1 410, which is a buffer for storing IPv4 packets, and stores the received packet. Transmit and store to buffer 2 (420). The protocol field lookup unit 200 counts received IPv4 packets and IPv6 packets, respectively, and transmits corresponding information to the buffer manager 400. Information determined by the protocol field lookup unit 300 is transmitted to the buffer manager 400 and the network processor 320 in the form of a message shown in FIG. 5.

도 5는 프로토콜 필드 룩업부, 버퍼 매니저, 네트워크 프로세서간에 교환되는 정보를 정의한 메시지 형태의 일 예를 도시하는 도면이다.FIG. 5 is a diagram illustrating an example of a message form that defines information exchanged between a protocol field lookup unit, a buffer manager, and a network processor.

도 5에 도시된 바와 같이, 프로토콜 필드 룩업부(400), 버퍼 매니저(400), 네트워크 프로세서(400)간에 교환되는 메시지는 링크 정보, IPCP(Internet Protocol Control Packet 정보, IPv6CP 정보, IPv4 패킷 카운트 정보, IPv6 패킷 카운트 정보 등을 포함하도록 구성될 수 있다. 링크 정보는 설정된 링크의 데이터 링크 정보를 포함하고 있다. IPCP 정보 및 IPv6CP는 네트워크 계층의 링크 정보를 포함하고 있는데, IPCP 정보는 IPv4 패킷을 전송하기 위한 네트워크 계층 정보이고, IPv6CP는 IPv6 패킷을 전송하기 위한 네트워크 계층 정보이다. IPCP 정보와 IPv6CP정보를 이용하여 링크가 IPv4 패킷과 IPv6 패킷을 모두 지원하는지, IPv4 패킷만을 지원하는지의 정보를 얻을 수 있다. IPCP 정보 및 IPv6CP 정보는 링크 설정 시에 얻을 수 있다. IPv4 패킷 카운트 및 IPv6 패킷 카운트는 수신되는 각 패킷 량을 포함하고 있다. IPv4 패킷 카운트 및 IPv6 패킷 카운트는 본 발명에 따른 버퍼 관리를 수행하기 위해 필요하다.As shown in FIG. 5, messages exchanged between the protocol field lookup unit 400, the buffer manager 400, and the network processor 400 include link information, IPCP (Internet Protocol Control Packet information, IPv6CP information, and IPv4 packet count information). It may be configured to include IPv6 packet count information, etc. The link information includes data link information of the established link IPCP information and IPv6CP include link information of a network layer, and the IPCP information transmits an IPv4 packet. IPv6CP is network layer information for transmitting IPv6 packets, and information on whether a link supports both IPv4 and IPv6 packets or only IPv4 packets can be obtained using IPCP and IPv6CP information. IPCP information and IPv6CP information can be obtained at link establishment IPv4 packet count and IPv6 packet count for each received packet. An IPv4 packet count and an IPv6 packet count are necessary for performing buffer management according to the present invention.

버퍼 매니저(400)는 수신되는 패킷 량의 비율에 따라 네트워크 프로세서(320)가 패킷을 처리하기 위해 할당하는 자원을 변경할 수 있다. 즉, 버퍼 매니저(400)는 링크를 통해 IPv4 패킷만이 수신된다면 네트워크 프로세서(320)의 모든 자원을 IPv4 패킷 처리를 위해 할당하고, IPv6 패킷만이 수신된다면 네트워크 프로세서(320)의 모든 패킷 처리용 자원을 IPv6 패킷 처리를 위해 할당한다. IPv4 패킷과 IPv6 패킷이 모두 수신될 시에는 버퍼의 크기를 달리하는 것과 마찬가지로, 더 많이 수신되는 패킷의 처리를 위해 할당하는 프로세서의 자원을 증가시킴으로써 효율적인 패킷 처리가 이루어지도록 할 수 있다.The buffer manager 400 may change the resource allocated by the network processor 320 to process the packet according to the ratio of the received packet amount. That is, the buffer manager 400 allocates all resources of the network processor 320 for IPv4 packet processing if only IPv4 packets are received through the link, and for all packet processing of the network processor 320 if only IPv6 packets are received. Allocate resources for IPv6 packet processing. When both the IPv4 packet and the IPv6 packet are received, an efficient packet processing can be achieved by increasing the resources of the processor allocating for processing more received packets as well as changing the size of the buffer.

도 6은 본 발명에 따른 도면으로, IPv4 패킷과 IPv6 패킷을 분리하여 처리하는 과정을 도시하는 순서 흐름도이다.6 is a flowchart according to the present invention showing a process of separating and processing an IPv4 packet and an IPv6 packet.

도면들을 참조하여 본 발명의 동작을 설명하면 다음과 같다. 하기에서는 패킷을 전송하기 위한 링크로써 PPP 링크를 예로 들어 설명한다. PPP 링크를 통해서 통신하기 위해서는 먼저 데이터 링크를 시험하고 구성하기 위해서 링크 제어 프로토콜 패킷을 전송하고, 그 후 하나 또는 그 이상의 네트워크 계층 프로토콜을 구성하고 결정하기 위해서 네트워크 제어 프로토콜 패킷을 전송해야만 한다. 이 과정이 끝나면, PPP 링크 상에 어떠한 네트워크 프로토콜을 지원하는지 알 수 있다. 제 600단계에서 두 네트워크 장치들 간에 PPP 링크가 설정된다. PPP 링크 설정 과정은 도 1에 도시되어 있다. 도 1을 참조하여 PPP 링크의 설정과정을 설명한다. PPP 링크는 두 시스템 사이에서 1:1로 설정되는 링크이다. PPP 링크 설정 과정은 크게 링크 설정 과정과, 네트워크 계층 설정 과정으로 이루어질 수 있다. 네트워크 계층 설정 과정은 IPv4 패킷을 전송하기 위한 네트워크 계층 설정 과정과 IPv6 패킷 전송을 위한 네트워크 계층 설정 과정으로 구분될 수 있다.Referring to the drawings will be described the operation of the present invention. In the following description, a PPP link is used as a link for transmitting a packet. To communicate over a PPP link, one must first send a link control protocol packet to test and configure the data link, and then a network control protocol packet to configure and determine one or more network layer protocols. Once this is done, you can see what network protocols are supported on the PPP link. In step 600, a PPP link is established between two network devices. The PPP link establishment process is shown in FIG. Referring to Figure 1 will be described the process of establishing a PPP link. A PPP link is a link that is set up 1: 1 between two systems. The PPP link establishment process can be largely composed of a link establishment process and a network layer establishment process. The network layer setting process may be divided into a network layer setting process for transmitting an IPv4 packet and a network layer setting process for transmitting an IPv6 packet.

101과정 내지 111과정은 PPP 링크를 설정하고자 하는 두 시스템, 시스템 A(100-1)와 시스템 B(100-2) 사이에 데이터 링크를 설정하는 과정이다. 먼저, PPP 링크의 설정을 요구하고자 하는 시스템 B(100-2)는 설정되는 PPP 링크의 상대가 될 시스템 A(100-1)에 데이터 링크를 설정하기 위해 LCP 패킷을 송신하여 환경설정을 요청한다(101). 시스템 B(100-2)가 LCP 패킷을 송신함을 시작으로 시스템 A(100-1)와 시스템 B(100-2) 사이에는 세 번의 패킷 교환이 이루어진다. 세 번의 패킷 교환은 시스템 B(100-2)의 링크 설정을 위한 환경정보 요청과 그에 대한 시스템 A(100-1)의 응답으로 이루어지는데, 이와 같이 세 번의 패킷 교환이 이루어지는 것은 링크 설정의 정확성을 위해서이다.Steps 101 to 111 are for establishing a data link between two systems, System A 100-1 and System B 100-2, which are to establish a PPP link. First, System B (100-2) requesting the establishment of a PPP link requests an environment configuration by transmitting an LCP packet to establish a data link to System A (100-1), which is to be a partner of the established PPP link. (101). Three packet exchanges are made between System A 100-1 and System B 100-2, beginning with System B 100-2 sending LCP packets. The three packet exchanges consist of a request for environmental information for link establishment by the system B 100-2 and a response from the system A 100-1. The three packet exchanges thus determine the accuracy of link establishment. For that.

121과정 내지 151과정은 시스템 A(100-1) 및 시스템 B(100-2) 간에 네트워크 계층을 설정하는 과정인데, 특히 121과정 내지 131과정은 IPv4 패킷을 전송하기 위한 세션을 설정하는 과정이다. 링크 설정을 요청하는 시스템 B(100-2)는 시스템 A(100-1)에 IPv4 패킷용 제어 패킷인 IPCP(Internet Protocol Control Packet, IPCP)를 송신한다. 시스템 A(100-1)와 시스템 B(100-2) 간에는, 도 1에 도시된 바와 같이, 2회의 IPCP 송신과 그에 대한 응답 신호의 교환이 이루어진 후 131과정에서 IPv4 패킷을 전송하기 위한 PPP 세션이 설정된다.Processes 121 through 151 establish a network layer between system A 100-1 and system B 100-2. In particular, processes 121 through 131 establish a session for transmitting an IPv4 packet. The system B 100-2 requesting link establishment transmits an IPCP (IPCP), which is a control packet for an IPv4 packet, to the system A 100-1. As shown in FIG. 1, between the system A 100-1 and the system B 100-2, a PPP session for transmitting an IPv4 packet in step 131 after two IPCP transmissions and exchange of response signals thereto is performed. Is set.

141과정 내지 151과정은 IPv6 패킷을 전송하기 위한 세션을 설정하는 과정이 다. 링크 설정을 요청하는 시스템 B(100-2)는 시스템 A(100-1)에 IPv6 패킷용 제어 패킷인 IPv6CP(Internet Protocol Version 6 Control Packet, IPv6CP, IPv4 패킷용 제어 패킷인 IPv4와 구별하기 위해 v6를 붙인다)를 송신한다. 시스템 A(100-1)와 시스템 B(100-2) 간에는, 도 1에 도시된 바와 같이, 2회의 IPv6CP 송신과 그에 대한 응답 신호의 교환이 이루어진 후 151과정에서 IPv6 패킷을 전송하기 위한 PPP 세션이 설정된다. 이와 같이 네트워크 계층 세션이 설정되면 링크를 통해서 IP 패킷의 전송이 이루어진다.Steps 141 to 151 are for establishing a session for transmitting an IPv6 packet. System B (100-2) requesting link establishment is required to distinguish System A (100-1) from v6 to distinguish it from Internet Protocol Version 6 Control Packet (IPv6CP), which is a control packet for IPv6 packets, and IPv4, a control packet for IPv6 packets. Add). As shown in FIG. 1, between the system A 100-1 and the system B 100-2, a PPP session for transmitting an IPv6 packet in step 151 after two IPv6CP transmissions and exchange of response signals thereto is performed. Is set. As such, when the network layer session is established, IP packets are transmitted through the link.

IPv4 패킷의 전송만이 요구되는 PPP 링크를 설정하기 위해서는 121과정 내지 131과정만이 수행되고, IPv6 패킷의 전송만이 요구되는 PPP 링크를 설정하기 위해서는 141과정 내지 151 과정만이 수행되고, IPv4 패킷 및 IPv6 패킷 모두의 전송이 요구되는 PPP 링크를 설정하기 위해서는 121과정 내지 151과정이 수행된다.Only steps 121 to 131 are performed to establish a PPP link requiring only IPv4 packet transmission, and only steps 141 to 151 are performed to set a PPP link requiring only IPv6 packet transmission. Steps 121 to 151 are performed to set up a PPP link requiring transmission of both IPv6 packets.

PPP 링크가 설정되면, 제 602단계에서 버퍼 매니저(400)는 설정된 PPP 링크가 IPv6를 지원하는지, 즉, 상기 PPP 링크를 통해 IPv6 패킷의 수신이 이루어질 것인지를 판단한다. 버퍼 매니저(400)는 프로토콜 필드 룩업부(300)로부터 수신한, 도 5에 도시된 메시지의 IPCP 및 IPv6CP 정보를 참조하여 판단할 수 있다. 제 602단계에서의 판단결과에 따라 버퍼 매니저(400)는 버퍼(410)(420)와 네트워크 프로세서(320)의 자원할당을 결정한다. PPP 링크가 IPv6만을 지원할 경우, 버퍼 매니저(400)는 제 640단계에서 버퍼 1(410)과 버퍼 2(420)를 모두 IPv4 패킷을 위해 할당하고, 제 642단계에서 네트워크 프로세서(320)가 IPv6 패킷에 대한 처리를 생략하고 IPv4 패킷에 대한 처리만을 수행하도록 제어한다.If the PPP link is established, in step 602, the buffer manager 400 determines whether the configured PPP link supports IPv6, that is, whether an IPv6 packet is received through the PPP link. The buffer manager 400 may determine the IPCP and IPv6CP information of the message shown in FIG. 5 received from the protocol field lookup unit 300. According to the determination result in operation 602, the buffer manager 400 determines resource allocation of the buffers 410 and 420 and the network processor 320. If the PPP link supports only IPv6, the buffer manager 400 allocates both buffer 1 410 and buffer 2 420 for IPv4 packets in step 640, and the network processor 320 determines IPv6 packets in step 642. Omits the processing for the control and controls to perform only the processing for the IPv4 packet.

한편, PPP 링크가 IPv4와 IPv6 모두를 지원하는 경우, 버퍼 매니저(400)는 제 604단계에서 버퍼 관리를 시작한다. 버퍼 관리란 수신되는 IPv4 패킷과 IPv6 패킷의 양에 따라 각각의 패킷을 저장할 버퍼 1(410)과 버퍼 2(420)의 크기를 변화시키는 것이다. 즉, IPv4 패킷이 IPv6 패킷에 비해 많이 수신되면 IPv4 패킷을 저장하기 위한 버퍼 1(410)의 크기를 증가시키는 한편 버퍼 2(420)의 크기를 감소시킨다. 반대로, IPv6 패킷이 IPv4 패킷에 비해 많이 수신되면 IPv6 패킷을 저장하기 위한 버퍼 2(420)의 크기를 증가시키고 버퍼 1(410)의 크기를 감소시킨다. 버퍼 관리를 시작한 버퍼 매니저(400)는 그 준비단계로써 제 606단계에서 버퍼 1(410)과 버퍼 2(420)의 크기를 1:1로 설정한다. 제 608단계에서 버퍼 매니저(400)는 수신되는 패킷이 있는지 검사한다. 패킷의 수신이 종료되는 경우, 버퍼 관리는 종료된다.On the other hand, if the PPP link supports both IPv4 and IPv6, the buffer manager 400 starts buffer management in step 604. Buffer management is to change the size of buffer 1 (410) and buffer 2 (420) to store each packet according to the amount of IPv4 and IPv6 packets received. That is, if more IPv4 packets are received than IPv6 packets, the size of buffer 1 410 is increased while storing the IPv4 packet, while the size of buffer 2 420 is reduced. Conversely, if more IPv6 packets are received than IPv4 packets, the size of buffer 2 420 for storing IPv6 packets is increased and the size of buffer 1 410 is reduced. The buffer manager 400 which has started the buffer management sets the size of the buffer 1 410 and the buffer 2 420 at 1: 1 in step 606. In step 608, the buffer manager 400 checks whether there is a received packet. When the reception of the packet ends, the buffer management ends.

제 610단계에서 버퍼 매니저는 패킷 부하를 감시한다. 즉, 수신되는 IPv4 패킷과 IPv6 패킷 량을 카운트함으로써 IPv4 패킷 량과 IPv6 패킷 량의 비율을 측정한다. 제 612단계 및 제 620단계는 IPv4 패킷과 IPv6 패킷 중 어떤 패킷이 더 많이 수신되는지를 판단하는 단계이다. IPv4 패킷이 많으면 버퍼 매니저(400)는 제 614단계에서 버퍼 2(420)의 크기를 감소시키고, 버퍼 1(410)의 크기를 증가시킴으로써 IPv4 패킷을 저장하기 위한 영역을 더 많이 확보한다. 반대로, IPv6 패킷이 많으면 버퍼 매니저(400)는 제 622단계에서 버퍼 1(410)의 크기를 감소시키고, 버퍼 2(420)의 크기를 증가시킴으로써 IPv6 패킷을 저장하기 위한 영역을 더 많이 확보한다.In step 610, the buffer manager monitors a packet load. That is, the ratio of the IPv4 packet amount and the IPv6 packet amount is measured by counting the received IPv4 packet and IPv6 packet amounts. Steps 612 and 620 are steps of determining which of the IPv4 packets and the IPv6 packets is more received. If there are many IPv4 packets, the buffer manager 400 decreases the size of the buffer 2 420 and increases the size of the buffer 1 410 in step 614 to secure more areas for storing the IPv4 packets. On the contrary, if there are many IPv6 packets, the buffer manager 400 decreases the size of the buffer 1 410 and increases the size of the buffer 2 420 in step 622 to secure more area for storing the IPv6 packet.

한편, 도 6에서는 IPv4 패킷 량과 IPv6 패킷 량의 단순비교에 따라 버퍼 1(410) 및 버퍼 2(420) 크기의 변경을 결정하고 있으나, 이와 같이 설정할 시에는 본 발명에 따른 패킷 처리 장치가 패킷 량의 변화에 너무 민감하게 동작할 수도 있다. 이런 현상을 방지하기 위해 패킷 처리 장치는 임계값을 설정하여 비교의 기준 값으로 이용할 수 있다. 즉, IPv4 패킷 량과 IPv6 패킷 량의 차가 임계값으로 정해진 소정의 값을 초과하면 버퍼들(410)(420)의 크기를 변경시키는 것이다. 이 때 임계값은 패킷 처리 장치가 구비하는 버퍼들(410)(420)의 크기, 링크를 통해 수신되는 패킷 량의 변화 등 시스템의 특성에 따라 적절한 값으로 선택될 수 있다. 예를 들면, 버퍼들(410)(420)의 크기가 작거나, 링크를 통해 수신되는 패킷 량의 비율이 자주 변화하지 않는 시스템에서는 임계값을 작게 설정함으로써 시스템이 변화에 민감하게 동작하도록 할 수 있다. 반대로, 버퍼(410)(420)의 크기가 크거나, 수신되는 패킷 량의 비율이 빈번하게 변하는 시스템에서는 임계값을 크게 설정하는 것이 더 효율적일 수 있다. 상술한 바와 같이, 본 발명에서는 IPv4 패킷용의 버퍼와 IPv6 패킷용의 버퍼를 별도로 구비하고 패킷 정보에 따라 각 패킷을 위한 자원할당을 동적으로 수행함으로써 효율적인 자원할당이 이루어지도록 한다.In FIG. 6, the size of the buffer 1 410 and the buffer 2 420 is changed according to a simple comparison between the IPv4 packet amount and the IPv6 packet amount. However, in this case, the packet processing apparatus according to the present invention determines the packet size. It may be too sensitive to changes in volume. In order to prevent such a phenomenon, the packet processing apparatus may set a threshold and use it as a reference value of the comparison. That is, the size of the buffers 410 and 420 is changed when the difference between the IPv4 packet amount and the IPv6 packet amount exceeds a predetermined value set as a threshold. In this case, the threshold value may be appropriately selected according to the characteristics of the system, such as the size of the buffers 410 and 420 included in the packet processing apparatus and the amount of packets received through the link. For example, in systems where the size of buffers 410 and 420 is small or the rate of packet volume received over the link does not change often, setting the threshold to a small value can make the system sensitive to changes. have. Conversely, in systems where the size of the buffers 410 and 420 is large, or where the proportion of the amount of packets received frequently changes, it may be more efficient to set a larger threshold. As described above, in the present invention, the buffer for IPv4 packet and the buffer for IPv6 packet are separately provided, and the resource allocation for each packet is dynamically performed according to the packet information so that efficient resource allocation is achieved.

한편, 이상과 같은 본 발명은 실시예로 들어 기술하고 있는 PPP 링크가 아닌 다른 링크가 설정되어 있는 경우에도 동일하게 적용할 수 있을 것이다. 또한 본 발명은 IPv4 패킷과 IPv6 패킷이 혼재하는 네트워크만이 아니라, 서로 다른 처리를 필요로 하는, 다른 프로토콜의 패킷이 혼재하는 모든 네트워크로 그 적용범위를 확장할 수 있다. 또한, 본 발명은 두 가지 프로토콜의 패킷이 혼재하는 네트워크뿐 만 아니라, 둘 이상, 복수 프로토콜의 패킷이 혼재할 수 있는 네트워크까지 그 적용범위를 확장할 수 있다. 물론, 그 적용대상이 되는 네트워크 시스템은 본 발명의 프로토콜 필드 룩업부에 상응하는 구성 요소를 구비하고, 그 구성 요소가 수신되는 패킷의 프로토콜을 판단하고, 버퍼에 일시 저장하였다가 프로세서에 송신하여 패킷처리를 수행하도록 하는 구성을 가지는 시스템이다. 이와 같은 네트워크 시스템에서, 네트워크 상에 혼재할 수 있는 패킷의 프로토콜 수와 같은 수의 버퍼를 구비함으로써 본 발명을 적용할 수 있을 것이다. 즉, 프로토콜 필드 룩업부는 링크로부터 수신한 패킷의 프로토콜을 판단하고, 그 패킷들의 프로토콜에 따라 구분하여 버퍼들에 송신하여 저장하도록 한다. 수신되는 각 패킷 량에 따라 버퍼들의 크기를 변경시키는 구성 및 동작은 본 발명과 같다. 이와 같이, 네트워크 상에 존재 가능한 패킷의 프로토콜이 하나씩 증가할 때마다 그 프로토콜의 패킷을 구분하여 저장하기 위한 버퍼 수를 증가시킴으로써 본 발명의 적용이 가능하게 된다.On the other hand, the present invention as described above may be equally applicable to a case where a link other than the PPP link described as an embodiment is set. In addition, the present invention can be extended not only to a network in which IPv4 packets and IPv6 packets are mixed, but also to all networks in which packets of different protocols are mixed, which require different processing. In addition, the present invention can be extended not only to a network in which two protocol packets are mixed, but also to a network in which two or more packets of a plurality of protocols can be mixed. Of course, the applicable network system includes a component corresponding to the protocol field lookup section of the present invention, and determines the protocol of the packet in which the component is received, temporarily stores it in a buffer, and then transmits the packet to the processor. It is a system having a configuration to perform processing. In such a network system, the present invention can be applied by having a buffer equal to the number of protocols of packets that can be mixed on the network. That is, the protocol field lookup unit determines the protocol of the packet received from the link, and transmits the packet to the buffers according to the protocol of the packets. Configuration and operation of changing the size of the buffer in accordance with the amount of each packet received is the same as the present invention. In this way, the application of the present invention is possible by increasing the number of buffers for classifying and storing the packets of the protocol whenever the protocol of the packets that can exist on the network increases one by one.

본 발명과 같이 프로토콜 별로 패킷을 구분해서 버퍼링 함으로써 네트워크 프로세서에서 프로토콜에 따른 패킷별로 독립적인 처리가 가능하게 하고, 지원하지 않는 네트워크 프로토콜에 관련된 처리과정을 생략할 수 있게 한다. 지원하지 않는 프로토콜을 위한 자원을 할당할 필요가 없어 자원낭비를 방지할 수 있다. 버퍼 매니저를 통해서 각 네트워크 프로토콜별로 할당하는 버퍼 크기를 동적으로 조정할 수 있게 함으로써 수신되는 패킷 량, 수신되는 패킷 량의 변화 등에 따른 효율적인 통신이 가능해진다. 본 발명을 통해 둘 이상, 서로 다른 복수 프로토콜의 패킷이 혼재할 수 있는 네트워크 상에서 효율적인 패킷 처리 및 자원할당이 가능해진다.By separating and buffering packets for each protocol as in the present invention, the network processor enables independent processing for each packet according to the protocol, and omits processing for network protocols that are not supported. This eliminates the need for allocating resources for unsupported protocols. The buffer manager dynamically adjusts the buffer size allocated to each network protocol through the buffer manager, thereby enabling efficient communication according to the amount of packets received and the amount of packets received. The present invention enables efficient packet processing and resource allocation on a network where two or more packets of different protocols can coexist.

Claims (16)

수신되는 패킷들의 프로토콜을 판단하여 패킷들을 각 프로토콜별로 분류하고, 그 분류 결과에 따른 패킷 정보를 생성하는 프로토콜 필드 룩업부와,A protocol field lookup unit for classifying packets of received packets by classifying the received protocols and generating packet information according to the classification result; 상기 프로토콜 필드 룩업부에 의해 분류된 패킷들을 각 프로토콜별로 저장하는 복수 개의 버퍼들과,A plurality of buffers for storing the packets classified by the protocol field lookup unit for each protocol; 상기 버퍼들로부터 수신한 패킷들을 처리하는 네트워크 프로세서와,A network processor for processing packets received from the buffers; 상기 프로토콜 필드 룩업부로부터 상기 패킷 정보를 수신하고, 상기 패킷 정보를 참조하여 각 프로토콜별 패킷 량들을 비교한 후 양이 적은 패킷을 저장할 버퍼의 크기를 감소시키고, 양이 많은 패킷을 저장할 버퍼의 크기를 증가시키는 버퍼 매니저를 포함하는 패킷 처리 장치.Receive the packet information from the protocol field lookup unit, compare the packet amounts of each protocol with reference to the packet information, reduce the size of the buffer to store the small packet, and the size of the buffer to store the large packet. Packet processing apparatus comprising a buffer manager for increasing the. 제 1항에 있어서, 상기 패킷 정보는 데이터 링크 계층의 링크 정보, 네트워크 계층의 링크 정보, 상기 수신되는 각 프로토콜별 패킷 량을 포함함을 특징으로 하는 패킷 처리 장치.The packet processing apparatus of claim 1, wherein the packet information includes link information of a data link layer, link information of a network layer, and a packet amount of each received protocol. 제 1항에 있어서, 상기 네트워크 프로세서는 상기 프로토콜 필드 룩업부로부터 상기 패킷 정보를 수신하고, 상기 패킷 정보에 따라 패킷 처리를 위한 자원을 할당함을 특징으로 하는 패킷 처리 장치.The apparatus of claim 1, wherein the network processor receives the packet information from the protocol field lookup unit and allocates a resource for packet processing according to the packet information. 삭제delete 삭제delete 삭제delete 제 1항에 있어서, 상기 버퍼 매니저는 각 프로토콜별 패킷 량을 비교함에 있어서 소정의 임계값을 비교의 기준 값으로 사용함을 특징으로 하는 패킷 처리 장치.The packet processing apparatus of claim 1, wherein the buffer manager uses a predetermined threshold as a reference value for comparing packet amounts of protocols. 제 7항에 있어서, 상기 임계값은 상기 버퍼들의 크기 및 상기 수신되는 각 패킷 량의 변화에 따라 결정됨을 특징으로 하는 패킷 처리 장치.8. The packet processing apparatus of claim 7, wherein the threshold is determined by a change in the size of the buffers and the amount of each received packet. 제 2항에 있어서, 상기 패킷 정보에 의해 상기 수신되는 패킷의 프로토콜이 하나뿐인 것으로 판단될 경우, 상기 버퍼 매니저는 상기 버퍼들 중 상기 프로토콜의 패킷을 저장하기 위한 버퍼에만 자원을 할당하도록 하는 제어신호를 출력함을 특징으로 하는 패킷 처리 장치.The control signal of claim 2, wherein when it is determined by the packet information that there is only one protocol of the received packet, the buffer manager allocates a resource only to a buffer for storing a packet of the protocol among the buffers. Packet processing apparatus, characterized in that for outputting. 제 9항에 있어서, 상기 프로세서는 상기 프로토콜의 패킷을 처리하기 위해서 모든 패킷 처리 자원을 할당함을 특징으로 하는 패킷 처리 장치.10. The apparatus of claim 9, wherein the processor allocates all packet processing resources to process packets of the protocol. 점대점(Point to Point Protocol, PPP) 링크를 통해 수신되는 패킷의 프로토콜을 판단하여 수신되는 패킷들을 각 프로토콜별로 분류하고, 그 분류 결과에 따른 패킷 정보를 생성하는 프로토콜 필드 룩업부와,A protocol field lookup unit which determines a protocol of a packet received through a point-to-point protocol (PPP) link, classifies the received packets by each protocol, and generates packet information according to the classification result; 상기 프로토콜 필드 룩업부에 의해 분류된 패킷들을 각 프로토콜별로 저장하는 복수 개의 버퍼들과,A plurality of buffers for storing the packets classified by the protocol field lookup unit for each protocol; 상기 프로토콜 필드 룩업부로부터 상기 패킷 정보를 수신하고, 상기 패킷 정보에 따라 패킷 처리를 위한 자원을 할당하고, 상기 버퍼들로부터 수신한 패킷들을 처리하는 네트워크 프로세서와,A network processor for receiving the packet information from the protocol field lookup unit, allocating a resource for packet processing according to the packet information, and processing the packets received from the buffers; 상기 프로토콜 필드 룩업부로부터 상기 패킷 정보를 수신하고, 상기 패킷 정보를 참조하여 각 프로토콜별 패킷 량들을 비교한 후 양이 적은 패킷을 저장할 버퍼의 크기를 감소시키고, 양이 많은 패킷을 저장할 버퍼의 크기를 증가시키는 버퍼 매니저를 포함함을 특징으로 하는 패킷 처리 장치.Receive the packet information from the protocol field lookup unit, compare the packet amounts of each protocol with reference to the packet information, reduce the size of the buffer to store the small packet, and the size of the buffer to store the large packet. Packet processing apparatus comprising a buffer manager for increasing the. 제 11항에 있어서, 상기 패킷 정보는 데이터 링크 계층의 링크 정보, 네트워크 계층의 링크 정보, 상기 점대점 링크를 통해 수신되는 각 프로토콜별 패킷 량을 포함함을 특징으로 하는 패킷 처리 장치.12. The apparatus of claim 11, wherein the packet information includes link information of a data link layer, link information of a network layer, and a packet amount for each protocol received through the point-to-point link. 수신되는 패킷의 프로토콜을 판단하는 제 1과정과,A first step of determining a protocol of a received packet; 상기 패킷을 그 프로토콜별로 구분하여 저장하고 수신되는 프로토콜별 패킷 량을 카운트하는 제 2과정과,A second step of dividing and storing the packet for each protocol and counting the amount of packets for each protocol received; 상기 카운트 값을 사용하여 프로토콜별 패킷 량을 비교하는 제 3과정과,A third step of comparing the packet amount for each protocol by using the count value; 상기 비교 결과에 따라 수신 량이 적은 프로토콜의 패킷을 저장하기 위한 버퍼의 크기를 감소시키고, 수신 량이 많은 프로토콜의 패킷을 저장하기 위한 버퍼의 크기를 증가시키는 제 4과정을 포함함을 특징으로 하는 패킷 처리 방법.And a fourth process of reducing the size of the buffer for storing the packets of the protocol having a small amount of reception and increasing the size of the buffer for storing the packets of the protocol with a large amount of reception according to the comparison result. Way. 삭제delete 제 13항에 있어서, 상기 제 3과정의 비교는 소정의 임계값을 비교의 기준 값으로 하여 이루어짐을 특징으로 하는 패킷 처리 방법.The packet processing method according to claim 13, wherein the comparison of the third process is performed using a predetermined threshold as a reference value of the comparison. 제 15항에 있어서, 상기 임계값은 상기 버퍼들의 크기 및 수신되는 각 프로토콜 별 패킷 량의 변화에 따라 결정됨을 특징으로 하는 패킷 처리 방법.The packet processing method of claim 15, wherein the threshold is determined by a change in the size of the buffers and the amount of packets for each protocol received.
KR1020040001009A 2004-01-07 2004-01-07 Apparatus and method for packet processing KR100552515B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040001009A KR100552515B1 (en) 2004-01-07 2004-01-07 Apparatus and method for packet processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040001009A KR100552515B1 (en) 2004-01-07 2004-01-07 Apparatus and method for packet processing

Publications (2)

Publication Number Publication Date
KR20050072642A KR20050072642A (en) 2005-07-12
KR100552515B1 true KR100552515B1 (en) 2006-02-14

Family

ID=37261994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040001009A KR100552515B1 (en) 2004-01-07 2004-01-07 Apparatus and method for packet processing

Country Status (1)

Country Link
KR (1) KR100552515B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100761935B1 (en) * 2006-11-10 2007-09-28 (재)대구경북과학기술연구원 Apparatus and method for congestion control using dynamic packet bursting in mobile ad hoc networks
KR100798926B1 (en) 2006-12-04 2008-01-29 한국전자통신연구원 Apparatus and method for forwarding packet in packet switch system
KR100826911B1 (en) 2006-12-08 2008-05-06 한국전자통신연구원 Method and apparatus of processing downstream packets for cable modem in hybrid fiber coaxial networks
KR100912545B1 (en) 2007-09-21 2009-08-18 한국전자통신연구원 Apparatus and method of packet processing

Also Published As

Publication number Publication date
KR20050072642A (en) 2005-07-12

Similar Documents

Publication Publication Date Title
FI110987B (en) Method of connecting data transfer streams
KR100886551B1 (en) Apparatus for traffic flow template packet filtering according to internet protocol version in mobile communication system and method thereof
FI107674B (en) Procedure for optimizing data transmission in a packet switched wireless communication system
FI107770B (en) Managing PDP Contexts in a Mobile Station
US8036108B2 (en) Method and apparatus for providing gateway to transmit IPv6 packet in a wireless local area network system
US6643292B2 (en) Efficient packet data transport mechanism and an interface therefor
US7742412B1 (en) Method and apparatus for preventing head of line blocking in an ethernet system
US20070058669A1 (en) Distributed quality-of-service management system
GB2341059A (en) Internet protocol flow detection
US11582143B2 (en) Techniques for policy management of multi-connectivity network protocols
JP5018457B2 (en) Data transmission / reception device, maintenance management data insertion extraction device, maintenance management data insertion extraction program, and maintenance management data insertion extraction method
GB2391765A (en) Physically separate user and control plane processing devices for use in congestion control in a w-cdma system
EP0685951A2 (en) Line interface devices for fast-packet networks
GB2386282A (en) Allocating shared resources in a packet data communications network
KR100552515B1 (en) Apparatus and method for packet processing
CN113543234A (en) Port resource reservation method, electronic device and storage medium
US20010052025A1 (en) Router setting method and router setting apparatus
US20060088059A1 (en) Apparatus and method for processing data in a communication system
KR100341880B1 (en) Apparatus for being shared ip address by port number
US20040090946A1 (en) System and method for multi-accessing radio communication data call
JP2000244524A (en) Network system, signal transmission and reception equipment and network resource reserving method
EP3534586B1 (en) Techniques for interaction between network protocols
US7957420B2 (en) Packet transfer method and packet transfer node
JP4082112B2 (en) Semiconductor circuit device and packet processing method
WO1999023794A1 (en) Method and apparatus for end-system bandwidth notification

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130130

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140128

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee