KR20170067804A - 라우팅 테이블의 유지 방법, 장치 및 저장매체 - Google Patents

라우팅 테이블의 유지 방법, 장치 및 저장매체 Download PDF

Info

Publication number
KR20170067804A
KR20170067804A KR1020177011616A KR20177011616A KR20170067804A KR 20170067804 A KR20170067804 A KR 20170067804A KR 1020177011616 A KR1020177011616 A KR 1020177011616A KR 20177011616 A KR20177011616 A KR 20177011616A KR 20170067804 A KR20170067804 A KR 20170067804A
Authority
KR
South Korea
Prior art keywords
updated
routing
node
intermediate node
ipv6
Prior art date
Application number
KR1020177011616A
Other languages
English (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 지티이 코포레이션
Publication of KR20170067804A publication Critical patent/KR20170067804A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • 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/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6

Landscapes

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

Abstract

본 발명의 실시예는 라우팅 테이블의 유지 방법을 개시하며, 상기 방법은 업데이트할 IPV6 라우팅 엔트리 중의 마스크 길이에 따라 IPV6 라우팅 테이블 중의 마스크 테이블을 조회하여, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성을 획득하는 단계; 상기 업데이트할 IPV6 라우팅 엔트리 및 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성에 따라, 상기 IPV6 라우팅 테이블 구성 중의 라우팅 트리에 대해 검색을 진행하여 상기 라우팅 트리의 역추적 시작 노드를 획득하는 단계; 및 상기 역추적 시작 노드에서 출발하여 상기 라우팅 트리의 맨 위로 역추적하여 상기 업데이트할 IPV6 라우팅 엔트리의 업데이트 위치를 획득하고 상기 업데이트할 IPV6 라우팅 테이블 구성 중의 유니버설 체인를 업데이트하는 단계;를 포함한다. 본 발명의 실시예는 라우팅 테이블의 유지 장치 및 저장매체를 더 제공한다.

Description

라우팅 테이블의 유지 방법, 장치 및 저장매체{METHOD, APPARATUS FOR MAINTAINING ROUTING TABLE AND STORAGE MEDIUM}
본 발명은 데이터 네트워크 통신 기술에 관한 것으로서, 특히 라우팅 테이블의 유지 방법, 장치 및 저장매체에 관한 것이다.
인터넷 프로토콜 버전 6 (IPV6, Internet Protocol Version 6) 네트워크 건설이 대규모로 진행됨에 따라, ipv6 라우팅을 합리적이고 효과적으로 관리하는 것은 라우터 소프트웨어 설계의 관건으로 되었다. ipv6 라우팅은 길이가 128비트에 달하므로, Donald R.Morrison이 제출한 Patricia 트리의 사상을 기반으로 설계한 라딕스(radix) 트리 알고리즘은 매우 길고 가변 길이의 키값(Key value)을 처리하기에 적합한 특성으로 인해 ipv6 라우팅 관리의 최선의 알고리즘으로 되었다.
그러나, 현재 오픈소스의 radix 트리 알고리즘은 트리 알고리즘을 사용하여 동적으로 마스크를 생성 및 관리하며, 도1에 도시된 종래의 오픈소스 radix 알고리즘에 의해 생성한 라우팅 테이블의 구성에서 알 수 있듯이, 라우팅 테이블은 마스크 트리, 라우팅 트리 및 유니버설 체인으로 구성되되, 원형 노드는 중간 노드를 나타내고, 바탕색이 순백색인 것은 루트 노드이며, 바탕색이 가로선 그림자인 것은 일반 노드이고, 노드 중의 숫자는 가지(Branch)의 위치값을 나타내며; 구형 노드는 리프 노드(Leaf node)이고, 바탕색이 순백색인 것은 루트 노드이며, 바탕색이 그림자인 것은 일반 노드이고, 노드 중의 콘텐츠는 라우팅 프리픽스 및 마스크이며; 육각형 노드는 유니버설 체인 접합부이고 노드 중의 콘텐츠는 해당 접합부에 대응하는 마스크 길이이다. 또한, 상기 라우팅 트리에 비연속 마스크 가지에 대한 지원을 더 포함하며, 다시 말하면, 라우팅 트리에 대해 검색을 진행할 때, 비연속 마스크의 가지에 대해 판단 및 처리를 진행하여야 한다.
도1에 도시된 라우팅 테이블의 구성에서 알 수 있듯이, 라우팅 테이블을 유지할 때마다 마스크 트리 탐색을 진행하여 대응하는 마스크가 이미 존재하는지를 확정한다. 또한, 유니버설 체인 관리 등 유지 조작 시에도 복잡한 바이트 비교 및 시프트 연산을 진행하였으며 이는 알고리즘의 시간 복잡도를 대대적으로 향상시킨다.
상술한 기술적 과제를 해결하기 위하여, 본 발명의 실시예는 공간 복잡도를 향상하는 전제하에 시간 복잡도를 낮추어 라우팅 테이블의 유지를 효과적으로 진행하는 라우팅 테이블의 유지 방법, 장치 및 저장매체를 제공하는 데 있다.
본 발명의 실시예에 따른 기술적 방안은 다음과 같이 구현된다.
본 발명의 실시예는 라우팅 테이블의 유지 방법을 제공하며, 상기 방법은
업데이트할 IPV6 라우팅 엔트리 중의 마스크 길이에 따라 IPV6 라우팅 테이블 중의 마스크 테이블을 조회(Query)하여, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성을 획득하는 단계 - 상기 IPV6 라우팅 테이블은 마스크 길이와 마스크 구성이 대응되는 2차원 인덱스 테이블 및 라우팅 트리를 포함하며, 상기 라우팅 트리는 비연속 마스크 가지(Branch)를 잘라 낸 후의 라우팅 트리인 단계;
상기 업데이트할 IPV6 라우팅 엔트리 및 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성에 따라, 상기 IPV6 라우팅 테이블 구성 중의 라우팅 트리에 대해 검색을 진행하여 상기 라우팅 트리의 역추적(Backtracking) 시작 노드를 획득하는 단계; 및
상기 역추적 시작 노드에서 출발하여 상기 라우팅 트리의 맨 위로 역추적하여 상기 업데이트할 IPV6 라우팅 엔트리의 업데이트 위치를 획득하는 단계;를 포함한다.
바람직하게, 상기 업데이트할 IPV6 라우팅 엔트리 및 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성에 따라, 상기 IPV6 라우팅 테이블 구성 중의 라우팅 트리에 대해 검색을 진행하여 상기 라우팅 트리의 역추적 시작 노드를 획득하는 단계는,
상기 라우팅 트리의 각 중간 노드가 기록한 선택 정보에 따라 상기 업데이트할 IPV6 라우팅 엔트리와 비교하여 경로 중의 중간 노드가 기록한 분지(Bifurcation) 위치 및 바이트 마스크 특성에 부합하는 리프 노드를 획득하고 상기 리프 노드를 역추적 시작 노드로 하는 단계를 포함한다.
바람직하게, 상기 역추적 시작 노드에서 출발하여 상기 라우팅 트리의 맨 위로 역추적하여 상기 업데이트할 IPV6 라우팅 엔트리의 업데이트 위치를 획득하는 단계는,
상기 역추적 시작 노드에서 출발하여 상기 업데이트할 중간 노드의 부모 중간 노드(Parent intermediate node)와 자식 중간 노드(Child intermediate node)를 조회하는 단계 - 상기 업데이트할 중간 노드의 키값(Key value)은 상기 업데이트할 IPV6 라우팅 엔트리의 마스크 길이임 - ;
상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드에 대해 각각 검출을 진행하여, 상기 라우팅 트리에서의 상기 업데이트할 중간 노드의 업데이트 위치를 확정하는 단계; 및
상기 라우팅 트리에서 상기 업데이트할 중간 노드와 리프 노드를 업데이트하는 단계 - 상기 업데이트할 중간 노드는 리프 노드와 함께 상기 업데이트할 IPV6 라우팅 엔트리의 키값 속성을 나타냄 - ;를 포함한다.
바람직하게, 상기 방법은 상기 업데이트할 중간 노드의 리프 노드의 형제 노드에 대응하는 유니버설 체인 절점(Universal chain node)에서 시작하여 위로 상기 라우팅 트리의 중간 노드를 역추적하고, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 길이와 역추적 시의 라우팅 트리의 중간 노드에 대응하는 유니버설 체인 절점에 따라 상기 유니버설 체인에 대해 업데이트를 진행하는 단계를 더 포함한다.
제2측면에서, 본 발명의 실시예는 조회 유닛, 검색 유닛 및 역추적 유닛을 포함하는 라우팅 테이블의 유지 장치를 제공하며,
상기 조회 유닛은 업데이트할 IPV6 라우팅 엔트리 중의 마스크 길이에 따라 IPV6 라우팅 테이블 중의 마스크 테이블을 조회하여, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성을 획득하도록 구성되며, 상기 IPV6 라우팅 테이블은 마스크 길이와 마스크 구성이 대응되는 2차원 인덱스 테이블 및 라우팅 트리를 포함하며, 상기 라우팅 트리는 비연속 마스크 가지를 잘라 낸 후의 라우팅 트리이며;
상기 검색 유닛은 상기 조회 유닛이 획득한 업데이트할 IPV6 라우팅 엔트리 및 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성에 따라, 상기 IPV6 라우팅 테이블 구성 중의 라우팅 트리에 대해 검색을 진행하여 상기 라우팅 트리의 역추적 시작 노드를 획득하도록 구성되며;
상기 역추적 유닛은 상기 검색 유닛이 획득한 역추적 시작 노드에서 출발하여 상기 라우팅 트리의 맨 위로 역추적하여 상기 업데이트할 IPV6 라우팅 엔트리의 업데이트 위치를 획득하도록 구성된다.
바람직하게, 상기 검색 유닛은 상기 라우팅 트리의 각 중간 노드가 기록한 선택 정보에 따라 상기 업데이트할 IPV6 라우팅 엔트리와 비교하여 경로 중의 중간 노드가 기록한 분지 위치 및 바이트 마스크 특성에 부합하는 리프 노드를 획득하고 상기 리프 노드를 역추적 시작 노드로 하도록 구성된다.
바람직하게, 상기 역추적 유닛은, 상기 역추적 시작 노드에서 출발하여 상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드를 조회하도록 구성되며, 상기 업데이트할 중간 노드의 키값은 상기 업데이트할 IPV6 라우팅 엔트리의 마스크 길이이고;
또한 상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드에 대해 각각 검출을 진행하여, 상기 라우팅 트리에서의 상기 업데이트할 중간 노드의 업데이트 위치를 확정하도록 구성되며;
또한 상기 라우팅 트리에서 상기 업데이트할 중간 노드의 리프 노드를 업데이트하도록 구성되며, 상기 업데이트할 중간 노드는 리프 노드와 함께 상기 업데이트할 IPV6 라우팅 엔트리의 속성을 나타낸다.
바람직하게, 상기 역추적 유닛은 또한 상기 업데이트할 중간 노드의 리프 노드의 형제 노드에 대응하는 유니버설 체인 절점에서 시작하여 위로 상기 라우팅 트리의 중간 노드를 역추적하고, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 길이와 역추적 시의 라우팅 트리의 중간 노드에 대응하는 유니버설 체인 절점에 따라 상기 유니버설 체인에 대해 업데이트를 진행하도록 구성된다.
본 발명의 실시예는 라우팅의 구성을 변경함으로써 공간 복잡도를 향상하는 전제하에 시간 복잡도를 낮추고 라우팅 테이블의 유지를 효과적으로 진행하는 목적을 이루는 라우팅 테이블의 유지 방법, 장치 및 저장매체를 제공한다.
도1은 종래의 오픈소스 radix 알고리즘에 의해 생성된 라우팅 테이블의 구성을 나타낸 도면이다.
도2는 본 발명의 실시예에서 제공한 라우팅 테이블의 유지 방법의 흐름을 나타낸 도면이다.
도3은 본 발명의 실시예에서 제공한 IPV6 라우팅 테이블의 구성을 나타낸 도면이다.
도4는 본 발명의 실시예에서 제공한 업데이트할 IPV6 라우팅 엔트리의 구성을 나타낸 도면이다.
도5는 본 발명의 실시예에서 제공한 다른 한 라우팅 테이블의 유지 방법의 흐름을 나타낸 도면이다.
도6은 본 발명의 실시예에서 제공한 다른 한 IPV6 라우팅 테이블의 구성을 나타낸 도면이다.
도7은 본 발명의 실시예에서 제공한 라우팅 테이블의 유지 장치의 구성을 나타낸 도면이다.
이하, 본 발명의 실시예 중의 첨부 도면을 결합하여 본 발명의 실시예 중의 기술적 방안을 명확하고 전면적으로 설명한다.
본 발명의 실시예의 기본 사상은, 종래의 IPV6 라우팅 관리를 지원하는 radix 트리 알고리즘 중의 마스크 트리를 정적 배열(Static array)로 변경하고 radix 트리 중 비연속 마스크의 판단 및 처리 가지를 잘라 내여 공간 복잡도를 향상하는 전제하에 시간 복잡도를 낮추고 라우팅의 유지를 효과적으로 진행하는 목적을 이루는 것이다.
도2를 참조하면, 도2는 본 발명의 실시예에서 제공한 라우팅 테이블의 유지 방법 흐름을 도시하며, 설명의 편리를 위해, 본 발명의 실시예는 라우팅 엔트리를 업데이트하는 것을 예로 설명하며, 이해할 것은 라우팅 엔트리를 삭제하는 과정은 라우팅 엔트리를 새로 추가하는 과정과 비슷하므로 본 발명의 실시예에서 상세한 설명을 생략한다. 상기 방법은 아래의 단계를 포함한다.
S201: 업데이트할 IPV6 라우팅 엔트리 중의 마스크 길이에 따라 IPV6 라우팅 테이블 중의 마스크 테이블을 조회하여, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성을 획득한다.
설명할 것은, 본 발명의 실시예 중의 IPV6 라우팅 테이블의 구성은 도1에 도시된 종래기술의 라우팅 테이블의 구성과 다르며, 구체적으로 도3에 도시된 본 발명의 실시예에서 제공한 IPV6 라우팅 테이블의 구성을 참조할 수 있다. 도1에 비해, 우선 본 발명의 실시예는 라우팅 테이블 중의 마스크 트리를 마스크 길이와 마스크 구성이 대응하는 2차원 인덱스 테이블로 변경하며 본 실시예에서 마스크 테이블로 칭할 수 있으며, 마스크 테이블의 구체적인 형식은 초기 설정의 129 개 소켓(SOCKET) 구성을 포함하는 마스크 요소의 2차원 정적 배열일 수 있으며 본 발명의 실시예는 이에 대해 구체적인 한정을 진행하지 않는다. 마스크 테이블로 마스크 트리를 대체함으로써, 약 3.53KB의 공간(즉 129개 SOCKET 구성의 마스크 요소의 크기)을 추가로 증가하여 마스크 테이블을 저장하였으나 라우팅 유지 과정에서 마스크 구성의 탐색(look up)을 트리 탐색에서 인덱스 테이블에 대한 선형 탐색으로 변경하여 시간 복잡도를 대대적으로 낮춘다.
다음으로, 본 발명의 실시예는 IPV6 라우팅 테이블 구성의 라우팅 트리 중 비연속 마스크에 대한 처리 가지에 대해 미리 클리핑을 진행하여 라우팅 트리에 대해 유지를 진행하는 과정에서 비연속 마스크에 대한 판단 및 처리 과정을 제거하여 유지 과정 중의 시간 복잡도를 더 한층 낮춘다.
더 설명할 것은, 본 발명의 실시예에서 제공한 기술적 방안을 명확히 설명하기 위하여, 본 실시예에서, 업데이트할 IPV6 라우팅 엔트리가 ffff:ffff:ff00::/40인 것을 예로 하며 구체적으로 도4에 도시된 것을 참조할 수 있다. 이해할 것은, 통상의 기술자는 이를 기타 IPV6 라우팅 엔트리의 업데이트에 적용할 수 있으며 본 발명의 실시예는 이에 대해 구체적으로 한정하지 않는다.
S202단계: 상기 업데이트할 IPV6 라우팅 엔트리 및 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성에 따라, 상기 IPV6 라우팅 테이블 구성 중의 라우팅 트리에 대해 검색을 진행하여 상기 라우팅 트리의 역추적 시작 노드를 획득한다.
일 구체적인 실시예에서, S202의 구체적인 과정은
상기 라우팅 트리의 각 중간 노드가 기록한 선택 정보에 따라 상기 업데이트할 IPV6 라우팅 엔트리와 비교하여 경로 중의 모든 중간 노드 선택 키값 요구에 부합하는 하나의 리프 노드를 획득하고 상기 리프 노드를 역추적 시작 노드로 하는 것을 포함할 수 있다.
구체적으로, 본 실시예에서, 도3 중 라우팅 트리의 각 중간 노드의 기록 분지 위치 및 바이트 마스크에 따라 리프 노드 ffff:ffff:ffff::/30을 획득할 수 있다.
S203: 상기 역추적 시작 노드에서 출발하여 상기 라우팅 트리의 맨 위로 역추적하여 상기 업데이트할 IPV6 라우팅 엔트리의 업데이트 위치를 획득한다.
일 구체적인 실시예에서, S203의 구체적인 과정은
우선, 상기 역추적 시작 노드에서 출발하여 상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드를 조회하는 단계 - 상기 업데이트할 중간 노드의 키값은 상기 업데이트할 IPV6 라우팅 엔트리의 마스크 길이임 - ;
다음으로, 상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드에 대해 각각 검출을 진행하여, 상기 라우팅 트리에서의 상기 업데이트할 중간 노드의 업데이트 위치를 확정하는 단계; 및
마지막으로, 상기 라우팅 트리에서 상기 업데이트할 중간 노드와 리프 노드를 업데이트하는 단계 -상기 업데이트할 중간 노드는 리프 노드와 함께 상기 업데이트할 IPV6 라우팅 엔트리 중 라우팅 트리에 추가할 필수 속성을 나타내며, 본 실시예에서 바람직하게 키값 속성임 - ;을 포함할 수 있다.
구체적으로, 본 실시예에서, 도4에 도시된 업데이트할 IPV6 라우팅 엔트리 ffff:ffff:ff00::/40에 대응하는 업데이트할 중간 노드의 키값은 40이고, 업데이트할 중간 노드의 왼쪽 리프 노드는 업데이트할 IPV6 라우팅 엔트리 ffff:ffff:ff00::/40이다. 따라서, ffff:ffff:ff00::/40의 업데이트 위치를 획득하는 과정은 아래와 같을 수 있다.
우선, 리프 노드 ffff:ffff:ffff::/30에서 트리 맨 위로 역추적하여 업데이트할 중간 노드 (40)를 마침 중간에 끼울 수 있는 두 개의 내부 노드를 찾고 업데이트할 중간 노드 (40)의 부모 중간 노드 (32) 및 자식 중간 노드 (48)를 조회하여 얻는다.
다음으로, 부모 중간 노드 (32)에 대해 검출을 진행하여 업데이트할 중간 노드 (40)가 부모 중간 노드 (32)의 오른쪽 서브트리에 업데이트되어야 함을 알게 될 수 있으며 따라서 새로 업데이트된 중간 노드의 분지 위치는 40이다.
마지막으로, 업데이트할 중간 노드 (40)의 왼쪽 자식은 신규 리프 노드이고 그 중의 값은 ffff:ffff:ff00::/40이며, 업데이트할 중간 노드 (40)의 오른쪽 자식은 중간 노드 (48)를 트리 루트로 하는 서브트리이다.
상술한 S201 내지 S203의 과정을 통해, 라우팅 테이블 엔트리를 업데이트하는 과정을 한번 완성하며, 이 과정에서, 마스크 구성의 탐색을 트리 탐색에서 인덱스 테이블에 대한 선형 탐색으로 변경하고 라우팅 트리 중 비연속 마스크에 대한 판단 및 처리 과정을 제거하였기에 시간적인 복잡도를 대대적으로 낮출 수 있다.
또한, 라우팅 트리는 노드를 업데이트한 후, 도5를 참조하면, 본 방법은 아래의 단계를 더 포함할 수 있다.
S204: 상기 업데이트할 중간 노드의 리프 노드의 형제 노드에 대응하는 유니버설 체인 절점에서 시작하여 위로 상기 라우팅 트리의 중간 노드를 역추적하고, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 길이와 역추적 시의 라우팅 트리의 중간 노드에 대응하는 유니버설 체인 절점에 따라 상기 유니버설 체인에 대해 업데이트를 진행한다.
구체적으로, 본 실시예에서, 신규 리프 노드 ffff:ffff:ff00::/40의 형제 노드에서, 즉 중간 노드 (48)에서 시작하여 위로 라우팅 트리를 역추적하며, 중간 노드 (48)가 대응하는 유니버설 체인 절점이 없으므로 계속하여 위로 역추적하여 중간 노드 (32)에 도달하며, 중간 노드 (32)가 유니버설 체인 절점 mklist:/32를 가리키나 신규 리프 노드 ffff:ffff:ff00::/40에 대응하는 라우팅은 중간 노드 (32)를 루트로 하는 서브트리의 일반 라우팅으로 될 수 없으므로 계속하여 위로 트리 투트까지 역추적한 후 흐름에서 퇴출한다. 이에 비해, 신규 리프 노드 ffff:ffff:ff00::/40에 대응하는 라우팅은 필연코 중간 노드 (40)를 트리 루트로 하는 서브루트의 유니버설 라우팅이다. 따라서, 유니버설 체인 절점 mklist:/40도 중간 노드에 대응하는 유니버설 체인 절점이다.
상술한 S201 내지 S204에 따른 라우팅 테이블 엔트리를 새로 추가하는 과정 후, 도6을 참조하면, 도6은 라우팅 테이블 엔트리를 새로 추가한 후의 라우팅 테이블의 구성을 나타낸다. 이상에서 라우팅 테이블 엔트리를 추가하는 것을 예로 라우팅 테이블의 유지 과정을 설명하였으며 통상의 기술자는 창조성 노동 없이 해당 과정이 기타 라우팅 테이블을 유지하는 과정에 적용될 수 있음을 이해할 수 있으며 본 발명의 실시예는 구체적인 설명을 생략한다.
본 발명의 실시예는 상술한 라우팅 테이블의 유지 방법을 수행하기 위한 한 세트의 명령이 저장된 컴퓨터 판독 가능한 저장매체를 더 제공한다.
본 발명의 실시예에서 제공한 라우팅 테이블의 유지 방법은, 라우팅 테이블의 구성을 변경함으로써 공간 복잡도를 향상하는 전제하에 시간 복잡도를 낮추고 라우팅 테이블의 유지를 효과적으로 진행하는 목적을 이루었다.
전술한 실시예와 동일한 기술적 구상을 기반으로, 도7을 참조하면, 도7은 본 발명의 실시예에서 제공한 라우팅 테이블의 유지 장치(70)의 구성을 나타내며, 상기 장치(70)는 IPV6 라우팅 기능을 구비한 라우터에 적용될 수 있으며, 도7에 도시된 바와 같이, 상기 장치(70)는 조회 유닛(701), 검색 유닛(702) 및 역추적 유닛(703)을 포함한다.
상기 조회 유닛(701)은 업데이트할 IPV6 라우팅 엔트리 중의 마스크 길이에 따라 IPV6 라우팅 테이블 중의 마스크 테이블을 조회하여, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성을 획득하도록 구성되며, 상기 IPV6 라우팅 테이블은 마스크 길이와 마스크 구성이 대응되는 2차원 인덱스 테이블 및 라우팅 트리를 포함하며, 상기 라우팅 트리는 비연속 마스크 가지에 대해 클리핑한 후의 라우팅 트리이다.
상기 검색 유닛(702)은 상기 조회 유닛(701)이 획득한 업데이트할 IPV6 라우팅 엔트리 및 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성에 따라, 상기 IPV6 라우팅 테이블 구성 중의 라우팅 트리에 대해 검색을 진행하여 상기 라우팅 트리의 역추적 시작 노드를 획득하도록 구성된다.
상기 역추적 유닛(703)은 상기 검색 유닛(702)이 획득한 역추적 시작 노드에서 출발하여 상기 라우팅 트리의 맨 위로 역추적하여 상기 업데이트할 IPV6 라우팅 엔트리의 업데이트 위치를 획득하도록 구성된다.
상술한 기술방안에서, 상기 검색 유닛(702)은 상기 라우팅 트리의 각 중간 노드가 기록한 선택 정보에 따라 상기 업데이트할 IPV6 라우팅 엔트리와 비교하여 중간 노드가 기록한 선택 키값 요구를 만족하는 리프 노드를 획득하고 상기 리프 노드를 역추적 시작 노드로 하도록 구성된다.
상술한 기술방안에서, 상기 역추적 유닛(703)은 상기 역추적 시작 노드에서 출발하여 상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드를 조회하도록 구성되며, 상기 업데이트할 중간 노드의 키값은 상기 업데이트할 IPV6 라우팅 엔트리의 마스크 길이이며;
또한 상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드에 대해 각각 검출을 진행하여, 상기 라우팅 트리에서의 상기 업데이트할 중간 노드의 업데이트 위치를 확정하도록 구성되며;
또한 상기 라우팅 트리에서 상기 업데이트할 중간 노드의 리프 노드를 업데이트하도록 구성되며, 상기 업데이트할 중간 노드는 리프 노드와 함께 상기 업데이트할 IPV6 라우팅 엔트리의 키값 속성을 나타낸다.
상술한 기술방안에서, 상기 역추적 유닛(703)은 또한 상기 업데이트할 리프 노드의 형제 노드에 대응하는 유니버설 체인 절점에서 시작하여 위로 상기 라우팅 트리의 중간 노드를 역추적하고, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 길이와 역추적 시의 라우팅 트리의 중간 노드에 대응하는 유니버설 체인 절점에 따라 상기 유니버설 체인에 대해 업데이트를 진행하도록 구성된다.
본 발명의 실시예에서 제공한 라우팅 테이블의 유지 장치는, 라우팅 테이블의 구성을 변경함으로써 공간 복잡도를 향상하는 전제하에 시간 복잡도를 낮추고 라우팅 테이블의 유지를 효과적으로 진행하는 목적을 이루었다.
실제응용에서, 상기 조회 유닛(701), 검색 유닛(702), 역추적 유닛(703)은 모두 중앙처리장치(CPU, Central Processing Unit), 디지털 신호 처리 장치(DSP, Digital Signal Processor), 필드 프로그래머블 게이트 어레이(FPGA, Field Programmable Gate Array) 등으로 구현될 수 있으며, 상기 CPU, DSP, FPGA는 모두 라우팅 테이블의 유지 장치에 내재될 수 있다.
본 분야의 기술자는 본 발명의 실시예가 방법, 시스템 또는 컴퓨터 프로그램 제품으로 제공될 수 있음을 이해하여야 한다. 따라서, 본 발명은 하드웨어 실시예, 소프트웨어 실시예 또는 소프트웨어와 하드웨어 측면을 결합하는 실시예의 형식을 적용할 수 있다. 그리고, 본 발명은 하나 또는 복수개의 컴퓨터가 사용가능한 프로그램 코드가 포함된 컴퓨터 사용가능한 저장 매체(자기 디스크 기억장치 및 광 메모리 등을 포함하나 이에 한정되지 않음)에서 실시되는 컴퓨터 프로그램 제품의 형식을 적용할 수 있다.
본 발명은 본 발명의 실시예에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블럭도를 참조하여 설명하였다. 이해할 것은, 컴퓨터 프로그램 명령에 의해 흐름도 및/또는 블럭도 중의 각 흐름 및/또는 블럭, 그리고 흐름도 및/또는 블럭도 중의 흐름 및/또는 블럭의 결합을 구현할 수 있다. 이러한 컴퓨터 프로그램 명령을 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서 또는 기타 프로그래머블 데이터 처리 장치의 프로세서에 제공하여 하나의 기기를 생성하여 컴퓨터 또는 기타 프로그래머블 데이터 처리 장치의 프로세서를 통해 수행되는 명령이 흐름도의 한 흐름 또는 다수개 흐름 및/또는 블럭도의 한 블럭 또는 다수개 블럭 중에 지정된 기능을 구현하기 위한 장치를 생성하도록 할 수 있다.
이러한 컴퓨터 프로그램 명령은 또한 컴퓨터 또는 기타 프로그래머블 데이터 처리 장치를 특정의 방식으로 작동하도록 가이드할 수 있는 컴퓨터 판독가능한 메모리에 저장되어 상기 컴퓨터 판독 가능한 메모리에 저장된 명령이 명령장치를 포함하는 제품을 생성하도록 할 수도 있으며, 상기 명령장치는 흐름도의 한 흐름 또는 다수개 흐름 및/또는 블럭도의 한 블럭 또는 다수개 블럭 중에 지정된 기능을 구현한다.
이러한 컴퓨터 프로그램 명령은 또한 컴퓨터 또는 기타 프로그래머블 데이터 처리 장치에 로딩되어 컴퓨터 또는 기타 프로그래머블 장치에서 일련의 조작단계를 수행하여 컴퓨터가 구현하는 처리를 생성함으로써 컴퓨터 또는 기타 프로그래머블 장치에서 수행되는 명령은 흐름도의 한 흐름 또는 다수개 흐름 및/또는 블럭도의 한 블럭 또는 다수개 블럭에서 지정한 기능을 구현하기 위한 단계를 제공한다.
상술한 것은 본 발명의 바람직한 실시예일 뿐, 본 발명의 보호 범위를 한정하기 위한 것이 아니다.
본 발명의 실시예는 라우팅 테이블의 구성을 변경함으로써 공간 복잡도를 향상하는 전제하에 시간 복잡도를 낮추고 라우팅 테이블의 유지를 효과적으로 진행하는 목적을 이루었다.

Claims (9)

  1. 라우팅 테이블의 유지 방법에 있어서,
    업데이트할 IPV6 라우팅 엔트리 중의 마스크 길이에 따라 IPV6 라우팅 테이블 중의 마스크 테이블을 조회하여, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성을 획득하는 단계 - 상기 IPV6 라우팅 테이블은 마스크 길이와 마스크 구성이 대응되는 2차원 인덱스 테이블 및 라우팅 트리를 포함하며, 상기 라우팅 트리는 비연속 마스크 가지를 잘라 낸 후의 라우팅 트리임 - ;
    상기 업데이트할 IPV6 라우팅 엔트리 및 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성에 따라, 상기 IPV6 라우팅 테이블 구성 중의 라우팅 트리에 대해 검색을 진행하여 상기 라우팅 트리의 역추적 시작 노드를 획득하는 단계; 및
    상기 역추적 시작 노드에서 출발하여 상기 라우팅 트리의 맨 위로 역추적하여 상기 업데이트할 IPV6 라우팅 엔트리의 업데이트 위치를 획득하는 단계;를 포함하는 것을 특징으로 하는 라우팅 테이블의 유지 방법.
  2. 청구항 1에 있어서,
    상기 업데이트할 IPV6 라우팅 엔트리 및 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성에 따라, 상기 IPV6 라우팅 테이블 구성 중의 라우팅 트리에 대해 검색을 진행하여 상기 라우팅 트리의 역추적 시작 노드를 획득하는 단계는,
    상기 라우팅 트리의 각 중간 노드가 기록한 선택 정보에 따라 상기 업데이트할 IPV6 라우팅 엔트리와 비교하여 경로 중의 중간 노드가 기록한 분지 위치 및 바이트 마스크 특성에 부합하는 리프 노드를 획득하고 상기 리프 노드를 역추적 시작 노드로 하는 단계를 포함하는 것을 특징으로 하는 라우팅 테이블의 유지 방법.
  3. 청구항 1에 있어서,
    상기 역추적 시작 노드에서 출발하여 상기 라우팅 트리의 맨 위로 역추적하여 상기 업데이트할 IPV6 라우팅 엔트리의 업데이트 위치를 획득하는 단계는,
    상기 역추적 시작 노드에서 출발하여 상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드를 조회하는 단계 - 상기 업데이트할 중간 노드의 키값은 상기 업데이트할 IPV6 라우팅 엔트리의 마스크 길이임 - ;
    상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드에 대해 각각 검출을 진행하여, 상기 라우팅 트리에서의 상기 업데이트 할 중간 노드의 업데이트 위치를 확정하는 단계; 및
    상기 라우팅 트리에서 상기 업데이트할 중간 노드와 리프 노드를 업데이트하는 단계 - 상기 업데이트할 중간 노드는 리프 노드와 함께 상기 업데이트할 IPV6 라우팅 엔트리의 키값 속성을 나타냄 - ;을 포함하는 것을 특징으로 하는 라우팅 테이블의 유지 방법.
  4. 청구항 1 내지 청구항 3 중 임의의 한 항에 있어서,
    상기 업데이트할 중간 노드의 리프 노드의 형제 노드에 대응하는 유니버설 체인 절점에서 시작하여 위로 상기 라우팅 트리의 중간 노드를 역추적하고, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 길이와 역추적 시의 라우팅 트리의 중간 노드에 대응하는 유니버설 체인 절점에 따라 상기 유니버설 체인에 대해 업데이트를 진행하는 단계를 더 포함하는 것을 특징으로 하는 라우팅 테이블의 유지 방법.
  5. 라우팅 테이블의 유지 장치에 있어서,
    조회 유닛, 검색 유닛 및 역추적 유닛을 포함하되,
    상기 조회 유닛은 업데이트할 IPV6 라우팅 엔트리 중의 마스크 길이에 따라 IPV6 라우팅 테이블 중의 마스크 테이블을 조회하여, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성을 획득하도록 구성되며, 상기 IPV6 라우팅 테이블은 마스크 길이와 마스크 구성이 대응되는 2차원 인덱스 테이블 및 라우팅 트리를 포함하며, 상기 라우팅 트리는 비연속 마스크 가지를 잘라 낸 후의 라우팅 트리이며;
    상기 검색 유닛은 상기 조회 유닛이 획득한 업데이트할 IPV6 라우팅 엔트리 및 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 구성에 따라, 상기 IPV6 라우팅 테이블 구성 중의 라우팅 트리에 대해 검색을 진행하여 상기 라우팅 트리의 역추적 시작 노드를 획득하도록 구성되며;
    상기 역추적 유닛은 상기 검색 유닛이 획득한 역추적 시작 노드에서 출발하여 상기 라우팅 트리의 맨 위로 역추적하여 상기 업데이트할 IPV6 라우팅 엔트리의 업데이트 위치를 획득하도록 구성되는 것을 특징으로 하는 라우팅 테이블의 유지 장치.
  6. 청구항 5에 있어서,
    상기 검색 유닛은 상기 라우팅 트리의 각 중간 노드가 기록한 선택 정보에 따라 상기 업데이트할 IPV6 라우팅 엔트리와 비교하여 경로 중의 중간 노드가 기록한 분지 위치 및 바이트 마스크 특성에 부합하는 리프 노드를 획득하고 상기 리프 노드를 역추적 시작 노드로 하도록 구성되는 것을 특징으로 하는 라우팅 테이블의 유지 장치.
  7. 청구항 5에 있어서,
    상기 역추적 유닛은 상기 역추적 시작 노드에서 출발하여 상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드를 조회하도록 구성되며, 상기 업데이트할 중간 노드의 키값은 상기 업데이트할 IPV6 라우팅 엔트리의 마스크 길이이며;
    또한 상기 업데이트할 중간 노드의 부모 중간 노드와 자식 중간 노드에 대해 각각 검출을 진행하여, 상기 라우팅 트리에서의상기 업데이트할 중간 노드의 업데이트 위치를 확정하도록 구성되며;
    또한 상기 라우팅 트리에서 상기 업데이트할 중간 노드의 리프 노드를 업데이트하도록 구성되며, 상기 업데이트할 중간 노드는 리프 노드와 함께 상기 업데이트할 IPV6 라우팅 엔트리의 속성을 나타내는 것을 특징으로 하는 라우팅 테이블의 유지 장치.
  8. 청구항 5 내지 청구항 7 중 임의의 한 항에 있어서,
    상기 역추적 유닛은 또한 상기 업데이트할 중간 노드의 리프 노드의 형제 노드에 대응하는 유니버설 체인 절점에서 시작하여 위로 상기 라우팅 트리의 중간 노드를 역추적하고, 상기 업데이트할 IPV6 라우팅 엔트리에 대응하는 마스크 길이와 역추적 시의 라우팅 트리의 중간 노드에 대응하는 유니버설 체인 절점에 따라 상기 유니버설 체인에 대해 업데이트를 진행하도록 구성되는 것을 특징으로 하는 라우팅 테이블의 유지 장치.
  9. 컴퓨터 판독 가능한 저장매체에 있어서,
    청구항 1 내지 청구항 4 중 임의의 한 항의 라우팅 테이블의 유지 방법을 수행하기 위한 한 세트의 명령이 저장된 컴퓨터 판독 가능한 저장매체.
KR1020177011616A 2014-10-22 2015-01-20 라우팅 테이블의 유지 방법, 장치 및 저장매체 KR20170067804A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410567709.X 2014-10-22
CN201410567709.XA CN105591915A (zh) 2014-10-22 2014-10-22 一种路由表的维护方法和装置
PCT/CN2015/071147 WO2016061925A1 (zh) 2014-10-22 2015-01-20 一种路由表的维护方法、装置及存储介质

Publications (1)

Publication Number Publication Date
KR20170067804A true KR20170067804A (ko) 2017-06-16

Family

ID=55760123

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177011616A KR20170067804A (ko) 2014-10-22 2015-01-20 라우팅 테이블의 유지 방법, 장치 및 저장매체

Country Status (4)

Country Link
JP (1) JP2017537566A (ko)
KR (1) KR20170067804A (ko)
CN (1) CN105591915A (ko)
WO (1) WO2016061925A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106993315B (zh) * 2017-03-29 2020-04-14 常熟理工学院 一种基于定位信息的移动网络通信实现方法
CN110365585B (zh) * 2018-03-26 2021-08-03 武汉大学 一种基于多代价指标的路由裁剪优化方法
CN108809514B (zh) * 2018-04-23 2021-01-12 华为技术有限公司 一种数据传输方法及相关设备
CN112565089B (zh) * 2020-11-30 2022-06-21 锐捷网络股份有限公司 一种路由信息的处理方法及装置
CN115225572B (zh) * 2022-07-13 2023-05-26 阿里巴巴(中国)有限公司 路由信息的处理方法、装置、电子设备和存储介质
CN117040943B (zh) * 2023-10-10 2023-12-26 华中科技大学 基于IPv6地址驱动的云网络内生安全防御方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1148929C (zh) * 2000-03-29 2004-05-05 华为技术有限公司 Ip查找的一种快速修改方法
JP3813136B2 (ja) * 2003-04-25 2006-08-23 インターナショナル・ビジネス・マシーンズ・コーポレーション 通信制御装置、通信制御方法、通信制御プログラム、通信制御用データ構造
CN100456840C (zh) * 2003-11-25 2009-01-28 华为技术有限公司 将lpm算法拆分到两个cpu的方法
CN100486227C (zh) * 2006-10-31 2009-05-06 成都迈普产业集团有限公司 路由表查找方法
CN101576877A (zh) * 2009-06-16 2009-11-11 程治永 一种快速分词的实现方法
CN102035727B (zh) * 2010-11-17 2013-01-09 杭州华三通信技术有限公司 一种路由的处理方法和设备
CN102281196B (zh) * 2011-08-11 2017-10-10 中兴通讯股份有限公司 决策树生成方法及设备、基于决策树报文分类方法及设备
CN103780491B (zh) * 2012-10-23 2018-01-23 上海博达数据通信有限公司 一种实现IPv6快速路由查找的方法

Also Published As

Publication number Publication date
JP2017537566A (ja) 2017-12-14
CN105591915A (zh) 2016-05-18
WO2016061925A1 (zh) 2016-04-28

Similar Documents

Publication Publication Date Title
KR20170067804A (ko) 라우팅 테이블의 유지 방법, 장치 및 저장매체
US10606834B2 (en) Methods and apparatus of shared expression evaluation across RDBMS and storage layer
CN106462625B (zh) 针对大型图表的实时所保存查询更新
US10021026B2 (en) Incremental update of a shape graph
US10754853B2 (en) Virtual edge of a graph database
TWI645694B (zh) 用於處理交替配置的最長首碼匹配表的裝置和方法
CN107154899B (zh) 一种用后缀索引查找ip路由的系统
US9229961B2 (en) Database management delete efficiency
CN103561133A (zh) 一种ip地址归属信息索引方法及快速查询方法
KR100586461B1 (ko) 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체
JP5960863B1 (ja) 検索装置、検索方法、プログラム、及び記録媒体
CN107679049A (zh) 获取树形结构数据两节点间路径的方法、装置及系统
CN107704202B (zh) 一种数据快速读写的方法和装置
CN105141525A (zh) IPv6路由查找方法及装置
KR101678149B1 (ko) 데이터베이스의 데이터 탐색방법 및 그 장치와 이를 위한 컴퓨터 프로그램
US10771386B2 (en) IP routing search
WO2016175768A1 (en) Map tables for hardware tables
CN102904812B (zh) 路由表项的存储方法、查找方法、装置及系统
JP4888369B2 (ja) データ検索装置、データ検索方法、及びデータ検索用プログラム
CN104462104A (zh) 过滤方法和服务器
KR101587756B1 (ko) 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법
CN104217034A (zh) 基于指针操作的ip地址快速检索相关信息的方法
JP6205463B2 (ja) 検索装置、検索方法、プログラム、及び記録媒体
CA2885244C (en) Leapfrog tree-join
JP5953277B2 (ja) データ索引装置、データ索引方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application