KR100811881B1 - 패킷 전송 경로 선택 장치 및 그 방법 - Google Patents

패킷 전송 경로 선택 장치 및 그 방법 Download PDF

Info

Publication number
KR100811881B1
KR100811881B1 KR1020060041664A KR20060041664A KR100811881B1 KR 100811881 B1 KR100811881 B1 KR 100811881B1 KR 1020060041664 A KR1020060041664 A KR 1020060041664A KR 20060041664 A KR20060041664 A KR 20060041664A KR 100811881 B1 KR100811881 B1 KR 100811881B1
Authority
KR
South Korea
Prior art keywords
hop
packet
path
identifier
selecting
Prior art date
Application number
KR1020060041664A
Other languages
English (en)
Other versions
KR20070061071A (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 한국전자통신연구원
Publication of KR20070061071A publication Critical patent/KR20070061071A/ko
Application granted granted Critical
Publication of KR100811881B1 publication Critical patent/KR100811881B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by 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/24Multipath

Landscapes

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

Abstract

본 발명은 ECMP를 지원하는 패킷 처리 시스템에서의 패킷 전송 경로 선택 장치 및 그 방법에 관한 것으로서, 유입된 패킷의 필드 값을 추출하여 해싱(Hashing)한 해시값을 상기 ECMP 최대수로 나눈 나머지를 Next-Hop 구별자로 선택하는 단계; 상기 선택한 Next-Hop 구별자에 해당되는 Next-Hop이 존재하는지를 판단하는 단계; 상기 판단 결과, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 존재하는 경우, 상기 선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 상기 유입된 패킷을 포워딩하고, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 존재하지 않는 경우 새로운 Next-Hop 구별자를 재선택하여, 상기 재선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 상기 유입된 패킷을 포워딩하는 단계를 포함하여 구성됨으로써, 다중 경로 지원 패킷 처리 시스템에서 고속 포워딩 기능을 수행할 수 있고 경로 변경에 따른 기존 경로 변경이 없기 때문에 패킷 순서가 뒤바뀌는 현상이나 패킷 손실을 방지할 수 있도록 한 발명입니다.
ECMP, 라우터, 해싱, Next-Hop, 재선택

Description

패킷 전송 경로 선택 장치 및 그 방법{Apparatus and method for selecting optimal packet-transmitting path}
도 1은 패킷 포워딩 기능을 수행하기 위한 종래의 라우터 블록 구성을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 라우터에서의 패킷 전송 경로 선택 장치의 블록 구성을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 라우터에서의 패킷 전송 경로 선택 방법에 대한 동작 흐름을 나타낸 도면이다.
*도면의 주요 부분에 대한 부호의 설명*
100 : 패킷 수신기 110 : 패킷 포워딩 엔진
111 : 필드값 추출부 112 : 제1 경로 선택부
113 : 경로 재계산부 114 : 제2 경로 선택부
본 발명은 패킷 전송 경로 선택 장치 및 그 방법에 관한 것으로, 특히 동일 비용 다중 경로(Equal Cost Multi-Path: ECMP)를 지원하는 라우터에서 패킷의 최적 전송 경로를 선택하기 위한 장치 및 그 방법에 관한 것이다.
일반적으로, 패킷을 송신함에 있어서는 여러 경로 중 특정 송신 경로를 선택하게 되는데, 패킷의 전송 경로 선택을 위한 방식중 하나의 방식은 동일 비용 다중 경로(ECMP : Equal Cost Multi-Path) 방식이다. ECMP를 지원하는 패킷 처리 시스템 예를 들면, 라우터의 패킷 포워딩 엔진에서 여러 개의 ECMP 경로 중에서 하나의 경로를 선택하는 기능을 수행한다. 여기서, 패킷 전송 경로 선택의 기준은 패킷 처리 성능(Performance)이 보장되고 경로 추가 및 삭제에 따른 기존 패킷의 경로 변경 비율(Disruption)이 작아야 하며 부하 분산(Load Balancing)이 최적화되어야 한다. IETF의 RFC2992 표준화 문서에 설명되어 있는 기존의 경로 선택을 위한 각각의 방식에 대하여 간단하게 설명해 보기로 하자.
패킷의 전송 경로 선택 방식은 3가지 방식으로 구분될 수 있다.
패킷의 전송 경로 선택 방식중 첫 번째 방식은 Modulo-N 방식인데, Modulo-N 방식은 유입된 패킷 헤더의 특정 필드(예를 들면, CRC16 필드 혹은 IP 주소 필드)에 대한 필드값을 해싱(Hashing)하여 획득한 키(Key)값을 이용해서 동일 비용의 다중 경로(ECMP) 중에서 하나의 경로를 선택하는 방식이다.
이러한 Modulo-N 방식의 성능(Performance)은 한 번의 해시 함수를 수행하여 경로를 찾을 수 있다. 여기서, 경로 추가 및 삭제에 따른 기존 패킷의 경로 변경 비율(Disruption)은 (N-1)/N이며, 여기서 N은 선택할 수 있는 전체 경로수이다.
패킷의 전송 경로 선택 방식 중 두 번째 방식은 해쉬 임계(Hash Threshold) 방식으로, 상기한 Modulo-N 방식에 고정 크기의 영역(Region) 개념을 도입하여 패킷의 경로 변경 비율 값을 낮춘 방식이다. 이러한 해쉬 임계 방식의 성능은 O(1)이고, 패킷의 경로 변경 비율 값은 [1/4, 1/2]이다.
한편, 패킷의 전송 경로 선택 방식 중 세 번째 방식은 HRW(Highest Random Weight) 방식으로, 상기한 해쉬 임계 방식에서 고정 크기 영역 대신에 가변 크기 영역을 적용하여 패킷의 경로 변경 비율 값을 최적화하는 방식이다. 이 방식의 성능은 O(N)이지만 패킷의 경로 변경 비율 값은 1/N이다.
상기한 세 가지 방식에서 최적의 패킷 전송 경로를 선택하는데 있어 패킷의 경로 변경 비율 값이 매우 중요하다. 그 이유는 패킷의 경로 변경 비율값이 커지게 되면 최종 목적지에 도착한 패킷의 순서가 바뀌는 현상이 발생될 확률이 높아지게 되어 패킷 재전송에 의해 네트워크에 부하를 더 주게 되며 'ping', 'traceroute' 와 같은 디버깅 명령어를 이용하여 경로 상태를 파악할 수 없게 되기 때문이다.
따라서, 패킷 처리 시스템에서는 자체 시스템 내의 패킷 포워딩 성능과 전체 네트워크의 부하를 줄이기 위해 패킷의 경로 변경 비율 값이 작아야 하는 것이다.
본 발명은 상기한 종래 기술에 따른 문제점을 해결하기 위한 것으로서, 본 발명의 목적 및 이루고자 하는 기술적 과제는 ECMP를 지원하는 패킷 처리 시스템에 유입되는 패킷을 다중 경로 중에서 하나의 경로를 선택하여 송신할 때 최적의 패킷 포워딩 성능과 최소의 패킷의 경로 변경 비율(disruption)을 가지게 하는 경로를 선택하는 패킷 전송 경로 선택 장치 및 그 방법을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 ECMP를 지원하는 패킷 처리 시스템에서의 패킷 전송 경로 선택 방법의 일 측면에 따르면, 유입된 패킷의 필드 값을 추출하여 해싱(Hashing)하고, 해싱(hashing)된 해시값을 상기 ECMP 최대수로 나눈 나머지를 Next-Hop 구별자로 선택하는 단계;
상기 선택한 Next-Hop 구별자에 해당되는 Next-Hop이 인덱스 테이블에 존재하는지를 판단하는 단계;
상기 판단 결과, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 인덱스 테이블에 존재하는 경우, 선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 단계를 포함할 수 있다.
이때, 상기 판단하는 단계에서 판단 결과 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 상기 인덱스 테이블에 존재하지 않는 경우, 최적의 패킷 포워딩 경로를 선택하기 위한 Next-Hop 구별자를 재선택하는 단계; 상기 재선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 단계를 포함하는 것이 바람직하다.
상기 Next-Hop 구별자를 재선택하는 단계는, 가용한 Next-Hop 개수를 초과하지 않는 소수(Prime Number)를 구하고 구해진 소수로 Next-Hop 구별자를 나누어 그 나머지를 Next-Hop 인덱스(Index)에 할당하는 단계; 상기 할당된 인덱스로 Next-Hop 인덱스 테이블을 검색하여 검색된 값을 새로운 Next-Hop 구별자로 선택하는 단계를 포함하는 것이 바람직하다.
또한, 상기 패킷을 포워딩하는 단계는, 상기 해싱된 해시값을 최대 ECMP Next-Hop 개수로 나눈 나머지를 소수(Prime Number)로 나눈 값을 키 값으로 하여 인덱스 테이블에서 패킷 전송 경로를 선택한 후 선택된 경로를 통해 유입된 패킷을 포워딩하는 것이 바람직하다.
한편, 본 발명에 따른 ECMP를 지원하는 패킷 처리 시스템의 패킷 전송 경로 선택 장치의 일 측면에 따르면, 유입된 패킷의 필드 값을 추출하여 해싱(Hashing)하고, 해싱(hashing)된 해시값을 상기 ECMP 최대수로 나눈 나머지를 Next-Hop 구별자로 선택하는 Next-Hop 선택부;
상기 Next-Hop 선택부에서 선택한 Next-Hop 구별자에 해당되는 Next-Hop이 인덱스 테이블에 존재하는지를 판단하고, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 인덱스 테이블에 존재하는 경우, 선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 경로 선택부를 포함할 수 있다.
이때, 상기 경로 선택부는, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 인덱스 테이블에 존재하지 않는 경우, 최적의 패킷 포워딩 경로를 선택하기 위한 Next-Hop 구별자를 재선택하고, 상기 재선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 경로 재선택부를 포함하는 것이 바람직하다.
상기 경로 재선택부는, 가용한 Next-Hop 개수를 초과하지 않는 소수(Prime Number)를 구하고 구해진 소수로 Next-Hop 구별자를 나누어 그 나머지를 Next-Hop 인덱스(Index)에 할당한 후, 할당된 인덱스로 Next-Hop 인덱스 테이블을 검색하여 검색된 값을 새로운 Next-Hop 구별자로 선택하는 Next-Hop 재선택부를 포함할 수 있다.
또한, 상기 경로 선택부는, 상기 Next-Hop 선택부에서 해싱된 해시값을 최대 ECMP Next-Hop 개수로 나눈 나머지를 소수로 나는 값을 키 값으로 하여 인덱스 테이블에서 패킷 전송 경로를 선택한 후 선택된 경로를 통해 유입된 패킷을 포워딩하는 것이 바람직하다.
이하, 본 발명의 기술적 사상을 명확화하기 위해, 본 발명의 실시예에 근거하여 그 구성 및 동작을 첨부 도면을 참조하여 상세히 설명하되 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다.
본 발명의 이해의 편의를 도모하기 위해 우선 본 발명이 제공하는 기술적 사상의 핵심을 제시하면, 라우터로 유입되는 패킷을 송신할 수 있는 동일 비용의 경로가 여러 개 존재할 경우 그 중 하나의 경로를 패킷 처리 성능(Performance), 경로 추가 및 삭제에 따른 패킷의 선택 경로 변경 비율(Disruption) 및 부하 분담(Load Balancing) 측면을 고려하여 최적 경로를 선택하는 것이다.
이하, 본 발명에 따른 라우터에서의 패킷 전송 경로 선택 장치 및 그 방법에 대한 바람직한 실시예에 대하여 첨부한 도면을 참조하여 상세하게 설명해 보기로 하자.
도 1은 일반적인 패킷 포워딩 기능을 수행하기 위한 라우터의 내부 블록 구성을 개략적으로 나타낸 도면이다.
도 1에 도시된 바와 같이 패킷의 송수신 처리를 위해 라우터는 패킷 수신기(100), 패킷 송신기(120) 및 패킷 포워딩 엔진(Packet Forwarding Engine)(110)을 포함할 수 있다.
패킷 수신기(100)는 외부 장치로부터 유입되는 패킷을 수신하여 수신된 패킷을 순차적으로 패킷 포워딩 엔진(110)으로 제공한다. 여기서, 패킷 포워딩 엔진(110)으로 제공되는 패킷에는 소스 IP 어드레스, 목적지 IP 어드레스, CRC 프로토콜의 종류 및 TCP/UDP 포트 번호 등의 정보를 포함할 수 있다.
패킷 포워딩 엔진(110)은 패킷 포워딩 테이블을 가지고 있으며, 패킷 수신기(100)로부터 제공되는 패킷에 포함된 목적지 IP 어드레스와 출력포트 간의 매핑(Mapping)을 위해 상기 패킷 포워딩 테이블을 이용하여 패킷의 출력포트를 결정하고, 결정된 출력 포트 정보 및 패킷 수신기(100)로부터 수신된 패킷을 패킷 송신기(120)로 제공한다.
패킷 송신기(120)는 패킷 포워딩 엔진(102)에 의해 결정된 출력포트를 통해 목적지 IP 어드레스로 수신된 패킷을 송신하는 것이다.
이하, 도 2를 참조하여 도 1에 도시한 일반적인 ECMP를 지원하는 라우터 즉, 패킷 처리 시스템에서 패킷을 전송하기 위한 최적의 경로를 선택하기 위한 본 발명에 따른 패킷 전송 경로 선택 장치에 대하여 구체적으로 설명한다.
도 2는 본 발명의 바람직한 일실시예에 따른 ECMP를 지원하는 패킷 처리 시스템에서 다중 경로 중 최적화된 특정 경로를 선택할 수 있는 패킷 전송 경로 선택 장치에 대한 내부 블록 구성을 나타낸 도면이다.
도 2에 도시된 바와 같이, 본 발명에 따른 패킷 전송 경로 선택 장치는, 필드값 추출부(111), 제1 경로 선택부(112), 경로 재계산부(113) 및 제2 경로 선택부(120)를 포함할 수 있다.
필드 값 추출부(111)는 도 1에 도시된 패킷 수신기(100)로부터 수신한 패킷의 특정 필드의 필드 값들의 해시값을 추출하여 제1 경로 선택부(112)로 제공한다. 제1 경로 선택부(112)는 필드값 추출부(111)로부터 제공되는 상기 각 필드의 해시값을 최대 Next-Hop 수로 나누어 그 나머지를 Next-Hop 구별자로 선택한다. 다음으로, 제1 경로 선택부(112)는 상기에서 선택된 Next-Hop 구별자가 나타내는 Next-Hop이 패킷 포워딩 테이블에 존재하면 그 경로를 최적 경로로 선택하고, 상기 선택된 Next-Hop 구별자가 나타내는 Next-Hop 경로가 패킷 포워딩 테이블에 존재하지 않을 경우에는 Next-Hop 구별자를 재계산하기 위하여 상기 선택된 Next-Hop 구별자를 경로 재계산부(113)로 제공한다.
경로 재계산부(113)는 제1 경로 선택부(112)에서 최적의 Next-Hop 경로가 선택되지 않은 경우, 새로운 Next-Hop 구별자를 얻기 위하여 가용한 Next-Hop 총 수를 초과하지 않는 소수(Prime Number)를 구하고 구해진 소수로 상기 제1 경로 선택 부(112)에서 제공되는 Next-Hop 구별자를 나누어 그 나머지를 Next-Hop 인덱스에 할당하게 되는 것이다.
다음으로, 제2 경로 선택부(114)는 상기한 경로 재계산부(113)에서 할당된 새로운 Next-Hop 인덱스를 Next-Hop 인덱스 테이블의 인덱스로 선택하여 Next-Hop 인덱스 테이블 값을 구한다. 이렇게 검색된 값이 새로운 Next-Hop 구별자이며 이를 통해 최적의 패킷 전송 경로를 선택하여 패킷 송신기(120)로 패킷을 포워딩하게 되는 것이다.
이와 같은 구성을 갖는 본 발명에 따른 패킷 전송 경로 선택 장치에 대한 구체적인 동작에 대하여 살펴보자.
먼저, 필드 값 추출부(111)는 도 1에 도시된 패킷 수신기(100)로부터 수신한 패킷의 특정 필드의 필드 값들의 해시값을 추출하여 제1 경로 선택부(112)로 제공한다. 여기서 특정 필드는 송신지(Source) IP 어드레스 필드, 목적지(Destination) IP 어드레스 필드, CRC, 프로토콜 종류(UDP or TCP) 필드, TCP/UDP 포트 번호 필드 중 적어도 하나 이상을 사용될 수 있다. 따라서, 본원발명에 의해 추출되는 필드값은 수신된 패킷의 필드 중에서 Next-Hop와 관련된 필드를 말한다.
제1 경로 선택부(112)는 필드값 추출부(111)로부터 제공되는 각 필드의 해시값을 최대 Next-Hop 수로 나누어 그 나머지를 Next-Hop 구별자로 선택한 다음, 상기 선택된 Next-Hop 구별자가 나타내는 Next-Hop이 패킷 포워딩 테이블에 존재하면 그 경로를 최적 경로로 선택한다. 만일, 상기 선택된 Next-Hop 구별자가 나타내는 Next-Hop 경로가 패킷 포워딩 테이블(인덱스 테이블)에 존재하지 않을 경우에는 Next-Hop 구별자를 재계산하기 위하여 상기 선택된 Next-Hop 구별자를 경로 계산 부(113)로 제공한다.
예를 들면, 해싱함수가 목적지 IP 주소의 마지막 바이트를 사용한다고 할때, 그 값이 10이고 선택 가능한 전체 경로 수가 8개이면 해싱 결과 값은 2(10 modulus 8)가 된다. 이 값을 Next-Hop 구별자로 선택하여, Next-Hop 2 경로가 패킷 포워딩 테이블에 존재하는지 검색한다. 검색 결과 Next-Hop 2 경로가 인덱스 테이블에 존재하는 경우 패킷을 Next-Hop 2번으로 패킷 송신기(120)를 통해 송신하고 Next-Hop 2 경로가 인덱스 테이블에 존재하지 않는 경우 키 값으로 이용하여 Next-Hop 구별자를 재계산하기 위하여 Next-Hop 구별자를 경로 재계산부(113)로 제공한다.
경로 재계산부(113)는 제1 경로 선택부(112)에서 최적의 Next-Hop 경로가 선택되지 않은 경우, 새로운 Next-Hop 구별자를 구하기 위하여 가용한 Next-Hop 총 수를 초과하지 않는 소수(Prime Number)로 상기 제1 경로 선택부(112)에서 제공되는 Next-Hop 구별자를 나누어 그 나머지를 Next-Hop 인덱스에 할당하게 되는 것이다.
경로 재선택부(114)는 상기한 경로 재계산부(113)에서 할당된 새로운 Next-Hop 인덱스를 Next-Hop 인덱스 테이블의 인덱스로 선택하여 Next-Hop 인덱스 테이블 값을 구한다. 이렇게 검색된 값이 새로운 Next-Hop 구별자이며 이를 통해 최적의 패킷 전송 경로를 선택하여 패킷 송신기(120)로 패킷을 포워딩하게 되는 것이다.
이 때, 소수를 구하거나 Next-Hop 인덱스 테이블 값을 변경하는 시점은 경로가 추가되거나 삭제될 경우에만 수행되기 때문에 패킷 포워딩 성능과는 무관하다. 이 발명의 효과 부분에도 언급되겠지만, 이 방식의 성능(performance)은 일반적인 Modulo-N 방식과 동일한 최적의 경로 검색 성능을 가지고 있으며 경로 추가 및 삭제에 따른 기존 패킷의 경로 변경 비율(disruption)은, 예컨대 N이 8일 경우 [0.14, 0.54]이며 평균은 0.32, N이 16일 경우 [0.07, 0.61]이며 평균은 0.26이다. N이 16일 경우 최적의 평균값은 0.16이므로 최적에 근접함을 알 수 있다. 따라서, 상기 Modulo N 방식의 (N-1)/N과 Hash Threshold의 [1/4, 1/2]보다도 우수하다. 여기서 N은 전체 선택할 수 있는 경로 수이다. 결과적으로 경로 검색 성능은 최적의 성능을 유지하면서 경로 변경 비율을 낮춤으로써 패킷 순서가 뒤바뀌는 현상이나 패킷 손실을 방지할 수 있어 네트워크에 추가적으로 발생할 수 있는 부하를 줄일 수 있는 것이다.
이하, 첨부한 도 3을 참조하여 본 발명의 일실시예에 따른 패킷 전송 경로 선택 장치의 동작과 상응하는 본 발명에 따른 패킷 전송 경로 선택 방법에 대하여 단계적으로 설명해 보기로 하자.
도 3은 본 발명에 따른 ECMP를 지원하는 패킷 처리 시스템에서 다중 경로 중 최적화된 특정 경로를 선택할 수 있는 패킷 전송 경로 선택 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
먼저, 도 3에 도시된 바와 같이, 외부로부터 유입되는 패킷의 특정 필드의 필드 값들의 해시값을 추출한다(S101). 여기에서, 해싱함수는 상기 패킷에서 특정 필드는 송신지(Source) IP 어드레스 필드, 목적지(Destination) IP 어드레스 필드, CRC, 프로토콜 종류(UDP or TCP) 필드, TCP/UDP 포트 번호 필드 중 적어도 하나 이상으로부터 해시값을 추출한다.
이어, 상기 추출된 해시값을 다중 경로의 최대 개수로 나누어 그 나머지값을 Next-Hop 구별자를 선택한다(S102),
그리고, 상기 선택된 Next-Hop 구별자가 나타내는 Next-Hop이 인덱스 테이블에 존재하는지를 판단한다(S103).
판단 결과, 상기 선택된 Next-Hop 구별자가 나타내는 Next-Hop이 인덱스 테이블에 존재하는 경우, 상기 선택된 Next-Hop 구별자가 나타내는 Next-Hop으로 패킷을 포워딩하게 되는 것이다(S106).
그러나, 상기 S103 단계에서 선택된 Next-Hop 구별자가 나타내는 Next-Hop 경로가 인덱스 테이블에 존재하지 않을 경우에는 Next-Hop 구별자를 재계산한다. 즉, 가용한 Next-Hop 개수를 초과하지 않는 소수를 구하여 구해진 소수로 Next-Hop 구별자를 나누어 그 나머지를 Next-Hop 인덱스에 할당하고(S104), Next-Hop 인덱스 테이블을 상기 할당된 Next-Hop 인덱스로 검색하여 검색된 그 값을 새로운 Next-Hop 구별자로 선택하게 되는 것이다(S105).
이렇게 선택된 Next-Hop 구별자가 나타내는 Next-Hop 으로 패킷을 포워딩하게 되는 것이다(S106).
Next-Hop 구별자의 재계산을 수행함에 있어, 상기에서 최적의 Next-Hop 경로가 선택되지 않은 경우, 새로운 Next-Hop 구별자를 구하기 위하여 가용한 Next-Hop 총 수를 초과하지 않는 소수를 구하고 구해진 소수로 상기 Next-Hop 구별자를 나누 어 그 나머지를 Next-Hop 인덱스에 할당하게 되는 것이다.
그리고 상기 할당된 새로운 Next-Hop 인덱스를 Next-Hop 인덱스 테이블의 인덱스로 선택하여 Next-Hop 인덱스 테이블 값을 구한다. 이렇게 검색된 값이 새로운 Next-Hop 구별자이며 이를 통해 최적의 패킷 전송 경로를 선택하여 패킷을 포워딩하게 되는 것이다.
상기한 본 발명에 따른 패킷 전송 경로 선택 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다.
따라서, 본 발명의 권리는 상기한 상세한 설명에 의해 해석되어지는 것이 아니라 후술할 특허청구범위에 의해 해석되어져야 할 것이다.
상기한 바와 같은 본 발명에 따른 ECMP를 지원하는 패킷 처리 시스템에 유입되는 패킷을 다중 경로 중에서 하나의 경로를 선택하여 송신할 때 최소의 패킷 경로 변경 비율 값을 가지면서 하나의 경로를 선택하는 장치 및 그 방법은, 다중 경로를 지원하는 패킷 처리 시스템에서 고속 포워딩 기능을 수행할 수 있고 경로 변경에 따른 기존 경로 변경이 없기 때문에 패킷 순서가 뒤바뀌는 현상이나 패킷 손실을 방지할 수 있어 네트워크에 추가적으로 발생할 수 있는 부하를 줄일 수 있는 것이다.

Claims (18)

  1. ECMP를 지원하는 패킷 처리 시스템에서의 패킷 전송 경로 선택 방법에 있어서,
    유입된 패킷의 Next-Hop 관련 필드의 필드 값을 추출하여 해싱(Hashing)하고, 해싱(hashing)된 해시값을 상기 ECMP 최대수로 나눈 나머지를 Next-Hop 구별자로 선택하는 Next-Hop 구별자 선택 단계;
    상기 선택된 Next-Hop 구별자에 해당되는 Next-Hop이 존재하는지를 판단하는 단계;
    선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 패킷 포워딩 단계를 포함하는 패킷 전송 경로 선택 방법.
  2. 제 1항에 있어서,
    상기 Next-Hop 구별자 선택단계는, 상기 유입된 패킷의 송신지(Source) IP 어드레스 필드, 목적지(Destination) IP 어드레스 필드, CRC, 프로토콜 종류(UDP or TCP) 필드 및 TCP/UDP 포트 번호 필드 중에서 선택되는 하나 이상의 필드의 필드 값을 추출하여 해싱하는 것을 특징으로 하는 패킷 전송 경로 선택 방법.
  3. 제1항에 있어서,
    상기 패킷 포워딩 단계는, 상기 해싱된 해시값을 최대 ECMP Next-Hop 개수로 나눈 나머지를 소수(Prime Number)로 나눈 값을 키값으로 하여 인덱스 테이블에서 패킷 전송 경로를 선택한 후 선택된 경로를 통해 유입된 패킷을 포워딩하는 것을 특징으로 하는 패킷 전송 경로 선택 방법.
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 패킷 포워딩 단계는, 상기 Next-Hop이 존재하는지를 판단하는 단계에서, 상기 선택된 Next-Hop 구별자에 해당하는 Next-Hop이 존재하는 경우에, 선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 것을 특징으로 하는 패킷 전송 경로 선택 방법.
  5. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 Next-Hop 구별자 선택단계와 상기 패킷 포워딩 단계 사이에, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 존재하지 않는 경우, 최적의 패킷 포워딩 경로를 선택하기 위한 Next-Hop 구별자를 재선택하는 단계를 더 포함하는 것을 특징으로 하는 패킷 전송 경로 선택 방법.
  6. 제 5 항에 있어서,
    상기 Next-Hop 구별자를 재선택하는 단계는, 가용한 Next-Hop 개수를 초과하지 않는 소수(Prime Number)를 구하고 구해진 소수로 Next-Hop 구별자를 나누어 그 나머지를 Next-Hop 인덱스(Index)에 할당하는 단계; 및,
    상기 할당된 인덱스로 Next-Hop 인덱스 테이블을 검색하여 검색된 값을 새로운 Next-Hop 구별자로 선택하는 단계를 더 포함하는 것을 특징으로 하는 패킷 전송 경로 선택 방법.
  7. ECMP를 지원하는 패킷 처리 시스템에서의 패킷 전송 경로 선택 방법에 있어서,
    유입된 패킷의 Next-Hop 관련 필드의 필드 값을 추출하여 해싱(Hashing)하고, 해싱(hashing)된 해시값을 상기 ECMP 최대수로 나눈 나머지를 Next-Hop 구별자로 선택하는 단계;
    상기 선택한 Next-Hop 구별자에 해당되는 Next-Hop이 인덱스 테이블에 존재하는지를 판단하는 단계; 및,
    상기 판단 결과, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 인덱스 테이블에 존재하는 경우, 상기 선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하고, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 인덱스 테이블에 존재하지 않는 경우 가용한 Next-Hop 개수를 초과하지 않는 소수(Prime Number)로 Next-Hop 구별자를 나누어 그 나머지를 Next-Hop 인덱스(Index)에 할당한 다음, 상기 할당된 인덱스로 Next-Hop 인덱스 테이블을 검색하여 검색된 값을 새로운 Next-Hop 구별자로 선택하여, 상기 재선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 패킷 포워딩 단계를 포함하는 패킷 전송 경로 선택 방법.
  8. 제 7항에 있어서,
    상기 Next-Hop 구별자 선택단계는, 상기 유입된 패킷의 송신지(Source) IP 어드레스 필드, 목적지(Destination) IP 어드레스 필드, CRC, 프로토콜 종류(UDP or TCP) 필드 및 TCP/UDP 포트 번호 필드 중에서 선택되는 하나 이상의 필드 값을 추출하여 해싱하는 것을 특징으로 하는 패킷 전송 경로 선택 방법.
  9. 제 7항에 있어서,
    상기 패킷 포워딩 단계는, 상기 해싱된 해시값을 최대 ECMP Next-Hop 개수로 나눈 나머지를 소수로 나눈 값을 키 값으로 하여 인덱스 테이블에서 패킷 전송 경로를 선택한 후 선택된 경로를 통해 유입된 패킷을 포워딩하는 것을 특징으로 하는 패킷 전송 경로 선택 방법.
  10. ECMP를 지원하는 패킷 처리 시스템에 있어서,
    유입된 패킷의 Next-Hop 관련 필드의 필드 값을 추출하여 해싱(Hashing)하고, 해싱(hashing)된 해시값을 상기 ECMP 최대수로 나눈 나머지를 Next-Hop 구별자로 선택하는 Next-Hop 선택부;
    상기 Next-Hop 선택부에서 선택한 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 경로 선택부를 포함하는 패킷 전송 경로 선택 장치.
  11. 제 10항에 있어서,
    상기 Next-Hop 선택부에서, 해시값을 얻기 위하여 해싱하는 패킷의 필드 값은 상기 유입된 패킷의 송신지(Source) IP 어드레스 필드, 목적지(Destination) IP 어드레스 필드, CRC, 프로토콜 종류(UDP or TCP) 필드 및 TCP/UDP 포트 번호 필드 중에서 선택되는 하나 이상인 것을 특징으로 하는 패킷 전송 경로 선택 장치.
  12. 제 10항에 있어서,
    상기 경로 선택부는, 상기 Next-Hop 선택부에서 해싱된 해시값을 최대 ECMP Next-Hop 개수로 나눈 나머지를 소수로 나눈 값을 키 값으로 하여 인덱스 테이블에서 패킷 전송 경로를 선택한 후 선택된 경로를 통해 유입된 패킷을 포워딩하는 패킷 전송 경로 선택 장치.
  13. 제 10항에 있어서,
    상기 경로 선택부는, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 인덱스 테이블에 존재하는 경우, 선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 것을 특징으로 하는 패킷 전송 경로 선택 장치.
  14. 제 10항에 있어서,
    상기 경로 선택부는, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 인덱스 테이블에 존재하지 않는 경우, 최적의 패킷 포워딩 경로를 선택하기 위한 Next-Hop 구별자를 재선택하고, 상기 재선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 것을 특징으로 하는 패킷 전송 경로 선택 장치.
  15. 제 14항에 있어서,
    가용한 Next-Hop 개수를 초과하지 않는 소수(Prime Number)를 구하고 구해진 소수로 상기 Next-Hop 구별자를 나누어 그 나머지를 Next-Hop 인덱스(Index)에 할당한 후, 할당된 인덱스로 Next-Hop 인덱스 테이블을 검색하여 검색된 값을 새로운 Next-Hop 구별자로 선택하는 Next-Hop 재선택부를 더 포함하는 것을 특징으로 하는 패킷 전송 경로 선택 장치.
  16. ECMP를 지원하는 패킷 처리 시스템의 패킷 전송 경로 선택 장치에 있어서,
    유입된 패킷의 Next-Hop 관련 필드의 필드 값을 추출하여 해싱(Hashing)하고, 해싱(hashing)된 해시값을 상기 ECMP 최대수로 나눈 나머지를 Next-Hop 구별자로 선택하는 제1 Next-Hop 선택부;
    상기 선택한 Next-Hop 구별자에 해당되는 Next-Hop이 인덱스 테이블에 존재하는지를 판단하고, 판단 결과, 상기 선택한 Next-Hop 구별자에 해당하는 Next-Hop이 인덱스 테이블에 존재하는 경우, 상기 선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 제1 경로 선택부;
    상기 제1 경로 선택부에서 Next-Hop 구별자에 해당하는 Next-Hop이 상기 인덱스 테이블에 존재하지 않는 경우 가용한 Next-Hop 개수를 초과하지 않는 소수(Prime Number)를 구하고 구해진 소수로 Next-Hop 구별자를 나누어 그 나머지를 Next-Hop 인덱스(Index)에 할당하고, 상기 할당된 인덱스로 Next-Hop 인덱스 테이블을 검색하여 검색된 값을 새로운 Next-Hop 구별자로 선택하는 경로 재계산부;
    상기 재선택된 Next-Hop 구별자에 해당하는 Next-Hop 경로를 선택하여 유입된 패킷을 포워딩하는 제2 경로 선택부를 포함하는 패킷 전송 경로 선택 장치.
  17. 제 16항에 있어서,
    상기 제1 Next-Hop 선택부에서, 해시값을 얻기 위하여 해싱하는 패킷의 필드 값은 상기 유입된 패킷의 송신지(Source) IP 어드레스 필드, 목적지(Destination) IP 어드레스 필드, CRC, 프로토콜 종류(UDP or TCP) 필드 및 TCP/UDP 포트 번호 필드 중에서 선택되는 하나 이상인 것을 특징으로 하는 패킷 전송 경로 선택 장치.
  18. 제16항에 있어서,
    상기 제1 경로 선택부 및 상기 제2 경로선택부는 상기 해싱된 해시값을 최대 ECMP Next-Hop 개수로 나눈 나머지를 소수로 나는 값을 키 값으로 하여 인덱스 테이블에서 패킷 전송 경로를 선택한 후 선택된 경로를 통해 유입된 패킷을 포워딩하는 것을 특징으로 하는 패킷 전송 경로 선택 장치.
KR1020060041664A 2005-12-08 2006-05-09 패킷 전송 경로 선택 장치 및 그 방법 KR100811881B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20050120239 2005-12-08
KR1020050120239 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061071A KR20070061071A (ko) 2007-06-13
KR100811881B1 true KR100811881B1 (ko) 2008-03-10

Family

ID=38357005

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060041664A KR100811881B1 (ko) 2005-12-08 2006-05-09 패킷 전송 경로 선택 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100811881B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101343611B1 (ko) * 2010-12-13 2014-03-07 한국전자통신연구원 정책 기반 라우팅을 이용하여 패킷을 처리하는 장치 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8295279B2 (en) 2008-12-02 2012-10-23 Electronics And Telecommunications Research Institute Routing method and apparatus for providing different path by service

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1041976A (ja) 1996-07-24 1998-02-13 Nippon Telegr & Teleph Corp <Ntt> 通信路選択方法および該通信路選択方法を実施するためのルータ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1041976A (ja) 1996-07-24 1998-02-13 Nippon Telegr & Teleph Corp <Ntt> 通信路選択方法および該通信路選択方法を実施するためのルータ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101343611B1 (ko) * 2010-12-13 2014-03-07 한국전자통신연구원 정책 기반 라우팅을 이용하여 패킷을 처리하는 장치 및 방법

Also Published As

Publication number Publication date
KR20070061071A (ko) 2007-06-13

Similar Documents

Publication Publication Date Title
US7492708B2 (en) Traffic balancing apparatus and method, and network forwarding apparatus and method using the same
EP2541866B1 (en) Management schemes for filter sets
US9680747B2 (en) Internet protocol and Ethernet lookup via a unified hashed trie
US7606161B2 (en) Distributing information across equal-cost paths in a network
US20070091911A1 (en) Packet forwarding apparatus with function of diverting traffic
US9559953B2 (en) Path splitting with a connection-oriented network
US10291536B2 (en) Tiered services in border gateway protocol flow specification
US9137045B2 (en) Ethernet multicast method and device
US20090141721A1 (en) Deterministic Multiprotocol Label Switching (MPLS) Labels
KR102059971B1 (ko) 데이터 라우팅 방법 및 장치
US10594629B2 (en) Load balancing on multi-chip network switch without full bi-section bandwidth
US11570093B2 (en) Data transmission method, node and system
JP2007060456A (ja) フィルタリングを備えるパケット転送装置
US20140188981A1 (en) Scalable Storage Systems with Longest Prefix Matching Switches
CN102325079A (zh) 报文传输方法和出口路由器
KR100811881B1 (ko) 패킷 전송 경로 선택 장치 및 그 방법
US20060153193A1 (en) Network routing control method and apparatus
CN101335714A (zh) 一种负载分担的方法及设备或快速重路由的方法及设备
KR100670808B1 (ko) 패킷 전송의 최적 경로 선택 장치 및 그 방법
KR100843184B1 (ko) 패킷 전송의 최적 경로 선택 장치 및 그 방법
KR100507800B1 (ko) 다중 경로를 지원하는 라우터의 포트 선택 방법
KR100562902B1 (ko) 네트워크 노드 간 효율적인 경로 선택 방법
KR102060907B1 (ko) 데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템
WO2017145390A1 (ja) データ転送プログラム、データ転送装置およびデータ転送方法
CN113194030B (zh) 一种基于网络前缀切分的多路径报文转发方法

Legal Events

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

Payment date: 20110228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20111208

Year of fee payment: 20