KR20160142884A - 프리픽스 인식 가중 비용 다중 경로 그룹 감소 - Google Patents

프리픽스 인식 가중 비용 다중 경로 그룹 감소 Download PDF

Info

Publication number
KR20160142884A
KR20160142884A KR1020167031526A KR20167031526A KR20160142884A KR 20160142884 A KR20160142884 A KR 20160142884A KR 1020167031526 A KR1020167031526 A KR 1020167031526A KR 20167031526 A KR20167031526 A KR 20167031526A KR 20160142884 A KR20160142884 A KR 20160142884A
Authority
KR
South Korea
Prior art keywords
routing
multipath
network
forwarding table
items
Prior art date
Application number
KR1020167031526A
Other languages
English (en)
Other versions
KR101922536B1 (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 KR20160142884A publication Critical patent/KR20160142884A/ko
Application granted granted Critical
Publication of KR101922536B1 publication Critical patent/KR101922536B1/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/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/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised 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/74Address processing for 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/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/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • 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
    • 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/17Interaction among intermediate nodes, e.g. hop by hop

Abstract

패킷 스위치에 대한 포워딩 표를 생성하기 위한 방법들 및 시스템들이 개시된다. 시스템은 패킷 스위치에 대한 루트 관리기를 포함하는데, 루트 관리기는 포워딩 표 내의 라우팅 항목들의 각각의 초기 세트에 각각 대응하는 복수의 다중 경로 그룹들을 식별하고, 그리고 하나 또는 그보다 많은 다중 경로 그룹들에 대해, 각각의 다중 경로 그룹에 대응하는 초기 세트보다 더 적은 라우팅 항목들을 갖는, 라우팅 항목들의 적어도 하나의 대체 세트를 생성하도록 구성된다. 루트 관리기는 트래픽 감소 비용 메트릭을 기초로, 라우팅 항목들의 대체 세트들 중 하나 또는 그보다 많은 대체 세트를 선택하고 ― 각각의 대체 세트는 서로 다른 각각의 다중 경로 그룹에 대응함 ―, 선택된 대체 세트들로 포워딩 표를 업데이트한다. 일부 구현들에서, 트래픽 감소 비용 메트릭은 트래픽 특징을 포함한다. 일부 구현들에서, 패킷 스위치는 소프트웨어 정의 네트워크(SDN)에 관여하며, 루트 관리기는 SDN 제어기의 일부이다.

Description

프리픽스 인식 가중 비용 다중 경로 그룹 감소{PREFIX-AWARE WEIGHTED COST MULTI-PATH GROUP REDUCTION}
[0001] 본 출원은 "Prefix-Aware Weighted Cost Multi-Path Group Reduction"이라는 명칭으로 2015년 3월 10일자 출원된 미국 특허출원 제14/643,712호의 이익 및 우선권 주장하며, 이 특허출원은 "Prefix-Aware Weighted Cost Multi-Path Group Reduction"이라는 명칭으로 2014년 5월 12일자 출원된 미국 가출원 제61/991,969호에 대한 우선권을 주장한다. 두 출원들 모두 이로써 그 전체가 인용에 의해 포함된다.
[0002] 하나 또는 그보다 많은 상호 접속된 네트워크들에서 네트워크 디바이스로부터 네트워크 디바이스로, 예를 들면 스위치들로 전달되는 네트워크 패킷들의 형태로 컴퓨터 시스템들 간에 정보가 송신된다. 각각의 네트워크 디바이스는 수신된 패킷들을 패킷들 내의 헤더 정보에 의해 명시된 목적지를 향해 포워딩한다. 목적지 어드레스는 서로 다른 네트워크 내의 디바이스에 대한 것일 수 있으며, 이는 제 3 자에 의해 제어될 수 있고, 패킷들은 임의의 수의 개별 네트워크들을 통해 소스와 목적지 사이에 전달될 수 있다.
[0003] 일부 네트워크 디바이스들, 일반적으로 스위치는 포워딩 표에 할당된 메모리를 포함한다. 네트워크 디바이스가 패킷을 수신하면, 네트워크 디바이스는 포워딩 표 내의 정보를 사용하여, 수신된 패킷을 어떻게 처리할지 결정할 수 있다. 예를 들어, 포워딩 표는 네트워크 목적지까지의 경로를 따라 다음 홉에 연결되는 출구 포트를 명시하는 라우팅 항목을 포함할 수 있다.
[0004] 일부 네트워크 구성들에는, 네트워크 디바이스로부터 특정 네트워크 목적지까지 다수의 실행 가능한 경로들이 존재할 수 있다. 등가 다중 경로(ECMP: Equal-Cost Multi-Path) 라우팅은 포워딩 표가 다수의 경로들 각각에 대한 라우팅 항목들을 포함할 수 있게 한다. ECMP를 지원하는 스위치는 다음에, ECMP 루트 세트 내의 다수의 루트들에 걸쳐 네트워크 트래픽을 분배할 수 있다. 가중 비용 다중 경로(WCMP: Weighted-Cost Multi-Path) 라우팅은 다중 경로 루트 세트 내의 다수의 실행 가능한 경로들 중 일부가 동일 세트 내의 다른 경로들보다 더 많이 사용될 수 있게 한다. 그러나 WCMP 루트 세트에 대한 라우팅 항목들은 포워딩 표에 할당된 메모리의 상당 부분을 소비할 수 있다.
[0005] 한 양상에서, 본 개시는 패킷 스위치에 대한 포워딩 표를 생성하는 방법에 관한 것이다. 이 방법은 패킷 스위치의 포워딩 표에서, 포워딩 표 내의 라우팅 항목들의 각각의 초기 세트에 각각 대응하는 복수의 다중 경로 그룹들을 식별하는 단계를 포함한다. 이 방법은 복수의 다중 경로 그룹들 내의 하나 또는 그보다 많은 다중 경로 그룹들에 대해, 각각의 다중 경로 그룹에 대응하는 라우팅 항목들의 초기 세트보다 더 적은 라우팅 항목들을 갖는, 라우팅 항목들의 적어도 하나의 대체 세트를 생성하는 단계를 포함한다. 이 방법은 트래픽 감소 비용 메트릭을 기초로, 라우팅 항목들의 대체 세트들 중 하나 또는 그보다 많은 대체 세트를 선택하는 단계 ― 각각의 선택된 대체 세트는 복수의 다중 경로 그룹들 내의 서로 다른 각각의 다중 경로 그룹에 대응함 ―, 및 패킷 스위치의 포워딩 표에서, 라우팅 항목들의 선택된 대체 세트에 대응하는 각각의 다중 경로 그룹에 대한 라우팅 항목들의 초기 세트를 라우팅 항목들의 각각의 대응하는 선택된 대체 세트로 대체하는 단계를 포함한다. 일부 구현들에서, 트래픽 감소 비용 메트릭은 제 1 트래픽 특징을 포함한다.
[0006] 다른 양상에서, 본 개시는 시스템에 관한 것이다. 시스템은 포워딩 표를 갖는 패킷 스위치, 및 패킷 스위치에 대한 루트 관리기를 포함한다. 루트 관리기는 포워딩 표에서, 포워딩 표 내의 라우팅 항목들의 각각의 초기 세트에 각각 대응하는 복수의 다중 경로 그룹들을 식별하고, 그리고 복수의 다중 경로 그룹들 내의 하나 또는 그보다 많은 다중 경로 그룹들에 대해, 각각의 다중 경로 그룹에 대응하는 라우팅 항목들의 초기 세트보다 더 적은 라우팅 항목들을 갖는, 라우팅 항목들의 적어도 하나의 대체 세트를 생성하도록 구성된다. 루트 관리기는 트래픽 감소 비용 메트릭을 기초로, 라우팅 항목들의 대체 세트들 중 하나 또는 그보다 많은 대체 세트를 선택하고 ― 각각의 선택된 대체 세트는 복수의 다중 경로 그룹들 내의 서로 다른 각각의 다중 경로 그룹에 대응함 ―, 그리고 포워딩 표에서, 라우팅 항목들의 선택된 대체 세트에 대응하는 각각의 다중 경로 그룹에 대한 라우팅 항목들의 초기 세트를 라우팅 항목들의 각각의 대응하는 선택된 대체 세트로 대체하도록 구성된다. 일부 구현들에서, 트래픽 감소 비용 메트릭은 제 1 트래픽 특징을 포함한다. 일부 구현들에서, 패킷 스위치는 소프트웨어 정의 네트워크(SDN: software-defined network)에 관여하며, 루트 관리기는 패킷 스위치에 대한 SDN 제어기의 일부이다.
[0007] 본 개시의 상기 및 관련 과제들, 특징들 및 이점들은 다음 도면들과 함께 받아들여질 때 다음의 상세한 설명과 관련하여 보다 충분히 이해될 것이다.
[0008] 도 1은 예시적인 네트워크의 블록도이다.
[0009] 도 2는 예시적인 네트워크 디바이스의 블록도이다.
[0010] 도 3a - 도 3c는 예시적인 포워딩 표들의 블록도들이다.
[0011] 도 4는 프리픽스 인식 WCMP 그룹 감소 방법에 대한 흐름도이다.
[0012] 도 5는 중요 네트워크 트래픽을 송신하는데 사용되지 않는 다중 경로 세트들에 대한 WCMP 그룹 감소 방법에 대한 흐름도이다.
[0013] 도 6은 예시적인 구현에 따른 컴퓨팅 시스템의 블록도이다.
[0014] 다양한 도면들에서 동일한 참조부호들 및 지정들은 동일한 엘리먼트들을 표시한다.
[0015] 도 1은 다양한 상호 접속 포인트들에서 서로 링크되는 다수의 독립적인 네트워크들로 구성된 예시적인 네트워크 환경의 블록도이다. 예시된 바와 같이, 로컬 네트워크(110)는 하나 또는 그보다 많은 중개 네트워크들(130)을 통해 목적지 네트워크(150)와 통신한다. 로컬 네트워크(110)는 로컬 네트워크(110)의 에지에서 네트워크 디바이스들(124, 126)을 통해 중개 네트워크들(130)에 접속한다. 이러한 "에지" 네트워크 디바이스들은 중개 네트워크들(130)을 통해 3개의 예시된 네트워크 경로들: 경로 "A"(144), 경로 "B"(146) 및 경로 "C"(148)에 관여한다. 각각의 경로(144, 146, 148)는 네트워크들(110, 130, 150)을 통해 목적지 네트워크(150) 내의 목적지 디바이스(154)까지의 서로 다른 루트이다. 로컬 네트워크(110) 내의 네트워크 디바이스(122)는 목적지 디바이스(154)에 어드레싱된 패킷을 에지 디바이스(124 또는 126)에 포워딩하여 패킷이 목적지 네트워크(150)에 도달하게 할 수 있다. 즉, 네트워크 디바이스(122)는 다중 경로 라우팅을 구현할 수 있다.
[0016] 도 1을 참조하면, 보다 상세하게는, 로컬 네트워크(110)는 다양한 네트워크 디바이스들(122, 124, 126)을 포함한다. 로컬 네트워크(110)는 다수의 컴퓨팅 시스템들 간의 통신을 가능하게 하는 임의의 종류의 데이터 네트워크일 수 있다. 로컬 네트워크(110) 내의 네트워크 디바이스(122)는 로컬 네트워크(110)의 에지에 있는 네트워크 디바이스들(124, 126)을 포함하는 로컬 네트워크(110) 내의 다른 네트워크 디바이스들에 그리고 다른 네트워크 디바이스들로부터 패킷들을 전송(송신) 및 수신할 수 있다. 일부 구현들에서, 로컬 네트워크(110)는 소프트웨어 정의 네트워크(SDN)이며, 여기서 네트워크 디바이스들 중 하나 이상은 (도 1에 도시되지 않은) SDN 제어기에 의해 제어된다. SDN 제어기에 의해 제어되는 네트워크 디바이스의 일례가 도 2에 예시된다. 네트워크 디바이스를 구현하는데 사용될 수 있는 컴퓨팅 시스템의 일례는 도 7에 예시된다.
[0017] 여전히 도 1을 참조하면, 에지 네트워크 디바이스들(124, 126)은 로컬 네트워크(110)를 다른 네트워크들(130)에 접속한다. 일부 구현들에서, 에지 디바이스는 "멀티 홈(multi-homed)" 디바이스가 두 네트워크들 모두에 관여할 수 있도록, 네트워크 인터페이스를 하나의 네트워크에 접속시키고, 다른 네트워크 인터페이스를 다른 네트워크에 접속시킨다. 일부 구현들에서, 에지 디바이스는 네트워크 상호 접속, 예를 들면 제 3 자 인터넷 교환 제공자(IXP: Internet Exchange Provider)에 의해 제공되는 상호 접속을 통해 다른 네트워크의 에지 디바이스에 접속된다. 에지 디바이스들(124, 126)은 로컬 네트워크(110)와 다른 네트워크(130) 간의 게이트웨이들로서의 역할을 한다. 일부 구현들에서, 에지 디바이스들(124, 126)은 경계 게이트웨이 프로토콜(BGP: Border Gateway Protocol)과 같은 라우팅 프로토콜들을 구현한다. 패킷이 로컬 네트워크(110) 내부에서부터 로컬 네트워크(110) 외부의 목적지 디바이스(154)까지 이동하기 위해, 패킷이 목적지 디바이스(154)를 호스팅하는 목적지 네트워크(150)까지의 네트워크 경로를 따라 로컬 네트워크(110) 내에서 에지 디바이스로 라우팅된다. 에지 네트워크 디바이스(124)는 중개 네트워크들(130)을 통해 목적지 네트워크(150)까지 적어도 2개의 개별 경로들인 경로 "A"(144) 및 경로 "B"(146)에 관여하는 것으로 예시된다. 다른 에지 네트워크 디바이스(126)는 중개 네트워크들(130)을 통해 목적지 네트워크(150)까지 제 3 개별 경로인 경로 "C"(148)에 관여하는 것으로 예시된다. 즉, 로컬 네트워크(110)로부터 목적지 네트워크(150)까지 적어도 3개의 서로 다른 경로들이 존재한다.
[0018] 중개 네트워크들(130)은 다수의 컴퓨팅 시스템들 간의 통신을 가능하게 하는 데이터 네트워크들이다. 일부 구현들에서, 중개 네트워크(130)는 예를 들면, 자율 시스템 내의 로컬 네트워크(110)를 제어하는 동일한 관계자에 의해 제어된다. 일부 구현들에서, 중개 네트워크(130)는 제 3 자에 의해 제어된다. 일부 구현들에서, 중개 네트워크(130)는 캐리어 네트워크이다. 일부 구현들에서, 로컬 네트워크(110)로부터 목적지 네트워크(150)로 송신되는 패킷은 다수의 중개 네트워크들(130)을 통과할 것이다.
[0019] 목적지 디바이스(154)는 네트워크 패킷들을 수신할 수 있는 컴퓨팅 시스템 또는 네트워크 디바이스이다. 목적지 디바이스(154)는 적어도 하나의 네트워크 어드레스와 연관되는데, 이를 목적지 네트워크(150)의 네트워크 어드레스 공간 내에 배치한다. 목적지 디바이스(154)는 네트워크로부터 패킷들을 수신할 수 있는 임의의 컴퓨팅 시스템일 수도 있다. 예를 들어, 목적지 디바이스(154)는 목적지 네트워크(150)로부터 수신된 정보를 컴퓨터 사용자에게 제시하도록 구성된 클라이언트 디바이스일 수 있다. 일부 구현들에서, 목적지 디바이스(154)는 서버이다. 예를 들어, 목적지 디바이스(154)는 오프사이트(off-site) 데이터 저장 시스템일 수 있다. 목적지 디바이스(154)를 구현하는데 사용될 수 있는 컴퓨팅 시스템의 일례는 도 7에 예시된다.
[0020] 목적지 네트워크(150)는 다수의 컴퓨팅 시스템들 간의 통신을 가능하게 하는 임의의 종류의 데이터 네트워크일 수 있다. 일부 구현들에서, 목적지 네트워크(150)는 인터넷 서비스 제공자(ISP: Internet service provider) 네트워크이다.
[0021] 로컬 네트워크(110), 중개 네트워크들(130) 및 목적지 네트워크(150)는 각각 다수의 컴퓨팅 시스템들 간의 통신을 가능하게 하는 임의의 종류의 데이터 네트워크일 수 있다. 예를 들어, 각각의 네트워크(110, 130 및/또는 150)는 근거리 네트워크(LAN: local area network), 광역 네트워크(WAN: wide area network) 또는 가상 네트워크일 수 있다. 각각의 네트워크는 OSI 물리 계층 특성들을 가지며, OSI 링크 계층 프로토콜들, 예를 들면 이더넷을 사용하여 동작한다. 각각의 네트워크는 도 1에 도시되지 않은 추가 네트워크 디바이스들, 예를 들면 허브들, 브리지들, 스위치들 또는 라우터들을 포함할 수 있다. 네트워크들(110, 130 및/또는 150) 중 임의의 네트워크는 소프트웨어 정의 네트워크(SDN)일 수 있다.
[0022] 일부 구현들에서, 모든 네트워크 디바이스들(122, 124, 126, 154)은 서로 다른 네트워크들에 로케이팅되는 것이 아니라 동일한 네트워크에 포함될 수도 있다. 예를 들어, 디바이스들은 모두 동일한 소프트웨어 정의 데이터 센터 네트워크에 있을 수도 있다. 일부 데이터 센터 네트워크들은 하나 또는 그보다 많은 랙(rack) 상단 스위치들을 각각 포함하는 랙들에 배열된 상당한 수의 서버들을 포함한다. 그래서 서버들은 집적(aggregation) 계층 스위치들의 하나 또는 그보다 많은 계층들을 통해 데이터 센터의 다른 서버들과 통신한다. 이러한 네트워크에서는, 일례로, 데이터 센터 내의 랙 상단 스위치는 다수의 집적 계층 스위치들에 링크될 수 있으며, 다중 경로 라우팅을 이용하여 그 랙에 포함된 서버들에 의해 출력되는 트래픽을 네트워크의 주어진 집적 계층에서 다수의 스위치들에 걸쳐 분배하도록 구성될 수 있다. 마찬가지로, 집적 계층 스위치들은 또한 다중 경로 라우팅을 이용할 수도 있다.
[0023] 도 2는 제어 링크(112)에 의해 분리된 예시적인 소프트웨어 정의 네트워크 제어기(220) 및 네트워크 디바이스(230)의 블록도이다. 넓은 개요에서, SDN 제어기(220)는 제어 모듈(242) 그리고 예를 들면, 네트워크 구성 및 라우팅 데이터를 저장하기 위한 메모리(226)를 포함한다. 네트워크 디바이스(230)는 제어 모듈(244) 그리고 예를 들면, 디바이스 구성 및 라우팅 데이터를 저장하기 위한 메모리(236)를 포함한다. 네트워크 디바이스(230)는 메모리(236)에 저장된 디바이스 구성 및 라우팅 데이터를 사용하여 네트워크 인터페이스들(238)에서의 데이터 트래픽을 관리하는 포워딩 엔진(234)을 포함한다. 네트워크 디바이스(230)는 도 1에 예시된 네트워크 디바이스들(122, 124, 126) 중 임의의 네트워크 디바이스로서 사용하기에 적합하다.
[0024] 도 2를 참조하면, 보다 상세하게는, SDN 제어기(220)는 제어 모듈(242) 및 메모리(226)를 포함한다. 제어 모듈(242)은 메모리(226)에 저장된 네트워크 구성 및 라우팅 데이터를 사용하여 네트워크 디바이스(230)를 구성한다. 일부 구현들에서, 제어 모듈(242)은 네트워크 디바이스(230)에 상태 또는 이용 가능성 메시지들을 주기적으로 전송한다. 일부 구현들에서, SDN 제어기(220)는 포워딩 표들을 생성하고, 포워딩 표들을 하나 또는 그보다 많은 네트워크 디바이스들(230)에 게시한다.
[0025] 네트워크 디바이스(230)는 제어 모듈(244) 및 메모리(236)를 포함한다. 네트워크 디바이스 제어 모듈(244)은 SDN 제어기 제어 모듈(242)로부터 (제어 링크(112)를 통해) 구성 및 라우팅 정보를 수신하고 메모리(236)에 저장된 데이터를 업데이트한다.
[0026] 네트워크 디바이스(230)는 한 세트의 네트워크 인터페이스들(238)을 포함한다. 각각의 네트워크 인터페이스(238)는 데이터 네트워크에 접속될 수 있다. 예를 들어, 네트워크 디바이스(230)는 제 1 네트워크 인터페이스(예를 들면, 네트워크 인터페이스(238a))를 통해 네트워크에 대한 데이터 패킷들을 수신할 수 있다. 네트워크 디바이스(230)는 수신된 데이터 패킷들을 다른 인터페이스(예를 들면, 네트워크 인터페이스(238b))를 통해 적절한 다음 홉으로 포워딩한다. 일부 구현들에서, 포워딩 엔진(234)은 어떤 네트워크 인터페이스(238)가 수신된 각각의 데이터 패킷에 대해 사용할지를 결정한다. 일부 구현들에서, 포워딩 엔진(234)은 메모리(236)에 저장된 포워딩 표를 사용하여 어떤 네트워크 인터페이스(238)를 사용할지를 결정한다.
[0027] 포워딩 엔진(234)은 메모리(236) 내의 구성 및 라우팅 데이터를 사용하여 네트워크 인터페이스 포트들(238)에서의 데이터 트래픽을 관리한다. 메모리(236) 내의 구성 및 라우팅 데이터는 제어 모듈(244)을 통해 SDN 제어기들(220)에 의해 제어된다. 일부 구현들에서, 포워딩 엔진(234)은 출구 네트워크 인터페이스 포트(238)에 패킷들을 포워딩하기 전에 패킷 헤더들을 업데이트한다. 예를 들어, 포워딩 엔진(234)은 패킷 헤더들에서 명시적 혼잡 통지(ECN: explicit congestion notification), 홉 카운트(TTL) 또는 체크섬 정보를 업데이트할 수 있다.
[0028] 메모리(226) 및 메모리(236)는 각각 컴퓨터 판독 가능 데이터를 저장하기에 적합한 임의의 디바이스일 수 있다. 예들은 EPROM, EEPROM, SRAM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들을 포함하지만 이에 한정된 것은 아니다. 일부 구현들에서, 메모리(236)는 3원 내용 주소화 메모리(TCAM: ternary content-addressable memory)이다. 일부 구현들에서, 네트워크 디바이스(230)의 메모리(236)는 패킷 플로우들이 네트워크 디바이스(230)를 가로지를 때 이들의 버퍼링에 전용되는 메모리를 포함한다. 네트워크 디바이스(230)는 임의의 수의 메모리 디바이스들(236)을 가질 수 있다. SDN 제어기(220)는 임의의 수의 메모리 디바이스들(226)을 가질 수 있다.
[0029] 도 3a, 도 3b 및 도 3c는 네트워크 디바이스에 의해 패킷에 대한 출구 포트를 식별하는데 사용될 수 있는 포워딩 표들의 예들이다.
[0030] 도 3a는 단순화된 포워딩 표(310)를 예시한다. 표(310)의 각각의 라우팅 항목은 매치 패턴(316) 및 포워딩 명령(318)을 표시한다. 매치 패턴(316), 예를 들면 "패턴 A"는 대응하는 포워딩 명령(318), 예를 들면 "경로 A를 따라 포워딩"을 사용하여 처리되어야 하는 패킷들로 충족된다. 어떤 경우들에, 매치 패턴(316)은 특정 네트워크 또는 자율 시스템 쪽으로 전달되는 모든 패킷들과 매치한다. 예를 들어, 매치 패턴(316)은 패킷의 목적지 어드레스의 일부와 매치할 수 있고, 대응하는 포워딩 명령(318)은 패턴(316)과 매치하는 모든 네트워크 어드레스들을 향하는 네트워크 경로를 따라 네트워크 디바이스로부터 다음 홉 네트워크 디바이스로의 출구 포트를 식별할 수 있다. 어떤 경우들에, 매치 패턴(316)은 단지 특정 플로우로부터의 패킷들에만 매치한다. 포워딩 표(310) 내의 각각의 라우팅 항목은 라우팅 항목을 고유하게 식별하는 인덱스(312)로 예시된다. 일부 구현들에서, 포워딩 표는 특정 인덱스(312)를 갖지 않는다.
[0031] 도 3b는 인덱스들(332), 매치 패턴들(336) 및 포워딩 명령들(338)을 갖는 다중 경로 라우팅 표(330)를 예시한다. 다중 경로 라우팅 표(330)는 동일한 패턴(336)인 "패턴 A"를 갖지만 "경로 A," "경로 B" 및 "경로 C"를 따라 각각 개별 포워딩 명령들(338): Forward를 갖는 라우팅 항목들의 다중 경로 세트(342)를 포함한다. 추가 다중 경로 세트(344) 및 비-다중 경로 라우팅 항목(348)이 또한 도시된다. 동일한 포워딩 표(330)가 다중 경로 라우팅 항목들과 단일 경로 라우팅 항목들 모두에 사용될 수 있다.
[0032] 등가 다중 경로(ECMP) 라우팅은 일반적으로 목적지까지의 경로들을 동등한 것으로 취급한다. 네트워크 스위치는 동일한 목적지에 도달하기 위한 다수의 동등한 경로들 중 임의의 경로를 통해 트래픽을 포워딩할 수 있다. ECMP의 일부 구현들에서, 동일한 목적지에 대한 포워딩 표(330)에 다수의 라우팅 항목들이 있다면, 네트워크 디바이스는 목적지까지의 트래픽을 다수의 경로들에 걸쳐 분배한다. 트래픽이 분배될 수 있는 여러 가지 방법들이 있다. 예를 들어, 네트워크 디바이스는 단순히 라우팅 항목들에 대해 반복될 수 있어, 각각의 패킷은 서로 다른 경로를 택한다. 일부 구현들에서, 네트워크 디바이스를 통과하는 각각의 새로운 플로우가 특정 경로에 할당된다. 이러한 접근 방식은 동일한 경로를 따라 단일 플로우의 서로 다른 패킷들을 송신하면서 서로 다른 플로우들을 서로 다른 경로 옵션들에 걸쳐 분배한다. 이러한 일부 구현들에서, 각각의 패킷에 대한 헤더 정보의 일부는 해시되고 해시 결과의 최하위 비트들은 패킷에 대한 라우팅 항목을 예를 들면, 인덱스(332)로 식별하는데 사용된다. 헤더 정보의 부분들은 동일한 플로우의 패킷들이 동일한 해시 값을 생성하게 되도록 선택된다. 예를 들어, 일부 구현들에서, 목적지 어드레스 및 프로토콜 타입을 나타내는 헤더 비트들이 해시된다. 도 3b에 예시된 다중 경로 포워딩 표(330)는 "패턴 B"의 매치 패턴(336)에 대해 2개의 경로들을 갖는 다중 경로 세트(344)를 포함한다. 세트(344)에서 경로들에 대해 플로우들을 분배하는 단순화된 예로서, 패턴 B에 의해 매치되는 플로우들에 대한 패킷 헤더들이 해시될 수 있다. 이 예에서, 해시 값이 짝수라면, 패턴 B에 대한 인덱스 "1344"를 갖는 라우팅 항목이 경로 D를 따라 패킷들을 송신하는데 사용되고, 해시 값이 홀수라면, 패턴 B에 대한 인덱스 "1345"를 갖는 라우팅 항목이 경로 E를 따라 패킷들을 송신하는데 사용된다.
[0033] 가중 비용 다중 경로(WCMP) 라우팅을 사용함으로써 다른 경로들보다 일부 라우팅 경로들을 선호하는 것이 또한 가능하다. WCMP를 구현하기 위한 한 가지 방법은 동일한 경로를 갖는 다중 경로 세트에 추가 라우팅 항목들을 입력하는 것이다. 예를 들어, 경로 D는 경로 E의 2배의 대역폭 용량을 가질 수도 있고, 따라서 2배 더 사용되어야 한다. 다중 경로 세트(344)는 경로 D(항목 인덱스 "1344")에 대한 매치 패턴(336) 및 포워딩 명령(338)을 반복하는 (도시되지 않은) 추가 항목으로 확장될 수 있다. 그 다음, 네트워크 트래픽은 3개의 라우팅 항목들에 걸쳐 분배되어, 경로 E에 비해 경로 D의 사용에 2배 많은 트래픽을 야기한다. 이 가중 비용 다중 경로 세트는 "{Dx 2, Ex 1}" 또는 단순히 "{2, 1}"로 표현될 수 있다. 그러나 포워딩 표에서 다중 경로 세트들의 확장된 표현은 포워딩 표에 할당된 메모리의 상당 부분을 소비할 수 있다.
[0034] 도 3c는 가중 라우팅 항목들을 갖는 다중 경로 라우팅 표(350)를 예시한다. 다중 경로 라우팅 표(350)는 인덱스들(352), 매치 패턴들(356) 및 포워딩 명령들(358)로 도시된다. 다중 경로 라우팅 표(350)는 동일한 패턴(356)인 "패턴 A"를 갖지만 서브세트(364)에 대한 "경로 A," 서브세트(366)에 대한 "경로 B" 및 서브세트(368)에 대한 "경로 C"를 따라 각각 3개의 가능한 포워딩 명령들(358): Forward를 갖는 라우팅 항목들의 다중 경로 세트(362)를 포함한다. 추가 다중 경로 세트(374) 및 비-다중 경로 라우팅 항목(376)이 또한 도시되는데, 이들은 도 3b에 도시된 세트들(344, 348)에 각각 대응한다. 여전히 도 3c를 참조하면, 동일한 포워딩 표(350)가 다중 경로 라우팅 항목들과 단일 경로 라우팅 항목들 모두에 사용될 수 있다.
[0035] 도 3b와 도 3c는 경로 가중의 사소한 변경들이 포워딩 표에 극적인 영향을 가질 수 있음을 증명한다. 도 3b의 다중 경로 세트(342)는 3개의 경로들 A, B 및 C(예를 들어, 도 1을 참조하면, 3개의 경로들(144, 146, 148))에 대응한다. 경로들 각각은 이들이 모두 같도록 가중치 1/3 =
Figure pct00001
을 갖는다. 도 3c의 다중 경로 세트(362)는 동일하지만 제 3 경로인 경로 C에 대해 약간 감소된 가중치를 갖는 3개의 경로들 A, B 및 C에 대응한다. 변경은 경로 C가 경로 A 또는 경로 B보다 1/3 더 적은 트래픽을 처리하게 할 것이다. 도 3c에 도시된 다중 경로 포워딩 표(350)에는, 경로 A에 대한 3개의 라우팅 항목들(364), 및 경로 B에 대한 3개의 라우팅 항목들(366)이 있지만, 경로 C에 대해서는 단 2개의 라우팅 항목들(368)만 있다. 즉, 경로 A 및 경로 B는 3/8 = 0.375의 가중치들을 갖는 한편, 경로 C는 2/8 = 0.250의 가중치를 갖는다. 그러나 다중 경로 세트(362)는 다중 경로 표(350)의 8개의 항목들 {3, 3, 2}를 사용하는 반면, 다중 경로 세트(342)는 다중 경로 표(330)의 3개의 항목들 {1, 1, 1}만을 사용한다.
[0036] 도 4는 프리픽스 인식 WCMP 그룹 감소 방법(400)에 대한 흐름도이다. 방법(400)은 루트 관리기가 포워딩 표에서 라우팅 항목들의 최소 개수를 각각 초과하는 하나 또는 그보다 많은 다중 경로 세트들, 예를 들면 3개 또는 그보다 많은 라우팅 항목들을 갖는 세트들을 식별(단계(410))하는 것으로 시작된다. 식별된 다중 경로 세트들 각각에 대해, 루트 관리기는 다중 경로 세트를 통해 송신된 네트워크 트래픽의 중요도에 대응하는 스코어를 획득한다(단계(420)). 다음에, 루트 관리기는 획득된 스코어들을 기초로, 각각의 식별된 다중 경로 세트에 대한 하나 또는 그보다 많은 잠재적 대체 세트들을 생성한다(단계(430)). 루트 관리기는 가능한 대체 세트들을 비교하고(단계(440)), 표 항목 감소 목표 및 네트워크 성능 기준을 충족하는 하나 또는 그보다 많은 잠재적 대체 세트들을 선택한다(단계(450)). 그 다음, 루트 관리기는 포워딩 표에서, 하나 또는 그보다 많은 다중 경로 세트들에 대한 라우팅 항목들을 대응하는 선택된 대체 세트들에 대한 라우팅 항목들로 대체한다(단계(460)). 도 2를 참조하면, 일부 구현들에서, 루트 관리기는 SDN 제어기(220)이며 또는 그 일부로서 포함된다.
[0037] 도 4를 참조하면, 보다 상세하게는, 방법(400)은 루트 관리기가 포워딩 표에서 라우팅 항목들의 최소 개수를 각각 초과하는 하나 또는 그보다 많은 다중 경로 세트들을 식별(단계(410))하는 것으로 시작된다. 예를 들어, 라우팅 항목들의 최소 개수가 5개라면, 6개 또는 그보다 많은 항목들의 세트들만이 감소 대상이 될 것이다. 라우팅 항목들의 최소 개수가 2개라면, 3개 또는 그보다 많은 항목들의 세트들만이 감소 대상이 될 것이다. 루트 관리기는 식별된 다중 경로 세트들에 의해 사용되는 표에서 항목들의 수를 감소시키는 것을 목표로 포워딩 표에서 다중 경로 세트들을 식별한다. 일부 구현들에서, 방법(400)은 주기적인 간격들로 수행된다. 일부 구현들에서, 방법(400)은 포워딩 표가 임계 개수보다 많은 항목들로 포화될 때 수행된다. 일부 구현들에서, 방법(400)은 관리자에 의해 시작된다.
[0038] 식별된 다중 경로 세트들 각각에 대해, 루트 관리기는 다중 경로 세트를 통해 송신된 네트워크 트래픽의 중요도에 대응하는 스코어를 획득한다(단계(420)). 일부 구현들에서, 이러한 스코어는 트래픽 감소 비용 메트릭의 일부이다. 일부 구현들에서, 루트 관리기는 송신되는 패킷들의 타입들을 기초로 스코어("중요도 스코어")를 유지한다. 일부 구현들에서, 특정 프로토콜들을 사용하는 플로우들은 다른 플로우들보다 더 중요한 것으로 간주된다. 예를 들어, 일부 구현들에서, 상태형(stateful) 전송 계층 프로토콜을 사용하는 네트워크 송신들은 전송 계층 프로토콜들을 사용하는 송신들보다 더 중요한 것으로 여겨진다. 상태형 전송 계층 프로토콜의 예들은 송신 제어 프로토콜(TCP: Transmission Control Protocol), 데이터그램 혼잡 제어 프로토콜(DCCP: Datagram Congestion Control Protocol) 및 스트림 제어 송신 프로토콜(SCTP: Stream Control Transmission Protocol)을 포함하지만 이에 한정된 것은 아니다. 무상태형(stateless) 전송 계층 프로토콜의 일례는 사용자 데이터그램 프로토콜(UDP: User Datagram Protocol)이다. 일부 구현들에서, 크기 제한을 초과하는 플로우는 다른 네트워크 송신들보다 더 중요한 것으로 간주된다. 일부 구현들에서, 네트워크 트래픽이 중요한지 여부를 식별하기 위해 소스 및/또는 목적지 네트워크 어드레스(또는 네트워크 어드레스 프리픽스)가 사용된다. 일부 구현들에서, 특정 네트워크 어드레스 또는 네트워크 어드레스 범위에 어드레싱된 네트워크 패킷들은 다른 네트워크 송신들보다 더 중요한(또는 덜 중요한) 것으로 간주된다. 일부 구현들에서, 중요도 스코어는 일정 기간의 시간 동안 송신되는 네트워크 트래픽의 중요도를 측정하는 실행 스코어이다. 일부 구현들에서, 다중 경로 세트를 통해 송신되는 데이터의 양은 중요도 스코어에 영향을 준다. 일부 구현들에서, 중요도 스코어는 중요함 또는 중요하지 않음을 표시하는 불 값이다. 일부 구현들에서, 중요도 스코어는 숫자 값이다.
[0039] 다음에, 루트 관리기는 획득된 스코어들을 기초로, 각각의 식별된 다중 경로 세트에 대한 하나 또는 그보다 많은 잠재적 대체 세트들을 생성한다(단계(430)). 일부 구현들에서, 다중 경로 세트가 비교적 낮은 중요도 스코어를 갖는다면, 또는 스코어가 다중 경로 세트가 중요하지 않음을 표시한다면, 루트 관리기는 도 5에 예시된 방법(500)을 사용하여 중요하지 않은 다중 경로 세트에 대한 다양한 라우팅 항목들의 최소 세트를 선택한다. 일부 구현들에서는, 가중 비용 다중 경로(WCMP) 세트의 경우, WCMP 세트를 등가 다중 경로(ECMP) 세트로 변환함으로써 잠재적 대체 세트가 생성된다. 예를 들어, {4, 4, 2, 1}의 WCMP 세트는 {1, 1, 1, 1}로 단조롭게 될 수 있다. 일부 구현들에서, WCMP 세트의 경우, 하나 또는 그보다 많은 더 낮은 가중 경로들이 세트로부터 제거된다. 예를 들어, {4, 4, 2, 1}의 WCMP 세트는 {4, 4, 2}로 변환될 수 있으며, 이는 {2, 2, 1}로 분해된다. 이는 반복되어, 예를 들면 {2, 2, 1}을 {1, 1}로 더 감소시킬 수 있다. 일부 구현들에서, WCMP 세트는 하나 또는 그보다 많은 경로들을 제거함으로써 그리고 나머지 경로들을 ECMP 세트로 단조롭게 함으로써 이 둘 모두에 의해 수정되며, 여기서 세트 내의 각각의 경로는 단지 한 번만 표현된다. 예를 들어, {4, 4, 2, 1}의 WCMP 세트는 {1, 1, 1}로 감소될 수 있다.
[0040] 루트 관리기는 가능한 대체 세트들을 비교하고(단계(440)), 표 항목 감소 목표 및 네트워크 성능 기준을 충족하는 하나 또는 그보다 많은 잠재적 대체 세트들을 선택한다(단계(450)). 각각의 잠재적 대체 세트는 대응하는 다중 경로 세트 대신 사용된다면, 사용되는 포워딩 표 항목들의 수를 감소시킬 것이다. 각각의 잠재적 대체 세트는 대응하는 다중 경로 세트 대신 사용된다면, 또한 감소된 네트워크 성능을 갖는 다중 경로 세트를 사용하여 네트워크 트래픽을 제공할 것이다. 예를 들어, 경로가 다중 경로 세트로부터 제거된다면, 트래픽은 제거된 경로가 원인이 되는 대역폭에 대한 액세스를 상실할 것이다. 이러한 상실은 다른 요소들에 의해 오프셋될 수 있다. 네트워크 성능의 잠재적 변경은 트래픽 감소 비용 메트릭으로서 측정된다.
[0041] 일부 구현들에서, 네트워크 성능의 잠재적 변경은 단계(420)에서 획득된 중요도 스코어로 가중된다. 즉, 낮은 중요도 또는 중간 중요도 트래픽이 네트워크 성능의 특별한 변화를 겪는 것이 더 허용될 수 있고, 높은 중요도 트래픽이 네트워크 성능의 동일한 특별한 변화를 겪는 것은 덜 허용될 수도 있다.
[0042] 단계(440)에서의 비교들은: 동일한 다중 경로 그룹에 대응하는 라우팅 항목들의 적어도 2개의 서로 다른 대체 세트들을 비교하는 것; 적어도 2개의 서로 다른 다중 경로 그룹들에 대응하는 라우팅 항목들의 대체 세트들을 비교하는 것; 그리고 다수의 다중 경로 그룹들에 각각 대응하는 라우팅 항목들의 다수의 대체 세트들의 적어도 2개의 집적들을 비교하는 것 중 하나 이상을 포함할 수 있다.
[0043] 일부 구현들에서, 루트 관리기는 확률들을 비교하여, 적어도 타깃 개수의 포워딩 표 라우팅 항목들이 네트워크 성능에 허용 가능하게 낮은 영향을 갖고 확보(free-up)되도록 잠재적 대체 세트들 중 하나 이상을 선택한다(단계(450)). 일부 구현들에서, 루트 관리기는 표 감소 목표에 도달하기 위해 다수의 다중 경로 세트들에 걸쳐 대체들의 결합을 사용한다. 일부 구현들에서, 루트 관리기는 잠재적 대체 세트들 중 하나 이상의 사용으로부터 발생할 수 있는 가능한 대역폭 손실을 계산하고, 단계(450)에서 잠재적 대체 세트들 중 어느 것을 선택할지의 결정시 이러한 계산들의 결과들을 사용한다. 일부 구현들에서, 루트 관리기는 선택된 하나 또는 그보다 많은 잠재적 대체 세트들에 기인할 수 있는 예상 대역폭 손실을 네트워크 모니터에 보고한다.
[0044] 예시적인 예로서, 도 1 및 도 3c를 참조하면, 중개 네트워크들(130)을 통한 예시된 경로들(144, 146, 148)은 다중 경로 세트이다. 이들은 다중 경로 포워딩 표(350)에 다중 경로 세트(362), 즉 {3, 3, 2}로서 표현된다. 경로 A(144)와 경로 B(146)는 제 1 에지 디바이스(124)를 사용하는 한편, 경로 C(148)는 제 2 에지 디바이스(126)를 사용한다. 2개의 에지 디바이스들(124, 126)은 서로 다른 중개 네트워크들(130)에 링크될 수도 있고 또는 경로 C(148)가 경로 A 또는 경로 B보다 더 낮은 용량으로 동작하게 하는 다른 구현 특징들을 가질 수도 있다. 다중 경로 세트 {3, 3, 2}는 다중 경로 포워딩 표(350)에서 8개의 항목들을 사용한다. 일부 구현들에서, 방법(400)은 제 3 경로, 즉 경로 C를 누락시킴으로써 {3, 3, 2}에 대한 잠재적 대체 세트로서 {1, 1}을 생성할 수 있다. 이러한 잠재적 대체 세트는 다중 경로 포워딩 표에서 단지 2개의 항목들만을 사용하여, 6개의 더 적은 표 항목들을 야기할 것이다. 그러나 경로 C를 제거하는 것은 경로 C가 원인이 되는 네트워크 용량의 손실을 야기한다. 특히, 경로 C는 8개의 라우팅 옵션들 중 2개(25%)의 원인이 되는데, 이는 다중 경로 세트로부터 경로 C를 제거함으로써 이용 가능하지 않게 될 것이다. 일부 구현들에서, 다중 경로 세트는 특정 다중 경로 세트를 통해 송신되는 트래픽과 연관된 중요도 메트릭에 대한 값과 연관된다. 예를 들어, 이러한 일부 구현들에서, 중요도 메트릭에 대한 값은 단계(420)로부터의 중요도 스코어이다. 일부 구현들에서, 각각의 잠재적 대체 세트에는 제거된 라우팅 옵션들의 비율과 곱해진 중요도 메트릭에 대한 값과 같은 영향 스코어가 할당된다. {3, 3, 2}를 {1, 1}로 감소시키는 예를 계속하여, 다중 경로 세트를 통해 송신된 트래픽이 X의 중요도 값을 갖는다고 가정하면, 영향 스코어는 X × 0.25가 될 것이다. 일부 구현들에서, 이러한 영향 스코어는 포워딩 표 내의 다중 경로 그룹들로의 일부(또는 모든) 다른 가능한 감소들에 대한 스코어들과 비교되며, 그 다음에 가장 낮은 영향 스코어를 갖는 그룹 대체(또는 그룹 대체들의 결합)가 선택된다.
[0045] 예시적인 시나리오로서, 4개의 패턴들(P1, P2, P3, P4) 중 하나와 매치하는 네트워크 플로우들을 각각 전달하는 그룹들(G1, G2, G3)로서 표현된 3개의 WCMP 세트들이 존재할 수 있다. 각각의 패턴에 대한 네트워크 트래픽은 대응하는 중요도 스코어: CP1 = 32, CP2 = 3, CP3 = 3, CP4 = 8과 연관된다. 패턴(P1)에 의해 매치되는 플로우들은 다중 경로 세트(G1) {2, 2, 2, 2, 1, 1}의 네트워크 루트들을 사용하고; 패턴들(P2 또는 P3)에 의해 매치되는 패턴들은 다중 경로 세트(G2) {3, 3, 2, 2}의 네트워크 루트들을 사용하며; 패턴(P4)에 의해 매치되는 플로우들은 다중 경로 세트(G4) {3, 3, 3, 1}의 네트워크 루트들을 사용한다. 이러한 예시적인 시나리오는 아래 표 1에 도시된다. 이러한 WCMP 세트들(G1, G2, G3)을 감소시키는 2개의 예들은 아래 표 2와 표 3에 도시된다. 표 2에서, 목표는 포워딩 표에서 적어도 5개의 항목들을 해제하는 것이다. 표 3에서, 목표는 포워딩 표에서 적어도 12개의 항목들을 해제하는 것이다.
표 1: 감소 예들에 대한 WCMP 세트들
Figure pct00002
[0046] 아래 도시된 표 2는 예를 들어 감소 옵션들 중 일부를 예시하며, 여기서 목표는 포워딩 표에서 적어도 5개의 항목들을 해제하는 것이다. 다중 경로 세트(G1) {2, 2, 2, 2, 1, 1}은 세트 {1, 1, 1, 1}로 대체될 수 있으며, 이는 2개의 가장 낮은 가중 경로들을 생략하고 나머지 경로들을 동일한 것으로 취급하는 세트를 나타낸다. 그 결과는 10개의 라우팅 옵션들 중 단 2개만을 손실하면서 포워딩 표로부터 6개의 항목들을 해제하는 것이다. 20% 용량 손실이 트래픽의 중요도로 가중되어(즉, 다중 경로 그룹에 대한 트래픽을 라우팅하는데 사용되는 패턴들에 의해 매치되는 네트워크 플로우들에 대한 중요도 스코어들의 합) 6.4의 가중된 감소 영향 스코어를 생성한다. 다중 경로 세트(G2) {3, 3, 2, 2}는 세트 {1, 1, 1, 1}로 대체될 수 있는데, 이는 모든 경로들을 유지하고 이들을 동일한 것으로 취급하는 세트를 나타낸다. 그 결과는 라우팅 옵션들 중 단지 20%만을 손실하면서 포워딩 표로부터 6개의 항목들을 해제하는 것이다. 20% 용량 손실이 트래픽 매치 패턴(P2) 및 트래픽 매치 패턴(P3)의 중요도로 가중되어 1.2의 가중된 감소 영향 스코어를 생성한다. 다중 경로 세트(G3) {3, 3, 3, 1}은 세트 {1, 1, 1}로 대체될 수 있으며, 이는 가장 낮은 가중 경로들을 생략하고 나머지 경로들을 동일한 것으로 취급하는 세트를 나타낸다. 그 결과는 라우팅 옵션들 중 단지 10%만을 손실하면서 포워딩 표로부터 7개의 항목들을 해제하는 것이다. 가중된 감소 영향 스코어는 0.8이며, 이는 3개의 옵션들 중 가장 낮은 영향 스코어이다. 따라서 3개의 옵션들 중에서, 제 3 옵션이 선택될 것이다.
표 2: WCMP 감소 예 1
Figure pct00003
[0047] 아래 도시된 표 3은 예를 들어 감소 옵션들 중 일부를 예시하며, 여기서 목표는 포워딩 표에서 적어도 12개의 항목들을 해제하는 것이다. 다중 경로 세트(G1) {2, 2, 2, 2, 1, 1}은 예 1에서와 같이 세트 {1, 1, 1, 1}로, 또는 심지어 더 작은 다중 경로 세트들 {1, 1, 1}, {1, 1} 또는 {1}로 대체될 수 있는데, 이들은 각각 추가 경로들을 생략한 세트를 나타낸다. 그러나 단독으로 택해진 이러한 옵션들 중 어느 것도 포워딩 표에서 12개의 항목들을 해제하지 않는다. 이는 다중 경로 세트(G2) {3, 3, 2, 2}에 대한 그리고 다중 경로 세트(G3) {3, 3, 3, 1}에 대한 대체 옵션들에 대해 참을 유지한다. 그러나 가장 낮은 영향 스코어들을 갖는 2개의 옵션들의 결합은 포워딩 표에서 13개의 항목들을 해제하며, 이는 목표를 달성한다. 일부 구현들에서, 포워딩 표에 사용된 항목들의 수를 타깃 개수만큼 감소시키기 위한 어떠한 단일 옵션도 존재하지 않는다면, 루트 관리기는 원래 타깃의 총합을 갖는 2개 또는 그보다 많은 부분 타깃들로 타깃 개수를 나눌 것이다. 예를 들어, 포워딩 표로부터 12개의 항목들을 제거하는 목표는 6개의 항목들을 제거하기 위한 시도를 한 다음, 다른 6개의 항목들을 제거하기 위한 시도를 함으로써 달성될 수 있다. 즉, (12)인 타깃은 (6, 6)의 타깃들로 분할될 것이다. 일부 구현들에서, 다수의 가능한 분할들, 예를 들면 (6, 6), (7, 5), (8, 4), (4, 4, 4), (5, 4, 3) 등이 시도된다. 표 3에 도시된 예에서, 6개의 항목들을 해제할 대체 세트에 대한 탐색은 {1, 1, 1}을 선택하여 G3을 대체하는 것을 야기할 것이고, 추가 6개의 항목들을 해제할 대체 세트에 대한 다른 탐색은 {1, 1, 1, 1}을 선택하여 G2를 대체하는 것을 야기할 것이다. 대체 세트들의 이러한 결합은 포워딩 표로부터의 13개의 항목들의 감소를 야기하여, 12개의 항목들을 해제하는 원래의 목표를 충족한다.
표 3: WCMP 감소 예 2
Figure pct00004
[0048] 일부 구현들에서, 가능한 모든 대체 세트들, 또는 한 세트의 제약 파라미터들 내의 가능한 모든 대체 세트들에 걸쳐 철저한 비교가 수행된다. 일부 구현들에서, 철저한 비교는 후보 대체 세트들로서 생성된 가능한 대체 세트들의 서브세트로 한정된다. 예를 들어, 일부 구현들에서, 다중 경로 대체 세트들에 대한 옵션들은 임계치 미만의 중요도 스코어를 갖는 트래픽을 전달하는데 사용되는 WCMP 세트들에 대해서만 생성된다. 이러한 일부 구현들에서, 임계치는 실행 가능한 옵션이 식별될 때까지 점진적으로 증가된다. 일부 구현들에서, 철저한 비교는 대체 세트들의 잠재적 결합들의 비교를 포함한다. 예를 들어, 표 3에 의해 예시된 예에서는 대체 세트들의 결합이 사용되었다.
[0049] 도 4를 참조하면, 루트 관리기는 다음에 포워딩 표에서, 하나 또는 그보다 많은 다중 경로 세트들에 대한 라우팅 항목들을 대응하는 선택된 대체 세트들에 대한 라우팅 항목들로 대체한다(단계(460)). 일부 구현들에서, 루트 관리기는 선택된 대체 다중 경로 세트들을 갖는 새로운 포워딩 표를 생성하며, 대응하는 대체된 세트들을 생략한다.
[0050] 도 5는 중요 네트워크 트래픽을 송신하는데 사용되지 않는 다중 경로 세트들에 대한 WCMP 그룹 감소 방법(500)에 대한 흐름도이다. 방법(400)과 비슷하게, 방법(500)은 루트 관리기가 포워딩 표에서 최소 개수보다 많은 라우팅 항목들을 갖는 다중 경로 세트를 식별(단계(510))하는 것으로 시작된다. 루트 관리기는 식별된 다중 경로 세트가 중요 네트워크 트래픽을 전달하는데 사용되지 않는다고 결정하고(단계(520)), 다중 경로 세트에 대한 다양한 라우팅 항목들의 최소 세트를 선택한다(단계(530)). 그 다음, 루트 관리기는 포워딩 표로부터 다중 경로 세트에 대한, 선택된 항목들이 아닌 다른 모든 라우팅 항목들을 제거한다(단계(540)).
[0051] 도 5를 보다 상세히 참조하면, 방법(500)은 루트 관리기가 포워딩 표에서 최소 개수보다 많은 라우팅 항목들을 갖는 다중 경로 세트를 식별(단계(510))하고, 식별된 다중 경로 세트가 중요 네트워크 트래픽을 전달하는데 사용되지 않는다고 결정(단계(520))하는 것으로 시작된다. 이는 도 4에 도시된 단계들(410, 420)의 특별한 경우인데, 여기서 포워딩 표에 최소 개수(예를 들면, 2개)보다 더 많은 라우팅 항목들을 갖는 다중 경로 세트는 어떠한 트래픽도 전달하지 않거나 단지 낮은 중요도 트래픽만을 전달하는 것으로 식별된다.
[0052] 여전히 도 5를 상세히 참조하면, 루트 관리기가 다중 경로 세트에 대한 다양한 라우팅 항목들의 최소 세트를 선택한다(단계(530)). 일부 구현들에서, 최소 세트는 2개의 루트들이다. 일부 구현들에서는, 더 큰 최소 세트가 사용된다. 루트 관리기는 결과적인 대체 다중 경로 세트가 경로 다양성을 갖도록 동일하지 않은 경로들에 대응하는 라우팅 항목들을 선택한다. 일부 구현들에서, 루트 관리기는 최소 세트에 포함할 가장 높게 가중된 동일하지 않은 경로들을 선택한다. 일부 구현들에서, 루트 관리기는 다양한 라우팅 항목들의 제거 또는 대체로부터 발생할 잠재적 대역폭 손실을 계산하고, 허용할 수 있는 수준의 대역폭 감소와 연관된 라우팅 항목들을 선택한다. 이러한 일부 구현들에서, 선택은 대역폭의 손실을 최소화한다. 일부 구현들에서, 루트 관리기는 선택된 하나 또는 그보다 많은 잠재적 대체 세트들에 기인할 수 있는 예상 대역폭 손실을 네트워크 모니터에 보고한다. 일부 구현들에서, 루트 관리기는 동일하지 않은 경로들을 임의로 또는 다른 선택 기준에 따라 선택한다. 일부 구현들에서, 단계(530)에서의 선택은 도 4에 도시된 방법에 대해 단계(450)와 관련하여 설명한 선택과 비슷하다.
[0053] 여전히 도 5를 참조하면, 루트 관리기는 그 다음에 포워딩 표를 업데이트하여 다중 경로 루트 세트를 다양한 루트들의 선택된 최소 세트로 대체한다(단계(540)). 루트 관리기는 포워딩 표로부터 다중 경로 세트에 대한, 선택된 항목들이 아닌 다른 모든 라우팅 항목들을 제거한다.
[0054] 도 6은 본 명세서에서 설명한 컴퓨터화된 컴포넌트들의 구현에 사용하기에 적합한 컴퓨팅 시스템(910)의 블록도이다. 넓은 개요에서, 컴퓨팅 시스템(910)은 명령들에 따라 동작들을 수행하기 위한 적어도 하나의 프로세서(950), 그리고 명령들 및 데이터를 저장하기 위한 하나 또는 그보다 많은 메모리 디바이스들(970 및/또는 975)을 포함한다. 예시된 예시적인 컴퓨팅 시스템(910)은 버스(915)를 통해, 메모리(970)와 그리고 예를 들면, (도 1에 도시된 네트워크들(110, 130, 150)과 같은) 네트워크에 관여하는 외부 네트워크 디바이스들(924)에 접속하기 위한 네트워크 인터페이스(922)를 갖는 적어도 하나의 네트워크 인터페이스 제어기(920)와 통신하는 하나 또는 그보다 많은 프로세서들(950)을 포함한다. 하나 또는 그보다 많은 프로세서들(950)은 또한 버스(915)를 통해, 하나 또는 그보다 많은 I/O 인터페이스들(930)의 임의의 I/O 디바이스들, 및 임의의 다른 디바이스들(980)과 통신한다. 예시된 프로세서(950)는 캐시 메모리(975)를 포함하거나 이에 직접 접속된다. 일반적으로, 프로세서는 메모리로부터 수신된 명령들을 실행할 것이다.
[0055] 보다 상세하게, 프로세서(950)는 명령들, 예를 들면 메모리(970) 또는 캐시(975)로부터 패치된 명령들을 처리하는 임의의 로직 회로일 수도 있다. 많은 실시예들에서, 프로세서(950)는 마이크로프로세서 유닛 또는 특수 목적 프로세서이다. 컴퓨팅 디바이스(910)는 본 명세서에서 설명한 바와 같이 동작할 수 있는 임의의 프로세서 또는 세트의 프로세서들을 기반으로 할 수 있다. 프로세서(950)는 단일 코어 또는 다중 코어 프로세서일 수도 있다. 프로세서(950)는 다수의 프로세서들일 수도 있다.
[0056] 메모리(970)는 컴퓨터 판독 가능 데이터를 저장하기에 적합한 임의의 디바이스일 수 있다. 메모리(970)는 고정된 저장소를 갖는 디바이스 또는 착탈식 저장 매체들을 읽기 위한 디바이스일 수 있다. 예들은 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스들, 반도체 메모리 디바이스들(예를 들면, EPROM, EEPROM, SDRAM 및 플래시 메모리 디바이스들), 자기 디스크들, 광자기 디스크들 및 광 디스크들(예를 들면, CD ROM, DVD-ROM 및 Blu-Ray® 디스크들)을 포함한다. 컴퓨팅 시스템(910)은 임의의 수의 메모리 디바이스들(970)을 가질 수 있다.
[0057] 캐시 메모리(975)는 일반적으로 빠른 판독 시간들을 위해 프로세서(950) 가까이에 배치된 컴퓨터 메모리 형태이다. 일부 구현들에서, 캐시 메모리(975)는 프로세서(950)의 일부이거나 프로세서(950)로서 동일한 칩 상에 있다. 일부 구현들에서, 다수 레벨들의 캐시(975), 예를 들면 L2 및 L3 캐시 계층들이 있다.
[0058] 네트워크 인터페이스 제어기(920)는 네트워크 인터페이스(922)를 통한 데이터 교환들을 관리한다. 네트워크 인터페이스 제어기(920)는 네트워크 통신을 위해 OSI 모델의 물리 및 데이터 링크 계층들을 처리한다. 일부 구현들에서, 네트워크 인터페이스 제어기의 작업들 중 일부는 프로세서(950)에 의해 처리된다. 일부 구현들에서, 네트워크 인터페이스 제어기(920)는 프로세서(950)의 일부이다. 일부 구현들에서, 컴퓨팅 시스템(910)은 다수의 네트워크 인터페이스 제어기들(920)을 갖는다. 일부 구현들에서, 네트워크 인터페이스(922)는 물리적 네트워크 링크에 대한 접속점, 예를 들면 RJ 45 커넥터이다. 일부 구현들에서, 네트워크 인터페이스 제어기(920)는 무선 네트워크 접속들을 지원하고, 인터페이스 포트(922)는 무선 수신기/송신기이다. 일반적으로, 컴퓨팅 디바이스(910)는 네트워크 인터페이스(922)에 대한 물리적 또는 무선 링크들을 통해 다른 컴퓨팅 디바이스들(924)과 데이터를 교환한다. 일부 구현들에서, 네트워크 인터페이스 제어기(920)는 이더넷과 같은 네트워크 프로토콜을 구현한다.
[0059] 다른 컴퓨팅 디바이스들(924)은 네트워크 인터페이스 포트(922)를 통해 컴퓨팅 디바이스(910)에 접속된다. 다른 컴퓨팅 디바이스(924)는 피어 컴퓨팅 디바이스, 네트워크 디바이스, 또는 네트워크 기능을 갖는 임의의 다른 컴퓨팅 디바이스일 수도 있다. 예를 들어, 컴퓨팅 디바이스(924)는 컴퓨팅 디바이스(910)를 인터넷과 같은 데이터 네트워크에 접속하는 네트워크 디바이스, 예컨대 허브, 브리지, 스위치 또는 라우터일 수도 있다.
[0060] 일부 사용들에서, I/O 인터페이스(930)는 (도시되지 않은) 입력 디바이스 및/또는 출력 디바이스를 지원한다. 일부 사용들에서, 입력 디바이스 및 출력 디바이스는 예를 들면, 터치 스크린에서와 같이 동일한 하드웨어에 집적된다. 서버 컨텍스트에서와 같은 일부 사용들에서는, 어떠한 I/O 인터페이스(930)도 없거나 I/O 인터페이스(930)가 사용되지 않는다. 일부 사용들에서, 추가적인 다른 컴포넌트들(980)은 컴퓨터 시스템(910), 예를 들면 범용 직렬 버스(USB: universal serial bus)를 통해 접속된 외부 디바이스들과 통신한다.
[0061] 다른 디바이스들(980)은 I/O 인터페이스(930), 외부 직렬 디바이스 포트들, 및 임의의 추가 보조 프로세서(co-processor)들을 포함할 수 있다. 예를 들어, 컴퓨팅 시스템(910)은 입력 디바이스들(예를 들면, 키보드, 마이크로폰, 마우스 또는 다른 포인팅 디바이스), 출력 디바이스들(예를 들면, 비디오 디스플레이, 스피커, 재생 가능 점자 단말(refreshable Braille terminal) 또는 프린터) 또는 추가 메모리 디바이스들(예를 들면, 휴대용 플래시 드라이브 또는 외부 매체 드라이브)을 접속하기 위한 인터페이스(예를 들면, 범용 직렬 버스(USB) 인터페이스)를 포함할 수 있다. 일부 구현들에서, I/O 디바이스는 컴퓨팅 시스템(910), 예를 들면 태블릿 디바이스 상의 터치 스크린에 통합된다. 일부 구현들에서, 컴퓨팅 디바이스(910)는 보조 프로세서, 예를 들면, 높은 정확도 또는 복잡한 계산들에 프로세서(950)를 보조할 수 있는 수치 연산 보조 프로세서와 같은 추가 디바이스(980)를 포함한다.
[0062] 본 명세서에서 설명한 동작들 및 요지의 구현들은 디지털 전자 회로에, 또는 유형 매체 상에 구현된 컴퓨터 소프트웨어, 펌웨어, 또는 본 명세서에 개시된 구조들 및 이들의 구조적 등가물들을 포함하는 하드웨어, 또는 이들 중 하나 이상에 대한 결합들에 구현될 수 있다. 본 명세서에서 설명한 요지의 구현들은 유형 매체 상에 구현된 하나 또는 그보다 많은 컴퓨터 프로그램들, 즉 데이터 처리 장치에 의한 실행을 위해 또는 그 동작을 제어하기 위해 하나 또는 그보다 많은 컴퓨터 저장 매체들 상에 인코딩되는 컴퓨터 프로그램 명령들의 하나 또는 그보다 많은 모듈들로서 구현될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상에 대한 결합이거나, 이들에 포함될 수 있다. 컴퓨터 저장 매체는 또한 하나 또는 그보다 많은 개별 컴포넌트들 또는 매체들(예를 들면, 다수의 CD들, 디스크들 또는 다른 저장 디바이스들)일 수 있거나 이에 포함될 수 있다. 컴퓨터 저장 매체는 유형이며 비-일시적일 수도 있다.
[0063] 본 명세서에서 설명한 동작들은 하나 또는 그보다 많은 컴퓨터 판독 가능 저장 디바이스들 상에 저장되거나 다른 소스들로부터 수신되는 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작들로서 구현될 수 있다. 프로세스들 및 로직 플로우들은 또한 특수 목적 로직 회로, 예를 들면 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있으며, 장치가 또한 이로서 구현될 수 있다.
[0064] 본 명세서는 많은 특정 구현 세부사항들을 포함하지만, 이들은 청구될 수 있는 것의 또는 임의의 발명들의 범위에 대한 한정들로서가 아니라, 그보다는 특정 발명들의 특정 구현들에 특정한 특징들의 설명으로서 해석되어야 한다. 개별 구현들과 관련하여 본 명세서에 설명되는 특정 특징들은 또한 단일 구현으로 결합하여 구현될 수 있다. 반대로, 단일 구현과 관련하여 설명되는 다양한 특징들은 또한 다수의 구현들로 개별적으로 또는 임의의 적절한 하위 결합으로 구현될 수 있다. 아울러, 특징들이 특정한 결합들로 작용하는 것으로 앞서 설명되고 심지어 초기에 이와 같이 청구될 수 있다 하더라도, 어떤 경우들에는 청구된 결합으로부터의 하나 또는 그보다 많은 특징들이 그 결합으로부터 삭제될 수 있고, 청구된 결합은 하위 결합 또는 하위 결합의 변형에 관련될 수 있다.
[0065] "또는"에 대한 언급들은 "또는"을 사용하여 설명되는 임의의 용어들이 단일, 1개 초과, 그리고 설명된 용어들 전부 중 임의의 것을 나타낼 수 있도록 포괄적으로 해석될 수 있다. "제 1," "제 2," "제 3" 등의 라벨들은 반드시 순서를 표시하는 것으로 여겨지는 것은 아니며, 일반적으로는 단지 동일한 또는 비슷한 항목들이나 엘리먼트들을 구별하는데 사용된다.
[0066] 이와 같이, 요지의 특정 구현들이 설명되었다. 다른 구현들이 다음의 청구항들의 범위 내에 있다. 어떤 경우들에, 청구항들에서 언급되는 동작들은 다른 순서로 수행되며 여전히 바람직한 결과들을 달성할 수 있다. 추가로, 첨부 도면들에 도시된 프로세스들은 바람직한 결과들을 달성하기 위해 반드시 도시된 특정 순서 또는 순차적인 순서를 필요로 하는 것은 아니다. 특정 구현들에서는, 다중 작업 또는 병렬 처리가 이용될 수도 있다.

Claims (20)

  1. 패킷 스위치에 대한 포워딩 표를 생성하는 방법으로서,
    패킷 스위치의 포워딩 표에서, 상기 포워딩 표 내의 라우팅 항목들의 각각의 초기 세트에 각각 대응하는 복수의 다중 경로 그룹들을 식별하는 단계;
    상기 복수의 다중 경로 그룹들 내의 하나 또는 그보다 많은 다중 경로 그룹들에 대해, 각각의 다중 경로 그룹에 대응하는 라우팅 항목들의 초기 세트보다 더 적은 라우팅 항목들을 갖는, 라우팅 항목들의 적어도 하나의 대체 세트를 생성하는 단계;
    트래픽 감소 비용 메트릭을 기초로, 라우팅 항목들의 대체 세트들 중 하나 또는 그보다 많은 대체 세트를 선택하는 단계 ― 각각의 선택된 대체 세트는 상기 복수의 다중 경로 그룹들 내의 서로 다른 각각의 다중 경로 그룹에 대응함 ―; 및
    상기 패킷 스위치의 포워딩 표에서, 라우팅 항목들의 선택된 대체 세트에 대응하는 각각의 다중 경로 그룹에 대한 라우팅 항목들의 초기 세트를 라우팅 항목들의 각각의 대응하는 선택된 대체 세트로 대체하는 단계를 포함하는,
    패킷 스위치에 대한 포워딩 표를 생성하는 방법.
  2. 제 1 항에 있어서,
    상기 트래픽 감소 비용 메트릭은 제 1 트래픽 특징을 포함하고,
    상기 트래픽 감소 비용 메트릭을 기초로, 상기 제 1 트래픽 특징을 갖는 다중 경로 그룹에 대응하는 라우팅 항목들의 대체 세트를 선택하는 것은, 최대 개수 미만의 라우팅 항목들을 갖는, 라우팅 항목들의 대체 세트를 선택하는 것을 포함하며,
    상기 대체 세트 내의 각각의 라우팅 항목은 서로 다른 네트워크 경로에 대응하는,
    패킷 스위치에 대한 포워딩 표를 생성하는 방법.
  3. 제 2 항에 있어서,
    상기 최대 개수 미만의 라우팅 항목들을 갖는 상기 라우팅 항목들의 대체 세트는 정확히 2개의 라우팅 항목들을 갖는,
    패킷 스위치에 대한 포워딩 표를 생성하는 방법.
  4. 제 2 항에 있어서,
    제 1 네트워크 트래픽 특징을 갖는 다중 경로 그룹은: 상태형(stateful) 전송 계층 프로토콜을 사용하는 네트워크 패킷들, 크기 제한을 초과하는 플로우에 대한 네트워크 패킷들, 및 특정 네트워크 어드레스 범위에 어드레싱된 네트워크 패킷들 중 하나 이상인 네트워크 패킷들을 상기 다중 경로 그룹에 송신하지 않는,
    패킷 스위치에 대한 포워딩 표를 생성하는 방법.
  5. 제 1 항에 있어서,
    제 1 다중 경로 그룹에 대응하는 라우팅 항목들의 제 1 생성된 대체 세트에 대한 제 1 트래픽 감소 비용 메트릭 값을 상기 제 1 다중 경로 그룹에 대응하는 라우팅 항목들의 제 2 생성된 대체 세트에 대한 제 2 트래픽 감소 비용 메트릭 값과 비교하는 단계; 및
    상기 비교를 기초로 상기 라우팅 항목들의 제 1 생성된 대체 세트를 선택하는 단계를 더 포함하는,
    패킷 스위치에 대한 포워딩 표를 생성하는 방법.
  6. 제 1 항에 있어서,
    제 1 다중 경로 그룹에 대응하는 라우팅 항목들의 제 1 생성된 대체 세트에 대한 제 1 트래픽 감소 비용 메트릭 값을 제 2 다중 경로 그룹에 대응하는 라우팅 항목들의 제 2 생성된 대체 세트에 대한 제 2 트래픽 감소 비용 메트릭 값과 비교하는 단계; 및
    상기 비교를 기초로 상기 라우팅 항목들의 제 1 생성된 대체 세트를 선택하는 단계를 더 포함하는,
    패킷 스위치에 대한 포워딩 표를 생성하는 방법.
  7. 제 1 항에 있어서,
    제 1 복수의 다중 경로 그룹들에 각각 대응하는, 라우팅 항목들의 제 1 복수의 생성된 대체 세트들에 대한 제 1 트래픽 감소 비용 메트릭 값을 제 2 복수의 다중 경로 그룹들에 각각 대응하는, 라우팅 항목들의 제 2 복수의 생성된 대체 세트들에 대한 제 2 트래픽 감소 비용 메트릭 값과 비교하는 단계; 및
    상기 비교를 기초로 상기 라우팅 항목들의 제 1 복수의 생성된 대체 세트들을 선택하는 단계를 더 포함하는,
    패킷 스위치에 대한 포워딩 표를 생성하는 방법.
  8. 제 1 항에 있어서,
    상기 라우팅 항목들의 초기 세트를 상기 라우팅 항목들의 대체 세트로 대체하는 단계는 상기 포워딩 표에서 라우팅 항목들의 수를 적어도 미리 결정된 양만큼 감소시키는,
    패킷 스위치에 대한 포워딩 표를 생성하는 방법.
  9. 제 1 항에 있어서,
    상기 트래픽 감소 비용 메트릭은 상기 다중 경로 그룹을 가로지르는 트래픽에 대응하는 스코어로 가중된 네트워크 대역폭 메트릭을 포함하는,
    패킷 스위치에 대한 포워딩 표를 생성하는 방법.
  10. 제 1 항에 있어서,
    상기 패킷 스위치는 소프트웨어 정의 네트워크(SDN: software-defined network)의 일부이고,
    상기 패킷 스위치의 포워딩 표에서, 상기 라우팅 항목들의 초기 세트를 상기 라우팅 항목들의 대체 세트로 대체하는 단계는 SDN 제어기로부터의 명령들을 상기 패킷 스위치에 송신하는 단계를 포함하는,
    패킷 스위치에 대한 포워딩 표를 생성하는 방법.
  11. 시스템으로서,
    포워딩 표를 갖는 패킷 스위치; 및
    상기 패킷 스위치에 대한 루트 관리기를 포함하며,
    상기 루트 관리기는,
    상기 포워딩 표에서, 상기 포워딩 표 내의 라우팅 항목들의 각각의 초기 세트에 각각 대응하는 복수의 다중 경로 그룹들을 식별하고;
    상기 복수의 다중 경로 그룹들 내의 하나 또는 그보다 많은 다중 경로 그룹들에 대해, 각각의 다중 경로 그룹에 대응하는 라우팅 항목들의 초기 세트보다 더 적은 라우팅 항목들을 갖는, 라우팅 항목들의 적어도 하나의 대체 세트를 생성하고;
    트래픽 감소 비용 메트릭을 기초로, 라우팅 항목들의 대체 세트들 중 하나 또는 그보다 많은 대체 세트를 선택하고 ― 각각의 선택된 대체 세트는 상기 복수의 다중 경로 그룹들 내의 서로 다른 각각의 다중 경로 그룹에 대응함 ―; 그리고
    상기 포워딩 표에서, 라우팅 항목들의 선택된 대체 세트에 대응하는 각각의 다중 경로 그룹에 대한 라우팅 항목들의 초기 세트를 라우팅 항목들의 각각의 대응하는 선택된 대체 세트로 대체하도록 구성되는,
    시스템.
  12. 제 11 항에 있어서,
    상기 트래픽 감소 비용 메트릭은 제 1 트래픽 특징을 포함하고,
    상기 루트 관리기는, 최대 개수 미만의 라우팅 항목들을 갖는, 라우팅 항목들의 대체 세트를 선택함으로써 상기 트래픽 감소 비용 메트릭을 기초로, 상기 제 1 트래픽 특징을 갖는 다중 경로 그룹에 대응하는 라우팅 항목들의 대체 세트를 선택하도록 구성되며,
    상기 대체 세트 내의 각각의 라우팅 항목은 서로 다른 네트워크 경로에 대응하는,
    시스템.
  13. 제 12 항에 있어서,
    상기 최대 개수 미만의 라우팅 항목들을 갖는 상기 라우팅 항목들의 대체 세트는 정확히 2개의 라우팅 항목들을 갖는,
    시스템.
  14. 제 12 항에 있어서,
    제 1 네트워크 트래픽 특징을 갖는 다중 경로 그룹은: 상태형 전송 계층 프로토콜을 사용하는 네트워크 패킷들, 크기 제한을 초과하는 플로우에 대한 네트워크 패킷들, 및 특정 네트워크 어드레스 범위에 어드레싱된 네트워크 패킷들 중 하나 이상인 네트워크 패킷들을 상기 다중 경로 그룹에 송신하지 않는,
    시스템.
  15. 제 11 항에 있어서,
    상기 루트 관리기는,
    제 1 다중 경로 그룹에 대응하는 라우팅 항목들의 제 1 생성된 대체 세트에 대한 제 1 트래픽 감소 비용 메트릭 값을 상기 제 1 다중 경로 그룹에 대응하는 라우팅 항목들의 제 2 생성된 대체 세트에 대한 제 2 트래픽 감소 비용 메트릭 값과 비교하고; 그리고
    상기 비교를 기초로 상기 라우팅 항목들의 제 1 생성된 대체 세트를 선택하도록 추가로 구성되는,
    시스템.
  16. 제 11 항에 있어서,
    상기 루트 관리기는,
    제 1 다중 경로 그룹에 대응하는 라우팅 항목들의 제 1 생성된 대체 세트에 대한 제 1 트래픽 감소 비용 메트릭 값을 제 2 다중 경로 그룹에 대응하는 라우팅 항목들의 제 2 생성된 대체 세트에 대한 제 2 트래픽 감소 비용 메트릭 값과 비교하고; 그리고
    상기 비교를 기초로 상기 라우팅 항목들의 제 1 생성된 대체 세트를 선택하도록 추가로 구성되는,
    시스템.
  17. 제 11 항에 있어서,
    상기 루트 관리기는,
    제 1 복수의 다중 경로 그룹들에 각각 대응하는, 라우팅 항목들의 제 1 복수의 생성된 대체 세트들에 대한 제 1 트래픽 감소 비용 메트릭 값을 제 2 복수의 다중 경로 그룹들에 각각 대응하는, 라우팅 항목들의 제 2 복수의 생성된 대체 세트들에 대한 제 2 트래픽 감소 비용 메트릭 값과 비교하고; 그리고
    상기 비교를 기초로 상기 라우팅 항목들의 제 1 복수의 생성된 대체 세트들을 선택하도록 추가로 구성되는,
    시스템.
  18. 제 11 항에 있어서,
    상기 루트 관리기는 상기 라우팅 항목들의 초기 세트를 상기 라우팅 항목들의 대체 세트로 대체하여 상기 포워딩 표에서 라우팅 항목들의 수를 적어도 미리 결정된 양만큼 감소시키도록 구성되는,
    시스템.
  19. 제 11 항에 있어서,
    상기 트래픽 감소 비용 메트릭은 상기 다중 경로 그룹을 가로지르는 트래픽에 대응하는 스코어로 가중된 네트워크 대역폭 메트릭을 포함하는,
    시스템.
  20. 제 11 항에 있어서,
    상기 패킷 스위치는 소프트웨어 정의 네트워크(SDN)의 일부이고,
    상기 루트 관리기는 SDN 제어기의 일부이며,
    상기 SDN 제어기는 상기 패킷 스위치에 명령들을 송신함으로써 상기 패킷 스위치의 포워딩 표에서, 상기 라우팅 항목들의 초기 세트를 상기 라우팅 항목들의 대체 세트로 대체하도록 구성되는,
    시스템.
KR1020167031526A 2014-05-12 2015-04-03 프리픽스 인식 가중 비용 다중 경로 그룹 감소 KR101922536B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461991969P 2014-05-12 2014-05-12
US61/991,969 2014-05-12
US14/643,712 US9736067B2 (en) 2014-05-12 2015-03-10 Prefix-aware weighted cost multi-path group reduction
US14/643,712 2015-03-10
PCT/US2015/024217 WO2015175110A1 (en) 2014-05-12 2015-04-03 Prefix-aware weighted cost multi-path group reduction

Publications (2)

Publication Number Publication Date
KR20160142884A true KR20160142884A (ko) 2016-12-13
KR101922536B1 KR101922536B1 (ko) 2018-11-27

Family

ID=54368811

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167031526A KR101922536B1 (ko) 2014-05-12 2015-04-03 프리픽스 인식 가중 비용 다중 경로 그룹 감소

Country Status (9)

Country Link
US (1) US9736067B2 (ko)
EP (1) EP3143734B1 (ko)
JP (1) JP6383805B2 (ko)
KR (1) KR101922536B1 (ko)
CN (1) CN106664250B (ko)
DE (1) DE202015009259U1 (ko)
DK (1) DK3143734T3 (ko)
SG (1) SG11201609475QA (ko)
WO (1) WO2015175110A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200044592A (ko) * 2018-10-19 2020-04-29 주식회사 케이티 다중 경로 전송 시스템, 그리고 이의 다중 경로 전송 방법

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9565114B1 (en) 2014-03-08 2017-02-07 Google Inc. Weighted load balancing using scaled parallel hashing
US9832105B2 (en) * 2014-06-04 2017-11-28 Console Connect Inc. Method and apparatus for identifying different routing paths between networks
TWI542172B (zh) * 2014-09-22 2016-07-11 財團法人工業技術研究院 路徑更換方法與系統及其控制器
US10924381B2 (en) * 2015-02-19 2021-02-16 Arista Networks, Inc. System and method of processing in-place adjacency updates
US10003519B2 (en) * 2015-11-13 2018-06-19 Nanning Fugui Precision Industrial Co., Ltd. Data delivery method based on software defined networking and software defined networking controller using the method
US10313197B1 (en) * 2016-03-09 2019-06-04 Senseware, Inc. System, method and apparatus for controlled entry of a sensor network node into a discovery state
US10015096B1 (en) * 2016-06-20 2018-07-03 Amazon Technologies, Inc. Congestion avoidance in multipath routed flows
US10027571B2 (en) * 2016-07-28 2018-07-17 Hewlett Packard Enterprise Development Lp Load balancing
US10069734B1 (en) 2016-08-09 2018-09-04 Amazon Technologies, Inc. Congestion avoidance in multipath routed flows using virtual output queue statistics
US10097467B1 (en) * 2016-08-11 2018-10-09 Amazon Technologies, Inc. Load balancing for multipath groups routed flows by re-associating routes to multipath groups
US10116567B1 (en) 2016-08-11 2018-10-30 Amazon Technologies, Inc. Load balancing for multipath group routed flows by re-routing the congested route
US10009275B1 (en) 2016-11-15 2018-06-26 Amazon Technologies, Inc. Uniform route distribution for a forwarding table
US10084687B1 (en) * 2016-11-17 2018-09-25 Barefoot Networks, Inc. Weighted-cost multi-pathing using range lookups
US10397097B2 (en) * 2017-01-18 2019-08-27 Futurewei Technologies, Inc. Weighted next hop selection at a router using an equal cost multipath process
CN108259334A (zh) 2017-01-25 2018-07-06 新华三技术有限公司 一种等价路由表项建立方法和装置
CN108881035B (zh) * 2018-09-13 2020-11-06 杭州迪普科技股份有限公司 一种报文转发方法和装置
US11178046B2 (en) * 2019-11-27 2021-11-16 Google Llc Weighted bandwidth allocation for adaptive routing
US11095552B1 (en) * 2020-01-31 2021-08-17 Avago Technologies International Sales Pte. Limited Weighted cost multipath packet processing
US11425030B2 (en) * 2020-10-08 2022-08-23 Cisco Technology, Inc. Equal cost multi-path (ECMP) failover within an automated system (AS)
CN113194030B (zh) * 2021-05-06 2021-12-24 中国人民解放军国防科技大学 一种基于网络前缀切分的多路径报文转发方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594261B1 (en) * 1999-12-22 2003-07-15 Aztech Partners, Inc. Adaptive fault-tolerant switching network with random initial routing and random routing around faults
US7366100B2 (en) * 2002-06-04 2008-04-29 Lucent Technologies Inc. Method and apparatus for multipath processing
GB0230330D0 (en) * 2002-12-31 2003-02-05 British Telecomm Communications routing
US7453883B1 (en) * 2003-04-14 2008-11-18 Cisco Technology, Inc. Method for compressing route data in a router
US7701858B2 (en) 2003-07-17 2010-04-20 Sensicast Systems Method and apparatus for wireless communication in a mesh network
JP2005057487A (ja) * 2003-08-04 2005-03-03 Nippon Telegr & Teleph Corp <Ntt> 複数経路を選択する経路制御装置、経路選択方法およびそのプログラムと記録媒体
DE102004003547B3 (de) * 2004-01-23 2005-06-30 Siemens Ag Hinsichtlich der Netzauslastung optimiertes Shortest Path Routing
JP4388464B2 (ja) * 2004-12-07 2009-12-24 株式会社日立製作所 パケット中継装置およびパケット通信ネットワーク
US20060133282A1 (en) * 2004-12-21 2006-06-22 Nortel Networks Limited Systems and methods for multipath routing
US20070147255A1 (en) * 2005-12-23 2007-06-28 Ozgur Oyman Routing in wireless mesh networks
US8208463B2 (en) * 2006-10-24 2012-06-26 Cisco Technology, Inc. Subnet scoped multicast / broadcast packet distribution mechanism over a routed network
US7898959B1 (en) 2007-06-28 2011-03-01 Marvell Israel (Misl) Ltd. Method for weighted load-balancing among network interfaces
US8014278B1 (en) * 2007-12-17 2011-09-06 Force 10 Networks, Inc Adaptive load balancing between ECMP or LAG port group members
US20110164527A1 (en) * 2008-04-04 2011-07-07 Mishra Rajesh K Enhanced wireless ad hoc communication techniques
US8160063B2 (en) * 2008-06-09 2012-04-17 Microsoft Corporation Data center interconnect and traffic engineering
JP5044537B2 (ja) * 2008-12-15 2012-10-10 株式会社日立製作所 トランスポート制御サーバ、ネットワークシステム及び集約パス決定方法
US8036126B2 (en) 2009-02-17 2011-10-11 At&T Intellectual Property Llp System and method for compressing internet protocol routing tables
US20130114619A1 (en) * 2010-07-29 2013-05-09 Shaun K Wakumoto Device and method for egress packet forwarding using mesh tagging
US8996614B2 (en) * 2011-02-09 2015-03-31 Citrix Systems, Inc. Systems and methods for nTier cache redirection
US8693341B2 (en) * 2011-06-10 2014-04-08 Force10 Networks, Inc. Method and apparatus for optimizing data traffic path through a stacked switch LAG configuration
US9071541B2 (en) * 2012-04-25 2015-06-30 Juniper Networks, Inc. Path weighted equal-cost multipath
US8972602B2 (en) 2012-06-15 2015-03-03 Citrix Systems, Inc. Systems and methods for using ECMP routes for traffic distribution
KR102069501B1 (ko) * 2012-10-19 2020-01-23 한국전자통신연구원 에너지 사용 효율을 향상할 수 있는 멀티패스 통신장치 및 이의 에너지 사용 효율 향상을 위한 트래픽 분배방법
CN103051985B (zh) * 2013-01-06 2015-08-12 中兴通讯股份有限公司 一种以太网光纤通道路由转发数据的方法及其设备
US8964752B2 (en) * 2013-02-25 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Method and system for flow table lookup parallelization in a software defined networking (SDN) system
BR112015021046A2 (pt) * 2013-03-06 2017-07-18 Nec Corp sistema de comunicação, comutador, aparelho de controle, método de processamento de pacote e programa
US9065721B2 (en) * 2013-03-15 2015-06-23 Dell Products L.P. Dynamic network load rebalancing
CN104144120A (zh) * 2013-05-07 2014-11-12 杭州华三通信技术有限公司 转发信息配置方法及装置
CN105745886B (zh) * 2013-09-23 2019-06-04 迈克菲有限公司 在两个实体之间提供快速路径
US9467384B2 (en) * 2013-12-05 2016-10-11 Mediatek Singapore Pte. Ltd. Packet forwarding apparatus and method using flow subgroup based path selection for dynamic load balancing
US9246821B1 (en) * 2014-01-28 2016-01-26 Google Inc. Systems and methods for implementing weighted cost multi-path using two-level equal cost multi-path tables
US9391896B2 (en) * 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9485115B2 (en) * 2014-04-23 2016-11-01 Cisco Technology, Inc. System and method for enabling conversational learning in a network environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200044592A (ko) * 2018-10-19 2020-04-29 주식회사 케이티 다중 경로 전송 시스템, 그리고 이의 다중 경로 전송 방법

Also Published As

Publication number Publication date
JP2017516387A (ja) 2017-06-15
SG11201609475QA (en) 2016-12-29
EP3143734A1 (en) 2017-03-22
US9736067B2 (en) 2017-08-15
JP6383805B2 (ja) 2018-08-29
US20150326476A1 (en) 2015-11-12
DK3143734T3 (en) 2018-10-08
KR101922536B1 (ko) 2018-11-27
CN106664250A (zh) 2017-05-10
WO2015175110A1 (en) 2015-11-19
EP3143734B1 (en) 2018-06-20
CN106664250B (zh) 2020-08-14
DE202015009259U1 (de) 2017-01-19

Similar Documents

Publication Publication Date Title
KR101922536B1 (ko) 프리픽스 인식 가중 비용 다중 경로 그룹 감소
US9806994B2 (en) Routing via multiple paths with efficient traffic distribution
JP6527880B2 (ja) フロールーティング、スケーラビリティおよびセキュリティの向上を伴う、自律システム内および自律システム間のトラフィックのソフトウェア定義ルーティングのためのシステムならびに方法
JP6510115B2 (ja) 負荷分散を実現するための方法、装置、およびネットワークシステム
US8248925B2 (en) Method and apparatus for selecting between multiple equal cost paths
CN104335537B (zh) 用于层2多播多路径传送的系统和方法
US9571400B1 (en) Weighted load balancing in a multistage network using hierarchical ECMP
EP2614615B1 (en) Automated traffic engineering for 802.1aq based upon the use of link utilization as feedback into the tie-breaking mechanism
US20150124652A1 (en) Weighted equal cost multipath routing
US20170310594A1 (en) Expedited fabric paths in switch fabrics
JP2019503153A (ja) サービストラヒック分配方法及び装置
US9548930B1 (en) Method for improving link selection at the borders of SDN and traditional networks
CN106559324A (zh) 一种基于等价多路径转发报文的方法及网络设备
EP2995048A1 (en) Configuring forwarding information
US20170222914A1 (en) Non-minimum cost forwarding for packet-switched networks
Zhang et al. Load balancing in IP networks using generalized destination-based multipath routing
US11805047B2 (en) Method and apparatus for controlling network traffic path
US11451494B2 (en) Packet order recovery in a programmable edge switch in a data center network
US8948171B1 (en) System and method for IP multicast
US11570083B2 (en) Selecting and deduplicating forwarding equivalence classes
US20180212881A1 (en) Load-based compression of forwarding tables in network devices

Legal Events

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