KR101897423B1 - 정책 기반 네트워크들에서의 개선된 네트워크 이용 - Google Patents

정책 기반 네트워크들에서의 개선된 네트워크 이용 Download PDF

Info

Publication number
KR101897423B1
KR101897423B1 KR1020177008008A KR20177008008A KR101897423B1 KR 101897423 B1 KR101897423 B1 KR 101897423B1 KR 1020177008008 A KR1020177008008 A KR 1020177008008A KR 20177008008 A KR20177008008 A KR 20177008008A KR 101897423 B1 KR101897423 B1 KR 101897423B1
Authority
KR
South Korea
Prior art keywords
data packet
route
node
alternate
routes
Prior art date
Application number
KR1020177008008A
Other languages
English (en)
Other versions
KR20170047315A (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 KR20170047315A publication Critical patent/KR20170047315A/ko
Application granted granted Critical
Publication of KR101897423B1 publication Critical patent/KR101897423B1/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/22Alternate 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/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
    • H04L45/247Multipath using M:N active or standby paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • 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/20Traffic policing
    • 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/22Traffic shaping
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/53Allocation or scheduling criteria for wireless resources based on regulatory allocation policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding

Landscapes

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

Abstract

하나의 실시예에서, 방법은 네트워크의 노드의 라우팅 엔진에서 데이터 패킷을 수신하는 단계를 포함한다. 데이터 패킷을 노드로부터 데이터 패킷의 목적지로 전송하기 위해, 노드의 전송 테이블로부터 루트가 선택된다. 전송 테이블은 노드에서 목적지로의 2개 이상의 루트와 관련된, 루트 비용을 포함하는, 루트 특성을 포함한다. 하드웨어 컴퓨팅 디바이스가 선택된 루트를 분석하여, 실시간 트래픽 정보에 기초하여, 선택된 루트가 데이터 패킷을 전달하기에 적합한지를 결정한다. 선택된 루트가 데이터 패킷을 전달하기에 부적합하다고 결정되면, 데이터 패킷이 라우팅 엔진으로 반환된다. 이전의 선택된 루트가 데이터 패킷을 전달하기에 부적합하면, 이전의 선택된 루트 대신에 데이터 패킷에 대한 대체 루트가 전송 테이블로부터 선택된다.

Description

정책 기반 네트워크들에서의 개선된 네트워크 이용{IMPROVED NETWORK UTILIZATION IN POLICY-BASED NETWORKS}
본 개시내용은 네트워킹에 관한 것으로, 더욱 구체적으로는, 네트워크가 동적일 수 있는 정책 기반 네트워크에서의 네트워크 이용 개선에 관한 것이다.
소스와 목적지 사이에 다수의 경로를 갖는 정책 라우팅 네트워크는 일반적으로 그러한 다수의 경로를 이용하도록 최적화되지 않아서, 특히 토폴로지와 링크 품질이 시간에 따라 달라지는 상황에서 인위적으로 네트워크의 처리량을 줄인다. 주어진 서비스 품질(QoS) 레벨 또는 차별 서비스 코드 포인트(DSCP) 값에 대해 링크가 포화되는 경우, 적합한 대체 경로가 이용 가능할 경우에도, 추가 트래픽이 드롭(drop)된다. 데이터의 드롭에서, 중요한 정보가 손실될 수 있거나 시간에 민감한 정보(time-sensitive information)가 과도하게 지연될 수 있다. 이는 손실이나 지연이 심각한 결과를 초래할 수 있는 전술 네트워크에서 특히 중요하다.
종래의 네트워크 관리자는 QoS 레벨이나 DSCP 값에 기초하여 취해져야 하는 루트를 결정하는 정책 기반 관리를 위한 규칙을 갖지만, 이러한 루트가 정체되면, 데이터는 통상적으로 드롭된다.
하나의 실시예에서, 방법은 네트워크의 노드의 라우팅 엔진에서 데이터 패킷을 수신하는 단계를 포함한다. 데이터 패킷을 노드로부터 데이터 패킷의 목적지로 전송하기 위해, 노드의 전송 테이블로부터 루트가 선택된다. 전송 테이블은 노드에서 목적지로의 2개 이상의 루트와 관련된, 루트 비용을 포함하는, 루트 특성을 포함한다. 컴퓨터 하드웨어 컴퓨팅 디바이스는 선택된 루트를 분석하여, 실시간 네트워크 트래픽에 기초하여, 선택된 루트가 데이터 패킷을 전달하기에 적합한지를 결정한다. 선택된 루트가 데이터 패킷을 전달하기에 부적합하다고 결정되면, 데이터 패킷이 노드의 라우팅 엔진으로 반환된다. 이전의 선택된 루트가 데이터 패킷을 전달하기에 부적합하다고 결정되면, 이전의 선택된 루트 대신에 데이터 패킷에 대한 대체 루트가 전송 테이블로부터 선택된다.
다른 실시예에서, 시스템은 네트워크의 노드를 포함하며, 노드는 라우팅 엔진 및 라우팅 엔진의 아웃바운드 인터페이스와 관련된 트래픽 셰이퍼(traffic shaper)를 포함한다. 라우팅 엔진은 데이터 패킷을 수신하고; 노드의 전송 테이블로부터, 노드로부터 데이터 패킷의 목적지로 데이터 패킷을 전송하기 위한 루트를 선택하도록 구성된다. 전송 테이블은 노드에서 목적지로의 2개 이상의 루트와 관련된, 루트 비용을 포함하는, 루트 특성을 포함한다. 트래픽 셰이퍼는 하드웨어 컴퓨팅 디바이스에 의해, 선택된 루트를 분석하여, 실시간 트래픽 정보에 기초하여, 선택된 루트가 데이터 패킷을 전달하기에 적합한지를 결정하도록 구성된다. 트래픽 셰이퍼는 선택된 루트가 데이터 패킷을 전달하기에 부적합한 것으로 결정되면 데이터 패킷을 노드의 라우팅 엔진으로 반환하도록 더 구성된다. 라우팅 엔진은 이전의 선택된 루트가 데이터 패킷을 전달하기에 부적합한 것으로 결정되는 경우에 이전의 선택된 루트 대신에 데이터 패킷에 대한 대체 루트를 전송 테이블로부터 선택하도록 더 구성된다.
또 다른 실시예에서, 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 프로그램 코드를 구현한 컴퓨터 판독 가능 저장 매체를 포함한다. 컴퓨터 판독 가능 프로그램 코드는 방법을 수행하기 위해 프로세서에 의해 실행 가능하다. 방법은 네트워크의 노드의 라우팅 엔진에서 데이터 패킷을 수신하는 단계를 포함한다. 데이터 패킷을 노드로부터 데이터 패킷의 목적지로 전송하기 위해, 노드의 전송 테이블로부터 루트가 선택된다. 전송 테이블은 노드에서 목적지로의 2개 이상의 루트와 관련된, 루트 비용을 포함하는, 루트 특성을 포함한다. 컴퓨터 하드웨어 컴퓨팅 디바이스는 선택된 루트를 분석하여, 실시간 네트워크 트래픽에 기초하여, 선택된 루트가 데이터 패킷을 전달하기에 적합한지를 결정한다. 선택된 루트가 데이터 패킷을 전달하기에 부적합하다고 결정되면, 데이터 패킷이 노드의 라우팅 엔진으로 반환된다. 이전의 선택된 루트가 데이터 패킷을 전달하기에 부적합하다고 결정되면, 이전의 선택된 루트 대신에 데이터 패킷에 대한 대체 루트가 전송 테이블로부터 선택된다.
추가적인 특징 및 이점이 본 개시내용의 기술을 통해 실현된다. 본 개시내용의 다른 실시예 및 양태가 본 명세서에 상세히 설명되며 청구범위의 일부로 간주된다. 본 개시내용 및 그의 이점 및 특징의 더 나은 이해를 위해 설명과 도면을 참조한다.
이제, 본 개시내용의 더 완전한 이해를 위해, 첨부된 도면 및 상세한 설명과 관련하여 취해진 다음의 간단한 설명이 참조되며, 도면에서 동일한 참조 번호는 동일한 요소를 나타낸다.
도 1은 본 개시내용의 일부 실시예에 따른 라우팅 시스템 노드의 블록도이다.
도 2는 본 개시내용의 일부 실시예에 따른 네트워크에서 데이터 패킷을 라우팅하기 위한 방법의 흐름도이다.
도 3은 본 개시내용의 일부 실시예에 따른 라우팅 시스템의 일부 또는 모든 양태를 구현하기 위한 컴퓨터 시스템의 블록도이다.
본 라우팅 시스템의 일부 실시예에 따르면, 데이터 패킷은 정체, 즉 링크 포화 또는 다른 트래픽 셰이핑 문제로 인해 드롭되는 대신에 리라우팅될 수 있다. 일반적으로, 라우팅 시스템은 선택된 "최상의" 루트가 링크 포화 또는 기타 문제를 겪고 있다는 것을 식별하고, 데이터를 위한 하나 이상의 가능한 대체 루트를 동적으로 식별하고, 이들 대체 루트 중 적어도 하나를 이용할 수 있다. 따라서, 패킷을 드롭하는 대신에, 라우팅 시스템은 데이터 패킷의 목적지를 향하여, 아마도 상이한 그러나 호환 가능한 QoS 레벨에서 대체 루트를 동적으로 이용할 수 있다.
라우팅 시스템은 다른 식별된 유효 루트를 이용하여, 예를 들어 원하는 목적지 주소, QoS 및 DSCP 마킹에 기초하여 그들로부터 선택할 수 있다. 그러한 대체 루트가 존재하면, 라우팅 시스템은 패킷의 드롭을 유발했을 루트 대신에 그러한 대체 루트를 따라 패킷을 전송할 수 있다. 라우팅 시스템의 다양한 실시예는 정체 또는 트래픽 셰이핑 문제의 경우에 패킷을 드롭할 필요성을 없애고, 전체 네트워크의 이용을 개선하고, 그에 따라 재전송에 대한 필요성을 감소시킬 수 있다. 본 라우팅 시스템의 실시예는 동적으로 루트를 선택할 수 있기 때문에, 그러한 실시예는 이에 따라 동적 네트워크를 더 효율적으로 이용할 수 있다.
도 1은 네트워크의 노드(110)의 적어도 일부의 블록도이며, 노드는 본 개시내용의 일부 실시예에 따른 라우팅 시스템(100)의 양태를 포함한다. 노드(110)는 라우팅 시스템(100)에 의해 관리되는 네트워크를 위한 라우팅 노드일 수 있다. 노드(110)는 도시된 것과 다른 컴포넌트를 포함할 수 있음을 알 것이다. 네트워크는, 함께 네트워크를 통해 데이터 패킷을 라우팅할 수 있는 그러한 노드들(110) 중 하나 이상을 포함할 수 있다. 도시된 바와 같이, 노드(110)는 라우팅 엔진(120) 및 하나 이상의 네트워크 인터페이스(130)를 포함할 수 있다. 각각의 네트워크 인터페이스(130)는 하나 이상의 다운스트림 엔티티(160)(예를 들어, 가중된 페어 큐(weighed fair queue))에 접속된 트래픽 셰이퍼(140)를 포함할 수 있다. 다수의 네트워크 인터페이스(130)가 도 1에 도시되지만, 2개의 네트워크 인터페이스(130)만이 단일 노드(110)에 포함될 수도 있다. 각각의 다운스트림 엔티티(160)는 현재 노드(110)를 인접 노드(110)에 접속하는 대응하는 물리적 링크에 대한 인터페이스를 포함할 수 있다.
노드의 네트워크 인터페이스들(130) 중 하나의 네트워크 인터페이스를 통해 인접 노드로부터 노드(110)에서 데이터 패킷이 수신될 수 있으며, 그러한 경우에 상기 하나의 네트워크 인터페이스는 입구 인터페이스(entrance interface)로서 동작한다. 대조적으로, 데이터 패킷이 특정 네트워크 인터페이스(130)를 통해 노드(110)로부터 전송될 때, 그 네트워크 인터페이스(130)는 출구 인터페이스(exit interface)로서 동작한다.
라우팅 엔진(120)은 노드(110)에서 수신된 각각의 데이터 패킷에 대한 라우팅 결정을 행할 수 있다. 더욱 구체적으로, 라우팅 엔진(120)은 전통적인 정책 결정을 통해 데이터 패킷에 가장 적합한 것으로 간주되는 루트가 정체 또는 다른 이유로 인해 데이터 패킷을 처리하기에 부적합한지를 결정할 수 있다. 그러한 경우, 라우팅 엔진(120)은 데이터 패킷에 대한 최상의 대체 루트를 선택할 수 있다.
종래의 라우팅 기술에 따르면, 노드의 라우팅 엔진은 라우팅 엔진이 알고 있는 각각의 목적지에 대한 최상의 루트를 나타내는 전송 테이블을 유지한다. 목적지에 대한 다수의 최상의 루트가 동일한 비용을 갖거나 비용 차이가 미리 정의된 임계치 이내인 경우에 그러한 최상의 루트가 유지될 수 있다. 전송 테이블에 저장되는 데이터는 인접 노드들과의 통신을 통해 형성되며, 그러한 인접 노드들은 결국 그의 인접 노드들과 통신하고, 기타 등등이다. 따라서, 제1 노드와 목적지 사이의 다양한 노드 간의 통신을 통해, 제1 노드는 목적지에 대한 최상의 루트를 결정한다. 또한, 각각의 노드는 그의 인접 링크들(즉, 인접 노드들에 대한 접속들)을 알고 있기 때문에, 다양한 노드는 네트워크 토폴로지 변경을 서로 통신할 수 있다. 네트워크에 대한 토폴로지 변경이나 다른 변경이 새로운 최상의 루트를 도입하는 경우, 제1 노드는 결국 다른 노드와의 통신을 통해 그것을 알게 될 것이다. 이 경우, 새로운 최상의 루트는 라우팅 엔진의 전송 테이블 내의 이전의 최상의 루트를 대체할 것이다.
종래의 시스템에서는, 최상의 루트와 함께, 라우팅 엔진은 그 루트의 비용도 유지한다. 루트 비용 계산은 일반적으로 정책에 의존한다. 예를 들어, 제1 노드에 의해 저장되는 루트의 비용은 제1 노드와 목적지 사이의 홉(즉, 노드 간의 링크)의 수일 수 있다. 종래 기술에 따르면, 전송 테이블에 유지되는 각각의 목적지에 대해, 최상의 루트(즉, 최저 비용을 갖는 루트 또는 매우 유사한 최저 비용을 갖는 루트)만이 전송 테이블에 유지된다. 다른 모든 루트는 버려지고 잊혀진다. 따라서, 종래 기술에 따르면, 특정 목적지로의 전달을 위해 데이터 패킷이 수신될 때, 라우팅 엔진은 현재 알려진 최상의 루트를 선택한다.
본 개시내용에 따른 라우팅 시스템(100)의 일부 실시예에서, 종래 기술에서와 같이, 노드들(110)은 서로 통신할 수 있고, 각각의 노드는 전송 테이블(125)을 유지할 수 있다. 그러나, 전송 테이블(125)은 알려진 각각의 목적지에 대한 하나 이상의 루트를 유지할 수 있다. 새로운 루트가 식별될 때, 그 루트는 그 루트의 비용과 함께 전송 테이블(125)에 추가될 수 있지만, 기존의 알려진 루트는 전송 테이블(125)로부터 제거될 필요가 없다. 일부 실시예에 따르면, 최상의 루트를 처음 선택할 때, 라우팅 엔진(120)은 전송 테이블에 저장된 바와 같은, 목적지에 대해 이용 가능한 루트 중에서 현재의 최상의 루트(예를 들어, 최저 비용 루트)를 선택할 수 있다.
선택된 루트에 기초하여, 라우팅 엔진(120)은 대응하는 네트워크 인터페이스(130)를 식별할 수 있다. 일부 실시예에서, 별개의 네트워크 인터페이스(130)가 현재 노드(110)로부터의 각각의 링크에 대해 사용될 수 있으며, 따라서 루트 선택은 선택된 루트의 제1 링크와 관련된 대응하는 네트워크 인터페이스를 고유하게 결정할 수 있다.
각각의 네트워크 인터페이스(130)는 트래픽 셰이퍼(140) 및 관련 다운스트림 엔티티(160)를 포함할 수 있다. 트래픽 셰이퍼(140)는 하나 이상의 트래픽 큐를 포함할 수 있다. 트래픽 셰이퍼(140)는 사용자 구성 가능 정책에 기초하여 특정 큐에 데이터 패킷을 배치할 수 있다. 한정이 아니라 예로서, 트래픽 셰이퍼(140)는 데이터 패킷 출력 레이트, 즉 레이트 제한을 유지하기 위해 트래픽 미터로서 토큰 버킷을 사용할 수 있다. 큐 상의 다양한 데이터 패킷은 결국 디큐잉될 수 있으며, 일부 경우에서는 다운스트림 엔티티(160)로 전송될 수 있다.
패킷이 다운스트림 엔티티(160)로 전송되기 전에, 트래픽 셰이퍼(140)는 해당 네트워크 인터페이스(130)로부터 이어지는 링크에서 시작하는 선택된 루트가 데이터 패킷을 전달하기에 적합한지를 결정할 수 있다. 선택된 루트가 적합한 것으로 간주되면, 트래픽 셰이퍼(140)는 패킷을 다운스트림 엔티티(160)로 전송할 수 있다.
선택된 루트가 전통적인 "최상의" 루트일 때에도, 선택된 루트가 특정 데이터 패킷을 전달하는 데 적합하지 않은 상황이 있을 수 있다. 한정이 아니라 예로서, 데이터 패킷은 사용자 구성 가능 정책에 따라 프로파일(즉, 계약)을 벗어난 경우에 또는 적용 가능한 큐가 가득 찬 경우에 드롭되는 것이 필요할 수 있다. 종래 기술에 따르면, 이러한 상황에서, 데이터 패킷은 사용자 구성 가능 정책에 따라 트래픽 셰이퍼(140)에 의해 드롭되거나 버려질 것이다.
데이터 패킷을 전달하는 것에 대한 선택된 루트의 적합성에 관한 결정은 네트워크 관리자에 의해 설정되고 네트워크의 다양한 노드(110)에 의해 시행될 수 있는 기존의 정책에 의해 결정될 수 있다. 한정이 아니라 예로서, 루트는 그의 이용이 루트의 임의의 하나의 링크 상의 80% 로딩의 임계치와 같은 미리 결정된 임계치를 초과할 때의 정체로 인해; 패킷을 전송하기에 불충분한 대역폭을 가짐으로 인해; 또는 다운스트림 엔티티(160)의 대응하는 물리적 인터페이스로의 이전의 데이터 패킷의 전송과 인접 링크를 통한 그러한 데이터 패킷의 전송 사이에 수용 불가 지연(즉, 미리 결정된 임계치의 시간 프레임을 초과하는 지연)이 존재함으로 인해 부적합한 것으로 간주될 수 있다. 다른 예로, 루트는 루트의 지터가 미리 결정된 임계치를 초과하는 경우에 부적합한 것으로 간주될 수 있다.
종래 기술에 따르면, 트래픽 셰이퍼는 현재의 네트워크 정책에 기초하여 선택된 루트를 검사 및 분석하여, 선택된 루트가 데이터 패킷을 전달하는 데 현재 적합한지(예를 들어, 데이터 패킷이 프로파일 내에 있는지)를 결정한다. 선택된 루트가 데이터 패킷에 대해 적합하다고 간주되면, 트래픽 셰이퍼는 데이터 패킷을 다운스트림 엔티티(160)의 물리적 인터페이스로 전송할 수 있다. 이어서, 물리적 인터페이스는 선택된 루트에 대응하는 인접 링크를 따라 데이터 패킷을 전송할 수 있다. 선택된 루트가 적합하지 않은 경우, 종래 기술에 따라, 데이터 패킷은 통상적으로 큐잉, 재분류 또는 드롭될 것이다.
본 개시내용의 일부 실시예는 종래 기술에 기초한다. 일부 실시예에 따르면, 트래픽 셰이퍼(140)는 선택된 루트의 부적합으로 인해 데이터 패킷을 드롭할 필요가 없다. 오히려, 그러한 경우, 트래픽 셰이퍼(140)는 데이터 패킷을 라우팅 엔진(120)에 반환할 수 있다. 이어서, 라우팅 엔진(120)은 데이터 패킷을 그의 목적지로 전송하기 위한 최상의 대체 루트를 결정할 수 있다. 이를 위해, 라우팅 엔진(120)은 데이터 패킷에 대한 하나 이상의 대체 루트를 식별할 수 있다. 이들 대체 루트는 전술한 바와 같은 전송 테이블(125)에 이미 저장되었을 수 있다. 일부 실시예에서, 식별된 대체 루트는 현재 노드(110)로부터 목적지까지 이어지는 모든 이전에 발견된 루트를 포함할 수 있는데, 이는 그러한 루트가 새로운 최상의 루트의 식별시에 드롭될 필요가 없었기 때문이다.
일부 실시예에 따르면, 라우팅 엔진(120)은 그의 전송 테이블(125) 안에 각각의 알려진 목적지를 향하는 복수의 대체 루트를 유지할 수 있다. 라우팅 엔진(120)은 또한 대체 루트에 관한 다양한 루트 데이터를 유지할 수 있으며, 데이터는 각각의 루트 특성을 포함할 수 있고, 전술한 바와 같은 네트워크의 다양한 노드 간의 통신을 통해 생성 및 유지될 수 있다. 루트 데이터는 예를 들어 QoS, 대역폭, 레이턴시, 홉 카운트 및 지터와 같은 다양한 인자에 기초하여 계산될 수 있는 다양한 대체 루트의 루트 비용을 포함할 수 있다.
이전에 선택된 루트가 데이터 패킷에 부적합한 것으로 간주되었고, 그러한 데이터 패킷이 라우팅 엔진(120)으로 반환된 후에, 라우팅 엔진(120)은 루트 데이터를 이용하여 최상의 대체 루트를 선택할 수 있다. 어떤 루트를 최상의 대체 루트로서 선택할지에 대한 결정은 대체 루트의 다양한 트래픽 특성을 고려할 수 있는 다양한 선택 알고리즘의 사용을 통해 이루어질 수 있다. 한정이 아니라 예로서, 사용되는 선택 알고리즘은 QoS 인식 알고리즘일 수 있으며, 루트 비용에 기여하고 루트 데이터로부터 획득될 수 있는 QoS, DSCP 마킹, 대역폭, 레이턴시, 홉 카운트 및 지터 중 하나 이상의 조합을 고려할 수 있다. 일부 실시예에서, 선택 알고리즘은 또한 데이터 패킷이 전송되고 있는 애플리케이션을 고려할 수 있다. 예를 들어, VoIP 애플리케이션은 아마도 웹 브라우징을 위해 수용할 수 있는 것보다 더 낮은 정도의 지터를 요구할 것이다. 따라서 VoIP 패킷의 경우, 최상의 대체 루트는 지터 임계치 미만인 것이 요구될 수 있다. 다른 예에서, 선택 알고리즘은 가장 높은 대역폭을 갖는 루트를 단순히 선택할 수 있거나, 라운드 로빈 접근법을 사용하여 데이터 패킷을 목적지를 향하는 다양한 대체 루트에 할당할 수 있다. 다양한 선택 알고리즘이 전송 테이블(125) 내의 이용 가능한 대체 루트 중에서 최상의 대체 루트를 선택하는 데 사용될 수 있다는 것을 이해할 것이다.
일부 예에서, 최상의 대체 루트를 선택하는 것은 기존 네트워크 정책에 반할 수 있거나, 그것을 적어도 완화할 수 있다. 예를 들어, 네트워크 정책은 소정 애플리케이션에 대한 데이터 패킷이 적어도 사전 결정된 QoS 또는 다른 원하는 특성을 갖는 루트를 따라 전송될 것을 요구할 수 있다. 그러나, 그러한 요구는 정당한 패킷이 처음 선택된 최상의 루트의 부적합으로 인해 드롭될 때 이롭기보다는 해로울 수 있다. 일부 실시예에 따르면, 그러한 데이터 패킷은 대신에 약간 더 낮은 QoS를 갖는 루트를 따라 전송될 수 있으며, 이는 데이터 패킷을 드롭하는 것보다 더 나은 결과를 산출할 수 있다. 따라서, 최상의 대체 루트를 선택하면 데이터 패킷을 드롭하는 것보다 나은 결과를 유도할 수 있다. 전통적으로 정체가 큐잉된 데이터의 드롭을 요구할 때 이를 행하는 대신에, 라우팅 시스템(100)은 데이터 패킷을 적응시켜 이를 다른 상이한 루트에 의해 전송할 수 있다.
일부 실시예에서, 라우팅 엔진(120)은 예를 들어, 데이터 패킷 자체 내에 있거나 라우팅 엔진(120)에 저장된 메타데이터를 유지할 수 있으며, 메타데이터는 해당 데이터 패킷에 대해 어느 네트워크 인터페이스(130)가 이미 시도되었는지를 지시한다. 데이터 패킷을 선택된 루트의 네트워크 인터페이스(130)로 전송하기 전에, 라우팅 엔진(120)은 데이터 패킷과 관련된 메타데이터를 검사하여 대응하는 네트워크 인터페이스(130)가 이전에 데이터 패킷에 대해 시도되지 않았음을 확인할 수 있다. 선택된 루트에 대한 네트워크 인터페이스(130)가 이미 그러한 메타데이터 내에 나열되어 있다면, 라우팅 엔진(120)은 이전에 선택되어 이미 시도된 것으로 결정된 루트를 제외하고, 데이터 패킷에 대해 다른 최상의 대체 루트를 선택할 수 있다. 또한, 데이터 패킷은 네트워크 인터페이스들(130) 중 하나의 네트워크 인터페이스를 통해 노드에서 수신되었을 것이며, 이 경우에 상기 하나의 네트워크 인터페이스는 입구 인터페이스로서 거동하였다. 루트 루핑(route looping)을 방지하기 위해, 일부 실시예에서, 라우팅 엔진(120)은 데이터 패킷에 대한 발신 네트워크 인터페이스(130)로서 입구 인터페이스를 선택하는 것을 피할 수 있다. 일부 실시예에서, 선택된 루트에 대한 네트워크 인터페이스(130)로 데이터 패킷을 전송할 때, 라우팅 엔진(120)은 네트워크 인터페이스(130)가 데이터 패킷에 대해 시도되었음을 나타내기 위해 데이터 패킷의 관련 메타데이터를 수정할 수 있다.
(처음에 선택된 최상의 루트 또는 라우팅 엔진(120)으로의 반환 후에 선택된 최상의 대체 루트일 수 있는) 선택된 루트가 데이터 패킷에 대해 적합한 것으로 간주되면, 트래픽 셰이퍼(140)는 데이터 패킷을 다운스트림 엔티티(160)로 전송할 수 있다. 이어서, 다운스트림 엔티티(160)의 물리적 인터페이스는 선택된 루트에 대응하는 인접 링크를 따라 데이터 패킷을 전송할 수 있다. 그러나, 선택된 루트가 부적합한 것으로 간주되면, 트래픽 셰이퍼(140)는 (라우팅 엔진(120)이 아직 이 작업을 수행하지 않았다면) 이 네트워크 인터페이스(130)가 이미 시도되었음을 나타내기 위해 데이터 패킷의 관련 메타데이터를 수정할 수 있고, 이어서 데이터 패킷을 라우팅 엔진(120)에 반환할 수 있다. 이어서, 라우팅 엔진(120)은 전술한 바와 같이 데이터 패킷에 대한 새로운 최상의 대체 루트를 선택할 수 있다.
대안적으로, 일부 실시예에서, 선택된 루트가 적합하지 않을 때, 트래픽 셰이퍼(140)가 종료 조건이 충족되었다고 결정하면, 트래픽 셰이퍼(140)는 데이터 패킷을 드롭할 수 있다. 한정이 아니라 예로서, 트래픽 셰이퍼(140)가 데이터 패킷의 관련 메타데이터에 기초하여 데이터 패킷이 이전의 시도에서 또는 사전 결정된 수의 이전의 시도에서 리라우팅을 위해 이미 라우팅 엔진(120)에 반환된 것으로 결정하는 경우에, 트래픽 셰이퍼(140)는 라우팅 엔진(120)으로 데이터 패킷을 반환하는 대신 드롭할 수 있다.
도 2는 본 개시내용의 일부 실시예에 따른 네트워크를 통해 데이터 패킷을 라우팅하는 방법(200)의 흐름도이다. 도시된 바와 같이, 블록 210에서, 데이터 패킷이 노드(110)에서 수신될 수 있다. 블록 220에서, 루트가 데이터 패킷에 대해 선택될 수 있고, 루트는 전송 테이블(125)로부터 선택된다. 루트가 결정되면, 데이터 패킷은 선택된 루트에 대응하는 네트워크 인터페이스(130)로 전송된다. 결정 블록 230에서, 선택된 루트의 네트워크 인터페이스(130)가 데이터 패킷에 적합한지를 결정할 수 있다. 선택된 루트가 적합한 것으로 간주되면, 블록 240에서 데이터 패킷은 다운스트림 엔티티(160)로 전송된다.
결정 블록 230에서 선택된 루트가 데이터 패킷에 부적합한 것으로 간주되면, 결정 블록 250에서 대체 루트가 이용 가능하지 않거나 미리 결정된 종료 조건이 충족되었는지를 결정한다. 결정 블록 250에서 대체 루트가 이용 가능하지 않거나 미리 결정된 종료 조건이 충족되면, 데이터 패킷은 블록 280에서 드롭된다. 그렇지 않으면, 데이터 패킷은 라우팅 엔진(120)으로 반환된다. 블록 270에서, 대체 루트가 전송 테이블(125) 내의 이용 가능한 대체 루트 중에서 선택될 수 있다. 이어서, 방법(200)은 결정 블록 230으로 복귀하여, 선택된 대체 루트의 네트워크 인터페이스(130)가 데이터 패킷에 적합한지를 결정한다. 블록 230 내지 270은 적합한 대체 루트가 발견될 때까지 또는 데이터 패킷이 드롭될 때까지 반복될 수 있다.
상기 방법(200)은 단지 예시 목적으로 제공된다는 것을 이해할 것이다. 이 방법(200)은 구현에 기초하여 수정될 수 있거나, 본 개시내용의 다른 실시예에 따라 다른 방법이 사용될 수 있다.
따라서, 오버로딩된 링크로의 트래픽이 충분히 이용되지 않는 링크로 오프로딩될 수 있기 때문에, 본 라우팅 시스템(100)의 일부 실시예는 네트워크의 대역폭의 더 나은 이용을 가능하게 한다. 그 결과, 라우팅 시스템(100)은 종래의 라우팅 기술에 비해 데이터를 드롭해야 할 필요성을 감소시킬 수 있다. 또한, 라우팅 시스템(100)은 라우팅 프로토콜이 수렴되기 전에 토폴로지 변경에 반응할 수 있다. 예를 들어, 토폴로지 변경 전에 주요 링크가 저하됨에 따라, 대체 링크가 자동으로 더 많은 트래픽을 전달하기 시작할 수 있다.
라우팅 시스템(100)의 일부 실시예는 컴퓨터 시스템 또는 컴퓨터 하드웨어에 의해 전체적으로 또는 부분적으로 구현될 수 있다. 한정이 아니라 예로서, 라우팅 시스템은 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적 회로(ASIC) 또는 맞춤형 논리에 의해 구현될 수 있다. 다른 예에서, 도 3은 일부 실시예에 따른 라우팅 시스템(100) 또는 방법(200)을 구현하는 데 사용하기 위한 컴퓨터 시스템(300)의 블록도를 도시한다. 본 명세서에서 설명되는 라우팅 시스템(100) 및 방법(200)은 하드웨어, 소프트웨어(예를 들어, 펌웨어) 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 라우팅 시스템(100)의 하나 이상의 노드(110)는 도 3에 도시된 것과 같은 컴퓨터 시스템(300)으로 구현될 수 있다.
예시적인 실시예에서, 설명된 방법은 하드웨어로 적어도 부분적으로 구현될 수 있으며, 개인용 컴퓨터, 워크스테이션, 미니 컴퓨터 또는 메인프레임 컴퓨터와 같은 특수 또는 범용 컴퓨터 시스템(300)의 마이크로프로세서의 일부일 수 있다.
예시적인 실시예에서, 도 3에 도시된 바와 같이, 컴퓨터 시스템(300)은 프로세서(305), 메모리 제어기(315)에 결합된 메모리(310), 및 로컬 I/O 제어기(335)를 통해 통신 가능하게 결합되는 주변 장치와 같은 하나 이상의 입력 디바이스(345) 및/또는 출력 디바이스(340)를 포함한다. 이들 디바이스(340 및 345)는 예를 들어 프린터, 스캐너, 마이크로폰 등을 포함할 수 있다. 종래의 키보드(350) 및 마우스(355)는 I/O 제어기(335)에 결합될 수 있다. 예를 들어 I/O 제어기(335)는 본 기술분야에 공지된 바와 같이 하나 이상의 버스 또는 다른 유선 또는 무선 접속일 수 있다. I/O 제어기(335)는 통신을 가능하게 하기 위해 제어기, 버퍼(캐시), 드라이버, 중계기 및 수신기와 같은 추가 요소를 가질 수 있으며, 이들은 간소화를 위해 생략된다.
I/O 디바이스(340, 345)는 입력 및 출력 양자를 통신하는 디바이스, 예를 들어, 디스크 및 테이프 저장소, (다른 파일, 장치, 시스템 또는 네트워크에 액세스하기 위한) 네트워크 인터페이스 카드(NIC) 또는 변조기/복조기, 무선 주파수(RF) 또는 다른 송수신기, 전화 인터페이스, 브리지, 라우터 등을 더 포함할 수 있다.
프로세서(305)는 하드웨어 명령어 또는 소프트웨어, 특히 메모리(310)에 저장된 것을 실행하기 위한 하드웨어 디바이스이다. 프로세서(305)는 임의의 맞춤형 또는 상용 프로세서, 중앙 처리 유닛(CPU), 컴퓨터 시스템(300)과 관련된 여러 프로세서 중의 보조 프로세서, (마이크로칩 또는 칩셋 형태의) 반도체 기반 마이크로프로세서, 매크로프로세서, 또는 명령어를 실행하기 위한 다른 디바이스일 수 있다. 프로세서(305)는 실행 가능 명령어 인출을 가속화하기 위한 명령어 캐시, 데이터 인출 및 저장을 가속화하기 위한 데이터 캐시, 및 실행 가능 명령어 및 데이터 양자에 대한 가상/물리 어드레스 변환을 가속화하는 데 사용되는 변환 색인 버퍼(TLB)를 포함할 수 있지만 이에 한정되지 않는 캐시(370)를 포함한다. 캐시(370)는 더 많은 캐시 레벨(L1, L2 등)의 계층 구조로 구성될 수 있다.
메모리(310)는 휘발성 메모리 요소(예를 들어, 랜덤 액세스 메모리(RAM), 예로서 DRAM, SRAM, SDRAM 등)와 비휘발성 메모리 요소(예를 들어, ROM, 소거 및 프로그래밍 가능 판독 전용 메모리(EPROM), 전기적 소거 및 프로그래밍 가능 판독 전용 메모리(EEPROM), 프로그래밍 가능 판독 전용 메모리(PROM), 테이프, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 디스크, 디스켓, 카트리지, 카세트 등) 중 어느 하나 또는 이들의 조합을 포함할 수 있다. 또한, 메모리(310)는 전자, 자기, 광학 또는 다른 유형의 저장 매체를 포함할 수 있다. 메모리(310)는 분산 아키텍처를 가질 수 있으며, 이러한 아키텍처에서는 다양한 컴포넌트가 서로 떨어져 위치하지만 프로세서(305)에 의해 액세스될 수 있음에 유의한다.
메모리(310) 내의 명령어는 하나 이상의 개별 프로그램을 포함할 수 있으며, 이들 각각은 논리적 기능을 구현하기 위한 실행 가능 명령어의 순서화된 리스트를 포함한다. 도 3의 예에서, 메모리(310) 내의 명령어는 적절한 운영 체제(OS)(311)를 포함한다. 운영 체제(311)는 본질적으로 다른 컴퓨터 프로그램의 실행을 제어할 수 있고, 스케줄링, 입출력 제어, 파일 및 데이터 관리, 메모리 관리, 및 통신 제어 및 관련 서비스를 제공한다.
예를 들어 프로세서(305)에 대한 명령어 또는 다른 검색 가능한 정보를 포함하는 추가 데이터가 하드 디스크 드라이브 또는 솔리드 스테이트 드라이브와 같은 저장 디바이스일 수 있는 저장소(320)에 저장될 수 있다. 메모리(310) 또는 저장소(320) 내의 저장된 명령어는 프로세서가 본 개시내용의 라우팅 시스템(100) 및 방법(200)의 하나 이상의 양태를 실행할 수 있게 하는 명령어를 포함할 수 있다.
컴퓨터 시스템(300)은 디스플레이(330)에 결합된 디스플레이 제어기(325)를 더 포함할 수 있다. 예시적인 실시예에서, 컴퓨터 시스템(300)은 네트워크(365)에 결합하기 위한 네트워크 인터페이스(360)를 더 포함할 수 있다. 네트워크(365)는 광대역 접속을 통해 컴퓨터 시스템(300)과 임의의 외부 서버, 클라이언트 등 사이에서 통신하기 위한 IP 기반 네트워크일 수 있다. 네트워크(365)는 컴퓨터 시스템(300)과 외부 시스템 사이에서 데이터를 송신 및 수신한다. 예시적인 실시예에서, 네트워크(365)는 서비스 제공자에 의해 관리되는 관리형 IP 네트워크일 수 있다. 네트워크(365)는 예를 들어 Wi-Fi, WiMAX 등과 같은 무선 프로토콜 및 기술을 이용하여 무선 방식으로 구현될 수 있다. 네트워크(365)는 근거리 네트워크, 광역 네트워크, 도시 영역 네트워크, 인터넷 또는 기타 유사한 유형의 네트워크 환경과 같은 패킷 교환 네트워크일 수도 있다. 네트워크(365)는 고정 무선 네트워크, 무선 근거리 네트워크(LAN), 무선 광역 네트워크(WAN), 개인 영역 네트워크(PAN), 가상 비공개 네트워크(VPN), 인트라넷 또는 다른 적절한 네트워크 시스템일 수 있거나, 신호를 송수신하기 위한 장비를 포함할 수 있다.
본 개시내용에 따른 라우팅 시스템(100) 및 방법(200)은 전체 또는 일부가 컴퓨터 프로그램 제품 또는 도 3에 도시된 것과 같은 컴퓨터 시스템(300)에서 구현될 수 있다.
아래의 청구범위 내의 모든 수단 또는 단계 플러스 기능 요소의 대응하는 구조, 재료, 동작 및 균등물은 구체적으로 청구되는 바와 같은 다른 청구 요소와 조합하여 기능을 수행하기 위한 임의의 구조, 재료 또는 동작을 포함하는 것을 의도한다. 본 명세서의 설명은 예시의 목적으로 제공되었지만, 총망라하는 것으로 또는 구체적으로 설명된 실시예로 한정되는 것으로 의도되지 않는다. 본 개시내용의 범위 및 사상을 벗어나지 않으면서 많은 수정 및 변경이 본 기술분야의 통상의 기술자에게 명백할 것이다. 실시예는 다양한 실시예의 원리 및 실제 응용을 가장 잘 설명하기 위해 그리고 본 기술분야의 통상의 다른 기술자가 고려되는 특정 용도에 적합한 바와 같은 다양한 수정을 갖는 다양한 실시예를 이해하는 것을 가능하게 하기 위해 선택 및 설명되었다.
일부 실시예가 설명되었지만, 본 기술분야의 기술자는 현재뿐만 아니라 미래에도 후술하는 청구범위의 범위에 속하는 다양한 개선 및 향상을 행할 수 있음을 이해할 것이다. 이러한 청구범위는 본 개시내용에 대한 적절한 보호를 유지하는 것으로 해석되어야 한다.

Claims (20)

  1. 방법으로서,
    네트워크의 노드의 라우팅 엔진(routing engine)에서 데이터 패킷을 수신하는 단계;
    정책 결정들을 통해, 상기 노드의 전송 테이블(forwarding table)로부터, 상기 노드로부터 상기 데이터 패킷의 목적지로 상기 데이터 패킷을 전송하기 위한 루트(route)를 선택하는 단계 - 상기 전송 테이블은 상기 노드로부터 상기 목적지로의 2개 이상의 루트와 관련된, 루트 비용들(route costs)을 포함하는, 루트 특성들(route characteristics)을 포함함 -;
    하드웨어 컴퓨팅 디바이스에 의해, 실시간 트래픽 정보에 기초하여, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계;
    상기 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 데이터 패킷의 메타데이터를 수정한 후에 상기 데이터 패킷을 상기 노드의 상기 라우팅 엔진으로 반환하는 단계 - 상기 메타데이터는, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되는 것을 나타내도록 수정됨 -; 및
    이전의 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 이전의 선택된 루트 대신에 상기 데이터 패킷에 대한 대체 루트를 상기 전송 테이블로부터 선택하는 단계
    를 포함하고,
    상기 대체 루트의 선택은 상기 정책에 반하거나 상기 정책을 완화하는 것이며,
    상기 패킷은 애플리케이션을 위한 것으로서, 상기 애플리케이션에 대하여 상기 정책은 미리결정된 특성들을 가진 루트를 따라 상기 패킷이 전송될 것을 요구하는, 방법.
  2. 제1항에 있어서,
    상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주될 때까지, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계 및 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 선택하는 단계를 반복하는 단계; 및
    상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주된 후에 상기 선택된 대체 루트를 따라 상기 데이터 패킷을 전송하는 단계
    를 더 포함하는, 방법.
  3. 제1항에 있어서,
    종료 조건이 충족될 때까지, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계 및 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 선택하는 단계를 반복하는 단계; 및
    상기 종료 조건이 충족된 후에 상기 데이터 패킷을 드롭(drop)하는 단계
    를 더 포함하는, 방법.
  4. 제1항에 있어서, 상기 메타데이터는 상기 노드로부터 상기 목적지로의 어느 루트들이 상기 데이터 패킷을 전달하기 위한 적합성(suitability)에 대해 분석되었는지를 나타내는, 방법.
  5. 제1항에 있어서, 상기 데이터 패킷에 대한 상기 선택된 대체 루트를 선택하는 단계는
    상기 전송 테이블에서, 상기 노드로부터 상기 목적지로의 2개 이상의 대체 루트를 식별하는 단계;
    상기 2개 이상의 대체 루트의 상기 루트 특성들을 비교하는 단계; 및
    상기 루트 특성들에 적어도 부분적으로 기초하여 상기 2개 이상의 대체 루트 중에서 상기 선택된 대체 루트를 선택하는 단계
    를 포함하는, 방법.
  6. 제5항에 있어서, 상기 2개 이상의 대체 루트의 루트 특성들을 비교하는 단계는 상기 2개 이상의 대체 루트를 따르는 서비스 품질을 비교하는 단계를 포함하는, 방법.
  7. 제5항에 있어서, 상기 2개 이상의 대체 루트의 상기 루트 특성들을 비교하는 단계는 상기 데이터 패킷이 전송되고 있는 애플리케이션에 적어도 부분적으로 기초하여 수행되는, 방법.
  8. 시스템으로서,
    네트워크의 노드를 포함하고, 상기 노드는
    데이터 패킷을 수신하고, 정책 결정들을 통해, 상기 노드의 전송 테이블로부터, 상기 노드로부터 상기 데이터 패킷의 목적지로 상기 데이터 패킷을 전송하기 위한 루트를 선택하도록 구성된 라우팅 엔진 - 상기 전송 테이블은 상기 노드로부터 상기 목적지로의 2개 이상의 루트와 관련된, 루트 비용들을 포함하는, 루트 특성들을 포함함 -; 및
    상기 라우팅 엔진의 아웃바운드 인터페이스(outbound interface)와 관련된 트래픽 셰이퍼(traffic shaper)
    를 포함하고, 상기 트래픽 셰이퍼는
    하드웨어 컴퓨팅 디바이스에 의해, 실시간 트래픽 정보에 기초하여, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하고;
    상기 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 데이터 패킷의 메타데이터가 수정된 후에 상기 데이터 패킷을 상기 노드의 상기 라우팅 엔진으로 반환하도록 구성되며 - 상기 메타데이터는, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되는 것을 나타내도록 수정됨 - ;
    상기 라우팅 엔진은 이전의 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 이전의 선택된 루트 대신에 상기 데이터 패킷에 대한 대체 루트를 상기 전송 테이블로부터 선택하도록 더 구성되고,
    상기 대체 루트의 선택은 상기 정책에 반하거나 상기 정책을 완화하는 것이며,
    상기 패킷은 애플리케이션을 위한 것으로서, 상기 애플리케이션에 대하여 상기 정책은 미리결정된 특성들을 가진 루트를 따라 상기 패킷이 전송될 것을 요구하는, 시스템.
  9. 제8항에 있어서, 상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주될 때까지, 상기 트래픽 셰이퍼는 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 반복 분석하도록 구성되고, 상기 라우팅 엔진은 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 반복 선택하도록 구성되며;
    상기 노드는 상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주된 후에 상기 선택된 대체 루트를 따라 상기 데이터 패킷을 전송하도록 구성된 네트워크 인터페이스를 더 포함하는, 시스템.
  10. 제8항에 있어서, 종료 조건이 충족될 때까지, 상기 트래픽 셰이퍼는 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 반복 분석하도록 구성되고, 상기 라우팅 엔진은 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 반복 선택하도록 구성되며;
    상기 트래픽 셰이퍼는 상기 종료 조건이 충족된 후에 상기 데이터 패킷을 드롭하도록 더 구성되는, 시스템.
  11. 제8항에 있어서, 상기 메타데이터는 상기 노드로부터 상기 목적지로의 어느 루트들이 상기 데이터 패킷을 전달하기 위한 적합성에 대해 분석되었는지를 나타내는, 시스템.
  12. 제8항에 있어서, 라우팅 엔진은
    상기 전송 테이블에서, 상기 노드로부터 상기 목적지로의 2개 이상의 대체 루트를 식별하고;
    상기 2개 이상의 대체 루트의 상기 루트 특성들을 비교하고;
    상기 루트 특성들에 적어도 부분적으로 기초하여 상기 2개 이상의 대체 루트 중에서 상기 선택된 대체 루트를 선택함으로써
    상기 데이터 패킷에 대한 상기 선택된 대체 루트를 선택하도록 구성되는, 시스템.
  13. 제12항에 있어서, 상기 2개 이상의 대체 루트의 루트 특성들을 비교하는 것은 상기 2개 이상의 대체 루트를 따르는 서비스 품질을 비교하는 것을 포함하는, 시스템.
  14. 제12항에 있어서, 상기 2개 이상의 대체 루트의 상기 루트 특성들을 비교하는 것은 상기 데이터 패킷이 전송되고 있는 애플리케이션에 적어도 부분적으로 기초하여 수행되는, 시스템.
  15. 컴퓨터 판독 가능 프로그램 코드를 구현한 컴퓨터 판독 가능 저장 매체로서, 상기 컴퓨터 판독 가능 프로그램 코드는 프로세서로 하여금,
    네트워크의 노드에서 데이터 패킷을 수신하고;
    정책 결정들을 통해, 상기 노드의 전송 테이블로부터, 상기 노드로부터 상기 데이터 패킷의 목적지로 상기 데이터 패킷을 전송하기 위한 루트를 선택하고 - 상기 전송 테이블은 상기 노드로부터 상기 목적지로의 2개 이상의 루트와 관련된, 루트 비용들을 포함하는, 루트 특성들을 포함함 -;
    실시간 트래픽 정보에 기초하여, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하고;
    상기 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 데이터 패킷의 메타데이터를 수정한 후에 상기 데이터 패킷을 상기 노드의 라우팅 엔진으로 반환하고 - 상기 메타데이터는, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되는 것을 나타내도록 수정됨 -; 및
    이전의 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 이전의 선택된 루트 대신에 상기 데이터 패킷에 대한 대체 루트를 상기 전송 테이블로부터 선택하도록 상기 프로세서에 의해 실행가능하고,
    상기 대체 루트의 선택은 상기 정책에 반하거나 상기 정책을 완화하는 것이며,
    상기 패킷은 애플리케이션을 위한 것으로서, 상기 애플리케이션에 대하여 상기 정책은 미리결정된 특성들을 가진 루트를 따라 상기 패킷이 전송될 것을 요구하는, 컴퓨터 판독 가능 저장 매체.
  16. 제15항에 있어서,
    상기 컴퓨터 판독 가능 프로그램 코드는 또한 프로세서로 하여금,
    상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주될 때까지, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계 및 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 선택하는 단계를 반복하고;
    상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주된 후에 상기 선택된 대체 루트를 따라 상기 데이터 패킷을 전송하도록
    상기 프로세서에 의해 실행가능한, 컴퓨터 판독 가능 저장 매체.
  17. 제15항에 있어서,
    상기 컴퓨터 판독 가능 프로그램 코드는 또한 프로세서로 하여금,
    종료 조건이 충족될 때까지, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계 및 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 선택하는 단계를 반복하고;
    상기 종료 조건이 충족된 후에 상기 데이터 패킷을 드롭하도록
    상기 프로세서에 의해 실행가능한, 컴퓨터 판독 가능 저장 매체.
  18. 제15항에 있어서, 상기 메타데이터는 상기 노드로부터 상기 목적지로의 어느 루트들이 상기 데이터 패킷을 전달하기 위한 적합성에 대해 분석되었는지를 나타내는, 컴퓨터 판독 가능 저장 매체.
  19. 제15항에 있어서, 상기 데이터 패킷에 대한 상기 선택된 대체 루트의 선택은,
    상기 전송 테이블에서, 상기 노드로부터 상기 목적지로의 2개 이상의 대체 루트의 식별;
    상기 2개 이상의 대체 루트의 상기 루트 특성들의 비교; 및
    상기 루트 특성들에 적어도 부분적으로 기초로 하는, 상기 2개 이상의 대체 루트 중에서의 상기 선택된 대체 루트의 선택
    을 포함하는, 컴퓨터 판독 가능 저장 매체.
  20. 제19항에 있어서, 상기 2개 이상의 대체 루트의 루트 특성들의 비교는 상기 2개 이상의 대체 루트를 따르는 서비스 품질을 비교하는 단계를 포함하는, 컴퓨터 판독 가능 저장 매체.
KR1020177008008A 2014-08-27 2015-06-18 정책 기반 네트워크들에서의 개선된 네트워크 이용 KR101897423B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/469,849 US10075365B2 (en) 2014-08-27 2014-08-27 Network path selection in policy-based networks using routing engine
US14/469,849 2014-08-27
PCT/US2015/036335 WO2016032599A1 (en) 2014-08-27 2015-06-18 Improved network utilization in policy-based networks

Publications (2)

Publication Number Publication Date
KR20170047315A KR20170047315A (ko) 2017-05-04
KR101897423B1 true KR101897423B1 (ko) 2018-09-10

Family

ID=53525262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177008008A KR101897423B1 (ko) 2014-08-27 2015-06-18 정책 기반 네트워크들에서의 개선된 네트워크 이용

Country Status (7)

Country Link
US (1) US10075365B2 (ko)
EP (1) EP3186927B1 (ko)
JP (1) JP6389564B2 (ko)
KR (1) KR101897423B1 (ko)
AU (1) AU2015307190B2 (ko)
CA (1) CA2959495C (ko)
WO (1) WO2016032599A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075365B2 (en) 2014-08-27 2018-09-11 Raytheon Company Network path selection in policy-based networks using routing engine
KR102563790B1 (ko) * 2018-05-18 2023-08-07 삼성전자주식회사 어플리케이션의 데이터 전송에 기반하여 네트워크 연결을 수행하기 위한 전자 장치 및 그에 관한 방법
US10887217B2 (en) * 2018-06-29 2021-01-05 Hewlett Packard Enterprise Development Lp Routing packets based on congestion metric thresholds and weights
EP3869752B1 (en) * 2020-02-24 2024-02-14 Moxa Inc. Device for handling routing paths for streams in a time-sensitive networking network

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953312A (en) * 1996-09-13 1999-09-14 Bay Networks Method and apparatus for determining alternate routes in a network using a connection-oriented protocol
DE60137406D1 (de) 2000-03-03 2009-03-05 Luminous Networks Inc Routenschalter für dynamische verkehrsumleitung aufgrund von verbindungsfehlererkennung
US7133365B2 (en) 2001-11-02 2006-11-07 Internap Network Services Corporation System and method to provide routing control of information over networks
JP2004236050A (ja) 2003-01-31 2004-08-19 Anritsu Corp 負荷分散型中継装置及び負荷分散型中継方法
US8223632B2 (en) 2003-12-23 2012-07-17 At&T Intellectual Property I, L.P. Method and system for prioritized rerouting of logical circuit data in a data network
US7742399B2 (en) 2006-06-22 2010-06-22 Harris Corporation Mobile ad-hoc network (MANET) and method for implementing multiple paths for fault tolerance
US7599314B2 (en) * 2007-12-14 2009-10-06 Raptor Networks Technology, Inc. Surface-space managed network fabric
US8553541B2 (en) * 2008-06-13 2013-10-08 Telefonaktiebolaget Lm Ericsson Network traffic transfer between a radio base station node and a gateway node
US8351429B2 (en) 2009-05-13 2013-01-08 Avaya Inc. Method and apparatus for providing fast reroute of a packet that may be forwarded on one of a plurality of equal cost multipath routes through a network
US8165121B1 (en) 2009-06-22 2012-04-24 Juniper Networks, Inc. Fast computation of loop free alternate next hops
US8489722B2 (en) 2009-11-24 2013-07-16 International Business Machines Corporation System and method for providing quality of service in wide area messaging fabric
US20120113810A1 (en) * 2010-07-01 2012-05-10 Tell Radius, L.C. Toll-based routing
EP2604074A1 (en) * 2010-08-11 2013-06-19 Thomson Licensing Combining bandwidth aware routing with channel selection and channel switching in a multi-hop wireless home network
US20140211630A1 (en) * 2011-09-28 2014-07-31 Vincent E. Cavanna Managing packet flow in a switch faric
US9451500B2 (en) 2011-11-16 2016-09-20 Telefonaktiebolaget Lm Ericsson (Publ) Conditional routing technique
US10075365B2 (en) 2014-08-27 2018-09-11 Raytheon Company Network path selection in policy-based networks using routing engine

Also Published As

Publication number Publication date
EP3186927A1 (en) 2017-07-05
WO2016032599A1 (en) 2016-03-03
US10075365B2 (en) 2018-09-11
US20160065447A1 (en) 2016-03-03
JP2017526293A (ja) 2017-09-07
KR20170047315A (ko) 2017-05-04
CA2959495A1 (en) 2016-03-03
CA2959495C (en) 2022-10-04
JP6389564B2 (ja) 2018-09-12
AU2015307190B2 (en) 2019-07-11
AU2015307190A1 (en) 2017-03-02
EP3186927B1 (en) 2019-05-29

Similar Documents

Publication Publication Date Title
US9942156B1 (en) Flow level dynamic load balancing
US11722421B2 (en) Path selection for an application based on a performance score in a software-defined network
CN111770028B (zh) 用于计算机网络的方法和网络设备
US11050668B2 (en) Flow-based load balancing
EP3516833B1 (en) Methods, systems, and computer readable media for discarding messages during a congestion event
US8023504B2 (en) Integrating security server policies with optimized routing control
JP5538257B2 (ja) 帯域監視装置、及びパケット中継装置
JP7212441B2 (ja) ネットワークにおけるフロー管理
US9197544B2 (en) Comprehensive multipath routing for congestion and quality-of-service in communication networks
JP2019523621A (ja) 複数のチャネルを使用してパフォーマンスを向上するインテリジェントアダプティブトランスポートレイヤー
JP2004528775A (ja) インテリジェント配信に関するネットワークサービスレベルを保証するシステム及び方法
US10135736B1 (en) Dynamic trunk distribution on egress
KR101897423B1 (ko) 정책 기반 네트워크들에서의 개선된 네트워크 이용
Ye et al. Delay-based network utility maximization modelling for congestion control in named data networking
Bedi et al. Mitigating congestion based DoS attacks with an enhanced AQM technique
WO2017162193A1 (en) Dynamic switching control over multiple internet services provided for home networks
Divakaran A spike-detecting AQM to deal with elephants
Xu Adaptive flow admission control in a software-defined network
Takeshi et al. Improving network throughput on application by weighting subflows of muti-path TCP adapted to conditions
Rodríguez-Pérez et al. A delay-oriented prioritization policy based on cooperative lossless buffering in PTN domains
Manzoor et al. CHOKeD: fair active queue management
Phinjirapong CAFFEINE: Congestion Avoidance For Fairness & Efficiency In Network Entities
JP2011018965A (ja) トラヒック制御システムと方法およびプログラム
Divakaran Using spikes to deal with elephants

Legal Events

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