KR100340953B1 - 초고속 라우터 및 그 방법 - Google Patents

초고속 라우터 및 그 방법 Download PDF

Info

Publication number
KR100340953B1
KR100340953B1 KR1020000038246A KR20000038246A KR100340953B1 KR 100340953 B1 KR100340953 B1 KR 100340953B1 KR 1020000038246 A KR1020000038246 A KR 1020000038246A KR 20000038246 A KR20000038246 A KR 20000038246A KR 100340953 B1 KR100340953 B1 KR 100340953B1
Authority
KR
South Korea
Prior art keywords
address
next hop
segment
offset
bits
Prior art date
Application number
KR1020000038246A
Other languages
English (en)
Other versions
KR20020003787A (ko
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 KR1020000038246A priority Critical patent/KR100340953B1/ko
Publication of KR20020003787A publication Critical patent/KR20020003787A/ko
Application granted granted Critical
Publication of KR100340953B1 publication Critical patent/KR100340953B1/ko

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/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching

Landscapes

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

Abstract

본 발명은 소요 메모리 크기를 매우 적게 함으로써 고속의 스테틱 램(SRAM:Static Random Access Memory)을 사용하여 포워딩 테이블을 구현하고 메모리 접근 회수를 줄여 고속 라우팅을 가능하게 하는 초고속 라우터 및 그 방법에 관한 것으로, 32비트 IP 주소(41) 중에서 유효한 주소(프리픽스, Prefix)를 활용하여 최상위 16비트는 세그먼트(42)로 사용하고, 나머지 비트 중 유효한 주소비트를 오프셋 주소(43)로 사용하는 단계와; 유효한 주소가 길거나 다른 이유로 소요 메모리 크기가 증가할 경우 라우팅 정보의 압축 유무를 결정하는 단계와; 216개 쌍의 셀을 구비한 세그먼트 테이블(44)을 제공하고, 상기 세그먼트(42)의 값에 따라 세그먼트 테이블(44)의 오프셋 부분의 큰 그룹의 시작 주소를 지시하는 단계와; 상기 유효 주소에 근거한 오프셋에 대하여 그 비트수가 특정비트보다 작은 경우 압축된 정보를 저장하고 있는 메모리에 접속하지 않고 직접적으로 다음홉을 저장하고, 그 비트수가 상기 특정비트보다 큰 경우, 2kn(kn: 오프셋의 길이)의 다음 홉 정보를 구비하는 다음 홉 테이블(45-0, 45-1, ..., 45-n)에서 대응하는 다음 홉 정보를 제공하는 단계와;로 구성되어 IP 주소의 유효 주소가 가변적이라는 사실을 이용하여 라우팅 테이블과 포워딩 테이블의 크기를 줄여 메모리 용량을 줄여서 고속의 SRAM 사용할 수 있고, 압축시 메모리 접속수가 증가하지만, 독창적인 압축메모리 구조를 이용하여 압축시에도 메모리 접속수를 줄여 고속성을 유지할 수 있다.

Description

초고속 라우터 및 그 방법{a hyper speed router and method therefor}
본 발명은 초고속 라우터 및 그 방법에 관한 것으로, 보다 상세하게는 소요메모리 크기를 극소화하는 기법에 의해 고속의 스테틱 램(SRAM:Static Random Access Memory)을 사용하여 포워딩 테이블을 구현하고 메모리 접근 회수를 줄여 고속 라우팅을 가능하게 하는 초고속 라우터 및 그 방법에 관한 것이다.
인터넷이 지난 수년간에 걸쳐 일반화되면서 네트웍 상호간의 트래픽은 급속히 증가되어 왔다. 앞으로 다양한 멀티미디어 정보에 대한 인터넷 서비스 요구를 감안할 때 인터넷의 트래픽 증가는 지속될 것이다.
인터넷 서비스의 질을 향상시키기 위하여 인터넷상에 존재하는 IP 라우터의 발전이 수반되어야 한다. 그 발전의 중요한 항목은 1)링크(link)의 속도 2) 라우터의 처리 용량 3) 패킷의 포워딩(Forwarding) 속도 등이 있다. 이중에 링크의 속도문제는 광통신의 비약적인 발전으로 해결의 과정속에 있고, 라우터 처리량도 라우터의 인터페이스 문제의 발전과 스위치의 계층별 분산 기법으로 해결되고 있다.
도 1에 IP 라우터의 구성을 나타내는 블록도가 도시된다.
IP 라우터는 한쪽 방향의 입력을 라우팅부(11)로 출력하고 포워딩부(14)에서 출력하는 패킷을 한쪽 방향으로 출력하는 제1인터페이스부(15)와; 입력되는 패킷의 최적의 경로를 찾아 결정하는 라우팅부(11)와; 상기 라우팅부(11)가 최적의 경로를 설정하도록 경로 데이타를 제공하는 라우팅표(12)와; 상기 라우팅부(11)가 결정한 경로로 상기 패킷을 전송하는 포워딩부(14)와; 다른쪽 방향의 입력을 라우팅부(11)로 출력하고 포워딩부(14)에서 출력하는 패킷을 다른쪽 방향으로 출력하는 제2인터페이스부(15)와;로 구성된다.
라우팅부(11)는 라우팅 프로토콜을 실행하여 패킷이 최적의 경로를 찾는데 필요한 정보를 저장한다. 부가적으로 이들은 라우팅 정보를 포워딩부가 룩업 알고리즘을 수행하기 위해 적절한 형태로 자료를 재가공한다. 이러한 과정은 30∼60 초에 한번씩 동적으로 수행되며 수행시간은 내부 중앙처리장치와 관련 프로토콜에 따라 결정된다. 포워딩부(14)는 패킷이 입력되면 헤더부를 분석하고 이들의 전송경로를 포워딩 테이블을 이용하여 신속히 결정하고 해당 출력포트로 경로를 열어주는 역할을 한다.
포워딩이란 IP 패킷의 헤더부에 있는 원격지 주소를 분석하여 적절히 출력 인터페이스 링크로 해당 패킷을 전송하는 것을 지칭한다. 특히 다음 홉(Next Hop)으로의 패킷전달을 위해 최적의 메모리 구성과 접근을 포괄적으로 룩업(Lookup)이라한다. 그러나, 링크 속도의 비약적인 증가에 비해 라우터 내의 포워딩 속도는 그리 개선되지 못하고 있다.
최대 프릭픽스(Prefix: 유효네트웍 주소)정합형(Longest-prefix matching) 기술을 근간으로 저비용, 초고속으로 새로이 룩업의 속도를 개선하기 위하여 룩업장치를 하드웨어로 구현해야 한다. 그러기 위해선 포워딩 테이블의 소요메모리 크기가 작아야 되고, 알고리즘이 단순해야 한다. 앞서 제안된 캐쉬 메모리를 이용한 소프트웨어 기법의 룩업은 초대규모 네트웍에는 적당하지 않다.
메모리 용량과 알고리즘의 단순성과 더불어 룩업 과정에서 메모리의 접속수는 아주 중요한 문제로 대두된다. 즉, 가능한 내부 메모리의 접속수가 작을 수록 좋다. 결국 라우터의 개발과정에서 고려해야 할 중요 요소는 다음과 같다.
1) 룩업 알고리즘이 단순해서 하드웨어로 구현이 용이해야 한다.
2) 내부 소요 메모리가 매우 작아 초고속의 SRAM 을 사용할 수 있어야 한다.
3) 룩업 과정에서 메모리 접속회수가 작아 고속성이 유지되어야 한다.
IP 라우터의 룩업부를 하드웨어로 구현하는 방법에는 여러가지가 있으나, 근래 최대 프리픽스를 정합하여 룩업하는 기법에 관심이 집중되고 있다. 이들 방법중에는 도 2와 같이 32비트 IP 주소 전체를 포워딩 테이블(일종의 메모리)의 주소로 사용하는 직접방식이 있다. 이는 한번의 메모리 접근으로 원하는 정보를 얻을 수 있으므로 속도 측면에서 아주 이상적이라 할 수 있다. 그러나 이러한 직접방식은 매우 큰 메모리를 (232=4Gbyte)요구하므로 현실성이 없다.
따라서, 메모리의 크기를 줄이기 위해 일반적으로 간접방식을 사용한다.
도 3에 도시된 바와 같이 각 IP의 주소는 1)세그먼트(segment:16비트) 와 2) 오프셋(offset:16비트), 두부분으로 나눈다. 세그먼트의 크기는 64KB(=216비트)가 되고 세그먼트의 내용은 출력포트의 직접적인 정보가 되거나 다음 홉배열(Next Hop Array: NHA)을 담고 있는 메모리의 초기주소를 지정하는 포인터(Pointer)가 된다. 다음 홉배열의 주소로 IP주소의 오프셋부를 사용한다. 다음 홉배열(NHA)의 저장 자료는 다음 홉의 출력포트 정보가 된다. 즉, 원격지 IP 주소가 a.b.y.z 인 경우 a.b는 세그먼트표의 주소가 되고 y.z는 다음홉의 인덱스(Index)로 사용된다. 세그먼트 a.b에 대해 프리픽스의 길이가 16비트 이하이면 세그먼트의 내용이 직접적인 다음홉의 출력포트 정보가 되고, 다음 홉이 불필요하게 된다. 이 경우 한번의 메모리 접근으로 패킷의 출력정보를 얻을 수 있다. 클래스 B의 IP 패킷이 이에 해당된다. 그러나, 프리픽스 길이가 16비트 이상이면, 오프셋이 필요하고 하위 16비트 모두를 오프셋 주소로 사용하므로 각 세그먼트별로 64KB(=216비트)의 다음 홉이 요구된다. 이 경우 IP 룩업 과정에서 최대 2번의 메모리 접근이 필요하다. 이 경우 세그먼트용 메모리로 16MB(=224비트)가 필요하다.
이러한 방식은 룩업 과정에서 메모리의 접근 회수가 최대 2회 이내이므로 룩업 속도를 개선하고 동시에 메모리의 크기를 어느 정도 줄일 수 있다(직접방식에 비해 ). 그러나 IP의 유효주소(프리픽스 길이)가 가변적이라는 사실을 이용하지 못하므로 프리픽스가 16보다 큰 경우에 대해 64KB의 다음홉을 배당하게 되어 메모리 크기가 여전히 크기 때문에 SRAM과 같은 고가의 메모리를 사용할 수 없다.
본 발명은 상기와 같은 문제점을 고려하여 창안된 것으로서, 그 목적은 룩업 알고리즘이 단순해서 하드웨어로 구현이 용이한 초고속 라우터를 제공하는 것이다.
본 발명의 다른 목적은 포워딩 테이블의 소요 메모리를 작게 하여 초고속의 SRAM을 사용할 수 있는 초고속 라우터를 제공하는 것이다.
본 발명의 또 다른 목적은 룩업 과정에서 메모리 접속회수가 작아 고속성이 유지되는 초고속 라우터를 제공하는 것이다.
도 1은 IP 라우터의 구성을 나타내는 블록도,
도 2는 32비트 IP 주소 전체를 포워딩 테이블 주소로 사용하는 직접방식의 설명도,
도 3은 각 IP의 주소를 세그먼트와 오프셋 두부분으로 나누는 간접방식을 설명하는 설명도,
도 4는 본 발명에 의한 가변 오프셋 방식에 의한 간접 룩업 기법,
도 5는 본 발명에 의한 세그먼트 테이블의 구성을 보이는 구성도,
도 6의 (a)는 라우팅 표의 일부분이고, (b)는 이를 이용하여 재구성한 세그먼트 표,
도 7은 각 프리픽스에 대한 시작 주소와 끝점주소를 나타낸 표,
도 8은 프리픽스별로 겹치는 부분을 일차원적으로 다시 배열하여 다음 홉을 표시한 표,
도 9(a)-(c)는 룩업 알고리즘에 적용할 압축 알고리즘을 설명하는 설명도,
도 10은 코드워드(CWA)의 구조도,
도 11은 본 발명에 의한 초고속 라우터의 구성을 나타내는 블록도이다.
<도면의 주요 부분에 대한 부호의 설명>
81 : IP 헤더 분석부 82 : 세그먼트 메모리부
83 : 래치부 84 : 하위 IP 주소 시프터
85 : 다음 홉 테이블 86 : 제1 룩업 엔진 및 타이밍 발생부
88 : 제2 룩업 엔지 및 타이밍 발생부 89 : 코드워드 저장부
91 : 중앙처리부 92 : 선택기
위와 같은 목적을 달성하기 위하여 본 발명에 의한 초고속 라우터는 입력된 IP 패킷의 헤더부를 분석하여 상위 16비트 세그먼트와 하위 IP 주소를 분리하여 출력하는 IP 헤더 분석부와; 상기 IP 헤더 분석부에서 출력되는 세그먼트 주소를 저장하는 세그먼트 메모리부와; 상기 IP 헤더 분석부에서 출력되는 하위 IP 주소를 시프트하여 16진수로 변환하는 하위 IP 주소 시프터와; 상기 세그먼트 메모리부에서 출력되는 세그먼트를 래치하는 래치부와; 상기 하위 IP 주소 시프터와 상기 래치부에서 출력되는 세그먼트와 하위주소를 처리하여 다음 홉 정보를 출력하는 제1 및 제2 룩업 엔진과; 상기 제1 및 제2 룩업 엔진에서 출력되는 다음 홉 정보를 선택하여 출력하는 선택기와; 다음 홉 정보를 저장하는 다음 홉 테이블과; 코드 워드를 저장하는 코드워드 저장부와; 상기 각 부를 제어하여 IP 주소를 동일 세그먼트를 가진 집합으로 분류하고 상기 집합에서 가장 긴 프리픽스에서 16을 빼서 오프셋으로 하고, 상기 IP 주소에서 하위 16비트부터 16-오프셋까지를 상기 다음 홉 테이블의 주소로 하여 다음 홉 정보를 검출하도록 제어하는 중앙처리부와;로 구성된다.
본 발명에 의한 초고속 라우팅 방법은 32비트 IP 주소(41) 중에서 유효한 주소(프리픽스, Prefix)를 활용하여 최상위 16비트는 세그먼트(42)로 사용하고, 나머지 비트 중 유효한 주소비트를 오프셋 주소(43)로 사용하는 단계와; 유효한 주소가 길거나 다른 이유로 소요 메모리 크기가 증가할 경우 라우팅 정보의 압축 유무를 결정하는 단계와; 216개 쌍의 셀을 구비한 세그먼트 테이블(44)을 제공하고, 상기 세그먼트(42)의 값에 따라 세그먼트 테이블(44)의 오프셋 부분의 큰 그룹의 시작 주소를 지시하는 단계와; 상기 유효 주소에 근거한 오프셋에 대하여 그 비트수가 특정비트보다 작은 경우 압축된 정보를 저장하고 있는 메모리에 접속하지 않고 직접적으로 다음홉을 저장하고, 그 비트수가 상기 특정비트보다 큰 경우, 2kn(kn: 오프셋의 길이)의 다음 홉 정보를 구비하는 다음 홉 테이블(45-0, 45-1, ..., 45-n)에서 대응하는 다음 홉 정보를 제공하는 단계와;로 구성된다.
본 발명에 의한 알고리즘은 기존의 최대 프리픽스 정합형을 기반으로 하면서 '가변오프셋' 기법에 '압축 알고리즘'을 적용한 복합적인 알고리즘이다. 본 발명에서는 메모리 구조의 크기를 최소화하고, 특히 메모리 접근회수를 극소화한다.
이하, 본 발명을 바람직한 실시예를 첨부도면을 참고로 구체적으로 설명한다.
도 4에 본 발명에 의한 가변 오프셋 방식에 의한 간접 룩업 기법을 도시한다.
IP 주소(41) 중에서 상위 16비트는 세그먼트(42)로 놓고, 16 비트 이하 나머지 비트는 오프셋(43)으로 놓는다. 16 비트 세그먼트(42)의 값에 따라 216개 쌍의셀을 구비한 세그먼트 테이블(44)이 주어지며, 세그먼트(42)의 값에 따라 세그먼트표(44)의 한쌍의 셀을 가르키는 대응주소가 선택된다. 세그먼트 테이블(44)은 하나의 오프셋에 대하여 그 값이 255보다 작은 경우 오프셋(43)없이 다음 홉을 저장하는 셀(441)이 대응되고, 그 값이 255보다 큰 경우 2kn(kn: 오프셋의 길이)의 다음 홉 정보를 구비하는 다음 홉 테이블(45-0, 45-1, ..., 45-n)이 제공된다.
동일한 세그먼트부 주소를 가진 패킷들은 세그먼트부는 같더라도 프리픽스의 길이는 다를 수 있다. 이때 동일한 세그먼트를 가진 일련의 집합에서 가장 긴 프리픽스의 길이에 16을 뺀 수치를 '오프셋길이(kn)'로 하고, IP 주소부 중에 하위 16비트부터 16-kn 비트까지를 다음 홉의 주소로 사용하면, 다음 홉의 크기를 줄일 수 있다. 그 결과 다음 홉 테이블(45-0, 45-1, ..., 45-n)의 메모리 크기는 2kn이 된다. 종래의 방식에서 다음 홉 테이블의 길이가 모두 216인 것에 비해 메모리 크기가 더욱 작아진다. 이를 일종의 가변 오프셋 방식(Variable Offset)이라 한다. kn이 큰 경우 여전히 다음 홉의 크기가 꽤 크므로 이 경우는 압축 알고리즘을 이용하여 다음 홉의 크기를 더욱 줄일 수 있다.
본 발명에 의한 알고리즘은 종래의 최대 프리픽스 정합형을 기반으로 하면서 '가변오프셋' 기법에 '압축 알고리즘'을 적용한 복합적인 알고리즘이다. 이러한 복합적인 알고리즘은 종래에 발표된 예가 있으나, 본 발명에서는 메모리 구조의 크기를 최소화하고, 특히 메모리 접근회수를 극소화한다.
도 5에 본 발명에 의한 세그먼트 테이블의 구성을 보이는 구성도가 도시된다.
본 발명에 의한 세그먼트부는 크게 3부분으로 나눈다. 최상위 1 비트는 현재의 IP 주소에 대해 압축알고리즘 채택여부(d=1이면, 압축함)를 지시하는 압축여부비트이다. 중간의 27비트는 코드워드(CWA)용 '포인터'이거나 '다음 홉 정보'를 표시하는 다음홉/포인터부이다. 즉, 이값이 256보다 작으면 '다음 홉정보'이고, 아니면 포인터가 된다. 최하위 4비트(k)는 오프셋길이(=k+1)를 나타낸다. 일반적인 룩업 알고리즘에서 특정 프리픽스 집합에서 오프셋길이(k)가 크면 소요 메모리 크기가 증가하므로 압축기법을 사용한다. 그러나 본 발명에서는 어떤 임계치의 Kt 를 미리 정하고 이값을 넘으면 압축기법을 무조건 적용하는 것이 아니라, 메모리 크기와 메모리 접근회수, 프리픽스 길이의 분포 등을 고려하여 압축유무를 결정한다. 그리고 나머지 4비트는 오프셋을 나타낸다.
도 6의 (a)에 라우팅 표의 일부분이 도시되고, (b)에 이를 이용하여 재구성한 세그먼트 표가 도시된다.
일련의 동일 세그먼트를 가진 프리픽스 집합의 다음 홉을 계산하는 알고리즘은 다음과 같다.
1) 동일 세그먼트를 갖는 프리픽스들이 라우팅 테이블로부터 입력되면 (P={p0, p1, ..., pm-1})
2) 프리픽스 길이에 따라 순서적으로 분류한다. i번째 IP의 프리픽스 길이를 li, j 번째 IP의 프리픽스 길이를 lj 라하면, li≤lj 인 경우 pi를 먼저 두고 pj를 나중에 두는 방식으로 분류한다.
3) 집합 P의 '최대 프리픽스 길이'에 16을 뺀 값을 오프셋 길이(kn)로 정한다. 이때 다음 홉은 1에서 2kn까지의 일차원적 배열로 표현된다(즉, 다음홉은 2kn의 크기를 가진다).
4) 각 프리픽스(pi)별로 전체 다음 홉 배열내에서 해당 프리픽스의 구간(시작주소, 끝 주소)을 계산한다. 이 구간에 해당 프리픽스를 위한 출력포트 값을 배당한다.
si=1 if i≤li-16
si=0 if li-16 ≤i ≤k
ei=0 if i≤li-16
ei=1 if li-16 ≤i ≤k
SAn=[s0s1...si...sk-1] AND [x0x1...xk-1]
EAn=[e0e1...ei...ek-1] OR [x0x1...xk-1] ...........(1)
구간 계산방법은 다음과 같다. 해당 프리픽스가 a.b.x.y라 할 때, x.y의 이진수 표현을 x0x1...xk-1로 한다. 오프셋 길이가 k(=lmax-16)라면, k 비트의 시작점 마스크 s0s1...si...sk-1와 끝점 마스크 e0,e1,.....ek-1를 우선 다음과 같은 방법으로 구한다. k 비트 중에서 자신의 프리픽스 길이에서 16을 뺀 값보다 낮은 자리는 '1'로, 그외는 '0'으로 하여 시작점 마스크를 구하고, 자신의 프리픽스 길이에 16을 뺀 값보다 높은 자리는 '1'로 낮은 자리는 '0'로 하여 끝점 마스크를 구한다. 시작점 마스크와 x.y를 AND 취하여 배열내의 '시작점 주소'를 구하고 끝점 마스크와x.y 를 OR 취하여 '끝점주소'를 구한다.
예를들어 pi=a.b.60.50 프리픽스 길이(li)가 26, 오프셋 길이 가 12(해당 집합에서 최대 프리픽스가 28이라 가정하면, 28-16=12이므로), 출력포트가 2인 경우를 살펴본다. k=12 이므로 전체 배열은 0에서 4095(=212)까지 존재한다. 60.50 과 시작점 마스크를 111111111100, 끝점 마스크는 000000000011. 따라서 시작점은 60.50 과 시작점 마스크를 AND 취하면 011000000101=1540, 끝점은 1543이 된다. 전체 다음홉 배열 중에서 이 구간(1540∼1543) 내에 출력포트 값 2를 배당한다.
5) 4)과정을 전 프리픽스에 대해 적용한다. 표 1은 본 과정의 구체적인 예이다. 예를 들어, 동일 세그먼트를 가진 프리픽스 집합을 프리픽스/프리픽스 길이/ 다음홉 출력포인트의 형태로 표현하면, 최대 프리픽스 길이는 32 이므로 오프셋 길이(k)는 16(=32-16) 이다. 따라서 다음 홉의 크기는 216이다. 각각의 프리픽스에 대한 다음 홉내의 구간을 앞의 과정을 이용하여 구하면 도 7, 도 8과에 도시된 표와 같다. 도 7의 표1은 각 프리픽스에 대한 시작 주소와 끝점주소를 나타낸 것이다. 각 프리픽스별로 겹치는 부분이 있는데, 이를 일차원적으로 다시 배열하여 다음 홉을 표시한 것이 도8의 표2이다.
k가 특정치 이상인 경우 다음 홉의 크기가 증가하여 메모리를 많이 소모하므로 압축기법을 적용하여 메모리의 크기를 더 줄인다. 본 룩업 알고리즘에 적용할 압축 알고리즘은 다음과 같다.
우선 압축된 정보는 CWA(Code Word Array)로 표현되고, 이는 다시압축비트맵(CBM:Compression Bit Map)과 압축 다음 홉(CNHA:Compressed Next Hop Array)로 구성된다. 압축은 압축 비트맵과 압축 다음 홉을 유도하는 과정으로 시작한다.
일단 앞서의 방법으로 다음 홉을 구하고, 다음 홉의 i 번째 값을 ai, 압축 비트맵의 i 번째 값을 bi, 압축 다음 홉의 j 번째 값을 cj라면
bi+1=0, b1=1 if ai=ai+1
bi+1=1, ci=ai+1, j=j+1 if ai≠ai+1............(2)
와 같이 압축 비트맵과 압축 다음 홉을 구할 수 있다. 도 9(a)-(c)는 이러한 압축기법을 나타낸 것이다. 즉, 다음 홉 값의 일차원적 배열을 순차적으로 스캔하면서 이웃하는 값이 서로 다를 경우 압축 비트맵의 해당 자리에 1을 배당하고 같은 경우는 0을 배당하여 압축 비트맵을 도 9(b)와 같이 작성한다. 비트맵이 1이 될 때마다 압축 다음 홉에 해당 다음 홉 값을 채워 도 9(c)와 같이 압축 다음 홉(CNHA)을 작성한다. 도 9는 이러한 압축기법을 나타낸 것이다.
압축 비트맵(CBM)과 압축 다음 홉(CNHA)으로 구성된 코드워드(CWA:Code Word Array)를 메모리상에 저장한다. 코드워드는 압축 비트맵을 16비트 단위로 나누어(압축비율을 16:1로 하기 위해)배열하고 이를 맵(Map)으로 명명한다. 이전 워드(word)의 맵(Map)들에 누적된 '1'의 개수를 베이스(Base)라 명명하여 마차가지로 같은 주소상에 배열한다. 도 10은 코드워드(CWA)의 구조를 나타낸다. 베이스는 압축 다음 홉(CNHA)으로부터 '다음 홉 정보'를 얻는데 사용된다. 여기서 유의해야할 사항은 현재 워드의 맵(Map)이 0000(16)이면 베이스 자리에 누적된 '1'의 개수를 저장하지 않고 '다음 홉'의 출력포트 번호를 직접 저장한다는 사실이다. 맵(Map)이 0000(16)이라는 것은 이 구간에서의 다음 홉이 동일한 값이라는 것을 의미하므로 베이스 값을 저장할 필요가 없다. 게속 이어지는 코드워드(CWA)에서 맵(Map)=0000(16)이 아닌 최초의 베이스 자리만으로 누적된 1의 정보를 충분히 알 수 있기 때문이다.
.........(3)
이것은 본 발명의 중요 특징으로 , 많은 경우에 걸쳐 2회의 메모리 접근으로 다음 홉을 구할 수 있다. 이렇게 맵(Map)과 베이스가 완성되면 압축 다음 홉(CNHA)를 뒤이어 연속적으로 배열한다.
압축 비트맵(CBM)을 16비트 단위로 나누어 저장하였으므로 우리는 다음 홉(NHA)을 16:1로 축소하였다. 따라서 IP 주소중 세그먼트 16비트를 제외한 하위 16비트 주소(x0x1... x15) 중에 k-4비트(x0x1... xk-4-1, k:오프셋의 길이) 를 코드워드(CWA)의 주소로 활용하여 맵과 베이스 값은 다음 홉의 출력포트 값이 된다. 그렇지 않으면 k 비트 중 코드워드의 주소로 활용한 부분을 제외한 4비트 주소의 십진수 갑을 ω(0에서15)라 했을 때, 현재의 맵의 1자리부터 ω 자리까지 누적된 '1'의 개수(|ω|)를 다시 구한다. 이를 현재의 베이스 값에 더하여 그 결과를 압축 다음 홉(CNHA)을 찾기 위한 주소로 사용한다.
결국 압축 다음 홉(CNHA)의 주소(ACHNA)는
.................(4)
이 된다. Pn은 세그먼트에 저장된 포인터이고, 2k-4는 코드워드(CWA)의 최대 길이 (압축 다음 홉(CNHA)을 제외한 길이), Bm은 현재 워드의 베이스 값이다.
압축 알고리즘의 수행 여부는 다음 몇가지 조건을 충족해야 한다. 첫째, 초기 설계과정에서 배당된(확정된) 메모리 크기에 비해 만들어진(재가공된) 포워딩표의 크기가 작아야 한다. 이 조건을 충족하기 위하여 압축수행을 위한 오프셋 임계치(kt, k>kt이면 압축)를 조절해야 한다. 즉, 재가공된 포워딩표의 크기가 하드웨어로 결정된 메모리에 비해 여유가 있으면 압축 알고리즘을 적용할 k의 임계치를 상향 조절하여(예를 들면 k=8인 경우는 프리픽스가 24비트로 인터넷상에서 네트웍 주소로 가장 많이 사용) 압축알고리즘을 적용하지 않아 단지 2번의 메모리 접속만으로 출력 포트값을 얻을 수 있는 IP 영역을 확대한다. 그러나 포워딩표의 크기가 증가하면 압축 알고리즘을 적용할 임계치 k값을 낮추어(예를 들면 4이상)많은 범위에 걸쳐 압축알고리즘을 수행한다. 이 경우 메모리 접근 횟수가 3회인 경우가 확률적으로 높아도 감수해야 한다.
둘째 압축을 수행하는 입계 오프셋의 값을 증가시키면 압축하지 않는 부분이 증가하므로 재가공된 포워딩 테이블의 크기가 증가하게 된다. 특히, 특정 kt에서 증가율이 급해진다. 즉, 임계 오프셋이 특정값이 되면 갑자기 소요 메모리가 급격히 증가하는데, 이때의 값을 오프셋 임계치로 결정한다.
셋째, 일단 압측된 코드워드 중에서도 2회의 메모리 접근으로 원하는 정보를 얻을 수 있는 경우(Map=0000(16))와 3회의 메모리 접근으로 원하는 정보를 구할 수 있는 것으로 구분되는데, 이들간의 비율이 특정수치 이상이 되어서는 안도니다. 압축을 통해 메모리의 크기를 줄이는 것은 효과적인 설계이지만 그 결과 3회의 메모리 접근을 통해서 원하는 다음 홉 정보를 얻는 비율이 높아지면 초고속 스위칭이라는 최초의 목표를 달성하기 어려워지기 때문이다. 특히, 2회와 3회의 접속을 단순히 1회차 일뿐이라는 판단은 잘못된 것이다. 모사 실험과정에서 1회의 메모리 접속은 20ns, 2회의 메모리 접속은 45ns, 3번의 메모리 접속은 177ns 정도가 소요되어 (가산기, 병렬16비트 가산기의 소요시간 때문에)하드웨어 구현시 이들간의 차이는 확연히 드러난다. 따라서 이들간의 룩업 비용은 달리 설정하여야 한다.
도 11은 본 발명에 의한 초고속 라우터의 구성을 나타내는 블록도이다.
본 발명에 의한 초고속 라우터는 입력된 IP 패킷의 헤더부를 분석하여 상위 16비트 세그먼트와 하위 IP 주소를 분리하여 출력하는 IP 헤더 분석부(81)와; 상기 IP 헤더 분석부(81)에서 출력되는 세그먼트 주소를 저장하는 세그먼트 메모리부(82)와; 상기 IP 헤더 분석부(81)에서 출력되는 하위 IP 주소를 시프트하여 16진수로 변환하는 하위 IP 주소 시프터(84)와; 상기 세그먼트 메모리부(82)에서 출력되는 세그먼트를 래치하는 래치부(83)와; 상기 하위 IP 주소 시프터(84)와 상기 래치부(83)에서 출력되는 세그먼트와 하위주소를 처리하여 다음 홉 정보를 출력하는 제1 및 제2 룩업 엔진 타이밍 발생부(86, 88)와; 상기 제1 및 제2 룩업 엔진(86, 88)에서 출력되는 다음 홉 정보를 선택하여 출력하는 선택기(92)와; 다음홉 정보를 저장하는 다음 홉 테이블(85)과; 코드 워드를 저장하는 코드워드 저장부(89)와; 상기 각 부를 제어하여 IP 주소를 동일 세그먼트를 가진 집합으로 분류하고 상기 집합에서 가장 긴 프리픽스에서 16을 빼서 오프셋으로 하고, 상기 IP 주소에서 하위 16비트부터 16-오프셋까지를 상기 다음 홉 테이블(85)의 주소로 하여 다음 홉 정보를 검출하도록 제어하는 중앙처리부(91)와;로 구성된다.
IP 헤더 분석부(81)는 직렬 형태의 헤더부를 분석하고 세그먼트 자료를 읽어내는데 필요한 타이밍을 만든다. IP 패킷 신호가 직렬 형태로 입력되면 프레임 동기신호가 검출되어 전체 블록의 동작이 시작된다. 32 클럭 단위로 IP의 헤더부분이 나누어지고 5번째 워드가 원격지 주소이므로 DesAdd-en 신호가 '1'이 되면서 세그먼트 메모리(82)로부터 정보를 읽어오기 위한 타이밍 신호(notSegMemRD, notSegMemCS)가 발생된다. 세그먼트 정보는 세그먼트 래치신호(SegMem-lat)에 의해 래치부(83)에 저장된다. 오프셋 길이(k)는 읽어온 세그먼트 정보의 최하위 4비트로부터 알 수 있다.
하위 IP 주소 시프터(84)는 IP 헤더 분석부(81)에서 출력된 IP 주소의 하위 16비트 값을 오프셋 길이를 이용하여 유효한 비트만을 추출하여 하위자리에서부터 상위로 유효비트만큼 채워나가고, 상위비트는 '0'로 채운다. 이는 유효 주소를 16진수로 변환하기 위해서이다.
래치된 세그먼트 정보와 16진수로 변환된 유효하위주소는 제1및 제2 룩업 엔진(86, 88)으로 전달된다. 최상위 1비트(d)는 두 엔진의 동작상태를 결정한다. d=0이면 제1룩업 엔진 및 타이밍 발생부(86)가 동작하고 제2룩업 엔진 및 타이밍 발생부(88)는 홀딩(holding) 상태가 된다. 우선 세그먼트 정보중 포인터 자리의 값이 256 이하이면 포인터 값이 다음 홉 값이 되어 출력된다. 이때 다음 홉 테이블(85) 접근을 위한 타이밍은 불필요하다. 포인터 값이 256 이상이면 다음 홉 테이블(85)로부터 다음 홉 정보를 읽어와야 한다. 이를 위해 내부 타이밍 발생기는 메모리 접근을 위한 주소(포인터+Sip[k-1...0])와 타이밍을 발생시킨다. 그 결과 다음 홉 테이블(85)로부터 다음 홉 출력포트를 알 수 있고, 이를 선택기(92)를 통해 출력시킨다.
d=1이면 제2룩업 엔진 및 타이밍 발생부(88)이 동작하고 제1룩업 엔진 및 타이밍 발생부(86)은 홀딩상태가 된다. 우선 세그먼트 정보중 포인터 자리의 값과 Sip[k-1...4]를 이용하여 코드워드 정보를 읽어들인다. 맵 값을 확인하여 그 값이 0000 이면 베이스 값이 다음 홉이므로 출력시킨다. 0000이 아니면 식(3)에 의하여 압축 다음 홉의 주소를 계산하고 관련 타이밍에 의해 다음 홉 정보를 읽어들여 출력한다.
선택기(92)는 제1룩업 엔진(86)과 제2룩업 엔진(88)로부터 전달받은 다음 홉 정보를 다음 홉 선택신호(En_d0, En_d1)를 이용하여 선택하고, 그 선택된 다음 홉 정보를 최종 출력단으로 전달한다.
이상에서 살펴본 바와 같이 본 발명에 의하면 IP 주소의 유효 주소가 가변적이라는 사실을 이용하여 라우팅 테이블과 포워딩 테이블의 크기를 줄여 메모리 용량을 줄여서 고속의 SRAM 사용할 수 있고, 압축시 메모리 접속수가 증가하지만, 독창적인 압축메모리 구조를 이용하여 압축시에도 메모리 접속수를 줄여 고속성을 유지할 수 있다.

Claims (9)

  1. 32비트 IP 주소(41) 중에서 유효한 주소(프리픽스)를 활용하여 최상위 16비트는 세그먼트(42)로 사용하고, 나머지 비트 중 유효한 주소비트를 오프셋 주소(43)로 사용하는 단계와;
    상기 유효한 주소가 길거나 다른 이유로 소요 메모리 크기가 증가할 경우 라우팅 정보의 압축 유무를 결정하는 단계와;
    216개 쌍의 셀을 구비한 세그먼트 테이블(44)을 제공하고, 상기 세그먼트(42)의 값에 따라 세그먼트 테이블(44)의 오프셋 부분의 큰 그룹의 시작 주소를 지시하는 단계와;
    상기 유효 주소에 근거한 오프셋에 대하여 그 비트수가 특정비트보다 작은 경우 압축된 정보를 저장하고 있는 메모리에 접속하지 않고 직접적으로 다음홉을 저장하고, 그 비트수가 상기 특정비트보다 큰 경우, 2kn(kn: 오프셋의 길이)의 다음 홉 정보를 구비하는 다음 홉 테이블(45-0, 45-1, ..., 45-n)에서 대응하는 다음 홉 정보를 제공하는 단계와;로 구성되는 것을 특징으로 하는 초고속 라우팅 방법.
  2. 제 1항에 있어서, 동일한 세그먼트를 가진 일련의 집합에서 가장 긴 유효한 주서(프리픽스)의 길이에 16을 뺀 수치를 '오프셋길이(kn)'로 하고, IP 주소부 중에 하위 16비트부터 16-kn 비트까지를 다음 홉의 주소로 사용하는 것을 특징으로하는 초고속 라우팅 방법.
  3. 제 1항에 있어서, 상기 세그먼트 테이블(44)은 현재의 IP 주소에 대해 압축알고리즘 채택여부를 지시하는 압축여부비트와; 코드워드(CWA)용 '포인터'이거나 '다음 홉 정보'를 표시하는 다음홉/포인터부와; 오프셋 길이를 나타내는 오프셋 표시비트와;로 구성되는 것을 특징으로 하는 초고속 라우팅 방법.
  4. 제1항에 있어서, 상기 오프셋길이(k)가 임계치(Kt)를 넘으면 메모리 크기와 메모리 접근회수, 프리픽스 길이의 분포 등을 고려하여 압축유무를 결정하는 것을 특징으로 하는 초고속 라우팅 방법.
  5. 제 1항에 있어서, 상기 다음 홉 테이블(45)은
    1) 동일 세그먼트를 갖는 프리픽스들을 라우팅 테이블로부터 입력받고,
    2) 프리픽스 길이에 따라 순서적으로 분류하고,
    3) 집합 P의 '최대 프리픽스 길이'에 16을 뺀 값을 오프셋 길이(kn)로 정하고,
    4) 각 프리픽스(pi)별로 전체 다음 홉 배열내에서 해당 프리픽스의 구간(시작주소, 끝 주소)을 계산하고, 이 구간에 해당 프리픽스를 위한 출력포트 값을 배당하는 방법으로 산출하는 것을 특징으로 하는 초고속 라우팅 방법.
  6. 제 3항에 있어서, 상기 다음 홉/포인터부는 이값이 256보다 작으면 '다음 홉정보'이고, 아니면 '포인터'인 것을 특징으로 하는 초고속 라우팅 방법.
  7. 제 3항에 있어서, 상기 코드워드(CWA)가 모두 '0'으로 되면 베이스에 다음홉의 정보를 저장하는 것을 특징으로 하는 초고속 라우팅 방법.
  8. 제5항에 있어서, 상기 구간 계산방법은 오프셋 길이가 k(=lmax-16)라면, k 비트 중에서 자신의 프리픽스 길이에서 16을 뺀 값보다 낮은 자리는 '1'로, 그외는 '0'으로 하여 시작점 마스크를 구하고, 자신의 프리픽스 길이에 16을 뺀 값보다 높은 자리는 '1'로 낮은 자리는 '0'로 하여 끝점 마스크를 구하여 시작점 마스크와 세그먼트를 AND 취하여 배열내의 '시작점 주소'를 구하고 끝점 마스크와 오프셋을 OR 취하여 '끝점주소'를 구하는 것을 특징으로 하는 초고속 라우팅 방법.
  9. 입력된 IP 패킷의 헤더부를 분석하여 상위 16비트 세그먼트와 하위 IP 주소를 분리하여 출력하는 IP 헤더 분석부(81)와;
    상기 IP 헤더 분석부(81)에서 출력되는 세그먼트 주소를 저장하는 세그먼트 메모리부(82)와;
    상기 IP 헤더 분석부(81)에서 출력되는 하위 IP 주소를 시프트하여 16진수로 변환하는 하위 IP 주소 시프터(84)와;
    상기 세그먼트 메모리부(82)에서 출력되는 세그먼트를 래치하는 래치부(83)와;
    상기 하위 IP 주소 시프터(84)와 상기 래치부(83)에서 출력되는 세그먼트와 하위주소를 처리하여 다음 홉 정보를 출력하는 제1 및 제2 룩업 엔진(86, 88)과;
    상기 제1 및 제2 룩업 엔진(86, 88)에서 출력되는 다음 홉 정보를 선택하여 출력하는 선택기(92)와; 다음 홉 정보를 저장하는 다음 홉 테이블(85)과;
    코드 워드를 저장하는 코드워드 저장부(89)와;
    상기 각 부를 제어하여 IP 주소를 동일 세그먼트를 가진 집합으로 분류하고 상기 집합에서 가장 긴 프리픽스에서 16을 빼서 오프셋으로 하고, 상기 IP 주소에서 하위 16비트부터 16-오프셋까지를 상기 다음 홉 테이블(85)의 주소로 하여 다음 홉 정보를 검출하도록 제어하는 중앙처리부(91)와;로 구성되는 것을 특징으로 하는 초고속 라우터.
KR1020000038246A 2000-07-05 2000-07-05 초고속 라우터 및 그 방법 KR100340953B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000038246A KR100340953B1 (ko) 2000-07-05 2000-07-05 초고속 라우터 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000038246A KR100340953B1 (ko) 2000-07-05 2000-07-05 초고속 라우터 및 그 방법

Publications (2)

Publication Number Publication Date
KR20020003787A KR20020003787A (ko) 2002-01-15
KR100340953B1 true KR100340953B1 (ko) 2002-06-20

Family

ID=19676317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000038246A KR100340953B1 (ko) 2000-07-05 2000-07-05 초고속 라우터 및 그 방법

Country Status (1)

Country Link
KR (1) KR100340953B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102187938B1 (ko) * 2019-06-26 2020-12-08 넷마블 주식회사 Ip 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100541846B1 (ko) * 2002-11-27 2006-01-11 한국전자통신연구원 3 단계 테이블로 구성된 아이피 주소 룩업 시스템 및 그방법
KR20050066903A (ko) * 2003-12-27 2005-06-30 한국전자통신연구원 고속 라우팅 시스템에서의 패킷 포워딩 처리장치 및 그를이용한 라우팅 룩업 방법
CN101247337B (zh) * 2008-02-18 2012-11-21 华为技术有限公司 一种报文转发的方法和设备
WO2018195229A1 (en) * 2017-04-18 2018-10-25 Atsushi Kasuya Packet forwarding mechanism
CN115883455A (zh) * 2022-12-09 2023-03-31 苏州盛科通信股份有限公司 一种压缩路由信息的方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102187938B1 (ko) * 2019-06-26 2020-12-08 넷마블 주식회사 Ip 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치

Also Published As

Publication number Publication date
KR20020003787A (ko) 2002-01-15

Similar Documents

Publication Publication Date Title
JP3735471B2 (ja) パケット中継装置およびlsi
EP1168723B1 (en) Method and apparatus for longest matching prefix determination in a communication network
US6581106B1 (en) Fast address lookup in routing tables
US7043494B1 (en) Fast, deterministic exact match look-ups in large tables
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
CN100531199C (zh) 有界索引可扩展的基于散列的IPv6地址查找方法
KR100748771B1 (ko) 최장의 정합 어드레스 탐색장치 및 방법
US7324519B2 (en) Method and apparatus for encoding a plurality of pre-defined codes into a search key and for locating a longest matching pre-defined code
US7286534B2 (en) SRAM based cache for DRAM routing table lookups
US6963924B1 (en) IP routing lookup scheme and system for multi-gigabit switching routers
CA2365395C (en) Default route coding
Crescenzi et al. IP address lookupmade fast and simple
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
US6917954B2 (en) Load balancing in IP address lookup
US7042884B2 (en) Network address forwarding table lookup apparatus and method
US7085235B2 (en) Method and apparatus for constructing and searching IP address
KR100340953B1 (ko) 초고속 라우터 및 그 방법
US20040210588A1 (en) Methods and apparatus for address lookup
US20050114393A1 (en) Dynamic forwarding method using binary search
US7570644B2 (en) Routing method for a telecommunications network and router for implementing said method
Tzeng Routing table partitioning for speedy packet lookups in scalable routers
US7778253B2 (en) Data switch, and communication system using the data switch
Nie et al. IP address lookup using a dynamic hash function
KR100378599B1 (ko) 주소 메모리 블록의 간섭 인덱싱에 기반한 라우팅 테이블검색 방법
KR100504387B1 (ko) Sram과 해슁을 이용한 ip 어드레스 검색 방법 및하드웨어 구조

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee