KR100317991B1 - Layer3 packet forwarding handling method and apparatus in gigabit Ethernet based router - Google Patents

Layer3 packet forwarding handling method and apparatus in gigabit Ethernet based router Download PDF

Info

Publication number
KR100317991B1
KR100317991B1 KR1020000003493A KR20000003493A KR100317991B1 KR 100317991 B1 KR100317991 B1 KR 100317991B1 KR 1020000003493 A KR1020000003493 A KR 1020000003493A KR 20000003493 A KR20000003493 A KR 20000003493A KR 100317991 B1 KR100317991 B1 KR 100317991B1
Authority
KR
South Korea
Prior art keywords
packet
controller
routing
lookup
processing
Prior art date
Application number
KR1020000003493A
Other languages
Korean (ko)
Other versions
KR20010076079A (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 KR1020000003493A priority Critical patent/KR100317991B1/en
Publication of KR20010076079A publication Critical patent/KR20010076079A/en
Application granted granted Critical
Publication of KR100317991B1 publication Critical patent/KR100317991B1/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/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical 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/66Layer 2 routing, e.g. in Ethernet based MAN's
    • 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

Abstract

본 발명은 기가비트 이더넷 기반 라우터에서의 패킷 포워딩 처리에 관한 것으로서, 기가비트 이더넷 시스템에서 기가비트 속도의 트래픽을 만족하는 빠른 포워딩을 구현하기 위해 기가비트 와이어스피드(wired-speed)를 보장하는 룩업의 결과에 대해 듀얼 포트메모리를 버퍼로 사용하고 하드웨어 방법에 의한 병렬처리형 패킷 포워딩 처리를 함으로써 실시간의 패킷 포워딩을 가능하게 하여 라우터 시스템 성능을 향상시키는 병렬처리형 3계층 패킷 포워딩 처리 방법 및 장치를 제공한다.The present invention relates to packet forwarding processing in a Gigabit Ethernet-based router. The present invention relates to a result of a lookup that guarantees gigabit wire-speed for implementing fast forwarding that satisfies gigabit-speed traffic in a Gigabit Ethernet system. The present invention provides a parallel processing type 3 layer packet forwarding processing method and apparatus for enabling packet forwarding in real time by using a port memory as a buffer and performing parallel processing type packet forwarding by a hardware method to improve router system performance.

본 발명은 프로세싱 시간을 단축하여 기가비트 속도처리가 가능하게 하고, 룩업의 결과에 의한 패킷처리를 프로세서의 개입없이 일정 시간지연내로 보장할 수 있으며, 또 입력 프로세싱과는 별도로 병렬 처리하므로 회로의 간단화를 통한 비용 절감의 효과가 있다.The present invention can reduce the processing time to enable gigabit speed processing, guarantee the packet processing by the result of the lookup within a certain time delay without the involvement of the processor, and simplify the circuit by parallel processing separately from the input processing. There is a cost saving effect through.

Description

기가비트 이더넷 기반 라우터에서의 병렬처리형 3계층 패킷 포워딩 처리 방법 및 장치 {Layer3 packet forwarding handling method and apparatus in gigabit Ethernet based router}Layer 3 packet forwarding handling method and apparatus in gigabit Ethernet based router

본 발명은 기가비트 이더넷 기반 라우터에서의 패킷 포워딩 처리에 관한 것으로서, 상세하게는 기가비트 이더넷 시스템에서 기가비트 속도의 트래픽을 만족하는 빠른 포워딩을 구현하기 위해 기가비트 와이어스피드(wired-speed)를 보장하는 룩업의 결과에 대해 듀얼 포트메모리를 버퍼로 사용하고 하드웨어 방법에 의한 병렬처리형 패킷 포워딩 처리를 함으로써 실시간의 패킷 포워딩을 가능하게 하여 라우터 시스템 성능을 향상시키는 병렬처리형 3계층 패킷 포워딩 처리 방법 및 장치에 관한 것이다.The present invention relates to packet forwarding processing in a gigabit Ethernet-based router. Specifically, the present invention relates to a result of a lookup that guarantees gigabit wire-speed to implement fast forwarding that satisfies gigabit-speed traffic in a gigabit Ethernet system. The present invention relates to a parallel three-layer packet forwarding processing method and apparatus for improving router system performance by enabling packet forwarding in real time by using dual port memory as a buffer and performing parallel packet forwarding processing by a hardware method. .

최근 급격한 증가 추세에 있는 복잡하면서도 다양한 데스크탑 컴퓨팅 어플리케이션들간의 통신은 주로 LAN(Local Area Network )에 의존하고 있으며, 인터넷과 인트라넷의 활성화와 함께 트래픽 량의 증가에 기인한 신호 대역폭의 증가가 요구 되고 있다. 그러나, 기존에 공유매체를 기반으로 연결된 LAN망에서는 정체(Congestion) 문제를 해결할 수 없으므로 특정 대역폭을 제공하는 장점을 가진 스위치 형태의 장치로 발전하였으며, 스위치 형태의 장치 또한 100Mbps의 대역폭을 가진 고속 이더넷을 이용한 네트워크 기술로 발전되었다. 그런데 서버 또는 데스크탑간의 100Base-T 기술을 이용한 네트워킹 기술이 보편화 됨에 따라 백본과 서버 레벨에서는 이 보다도 더 고속의 네트워크 기술이 요구 되었고 1.25Gbps의 대역폭을 제공하는 기가비트 이더넷(Gigabit Ethernet )시스템이 개발 되었다. 서브네트간 트래픽의 증가는 또한 기가비트 이더넷 시스템에서의 브리지 및 라우터 기능의 성능 향상을 필수적으로 요구하게 된다. 그런데 이러한 라우터의 성능 향상의 가장 큰 문제점은 기가비트 속도의 패킷 포워딩 문제이다. 이러한 기가비트 속도의 패킷 포워딩 문제를 해결하는 방법으로서 기가비트 속도의 트래픽을 만족하는 빠른 룩업(Lookup)을 구현하기 위해 CAM(Content-Addressable Memory)이나 캐쉬 메모리등을 적용하여 3계층 레벨인 IP 어드레스의 룩업을 처리하고, 그 결과를 패킷에 적용하여 기가비트 와이어드 속도(wired-speed)의 포워딩을 하도록 한다.The communication between complex and diverse desktop computing applications, which are rapidly increasing in recent years, mainly depends on LAN (Local Area Network), and it is required to increase signal bandwidth due to the increase of traffic volume with the activation of Internet and intranet. . However, in the LAN network connected based on the shared media, congestion problem cannot be solved, so it has developed into a switch type device having an advantage of providing a specific bandwidth, and the switch type device also has a high speed Ethernet having a bandwidth of 100 Mbps. Has been developed into network technology. However, as networking technology using 100Base-T technology between servers or desktops has become commonplace, higher speed network technology has been required at the backbone and server levels, and a Gigabit Ethernet system has been developed that provides 1.25Gbps of bandwidth. Increasing traffic between subnets also necessitates performance improvements in bridge and router functionality in Gigabit Ethernet systems. However, the biggest problem of the performance improvement of the router is the problem of packet forwarding at the gigabit speed. As a method to solve the gigabit-rate packet forwarding problem, to implement a fast lookup that satisfies the gigabit-rate traffic, the CAM (Content-Addressable Memory) or the cache memory is applied to the lookup of the three-layer IP address. And then apply the result to the packet for Gigabit wired-speed forwarding.

현재 기가비트 속도를 보장하기위한 룩업기능을 위해서는 많은 발명들이 제안되고 있다. 그러나 이러한 룩업처리 결과를 포워딩하고자 하는 패킷에 적용하고자 할 때 패킷처리 방식에 따라 많은 지연을 갖게 된다.Currently, many inventions have been proposed for the lookup function to guarantee the gigabit speed. However, when applying the lookup processing result to the packet to be forwarded, there is a large delay depending on the packet processing method.

종래에는 빠른 프로세서가 캐쉬같은 다른 메모리에 패킷을 저장해 놓고 패킷갱신등을 처리하는 포워딩 알고리즘을 사용하거나 헤더 부분만을 처리하는 별도의 큐를 두어 패킷 갱신후에 저장해둔 데이터 부분과 결합(MUX) 해서 포워딩하는 하드웨어 기반의 패킷 포워딩 처리 방법등을 적용 하였다.Conventionally, a fast processor stores a packet in another memory such as a cache, and uses a forwarding algorithm that handles packet updating, or a separate queue that handles only a header part and combines (MUX) and forwards the data part stored after the packet update. Hardware based packet forwarding processing method is applied.

이러한 종래의 패킷 포워딩 처리는 프로세서에 의한 메모리 액세스 시간이나분리된 패킷의 결합등에 따른 지연시간등에 의해 기가비트 와이어 속도의 빠른 룩업이 처리되어도 그 결과에 대한 패킷처리와 포워딩 시키는 과정에서 많은 시간이 소요되어 기가비트 와이어 속도의 포워딩 구현이 불가능한 문제점이 있다.This conventional packet forwarding process takes a lot of time in the process of packet processing and forwarding the result even if a fast lookup of the gigabit wire speed is processed by the delay time due to the memory access time by the processor or the combination of the separated packets. There is a problem in that it is impossible to implement gigabit wire speed forwarding.

도 1은 일반적으로 많이 구성하고 있는 기존 이더넷 기반의 라우터 구조도로서, 전체 구성으로 볼 때 이더넷의 매체 제어기(Media Access Controller : 11)를 통해 들어오는 패킷 스트림 데이터(17)는 포워딩 처리 장치(10)에 의해 포워딩 처리되는데, 입력된 패킷 스트림 데이터(17)는 수신버퍼(12)에 저장하고 인터럽트등의 방식으로 프로세서(13)에게 통보하면 프로세서(13)는 수신 버퍼(12)를 통해 패킷 포워딩부(15)의 패킷 저장 메모리(152)로 패킷 프레임을 저장한다.FIG. 1 is a schematic diagram of a conventional Ethernet-based router. In general, the packet stream data 17 received through the Ethernet Media Access Controller 11 is transferred to the forwarding processing apparatus 10. Referring to FIG. When the packet stream data 17 is stored in the reception buffer 12 and notified to the processor 13 by an interrupt or the like, the processor 13 transmits the packet forwarding unit ( A packet frame is stored in the packet storage memory 152 of 15).

프로세서(13)는 패킷 포워딩부(15)의 패킷 저장 메모리(152)를 액세스하여 IP 헤더에서 읽어낸 목적지 어드레스를 룩업처리부(16)에 보내어 룩업제어기(161)에 의한 룩업테이블 메모리(162) 검색 작업에 들어가도록 한다. 이때 프로세서(13) 인접한 곳에 캐쉬메모리(14)를 두어 한번의 히트(Hit)에 의한 룩업 검색시간의 단축을 기한다.The processor 13 accesses the packet storage memory 152 of the packet forwarding unit 15 and sends the destination address read from the IP header to the lookup processing unit 16 to retrieve the lookup table memory 162 by the lookup controller 161. Get to work. At this time, the cache memory 14 is placed near the processor 13 to shorten the lookup search time by one hit.

룩업과정이 완료되면 프로세서(13)는 그 결과인 넥스트 홉 및 포트 정보를 라우팅 제어기(151)에 넘겨 패킷저장 메모리(152)에 있는 패킷 데이터를 수정 하도록 한다. 이때의 수정 정보로는 넥스트 홉 변경, TTL 감소, 체크섬 재계산등이 있으며 라우팅 제어기(151)는 라우팅 처리가 끝난 패킷을 포워딩용 버퍼(153)에 실어 그 패킷이 포워딩 되도록 한다.When the lookup process is completed, the processor 13 passes the resulting next hop and port information to the routing controller 151 to modify the packet data in the packet storage memory 152. At this time, the modified information may include a next hop change, a TTL reduction, a checksum recalculation, and the like. The routing controller 151 loads the completed packet into the forwarding buffer 153 to forward the packet.

이와 같이 종래의 소프트웨어 기반의 패킷 포워딩 처리 방법은 메모리에 패킷을 저장해 놓은 뒤 룩업처리를 하고, 그 결과를 갖고 패킷의 넥스트 홉(Next HOP) 어드레스 변경, TTL(Time too Live) 감소, 체크섬(Checksum) 재계산등의 패킷 라우팅 처리를 위해 메모리에 저장된 패킷을 프로세서가 다시 액세스 하여 패킷 가공을 하게 되므로 이러한 프로세싱 과정중에 많은 시간의 지연을 갖게 된다.In the conventional software-based packet forwarding method, the packet is stored in a memory and then looked up, and the result is changed to a next hop address of the packet, a time too live (TTL) decrease, and a checksum Since the processor accesses the packet stored in the memory again for packet routing such as recalculation, packet processing is delayed.

때문에 이와 같은 소프트웨어 기반의 패킷 포워딩 처리 방법은 기가비트 이더넷 시스템 같은 대역폭과 속도에는 적합하지 못하며 패킷의 손실을 초래하게 된다. 이러한 문제를 개선하기 위해 고속의 리스크 프로세서(RISC processor)를 사용하는 것이 제안 되었는데, 이 방법은 시스템 제작 비용의 증가를 가져 오게 된다.This software-based packet forwarding process is not suitable for bandwidth and speed, such as Gigabit Ethernet systems, resulting in packet loss. In order to remedy this problem, it has been proposed to use a high-speed RISC processor, which leads to an increase in system fabrication cost.

이와는 다른 하드웨어 기반의 패킷 포워딩 처리 방법이 있는데, 이는 패킷 포워딩 처리가 필요한 헤더 부분만을 데이터 영역 큐와 분리해서 별도의 큐를 두고 포워딩시에 헤더 정보를 갱신하고 출력시에 데이터 큐와 결합해서 처리하는 방법을 사용한다. 이 경우 헤더 큐와 데이터 큐의 동기상태를 관리하는 별도의 큐 관리 프래그(Flag)를 두어야 하므로 회로의 복잡성을 더하게 되어 실시간 포워딩에 많은 부담을 초래 하게 된다.There is a different hardware-based packet forwarding method, which separates only the header part that needs packet forwarding from the data area queue, puts a separate queue, updates header information when forwarding, and combines it with data queue when outputting. Use the method. In this case, a separate queue management flag (flag) that manages the synchronization state of the header queue and the data queue must be provided, which adds to the complexity of the circuit and causes a lot of burden on real-time forwarding.

본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 안출된 것으로, 기가비트 속도의 이더넷 기반의 라우터에서 패킷 프레임의 송수신과 3계층 라우팅을 담당하는 기가비트 이더넷 라우터에 적용 가능한 병렬처리형 3계층 패킷 포워딩 처리 방법 및 장치를 제공하는 데 그 목적이 있다.The present invention has been made to solve the above problems of the prior art, a parallel processing type three-layer packet forwarding process applicable to a gigabit Ethernet router that is responsible for transmitting and receiving packet frames and three-layer routing in a gigabit Ethernet-based router Its purpose is to provide a method and apparatus.

도 1은 기존의 일반적인 이더넷 기반 라우터 구조도1 is a conventional general Ethernet-based router structure diagram

도 2는 본 발명에 따른 병렬처리형 3계층 패킷 포워딩 처리 방법을 구현한 장치의 구조도2 is a structural diagram of an apparatus implementing the parallel processing type 3 layer packet forwarding processing method according to the present invention.

도 3은 듀얼포트 메모리의 접속 관계도3 is a connection relationship diagram of the dual port memory.

도 4는 본 발명에 따른 병렬처리형 3계층 패킷 포워딩 처리 장치의 기능 흐름도4 is a functional flowchart of a parallel processing-type three-layer packet forwarding processing apparatus according to the present invention.

도 5는 본 발명에 따른 병렬처리형 3계층 패킷 포워딩 처리 장치의 패킷 포워딩 과정을 보인 절차도5 is a flowchart illustrating a packet forwarding process of a parallel processing-type three-layer packet forwarding processing apparatus according to the present invention.

* 도면의 주요부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

201 : 기가비트 이더넷 매체 제어기 202 : 패킷 쓰기 제어기201: Gigabit Ethernet Media Controller 202: Packet Write Controller

203 : 패킷 라우팅 중앙 제어기 204 : 룩업 제어기203: packet routing central controller 204: lookup controller

205 : 룩업 테이블 206 : 패킷 수정 제어기205: lookup table 206: packet modification controller

207 : 패킷 읽기 제어기 208 : 포인터 중재기207: packet read controller 208: pointer arbiter

209 : 버퍼209: buffer

상기한 목적을 달성하기 위한 본 발명은 기가비트 속도의 패킷 포워딩을 보장하기 위해 듀얼 포트 메모리(Dual Port memory)를 버퍼(Buffer)로 사용하여 패킷의 순간 저장과 라우팅 처리를 위한 헤더 정보의 수정이 같은 저장 버퍼에서 독립적으로 병렬 처리될 수 있도록 하여 프로세싱 시간을 기가비트 속도처리가 가능하게 하고, 룩업의 결과에 의한 패킷처리를 프로세서의 개입 없이 동시발생적으로 처리함으로써 회로의 간단화를 통한 비용의 절감을 가져오게 한 것을 특징으로 한다.In order to achieve the above object, the present invention uses a dual port memory as a buffer to guarantee packet forwarding at a gigabit speed, and the header information for the instantaneous storage and routing processing of the packet is the same. By allowing parallel processing independently in the storage buffer, Gigabit speed processing is possible, and packet processing resulting from the lookup can be processed concurrently without processor intervention, resulting in cost savings through simplified circuits. It is characterized by coming.

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

도 2는 기가비트 이더넷 기반의 라우터에서 기가비트 속도의 라우팅 패킷 처리를 실현하기 위해 본 발명에 따른 병렬처리형 3계층 패킷 포워딩 처리 방법을 적용한 패킷 포워딩 처리 장치의 구조도이다.2 is a structural diagram of a packet forwarding processing apparatus applying the parallel processing type 3 layer packet forwarding processing method according to the present invention to realize a gigabit-rate routing packet processing in a gigabit Ethernet-based router.

앞서 설명한 도 1의 기존 이더넷 라우터의 구조와는 달리, 본 발명의 패킷 포워딩 처리 장치는 프로세서의 개입이 필요없이 전체 라우팅 과정을 제어하는 패킷 라우팅 중앙 제어기(203); 상기 패킷 라우팅 중앙 제어기(203)의 요구에 의해 룩업 테이블(205)을 통해 목적지 IP 어드레스에 대한 룩업 검색을 하는 룩업 제어기(204); IP 어드레스에 대한 정보를 저장하고 있는 룩업 테이블(205); 입력 패킷의 저장 포인터를 지정하는 패킷 쓰기 제어기(202); 룩업결과에 의한 패킷 수정위치를 지정하는 패킷 수정 제어기(206); 호스트로 읽어갈 패킷의 번지를 지정하는 패킷 읽기 제어기(207); 상기 패킷 수정 제어기(206)와 패킷 읽기 제어기(207)에서 입력되는 수정쓰기 포인터와 읽기 포인터를 중재하는 포인터 중재기(208); 입력되는 패킷을 저장하며, 공용 데이터의 읽기와 쓰기를 서로 다른 포트에서 할 수 있는 양방향 듀얼포트 메모리로 된 버퍼(209)로 구성된다.Unlike the structure of the conventional Ethernet router of FIG. 1 described above, the packet forwarding processing apparatus of the present invention includes a packet routing central controller 203 for controlling the entire routing process without the need for processor intervention; A lookup controller 204 for performing a lookup search for a destination IP address through a lookup table 205 at the request of the packet routing central controller 203; A lookup table 205 which stores information on an IP address; A packet write controller 202 for designating a storage pointer of an input packet; A packet modification controller 206 for designating a packet modification position based on the lookup result; A packet read controller 207 which designates the address of a packet to be read to the host; A pointer arbiter (208) for arbitrating a modification write pointer and a read pointer input from the packet modification controller (206) and the packet read controller (207); It consists of a buffer 209, which is a bi-directional dual-port memory that stores incoming packets and allows reading and writing of common data on different ports.

이와 같은 구성에서, 기가비트 이더넷 매체 제어기(201)를 통해 들어오는 기가비트 밴드폭을 만족하는 31.25MHz 속도의 32비트 데이터 패킷 스트림(210)은 버퍼(209)에 시간 지연없이 저장되고, 이때 저장할 위치는 패킷 쓰기 제어기(202)에서 제공되는 쓰기 포인터가 지정하는 번지이다.In such a configuration, a 31.25 MHz rate 32-bit data packet stream 210 that satisfies the gigabit bandwidth coming through the gigabit Ethernet media controller 201 is stored in the buffer 209 with no time delay, where the packet is stored. The address designated by the write pointer provided by the write controller 202.

한편, 입력되고 있는 패킷을 모니터링하고 있던 패킷 라우팅 중앙 제어기(203)는 목적지 IP 어드레스를 갖고 룩업처리기(204)에게 검색 요청을 하고 룩업처리기(204)는 룩업테이블(205)을 검색하여 라우팅 결과를 얻는다.On the other hand, the packet routing central controller 203, which is monitoring the incoming packet, makes a search request to the lookup processor 204 with the destination IP address, and the lookup processor 204 searches the lookup table 205 to retrieve the routing result. Get

이러한 라우팅 결과에 대해 패킷 라우팅 중앙 제어기(203)은 패킷 쓰기 제어기(202)로부터 현재 버퍼(209)에 쓰고있는 패킷 스트림의 시작 번지를 얻어와 패킷 수정 제어기(206)에게 넘겨준다.For this routing result, the packet routing central controller 203 obtains the start address of the packet stream currently being written to the buffer 209 from the packet write controller 202 and passes it to the packet modification controller 206.

그러면 패킷 수정 제어기(206)는 패킷 읽기 제어기(207)에게 출력 포트로 패킷을 읽어나가고 있는 동작을 멈추게 하고, 수정쓰기 포인터를 포인터 중재기(208)로 넘겨주어 포인터 중재기(208)의 중재에 의해 지정된 위치에 필요한 데이터를 써서 라우팅 패킷 수정을 한다. 이러한 과정은 입력된 하나의 패킷이 모두 저장되는 동안 즉, 다음 패킷이 입력되기 전에 모두 이루어져야 하고 이러한 실시간 처리를 위해 듀얼포트 메모리로 구성되는 버퍼(209)와 읽기/쓰기의 병렬 처리 방법을 사용한다.The packet modification controller 206 then stops the packet read controller 207 from reading the packet to the output port, and passes the modification write pointer to the pointer arbiter 208 for arbitration of the pointer arbiter 208. The routing packet is modified by writing the necessary data in the designated location. This process uses a parallel processing of read / write and buffer 209, which consists of dual-port memory, while all the input packets are stored, that is, before the next packet is input. .

패킷 읽기 제어기(207)는 이전 읽기 번지를 간직하고 있다가 패킷 수정과정이 끝나면 다시 읽기 포인터를 포인터 중재기(208)에 전달하여 포워딩 처리된 패킷을 출력 포트로 전달해 준다.The packet read controller 207 retains the previous read address and transfers the read pointer to the pointer arbiter 208 again when the packet modification process is completed, and forwards the forwarded packet to the output port.

도 3은 본 발명에서 제안하는 병렬처리형 3계층 패킷 포워딩 처리 방법을 구현하기 위해 버퍼로 사용한 듀얼포트 메모리의 접속 관계를 보인 것이다.Figure 3 shows the connection relationship between the dual port memory used as a buffer to implement the parallel processing layer 3 packet forwarding processing method proposed in the present invention.

듀얼 포트 메모리(301)는 두 개의 포트(302, 305)에서 읽기 및 쓰기가 가능한 공용 메모리로 구성되어 있고, 패킷의 크기(64-1518바이트 이더넷 패킷)에 따라 가변적으로 세그먼트를 할당 할 수 있으며, 양쪽의 쓰기 포인터(303)와 읽기/쓰기 포인터(306)로 제어되는 링구조의 버퍼를 구성한다. 포트1(302)로 들어오는 입력 패킷(304)은 쓰기 포인터(303)에 의해 저장할 번지를 지정 받고, 포트2(305)에서 입출력 되는 데이터 및 패킷(307)은 읽기/쓰기 포인터(306)에 의해 저장 또는 읽어나갈 번지를 지정 받는다. 링구조의 버퍼 특성으로 포트1의 쓰기 포인터(303)와 포트2의 읽기 포인터(306)의 일치 여부에 따라 버퍼의 찬(full) 상태(308)와 빈(empty) 상태(309)를 표시해 준다.Dual port memory 301 is composed of a common memory that can be read and written in the two ports (302, 305), it is possible to allocate segments variably according to the size of the packet (64-1518 bytes Ethernet packet), A buffer having a ring structure controlled by both write pointers 303 and read / write pointers 306 is formed. The input packet 304 entering port 1 302 is designated by the write pointer 303 to store, and the data and packets 307 input / output at the port 2 305 are read / write pointer 306. Address to save or read is specified. The buffer structure of the ring structure shows the full (308) and empty (309) states of the buffer, depending on whether the write pointer 303 on the port 1 and the read pointer 306 on the port 2 match. .

도 4는 본 발명에 따른 병렬처리형 3계층 패킷 포워딩 처리 장치의 기능 흐름도를 시간대로 보인 것이다.Figure 4 shows a functional flow diagram of a parallel processing layer 3 packet forwarding processing apparatus according to the present invention in time zone.

기존의 라우팅 패킷 방법을 이용하는 도 1의 구성과 다른 점은 들어오는 입력 패킷(41)에 대해 프로세서의 개입이나 로컬 메모리로의 복사과정을 거치지 않고 패킷의 라우팅 처리 및 패킷 포워딩이 시간 지연없이 하드웨어에 의해 병렬적으로 처리 된다는 것이다.Unlike the configuration of FIG. 1 using the conventional routing packet method, the routing process and packet forwarding of the packet are performed by hardware without time delay without the processor's intervention or copying to the local memory for the incoming input packet 41. It is processed in parallel.

기가비트 이더넷 매체 제어기(201)로부터 32비트 스트림의 첫번째 입력 패킷1이 저장되고 있는 동안(411) 목적지 IP 어드레스가 저장되는 시점이 되면 패킷 저장과는 별도로 패킷라우팅 중앙 제어기(203)는 룩업제어기(204)에게 목적지 IP 어드레스를 넘겨주며(421) 룩업 처리 요구(422)를 한다. 프로세서나 하드웨어에 의한 방법으로 룩업 제어기(204)는 실시간의 룩업검색을 하여 검색 결과를 패킷라우팅 중앙 제어기(203)에게 전달한다.While the first input packet 1 of the 32-bit stream from the Gigabit Ethernet media controller 201 is being stored (411), when the destination IP address is stored, the packet routing central controller 203 separates the lookup controller 204 from the packet storage. ) Is passed to the destination IP address (421) and a lookup processing request (422) is made. In a processor or hardware method, the lookup controller 204 performs a real-time lookup search and transmits the search result to the packet routing central controller 203.

이 시점에서 패킷 쓰기 제어기(202)는 패킷라우팅 중앙 제어기(203)로부터 현재 버퍼(209)에 쓰고있는 패킷 스트림의 시작 번지를 넘겨 받아 출력 패킷에 대해 패킷 1의 헤더 수정(431)을 하고, 이어 패킷 읽기 제어기(207)의 포인팅에 의한 패킷1 읽기(441)를 수행한다.At this point, the packet write controller 202 receives the start address of the packet stream currently being written to the buffer 209 from the packet routing central controller 203, and then modifies the header 1 of the packet 1 to the output packet. Packet 1 read 441 by the pointing of the packet read controller 207 is performed.

듀얼포트 메모리 버퍼(209)의 공용 메모리에 저장된 입력 패킷들(411, 412, 413, 414)은 룩업결과에 의한 패킷 포워딩 처리(431, 432, 433, 434)가 끝나기 전까지는 패킷 읽기 과정(441, 442, 451, 452, 461, 462)에 들어 갈 수 없다. 그러나 각 패킷에 대한 패킷 헤더 수정과정(431, 432, 433, 434)이 일정한 시간대에 끝나므로 패킷 입력 후 일정한 시간 지연(401, 402, 403, 404) 뒤에 주기적인 패킷 읽기가 가능하다.The input packets 411, 412, 413, and 414 stored in the common memory of the dual port memory buffer 209 may read the packet until the packet forwarding process 431, 432, 433, 434 based on the lookup results. , 442, 451, 452, 461, 462. However, since the packet header modification process (431, 432, 433, 434) for each packet ends at a certain time, periodic packet reading is possible after a certain time delay (401, 402, 403, 404) after packet input.

도 5는 도 2의 구조도와 도 4의 기능 흐름도에서 본 발명의 병렬처리형 3계층 패킷 포워딩 처리 장치의 처리 절차를 어드레스와 데이터 그리고 제어 신호 단위로 나타낸 것이다.FIG. 5 illustrates the processing procedure of the parallel processing type 3 layer packet forwarding processing apparatus of the present invention in the structure of FIG. 2 and the functional flow chart of FIG. 4 in units of address, data, and control signal.

쓰기 제어 신호(53)에 의해 저장되고 있는 입력패킷(51)의 MAC 헤더와 IP헤더 중 32비트 단위의 9번째 세그먼트인 목적지 IP 어드레스는(511) 룩업 검색의 입력 요소로 사용되어 룩업 제어기(204)로부터 출력포트 위치 및 패킷 상태정보를 실어주는 패킷의 헤더정보(561), 넥스트 홉 어드레스정보(562, 563)를 얻게 한다. 해당 패킷의 읽기(57)가 시작되기 전에 이들 정보와 IP 헤더의 TTL 감소정보(564), 체크섬 워드값 감소정보(565)가 헤더 삽입을 위해 한 칸씩 밀린 어드레스(541, 542, 543, 544, 545)로 쓰여진다.The MAC header of the input packet 51 stored in the write control signal 53 and the destination IP address, which is the ninth segment of the 32-bit unit of the IP header, are used as the input element of the lookup search (511). Packet header information 561 and next hop address information 562 and 563 carrying output port position and packet status information are obtained. Before the information 57 is started to be read, these information, the TTL decrement information 564 of the IP header, and the checksum word value decrement information 565 are pushed by one space for the header insertion (541, 542, 543, 544). 545).

이때, 라우팅 패킷처리 정보를 교체할 출력 패킷의 IP 헤더 번지(541, 542, 543, 544, 545)를 스트림 형태로 일시에 지정하고, 스트림(561,562,563,564,565)형태의 데이터를 일시에 교체 함으로써 시간단축과 포워딩 효율을 높인다.At this time, the IP header address 541, 542, 543, 544, 545 of the output packet to replace the routing packet processing information is temporarily designated in the form of a stream, and the data of the stream (561, 562, 563, 564, 565) is temporarily replaced. Increase forwarding efficiency.

이 과정의 완료에 이어 다시 추가로 삽입된 처음 번지로부터 패킷 데이터들(57)이 출력된다.After the completion of this process, packet data 57 is outputted from the first inserted address again.

상술한 바와 같이 본 발명에 의한 병렬처리형의 패킷 처리는 모든 과정을 하드웨어로 간결하게 구현하여 프로세서의 운영과 메모리의 복사에 의한 지연요인을 없애고, 매체 제어기로부터 입력되는 하나의 패킷 타임 슬롯(Slot) 내에 포워딩이 완료될 수 있도록 공용 메모리를 갖는 듀얼포트 메모리방식의 버퍼를 사용한 패킷 포워딩을 처리한다. 또한 버퍼에 저장된 출력 패킷에 대해 중재에 의한 포인터 조정으로 라우팅 결과에 대한 패킷 처리(쓰기)와 읽기가 같은 포트에서 일어나므로서 기존의 패킷처리 방식에서 부수적으로 들어갔던 메모리의 복사과정을 없앨 수 있다.As described above, the packet processing of the parallel processing according to the present invention implements all processes in hardware concisely, eliminating delay factors caused by the operation of the processor and copying of the memory, and one packet time slot inputted from the media controller. Packet forwarding using a dual-port memory type buffer with a common memory is processed so that forwarding can be completed. In addition, mediation of pointers to the output packets stored in the buffer allows packet processing (writing) and reading of the routing result to occur on the same port, thus eliminating the copying process of memory that has been incidental to the conventional packet processing. .

따라서 본 발명은 프로세싱 시간을 단축하여 기가비트 속도처리가 가능하게 하고, 룩업의 결과에 의한 패킷처리를 프로세서의 개입 과정이 없이 일정 시간지연내의 보장된 패킷처리를 가능하게 하며 입력 프로세싱과는 별도로 병렬 처리하게 함으로써 회로의 간단화를 통한 비용의 절감을 가져오는 효과가 있다.Therefore, the present invention enables processing of gigabit speed by shortening the processing time, and guarantees processing of packets within a certain time delay without processing of the processor by processing the packet by the result of the lookup and parallel processing separately from the input processing. By doing so, there is an effect of reducing the cost through the simplification of the circuit.

이상에서 본 발명에 대한 기술사상을 첨부도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술분야의 통상의 지식을 가진 자라면 누구나 본 발명의 기술사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.The technical spirit of the present invention has been described above with reference to the accompanying drawings, but this is by way of example only and not intended to limit the present invention. In addition, it is obvious that any person skilled in the art can make various modifications and imitations without departing from the scope of the technical idea of the present invention.

Claims (4)

기가비트 이더넷 기반 라우터에서의 패킷 포워딩 처리 장치에 있어서,In the packet forwarding processing apparatus in a gigabit Ethernet-based router, 프로세서의 개입이 필요없이 전체 라우팅 과정을 제어하는 패킷 라우팅 중앙 제어기(203);A packet routing central controller 203 for controlling the entire routing process without the need for processor intervention; 입력 패킷의 저장 포인터를 지정하는 패킷 쓰기 제어기(202);A packet write controller 202 for designating a storage pointer of an input packet; 상기 패킷 라우팅 중앙 제어기(203)의 요구에 의해 룩업 테이블(205)을 통해 목적지 IP 어드레스에 대한 룩업 검색을 하는 룩업 제어기(204);A lookup controller 204 for performing a lookup search for a destination IP address through a lookup table 205 at the request of the packet routing central controller 203; IP 어드레스에 대한 라우팅 정보를 저장하고 있는 룩업 테이블(205);A lookup table 205 that stores routing information for the IP address; 상기 패킷 라우팅 중앙 제어기(203)에서 현재 저장하고 있는 패킷의 시작번지를 제공받아 룩업결과에 의한 패킷 수정위치를 지정하는 패킷 수정 제어기(206);A packet modification controller 206 which receives a start address of a packet currently stored in the packet routing central controller 203 and designates a packet modification position based on a lookup result; 호스트로 읽어갈 패킷의 번지를 지정하는 패킷 읽기 제어기(207);A packet read controller 207 which designates the address of a packet to be read to the host; 상기 패킷 수정 제어기(206)와 패킷 읽기 제어기(207)에서 입력되는 수정쓰기 포인터와 읽기 포인터를 중재하는 포인터 중재기(208); 및A pointer arbiter (208) for arbitrating a modification write pointer and a read pointer input from the packet modification controller (206) and the packet read controller (207); And 기가비트 이더넷 매체 제어기(201)로부터 입력되는 패킷을 공용 데이터의 읽기와 쓰기를 서로 다른 포트에서 할 수 있는 양방향 듀얼포트 메모리로 된 버퍼(209)를 포함하여, 입력 패킷의 저장과 룩업 결과에 대한 패킷 수정 처리 및 출력 읽기를 병렬처리하는 것을 특징으로 하는 기가비트 이더넷 기반 라우터에서의 병렬처리형 3계층 패킷 포워딩 처리 장치.Packets for storing and looking up results of input packets, including a buffer 209 with bi-directional dual-port memory that allows packets input from Gigabit Ethernet media controller 201 to read and write common data on different ports. Parallel processing layer 3 packet forwarding apparatus in a gigabit Ethernet-based router, characterized in that the parallel processing of the correction process and the output read. 기가비트 이더넷 기반 라우터에서의 패킷 포워딩 처리 방법에 있어서,A packet forwarding method in a gigabit ethernet based router, 듀얼 포트 메모리를 입력 패킷을 저장하는 버퍼(209)로 사용하여 입력 패킷의 저장과 기가비트 와이어스피드를 보장하는 룩업 결과에 대한 패킷의 갱신을 서로 다른 포트를 통해 병렬처리함으로써 프로세서의 개입없이 일정 시간지연내에 포워딩 처리가 가능하도록 하여 기가비트 속도를 보장하고 패킷 포워딩 효율을 높이는 것을 특징으로 하는 기가비트 이더넷 기반 라우터에서의 병렬처리형 3계층 패킷 포워딩 처리 방법.The dual port memory is used as a buffer for storing the input packet, and the packet update is performed through different ports in parallel for the storage of the input packet and the update of the lookup result that guarantees gigabit wirespeed. A parallel processing-type three-layer packet forwarding processing method of a gigabit Ethernet-based router, which ensures gigabit speed and improves packet forwarding efficiency by enabling forwarding processing in the network. 제2항에 있어서,The method of claim 2, 기가비트 이더넷 매체 제어기(201)에서 입력되는 패킷을 듀얼 포트 메모리로 구성된 버퍼(209)에 저장하면서 목적지 IP 어드레스가 저장되는 시점을 모니터링하고,Monitoring the time point at which the destination IP address is stored while storing the packet input from the Gigabit Ethernet media controller 201 in the buffer 209 configured with the dual port memory, 목적지 IP 어드레스가 저장되는 시점이 되면 패킷 저장과는 별도로 패킷라우팅 중앙 제어기(203)는 룩업제어기(204)에게 목적지 IP 어드레스를 넘겨주어 룩업 처리를 요구하며,When the destination IP address is stored, the packet routing central controller 203 passes the destination IP address to the lookup controller 204 and requests a lookup process separately from storing the packet. 이에 룩업 제어기(204)는 프로세서나 하드웨어에 의한 방법으로 룩업테이블(205)을 통해 목적지 IP 어드레스에 의한 실시간 룩업검색한 결과를 패킷라우팅 중앙 제어기(203)에게 전달하고,The lookup controller 204 transfers the result of the real-time lookup search by the destination IP address to the packet routing central controller 203 through the lookup table 205 by a processor or a hardware method. 패킷 수정 제어기(206)는 패킷 읽기 제어기(206)의 동작을 중단시키고, 패킷라우팅 중앙 제어기(203)로부터 전달받은 현재 버퍼(209)에 저장하고 있는 패킷 스트림의 시작 번지를 참조하여, 패킷 쓰기 제어기(202)가 사용하지 않는 다른 포트를 이용하여 라우팅 패킷을 수정 처리(쓰기)한 후, 패킷 읽기 제어기(206)의 동작을 재개시켜 패킷 읽기를 수행하며,The packet modification controller 206 stops the operation of the packet read controller 206 and refers to the start address of the packet stream stored in the current buffer 209 received from the packet routing central controller 203, and thus the packet write controller. After modifying (writing) the routing packet using another port not used by 202, the operation of the packet read controller 206 is resumed to perform a packet read, 이때 라우팅 패킷의 수정 처리는 해당 패킷의 읽기가 시작되기 전에 왼료되도록 하는 것을 특징으로 하는 기가비트 이더넷 기반 라우터에서의 병렬처리형 3계층 패킷 포워딩 처리 방법.In this case, the modification process of the routing packet is completed before the start of reading the packet, parallel processing type 3 packet forwarding processing method in a gigabit Ethernet-based router. 제3항에 있어서,The method of claim 3, 상기 라우팅 패킷 수정시에 라우팅 패킷처리 정보를 수정할 출력 패킷의 IP 헤더 번지를 스트림 형태로 일시에 지정하고, 스트림형태의 라우팅 패킷 수정 데이터를 일시에 교체 함으로써 시간단축과 포워딩 효율을 높이는 것을 특징으로 하는 기가비트 이더넷 기반 라우터에서의 병렬처리형 3계층 패킷 포워딩 처리 방법.When the routing packet is modified, the IP header address of the output packet to modify the routing packet processing information is temporarily designated in the form of a stream, and the routing packet modification data of the stream form is temporarily replaced, thereby improving time reduction and forwarding efficiency. Parallel Layer 3 Packet Forwarding Processing Method in Gigabit Ethernet-based Router.
KR1020000003493A 2000-01-25 2000-01-25 Layer3 packet forwarding handling method and apparatus in gigabit Ethernet based router KR100317991B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000003493A KR100317991B1 (en) 2000-01-25 2000-01-25 Layer3 packet forwarding handling method and apparatus in gigabit Ethernet based router

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000003493A KR100317991B1 (en) 2000-01-25 2000-01-25 Layer3 packet forwarding handling method and apparatus in gigabit Ethernet based router

Publications (2)

Publication Number Publication Date
KR20010076079A KR20010076079A (en) 2001-08-11
KR100317991B1 true KR100317991B1 (en) 2001-12-22

Family

ID=19641322

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000003493A KR100317991B1 (en) 2000-01-25 2000-01-25 Layer3 packet forwarding handling method and apparatus in gigabit Ethernet based router

Country Status (1)

Country Link
KR (1) KR100317991B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100456671B1 (en) * 2001-11-24 2004-11-10 주식회사 케이티 Parallel lookup engine and method for fast packet forwarding in network router

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100798926B1 (en) 2006-12-04 2008-01-29 한국전자통신연구원 Apparatus and method for forwarding packet in packet switch system
KR100739222B1 (en) * 2007-02-07 2007-07-13 어헤드컴(주) Ethernet based industrial communication system for using dual buffer
US8407367B2 (en) * 2007-12-26 2013-03-26 Intel Corporation Unified connector architecture
US8700821B2 (en) 2008-08-22 2014-04-15 Intel Corporation Unified multi-transport medium connector architecture
US9565132B2 (en) 2011-12-27 2017-02-07 Intel Corporation Multi-protocol I/O interconnect including a switching fabric
US9252970B2 (en) 2011-12-27 2016-02-02 Intel Corporation Multi-protocol I/O interconnect architecture
US8856420B2 (en) 2011-12-27 2014-10-07 Intel Corporation Multi-protocol I/O interconnect flow control
US8953644B2 (en) 2011-12-27 2015-02-10 Intel Corporation Multi-protocol I/O interconnect time synchronization
US8775713B2 (en) 2011-12-27 2014-07-08 Intel Corporation Multi-protocol tunneling over an I/O interconnect
US9697159B2 (en) 2011-12-27 2017-07-04 Intel Corporation Multi-protocol I/O interconnect time synchronization
US8782321B2 (en) 2012-02-08 2014-07-15 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US8880923B2 (en) 2012-03-29 2014-11-04 Intel Corporation Link power management in an I/O interconnect
CN105635000B (en) * 2015-12-30 2019-02-01 华为技术有限公司 A kind of message storage forwarding method and circuit and equipment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333270A (en) * 1992-12-29 1994-07-26 National Semiconductor Corporation FDDI configuration management state machine controller
JPH07320419A (en) * 1994-05-25 1995-12-08 Toshiba Corp Device for converting bit stream into byte
KR950035184A (en) * 1994-05-12 1995-12-30 이헌조 Synchronous Error Compensation Circuit of Serial Bit Stream
JPH08237293A (en) * 1995-02-24 1996-09-13 Hitachi Cable Ltd Frame relay router
JPH0998189A (en) * 1995-09-29 1997-04-08 Toshiba Corp Network repeater system
KR970024725A (en) * 1995-10-17 1997-05-30 정장호 High speed data exchange device in ethernet system
KR19990011174A (en) * 1997-07-22 1999-02-18 윤종용 Parallel Data Transmission Method in Fast Ethernet

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333270A (en) * 1992-12-29 1994-07-26 National Semiconductor Corporation FDDI configuration management state machine controller
KR950035184A (en) * 1994-05-12 1995-12-30 이헌조 Synchronous Error Compensation Circuit of Serial Bit Stream
JPH07320419A (en) * 1994-05-25 1995-12-08 Toshiba Corp Device for converting bit stream into byte
JPH08237293A (en) * 1995-02-24 1996-09-13 Hitachi Cable Ltd Frame relay router
JPH0998189A (en) * 1995-09-29 1997-04-08 Toshiba Corp Network repeater system
KR970024725A (en) * 1995-10-17 1997-05-30 정장호 High speed data exchange device in ethernet system
KR19990011174A (en) * 1997-07-22 1999-02-18 윤종용 Parallel Data Transmission Method in Fast Ethernet

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100456671B1 (en) * 2001-11-24 2004-11-10 주식회사 케이티 Parallel lookup engine and method for fast packet forwarding in network router

Also Published As

Publication number Publication date
KR20010076079A (en) 2001-08-11

Similar Documents

Publication Publication Date Title
US6847645B1 (en) Method and apparatus for controlling packet header buffer wrap around in a forwarding engine of an intermediate network node
JP3777161B2 (en) Efficient processing of multicast transmission
US6128666A (en) Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine
US10778612B2 (en) Variable TCAM actions
US7017020B2 (en) Apparatus and method for optimizing access to memory
US7065050B1 (en) Apparatus and method for controlling data flow in a network switch
US6032190A (en) System and method for processing data packets
US6731652B2 (en) Dynamic packet processor architecture
US7480310B2 (en) Flexible DMA descriptor support
US6643261B2 (en) High performance self balancing low cost network switching architecture based on distributed hierarchical shared memory
KR100317991B1 (en) Layer3 packet forwarding handling method and apparatus in gigabit Ethernet based router
US6246680B1 (en) Highly integrated multi-layer switch element architecture
US6430188B1 (en) Unified table for L2, L3, L4, switching and filtering
US6732184B1 (en) Address table overflow management in a network switch
US7688825B2 (en) Filtering frames at an input port of a switch
US7248586B1 (en) Packet forwarding throughput with partial packet ordering
US6813620B2 (en) Binary search engine and method
US10284502B2 (en) Dynamic optimization for IP forwarding performance
US10938720B2 (en) Network element with improved cache flushing
KR100441033B1 (en) Switching database cache management system
EP1507368A1 (en) High speed pipeline architecture with high update rate of associated memories

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: 20101201

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee