KR20140059160A - 동일 비용 다중 경로 패킷 스위칭 네트워크들을 위한 다음 홉 계산 함수들 - Google Patents

동일 비용 다중 경로 패킷 스위칭 네트워크들을 위한 다음 홉 계산 함수들 Download PDF

Info

Publication number
KR20140059160A
KR20140059160A KR1020137019192A KR20137019192A KR20140059160A KR 20140059160 A KR20140059160 A KR 20140059160A KR 1020137019192 A KR1020137019192 A KR 1020137019192A KR 20137019192 A KR20137019192 A KR 20137019192A KR 20140059160 A KR20140059160 A KR 20140059160A
Authority
KR
South Korea
Prior art keywords
function
network
packet
node
mapping
Prior art date
Application number
KR1020137019192A
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 KR20140059160A publication Critical patent/KR20140059160A/ko

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/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area 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/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

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

Abstract

노드별 ECMP 경로 결정 알고리즘에서 이용하기 위한 다음 홉 계산 함수들이 제공되며, 이 함수들은 동일 비용 다중 경로 패킷 스위치 네트워크에서 네트워크 자원들간의 트래픽 확산을 증가시킨다. 하나의 실시예에서, 네트워크상의 각각의 ECMP 노드가 고유 키 재료로 키잉된(keyed) 엔트로피 보존 매핑 함수를 구현하게 함으로써 패킷들은 출력 포트들에 매핑된다. 고유 키 재료는 주어진 입력이 상이한 노드들 상의 상이한 출력에 매핑되도록 각각의 노드가 공통 함수 프로토타입으로부터 각각의 매핑 함수를 인스턴스화(instantiate)하게 할 수 있다. 매핑 함수의 출력 세트가 후보 출력 포트들의 수보다 큰 경우, 매핑 함수의 키잉된 출력을 ECMP 포트들의 후보 세트로 변환시키기 위해 압축 함수가 이용된다.

Description

동일 비용 다중 경로 패킷 스위칭 네트워크들을 위한 다음 홉 계산 함수들{NEXT HOP COMPUTATION FUNCTIONS FOR EQUAL COST MULTI-PATH PACKET SWITCHING NETWORKS}
본 출원은 “Next Hop Computation Functions For Equal Cost Multi-Path Packet Switch Networks”이라는 명칭으로 2011년 2월 17일에 출원된 미국 가특허 출원 61/443,993의 우선권을 청구하며, 이 가특허 출원 내용 전체는 참조로서 본 명세서내에 병합된다.
본 발명은 패킷 스위치드 네트워크에 관한 것이며, 보다 구체적으로는 패킷 스위치드 네트워크들에서의 동일 비용 경로들을 위한 다음 홉 계산 함수들에 관한 것이다.
이더넷 네트워크 아키텍처에서는, 네트워크에 접속된 디바이스들이 임의의 주어진 시간에서 공유된 원격통신 경로들을 이용할 능력을 두고 경쟁을 한다. 다중 브릿지들 또는 노드들이 네트워크 세그먼트들을 상호접속시키기 위해 이용되는 경우, 동일한 목적지를 향한 잠재적인 다중 경로들이 종종 존재하게 된다. 이러한 아키텍처의 장점은 브릿지들간의 경로 리던던시를 제공하고 추가적인 링크들의 형태로 네트워크에 추가될 능력을 허용한다는 점이다. 하지만 루프들이 형성되는 것을 방지하기 위해, 네트워크상에서 트래픽이 브로드캐스팅되었던 방식을 제한시키기 위해 일반적으로 스패닝 트리(spanning tree)가 이용되었다. 라우트(route)들은 프레임을 브로드캐스팅하고 응답을 기다림으로써 학습되었으며, 이러한 응답과 요청 모두는 스패닝 트리를 따랐기 때문에, 트래픽의 전부는 아니더라도 그 대부분은 스패닝 트리의 일부분이였던 링크들을 따랐을 것이다. 이것은 종종 스패닝 트리상에 있었던 링크들의 과잉 이용(over-utilization)과 스패닝 트리의 일부가 아니였던 링크들의 비이용을 야기시켰다. 스패닝 트리들은 다른 형태들의 패킷 스위치드 네트워크들에서도 이용될 수 있다.
스패닝 트리를 이용하여 제어되는 네트워크들에 내재된 몇몇의 제한성들을 극복하기 위해, 링크 상태 프로토콜 제어 평면이 패킷 네트워크 내의 노드들의 동작을 제어하기 위해 이용될 수 있다. 패킷 네트워크를 제어하기 위한 링크 상태 프로토콜의 이용은 무루프(loop-free) 최단 경로 포워딩으로 네트워크 능력의 보다 효율적인 이용을 가능하게 해준다. 투명 브릿징과 결합된 스패닝 트리 프로토콜(Spanning Tree Protocol; STP) 알고리즘을 활용하는 것 대신에, 링크 상태 프로토콜 제어형 패킷 네트워크에서, 메쉬 네트워크를 형성하는 브릿지들은 각각의 노드가 네트워크 토폴로지의 동기화된 시야를 가질 수 있도록 링크 상태 광고(link state advertisement)를 교환한다.
이것은 잘 이해되고 있는 링크 상태 라우팅 시스템의 메커니즘을 통해 달성된다. 링크 상태 라우팅 프로토콜들의 두가지 예시들은 OSPF(Open Shortest Path First)와 IS-IS(Intermediate System to Intermediate System)를 포함하지만, 다른 링크 상태 라우팅 프로토콜들도 이용될 수 있다. 링크 상태 라우팅 시스템에서, 네트워크 내의 브릿지들은 네트워크 토폴로지의 동기화된 시야를 갖고, 필수적인 유니캐스트 및 멀티캐스트 접속의 지식을 가지며, 네트워크 내 임의의 브릿지들의 쌍사이의 최단 경로 접속을 계산할 수 있으며, 네트워크의 공통적 시야에 기초하여 계산된 최단 경로들에 따라 자신들의 FIB(forwarding information base)들을 개별적으로 채울 수 있다.
링크 상태 프로토콜 제어형 패킷 네트워크들은 이더넷 브릿지화 접속의 등가물을 제공하지만, 이러한 것을 플러딩(flooding)과 학습을 통해서보다는 네트워크 엘리먼트 FIB들의 구성을 통해 달성한다. 모든 노드들이 동기화된 네트워크 시야에서 각자의 역할을 계산하고 각자의 FIB들을 채운 경우, 네트워크는 브릿지에서 호스팅된 서비스 인스턴스마다, 피어 브릿지들의 세트로부터 임의의 주어진 브릿지로의 무루프 유니캐스트 트리와, 임의의 주어진 브릿지로부터 동일한 피어 브릿지들의 세트로의 합동 무루프 점 대 다중점(point-to-multipoint; p2mp) 멀티캐스트 트리를 가질 것이다. 그 결과는 주어진 브릿지 쌍 사이의 경로가 스패닝 트리의 루트 브릿지를 횡단하는데 있어서 제약을 받지 않는다는 것이며 총체적인 결과는 메쉬의 접속폭을 보다 잘 활용할 수 있다. 전기전자공학회(Institute of Electrical and Electronics Engineers; IEEE) 표준 802.1aq는 이러한 기술의 한가지 구현을 규정한다.
네트워크 내 노드들 사이에 다수의 동일 비용 경로들이 존재하는 경우들이 있다. 특히 데이터 센터에서, 매우 조밀한 상호연결형 스위치들의 메쉬가 존재하는 경우, 소스와 목적지 사이 또는 소스와 목적지 사이의 경로를 따르는 중간 노드들 사이에 다수의 동일 비용 경로들이 존재할 수 있다. 노드들의 쌍 사이에 다수의 동일 비용 경로들이 존재하는 경우, 네트워크 자원들의 보다 나은 활용을 획득하기 위해 및/또는 보다 나은 네트워크 쓰루풋을 위해 이용가능한 경로들간에 트래픽을 분배하는 것이 바람직할 수 있다. 동일 비용 다중 경로(Equal Cost Multi-Path; ECMP) 라우팅은 다수의 이용가능한 실질적으로 동일한 비용 경로들간에 트래픽을 분배하기 위해 패킷 스위칭 네트워크를 통해 패킷들을 포워딩하는 프로세스이다.
ECMP 라우팅은 트래픽이 네트워크에 진입할 때 헤드 엔드 노드(head-end node)에서 구현될 수 있거나, 또는 네트워크 내 각각의 노드에서 분배 방식으로 구현될 수 있다. ECMP 라우팅이 분배 방식으로 구현되는 경우, 목적지를 향해 다수의 동일 비용 경로들을 갖는 각각의 노드는 네트워크 상의 트래픽을 분배시키기 위해 다수의 이용가능한 경로들을 통해 트래픽의 상이한 흐름들을 국부적으로 내보낼 것이다. 불행하게도, 분배형 노드별 ECMP가 구현될 때 네트워크 능력의 최적의 활용은 달성하기가 어렵다.
예를 들어, 도 1은 패킷 네트워크에서의 전형적인 트래픽 분배 패턴을 도시하는데, 여기서 네트워크 상의 각각의 노드는 이용가능한 경로들로부터 선택하기 위한 동일한 ECMP 계산 함수를 이용한다. 도 1에서 도시된 예시에서, 스위치들 I-L 중 하나의 스위치용으로 의도된 트래픽은 스위치들 A-D 중 임의의 스위치에 도착할 수 있다. 그 목표는 방대한 수의 경로들이 네트워크를 통해 트래픽을 포워딩하는데 이용되도록 네트워크 상에서 트래픽을 분산시키는 것이다. 불행하게도, 도 1에서 도시된 바와 같이, 매 노드 상에서의 동일한 다음 홉 계산 함수의 이용은 네트워크의 몇몇의 영역들에서 매우 불량한 트래픽 분배를 초래시킬 수 있다. 특히, 흐름 ID들에서의 정규성 또는 패턴들은 트래픽이 집중화되도록 야기시킬 수 있고 네트워크상의 이용가능한 경로들간의 불충분한 트래픽 확산을 초래시킬 수 있다.
아래의 개요 및 본 출원 말미에서 개진되는 요약은 본 명세서에서 아래의 상세한 설명에서 논의되는 몇몇의 개념들을 소개하기 위해 제공되는 것이다. 개요 및 요약 섹션들은 종합적인 것은 아니며 아래에서 제공되는 청구항들에 의해 개진되는 보호가능한 발명내용의 범위를 정하도록 의도된 것은 아니다.
노드별 ECMP 경로 결정 알고리즘에서 이용하기 위한 다음 홉 계산 함수들이 제공되며, 이 함수들은 동일 비용 다중 경로 패킷 스위치 네트워크에서 네트워크 자원들간의 트래픽 확산을 증가시킨다. 하나의 실시예에서, 네트워크상의 각각의 ECMP 노드가 고유 키 재료로 키잉된(keyed) 엔트로피 보존 매핑 함수를 구현하게 함으로써 패킷들은 출력 포트들에 매핑된다. 고유 키 재료는 주어진 입력이 상이한 노드들 상의 상이한 출력에 매핑되도록 각각의 노드가 공통 함수 프로토타입으로부터 각각의 매핑 함수를 인스턴스화(instantiate)하게 할 수 있다. 매핑 함수의 출력 세트가 후보 출력 포트들의 수보다 큰 경우, 매핑 함수의 키잉된 출력을 ECMP 포트들의 후보 세트로 변환시키기 위해 압축 함수가 이용된다.
본 발명의 양태들은 첨부된 청구항들에서의 특수성에 대해 진술된다. 본 발명은 아래의 도면들에서 예시를 통해 설명되며 도면들에서 동일한 참조번호들은 유사한 엘리먼트들을 가리킨다. 아래의 도면들은 본 발명의 범위를 제한시키려고 의도된 것은 아니고 단지 예시 목적으로 본 발명의 다양한 실시예들을 개시한다. 명확성을 위해, 모든 도면에서 모든 컴포넌트들이 라벨표시되는 것은 아니다. 도면들에서,
도 1과 도 2는 예시적인 패킷 스위칭 네트워크들의 기능 블록도들이다.
도 3a와 도 3b는 ECMP 라우팅을 구현하기 위한 노드들에서의 상이한 매핑들의 예시적인 응용을 도시한다.
도 4는 예시적인 네트워크 엘리먼트의 기능 블록도이다.
도 5는 ECMP 라우팅을 구현하기 위해 이용될 수 있는 프로세스를 나타내는 흐름도이다.
도 1은 네트워크 내의 모든 홉에서 동일한 다음 홉 계산 함수가 이용되는 샘플 네트워크를 도시한다. 트래픽은 도 1의 바닥에서 최상단으로 흐르며 각각의 노드에서 트래픽은 4개의 잠재적 출력 포트들 중 하나로 노드에 의해 국부적으로 매핑된다. 트래픽은 스위치들의 바닥 행(row)과 중간 행 사이에 균등하게 분배되며, 두 개의 행들을 연결시키는 메쉬의 각각의 링크가 활용된다. 하지만, 스위치들의 중간 행은 중간 행을 최상단 행에 연결시키는 링크들 모두를 이용할 수 없다. 중간 행에서의 가장 좌측의 스위치는 가장 좌측의 출력 포트에 매핑되는 트래픽만을 수신한다. 마찬가지로, 행 내의 i번째 스위치는 선행하는 스테이지에서의 i번째 포트에 매핑되는 트래픽만을 수신한다. 이러한 비정상적인 동작은 각각의 노드에서 동일한 매핑 함수의 이용에 의해 그리고 본 예시에서 이용되는 메쉬의 규칙적 성질에 의해 야기된다. 하지만, 이러한 유형의 매우 규칙적인 네트워크 구조는 보기드문 것은 절대 아니다. 특히, 데이터 센터들은 스위치들의 행들이 매우 규칙적인 메쉬들에 의해 상호연결되는 도 1에서 도시된 것과 마찬가지의 규칙적인 구조들을 이용하려는 경향이 있다.
도 2는 네트워크상에서 이용가능한 링크들 사이에 트래픽을 보다 균등하게 분배시키기 위해 대안적인 ECMP 경로 선택 프로세스가 구현되는 도 1의 네트워크를 도시한다. 단순화를 위해, 도 2에서는 DA=J를 갖는 트래픽만이 도시된다. 이 예시에서, 트래픽은 노드들 A, B, C, 및 D 중 임의의 노드에 도착할 수 있다. 이러한 노드들 각각은 노드들 E, F, G, 및 H 중의 임의의 노드에 연결시키는 링크를 선택할 수 있다. 그런 후 노드는 트래픽을 노드 J에 포워딩한다. 도 2를 도 1과 비교하면, 양쪽 노드들의 계층들을 상호연결시키는 링크들 상에서 트래픽은 보다 훨씬 균등하게 분배된다는 것이 명백하다. 도 2에서 도시된 예시와 같은 트래픽 패턴들은 네트워크상의 노드들이 상이한 ECMP 경로 선택 알고리즘들을 이용할 때 분배형 ECMP 시스템에서 손쉽게 달성된다. 구체적으로, 독립적인 다음 홉 선택 알고리즘들의 이용은 경로 ID들과 연관된 패턴들이 경로 선택에 대한 강력한 상관을 가질 가능성을 감소시키며, 이에 따라 네트워크상에서의 보다 광범위한 트래픽 분배를 야기시킨다.
예컨대, 도 2에서 도시된 바와 같은, 트래픽 확산을 구현하기 위해, 분배형 ECMP 프로세스가 이용되며, 여기서 패킷 스위칭 네트워크의 각각의 노드는, 입력 포트상에서 수신하는 각각의 패킷마다, 송신용 패킷을 네트워크를 통해 목적지를 향한 경로상의 다음 노드로 출력하기 위한 적절한 출력 포트를 결정해야 한다. ECMP를 구현하기 위해, 각각의 노드는 수신된 패킷들에 대해 적절한 포워딩 결정들을 행해야 한다. 트래픽 확산을 달성하기 위해, 노드들에 의해 이용되는 알고리즘은 다소 무작의적이여야 한다. 하지만, 네트워크 트래픽이 시뮬레이션되고 예측되도록 하기 위해, 알고리즘들은 결정적(deterministic)이여야 한다. 더 나아가, 패킷들의 흐름들이 의도된 목적지를 향해 동일한 포트로 보내질 수 있도록 하기 위해서는, 개별적인 흐름들과 연관된 패킷들은 동일한 출력 포트에 일관되게 할당되어야 한다.
실시예에 따르면, 네트워크의 각각의 노드에서 트래픽을 분배시키기 위해 순열(permutation)들이 이용된다. 순열들은 결정적인 알고리즘들을 이용하여 생성되며, 이로써 트래픽의 특정 흐름이 네트워크를 통해 라우팅되는 방식은 미리 예측될 수 있다. 하지만, 순열들은 입력 자극에서 작은 차이들이 주어지는 의사 랜덤 출력 동작으로 이용가능한 링크들간에 양호한 트래픽 확산이 가능하도록 하는 방식으로 설계된다. 더 나아가, ECMP 다음 홉들을 선택하기 위해 본질적으로 국부적으로 고유한 함수가 이용될 수 있도록 국부적 고유 키 값과 함께 동일한 알고리즘을 네트워크상의 각각의 노드가 이용하도록 상기 선택된 알고리즘은 설계된다. 비록 실시예를 패킷 네트워크에서의 트래픽의 레이어 2(이더넷) 스위칭에 촛점을 맞춰서 설명할 것이지만, 트래픽 확산을 구현하기 위해 설명되는 기술들은 또한 ECMP 라우팅을 이용하여 레이어 3 네트워크들에서 이용될 수 있다.
하나의 실시예에서, 인입 스위치의 인입 포트에서 수신되는 각각의 패킷에는 흐름 식별자(Flow Identifier; 흐름 ID)가 지정된다. 전형적으로, 흐름 ID들은 인터넷 프로토콜(Internet Protocol; IP) 소스 어드레스(Source Address; SA), IP 목적지 어드레스(Destination Address; DA), 프로토콜 식별자, 소스 및 목적지 포트들 및 잠재적으로는 패킷의 헤더의 다른 콘텐츠와 같은, 고객 MAC 헤더(C-MAC) 또는 IP 헤더에서의 정보에 기초할 수 있다. 이와 달리, 흐름 ID는 다른 방식으로 패킷에 지정될 수 있다. 예컨대, 특정 네트워크 경로들의 건강상태 및 성능을 모니터링하기 위해 관리 시스템은 흐름 ID들을 관리 패킷들에 지정할 수 있다. 흐름 ID는 인입 스위치에서 패킷 헤더 내에 캡슐화(encapsulate)되며 배출 스위치에서 패킷 헤더로부터 캡슐화해제(decapsulate)될 수 있다. 흐름 ID는 12비트 VLAN 식별자(B-VID) 필드, 24비트 서비스 식별자(I-SID) 필드, (아직 규정되지 않은) 새로운 필드 또는 이러한 필드들의 임의의 일부분 또는 이들의 조합에서 운송될 수 있다. 흐름 ID의 생성, 배포, 및/또는 재생성을 구현하기 위한 다수의 방법들이 특정 구현에 따라 구현될 수 있다.
동일한 흐름 ID를 갖는 패킷들이 동일한 인입 스위치로부터 동일한 중간 스위치들을 거쳐서 동일한 배출 스위치로, 즉 네트워크를 통해 동일한 경로를 거쳐서 포워딩될 것을 요구하는 여러가지 프로토콜들이 존재한다. 이러한 방식으로 패킷들을 송신하는 것은 패킷들의 비순서화된 수신을 방지하며, 이와 달리 네트워크상에서의 데이터의 송신을 촉진시킨다. 따라서, 노드들이 ECMP를 수행하는 경우, 목적지에 대한 동일 비용 경로들 사이에서 선택하기 위한 노드에서 구현되는 알고리즘은 주어진 흐름 ID와 연관된 패킷들에 대해 일관되게 동작해야 한다(즉, 항상 동일한 출력 경로를 선택해야 한다).
하지만, ECMP 네트워크의 경우, 동일한 인입 스위치로부터 동일한 배출 스위치로의 포워딩을 요구하는 상이한 흐름 ID들을 갖는 패킷들은 각자의 흐름 ID들에 따라, 인입 스위치와 배출 스위치 사이에서 상이한 동일 비용 경로들간에 분배되어야 하며, 여기서는 인입 스위치와 배출 스위치 사이에 선택할 다수의 실질적으로 동일한 비용 경로들이 존재한다.
실시예에 따르면, 실질적으로 동일한 비용 경로들 중에서 상이한 흐름 ID들을 갖는 패킷들의 이러한 분배를 달성하기 위해, 네트워크 내의 각각의 스위치는 특정 DA와 특정 흐름 ID를 운송하는 수신 패킷을 위한 적절한 출력 포트를 다음에 의해 결정한다:
1. DA로의 최소 비용 경로들의 세트에 대응하는 후보 출력 포트들의 세트로의 DA 매핑. 단하나의 최소 비용 경로만이 존재하는 경우, 단하나의 후보 출력 포트가 존재할 것이다. DA로의 실질적으로 동일한 비용의 다수의 최소 비용 경로들이 존재하는 경우, 다수의 후보 출력 포트들이 존재할 수 있다.
2. 적어도 DA가 다수의 후보 출력 포트들에 대응하는 경우, 특정 스위치에 키잉된 매핑 함수를 이용하여 후보 출력 포트들 중 하나의 포트에 흐름 ID를 매핑함. 이러한 매핑들은 각각의 스위치에서, 출력 포트들로의 흐름 ID들의 분배가 대체로 균등하게 분배되도록 해야 한다. 이러한 단계는 단하나의 대응하는 후보 출력 포트가 존재하는 경우 DA들을 갖는 패킷들에 대해서는 필요하지 않으며, 이 경우 패킷은 단순히 해당 출력 포트에 라우팅될 수 있다는 것을 유념한다.
실시예에 따라, 노드에서의 후보 출력 포트들로의 흐름 ID들의 매핑은 엔트로피 보존 의사 랜덤 매핑(즉, 매핑의 개별적인 출력들의 갯수는 개별적인 입력들의 갯수와 동일해야 한다)을, 많은 수의 매핑된 흐름 ID들을 작은 수의 후보 출력 포트들에 매핑시키는 압축 함수와 결합시킴으로써 생성될 수 있다. 이러한 엔트로피 보존 매핑은 개별적인 입력들의 세트와 동일한 갯수의 엘리먼트들을 갖는 개별적인 출력들의 세트로 개별적인 입력들의 세트가 매핑되는 전단사 함수(bijective function)일 수 있다. 이와 달리, 엔트로피 보존 매핑은 개별적인 입력들의 세트가 보다 큰 세트의 잠재적인 개별 출력들로 매핑되는 단사 함수(injective function)를 포함할 수 있으며, 여기서는 개별적인 입력들의 갯수에 대응하는 갯수의 개별적인 출력들만이 이용된다. 또다른 대안 구성에서, 개별적인 입력들 대 개별적인 출력들의 매핑은 일대일이다.
도 3a와 도 3b는 여덟개의 입력들(1~8) 대 여덟개의 출력들(A~H)의 예시적인 매핑을 도시한다. 도 3a에서 도시된 바와 같이, 입력들을 출력들에 매핑하는 방법들은 많이 존재한다. 실시예에 따르면, 각각의 노드는 흐름 식별자들을 후보 출력 세트에 매핑하기 위해 매핑 함수를 이용한다. 이것은, 사실상, 흐름 ID들의 셔플링된(shuffled) 시퀀스를 생성한다. 이러한 방식으로 흐름 식별자들을 매핑하는 것은 흐름 식별자들을 랜덤화하여 네트워크상의 흐름들에 대한 흐름 식별자들의 지정과 연관된 임의의 패턴들을 감소시키거나 제거한다. 하나의 실시예에서, 각각의 노드는 프로토타입 매핑을 취하고 키 값을 매핑에 적용하여, 노드에서 고유한 매핑을 인스턴스화(instantiate)한다. 예를 들어, 각각의 노드는 노드에서 고유한 흐름 ID들의 셔플링된 시퀀스의 순환적 쉬프트를 생성하도록 곱셈 함수(multiplication function)에서의 키의 값을 이용할 수 있다. 도 3a는 제1 키를 이용한 프로토타입 매핑으로부터 유도된 제1 매핑을 이용하는 입력들(1~8) 대 출력들(A~H)의 매핑을 도시하며, 도 3b는 제2 키를 이용한 동일한 프로토타입으로부터 유도된 제2 매핑을 이용하는 입력들(1~8) 대 출력들(A~H)의 매핑을 도시한다. 도 3a와 도 3b의 비교에서 도시된 바와 같이, 상이한 키들의 이용은 상이한 입력 값들(흐름 ID들)이 상이한 출력 값들에 매핑되도록 해준다.
트래픽 집성화 및 흐름 집중화를 방지하기 위해, 실시예에 따르면, 매핑들은 두 개의 스위치들이 동일한 엔트로피 보존 매핑을 갖지 않도록 해야 한다. 이것은 고유 키를 각각의 스위치에 지정하고 각각의 스위치에 고유한 키잉된 매핑 함수를 이용하여 흐름 ID들을 매핑함으로써 배열될 수 있다. 키는 각각의 스위치에서 상이하기 때문에, 그리고 매핑을 수행하기 위해 스위치에 의해 이용되는 기본적인 알고리즘은 키 및 프로토타입 엔트로피 보존 매핑 함수에 의해 완전히 규정되기 때문에, 키잉된 매핑 함수는 스위치에 고유할 것이다. 이것은 네트워크상의 트래픽의 흐름들이 결정되도록 해주면서, 또한 각각의 스위치에서 이용되는 상이한 키로 인해 출력 포트 세트로의 특정 흐름 ID의 매핑이 네트워크상의 각각의 스위치에서 상이해지도록 한다.
잠재적인 흐름 ID들의 갯수는 네트워크상의 ECMP 경로들의 갯수를 많이 초과할 수 있다는 것이 예상될 수 있다. 예를 들어, 흐름 ID가 12비트 길이이면, 네트워크상의 흐름들에 지정될 수 있으며 상이한 4096개 값들의 세트에 대한 매핑 함수를 이용하여 매핑될 4096개의 잠재적인 흐름 ID들이 존재할 것이라는 것이 예상될 것이다. 하지만, 주어진 목적지에 대한 4096개의 동일 비용 경로들이 존재할 가능성은 낮다. 따라서, 엔트로피 보존 매핑 함수는 후보 출력 포트들의 갯수보다 많은 수의 출력들을 생성하기 때문에, 매핑은 개별적인 출력들의 갯수를 후보 출력 포트들의 갯수와 동일해지도록 압축하는 압축 함수를 더 포함한다. 압축 함수는 프로토타입 매핑의 의사 랜덤화를 보존해야 한다. 각각의 노드에서의 엔트로피 보존 매핑 함수는 해당 노드와 연관된 값에 적어도 부분적으로 기초하기 때문에, 모든 노드들에 공통적인 표준 압축 함수의 이용은 엔트로피 보존 매핑 함수의 이용과 연관된 링크 분배 랜덤화를 유지할 것이다.
도 3a와 도 3b는 매핑(A~H)의 출력들 각각을 세 개의 출력 포트들의 세트에 매핑하기 위해 동일한 압축 함수가 이용되는 예시를 도시한다. 도 3a와 도 3b에서 도시된 바와 같이, 매핑 함수의 출력들(A, E, H)은 포트 1으로 압축되고, 매핑 함수의 출력들(B, F)은 포트 2로 압축되며, 매핑 함수의 출력들(C, D, G)은 포트 3으로 압축된다. 따라서, 도 3a와 도 3b 모두에서는 출력 값들의 세트를 후보 출력 포트 세트로 감소시키기 위해 동일한 압축이 이용되었다. 하지만, 매핑 동안에 도입된 엔트로피로 인해, 공통 압축 함수의 이용은 상이한 입력 세트(1~8)가 출력 포트들 각각에 매핑되도록 해준다. 구체적으로, 도 3a에서 도시된 바와 같이, 매핑 함수의 실행에서 제1 노드에 의해 포함되는 키(키 1)는 입력 흐름 3, 입력 흐름 6, 및 입력 흐름 7이 포트 1로 매핑되고, 흐름 1과 흐름 4가 포트 2로 매핑되며, 흐름 2, 흐름 5 및 흐름 8이 포트 3에 매핑되게 한다. 도 3b에서는 다른 키, 즉 키 2가 이용되며, 흐름 2, 흐름 4, 및 흐름 7은 포트 1로 매핑되고, 흐름 5와 흐름 8은 포트 2로 매핑되며, 흐름 1, 흐름 3 및 흐름 6은 포트 3에 매핑된다. 이러한 도면들에서 도시된 바와 같이, 공통 압축 함수의 이용은 매핑에서 도입된 엔트로피가 출력 포트 선택과 관련하여 보존되도록 해주며, 이로써 네트워크상의 다수의 노드들은 공통 압축 함수를 이용할 수 있다.
아래에서는 예시적인 매핑들을 보다 자세하게 설명한다. 아래의 설명에서, x는 흐름 ID를 표시하고, f는 프로토타입 매핑을 표시하고, n은 스위치 키를 표시하고, fn은 키잉된 매핑을 표시하며, fn(x)은 압축 함수의 적용 이전의 매핑된 흐름 ID를 표시한다. 매핑된 흐름 ID에 대한 압축 함수의 적용은 출력 포트 후보들 중에서 어느 출력 포트가 패킷을 포워딩하는데 이용되는지를 결정한다.
바람직하게, 후보 프로토타입 매핑은 상이한 키들을 이용하는 임의의 스위치들의 쌍이 임의의 흐름 ID들을 동일 값에 매핑시키지 않을 엔트로피 보존 매핑들을 인스턴스화하도록 구축되어야 한다. 하나의 실시예에 따르면, 흐름 ID들에서 제공될 수 있는 패턴들을 분열시키도록 흐름 ID들을 랜덤화하기 위해 지수(exponential) 기반 매핑들이 이용된다. 다른 매핑들이 또한 이용될 수 있지만, 지수 기반 매핑들의 이용은 많은 응용들에 대해 적당한 결과들을 제공한다. 마찬가지로, 희망하는 특징 세트를 나타내는 조합 함수를 획득하기 위해, 희망하는 특성을 각각 갖는 여러가지 매핑들을 결합시키는 것이 가능할 수 있다. 따라서, ECMP 네트워크 내의 동일 비용 링크들상에서 결정적 트래픽 확산을 달성하기 위해 상이한 실시예들이 상이한 매핑들을 이용하여(즉, 다수의 엔트로피 보존 프로토타입 매핑 함수들을 결합시킴으로써) 구축될 수 있다.
국부적 매핑들을 인스턴스화하기 위해 노드들이 키들로서 이용할 수 있는 많은 잠재적인 범용적 고유 값들이 존재한다. 예를 들어, 스위치들은 IS-IS 스위치 ID, 최단 경로 브릿징 MAC(Shortest Path Bridging MAC; SPBM) 소스 ID(B-SA), 또는 값들의 임의의 다른 조합 또는 고유성을 보존하는 이러한 값들의 변형/조합을 이용할 수 있다. 이러한 값들은, 각각의 매핑 함수가 네트워크 내 특정 스위치에 대해 고유해지도록 하기 위해, 노드 매핑 함수를 위한 키들로서 이용될 수 있다. 하지만, 주어진 노드에서 이용되는 실제 매핑 함수가 해당 노드에서 이용되는 키 값에 의해 완전히 규정되도록, 프로토타입 매핑 함수, 즉 이용되는 알고리즘은 모든 노드들에서 동일하다. 키 재료가 노드에 내재된 특성들, 즉 노드 ID에 기초하여 결정되는 예시가 제공되었지만, 또다른 실시예에서 ECMP 키 재료는 관리 시스템에 의해 제공되거나, 스위치들상에서 랜덤하게 생성되거나, 또는 고유 식별자들(예컨대, SPBM SPSourceID 또는 시스템 ID의 해쉬)로부터 유도되는 프로그램된 값일 수 있다. 추가적으로, 동일한 키 재료를 활용하는 네트워크상에서 어떠한 노드들도 갖지 않는 것이 중요한 것으로 간주되는 응용들에서, 노드들은, 각각의 노드가 다른 노드들에서 이용하는 키들을 학습할 수 있도록 하고 라우팅 영역 내의 각각의 다른 노드가 고유 키 재료를 이용중에 있다는 것을 보장하기 위해 링크 상태 라우팅 시스템을 이용하여 키 재료를 광고(advertise)할 수 있다.
이것은 이론적으로 바람직한 것이지만, 키들의 고유성은 절대적으로 필요한 것은 아니다. 예를 들어, 실용적인 관점에서, 본 방법은 두 개의 스위치들이 동일한 키들을 이용할 기회들이 비교적 낮게 유지되는 한 적당히 수행될 것이다.
예시적인 알고리즘들:
아래의 논의에서는 흐름 ID들이 작은 정수들(아마도 24비트보다는 크지 않고, 대부분 8 또는 16비트들임)일 것이라는 것을 가정할 것이다. 순열 크기는 2의 멱승(예컨대, 28, 216) 또는 이 근처일 것이다. 각각의 스위치에는 고유한 의사 랜덤 순열 또는 의사 순열이 지정될 것이다. 이와 관련하여, 동일 매핑들을 이용하는 경로에서의 두 개의 스위치들의 비정상적 경우를 회피하는 것이 중요하다. 스위치 매핑 함수는 작은(< 64 비트) 고유 정수(높은 확률을 가짐)를 갖는 일반 함수를 키잉(keying)함으로써 구축된다. 모든 스위치들상에서 동일할 수 있는 압축 함수가 또한 이용될 수 있다. 키들의 지식이 제공되고 링크 넘버링(예컨대, 각자의 링크들의 엔드포인트 브릿지 식별자들에 따른 ECMP 후보 출력 포트들의 순서)에 대해 규약이 채용되는 경우, 모든 스위치들에서의 동일 프로토타입 엔트로피 보존 함수 및 모든 스위치들에서의 동일 압축 함수의 이용의 조합은 네트워크 동작이 완전히 예측가능해지도록 할 것이다.
네트워크상의 노드들이 동일한 함수와 동일한 압축 프로세스를 이용하게 함으로써, (각각의 노드에서 이용되는 키 재료의 지식이 해당 노드에서 엔트로피 보존 매핑 함수를 인스턴스화한다는 것을 가정하여) 어떻게 흐름이 네트워크를 통해 라우팅될 것인지를 결정하는 것이 가능하다. 이것은 측정에 의해 트래픽 패턴들이 학습될 것을 필요로 하는 것이 아니라, 모델링을 통해 데이터 트래픽 패턴들의 예측을 가능하게 해준다. 따라서, 목표는 네트워크상의 트래픽 동작을 모델링하는 능력을 보존하기 위한 실제 랜덤화를 이용하지 않고서, 광범위한 동일 비용 링크들에 걸쳐 트래픽을 충분히 랜덤하게 분배하도록 동작하는 함수들을 찾는 것이다.
실시예에 따르면, 패밀리 내의 임의의 두 개의 매핑들이 충분히 탈상관되도록, 스위치들은 순열 또는 단사함수(injection)와 같은, 상이한 엔트로피 보존 매핑들을 이용해야 한다. 하나의 실시예에서 입력 세트를 출력 세트에 매핑하기 위해 이용되는 매핑 함수는 단사적이다: 즉 임의의 두 개의 상이한 입력들이 상이한 출력들에 매핑된다. 추가적으로, 엔트로피 보존 프로토타입 매핑 함수는 상이한 랜덤 키 재료를 이용하는 매핑 함수의 두 개의 인스턴스화들이 의미있고/분명한 방식으로 서로 직접적으로 상관되지 않는 상이한 매핑들을 초래시키는 희망하는 특성을 가져야 한다.
바람직한 실시예에서 엔트로피 보존 매핑 함수의 두 개의 상이한 인스턴스들은 상이한 스위치들에서 동일 흐름 ID를 동일 값에 매핑시켜서는 안된다. 마찬가지로, 매핑은 라우팅 시스템에 의해, 예컨대 IS-IS를 통해 택일적으로 광고될 수 있는 작은 고유 식별자에 의해 식별가능하고/키잉되어야 한다. 이것은 IS-IS 시스템 ID, 최단 경로 브릿징 MAC 소스 ID(SPBM SPSourceID), 새로운 고유 식별자, 또는 고유성을 보존하는 이러한 값들의 임의의 조합일 수 있다. 대안적으로, 키는 제공되거나, 랜덤하게 생성되거나, 또는 시스템 ID의 해쉬와 같은 고유 식별자들로부터 유도될 수 있다. 매핑은 또한 단순 압축 함수가 뒤따를 때 의사 랜덤으로 나타나야 한다. 이것은 작은 갯수들의 후보 출력 포트들의 경우 특히 중요하다.
선형 합동(linear-congruential) 매핑들에 기초한 순열들은 공통 프로토타입으로부터 키잉된 두 개의 상이한 매핑들이 동일 입력을 동일 출력으로 매핑시키지 않도록 단순 엔트로피 보존 매핑들을 생성하는 것이 발견되었다. 선형 합동 랜덤 수 생성은 이전의 랜덤 수로부터 연속적인 랜덤 수들을 계산함으로써 동작한다. 예시적인 선형 합동 매핑 함수는 xi+1 = (Axi + C) MOD M을 이용하여 구현될 수 있으며, 여기서 C와 M은 서로소(relatively prime)이다.
하지만, 이러한 단순 매핑들 중 몇몇은, MOD가 압축 함수로서 이용되었을 때, 특히 작은 승산기들에 대해 랜덤과는 멀리 떨어진 특성들을 나타내었던 특징들을 나타낸다. 이와 대조적으로 모듈러 지수(modular exponentiation)에 기초하는 보다 강력한 의사 랜덤 순열들은 보다 나은 성능을 나타내었다. 예를 들어, 흐름 ID들이 단순 순열을 이용하여 셔플링(shuffled)되었던, 셔플링된 흐름 ID들의 의사 랜덤 순열을 적용하는 것은 보다 랜덤하게 보이는 셔플이 생성되게 하였다. 마찬가지로, 모듈러 지수와 같은 양호한 의사 랜덤 함수를 이용하여 흐름 ID들을 셔플링하고, 각각의 노드에서, 셔플링된 시퀀스에서 상이한 오프셋으로 시작하는 것이 가능하다. 보다 복잡한 엔트로피 보존 매핑들이 또한 희망하는 특성들을 갖는 기초적인 매핑들을 결합시킴으로써 구축될 수 있다. 예를 들어, 선형 합동 매핑들과 모듈러 지수 매핑들의 결합들은 이들 모두의 양호한 특성들을 나타내었다는 것이 발견되었다: 결과적인 매핑들은 모듈러 지수 매핑들의 양호한 의사 랜덤화 특성들뿐만이 아니라 선형 합동 매핑들의 고유성 특성을 나타낸다.
예를 들어, 프라임 p와, 프리미티브 루트 g가 주어지면, 함수 f(x)=gx mod p는 임의의 연속적인 p-1개 정수들(즉, x...x+p-2)의 범위 1...p-1로의 일대일 매핑이다. 특히, 이것은 정수들 1...p-1의 의사 랜덤 순열을 생성한다. 마찬가지로, 함수 h(x)=(gx mod p)-1은 정수들 0...p-2의 의사 랜덤 순열을 생성한다. 이에 따라 모듈러 지수는 셔플링된 흐름 ID들을 랜덤화하는데 이용될 수 있다. 대안적으로, 모듈러 지수는 각각의 노드에서 모듈러 지수 자체가 키잉되는 보다 랜덤한 셔플을 구축하는데 이용될 수 있다. 예를 들어, 상이한 프리미티브 루트가 각각의 노드에서 이용될 수 있다. 이것은 노드 특유적 프리미티브 루트를 공통 기반 루트의 적절하게 선택한 멱승으로서 생성함으로써 손쉽게 달성된다.
(아래의) [표 1]은 지수를 이용하여 생성되었으며, fn(x)=3^[(2n+1)x + n mod 2m] mod (2m+1)-1이다. 3x mod 17은 0...15 (또는 1...16)을 1...16으로 매핑한다는 것을 유념하라. 1...16을 0...15으로 리매핑하는 것은 절대적으로 필요하지는 않지만 많은 방법들(예컨대, x → x mod 16, x → 16-x, 등)로 행해질 수 있고 기초적인 순열들의 특성들을 변경시키지 않는다.
[표 1]
Figure pct00001
흐름 ID가 8 또는 16비트이면, 대응하는 페르마(Fermat) 프라임들(F3=257, F4=65537)과 적절한 프리미티브 루트(예컨대, 3)가 모듈러 지수용으로 이용될 수 있다. 페르마 프라임들은 수 이론에서 프라임들이며, Fp=22p +1 (p=0...4)이다. 그 후 희망하는 경우 적절한 순열을 생성하기 위해 결과적인 범위 1...Fp-1을 0...Fp-2로 되매핑하는 것은 쉽다.
흐름 ID가 상이한 비트 수인 경우, 다음번째로 높은(또는 다음번째로 작은) 프라임이 대신에 이용될 수 있다. 순열을 위해 선택된 프라임이 흐름 ID들의 수보다 약간 작은 경우, 결과적인 매핑은 손실을 겪을 것이며 완전히 엔트로피 보존되지 않을 것이다. 프라임이 흐름 ID들의 수보다 큰 경우, 최대 흐름 ID보다 큰 정수들의 상(image)들에 도달될 수 없다라는 사실을 고려하여 결과적인 시퀀스가 리넘버링되지 않는 한, 적어도 하나의 여분의 비트가 생성된 값들을 나타내는데에 필요할 것이다. 예를 들어, 흐름 ID가 12비트 길이이면(m=12) 2m=4096이고 4096에 가장 가까운 보다 큰 프라임은 p=4099이다. 4096, 4097, 및 4098은 입력 세트에 있지 않으며, 이에 따라 이들의 상들은 출력에 있지 않다.
Figure pct00002
2^4098 mod 4099=1
Figure pct00003
2^4097 mod 4099=2^4098/2 mod 4099 = (1+4099)/2=2050
Figure pct00004
2^4096 mod 4099=2050/2=1025
f(x)를 0≤x≤4095에 대해 정의된 함수라고 놓는다.
Figure pct00005
y=2^x mod 4099
Figure pct00006
(y<1025)이면 f(x)=y-2이다;
Figure pct00007
그렇지 않고 (1025<y<2050)이면 f(x)=y-3이다.
Figure pct00008
그렇지 않으면 f(x)=y-4이다.
위 함수는 정수들 0...4095의 순열을 생성한다.
[표 1]에서, 단순 선형 합동 셔플 x → (2n+1)x+n mod 2m은 모듈러 지수 y → 3y mod 2m+1과 결합되어서 양쪽 모두의 희망하는 특성들을 결합시키는 프로토타입 매핑을 생성하였다. [표 2]는 또다른 예시를 도시하는데, 여기서 fn(x)=[((9n mod 2m)+1)*(33x mod (2m+1))-1] mod (2m +1)이다:
[표 2]
Figure pct00009
이 경우, 모듈러 지수가 제일먼저 적용되고 이어서 키잉된 선형 합동 셔플이 적용된다. 모듈러 지수에 의해 생성된 시퀀스의 비제로 승산기에 의한 승산은 시퀀스의 순환적 쉬프트를 생성한다.
임의의 프리미티브 루트는 적절하게 선택된 지수를 갖는 임의의 다른 프리미티브 루트의 멱승으로서 표현될 수 있다. [표 2]에서 도시된 예시에서 지수의 밑(basis)으로서 이용되는 프리미티브 루트는 33 = 27이였다.
위에서 설명한 순열은 네트워크상의 각각의 스위치에서 흐름 ID들을 셔플링하는데 이용될 수 있는, 출력 숫자들로의 입력 숫자들의 셔플링을 야기시킨다. 그 후 각각의 스위치는 셔플링된 흐름 ID들을 취하고 이들의 키를 이용하여 스위치에 고유한 방식으로 흐름 ID들을 더 셔플링한다. 예를 들어, 흐름 ID들의 셔플링된 시퀀스와 키의 비제로 함수의 승산이 시퀀스의 순환적 쉬프트를 생성하도록 각각의 스위치는 자신의 키를 이용할 수 있다. 대안적으로, 키잉 재료는 각각의 스위치에서 모듈러 지수의 밑으로서 이용될 상이한 프리미티브 루트를 선택하는데 이용될 수 있다. 키 재료를 이용하는 다른 방법들이 또한 구현될 수 있다.
위 설명은 순열들이 원 라인(one-line) 표기를 이용하여 설명되었던 예시들과 함께 제공되었지만, 예컨대 순환 표기와 같은 다른 표기들이 순열들을 표현하기 위해 이용될 수 있다. 특히, 순환 표기는 순열들의 패밀리가 기저 순열의 멱승들에 의해 생성될 때 어떤 일이 발생하는지를 시각화하는 편리한 방식을 제공한다.
각각의 엘리먼트에 이어서 순열을 거쳐 자신의 상이 뒤따르는 순열의 순환 표기를 이용함으로써 (순환 표기 시퀀스 내의 최종 엘리먼트가 시퀀스 내의 첫번째 엘리먼트로 되매핑되는 규약으로) 순열의 임의적 멱승이 매우 효율적으로 계산될 수 있다. 순환 표기에서, 순열의 멱승 s를 취하는 것은 순환 표기에서 앞선 s개 엘리먼트들을 스킵하는 것에 상당한다. 원 라인 표기 및 순환 표기간의 변환은 손쉽다. 순열의 순환 표기로부터 시작하는 것이 가능한데 그 이유는 이것은 순열의 차수가 순열 내 엘리먼트들의 수와 동일할 것이라는 것을 보장하기 때문이다.
여기서는 닫힌 형태 등식 f(x) = (2x+1) mod 11에 기초하거나 또는 등가적으로 점화식(recurrence) c(0) = 1, c(x+1) = c(x)+2 mod 11에 기초하는 예시적인 순열을 이용하여 이러한 프로세스를 나타낸다. 이것은 10개의 숫자들의 순열을 정의한다. 이러한 순열을 위한 순환 표기는 (0 1 3 7 4 9 8 6 2 5)이고, 원 라인 표기는 (1 3 5 7 9 0 2 4 6 8)이다. 원 라인 표기는 순서화된 시퀀스상에서의 순열의 효과를 보여주는 반면에 순환 표기는 순열이 반복적으로 적용됨에 따라 각각의 엘리먼트가 진행하는 순환을 보여준다. 보다 간결하게, 원 라인 및 순환 표기들은 다음과 같이 요약될 수 있다:
One-line[x] = f(x)
Cycle[n+1] = Cycle[0]을 갖는 f(Cycle[n])
엘리먼트들 중 임의적으로 선택된 엘리먼트가 순열된다.
원 라인 표기와 순환 표기를 서로 전환시키는 것은 쉽다: 순환 표기에서 첫번째가 되는 임의적인 엘리먼트를 선택하고(예컨대, 0), 그 후 순환 표기에서 남아있는 각각의 엘리먼트에 대해, 원 라인 표기를 이용하여 시퀀스 내에서 선행자의 상을 찾는다.
Cycle[0] = 0;
Cycle[n+1] = One-line[Cycle[n]] (n = 1 내지 N)
역방향으로, 순환 표기와 원 라인 표기를 서로 전환시키는 것은 마찬가지로 쉽다:
One-line[Cycle[n]] = Cycle[n+1]
마찬가지로, 순열의 멱승 s의 원 라인 표기는 그 순환 표기에 의해 주어진다:
One-line[Cycle[n]]=Cycle[n+s]
여기서 순환의 말미에서 랩 어라운드(wrap-around)를 이행한다는 것을 주의하여야 한다(즉, 순환의 길이 모듈로에 인덱싱이 취해진다).
따라서, 순열의 원 라인 또는 순환 표현이 주어지면, 순열의 임의적 멱승의 원 라인 또는 순환 표현이 계산될 수 있다. [표 3]은 등식 f(x) = (2x+1) mod 11에 기초하는 예시적인 순열의 연속적 멱승들을 도시한다. 최상단 행(행 0)은 순열의 0번째 멱승에 대응하며, 행 1은 순열의 원 라인 표기를 보여주며, 보다 일반적으로 행 n은 순열의 n번째 멱승의 원 라인 표기를 보여준다. (연속적 멱승들을 보여주는 가장 좌측의 것을 제외하고) 표에서 열들은 기저 순열의 상이한 순환 표기들에 대응한다.
[표 3]
Figure pct00010
순열들의 패밀리는 다음의 특성들을 갖도록 구축되었다:
Figure pct00011
순열들은 비교적 작은 정수(예컨대, 시스템 ID)에 의해 키잉된다;
Figure pct00012
두 개의 순열들은 동일한 입력을 동일한 출력에 매핑하지 않는다
Figure pct00013
단순 압축 함수(예컨대, mod)와 결합될 때 매핑들은 양호한 랜덤화 특성들을 갖는다.
순열들의 이러한 패밀리들은 (매우 큰) 라틴 방진들을 생성하며, 이에 따라 의사그룹(quasigroup)들의 승산 테이블들로서 보여질 수 있다. 본 문맥에서, 라틴 방진은 n개의 심볼들로 채워진 n x n 어레이이며, 각각의 심볼들은 각각의 행과 각각의 열에서 정확히 한번 나타난다. 특정 스위치의 매핑이 승산 테이블의 행 또는 열에 의해 표현된다. 위에서 나타난 예시들은 한정된 필드들에 기초하지만, 본 방법들은 의사그룹들과 함께 적용된다. 키 특성은 흐름 ID들의 매핑이 가역적이어야 한다는 점이다.
도 4는 실시예에 따라 ECMP를 구현하도록 구성될 수 있는 예시적인 네트워크 엘리먼트를 도시한다. 도 4에서 도시된 예시에서, 네트워크 엘리먼트(10)는 데이터 평면(20)과 제어 평면(22)을 포함한다. 다른 아키텍처들도 구현될 수 있으며 본 발명은 도 4에서 도시된 것과 같이 구성된 실시예로 제한되지는 않는다. 도 4에서 도시된 실시예의 동작의 특정 구조 및 방법들의 논의는 본 발명이 어떻게 특정 예시에서 이용되고 구현될 수 있는지에 관한 한가지 예시를 제공하는 것에 불과할 뿐이다. 본 발명은 통신 네트워크상의 프로토콜 데이터 유닛들을 핸들링하도록 구성된 임의의 네트워크 엘리먼트와 함께 보다 광범위하게 이용될 수 있다. 도 4의 네트워크 엘리먼트는 엣지 라우터와 같은 엣지 네트워크 엘리먼트, 라우터/스위치와 같은 코어 네트워크 엘리먼트, 또는 또다른 유형의 네트워크 엘리먼트로서 이용될 수 있다. 도 4의 네트워크 엘리먼트는 도 1과 관련하여 위에서 설명한 통신 네트워크와 같은 통신 네트워크상에서 구현될 수 있거나 또는 또다른 유형의 무선/유선 통신 네트워크들에서 구현될 수 있다.
도 4에서 도시된 바와 같이, 네트워크 엘리먼트는 데이터 평면(22)과 제어 평면(20)을 포함한다. 제어 평면(20)은 하나 이상의 CPU들(24)을 포함한다. 각각의 CPU(24)는 제어 평면 소프트웨어(26)를 구동하고 있으며, 제어 평면 소프트웨어(26)는 예컨대 하나 이상의 라우팅 프로세스들(28), 네트워크 동작 조정 및 관리 소프트웨어(30), 인터페이스 생성/관리 프로세스(32), 및 ECMP 프로세스(34)를 포함할 수 있다. ECMP 프로세스는 라우팅 프로세스와 독립적으로 구동될 수 있거나 또는 라우팅 프로세스의 일부분으로서 구현될 수 있다. ECMP 프로세스는 상술한 흐름들을 위한 ECPM 포트들을 선택하기 위해 엔트로피 보존 매핑 함수를 적용한다. 대안적으로, 아래에서 설명한 바와 같이, ECMP 프로세스는 제어 평면보다는 데이터 평면에서 구현될 수 있다.
제어 평면은 또한, CPU내로 로딩될 때, 제어 평면 소프트웨어(26)를 이행하는 데이터 및 명령들을 보유한 메모리(36)를 포함한다. 메모리는 라우팅 프로세스(28)에 의해 결정되는 네트워크의 토폴로지에 관한 정보를 보유한 링크 상태 데이터베이스(38)를 더 포함한다. ECMP 프로세스(34)는 LSDB 내의 정보를 이용하여 목적지에 대한 하나보다 많은 실질적으로 동일한 비용 경로가 존재하는지를 결정하고, 그 후 선택된 경로들에 흐름들을 지정하기 위해 상술한 매핑 함수들을 적용한다.
데이터 평면(22)은 데이터를 송수신하기 위해 물리적 매체(40)와 연결된 포트들(44)을 보유한 라인 카드들(42)을 포함한다. 물리적 매체는 광섬유 케이블들 또는 전기 배선들을 포함할 수 있다. 대안적으로, 물리적 매체는 예컨대 셀룰라, 802.11 또는 802.16 무선 통신 표준들 중 하나를 이용하여 무선 통신 채널로서 구현될 수 있다. 도시된 예시에서, 포트들(44)은 손쉬운 포트 교체를 용이하게 하기 위해 라인 카드들(42)상에서 지원되지만, 포트들(44)을 구현하는 다른 방법들이 또한 이용될 수 있다.
데이터 평면(22)은 네트워크 프로세싱 유닛(Network Processing Unit; NPU)(46) 및 스위치 패브릭(48)을 더 포함한다. 네트워크 엘리먼트가 네트워크상의 자신의 목적지를 향해 네트워크 트래픽을 포워딩할 수 있도록 NPU와 스위치 패브릭(48)은 데이터가 포트들 사이에서 스위칭되도록 해준다. 바람직하게 NPU와 스위치 패브릭은 네트워크 엘리먼트에 의해 트래픽을 포워딩하는 것과 연관된 레이턴시를 최소화하기 위해 제어 평면으로부터의 상당한 개입 없이 데이터 패킷들에 대해 동작한다. 트래픽을 라인 카드들로부터 스위치 패브릭으로 보내는 것에 더하여, NPU는 또한 우선순위화 및 트래픽 셰이핑과 같은 서비스들이 트래픽의 특정 흐름들상에서 구현되도록 해준다. 라인 카드들은 라인 카드들과 NPU 사이에 공유될 패킷들을 프로세싱하는 책임을 인에이블하기 위한 프로세싱 능력들도 포함할 수 있다. 다수의 프로세싱 단계들이 라인 카드들에 의해 본 업계에서 알려진 데이터 평면 내 임의의 곳에서 구현될 수 있다. 도 4에서는 본 발명의 실시예의 구현과 연관된 핵심적인 특징들의 불명료화를 회피하기 위해 특정 구현과 연관된 상세사항들은 포함되지 않았다.
하나의 실시예에서, 흐름 ID들을 다음 홉 출력 포트들에 매핑하기 위해 필요한 계산들은 데이터 평면에서 구현될 수 있다. 본 실시예에서, 제어 평면은 포워딩 결정들에 수반되지 않은 노드 특유적 함수를 셋업할 수 있다. 패킷들이 수신되고 목적지에 대한 다수의 동일 비용 경로들이 존재한다라고 결정된 경우, 패킷들은 상술한 알고리즘들을 이용하여 흐름별로 동일 비용 경로들에 매핑될 것이다. ECMP를 구현하기 위해 필요한 계산들에 대해 제어 평면과 데이터 평면사이에 책임이 할당되는 특정 방식은 특정 구현에 좌우될 것이다.
ECMP가 구현될 경우, 라우팅 소프트웨어(28)는 링크 상태 데이터베이스(38)를 이용하여 네트워크에 걸친 각각의 잠재적 목적지에 대한 최단 경로 트리들을 계산할 것이다. 포워딩 정보는 데이터 평면으로 전달될 것이며 포워딩 정보 베이스 내로 프로그래밍될 것이다. ECMP 프로세스(34)는 목적지들에 대한 각각의 실질적으로 동일한 비용 경로들에 흐름들을 할당하기 위해 ECMP 알고리즘을 적용할 것이다. 이러한 성질의 흐름들을 할당하는 한가지 방법은 도 5에서 나타나 있다. 도 5에서 도시된 바와 같이, ECMP 프로세스는 노드 특유적 매핑 함수를 생성하기 위해 프로토타입 매핑 함수에 노드 특유적 키 재료를 적용한다(100). 그 후 ECMP 프로세스는 흐름 식별자들의 셔플링된 시퀀스를 획득하기 위해 잠재적인 입력 흐름 식별자들의 세트에 노드 특유적 매핑 함수를 적용한다(102). 이러한 셔플링된 시퀀스는 테이블로서 또는 알고리즘으로서 ECMP 프로세스에서 프로그래밍될 수 있다(104). 마지막으로, ECMP 프로세스는 매핑된 흐름 ID들을 후보 출력 포트들의 세트에 할당하기 위해 압축 함수를 적용한다(106).
상술한 함수들은 컴퓨터 판독가능 메모리에 저장되고 컴퓨터 플랫폼상의 하나 이상의 프로세서들상에서 실행되는 프로그램 명령들의 세트로서 구현될 수 있다. 하지만, 여기서 설명한 모든 로직은 이산 컴포넌트들, 응용 특정 집적 회로(Application Specific Integrated Circuit; ASIC)와 같은 집적 회로, 필드 프로그램가능 게이트 어레이(Field Programmable Gate Array; FPGA)와 같은 프로그램가능 로직 디바이스와 함께 이용되는 프로그램가능 로직 또는 마이크로프로세서, 상태 머신, 또는 이들의 임의의 조합을 포함한 임의의 다른 디바이스를 이용하여 구체화될 수 있다는 것은 본 업계의 당업자에게 자명할 것이다. 프로그램가능 로직은 판독 전용 메모리 칩, 컴퓨터 메모리, 디스크, 또는 다른 저장 매체와 같은 유형적 매체에서 임시적으로 또는 영구적으로 고정될 수 있다. 이러한 모든 실시예들은 본 발명의 범위 내에 속하는 것으로서 의도된다.
본 명세서에 설명되고 도면들에서 도시된 실시예들의 다양한 변경들 및 수정들이 본 발명의 사상과 범위 내에서 이뤄질 수 있다는 것을 이해해야 한다. 따라서, 위 설명에서 포함되고 첨부된 도면들에서 도시된 모든 내용은 예시용에 불과하며 제한적인 의미로 해석되지 않도록 하는 것이 의도하는 바이다. 본 발명은 오로지 이하의 청구항들과 그 등가물들에서 정의된 대로 제한된다.

Claims (48)

  1. 패킷 네트워크 내 노드에 의해 실질적으로 동일한 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법에 있어서,
    상기 노드에 의해, 고유 키 재료로 키잉된(keyed) 노드 특유적 엔트로피 보존 매핑 함수를 잠재적인 입력 흐름 식별자들의 세트에 적용하여 흐름 식별자들의 노드 특유적 셔플링된(shuffled) 시퀀스를 획득하는 단계; 및
    압축 함수를 적용하여 상기 흐름 식별자들의 노드 특유적 셔플링된 시퀀스를 후보 출력 포트들의 세트에 할당하는 단계
    를 포함하는, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  2. 제1항에 있어서, 상기 패킷 네트워크 내 각각의 노드는 분배형 동일 비용 다중 경로(Equal Cost Multi Path; ECMP) 프로세스를 이행하기 위해 경로 선택을 독립적으로 수행하는 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  3. 제2항에 있어서, 상기 분배형 ECMP 프로세스는, 상기 패킷 네트워크의 각각의 노드가, 입력 포트상에서 수신하는 각각의 패킷마다, 송신용 패킷을 상기 패킷 네트워크를 통해 목적지를 향한 경로상의 다음 노드로 출력하기 위한 적절한 출력 포트를 결정하도록 이행되는 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  4. 제1항에 있어서, 상기 노드 특유적 엔트로피 보존 매핑 함수는 프로토타입 엔트로피 보존 매핑 함수와 상기 고유 키 재료에 의해 완전히 규정되는 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  5. 제4항에 있어서, 상기 프로토타입 엔트로피 보존 매핑 함수는 상기 패킷 네트워크 내의 다수의 노드들에 공통적인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  6. 제4항에 있어서, 상기 프로토타입 엔트로피 보존 매핑 함수 및 상기 고유 키 재료의 지식은 상기 패킷 네트워크상의 흐름 할당이 결정적(deterministic)이도록 주어진 입력 흐름 ID에 대한 출력 경로의 선택이 결정되도록 하는 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  7. 제4항에 있어서, 상기 노드 특유적 엔트로피 보존 매핑 함수는 주어진 흐름 ID와 연관된 패킷에 대해 항상 동일한 출력 경로를 선택하도록 일관되는 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  8. 제4항에 있어서, 상기 노드 특유적 엔트로피 보존 매핑 함수는 동일 인입 노드로부터 동일 배출 노드로 포워딩될 것이 요구하는 상이한 흐름 ID들을 갖는 패킷들이 각자의 흐름 ID들에 따라 인입 노드와 배출 노드 사이의 상이한 동일 비용 경로들 사이에 분배되게 하는 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  9. 제4항에 있어서, 상기 노드 특유적 엔트로피 보존 매핑 함수는 흐름 ID들을 출력 포트들에 대체로 균등하게 분배하는 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  10. 제1항에 있어서, 상기 압축 함수는 상기 패킷 네트워크 내의 다수의 노드들에 공통적인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  11. 제1항에 있어서, 상기 노드 특유적 엔트로피 보존 매핑 함수는 개별적인 입력들의 세트와 동일한 갯수의 엘리먼트들을 갖는 개별적인 출력들의 세트에 상기 개별적인 입력들의 세트가 매핑되는 전단사 함수(bijective)인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  12. 제11항에 있어서, 입력들 대 출력들의 매핑은 일대일인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  13. 제1항에 있어서, 상기 노드 특유적 엔트로피 보존 매핑 함수는, 개별적인 입력들의 세트가 보다 큰 세트의 잠재적인 개별적 출력들에 매핑되고 상기 개별적인 입력들의 갯수에 대응하는 갯수의 개별적인 출력들만이 이용되는 단사 함수(injective)인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  14. 제13항에 있어서, 입력들 대 출력들의 매핑은 일대일인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  15. 제1항에 있어서, 상기 노드 특유적 엔트로피 보존 매핑 함수는 지수(exponential) 기반 매핑인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  16. 제15항에 있어서, 상기 지수 기반 매핑 함수는 모듈러 지수(modular exponentiation)인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  17. 제16항에 있어서, 상기 지수 기반 매핑 함수는 f(x)=gx mod p의 형태를 갖는 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  18. 제17항에 있어서, 상기 모듈러 지수는 각각의 노드에서의 상이한 프리미티브(primitive) 루트를 이용하여 각각의 노드에서 키잉(keyed)되며, p는 프라임 멱승(prime power)이고 g는 프리미티브 루트인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  19. 제1항에 있어서, 상기 노드 특유적 엔트로피 보존 매핑 함수는 선형 합동(linear-congruential) 매핑 함수와 결합된 지수 기반 매핑 함수인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  20. 제1항에 있어서, 상기 고유 키 재료는 상기 패킷 네트워크상에서 구현된 라우팅 시스템을 이용하여 광고(advertised)되는 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  21. 제1항에 있어서, 상기 고유 키 재료는 IS-IS 시스템 식별자, 노드 MAC 어드레스, 제공된 값 및 이들의 조합 중 적어도 하나인 것인, 동일 비용 경로들 사이에서 경로 선택을 수행하기 위한 방법.
  22. 패킷 스위칭 네트워크를 통해 경로들상에서 패킷들을 포워딩하는 방법에 있어서, 각각의 패킷은 목적지 어드레스와 흐름 식별자를 갖고, 상기 패킷 스위칭 네트워크는 적어도 한 쌍의 노드들 사이에 복수의 실질적으로 동일한 비용 경로들을 가지며, 상기 실질적으로 동일한 비용 경로들 각각은 실질적으로 동일한 비용 경로상의 각각의 노드에서 대응하는 후보 출력 포트를 가지며, 상기 방법은, 노드에서 분기된 다수의 동일 비용 경로들을 갖는 목적지 어드레스를 갖는 패킷들에 대해,
    각각의 패킷의 흐름 식별자를 상기 패킷의 목적지 어드레스에 대한 후보 출력 포트들 중 하나의 출력 포트에 매핑함으로써 상기 노드에서 후보 출력 포트들을 선택하는 단계
    를 포함하고, 상기 매핑은 상기 노드에 본질적으로 고유한 제1 함수를 포함하고, 상기 함수는 모든 잠재적인 흐름 식별자들에 대해, 동일 흐름 식별자에 대한 대부분의 다른 네트워크 노드들 또는 다른 모든 네트워크 노드들에서 대응 함수들에 의해 생성되는 값들과는 상이한 값을 생성하며,
    상기 함수의 출력 세트는 후보 출력 포트들의 갯수보다 크며, 상기 매핑은 상기 제1 함수의 출력 세트를 후보 출력 포토들로 제한된 세트에 매핑하는 압축 함수를 더 포함하는 것인, 패킷 포워딩 방법.
  23. 제22항에 있어서, 상기 패킷 네트워크 내의 각각의 노드는 분배형 동일 비용 다중 경로(Equal Cost Multi Path; ECMP) 프로세스를 이행하기 위해 각각의 패킷에 대한 후보 출력 포트들을 선택하는 단계를 독립적으로 수행하는 것인, 패킷 포워딩 방법.
  24. 제22항에 있어서, 상기 제1 함수는 선형 합동(linear-congruential) 매핑 함수와 결합된 지수 기반 매핑 함수인 것인, 패킷 포워딩 방법.
  25. 제22항에 있어서, 상기 제1 함수는 프로토타입 엔트로피 보존 매핑 함수와 고유 키 재료에 의해 완전히 규정되는 것인, 패킷 포워딩 방법.
  26. 제25항에 있어서, 상기 프로토타입 엔트로피 보존 매핑 함수는 상기 패킷 네트워크 내의 다수의 노드들에 공통적인 것인, 패킷 포워딩 방법.
  27. 제25항에 있어서, 상기 프로토타입 엔트로피 보존 매핑 함수 및 상기 고유 키 재료의 지식은 상기 패킷 네트워크상의 흐름 할당이 결정적(deterministic)이도록 주어진 입력 흐름 ID에 대한 출력 경로의 선택이 결정되도록 하는 것인, 패킷 포워딩 방법.
  28. 제22항에 있어서, 상기 제1 함수는 개별적인 입력들의 세트와 동일한 갯수의 엘리먼트들을 갖는 개별적인 출력들의 세트에 상기 개별적인 입력들의 세트가 매핑되는 전단사 함수(bijective)인 것인, 패킷 포워딩 방법.
  29. 제22항에 있어서, 상기 제1 함수는, 개별적인 입력들의 세트가 보다 큰 세트의 잠재적인 개별적 출력들에 매핑되고 상기 개별적인 입력들의 갯수에 대응하는 갯수의 개별적인 출력들만이 이용되는 단사 함수(injective)인 것인, 패킷 포워딩 방법.
  30. 제22항에 있어서, 상기 압축 함수는 상기 패킷 네트워크 내의 다수의 노드들에 공통적인 것인, 패킷 포워딩 방법.
  31. 패킷 스위칭 네트워크를 통해 경로들상에서 패킷들을 포워딩하는 시스템에 있어서, 각각의 패킷은 목적지 어드레스와 흐름 식별자를 갖고, 상기 패킷 스위칭 네트워크는 적어도 한 쌍의 노드들 사이에 복수의 실질적으로 동일한 비용 경로들을 가지며, 상기 실질적으로 동일한 비용 경로들 각각은 실질적으로 동일한 비용 경로상의 각각의 노드에서 대응하는 후보 출력 포트를 가지며, 상기 시스템은,
    적어도 하나의 프로세서;
    상기 프로세서를 상기 패킷 스위칭 네트워크에 결합시키도록 동작가능한 적어도 하나의 네트워크 인터페이스; 및
    상기 적어도 하나의 프로세서에 의한 실행을 위한 명령들을 저장하도록 동작가능한 적어도 하나의 메모리
    를 포함하며, 상기 명령들은 노드에서 분기된 다수의 동일 비용 경로들을 갖는 목적지 어드레스를 갖는 패킷들에 대해,
    각각의 패킷의 흐름 식별자를 상기 패킷의 목적지 어드레스에 대한 후보 출력 포트들 중 하나의 출력 포트에 매핑함으로써 상기 노드에서 후보 출력 포트들을 선택하도록 실행가능하고,
    상기 매핑은 상기 노드에 본질적으로 고유한 제1 함수를 포함하고, 상기 함수는 모든 잠재적인 흐름 식별자들에 대해, 동일 흐름 식별자에 대한 대부분의 다른 네트워크 노드들 또는 다른 모든 네트워크 노드들에서 대응 함수들에 의해 생성되는 값들과는 상이한 값을 생성하며,
    상기 함수의 출력 세트는 후보 출력 포트들의 갯수보다 크며, 상기 매핑은 상기 제1 함수의 출력 세트를 후보 출력 포토들로 제한된 세트에 매핑하는 압축 함수를 더 포함하는 것인, 패킷 포워딩 시스템.
  32. 제31항에 있어서, 상기 패킷 네트워크 내의 각각의 노드는 분배형 동일 비용 다중 경로(Equal Cost Multi Path; ECMP) 프로세스를 이행하기 위해 각각의 패킷에 대한 후보 출력 포트들을 선택하는 단계를 독립적으로 수행하는 것인, 패킷 포워딩 시스템.
  33. 제31항에 있어서, 상기 제1 함수는 선형 합동(linear-congruential) 매핑 함수와 결합된 지수 기반 매핑 함수인 것인, 패킷 포워딩 시스템.
  34. 제31항에 있어서, 상기 제1 함수는 프로토타입 엔트로피 보존 매핑 함수와 고유 키 재료에 의해 완전히 규정되는 것인, 패킷 포워딩 시스템.
  35. 제34항에 있어서, 상기 프로토타입 엔트로피 보존 매핑 함수는 상기 패킷 네트워크 내의 다수의 노드들에 공통적인 것인, 패킷 포워딩 시스템.
  36. 제34항에 있어서, 상기 프로토타입 엔트로피 보존 매핑 함수 및 상기 고유 키 재료의 지식은 상기 패킷 네트워크상의 흐름 할당이 결정적(deterministic)이도록 주어진 입력 흐름 ID에 대한 출력 경로의 선택이 결정되도록 하는 것인, 패킷 포워딩 시스템.
  37. 제31항에 있어서, 상기 제1 함수는 개별적인 입력들의 세트와 동일한 갯수의 엘리먼트들을 갖는 개별적인 출력들의 세트에 상기 개별적인 입력들의 세트가 매핑되는 전단사 함수(bijective)인 것인, 패킷 포워딩 시스템.
  38. 제31항에 있어서, 상기 제1 함수는, 개별적인 입력들의 세트가 보다 큰 세트의 잠재적인 개별적 출력들에 매핑되고 상기 개별적인 입력들의 갯수에 대응하는 갯수의 개별적인 출력들만이 이용되는 단사 함수(injective)인 것인, 패킷 포워딩 시스템.
  39. 제31항에 있어서, 상기 압축 함수는 상기 패킷 네트워크 내의 다수의 노드들에 공통적인 것인, 패킷 포워딩 시스템.
  40. 패킷 스위칭 네트워크를 통해 경로들상에서 패킷들을 포워딩하는 네트워크 엘리먼트에 있어서, 각각의 패킷은 목적지 어드레스와 흐름 식별자를 갖고, 상기 패킷 스위칭 네트워크는 상기 네트워크 엘리먼트와 적어도 하나의 다른 노드 사이에 복수의 실질적으로 동일한 비용 경로들을 가지며, 상기 실질적으로 동일한 비용 경로들 각각은 상기 네트워크 엘리먼트에서 대응하는 후보 출력 포트를 가지며, 상기 네트워크 엘리먼트는,
    적어도 하나의 프로세서;
    상기 프로세서를 상기 패킷 스위칭 네트워크에 결합시키도록 동작가능한 적어도 하나의 네트워크 인터페이스; 및
    상기 적어도 하나의 프로세서에 의한 실행을 위한 명령들을 저장하도록 동작가능한 적어도 하나의 메모리
    를 포함하며, 상기 명령들은 상기 네트워크 엘리먼트에서 분기된 다수의 동일 비용 경로들을 갖는 목적지 어드레스를 갖는 패킷들에 대해,
    각각의 패킷의 흐름 식별자를 상기 패킷의 목적지 어드레스에 대한 후보 출력 포트들 중 하나의 출력 포트에 매핑함으로써 상기 네트워크 엘리먼트에서 후보 출력 포트들을 선택하도록 실행가능하고,
    상기 매핑은 상기 네트워크 엘리먼트에 본질적으로 고유한 제1 함수를 포함하고, 상기 함수는 모든 잠재적인 흐름 식별자들에 대해, 동일 흐름 식별자에 대한 대부분의 다른 네트워크 엘리먼트들 또는 다른 모든 네트워크 엘리먼트들에서 대응 함수들에 의해 생성되는 값들과는 상이한 값을 생성하며,
    상기 함수의 출력 세트는 후보 출력 포트들의 갯수보다 크며, 상기 매핑은 상기 제1 함수의 출력 세트를 후보 출력 포토들로 제한된 세트에 매핑하는 압축 함수를 더 포함하는 것인, 네트워크 엘리먼트.
  41. 제40항에 있어서, 상기 패킷 네트워크 내의 각각의 네트워크 엘리먼트는 분배형 동일 비용 다중 경로(Equal Cost Multi Path; ECMP) 프로세스를 이행하기 위해 각각의 패킷에 대한 후보 출력 포트들을 선택하는 단계를 독립적으로 수행하는 것인, 네트워크 엘리먼트.
  42. 제40항에 있어서, 상기 제1 함수는 선형 합동(linear-congruential) 매핑 함수와 결합된 지수 기반 매핑 함수인 것인, 네트워크 엘리먼트.
  43. 제40항에 있어서, 상기 제1 함수는 프로토타입 엔트로피 보존 매핑 함수와 고유 키 재료에 의해 완전히 규정되는 것인, 네트워크 엘리먼트.
  44. 제43항에 있어서, 상기 프로토타입 엔트로피 보존 매핑 함수는 상기 패킷 네트워크 내의 다수의 네트워크 엘리먼트들에 공통적인 것인, 네트워크 엘리먼트.
  45. 제43항에 있어서, 상기 프로토타입 엔트로피 보존 매핑 함수 및 상기 고유 키 재료의 지식은 상기 패킷 네트워크상의 흐름 할당이 결정적(deterministic)이도록 주어진 입력 흐름 ID에 대한 출력 경로의 선택이 결정되도록 하는 것인, 네트워크 엘리먼트.
  46. 제40항에 있어서, 상기 제1 함수는 개별적인 입력들의 세트와 동일한 갯수의 엘리먼트들을 갖는 개별적인 출력들의 세트에 상기 개별적인 입력들의 세트가 매핑되는 전단사 함수(bijective)인 것인, 네트워크 엘리먼트.
  47. 제40항에 있어서, 상기 제1 함수는, 개별적인 입력들의 세트가 보다 큰 세트의 잠재적인 개별적 출력들에 매핑되고 상기 개별적인 입력들의 갯수에 대응하는 갯수의 개별적인 출력들만이 이용되는 단사 함수(injective)인 것인, 네트워크 엘리먼트.
  48. 제40항에 있어서, 상기 압축 함수는 상기 패킷 네트워크 내의 다수의 네트워크 엘리먼트들에 공통적인 것인, 네트워크 엘리먼트.
KR1020137019192A 2011-02-17 2012-02-17 동일 비용 다중 경로 패킷 스위칭 네트워크들을 위한 다음 홉 계산 함수들 KR20140059160A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161443993P 2011-02-17 2011-02-17
US61/443,993 2011-02-17
PCT/US2012/025552 WO2012112834A2 (en) 2011-02-17 2012-02-17 Next hop computation functions for equal cost multi-path packet switching networks

Publications (1)

Publication Number Publication Date
KR20140059160A true KR20140059160A (ko) 2014-05-15

Family

ID=46673189

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137019192A KR20140059160A (ko) 2011-02-17 2012-02-17 동일 비용 다중 경로 패킷 스위칭 네트워크들을 위한 다음 홉 계산 함수들

Country Status (7)

Country Link
EP (1) EP2676406A2 (ko)
JP (1) JP2014509145A (ko)
KR (1) KR20140059160A (ko)
CN (1) CN103430494A (ko)
BR (1) BR112013020722A2 (ko)
CA (1) CA2820765A1 (ko)
WO (1) WO2012112834A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015061470A1 (en) * 2013-10-23 2015-04-30 Harshavardha Paramasiviah Internet protocol routing method and associated architectures
GB201807835D0 (en) * 2018-05-15 2018-06-27 Nchain Holdings Ltd Computer-implemented system and method
GB201808493D0 (en) * 2018-05-23 2018-07-11 Nchain Holdings Ltd Computer-Implemented System and Method
US11025534B2 (en) * 2019-10-15 2021-06-01 Cisco Technology, Inc. Service-based node-centric ECMP health
CN110837650B (zh) * 2019-10-25 2021-08-31 华中科技大学 一种不可信网络环境下的云存储oram访问系统和方法
US11616726B2 (en) * 2020-11-24 2023-03-28 Juniper Networks, Inc. End-to-end flow monitoring in a computer network
CN113726660B (zh) * 2021-08-27 2022-11-15 西安微电子技术研究所 一种基于完美哈希算法的路由查找器和方法
CN114884868B (zh) * 2022-05-10 2024-04-12 云合智网(上海)技术有限公司 基于ecmp组的链路保护方法
CN117792992B (zh) * 2024-02-28 2024-05-07 鹏城实验室 数据传输路径控制方法、装置、介质及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636309B2 (en) * 2005-06-28 2009-12-22 Alcatel-Lucent Usa Inc. Multi-path routing using intra-flow splitting
CN100531134C (zh) * 2006-05-17 2009-08-19 华为技术有限公司 一种实现多路径传输的方法、装置和系统
US8718060B2 (en) * 2006-07-31 2014-05-06 Cisco Technology, Inc. Technique for multiple path forwarding of label-switched data traffic
US8565239B2 (en) * 2009-07-14 2013-10-22 Broadcom Corporation Node based path selection randomization

Also Published As

Publication number Publication date
CN103430494A (zh) 2013-12-04
EP2676406A2 (en) 2013-12-25
JP2014509145A (ja) 2014-04-10
WO2012112834A4 (en) 2013-04-11
CA2820765A1 (en) 2012-08-23
WO2012112834A3 (en) 2013-02-21
WO2012112834A2 (en) 2012-08-23
BR112013020722A2 (pt) 2016-10-18

Similar Documents

Publication Publication Date Title
US20130279503A1 (en) Next Hop Computation Functions for Equal Cost Multi-Path Packet Switching Networks
KR20140059160A (ko) 동일 비용 다중 경로 패킷 스위칭 네트워크들을 위한 다음 홉 계산 함수들
US8750820B2 (en) Method and apparatus for selecting between multiple equal cost paths
US9246810B2 (en) Hash-based load balancing with per-hop seeding
US10033641B2 (en) Deterministic and optimized bit index explicit replication (BIER) forwarding
EP2842278B1 (en) Three stage folded clos optimization for 802.1aq
US9160651B2 (en) Metric biasing for bandwidth aware tie breaking
CN106105130B (zh) 一种在源路由中提供熵源的方法和设备
US8982689B2 (en) Split tiebreakers for 802.1AQ
US20150032871A1 (en) Automated traffic engineering based upon the use of bandwidth and unequal cost path utilization
US20130114595A1 (en) Method for Multicast Flow Routing Selection
US8085659B2 (en) Method and switch for routing data packets in interconnection networks
CN104246701A (zh) 用于基于源路由在不同无限带宽子网间路由流量的系统和方法
EP2633654A1 (en) Load balancing in shortest-path-bridging networks
US20120230194A1 (en) Hash-Based Load Balancing in Large Multi-Hop Networks with Randomized Seed Selection
Zhang et al. Load balancing in IP networks using generalized destination-based multipath routing
Detal et al. Revisiting flow-based load balancing: Stateless path selection in data center networks
US20120287946A1 (en) Hash-Based Load Balancing with Flow Identifier Remapping
WO2015011648A1 (en) Automated traffic engineering based upon the use of bandwidth and unequal cost path utilization
Hou et al. Equal Preference Multi-Path Routing for L2 Hierarchical Networks

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid