KR100475436B1 - distributed router and ARP packet processing method thereof - Google Patents

distributed router and ARP packet processing method thereof Download PDF

Info

Publication number
KR100475436B1
KR100475436B1 KR10-2003-0000152A KR20030000152A KR100475436B1 KR 100475436 B1 KR100475436 B1 KR 100475436B1 KR 20030000152 A KR20030000152 A KR 20030000152A KR 100475436 B1 KR100475436 B1 KR 100475436B1
Authority
KR
South Korea
Prior art keywords
arp
packet
forwarding
forwarding table
processor
Prior art date
Application number
KR10-2003-0000152A
Other languages
Korean (ko)
Other versions
KR20040062343A (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 KR10-2003-0000152A priority Critical patent/KR100475436B1/en
Publication of KR20040062343A publication Critical patent/KR20040062343A/en
Application granted granted Critical
Publication of KR100475436B1 publication Critical patent/KR100475436B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses

Abstract

본 발명에 따른 ARP 패킷 처리 분산형 라우터는, 포워딩 테이블 및 ARP 테이블을 구비하고, 임의의 이더넷 인터페이스에 연결되어, 임의의 ARP 패킷이 수신되는 경우, 포워딩 테이블 및 ARP 테이블을 참조하여 해당 목적지 주소로 해당 패킷을 포워딩하는 네트워크 프로세서와, 네트워크 프로세서와 통신을 수행하여 라우팅 기능을 수행하는 호스트 프로세서를 포함하여 구성하되, 네트워크 프로세서는, 임의의 ARP 패킷이 수신되면, 포워딩 테이블 및 ARP 테이블을 검색하여 해당 ARP 패킷에 대한 정보가 존재하지 않는 경우, 해당 ARP 패킷에 포함된 정보로 포워팅 테이블 및 ARP 테이블을 업데이트시키고, 해당 ARP 패킷이 ARP 응답 패킷인 경우에만, 해당 ARP 패킷을 호스트 프로세서로 전송하여 호스트 프로세서의 라우팅 정보를 업데이트시킴으로써, 종래의 라우터 구조에서 ARP 패킷들과 룩업 페일드 패킷들이 호스트 프로세서에게 전달됨으로 인해 네크워크 프로세서와 호스트 프로세서 사이의 인터페이스에서 발생되는 오버헤드를 최소화시킬 수 있는 장점이 있다.The ARP packet processing distributed router according to the present invention includes a forwarding table and an ARP table, and is connected to an arbitrary Ethernet interface and, when an arbitrary ARP packet is received, refers to the forwarding table and the ARP table to a corresponding destination address. And a network processor for forwarding the packet and a host processor for communicating with the network processor to perform a routing function. When the network processor receives any ARP packet, the network processor searches for a forwarding table and an ARP table. If the information about the ARP packet does not exist, the forwarding table and the ARP table are updated with the information contained in the ARP packet, and only if the ARP packet is an ARP response packet, the corresponding ARP packet is transmitted to the host processor to host By updating the routing information of the processor, the conventional route Because of the structure in the ARP packet it is passed to the look-up and fail to de-packet the host processor has the advantage to minimize the overhead generated at the interface between the network processor and the host processor.

Description

분산형 라우터 및 그 분산형 라우터의 에이알피 패킷 처리 방법{distributed router and ARP packet processing method thereof} Distributed router and ARP packet processing method

본 발명은 분산형 라우터 및 그 분산형 라우터의 주소 결정 프로토콜 패킷 처리 방법에 관한 것이다.The present invention relates to a distributed router and a method for processing an address resolution protocol packet of the distributed router.

일반적으로, 인터넷을 이용하여 임의의 데이터 패킷을 목적지 망까지 전달하는 인터넷 서비스를 제공하기 위해서는 망의 토폴로지와 망 상황에 대한 정보 즉, 라우팅 정보가 필요한데, 이러한 라우팅 정보는 라우팅 프로토콜에 의해 제공된다.In general, in order to provide an Internet service that delivers arbitrary data packets to a destination network using the Internet, information about network topology and network conditions, that is, routing information, is needed. Such routing information is provided by a routing protocol.

라우팅 프로토콜의 종류를 살펴보면, IP 네트웍 상에서 IP 주소를 물리적 네트웍 주소로 대응시키기 위해 사용되는 주소 결정 프로토콜(Address Resolution Protocol: 이하, ARP라 함)과, 인접하고 있는 라우터와 라우팅 정보를 주기적으로 교환하여 라우팅하며, 거리값 테이블(Distance vector table)을 이용해 최적의 경로를 결정하고 매 30초마다 라우팅 정보를 갱신하는 RIP(Routing Information Protocol) 프로토콜과, 실제 라우팅 정보의 변경이 있을 때에만 해당되는 라우팅 정보를 갱신하는 OSPF(Open Shortest Path First) 프로토콜 등이 있다.Looking at the types of routing protocols, the Address Resolution Protocol (hereinafter referred to as ARP), which is used to map IP addresses to physical network addresses on an IP network, and periodically exchanges routing information with neighboring routers. Routing Information Protocol (RIP) protocol that uses routing vector tables to determine the best route and updates routing information every 30 seconds, and routing information only when there is a change in the actual routing information. OSPF (Open Shortest Path First) protocol for updating.

한편, 분산 라우터 구조는 기능적으로 독립된 복수개의 라우터들이 하나의 통합된 IP 라우터 시스템을 형성하는 구조로서, 중앙 집중형 라우터 구조에 비하여 확장성이 뛰어난 구조이다.On the other hand, the distributed router structure is a structure in which a plurality of functionally independent routers form an integrated IP router system, which is more scalable than a centralized router structure.

이와 같은 구조의 시스템에서는 각 내부 라우터(internal router)들 내에 네트워크 프로세서(network processor)와 호스트 프로세서(host processor)를 함께 구현함으로써 라우팅 프로토콜 기능과 IP 포워딩(forwarding) 기능을 분리시키고 있다.In such a system, a network processor and a host processor are implemented in each internal router to separate routing protocol functions and IP forwarding functions.

이러한 구조의 시스템이 이더넷(ethernet interface)에 연결되어 있는 경우, 네트워크 프로세서가 패킷 포워딩을 위해 목적지 맥 어드레스(destination MAC address)를 알아야 하며, 이러한 용도로 MAC 어드레스들을 관리하기 위하여 ARP가 사용된다.If a system of this structure is connected to an Ethernet interface, the network processor must know the destination MAC address for packet forwarding, and ARP is used to manage the MAC addresses for this purpose.

ARP는 IP 네트웍 상에서 IP 주소를 물리적 네트웍 주소로 대응시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트웍 주소라 함은 이더넷 또는 토큰링의 48 bits 네트웍 카드 주소를 의미한다.ARP is a protocol used to map IP addresses to physical network addresses on an IP network. In this case, the physical network address means a 48-bit network card address of Ethernet or Token Ring.

예를 들어, IP 호스트 A가 IP 호스트 B에게 IP 패킷을 전송고자 할 때 IP 호스트 B의 물리적 네트웍 주소를 모르는 경우, ARP 프로토콜을 사용하여 목적지 IP 주소 B와 브로드 캐스팅 물리적 네트웍 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트웍 상에 전송한다. IP호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신하면 자신의 물리적 네트웍 주소를 A에게 응답한다.For example, if IP host A does not know the physical network address of IP host B when it wants to send an IP packet to IP host B, an ARP packet with the destination IP address B and the broadcasting physical network address FFFFFFFFFFFF using the ARP protocol. Send it over the network. IP host B responds to A with its physical network address when it receives an ARP packet whose IP address is at its destination.

이와 같은 방식으로 수집된 IP 주소와 이에 해당하는 물리적 네트웍 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 후 다음 패킷 전송시에 다시 사용된다. ARP와는 역으로, IP 호스트가 자신의 물리 네트웍 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해서는 RARP(ReverseARP)를 사용한다.The IP address and the corresponding physical network address information collected in this way are stored in a table in memory called ARP cache of each IP host and used again in the next packet transmission. Contrary to ARP, if an IP host knows its physical network address but does not know its IP address, it uses RARP (ReverseARP) to request an IP address from a server.

도 1은 종래의 분산 라우터 구조 시스템에서 내부 라우터의 구성 블록도이다. 도 1을 참조하면, 종래의 라우터(10)에서는 마이크로 엔진(12b)으로 들어온 모든 ARP 패킷들이 호스트 프로세서(11)내의 ARP 운용 모듈(operating module)(11b)에 전달되어, 그 내부의 ARP 스택에 의해 처리가 된다. 이때, 포워딩 테이블(12c)에 MAC 어드레스들을 적절하게 업데이트하기 위해서 네트워크 프로세서(12)내의 네트워크 프로세서 어플리케이션 모듈(12a)에서 통과하는 ARP 패킷들의 정보를 참조해서 적절하게 포워딩 테이블(12c)을 업데이트한다.1 is a block diagram illustrating an internal router in a conventional distributed router architecture system. Referring to FIG. 1, in the conventional router 10, all ARP packets entering the micro-engine 12b are delivered to an ARP operating module 11b in the host processor 11 and transferred to an ARP stack therein. Is processed. At this time, in order to properly update the MAC addresses in the forwarding table 12c, the forwarding table 12c is appropriately updated by referring to the information of the ARP packets passing through the network processor application module 12a in the network processor 12.

ARP 패킷들이 호스트 프로세서(11)에 전달되어야 하는 이유는 호스트 프로세서(11)내에서 동작하고 있는 라우팅 프로토콜 데몬 모듈(Routing protocol daemon module)(11a)들이 이더넷으로 연결되어 있는 다른 라우터내의 라우팅 프로토콜 데몬들과 라우팅 정보를 주고 받아야 할 경우에 사용이 되기 때문이다.The reason why ARP packets should be delivered to the host processor 11 is that the routing protocol daemons in other routers to which routing protocol daemon modules 11a operating in the host processor 11 are connected via Ethernet are connected. This is because it is used when you need to send and receive routing information.

한편, 이러한 종래의 분산 라우터 시스템에서는 룩업 페일드 패킷(lookup failed packet)의 처리를 호스트 프로세서(11)의 ARP 운용 모듈(11b)에서 담당한다.On the other hand, in the conventional distributed router system, the ARP operation module 11b of the host processor 11 is responsible for processing a lookup failed packet.

룩업 페일드 패킷은 마이크로 엔진(12b)이 입력된 IP 패킷을 포워딩하기 위해서 포워딩 테이블(12c)을 검색한 결과, 출력 포트를 찾는데 실패하였거나, 해당 목적지(destination)의 MAC 어드레스를 찾는데 실패한 패킷을 말한다.The lookup failed packet refers to a packet that has failed to find an output port or find a destination MAC address as a result of the micro engine 12b searching the forwarding table 12c to forward the input IP packet. .

즉, 룩업 페일드 패킷을 호스트 프로세서(11)에 전달하게 되면 호스트 프로세서(11)내의 IP 스택에서 이 패킷을 포워딩하기 위해서 다시 라우팅 테이블을 검색하게 된다.That is, when the lookup failed packet is delivered to the host processor 11, the IP stack in the host processor 11 searches the routing table again to forward the packet.

그러나, 호스트 프로세서(11)내의 라우팅 테이블과 네트워크 프로세서(12)내의 포워딩 테이블(12c)은 항상 동일한 정보를 유지하고 있음에 따라, 이때도 룩업에 실패하게 됨으로 적절한 ICMP(Internet Control Message Protocol) 에러 패킷을 생성하여 이 패킷을 보낸 호스트나 라우터에게 전달하게 된다.However, since the routing table in the host processor 11 and the forwarding table 12c in the network processor 12 always maintain the same information, the lookup fails even at this time, so that an appropriate Internet Control Message Protocol (ICMP) error packet is generated. It generates a packet and forwards it to the host or router that sent it.

상술한 바와 같은 종래의 분산 라우터 구조의 시스템에서는 입력되는 모든 ARP 패킷들과 룩업 페일드 패킷들이 호스트 프로세서(11)에게 전달이 되므로 네트워크 프로세서(12)와 호스트 프로세서(11)사이의 인터페이스의 성능이 떨어지게 된다. In the system of the conventional distributed router structure as described above, all incoming ARP packets and lookup failed packets are delivered to the host processor 11, so that the performance of the interface between the network processor 12 and the host processor 11 is improved. Will fall.

따라서 호스트 프로세서(11)가 네트워크 프로세서(12)의 포워딩 테이블(12c)을 업데이트하는 효율이 나빠지게 됨으로, 이러한 경우, 마이크로 엔진(12b)이 IP 패킷들을 정상적으로 포워딩하지 못하게 되는 문제점이 있다.Therefore, the efficiency of updating the forwarding table 12c of the network processor 12 by the host processor 11 becomes poor. In this case, there is a problem that the micro engine 12b does not normally forward IP packets.

본 발명은 이러한 종래의 문제점을 해결하기 위하여 안출된 것으로, 분산 라우터 구조 시스템에서 효율적으로 ARP 패킷들을 처리하고, IP 포워딩에 실패한 패킷들에 대하여 정상적으로 IP 패킷 포워딩을 할 수 있도록 하는 분산형 라우터 및 그 분산형 라우터의 ARP 패킷 처리 방법을 제공하는데 그 목적이 있다. SUMMARY OF THE INVENTION The present invention has been made to solve such a conventional problem, and it is a distributed router that can efficiently process ARP packets in a distributed router architecture system and normally perform IP packet forwarding for packets that fail IP forwarding, and a distributed router. Its purpose is to provide a method for processing ARP packets in a distributed router.

이러한 목적을 달성하기 위한 본 발명의 일측면에 따르면, 포워딩 테이블 및 ARP 테이블을 구비하고, 임의의 이더넷 인터페이스에 연결되어, 임의의 ARP 패킷이 수신되는 경우, 포워딩 테이블 및 ARP 테이블을 참조하여 해당 목적지 주소로 해당 패킷을 포워딩하는 네트워크 프로세서와, 네트워크 프로세서와 통신을 수행하여 라우팅 기능을 수행하는 호스트 프로세서를 포함하여 구성하되, 네트워크 프로세서는, 임의의 ARP 패킷이 수신되면, 포워딩 테이블 및 ARP 테이블을 검색하여 해당 ARP 패킷에 대한 정보가 존재하지 않는 경우, 해당 ARP 패킷에 포함된 정보로 포워팅 테이블 및 ARP 테이블을 업데이트시키고, 해당 ARP 패킷이 ARP 응답 패킷인 경우에만, 해당 ARP 패킷을 호스트 프로세서로 전송하여 호스트 프로세서의 라우팅 정보를 업데이트시키는 ARP 패킷 처리 분산형 라우터를 제공한다.According to an aspect of the present invention for achieving this object, provided with a forwarding table and an ARP table, connected to any Ethernet interface, if any ARP packet is received, the destination by referring to the forwarding table and the ARP table And a network processor for forwarding a corresponding packet to an address, and a host processor for performing a routing function by communicating with the network processor, wherein the network processor searches for a forwarding table and an ARP table when an arbitrary ARP packet is received. If the information about the ARP packet does not exist, the forwarding table and the ARP table are updated with the information included in the ARP packet, and the corresponding ARP packet is transmitted to the host processor only if the ARP packet is an ARP response packet. Packet to update the routing information of the host processor Provides a distributed router for processing.

또한, 본 발명의 다른 측면에 따르면, 포워딩 테이블 및 ARP 테이블을 구비하고, 임의의 이더넷 인터페이스에 연결되어, 임의의 ARP 패킷이 수신되는 경우, 포워딩 테이블 및 ARP 테이블을 참조하여 해당 목적지 주소로 해당 패킷을 포워딩하는 네트워크 프로세서와, 네트워크 프로세서와 통신을 수행하여 라우팅 기능을 수행하는 호스트 프로세서를 포함하여 구성되는 분산형 라우터에서 임의의 ARP 패킷을 처리하는 방법에 있어서, 네트워크 프로세서에 임의의 ARP 패킷이 수신되면, 포워딩 테이블 및 ARP 테이블을 검색하는 단계와, 검색결과, 포워딩 테이블 및 ARP 테이블에 해당 ARP 패킷에 대한 정보가 존재하지 않는 경우, 해당 ARP 패킷에 포함된 정보로 포워팅 테이블 및 ARP 테이블을 업데이트시키는 단계와, 해당 ARP 패킷이 ARP 응답 패킷인지 여부를 판단하여, ARP 응답 패킷인 경우, 해당 ARP 패킷을 호스트 프로세서로 전송하여 호스트 프로세서의 라우팅 정보를 업데이트시키는 단계를 수행하는 분산형 라우터의 ARP 패킷 처리 방법을 제공한다.In addition, according to another aspect of the present invention, provided with a forwarding table and an ARP table, connected to any Ethernet interface, if any ARP packet is received, the packet to the corresponding destination address with reference to the forwarding table and the ARP table A method for processing arbitrary ARP packets in a distributed router comprising a network processor forwarding a network processor and a host processor communicating with the network processor to perform a routing function, the network processor receiving any ARP packets Searching the forwarding table and the ARP table, and updating the forwarding table and the ARP table with the information included in the ARP packet when the information about the corresponding ARP packet does not exist in the search result, the forwarding table, and the ARP table. And determining whether the corresponding ARP packet is an ARP response packet. For example, in the case of an ARP response packet, a method for processing an ARP packet of a distributed router that transmits the corresponding ARP packet to a host processor and updates routing information of the host processor is provided.

이하, 첨부된 도면을 참조하여 본 발명의 일실시예를 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention;

도 2는 본 발명의 일실시예에 따른 분산형 라우터의 구성블록도이다.2 is a block diagram illustrating a distributed router according to an embodiment of the present invention.

도 2를 참조하면, 본 발명에 따른 분산형 라우터는 크게 포워딩 테이블(125) 및 ARP 테이블(126)을 구비하고, 임의의 이더넷 인터페이스에 연결되어, 임의의 ARP 패킷이 수신되는 경우, 포워딩 테이블(125) 및 ARP 테이블(126)을 참조하여 해당 목적지 주소로 해당 패킷을 포워딩하는 네트워크 프로세서(120)와, 네트워크 프로세서(120)와 통신을 수행하여 라우팅 기능을 수행하는 호스트 프로세서(110)를 포함하여 이루어진다.Referring to FIG. 2, the distributed router according to the present invention includes a forwarding table 125 and an ARP table 126 and is connected to an arbitrary Ethernet interface, and when an arbitrary ARP packet is received, the forwarding table ( 125) and a network processor 120 for forwarding the packet to the corresponding destination address with reference to the ARP table 126, and a host processor 110 communicating with the network processor 120 to perform a routing function. Is done.

네트워크 프로세서(120)는, 임의의 ARP 패킷이 수신되면, 포워딩 테이블(125) 및 ARP 테이블(126)을 검색하여 해당 ARP 패킷에 대한 정보가 존재하지 않는 경우, 해당 ARP 패킷에 포함된 정보로 포워팅 테이블(125) 및 ARP 테이블(126)을 업데이트시키고, 해당 ARP 패킷이 ARP 응답 패킷인 경우에만, 해당 ARP 패킷을 호스트 프로세서(110)로 전송하여 호스트 프로세서(110)의 라우팅 정보를 업데이트시킨다.When any ARP packet is received, the network processor 120 searches the forwarding table 125 and the ARP table 126 and, if information about the ARP packet does not exist, includes the information included in the ARP packet. The monitoring table 125 and the ARP table 126 are updated, and only when the corresponding ARP packet is an ARP response packet, the corresponding ARP packet is transmitted to the host processor 110 to update the routing information of the host processor 110.

본 발명에 의한 네트워크 프로세서(120)는 마이크로 엔진(121)과, 룩업 페일드 패킷 관리자(122)와, ARP 테이블 관리자(123)와, 포워딩 테이블 관리자(124)를 포함하여 구성되며, 포워딩 테이블(125)과 ARP 테이블(126)을 구비한다.The network processor 120 according to the present invention includes a micro engine 121, a lookup failed packet manager 122, an ARP table manager 123, and a forwarding table manager 124. 125 and an ARP table 126.

마이크로 엔진(121)은, 임의의 ARP 패킷이 수신되는 경우, 포워딩 테이블(125) 및 ARP 테이블(126)을 참조하여 포워딩을 수행하고, 룩업 페일 패킷이 발생하는 경우, 해당 패킷에 룩업 페일이 발생한 이유를 표시하여 룩업 페일드 패킷 관리자(122)에 전송한다.When any ARP packet is received, the micro engine 121 performs forwarding with reference to the forwarding table 125 and the ARP table 126, and when a lookup fail packet occurs, a lookup fail occurs in the packet. The reason is indicated and sent to the lookup failed packet manager 122.

룩업 페일드 패킷 관리자(122)는 마이크로 엔진(121)에 의해 표시된 룩업 페일이 발생된 이유에 상응한 ICMP 에러 메시지를 생성하여 마이크로 엔진(121)에 전송한다.The lookup failed packet manager 122 generates and transmits an ICMP error message corresponding to the reason why the lookup fail indicated by the micro engine 121 occurs.

즉, 마이크로 엔진(121)로부터 전달되는 룩업 페일드 패킷정보에는 이 패킷이 룩업에 실패한 이유가 표시되어 전달된다. 이에 따라 룩업 페일드 패킷 관리자(122)는 마이크로 엔진(121)이 표시한 내용에 따라 적절한 ICMP 에러 패킷들을 생성하여 마이크로 엔진(121)에 전달한다. 아울러, 룩업 페일드 패킷의 경우, 호스트 프로세서(110)에 전달하지 않는다. 이에 따라, 종래의 경우, 룩업 페일드 패킷을 호스트 프로세서에 전송함으로 인해 발생되던 프로세싱의 효율이 떨어지는 것을 해결할 수 있게 된다.That is, the lookup failed packet information transmitted from the micro engine 121 indicates the reason why the packet fails to lookup and is transmitted. Accordingly, the lookup failed packet manager 122 generates appropriate ICMP error packets according to the contents displayed by the micro engine 121 and transmits them to the micro engine 121. In addition, the lookup failed packet is not transmitted to the host processor 110. Accordingly, in the related art, it is possible to solve a decrease in the efficiency of processing generated by transmitting the lookup failed packet to the host processor.

ARP 테이블 관리자(123)는 마이크로 엔진(121)을 통해 입력된 패킷에 따라 ARP 테이블(126)을 관리한다. 이때, ARP 테이블(126)에 저장되는 정보는, IP 주소, MAC 주소, 시간 관련정보들이 포함된다.The ARP table manager 123 manages the ARP table 126 according to the packet input through the micro engine 121. In this case, the information stored in the ARP table 126 includes IP address, MAC address, and time related information.

즉, 마이크로 엔진(121)을 통해 입력되는 ARP 패킷들이 ARP 테이블 관리자(123)에 전달되면, ARP 테이블 관리부(123)는 입력된 패킷(ARP request/reply)내의 소스 IP 어드레스(source IP address)와 MAC 어드레스 정보를 ARP 테이블(126)에 저장을 한다. 아울러, ARP 테이블 관리자(123)는 일반적인 ARP 처리 기능(RFC 826)을 수행하게 된다. 이에 따라, 마이크로 엔진(121)은 패킷을 포워딩할 때에 포워딩 테이블(125)과 함께 이 ARP 테이블도 참조를 하게 된다.That is, when ARP packets input through the micro engine 121 are delivered to the ARP table manager 123, the ARP table manager 123 may be configured with a source IP address in the input packet ARP request / reply. MAC address information is stored in the ARP table 126. In addition, the ARP table manager 123 performs a general ARP processing function (RFC 826). Accordingly, when forwarding the packet, the micro engine 121 refers to this ARP table together with the forwarding table 125.

아울러, ARP 테이블 관리자(123)는 입력된 패킷이 ARP 응답 패킷인지 여부를 판단하여 ARP 패킷인 경우에만, 해당 패킷을 호스트 프로세서(110)에 이 패킷을 전달한다. ARP 응답 패킷인 경우에 호스트 프로세서(110)에 해당 패킷을 전달하는 것은, 해당 패킷이 호스트 프로세서(110)가 보낸 ARP 요청 패킷에 대한 ARP 응답 패킷일 수도 있기 때문이다.In addition, the ARP table manager 123 determines whether the input packet is an ARP response packet and delivers the packet to the host processor 110 only when the packet is an ARP packet. The packet is transmitted to the host processor 110 in the case of the ARP response packet because the packet may be an ARP response packet to the ARP request packet sent by the host processor 110.

포워딩 테이블 관리자(124)는 마이크로 엔진(121)을 통해 입력된 패킷에서 해당 해당 패킷의 목적지 IP 주소, IP 서브넷 마스크 주소, 다음 홉 IP 주소(next hope IP address), 출력 포트정보들을 저장시키고, 새로운 패킷이 수신될 때마다 그에 따라 포워딩 테이블(125)을 업데이트시킨다.The forwarding table manager 124 stores the destination IP address, IP subnet mask address, next hop IP address, and output port information of the packet in the packet input through the micro engine 121, Each time a packet is received, the forwarding table 125 is updated accordingly.

포워딩 테이블(125)은 포워딩 테이블 관리자(124)의 제어를 받아 임의의 패킷에 대하여 해당 패킷의 목적지 IP 주소, IP 서브넷 마스크 주소, 다음 홉 IP 주소, 출력 포트정보들을 저장하게 된다. 포워딩 테이블(125)에 저장된 이러한 정보들은 마이크로 엔진(121)에서 패킷의 포워딩을 위해 참조용으로 사용된다.The forwarding table 125 is controlled by the forwarding table manager 124 to store destination IP addresses, IP subnet mask addresses, next hop IP addresses, and output port information of the packets for any packets. This information stored in the forwarding table 125 is used as a reference for forwarding packets in the micro engine 121.

ARP 테이블(126)은 ARP 테이블 관리자(123)의 제어를 받아 임의의 패킷에 대하여 IP 주소, MAC 주소, 시간 관련정보들을 저장하게 된다. ARP 테이블(126)에 저장된 이러한 정보들은 마이크로 엔진(121)에서 ARP 패킷의 처리를 위해 사용된다. The ARP table 126 is controlled by the ARP table manager 123 and stores IP address, MAC address, and time related information for any packet. This information stored in the ARP table 126 is used for the processing of ARP packets in the micro engine 121.

도 3은 본 발명에 따른 분산 라우터에서 ARP 패킷들을 처리하는 과정을 보여주는 흐름도이다.3 is a flowchart illustrating a process of processing ARP packets in a distributed router according to the present invention.

도 3을 참조하면, 마이크로 엔진(121)에 임의의 ARP 패킷들이 수신되면, 마이크로 엔진(121)은 수신된 패킷을 ARP 테이블 관리자(123)와 포워딩 테이블 관리자(124)에게 전송하여 해당 패킷을 포워딩 테이블(125) 및 ARP 테이블(126)에서 검색한다(S1). 검색결과 포워딩 테이블(125) 및 ARP 테이블(126)에 관련 정보가 있는 경우에는 마이크로 엔진(121)은 포워딩 테이블(125) 및 ARP 테이블(126)의 정보를 참조하여 포워딩을 수행한다(S12).Referring to FIG. 3, when arbitrary ARP packets are received by the micro engine 121, the micro engine 121 transmits the received packets to the ARP table manager 123 and the forwarding table manager 124 to forward the corresponding packets. The table 125 and the ARP table 126 are searched for (S1). If there is related information in the search result forwarding table 125 and the ARP table 126, the micro engine 121 performs forwarding with reference to the information of the forwarding table 125 and the ARP table 126 (S12).

한편, 포워딩 테이블(125) 및 ARP 테이블(126)에 해당 패킷에 대한 관련정보가 없는 경우, 포워딩 테이블 관리자(124)는 해당 패킷에 포함된 정보로 포워딩 테이블(125)을 업데이트하고, ARP 테이블 관리자(123)는 ARP 테이블(126)을 업데이트한다(S4). If the forwarding table 125 and the ARP table 126 do not have related information about the packet, the forwarding table manager 124 updates the forwarding table 125 with the information included in the packet, and the ARP table manager 123 updates the ARP table 126 (S4).

즉, ARP 테이블 관리부(123)는 입력된 패킷(ARP request/reply)내의 소스 IP 어드레스(source IP address)와 MAC 어드레스 정보를 ARP 테이블(126)에 저장을 한다. 포워딩 테이블 관리자(124)는 해당 패킷의 목적지 IP 주소, IP 서브넷 마스크 주소, 다음 홉 IP 주소, 출력 포트정보들을 포워딩 테이블(125)에 저장한다.That is, the ARP table manager 123 stores the source IP address and the MAC address information in the input packet ARP request / reply in the ARP table 126. The forwarding table manager 124 stores the destination IP address, the IP subnet mask address, the next hop IP address, and the output port information of the packet in the forwarding table 125.

다음으로, ARP 테이블 관리자(123)에서는 입력된 패킷이 ARP 응답 패킷인지 여부를 판단한다(S5). 만일, 수신된 패킷이 ARP 패킷이 ARP 응답 패킷인 경우에는 해당 패킷을 호스트 프로세서(110)에 패킷을 전송하고(S6), ARP 응답 패킷이 아닌 경우에는 호스트 프로세서(110)에 전달하지 않는다.Next, the ARP table manager 123 determines whether the input packet is an ARP response packet (S5). If the received packet is an ARP packet and an ARP response packet, the packet is transmitted to the host processor 110 (S6). If the received packet is not an ARP response packet, the packet is not transmitted to the host processor 110.

도 4는 본 발명에 따른 분산 라우터에서 룩업 페일드 패킷을 처리하는 과정을 나타내는 흐름도이다.4 is a flowchart illustrating a process of processing a lookup failed packet in a distributed router according to the present invention.

도 4를 참조하면, 마이크로 엔진(121)에서는 룩업 페일드 패킷이 발생했는지 여부를 판단하여(S11) 임의의 룩업 페일드 패킷이 발생한 경우에는 룩업에 실패한 이유를 해당 패킷에 표시하여 룩업 페일드 패킷 관리자(122)에 전송한다(S12).Referring to FIG. 4, the micro-engine 121 determines whether a lookup failed packet has occurred (S11). If a random lookup failed packet occurs, the micro engine 121 displays the reason why the lookup failed in the corresponding packet and displays the lookup failed packet. It transmits to the manager 122 (S12).

룩업 페일드 패킷 관리자(122)에서는 마이크로 엔진(121)에 의해 패킷에 표시된 룩업에 실패한 이유에 상응하는 ICMP 에러 메시지 패킷을 생성하여 마이크로 엔진(121)에 전송하여 룩업 페일드 패킷에 대한 처리를 호스트 프로세서(110)에 전송하지 않고 네트워크 프로세서(120)내에서 처리될 수 있도록 한다.The lookup failed packet manager 122 generates an ICMP error message packet corresponding to the reason why the lookup indicated in the packet by the micro engine 121 fails, and transmits the ICMP error message packet to the micro engine 121 to host the processing of the lookup failed packet. It can be processed in the network processor 120 without transmitting to the processor (110).

본 발명에 의하면, 종래의 라우터 구조에서 ARP 패킷들과 룩업 페일드 패킷들이 호스트 프로세서에게 전달됨으로 인해 네크워크 프로세서와 호스트 프로세서 사이의 인터페이스에서 발생되던 오버헤드(overhead)의 문제점을 최소화할 수 있다.According to the present invention, since the ARP packets and the lookup failed packets are delivered to the host processor in the conventional router structure, a problem of overhead occurring at the interface between the network processor and the host processor may be minimized.

즉, 네트워크 프로세서가 호스트 프로세서에 모든 ARP 패킷을 전송하는 것이 아니라, ARP 응답 패킷의 경우에만 호스트 프로세서에 전송하고, 기타 다른 패킷에 대하여는 네트워크 프로세서 내에서 처리되도록 함으로써, 호스트 프로세서와 네트워크 프로세서간의 인터페이스에 걸리는 로드가 줄어듦에 따라 라우터에 구현된 네크워크 프로세서내의 포워딩 테이블 업데이트 속도를 높일 수 있다.That is, instead of sending all ARP packets to the host processor, the network processor sends only the ARP response packet to the host processor and processes other packets within the network processor, thereby providing an interface between the host processor and the network processor. As the load is reduced, the speed of forwarding table updates in the network processor implemented in the router can be increased.

도 1은 종래의 분산 라우터 시스템의 내부 라우터 구성 블록도.1 is a block diagram of an internal router configuration of a conventional distributed router system.

도 2는 본 발명에 따른 분산 라우터 시스템의 내부 라우터 구성 블록도.Figure 2 is a block diagram of the internal router configuration of a distributed router system according to the present invention.

도 3은 본 발명에 따른 분산 라우터에서 ARP 패킷들을 처리하는 과정을 보여주는 흐름도.3 is a flowchart illustrating a process of processing ARP packets in a distributed router according to the present invention.

도 4는 본 발명에 따른 분산 라우터에서 룩업 페일드 패킷을 처리하는 과정을 나타내는 흐름도.4 is a flowchart illustrating a process of processing a lookup failed packet in a distributed router according to the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

100 : 분산형 라우터 110 : 호스트 프로세서100: distributed router 110: host processor

111 : 라우팅 프로토콜 데몬 모듈 112 : ARP 운용모듈111: routing protocol daemon module 112: ARP operation module

120 : 네트워크 프로세서 121 : 마이크로 엔진120: network processor 121: micro-engine

122 : 룩업 페일드 패킷 관리자 123 : ARP 테이블 관리자122: Lookup Failed Packet Manager 123: ARP Table Manager

124 : 포워딩 테이블 관리자 125 : 포워딩 테이블124: Forwarding Table Manager 125: Forwarding Table

Claims (6)

포워딩 테이블 및 ARP 테이블을 구비하고, 임의의 이더넷 인터페이스에 연결되어, 임의의 ARP 패킷이 수신되는 경우, 상기 포워딩 테이블 및 ARP 테이블을 참조하여 해당 목적지 주소로 해당 패킷을 포워딩하는 네트워크 프로세서와, A network processor having a forwarding table and an ARP table, connected to an arbitrary Ethernet interface, and forwarding the packet to a corresponding destination address with reference to the forwarding table and the ARP table when an ARP packet is received; 상기 네트워크 프로세서와 통신을 수행하여 라우팅 기능을 수행하는 호스트 프로세서를 포함하여 구성하되,Comprising a host processor for performing a routing function by communicating with the network processor, 상기 네트워크 프로세서는, 임의의 ARP 패킷이 수신되면, 상기 포워딩 테이블 및 ARP 테이블을 검색하여 해당 ARP 패킷에 대한 정보가 존재하지 않는 경우, 해당 ARP 패킷에 포함된 정보로 상기 포워팅 테이블 및 ARP 테이블을 업데이트시키고, 해당 ARP 패킷이 ARP 응답 패킷인 경우에만, 해당 ARP 패킷을 상기 호스트 프로세서로 전송하여 상기 호스트 프로세서의 라우팅 정보를 업데이트시키는 ARP 패킷 처리 분산형 라우터.When an ARP packet is received, the network processor searches the forwarding table and the ARP table, and if the information about the ARP packet does not exist, the network processor uses the information included in the ARP packet as the forwarding table and the ARP table. And update the routing information of the host processor by transmitting the corresponding ARP packet to the host processor only if the corresponding ARP packet is an ARP response packet. 제 1항에 있어서, 상기 네트워크 프로세서는,The method of claim 1, wherein the network processor, 임의의 ARP 패킷이 수신되는 경우, 상기 포워딩 테이블 및 ARP 테이블을 참조하여 포워딩을 수행하고, 룩업 페일 패킷이 발생하는 경우, 해당 패킷에 룩업 페일이 발생한 이유를 표시하는 마이크로 엔진과,A micro-engine that performs forwarding with reference to the forwarding table and the ARP table when a random ARP packet is received, and displays a reason why a lookup fail occurs in the packet when a lookup fail packet occurs; 상기 마이크로 엔진을 통해 입력된 패킷에 따라 상기 포워딩 테이블 정보를 관리하는 포워딩 테이블 관리자와,A forwarding table manager managing the forwarding table information according to the packet input through the micro engine; 상기 마이크로 엔진을 통해 입력된 패킷에 따라 상기 ARP 테이블 정보를 관리하고, 입력된 패킷이 ARP 응답 패킷인 경우에만, 해당 패킷을 상기 호스트 프로세서에 전송하는 ARP 테이블 관리자와,An ARP table manager managing the ARP table information according to the packet input through the micro-engine, and transmitting the packet to the host processor only when the input packet is an ARP response packet; 상기 마이크로 엔진에 의해 표시된 룩업 페일이 발생된 이유에 상응한 ICMP 에러 메시지를 생성하여 상기 ARP 테이블에 저장하는 룩업 페일드 패킷 관리자를 포함하는 ARP 패킷 처리 분산형 라우터.And a lookup failed packet manager for generating an ICMP error message corresponding to the reason why the lookup failure indicated by the micro engine has occurred and storing the same in the ARP table. 제 2항에 있어서, 상기 포워딩 테이블은,The method of claim 2, wherein the forwarding table, 목적지 IP 주소, IP 서브넷 마스크 주소, 다음 홉 IP 주소, 출력 포트정보를 포함하는 ARP 패킷 처리 분산형 라우터.ARP packet processing distributed router including destination IP address, IP subnet mask address, next hop IP address, and output port information. 제 2항에 있어서, 상기 ARP 테이블은,The method of claim 2, wherein the ARP table, IP 주소, MAC 주소, 시간 관련정보를 저장하는 ARP 패킷 처리 분산형 라우터.ARP packet processing distributed router that stores IP address, MAC address, and time related information. 포워딩 테이블 및 ARP 테이블을 구비하고, 임의의 이더넷 인터페이스에 연결되어, 임의의 ARP 패킷이 수신되는 경우, 상기 포워딩 테이블 및 ARP 테이블을 참조하여 해당 목적지 주소로 해당 패킷을 포워딩하는 네트워크 프로세서와, 상기 네트워크 프로세서와 통신을 수행하여 라우팅 기능을 수행하는 호스트 프로세서를 포함하여 구성되는 분산형 라우터에서 임의의 ARP 패킷을 처리하는 방법에 있어서,A network processor having a forwarding table and an ARP table, connected to an arbitrary Ethernet interface, and forwarding the packet to a corresponding destination address with reference to the forwarding table and the ARP table when an ARP packet is received; In the method for processing any ARP packet in a distributed router comprising a host processor for performing a routing function by communicating with the processor, 상기 네트워크 프로세서에 임의의 ARP 패킷이 수신되면, 상기 포워딩 테이블 및 ARP 테이블을 검색하는 단계와,Retrieving the forwarding table and the ARP table when any ARP packet is received at the network processor; 검색결과, 포워딩 테이블 및 ARP 테이블에 해당 ARP 패킷에 대한 정보가 존재하지 않는 경우, 해당 ARP 패킷에 포함된 정보로 상기 포워팅 테이블 및 ARP 테이블을 업데이트시키는 단계와,If there is no information on the corresponding ARP packet in the forwarding table and the ARP table, updating the forwarding table and the ARP table with information included in the corresponding ARP packet; 해당 ARP 패킷이 ARP 응답 패킷인지 여부를 판단하여, ARP 응답 패킷인 경우, 해당 ARP 패킷을 상기 호스트 프로세서로 전송하여 상기 호스트 프로세서의 라우팅 정보를 업데이트시키는 단계를 수행하는 분산형 라우터의 ARP 패킷 처리 방법.Determining whether the ARP packet is an ARP response packet, if the ARP response packet, and transmitting the ARP packet to the host processor to update the routing information of the host processor ARP packet processing method of the distributed router . 제 5항에 있어서, 상기 네트워크 프로세서에서 룩업 페일 패킷이 발생하는 경우, 해당 패킷에 룩업 페일이 발생한 이유를 표시하고, 그에 따라 ICMP 에러 패킷을 생성하는 단계를 더 수행하는 것을 특징으로 하는 분산형 라우터의 ARP 패킷 처리 방법.6. The distributed router of claim 5, wherein when a lookup fail packet is generated in the network processor, the reason why the lookup fail occurs in the packet is generated, and accordingly, generating an ICMP error packet. ARP packet processing method.
KR10-2003-0000152A 2003-01-02 2003-01-02 distributed router and ARP packet processing method thereof KR100475436B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0000152A KR100475436B1 (en) 2003-01-02 2003-01-02 distributed router and ARP packet processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0000152A KR100475436B1 (en) 2003-01-02 2003-01-02 distributed router and ARP packet processing method thereof

Publications (2)

Publication Number Publication Date
KR20040062343A KR20040062343A (en) 2004-07-07
KR100475436B1 true KR100475436B1 (en) 2005-03-10

Family

ID=37353746

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0000152A KR100475436B1 (en) 2003-01-02 2003-01-02 distributed router and ARP packet processing method thereof

Country Status (1)

Country Link
KR (1) KR100475436B1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100938003B1 (en) * 2003-03-19 2010-01-21 삼성전자주식회사 Method of routing information management in Multi-protocol Label Switching router and apparatus therefor
KR100550012B1 (en) * 2003-11-28 2006-02-08 한국전자통신연구원 The method of managing ARP table for fast packet forwarding and managing unit there of.
KR100705565B1 (en) * 2004-12-22 2007-04-10 삼성전자주식회사 Apparatus and Method for Management of MAC Address for Packet Forwarding
US7729362B2 (en) 2005-12-07 2010-06-01 Electronics And Telecommunications Research Institute Method and apparatus for processing packet in high speed router
KR100827143B1 (en) * 2007-01-16 2008-05-06 삼성전자주식회사 Packet switch device and the packet switching method
KR100823135B1 (en) * 2007-03-13 2008-04-21 삼성전자주식회사 Routing control device for efficient arp request and method thereof
US9432213B2 (en) 2007-12-31 2016-08-30 Rpx Clearinghouse Llc IP forwarding across a link state protocol controlled ethernet network
CN102081603B (en) * 2009-11-27 2015-06-03 上海博达数据通信有限公司 Method for address resolution protocol (ARP) query optimization under multinuclear environment

Also Published As

Publication number Publication date
KR20040062343A (en) 2004-07-07

Similar Documents

Publication Publication Date Title
US7817637B2 (en) Network switching system
US7852774B2 (en) User datagram protocol traceroute probe extension
US7260096B2 (en) Method and router for forwarding internet data packets
US7894456B2 (en) Routing data packets from a multihomed host
EP2514152B1 (en) Distributed routing architecture
US8259720B2 (en) Triple-tier anycast addressing
US9054956B2 (en) Routing protocols for accommodating nodes with redundant routing facilities
JP5416596B2 (en) Network relay device, network system, and control method thereof
EP2127277B1 (en) Methods, systems, and computer program products for source-aware ip routing at a media gateway
US9178818B2 (en) Communication apparatus
US20020023152A1 (en) Communication data relay system
EP3253006B1 (en) Mapping server, network system, packet forwarding method and program
EP3094052B1 (en) Method and device for forwarding information
US10382329B1 (en) Source MAC access controls in a virtual redundant router protocol environment
KR100666996B1 (en) Routing system and route update method
JP2000295291A (en) Data transmission system
US8811158B1 (en) Fast reroute for common network routes
KR100475436B1 (en) distributed router and ARP packet processing method thereof
US10887227B2 (en) Methods and apparatuses for routing data packets in a network topology
US11924103B2 (en) Traffic processing method, apparatus, and network device
US11909629B2 (en) Seamless segment routing for multiprotocol label switching (MPLS) interworking
KR100748090B1 (en) Method and apparatus for processing packet in high speed router
WO2000044139A1 (en) Booster for rapid network acceleration
KR100560753B1 (en) apparatus and method of router information management in Distributed Router
US10715440B1 (en) Distributed next hop resolution

Legal Events

Date Code Title Description
A201 Request for examination
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: 9

FPAY Annual fee payment

Payment date: 20140128

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee