KR20060005936A - Apparatus and method for optimizing lookup memory in routing system - Google Patents

Apparatus and method for optimizing lookup memory in routing system Download PDF

Info

Publication number
KR20060005936A
KR20060005936A KR1020040054940A KR20040054940A KR20060005936A KR 20060005936 A KR20060005936 A KR 20060005936A KR 1020040054940 A KR1020040054940 A KR 1020040054940A KR 20040054940 A KR20040054940 A KR 20040054940A KR 20060005936 A KR20060005936 A KR 20060005936A
Authority
KR
South Korea
Prior art keywords
information
packet
address
routing system
destination
Prior art date
Application number
KR1020040054940A
Other languages
Korean (ko)
Other versions
KR100590891B1 (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 KR1020040054940A priority Critical patent/KR100590891B1/en
Publication of KR20060005936A publication Critical patent/KR20060005936A/en
Application granted granted Critical
Publication of KR100590891B1 publication Critical patent/KR100590891B1/en

Links

Images

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/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 라우팅 시스템의 룩업메모리에 관한 것으로, 상기 라우팅 시스템의 초기화 시, 상기 룩업메모리를 적어도 하나 이상의 영역으로 분할하고, 패킷의 포워딩 여부를 결정하기 위한 액세스 제어 리스트 정보의 추가 요청이 있는 경우, 상기 액세스 제어 리스트 정보를 상기 룩업메모리의 분할된 영역에 분류하여 저장하여 룩업메모리에 저장되는 엔트리(entry) 수를 최적화시킴으로써 룩업메모리의 낭비를 줄이는 룩업메모리 최적화 장치 및 그 방법을 제안한다.The present invention relates to a lookup memory of a routing system. When the routing system is initialized, when the lookup memory is divided into at least one or more areas, and there is a request for adding access control list information for determining whether to forward a packet, A device and method for optimizing a look-up memory for reducing the waste of look-up memory by classifying and storing the access control list information in a divided area of the look-up memory and optimizing the number of entries stored in the look-up memory.

라우팅 시스템, 룩업메모리, 최적화, 엔트리, TCAM, ZBT SRAMRouting System, Lookup Memory, Optimization, Entry, TCAM, ZBT SRAM

Description

라우팅 시스템의 룩업메모리 최적화장치 및 그 방법{APPARATUS AND METHOD FOR OPTIMIZING LOOKUP MEMORY IN ROUTING SYSTEM} Apparatus and method for optimizing lookup memory of routing system {APPARATUS AND METHOD FOR OPTIMIZING LOOKUP MEMORY IN ROUTING SYSTEM}

도 1은 종래 라우팅 시스템을 나타내는 도면.1 is a diagram illustrating a conventional routing system.

도 2는 종래 라우팅 시스템의 메모리간의 연결관계를 나타내는 도면.2 is a diagram illustrating a connection relationship between memories of a conventional routing system.

도 3은 종래 라우팅 시스템의 메모리에서 확장된 엔트리의 일 예를 나타내는 도면.3 illustrates an example of an entry expanded in a memory of a conventional routing system.

도 4는 본 발명의 일 실시예에 따른 라우팅 시스템의 룩업메모리 최적화 장치를 나타내는 도면.4 illustrates a lookup memory optimization apparatus of a routing system according to an exemplary embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 룩업메모리 최적화 장치에서 메모리간의 연결관계를 나타내는 도면.5 is a diagram illustrating a connection relationship between memories in a look-up memory optimization apparatus according to an exemplary embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 룩업메모리 최적화 장치의 엔트리 추가방법과 상응하는 동작 플로우챠트를 나타내는 도면.6 is a flowchart illustrating an operation flowchart corresponding to a method for adding an entry of a look-up memory optimizer according to an exemplary embodiment of the present invention.

도 7a 내지 도 7b는 도 6에 도시된 룩업메모리 최적화 장치의 엔트리 추가동작을 수행하는 과정에서 발생되는 정보를 나타내는 도면.7A to 7B are diagrams illustrating information generated in the process of performing an entry addition operation of the lookup memory optimizer illustrated in FIG. 6.

도 8은 본 발명의 일 실시예에 따른 룩업메모리의 최적화 장치의 룩업처리동작과 상응하는 동작 플로우챠트를 나타내는 도면.8 is a flowchart illustrating an operation flowchart corresponding to a lookup processing operation of the apparatus for optimizing a lookup memory according to an exemplary embodiment of the present invention.

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

400 : 네트워크 프로세서 402 : 인터페이스부400: network processor 402: interface unit

404 : 엔트리 관리부 406 : 제어부404: entry management unit 406: control unit

408 : 룩업 처리부 410 :TCAM408: lookup processing unit 410: TCAM

412 : 제1저장부 414 : 제2저장부412: first storage unit 414: second storage unit

420 : 보조메모리 422 : 제1보조 저장부420: auxiliary memory 422: first auxiliary storage

424 : 제2보조 저장부424: secondary storage unit

본 발명은 라우팅 시스템의 룩업메모리 최적화에 관한 것으로, 더욱 상세히는 룩업 메모리에 저장되는 라우팅 엔트리(entry) 수를 최적화시킴으로써 룩업 메모리의 낭비를 줄이는 룩업메모리 최적화 장치 및 그 방법에 관한 것이다.The present invention relates to lookup memory optimization of a routing system, and more particularly, to a lookup memory optimization apparatus and method for reducing the waste of lookup memory by optimizing the number of routing entries stored in the lookup memory.

현재 고속 라우터의 개발을 위해서 제안되고 있는 IP 룩업 기술은 크게 내용 주소 메모리(Content Addressable Memory;이하, "CAM"이라 칭함)나 캐싱(cashing), 라지 메모리(large memory) 구조를 이용하는 하드웨어를 기반으로 하는 기술과, LC(Level Compressed)트리(trie), 해싱(hashing), 멀티비트 트리(multi-bit trie)와 같은 소프트웨어를 기반으로 하는 기술로 나눌 수 있다. 소프트웨어에 의한 IP 주소 룩업의 구현은 보다 유연하고 프로토콜의 수정으로 쉽게 적용될 수 있는 장점 은 가지고 있지만, 고속의 패킷 처리속도에서 하드웨어 기반의 IP 룩업기술보다는 느린 단점이 있다. 이에 따라 오늘날 주된 라우터 벤더(vender)들은 하드웨어에 의해 IP 주소 룩업을 행하는 고속 라우터를 생산하고 있다.The IP lookup technology currently proposed for the development of a high-speed router is largely based on hardware using a content addressable memory (hereinafter referred to as "CAM"), caching, and large memory structures. And technology based on software such as LC (Level Compressed) tree, hashing, and multi-bit trie. The implementation of IP address lookup by software has the advantage of being more flexible and easily applied by modification of protocol. However, it has the disadvantage of being slower than hardware-based IP lookup technology at high packet throughput. As a result, today's major router vendors produce high-speed routers that perform IP address lookups by hardware.

하드웨어에 의한 IP 룩업 기능을 구현하기 위해 사용되는 CAM은 정확한 매치(match)검색 동작을 하나의 클럭 주기에 실행한다. CAM은 입력되는 검색 키(search key)를 CAM 내의 모든 엔트리들, 즉 CAM 내에서 물리적으로 분할된 세그먼트들에 저장된 모든 요소들과 병렬로 비교하고, 그 결과로서, 검색키와 매칭된 요소가 저장된 물리적 세그먼트들의 주소를 출력한다. 이때 매칭된 요소와 관련된 어떤 데이터가 있다면, 이 데이터 또한 출력된다. 이처럼 CAM은 검색키를 CAM 내의 모든 엔트리들과 병렬로 비교하여 출력함으로써 신속한 검색이 가능하게 되는데, 통상적으로 10 ~ 20ns 이내의 매우 짧은 잠재(latency) 시간이 소요된다.Used to implement the IP lookup function by hardware, the CAM performs the exact match search operation in one clock cycle. The CAM compares the input search key in parallel with all entries in the CAM, i.e. all elements stored in segments physically partitioned within the CAM, and as a result, the element matching the search key is stored. Print the addresses of the physical segments. If there is any data related to the matched element, this data is also output. In this way, the CAM can be quickly searched by comparing the search key with all entries in the CAM in parallel and outputting them, which typically takes a very short latency time of 10 to 20 ns.

한편, 터너리(ternary) CAM은 입력되는 검색키를 여러 가지 길이의 저장요소들과 비교가 가능한 좀 더 유연한 CAM의 한 종류이고, 3가지 상태 즉, 로직 '1'상태, 로직 '0'상태, 그리고 '돈 캐어(don't care)'상태를 이용하여 정보를 저장한다. On the other hand, the ternary CAM is a kind of more flexible CAM that can compare the input search key with the storage elements of various lengths, and has three states: logic '1' state and logic '0' state. And store information using a 'don't care' state.

이러한, 터너리 CAM을 이용한 종래 라우팅 시스템이 도 1에 도시되어 있다.A conventional routing system using such a ternary CAM is shown in FIG. 1.

도 1에 도시된 바와 같이, 종래 라우팅 시스템은, 네트워크 프로세서(100), 터너리 CAM(110), 보조메모리(120)를 포함한다.As shown in FIG. 1, the conventional routing system includes a network processor 100, a ternary CAM 110, and an auxiliary memory 120.

네트워크 프로세서(100)는 인터페이스부(102), 엔트리 관리부(104), 룩업 처리부(106)를 포함한다.The network processor 100 includes an interface unit 102, an entry management unit 104, and a lookup processing unit 106.

인터페이스부(102)는 사용자로부터 CLI(Command Line Interface)를 통하여 입력된 접근제어리스트(Access Control List;이하, "ACL"이라 칭함) 정보와 터너리 CAM(110)에 임의의 ACL을 추가/삭제하기 위한 정보를 포함한 엔트리 관리정보를 엔트리 관리부(104)에 제공한다. 여기서, ACL은 라우팅 시스템으로 전송된 패킷의 포워딩 여부를 결정하기 위한 정보를 나타내며, ACL에 포함되는 정보는 사용자의 필요에 따라 달라질 수 있다. 예로, ACL은 소스 IP 주소, 목적 IP 주소, 수신 포트번호, 송신 포트번호, 프로토콜종류, 패킷의 포워딩 여부에 대한 정보를 포함할 수 있지만, 여기에 한정되는 것은 아니다. The interface unit 102 adds / deletes arbitrary ACLs to the access control list (hereinafter referred to as "ACL") information and the ternary CAM 110 inputted from a user through a command line interface (CLI). The entry management information 104 including the information to be provided is provided to the entry management unit 104. Here, the ACL represents information for determining whether to forward the packet transmitted to the routing system, and the information included in the ACL may vary according to a user's needs. For example, the ACL may include information about a source IP address, a destination IP address, a reception port number, a transmission port number, a protocol type, and packet forwarding, but is not limited thereto.

엔트리 관리부(104)는 인터페이스부(102)에서 제공된 엔트리 관리정보가 임의의 ACL을 추가하기 위한 정보인 경우, 사용자로부터 CLI를 통하여 입력된 ACL을 터너리 CAM(110)의 엔트리 포맷으로 변환하여 터너리 CAM(110)에 저장한다. 한편, 엔트리 관리부(104)는 인터페이스부(102)에서 제공된 엔트리 관리정보가 터너리 CAM(110)에 저장된 임의의 ACL을 삭제하기 위한 정보인 경우, 터너리 CAM(110)에 저장된 해당 ACL를 삭제한다.When the entry management information provided by the interface unit 102 is information for adding an arbitrary ACL, the entry management unit 104 converts the ACL input from the user through the CLI into the entry format of the ternary CAM 110 and then turns it. Store it in the CAM 110. Meanwhile, when the entry management information provided by the interface unit 102 is information for deleting any ACL stored in the ternary CAM 110, the entry manager 104 deletes the corresponding ACL stored in the ternary CAM 110. do.

룩업 처리부(106)는 패킷이 수신된 경우, 미리 설정된 ACL의 엔트리 포맷에 맞춰 수신된 패킷을 분류한 다음, 분류된 수신 패킷의 ACL을 이용하여 수신된 패킷의 포워딩 여부를 검사하기 위해 터너리 CAM(110)과 보조메모리(120)를 룩업 한다.When the packet is received, the lookup processor 106 classifies the received packet according to an entry format of a preset ACL, and then uses a ACL of the classified received packet to check whether the received packet is forwarded or not. Look up 110 and the auxiliary memory 120.

룩업 처리부(106)는 이렇게 터너리 CAM(110)과 보조메모리(120)를 룩업 결과 얻어진 수신 패킷의 포워딩 여부 정보에 따라 패킷 포워딩 여부를 결정한다. The lookup processor 106 determines whether to forward the ternary CAM 110 and the auxiliary memory 120 according to the forwarding information of the received packet obtained as a result of the lookup.

터너리 CAM(110)은 적어도 하나 이상의 ACL을 저장하고 있으며, 보조메모리 (120)는 상기 ACL에 대응되는 패킷의 포워딩 여부에 대한 정보를 포함하는 패킷 포워딩 정보가 저장되어 있으며, ZBT(Zero Bus Turnaround) SRAM으로 구현될 수 있다. 여기에서 패킷의 포워딩 여부에 대한 정보는 네트워크 프로세서로 수신된 패킷에 대하여 포워딩의 허가(permit)/거부(deny)에 대한 정보를 포함한다. The ternary CAM 110 stores at least one ACL, and the auxiliary memory 120 stores packet forwarding information including information on whether to forward a packet corresponding to the ACL, and ZBT (Zero Bus Turnaround). ) May be implemented as SRAM. The information on whether the packet is forwarded includes information on permit / deny of forwarding of the packet received by the network processor.

터너리 CAM(110)과 보조메모리(120)와 연결관계를 나타내는 도면이 도 2에 도시되어 있다. 2 is a diagram illustrating a connection relationship between the ternary CAM 110 and the auxiliary memory 120.

도 2에 도시된 바와 같이, 터너리 CAM(110)의 ACL과 보조메모리(120)의 패킷 포워딩 정보는 각각 대응되어 있으며, 터너리 CAM(110)에 저장되는 ACL 엔트리는 패킷이 생성된 소스 IP주소, 패킷이 최종적으로 전송될 목적 IP 주소, 소스 IP 주소로부터 패킷이 수신된 네트워크 프로세서(100)의 포트번호를 나타내는 소스포트번호, 네트워크 프로세서(110)로부터 목적지 IP 주소로 패킷이 전송될 포트번호를 나타내는 목적포트번호, 소스 IP 주소의 단말과 목적지 IP 주소의 단말 사이에 패킷의 전송이 이루어지도록 하기 위한 프로토콜 정보를 포함하고 있다. As shown in FIG. 2, the ACL of the ternary CAM 110 and the packet forwarding information of the auxiliary memory 120 correspond to each other, and the ACL entry stored in the ternary CAM 110 corresponds to the source IP from which the packet is generated. Source port number indicating the address, the destination IP address to which the packet is finally transmitted, the port number of the network processor 100 from which the packet was received, and the port number to which the packet is to be transmitted from the network processor 110 to the destination IP address. It includes a destination port number, indicating the protocol information for the packet transmission between the terminal of the source IP address and the terminal of the destination IP address.

그리고, 도 2에 도시된 ACL 엔트리 중, 소스포트번호와 목적포트번호는 각각 16비트로 표현할 수 있다. 따라서, 소스포트번호와 목적포트번호는 각각 65536(216)개 존재할 수 있다. In the ACL entry shown in FIG. 2, the source port number and the destination port number can be represented by 16 bits, respectively. Therefore, there may be 65536 (2 16 ) source port numbers and destination port numbers, respectively.

도 3은 도 2에 도시된 ACL 엔트리 중, 각각 65536개인 소스포트번호와 목적 포트번호가 엔트리 확장을 통하여 30개로 감소된 터너리 CAM(110)의 엔트리를 나타내는 도면이다.FIG. 3 is a view showing entries of the ternary CAM 110 in which the 65536 individual source port numbers and destination port numbers are reduced to 30 through entry expansion among the ACL entries shown in FIG.

도 3을 참조하면, 소스포트 번호범위/목적포트 번호범위가 1 ~ 65534인 경우, 즉 소스포트/목적포트가 65535개 존재하는 경우, 하나의 ACL에 대해 소스포트 엔트리/목적포트 엔트리가 각각 30개씩 존재할 수 있음을 나타낸다. 예로, 두 번째 엔트리는 "000000000000001x"로 표현되는데, 이는 "0000000000000010"과 "0000000000000011"의 각각 최하위 비트 논리 '0'과 논리 '1'이 돈 캐어(don't care) 처리되는 과정을 거쳐서 얻어짐을 나타낸다. 결국, 하나의 ACL 대해서 터너리 CAM(110)에 900개(소스포트 엔트리 30개 ×목적포트 엔트리 30개)의 엔트리가 존재할 수 있음을 나타낸다. 터너리 CAM(110)에 저장된 ACL의 엔트리는 소스 IP주소, 목적 IP주소, 소스/목적 포트번호, 프로토콜의 5개 터플(tuple)로 구성되어 있고, 총 104비트이다. 따라서 도 2에 도시된 바와 같은 ACL의 엔트리는 터너리 CAM(110)에서 '104 ×900(93600)' 비트만큼의 공간을 차지할 수 있다. Referring to FIG. 3, when the source port number range / destination port number range is 1 to 65534, that is, when there are 65535 source port / destination ports, the source port entry / target port entry is 30 for each ACL. It can be present in pieces. For example, the second entry is represented as "000000000000001x", which indicates that the least significant bit logic '0' and logic '1' of "0000000000000010" and "0000000000000011" are obtained through don't care. Indicates. As a result, 900 entries (30 source port entries x 30 destination port entries) may exist in the ternary CAM 110 for one ACL. The ACL entry stored in the ternary CAM 110 is composed of five tuples of a source IP address, a destination IP address, a source / destination port number, and a protocol, and total 104 bits. Accordingly, the entry of the ACL as shown in FIG. 2 may occupy as much as '104 x 900 (93600)' bits in the ternary CAM 110.

그런데, ACL 엔트리의 5개 터플 중, 소스 IP주소, 목적 IP주소, 프로토콜의 경우는 확장된 엔트리에도 동일하게 적용되므로 터너리 CAM(110)에서 '72 ×900(64800)' 비트만큼의 메모리 영역낭비를 가져올 수 있다. 이 경우는 IPv4에 해당되는 경우이고, IPv6에 적용되는 경우에는 소스 IP주소(128비트), 목적 IP주소(128비트), 프로토콜(8비트)을 지원해야 하므로 터너리 CAM(110)에서 낭비되는 메모리 영역이 더 많아지게 된다.However, among the five tuples of ACL entries, the source IP address, the destination IP address, and the protocol are equally applicable to the expanded entry, so the memory area of '72 x 900 (64800) 'bits in the ternary CAM 110 is applied. It can be a waste. This case is the case of IPv4, and when applied to IPv6, the source IP address (128 bits), the destination IP address (128 bits), and the protocol (8 bits) must be supported, which is wasted in the ternary CAM 110. There will be more memory areas.

따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 창안된 것으로, 룩업 메모리에 저장되는 라우팅 엔트리(entry) 수를 최적화시킴으로써 룩업 메모리의 낭비를 줄이는 룩업메모리 최적화 장치 및 그 방법을 제공하는 것에 그 목적이 있다.
Accordingly, an object of the present invention is to provide a look-up memory optimization apparatus and method for reducing the waste of look-up memory by optimizing the number of routing entries stored in the look-up memory. There is this.

상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 룩업메모리를 포함한 라우팅 시스템에서 룩업메모리 최적화 방법은, 상기 라우팅 시스템의 초기화 시, 상기 룩업메모리를 적어도 하나 이상의 영역으로 분할하는 단계, 패킷의 포워딩 여부를 결정하기 위한 액세스 제어 리스트 정보의 추가 요청이 있는 경우, 상기 액세스 제어 리스트 정보를 상기 룩업메모리의 분할된 영역에 분류하여 저장하는 단계, 임의의 패킷이 수신된 경우, 상기 영역 분할된 룩업메모리에 저장된 액세스 제어 리스트 정보를 이용하여 상기 수신된 패킷의 포워딩을 처리하는 단계를 포함한다.In the routing system including a look-up memory according to an aspect of the present invention for achieving the above object, the method for optimizing the look-up memory, during initialization of the routing system, partitioning the look-up memory into at least one area, whether the packet forwarding Classifying and storing the access control list information in the divided region of the lookup memory when there is a request for addition of the access control list information for determining Processing forwarding of the received packet using stored access control list information.

상기 액세스 제어 리스트 정보는, 상기 패킷이 생성된 소스 IP 주소정보, 상기 패킷이 전송될 목적 IP 주소정보, 상기 패킷이 라우팅 시스템으로 수신된 포트의 번호를 나타내는 수신포트정보, 상기 패킷이 라우팅 시스템으로부터 다음 경로로 전송되기 위한 포트의 번호를 나타내는 목적포트정보, 상기 소스 IP 주소의 단말과 목적 IP 주소의 단말간의 통신을 위한 프로토콜 정보, 상기 액세스 제어 리스트 정보를 식별하기 위한 식별자 정보, 상기 패킷이 상기 라우팅 시스템에서 다음 경로로의 포워딩 진행여부를 나타내는 포워딩 진행 정보 중 적어도 어느 하나를 포함한다.The access control list information includes source IP address information from which the packet is generated, destination IP address information to which the packet is to be transmitted, reception port information indicating a port number at which the packet is received by the routing system, and the packet from the routing system. Destination port information indicating a port number for transmission to a next path, protocol information for communication between a terminal of the source IP address and a terminal of the destination IP address, identifier information for identifying the access control list information, and the packet At least one of forwarding progress information indicating whether forwarding to the next path in the routing system.

상기 액세스 제어 리스트 정보를 상기 룩업메모리의 분할된 영역에 분류하여 저장하는 단계는, 상기 소스 IP 주소, 목적 IP 주소, 프로토콜 정보 중 적어도 어느 하나를 상기 룩업메모리의 제1영역에 저장하는 단계, 상기 식별자 정보, 소스 포트정보, 목적 포트정보 중 적어도 어느 하나를 상기 룩업메모리의 제2영역에 저장하는 단계, 상기 식별자 정보를 상기 룩업메모리의 제3영역에 저장하는 단계, 상기 패킷의 포워딩 진행정보를 상기 룩업메모리의 제4영역에 저장하는 단계를 포함한다.The classifying and storing the access control list information in a divided area of the lookup memory may include storing at least one of the source IP address, a destination IP address, and protocol information in a first area of the lookup memory. Storing at least one of identifier information, source port information, and destination port information in a second area of the lookup memory, storing the identifier information in a third area of the lookup memory, and forwarding progress information of the packet. And storing the fourth area of the lookup memory.

상기 본 발명의 일 측면에 따른 룩업메모리 최적화 방법은, 상기 수신된 액세스 제어 리스트 정보 중 소스/목적 포트의 범위가 존재하는지를 검사하는 단계, 상기 소스/목적 포트의 범위가 존재하는 경우, 상기 소스/목적 포트의 범위에 따른 룩업메모리에 저장될 상기 액세스 제어 리스트의 엔트리 수를 결정하는 단계를 더 포함할 수 있다.The method for optimizing a lookup memory according to an aspect of the present invention may include checking whether a range of a source / destination port exists in the received access control list information, and when the range of the source / destination port exists, The method may further include determining the number of entries of the access control list to be stored in the lookup memory according to the range of the target port.

상기 포워딩을 처리하는 단계는, 상기 수신된 패킷의 송수신 정보와 일치하는 정보가 상기 룩업메모리의 제1영역에 있는지를 검사하는 단계, 상기 수신된 패킷의 송수신정보와 일치하는 정보가 있는 경우, 상기 송수신정보와 일치된 제1영역의 정보와 맵핑되는 제3영역의 식별자 정보가 포함된 상기 라우팅 시스템의 인터페이스 정보가 제2영역에 있는지를 검사하는 단계, 상기 라우팅 시스템의 인터페이스 정보가 있는 경우, 상기 라우팅 시스템의 인터페이스 정보와 맵핑되는 제4영역에 저장된 패킷 포워딩 진행정보에 따라 상기 수신된 패킷의 포워딩을 처리하는 단계를 포함한다.The processing of forwarding may include checking whether information matching the transmission / reception information of the received packet is in the first area of the lookup memory, and if there is information matching the transmission / reception information of the received packet, Checking whether the interface information of the routing system including the identifier information of the third region mapped to the information of the first region matched with the transmission / reception information exists in the second region, and if there is interface information of the routing system, And processing the forwarding of the received packet according to the packet forwarding progress information stored in the fourth region mapped with the interface information of the routing system.

상기 수신된 패킷의 송수신 정보는, 상기 패킷이 생성된 소스 IP 주소정보, 상기 패킷이 전송될 목적 IP 주소정보, 상기 소스 IP 주소의 단말과 목적 IP 주소의 단말 사이의 통신을 위한 프로토콜 정보 중 적어도 어느 하나를 포함한다.Transmitting and receiving information of the received packet may include at least one of source IP address information from which the packet is generated, destination IP address information to which the packet is transmitted, and protocol information for communication between the terminal of the source IP address and the terminal of the destination IP address. It includes either.

상기 라우팅 시스템의 인터페이스 정보는, 상기 식별자 정보, 상기 패킷이 라우팅 시스템으로 수신된 포트의 번호를 나타내는 수신포트정보, 상기 패킷이 라우팅 시스템으로부터 다음 경로로 전송되기 위한 포트의 번호를 나타내는 목적포트정보 중 적어도 어느 하나를 포함한다.The interface information of the routing system is selected from among the identifier information, reception port information indicating a port number at which the packet is received by the routing system, and destination port information indicating a port number for the packet from the routing system to the next path. It includes at least one.

한편, 본 발명의 일 측면에 따른 메모리는, 적어도 하나 이상의 패킷의 송수신 주소정보를 저장하는 제1영역과, 상기 패킷이 송신지로부터 수신지로 전송되기 위해서 경유하는 네트워크 인터페이스 정보를 저장하는 제2영역을 포함하는 제1저장부, 상기 제1저장부의 제1영역에 저장된 송수신 주소정보와 맵핑되고, 상기 송수신 주소정보와 대응되는 네트워크 인터페이스 정보를 검색하기 위한 식별자 정보를 저장하는 제1영역과, 상기 제1저장부의 제2영역에 저장된 네트워크 인터페이스 정보와 맵핑되고, 상기 네트워크 인터페이스로 수신된 패킷의 포워딩 진행여부에 대한 정보를 저장하는 제2영역을 포함하는 제2저장부를 포함한다.On the other hand, the memory according to an aspect of the present invention, the first area for storing the transmission and reception address information of at least one packet, and the second area for storing the network interface information via the packet to be transmitted from the source to the destination A first storage unit comprising: a first region mapped with the transmission / reception address information stored in the first region of the first storage unit, and storing identifier information for retrieving network interface information corresponding to the transmission / reception address information; And a second storage unit mapped to the network interface information stored in the second area of the first storage unit and including a second area for storing information on whether to forward the packet received through the network interface.

상기 패킷의 송수신 정보는, 상기 패킷이 생성된 소스 IP 주소정보, 상기 패 킷이 전송될 목적 IP 주소정보, 상기 소스 IP 주소에 위치한 단말과 목적 IP 주소에 위치한 단말간의 통신을 위한 프로토콜 정보 중 적어도 어느 하나를 포함한다.The transmission / reception information of the packet may include at least one of source IP address information from which the packet is generated, destination IP address information to which the packet is transmitted, and protocol information for communication between a terminal located at the source IP address and a terminal located at the destination IP address. It includes either.

상기 네트워크 인터페이스 정보는, 상기 식별자 정보, 상기 패킷이 네트워크 인터페이스로 수신된 포트정보, 상기 패킷이 네트워크 인터페이스로부터 전송될 포트정보 중 적어도 어느 하나를 포함한다.The network interface information includes at least one of the identifier information, port information on which the packet is received through a network interface, and port information on which the packet is transmitted from a network interface.

상기 수신된 패킷의 포워딩 진행여부에 대한 정보는, 상기 수신된 패킷이 상기 네트워크 인터페이스에서 다음 경로로의 전송허가 또는 전송거부 중 적어도 어느 하나일 수 있다.The information on whether the received packet is forwarded may be at least one of whether the received packet is allowed to transmit to the next path or not at the network interface.

상기 제1저장부는 터너리 캠(Ternary CAM)으로 구현될 수 있다.The first storage unit may be implemented as a ternary cam.

상기 제2저장부는 쥐비티 에스램(ZBT SRAM)으로 구현될 수 있다.The second storage unit may be implemented with ZBT SRAM.

또한, 본 발명의 일 측면에 따른 룩업 메모리를 포함한 라우팅 시스템의 룩업메모리 최적화 장치는, 상기 라우팅 시스템의 초기화 시, 상기 룩업 메모리를 적어도 하나 이상의 메모리로 영역 분할하는 영역 분할부, 패킷의 포워딩 여부를 결정하기 위한 액세스 제어 리스트 정보의 추가 요청이 있는 경우, 상기 액세스 제어 리스트 정보를 상기 영역 분할된 룩업메모리에 분류하여 저장하는 분류 처리부, 임의의 패킷이 수신된 경우, 상기 영역 분할된 룩업메모리에 저장된 액세스 제어 리스트 정보를 이용하여 상기 수신된 패킷의 포워딩을 처리하는 포워딩 처리부를 포함한다.In addition, the apparatus for optimizing a lookup memory of a routing system including a lookup memory according to an aspect of the present invention may include: an area divider for partitioning the lookup memory into at least one memory when the routing system is initialized, and whether a packet is forwarded or not; A classification processing unit for classifying and storing the access control list information in the area-divided lookup memory when there is a request for addition of the access control list information for determining, and if an arbitrary packet is received, stored in the area-divided lookup memory. And a forwarding processor configured to process forwarding of the received packet by using access control list information.

상기 룩업메모리는, 상기 패킷이 생성된 소스 IP 주소정보, 상기 패킷이 전송될 목적 IP 주소정보, 상기 소스 IP 주소의 단말과 목적 IP 주소의 단말 사이의 통신을 위한 프로토콜 정보 중 적어도 어느 하나를 저장하는 제1영역과 상기 액세스 제어 리스트 정보를 식별하기 위한 식별자 정보, 상기 패킷이 라우팅 시스템으로 수신된 포트의 번호를 나타내는 수신포트정보, 상기 패킷이 라우팅 시스템으로부터 다음 경로로 전송되기 위한 포트의 번호를 나타내는 목적포트정보 중 적어도 어느 하나를 저장하는 제2영역을 포함하는 제1저장부, 상기 제1저장부의 제1영역과 맵핑되고 상기 액세스 제어 리스트 정보를 식별하기 위한 식별자 정보를 저장하는 제1영역과, 상기 제1저장부의 제2영역과 맵핑되고 상기 패킷이 상기 라우팅 시스템에서 다음 경로로의 포워딩 진행여부를 나타내는 패킷 포워딩 진행정보를 저장하는 제2저장부를 포함한다.The lookup memory stores at least one of source IP address information from which the packet is generated, destination IP address information to which the packet is transmitted, and protocol information for communication between the terminal of the source IP address and the terminal of the destination IP address. Identification information for identifying the first area and the access control list information, reception port information indicating the number of the port where the packet is received by the routing system, and port number for the packet to be transmitted from the routing system to the next path. A first storage unit including a second area for storing at least one of the target port information, and a first area mapped with the first area of the first storage unit and storing identifier information for identifying the access control list information And forwards the packet to a second area of the first storage unit and forwards the packet to the next path in the routing system. And a second storage unit configured to store packet forwarding progress information indicating whether the ding proceeds.

상기 포워딩 처리부는, a)상기 수신된 패킷의 송수신 정보와 일치하는 정보가 상기 룩업메모리의 제1영역에 있는지를 검사하고, b)상기 수신된 패킷의 송수신정보와 일치하는 정보가 있는 경우, 상기 송수신정보와 일치하는 상기 제1영역에 저장된 정보와 맵핑되는 식별자 정보가 포함된 상기 라우팅 시스템의 인터페이스 정보가 제2영역에 있는지를 판단하는 판단부, 상기 라우팅 시스템의 인터페이스 정보가 있는 경우, 상기 라우팅 시스템의 인터페이스 정보와 맵핑되는 제4영역에 저장된 패킷 포워딩 진행정보에 따라 상기 수신된 패킷의 포워딩 여부를 결정하는 포워딩부를 포함한다.The forwarding processor may be configured to: a) check whether information matching the transmission / reception information of the received packet exists in the first area of the look-up memory, and b) if there is information matching the transmission / reception information of the received packet. Determination unit for determining whether the interface information of the routing system including the identifier information mapped to the information stored in the first region that matches the transmission and reception information in the second region, if there is interface information of the routing system, the routing And a forwarding unit to determine whether to forward the received packet according to packet forwarding progress information stored in a fourth region mapped with interface information of a system.

상기 라우팅 시스템의 인터페이스 정보는, 상기 식별자 정보, 상기 패킷이 라우팅 시스템으로 수신된 포트의 번호를 나타내는 수신포트정보, 상기 패킷이 라우팅 시스템으로부터 다음 경로로 전송되기 위한 포트의 번호를 나타내는 목적포트정보 중 적어도 어느 하나를 포함한다.The interface information of the routing system is selected from among the identifier information, reception port information indicating a port number at which the packet is received by the routing system, and destination port information indicating a port number for the packet from the routing system to the next path. It includes at least one.

이하 본 발명에 따른 라우팅 시스템의 룩업메모리 최적화 장치 및 그 방법을 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, an apparatus and a method for optimizing a lookup memory of a routing system according to the present invention will be described in detail with reference to the accompanying drawings.

또한, 이해의 편의를 위하여 비록 다른 도면에 속하더라도 동일한 구성요소에는 동일한 부호를 부여하였음을 주의하여야 한다.In addition, it should be noted that the same reference numerals are given to the same elements, although belonging to different drawings for convenience of understanding.

도 4는 본 발명의 일 실시예에 따른 라우팅 시스템의 룩업메모리 최적화 장치를 나타내는 도면이다.4 is a diagram illustrating a lookup memory optimization apparatus of a routing system according to an exemplary embodiment of the present invention.

도 4에 도시된 바와 같이, 라우팅 시스템의 룩업메모리 최적화 장치는, 네트워크 프로세서(400), 터너리 CAM(410), 보조메모리(420)를 포함한다. As shown in FIG. 4, the lookup memory optimization apparatus of the routing system includes a network processor 400, a ternary CAM 410, and an auxiliary memory 420.

네트워크 프로세서(400)는 인터페이스부(402), 엔트리 관리부(404), 제어부(406), 룩업처리부(408)를 포함한다. The network processor 400 includes an interface unit 402, an entry manager 404, a controller 406, and a lookup processor 408.

인터페이스부(402)는 사용자로부터 CLI를 통하여 입력된 ACL 정보와 엔트리 관리정보를 엔트리 관리부(404)에 제공한다. 여기서, ACL 정보와 엔트리 관리정보는 도 1에서 설명된 ACL 정보와 엔트리 관리정보와 동일한 의미이므로 이에 대한 설명은 생략하기로 한다.The interface unit 402 provides the entry management unit 404 with ACL information and entry management information input from the user through the CLI. Here, the ACL information and the entry management information have the same meaning as the ACL information and the entry management information described in FIG. 1, and thus description thereof will be omitted.

엔트리 관리부(404)는 인터페이스부(402)에서 제공된 엔트리 관리정보가 임의의 ACL을 추가하기 위한 정보인 경우, 해당 ACL을 터너리 CAM(410)의 엔트리 포 맷으로 변환하여 터너리 CAM(410)에 저장한다. 반면, 엔트리 관리부(404)는 인터페이스부(402)에서 제공된 엔트리 관리정보가 터너리 CAM(410)에 저장된 임의의 ACL을 삭제하기 위한 정보인 경우, 터너리 CAM(410)에 저장된 해당 ACL를 삭제한다.When the entry management information provided by the interface unit 402 is information for adding an arbitrary ACL, the entry management unit 404 converts the ACL into the entry format of the ternary CAM 410 to convert the ternary CAM 410. Store in On the other hand, when the entry management information provided by the interface unit 402 is information for deleting any ACL stored in the ternary CAM 410, the entry manager 404 deletes the corresponding ACL stored in the ternary CAM 410. do.

룩업 처리부(406)는 수신된 패킷을 미리 설정된 ACL의 엔트리 포맷에 맞게 포맷 변환하고, 포맷 변환된 패킷의 ACL을 이용하여 수신된 패킷의 포워딩 여부를 검사하기 위해 터너리 CAM(410)과 보조메모리(420)를 룩업 한다.The lookup processor 406 converts the received packet into an entry format of a preset ACL and uses the ACL of the format-converted packet to check whether the received packet is forwarded or not, with the ternary CAM 410 and the auxiliary memory. Look up (420).

룩업 처리부(406)는 이렇게 터너리 CAM(410)과 보조메모리(420)를 룩업 결과에 따른 수신된 패킷의 포워딩 여부 정보에 따라 패킷 포워딩 여부를 결정한다.The lookup processing unit 406 determines whether to forward the ternary CAM 410 and the auxiliary memory 420 according to the forwarding information of the received packet according to the lookup result.

제어부(406)는 네트워크 프로세서(400)의 초기화 시, 터너리 CAM(410)을 제1저장부(412)와 제2저장부(414)로 영역 분할하고, 보조 메모리(420)를 제1보조 메모리(422)와 제2보조 메모리(424)로 영역 분할한다.The controller 406 divides the ternary CAM 410 into a first storage unit 412 and a second storage unit 414 when the network processor 400 is initialized, and the auxiliary memory 420 as a first auxiliary unit. The area is divided into a memory 422 and a second auxiliary memory 424.

터너리 CAM(410)은 제1저장부(412)와 제2저장부(414)를 포함하고 있다. 제1저장부(41)는 엔트리 관리부(404)에서 수신된 적어도 하나 이상의 ACL의 제1엔트리 정보를 저장하고 있다. 상기 ACL의 제1엔트리 정보는 보조메모리(420)의 제1보조 저장부(422)에 저장된 제2엔트리 정보 검색번호와 대응되어 있다. 여기에서, 제1엔트리 정보와 제2엔트리 정보 검색번호에 대한 설명은 도 5에서 하기로 한다.The ternary CAM 410 includes a first storage unit 412 and a second storage unit 414. The first storage unit 41 stores first entry information of at least one or more ACLs received from the entry manager 404. The first entry information of the ACL corresponds to the second entry information search number stored in the first auxiliary storage unit 422 of the auxiliary memory 420. Herein, description of the first entry information and the second entry information search number will be made with reference to FIG. 5.

제2저장부(414)는 보조메모리(420)의 제1보조 저장부(422)에 저장된 제2엔트리 정보 검색번호에 대응하여 제2엔트리 정보를 저장하고 있다. 상기 제2엔트리 정보는 보조메모리(420)의 제2보조 저장부(424)에 저장된 패킷 포워딩 정보와 대응되어 있다. 여기에서, 제2엔트리 정보와 패킷 포워딩 정보에 대한 설명은 도 5에서 하기로 한다. 한편, 보조메모리(420)는 ZBT SRAM으로 구현될 수 있다.The second storage unit 414 stores the second entry information corresponding to the second entry information search number stored in the first auxiliary storage unit 422 of the auxiliary memory 420. The second entry information corresponds to packet forwarding information stored in the second auxiliary storage unit 424 of the auxiliary memory 420. Here, the description of the second entry information and the packet forwarding information will be described with reference to FIG. 5. On the other hand, the auxiliary memory 420 may be implemented as a ZBT SRAM.

도 5는 도 4에 도시된 터너리 CAM(410)과 보조메모리(420)간의 관계를 나타내고, 각각 터너리 CAM(410)과 보조메모리(420)에 저장된 정보를 나타내는 도면이다.FIG. 5 is a diagram illustrating a relationship between the ternary CAM 410 and the auxiliary memory 420 illustrated in FIG. 4, and illustrates information stored in the ternary CAM 410 and the auxiliary memory 420, respectively.

도 5에 도시된 바와 같이, 터너리 CAM(410)의 제1저장부(412)에는 ACL의 제1엔트리 정보가 저장되어 있으며, ACL의 제1엔트리 정보는 소스 IP 주소(32비트), 목적 IP 주소(32비트), 프로토콜(8비트) 3개의 필드를 포함한다. ACL의 제1엔트리 정보에 대응되는 제2엔트리 정보 검색번호(ACL Number, 32비트)가 제1보조 저장부(422)에 저장되어 있다. 여기에서, 상기 제2엔트리 정보 검색번호는 제2저장부에 저장된 제2엔트리 정보를 찾기 위한 번호이다.As shown in FIG. 5, first entry information of an ACL is stored in the first storage unit 412 of the ternary CAM 410, and the first entry information of the ACL is a source IP address (32 bits) It contains three fields: IP address (32 bits) and Protocol (8 bits). A second entry information search number (ACL Number, 32 bits) corresponding to the first entry information of the ACL is stored in the first auxiliary storage unit 422. Here, the second entry information search number is a number for searching for the second entry information stored in the second storage unit.

한편, 제1보조 저장부(422)에 저장된 제2엔트리 정보 검색번호에 대응되는 제2엔트리 정보가 제2저장부(414)에 저장되어 있으며, 상기 제2엔트리 정보는, 제2엔트리 정보 검색번호(ACL Number, 16비트), 소스포트(16비트), 목적포트(16비트) 3개의 필드를 포함한다. Meanwhile, second entry information corresponding to the second entry information search number stored in the first auxiliary storage unit 422 is stored in the second storage unit 414, and the second entry information is searched for the second entry information. It includes three fields: number (ACL Number, 16 bits), source port (16 bits) and destination port (16 bits).

상기 제2저장부(414)에 저장된 제2엔트리 정보는 제2보조 저장부(424)에 저장된 패킷 포워딩 정보와 대응되어 있다. 상기 패킷 포워딩 정보는 네트워크 프로세서(400)에 수신된 패킷의 포워딩 여부를 결정하기 위한 정보이며, 패킷 포워딩에 대해 허가/거부에 대한 정보를 포함한다.The second entry information stored in the second storage unit 414 corresponds to the packet forwarding information stored in the second auxiliary storage unit 424. The packet forwarding information is information for determining whether a packet received by the network processor 400 is forwarded, and includes information on granting / denying of packet forwarding.

도 6은 본 발명의 일 실시예에 따른 라우팅 시스템의 룩업메모리 최적화 장치에서 터너리 CAM(410)과 보조메모리(420)에 엔트리의 추가방법과 상응하는 동작 플로우챠트를 나타내는 도면이다.6 is a flowchart illustrating an operation flowchart corresponding to a method of adding an entry to the ternary CAM 410 and the auxiliary memory 420 in the lookup memory optimization apparatus of the routing system according to an exemplary embodiment of the present invention.

도 6에 도시된 바와 같이, 엔트리 관리부(404)는 인터페이스부(402)로부터 사용자가 CLI를 통하여 입력한 ACL이 수신된 경우(S600), 상기 ACL을 구성하는 정보 중, 소스포트 필드를 검사하여 소스포트 범위가 있는지를 검사한다(S602). 여기에서, 사용자가 CLI를 통하여 입력한 ACL의 일 예가 도 7a에 도시되어 있다. 도 7a에 도시된 바와 같이, 사용자가 CLI를 통하여 입력한 ACL은, 제2엔트리 정보 검색번호 필드(700), 패킷 포워딩 정보 필드(702), 프로토콜 필드(704), 소스 IP 주소 필드(706), 소스포트 필드(708), 목적 IP 주소 필드(710), 목적포트 필드(712)로 이루어져 있다. 즉, 사용자가 CLI를 통하여 입력한 ACL 중, 제2엔트리 정보 검색번호 필드(700)는 '10002'이고, 패킷 포워딩 정보 필드(702)는 네트워크 프로세서(400)로 수신된 패킷의 목적 IP 주소로 포워딩이 '허가(permit)'되었음을 나타내며, 프로토콜 필드(704)는 프로토콜의 종류가 '1'임을 나타내고, 소스 IP 주소 필드(706)는 소스 IP 주소가 '10.1.1.2'임을 나타내고, 소스포트 필드(708)는 소스포트번호가 '1 내지 13' 사이임을 나타내고, 목적 IP 주소 필드(710)는 목적 IP 주소가 '10.1.2.2'임을 나타내고, 목적포트 필드(712)는 목적포트번호가 '21'임을 나타낸다.As shown in FIG. 6, when an ACL input by the user through the CLI is received from the interface unit 402 (S600), the entry manager 404 inspects a source port field among information constituting the ACL. It is checked whether there is a source port range (S602). Here, an example of the ACL entered by the user through the CLI is illustrated in FIG. 7A. As shown in FIG. 7A, the ACL input by the user through the CLI includes a second entry information search number field 700, a packet forwarding information field 702, a protocol field 704, and a source IP address field 706. , A source port field 708, a destination IP address field 710, and a destination port field 712. That is, in the ACL input by the user through the CLI, the second entry information search number field 700 is '10002', and the packet forwarding information field 702 is the destination IP address of the packet received by the network processor 400. Indicates that the forwarding has been 'permit', the protocol field 704 indicates that the type of protocol is' 1 ', the source IP address field 706 indicates that the source IP address is '10 .1.1.2', and the source port field 708 indicates that the source port number is between '1 and 13', the destination IP address field 710 indicates that the destination IP address is '10 .1.2.2 ', and the destination port field 712 indicates that the destination port number is' 21'. '

S602 단계에서 소스포트 범위 판단결과, 도 7a의 ACL에 도시된 바와 같이, 소스포트번호 범위가 '1 내지 13' 사이에 있기 때문에 엔트리 관리부(404)는 소스 포트번호에 대한 엔트리 확장을 수행한다(S604). 여기에서, 소스포트번호에 대한 엔트리 확장이 이루어진 결과가 도 7b에 도시되어 있다. 도 7b에 도시된 바와 같이. 소스포트번호 범위가 '1 내지 13'이므로 총 소스포트는 13개인데 반하여 엔트리 확장을 수행한 결과, 소스포트는 총 6개의 엔트리로 나타낼 수 있다. 즉, 소스포트번호 '2'를 이진표현으로 나타내면 '0010'이고, 소스포트번호 '3'을 이진표현으로 나타내면 '0011'이다. 이렇게 이진표현으로 변환된 소스포트번호 '0010'과 1011'의 각각 최하위비트 '0'과 '1'을 돈 캐어 처리함으로써, 엔트리 '001x'로 나타낼 수 있다. As a result of determining the source port range in step S602, as shown in the ACL of FIG. 7A, since the source port number range is between '1 and 13', the entry manager 404 performs an entry expansion on the source port number ( S604). Here, the result of entry expansion for the source port number is shown in Fig. 7B. As shown in FIG. 7B. Since the source port number range is '1 to 13', the total source ports are 13, whereas as a result of the entry expansion, the source ports can be represented by a total of 6 entries. In other words, if the source port number '2' is represented by binary expression, it is '0010' and the source port number '3' is represented by binary expression is '0011'. In this way, the least significant bits' 0 'and' 1 'of the source port numbers' 0010' and 1011 'converted to binary expressions are processed by the money, so that the entry' 001x 'can be represented.

엔트리 관리부(404)는 소스포트에 대한 엔트리를 확장한 후, 도 7a에 도시된 ACL의 목적포트 필드를 검사하여 목적포트번호 범위가 있는지를 검사한다(S606).After expanding the entry for the source port, the entry manager 404 checks whether the destination port number range exists by checking the destination port field of the ACL shown in FIG. 7A (S606).

엔트리 관리부(404)는 도 7a에 도시된 바와 같이, 목적 포트 번호가 '21'로서 목적포트번호 범위가 존재하지 않기 때문에 사용자가 CLI를 통하여 입력된 ACL을 소스포트에 대하여는 6개의 엔트리를 생성하고, 목적 포트에 대해서는 1개의 엔트리를 생성한 다음(S610), 터너리 CAM(410)과 보조메모리(420)에 저장한다.As shown in FIG. 7A, the entry manager 404 generates six entries for the source port using the ACL inputted through the CLI because the target port number is '21' and there is no target port number range. For example, one entry for the destination port is generated (S610) and then stored in the ternary CAM 410 and the auxiliary memory 420.

도 8은 본 발명의 일 실시예에 따른 라우팅 시스템의 룩업메모리 최적화 장치의 수신된 패킷에 대한 룩업처리동작과 상응하는 동작 플로우챠트를 나타내는 도면이다.8 is a flowchart illustrating an operation flowchart corresponding to a lookup processing operation on a received packet of the lookup memory optimization apparatus of the routing system according to an exemplary embodiment of the present invention.

도 8에 도시된 바와 같이, 룩업 처리부(408)는 임의의 패킷이 수신된 경우(S800), 수신된 패킷에 포함된 정보 중 제1엔트리 정보의 구성요소를 추출한다. 추출된 제1엔트리 정보와 동일한 엔트리 정보가 있는지 제1저장부(412)를 룩업 하여(S802), 수신된 패킷에서 추출된 제1엔트리 정보와 대응되는 엔트리 정보가 있는가를 검사한다(S804). 제1저장부(412)에 수신된 패킷에서 추출된 제1엔트리 정보, 즉 소스 IP 주소정보, 목적 IP 주소정보, 프로토콜 정보의 3 터플과 매치 되는 엔트리 정보가 있는 경우, 룩업 처리부(408)는 제1저장부(412)에 상기 추출된 제1엔트리 정보와 매치된 엔트리 정보에 대응되는 제1보조 저장부(422)에 저장된 제2엔트리 정보 검색번호를 이용하여 제2저장부(414)를 룩업 한다(S806). 제2저장부(414)를 룩업한 결과, 제2엔트리 정보 검색번호에 대응되는 제2엔트리 정보가 있는 경우(S808), 룩업 처리부(408)는 제2엔트리 정보에 대응되는 패킷 포워딩 정보를 찾기 위해 제2보조 저장부(424)를 룩업 한다(S810). As shown in FIG. 8, when an arbitrary packet is received (S800), the lookup processing unit 408 extracts a component of first entry information from among information included in the received packet. The first storage unit 412 looks up whether there is the same entry information as the extracted first entry information (S802), and checks whether there is entry information corresponding to the first entry information extracted from the received packet (S804). When the first storage information 412 includes first entry information extracted from the received packet, that is, entry information matching three tuples of source IP address information, destination IP address information, and protocol information, the lookup processing unit 408 The second storage unit 414 is stored in the first storage unit 412 using the second entry information search number stored in the first auxiliary storage unit 422 corresponding to the entry information matched with the extracted first entry information. Look up (S806). As a result of looking up the second storage unit 414, when there is second entry information corresponding to the second entry information search number (S808), the lookup processing unit 408 searches for packet forwarding information corresponding to the second entry information. In order to look up the second auxiliary storage unit 424 (S810).

이후, 룩업 처리부(408)는 제2보조 저장부(424)를 룩업 하여 얻어진 패킷 포워딩 정보에 따라 수신된 패킷의 포워딩 동작을 수행한다(S812). Thereafter, the lookup processor 408 performs a forwarding operation of the received packet according to the packet forwarding information obtained by looking up the second auxiliary storage 424 (S812).

이상에서 본 발명은 기재된 구체 예에 대해서만 상세히 설명하였지만 본 발명의 기술 사상 범위 내에서 다양한 변형 및 수정이 가능함은 당업자에게 있어서 명백한 것이며, 이러한 변형 및 수정이 첨부된 특허청구범위에 속함은 당연한 것이다.Although the present invention has been described in detail only with respect to the described embodiments, it will be apparent to those skilled in the art that various modifications and changes are possible within the technical spirit of the present invention, and such modifications and modifications belong to the appended claims.

상술한 바와 같이 본 발명의 라우팅 시스템의 룩업 메모리 최적화 장치에 따 르면, 룩업 메모리에 저장된 엔트리를 최적화시킴으로써, IPv4의 경우에 기존 룩업메모리에서 N개의 ACL[소스 IP 주소(32비트), 목적 IP 주소(32비트), 프로토콜(8비트), 소스포트(16비트), 목적포트(16비트)]을 지원할 때, '104×N ×900(93600N)' 비트만큼의 메모리 공간이 필요하지만, 본 발명이 적용된 룩업메모리에서 N개의 ACL을 지원할 때 IPv4의 경우, '72N(소스 IP 주소, 목적 IP 주소, 프로토콜) + 32(소스포트, 목적포트)N900' 비트만큼의 메모리 공간이 필요하게 되어서 기존 보다 메모리 공간을 줄일 수 있다.According to the lookup memory optimization apparatus of the routing system of the present invention as described above, by optimizing the entries stored in the lookup memory, N ACLs [source IP address (32-bit), destination IP address in the existing lookup memory in the case of IPv4]. (32 bits), protocol (8 bits), source port (16 bits), destination port (16 bits)], memory space equal to 104 x N x 900 (93600 N) bits is required. When N ACLs are supported in the applied lookup memory, memory space of '72N (source IP address, destination IP address, protocol) + 32 (source port, destination port) N900' bit is needed for IPv4. Memory space can be reduced.

또한, IPv6의 경우에 기존 룩업메모리에서 N개의 ACL[소스 IP 주소(128비트), 목적 IP 주소(128비트), 프로토콜(8비트), 소스포트(16비트), 목적포트(16비트)]을 지원할 때, '296×N ×900(266400N)' 비트만큼의 메모리 공간이 필요하지만, 본 발명이 적용된 룩업메모리에서 N개의 ACL을 지원할 때 IPv6의 경우, '264N(소스 IP 주소, 목적 IP 주소, 프로토콜) + 32(소스포트, 목적포트)N900' 비트만큼의 메모리 공간이 필요하게 되어서 기존 보다 메모리 공간을 줄일 수 있다.Also, in case of IPv6, N ACLs (source IP address (128 bits), destination IP address (128 bits), protocol (8 bits), source port (16 bits), destination port (16 bits)) in the existing lookup memory. When supporting N2, the memory space of '296 × N × 900 (266400N)' bits is required, but when supporting N ACLs in the lookup memory to which the present invention is applied, '264N (source IP address, destination IP address) , Protocol) + 32 (source port, destination port) N900 'bit of memory space is required, so memory space can be reduced than before.

Claims (19)

룩업메모리를 포함한 라우팅 시스템에서 룩업메모리 최적화 방법에 있어서,In a lookup memory optimization method in a routing system including a lookup memory, 상기 라우팅 시스템의 초기화 시, 상기 룩업메모리를 적어도 하나 이상의 영역으로 분할하는 단계,When the routing system is initialized, dividing the lookup memory into at least one region; 패킷의 포워딩 여부를 결정하기 위한 액세스 제어 리스트 정보의 추가 요청이 있는 경우, 상기 액세스 제어 리스트 정보를 상기 룩업메모리의 분할된 영역에 분류하여 저장하는 단계,Classifying and storing the access control list information in a divided area of the lookup memory when there is a request for adding access control list information for determining whether to forward the packet; 임의의 패킷이 수신된 경우, 상기 영역 분할된 룩업메모리에 저장된 액세스 제어 리스트 정보를 이용하여 상기 수신된 패킷의 포워딩을 처리하는 단계를 포함하는 룩업메모리 최적화 방법. And if any packet is received, processing forwarding of the received packet using access control list information stored in the area-divided lookup memory. 제1항에 있어서,The method of claim 1, 상기 액세스 제어 리스트 정보는,The access control list information, 상기 패킷이 생성된 소스 IP 주소정보, 상기 패킷이 전송될 목적 IP 주소정보, 상기 패킷이 라우팅 시스템으로 수신된 포트의 번호를 나타내는 수신포트정보, 상기 패킷이 라우팅 시스템으로부터 다음 경로로 전송되기 위한 포트의 번호를 나타내는 목적포트정보, 상기 소스 IP 주소의 단말과 목적 IP 주소의 단말간의 통신을 위한 프로토콜 정보, 상기 액세스 제어 리스트 정보를 식별하기 위한 식별자 정 보, 상기 패킷이 상기 라우팅 시스템에서 다음 경로로의 포워딩 진행여부를 나타내는 포워딩 진행 정보 중 적어도 어느 하나를 포함하는 룩업메모리 최적화 방법.Source IP address information from which the packet is generated, destination IP address information to which the packet is to be transmitted, receiving port information indicating a number of a port where the packet is received by the routing system, and a port for transmitting the packet from the routing system to the next path. Destination port information indicating a number of protocol information, protocol information for communication between the terminal of the source IP address and the terminal of the destination IP address, identifier information for identifying the access control list information, and the packet from the routing system to the next path. The lookup memory optimization method comprising at least one of the forwarding progress information indicating whether the forwarding progress. 제1항에 있어서,The method of claim 1, 상기 액세스 제어 리스트 정보를 상기 룩업메모리의 분할된 영역에 분류하여 저장하는 단계는,The classifying and storing the access control list information in the divided area of the lookup memory may include: 상기 소스 IP 주소, 목적 IP 주소, 프로토콜 정보 중 적어도 어느 하나를 상기 룩업메모리의 제1영역에 저장하는 단계, Storing at least one of the source IP address, the destination IP address, and protocol information in a first area of the lookup memory; 상기 식별자 정보, 소스 포트정보, 목적 포트정보 중 적어도 어느 하나를 상기 룩업메모리의 제2영역에 저장하는 단계,Storing at least one of the identifier information, source port information, and destination port information in a second area of the lookup memory; 상기 식별자 정보를 상기 룩업메모리의 제3영역에 저장하는 단계,Storing the identifier information in a third area of the lookup memory; 상기 패킷의 포워딩 진행정보를 상기 룩업메모리의 제4영역에 저장하는 단계를 포함하는 룩업메모리 최적화 방법.And storing the forwarding progress information of the packet in a fourth area of the lookup memory. 제1항에 있어서,The method of claim 1, 상기 수신된 액세스 제어 리스트 정보 중 소스/목적 포트의 범위가 존재하는지를 검사하는 단계, Checking whether a range of a source / destination port exists among the received access control list information; 상기 소스/목적 포트의 범위가 존재하는 경우, 상기 소스/목적 포트의 범위 에 따른 룩업메모리에 저장될 상기 액세스 제어 리스트의 엔트리 수를 결정하는 단계를 더 포함하는 룩업메모리 최적화 방법.And determining the number of entries of the access control list to be stored in the lookup memory according to the range of the source / destination port, if the range of the source / destination port exists. 제1항에 있어서,The method of claim 1, 상기 포워딩을 처리하는 단계는, The step of processing the forwarding, 상기 수신된 패킷의 송수신 정보와 일치하는 정보가 상기 룩업메모리의 제1영역에 있는지를 검사하는 단계,Checking whether information matching the transmission / reception information of the received packet is in a first area of the lookup memory; 상기 수신된 패킷의 송수신정보와 일치하는 정보가 있는 경우, 상기 송수신정보와 일치된 제1영역의 정보와 맵핑되는 제3영역의 식별자 정보가 포함된 상기 라우팅 시스템의 인터페이스 정보가 제2영역에 있는지를 검사하는 단계,If there is information that matches the transmission / reception information of the received packet, whether the interface information of the routing system including the identifier information of the third area that is mapped to the information of the first area that matches the transmission / reception information exists in the second area. Checking the steps, 상기 라우팅 시스템의 인터페이스 정보가 있는 경우, 상기 라우팅 시스템의 인터페이스 정보와 맵핑되는 제4영역에 저장된 패킷 포워딩 진행정보에 따라 상기 수신된 패킷의 포워딩을 처리하는 단계를 포함하는 룩업메모리 최적화 방법.And if there is interface information of the routing system, processing forwarding of the received packet according to packet forwarding progress information stored in a fourth region mapped with the interface information of the routing system. 제5항에 있어서,The method of claim 5, 상기 수신된 패킷의 송수신 정보는,Transmission and reception information of the received packet is, 상기 패킷이 생성된 소스 IP 주소정보, 상기 패킷이 전송될 목적 IP 주소정보, 상기 소스 IP 주소의 단말과 목적 IP 주소의 단말 사이의 통신을 위한 프로토 콜 정보 중 적어도 어느 하나를 포함하는 룩업메모리 최적화 방법.Look-up memory optimization including at least one of source IP address information from which the packet is generated, destination IP address information from which the packet is transmitted, and protocol information for communication between the terminal of the source IP address and the terminal of the destination IP address. Way. 제5항에 있어서,The method of claim 5, 상기 라우팅 시스템의 인터페이스 정보는,Interface information of the routing system, 상기 식별자 정보, 상기 패킷이 라우팅 시스템으로 수신된 포트의 번호를 나타내는 수신포트정보, 상기 패킷이 라우팅 시스템으로부터 다음 경로로 전송되기 위한 포트의 번호를 나타내는 목적포트정보 중 적어도 어느 하나를 포함하는 룩업메모리 최적화 방법.A lookup memory including at least one of the identifier information, reception port information indicating a port number of the packet received by the routing system, and destination port information indicating a port number for the packet to be transmitted from the routing system to the next path. Optimization method. 적어도 하나 이상의 패킷의 송수신 주소정보를 저장하는 제1영역과, 상기 패킷이 송신지로부터 수신지로 전송되기 위해서 경유하는 네트워크 인터페이스 정보를 저장하는 제2영역을 포함하는 제1저장부,A first storage unit including a first area for storing transmission and reception address information of at least one packet, and a second area for storing network interface information through which the packet is transmitted from a source to a destination; 상기 제1저장부의 제1영역에 저장된 송수신 주소정보와 맵핑되고, 상기 송수신 주소정보와 대응되는 네트워크 인터페이스 정보를 검색하기 위한 식별자 정보를 저장하는 제1영역과, 상기 제1저장부의 제2영역에 저장된 네트워크 인터페이스 정보와 맵핑되고, 상기 네트워크 인터페이스로 수신된 패킷의 포워딩 진행여부에 대한 정보를 저장하는 제2영역을 포함하는 제2저장부를 포함하는 메모리.A first area mapped to transmission / reception address information stored in a first area of the first storage unit and storing identifier information for retrieving network interface information corresponding to the transmission / reception address information, and a second area of the first storage unit. And a second storage unit mapped to the stored network interface information and including a second area for storing information about whether to forward the packet received through the network interface. 제8항에 있어서,The method of claim 8, 상기 패킷의 송수신 정보는,Transmission and reception information of the packet, 상기 패킷이 생성된 소스 IP 주소정보, 상기 패킷이 전송될 목적 IP 주소정보, 상기 소스 IP 주소에 위치한 단말과 목적 IP 주소에 위치한 단말간의 통신을 위한 프로토콜 정보 중 적어도 어느 하나를 포함하는 메모리.And at least one of source IP address information from which the packet is generated, destination IP address information to which the packet is transmitted, and protocol information for communication between a terminal located at the source IP address and a terminal located at the destination IP address. 제8항에 있어서,The method of claim 8, 상기 네트워크 인터페이스 정보는,The network interface information, 상기 식별자 정보, 상기 패킷이 네트워크 인터페이스로 수신된 포트정보, 상기 패킷이 네트워크 인터페이스로부터 전송될 포트정보 중 적어도 어느 하나를 포함하는 메모리.And at least one of the identifier information, port information at which the packet is received at a network interface, and port information at which the packet is transmitted from a network interface. 제8항에 있어서,The method of claim 8, 상기 수신된 패킷의 포워딩 진행여부에 대한 정보는,Information on whether the received packet forwarding progress, 상기 수신된 패킷이 상기 네트워크 인터페이스에서 다음 경로로의 전송허가 또는 전송거부 중 적어도 어느 하나인 메모리.And the received packet is at least one of a transmission permission or a transmission rejection to a next path at the network interface. 제8항에 있어서,The method of claim 8, 상기 제1저장부는,The first storage unit, 터너리 캠(Ternary CAM)으로 구현되는 메모리.Memory implemented with the Ternary CAM. 제8항에 있어서,The method of claim 8, 상기 제2저장부는,The second storage unit, 쥐비티 에스램(ZBT SRAM)으로 구현되는 메모리.Memory implemented with ZBT SRAM. 룩업 메모리를 포함한 라우팅 시스템의 룩업메모리 최적화 장치에 있어서,In the lookup memory optimization apparatus of a routing system including a lookup memory, 상기 라우팅 시스템의 초기화 시, 상기 룩업 메모리를 적어도 하나 이상의 메모리로 영역 분할하는 영역 분할부,An area divider configured to divide the lookup memory into at least one memory upon initialization of the routing system; 패킷의 포워딩 여부를 결정하기 위한 액세스 제어 리스트 정보의 추가 요청이 있는 경우, 상기 액세스 제어 리스트 정보를 상기 영역 분할된 룩업메모리에 분류하여 저장하는 분류 처리부,A classification processing unit for classifying and storing the access control list information in the area-divided lookup memory when there is a request for adding access control list information for determining whether to forward the packet; 임의의 패킷이 수신된 경우, 상기 영역 분할된 룩업메모리에 저장된 액세스 제어 리스트 정보를 이용하여 상기 수신된 패킷의 포워딩을 처리하는 포워딩 처리부를 포함하는 룩업메모리 최적화 장치.And a forwarding processor configured to process forwarding of the received packet by using access control list information stored in the area-divided lookup memory when an arbitrary packet is received. 제14항에 있어서,The method of claim 14, 상기 액세스 제어 리스트 정보는,The access control list information, 상기 패킷이 생성된 소스 IP 주소정보, 상기 패킷이 전송될 목적 IP 주소정보, 상기 패킷이 라우팅 시스템으로 수신된 포트의 번호를 나타내는 수신포트정보, 상기 패킷이 라우팅 시스템으로부터 다음 경로로 전송되기 위한 포트의 번호를 나타내는 목적포트정보, 상기 소스 IP 주소의 단말과 목적 IP 주소의 단말 사이의 통신을 위한 프로토콜 정보, 상기 액세스 제어 리스트 정보를 식별하기 위한 식별자 정보, 상기 패킷이 상기 라우팅 시스템에서 다음 경로로의 포워딩 진행여부를 나타내는 패킷 포워딩 진행정보 중 적어도 어느 하나를 포함하는 룩업메모리 최적화 장치.Source IP address information from which the packet is generated, destination IP address information to which the packet is to be transmitted, receiving port information indicating a number of a port where the packet is received by the routing system, and a port for transmitting the packet from the routing system to the next path. Destination port information indicating a number of protocol information, protocol information for communication between the terminal of the source IP address and the terminal of the destination IP address, identifier information for identifying the access control list information, and the packet to the next path in the routing system. The apparatus for optimizing a lookup memory including at least one of packet forwarding progress information indicating whether forwarding progresses. 제14항에 있어서,The method of claim 14, 상기 룩업메모리는,The lookup memory, 상기 소스 IP 주소정보, 목적 IP 주소정보, 프로토콜 정보 중 적어도 어느 하나를 저장하는 제1영역과 상기 액세스 제어 리스트 정보를 식별하기 위한 식별자 정보, 소스 포트정보, 목적 포트정보 중 적어도 어느 하나를 저장하는 제2영역을 포함하는 제1저장부,Storing at least one of a first area storing at least one of the source IP address information, destination IP address information, and protocol information, identifier information for identifying the access control list information, source port information, and destination port information. A first storage part including a second area, 상기 제1저장부의 제1영역과 맵핑되고 상기 액세스 제어 리스트 정보를 식별하기 위한 식별자 정보를 저장하는 제1영역과, 상기 제1저장부의 제2영역과 맵핑되고 상기 패킷 포워딩 진행정보를 저장하는 제2저장부를 포함하는 룩업메모리 최적화 장치.A first region mapped to a first region of the first storage unit and storing identifier information for identifying the access control list information, and a second region mapped to a second region of the first storage unit and storing the packet forwarding progress information Look-up memory optimization device including two storage. 제14항에 있어서,The method of claim 14, 상기 포워딩 처리부는,The forwarding processing unit, a)상기 수신된 패킷의 송수신 정보와 일치하는 정보가 상기 룩업메모리의 제1영역에 있는지를 검사하고,a) checking whether information matching the transmission / reception information of the received packet exists in a first area of the lookup memory, b)상기 수신된 패킷의 송수신정보와 일치하는 정보가 있는 경우, 상기 송수신정보와 일치하는 상기 제1영역에 저장된 정보와 맵핑되는 식별자 정보가 포함된 상기 라우팅 시스템의 인터페이스 정보가 제2영역에 있는지를 판단하는 판단부,b) if there is information matching the transmission / reception information of the received packet, whether the interface information of the routing system including the identifier information mapped to the information stored in the first area matching the transmission / reception information is in the second region; Judgment unit to judge, 상기 라우팅 시스템의 인터페이스 정보가 있는 경우, 상기 라우팅 시스템의 인터페이스 정보와 맵핑되는 제4영역에 저장된 패킷 포워딩 진행정보에 따라 상기 수신된 패킷의 포워딩 여부를 결정하는 포워딩부를 포함하는 룩업메모리 최적화 장치.And a forwarding unit configured to determine whether to forward the received packet according to packet forwarding progress information stored in a fourth region mapped with the interface information of the routing system when the interface information of the routing system is present. 제17항에 있어서,The method of claim 17, 상기 수신된 패킷의 송수신 정보는,Transmission and reception information of the received packet is, 상기 패킷이 생성된 소스 IP 주소정보, 상기 패킷이 전송될 목적 IP 주소정보, 상기 소스 IP 주소의 단말과 목적 IP 주소의 단말 사이의 통신을 위한 프로토콜 정보 중 적어도 어느 하나를 포함하는 룩업메모리 최적화 장치.Lookup memory optimization device including at least one of the source IP address information, the packet is generated, the destination IP address information to which the packet is transmitted, the protocol information for communication between the terminal of the source IP address and the terminal of the destination IP address . 제17항에 있어서,The method of claim 17, 상기 라우팅 시스템의 인터페이스 정보는,Interface information of the routing system, 상기 식별자 정보, 상기 패킷이 라우팅 시스템으로 수신된 포트의 번호를 나타내는 수신포트정보, 상기 패킷이 라우팅 시스템으로부터 다음 경로로 전송되기 위한 포트의 번호를 나타내는 목적포트정보 중 적어도 어느 하나를 포함하는 룩업메모리 최적화 장치.A lookup memory including at least one of the identifier information, reception port information indicating a port number of the packet received by the routing system, and destination port information indicating a port number for the packet to be transmitted from the routing system to the next path. Optimization device.
KR1020040054940A 2004-07-14 2004-07-14 Apparatus and method for optimizing lookup memory in routing system KR100590891B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040054940A KR100590891B1 (en) 2004-07-14 2004-07-14 Apparatus and method for optimizing lookup memory in routing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040054940A KR100590891B1 (en) 2004-07-14 2004-07-14 Apparatus and method for optimizing lookup memory in routing system

Publications (2)

Publication Number Publication Date
KR20060005936A true KR20060005936A (en) 2006-01-18
KR100590891B1 KR100590891B1 (en) 2006-06-19

Family

ID=37117802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040054940A KR100590891B1 (en) 2004-07-14 2004-07-14 Apparatus and method for optimizing lookup memory in routing system

Country Status (1)

Country Link
KR (1) KR100590891B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100705545B1 (en) * 2005-07-02 2007-04-09 충남대학교산학협력단 The Classification Method of Packets by using the Dual TCAM Tables

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100428247B1 (en) * 2001-03-22 2004-04-27 조태원 Method of Constructing the Pipe-Lined Content Addressable Memory for High Speed Lookup of Longest Prefix Matching Algorithm in Internet Protocol Address Lookup

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100705545B1 (en) * 2005-07-02 2007-04-09 충남대학교산학협력단 The Classification Method of Packets by using the Dual TCAM Tables

Also Published As

Publication number Publication date
KR100590891B1 (en) 2006-06-19

Similar Documents

Publication Publication Date Title
US10389633B2 (en) Hash-based address matching
US6665297B1 (en) Network routing table
US10491521B2 (en) Field checking based caching of ACL lookups to ease ACL lookup search
US7480299B2 (en) Rules engine for access control lists in network units
EP1757024B1 (en) Identifying reverse path forwarding information
JP4742167B2 (en) Method for performing a table lookup operation using a table index that exceeds the CAM key size
US6307855B1 (en) Network routing table using content addressable memory
KR100705593B1 (en) Apparatus and method for managing ternary content addressable memory
KR100612256B1 (en) Apparatus and Method for Managing Ternary Content Addressable Memory
US20150127900A1 (en) Ternary content addressable memory utilizing common masks and hash lookups
CN113519144B (en) Exact match and Ternary Content Addressable Memory (TCAM) hybrid lookup for network devices
US20050010612A1 (en) Storing and searching a hierarchy of items of particular use with IP security policies and security associations
US20060233173A1 (en) Policy-based processing of packets
US6987683B2 (en) Magnitude comparator based content addressable memory for search and sorting
CN112667526B (en) Method and circuit for realizing access control list circuit
US7739445B1 (en) Circuit, apparatus, and method for extracting multiple matching entries from a content addressable memory (CAM) device
US11818099B2 (en) Efficient matching of feature-rich security policy with dynamic content using user group matching
US7385983B2 (en) Network address-port translation apparatus and method
KR100590891B1 (en) Apparatus and method for optimizing lookup memory in routing system
US7523251B2 (en) Quaternary content-addressable memory
US7240149B1 (en) Multiple branch operations in an associative memory
US20200145379A1 (en) Efficient matching of feature-rich security policy with dynamic content using incremental precondition changes
US10965647B2 (en) Efficient matching of feature-rich security policy with dynamic content
Lin et al. TCAM-Based Packet Classification Using Multi-stage Scheme

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

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150528

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee