KR20170047315A - Improved network utilization in policy-based networks - Google Patents

Improved network utilization in policy-based networks Download PDF

Info

Publication number
KR20170047315A
KR20170047315A KR1020177008008A KR20177008008A KR20170047315A KR 20170047315 A KR20170047315 A KR 20170047315A KR 1020177008008 A KR1020177008008 A KR 1020177008008A KR 20177008008 A KR20177008008 A KR 20177008008A KR 20170047315 A KR20170047315 A KR 20170047315A
Authority
KR
South Korea
Prior art keywords
data packet
route
node
alternate
routes
Prior art date
Application number
KR1020177008008A
Other languages
Korean (ko)
Other versions
KR101897423B1 (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 KR20170047315A publication Critical patent/KR20170047315A/en
Application granted granted Critical
Publication of KR101897423B1 publication Critical patent/KR101897423B1/en

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개 이상의 루트와 관련된, 루트 비용을 포함하는, 루트 특성을 포함한다. 하드웨어 컴퓨팅 디바이스가 선택된 루트를 분석하여, 실시간 트래픽 정보에 기초하여, 선택된 루트가 데이터 패킷을 전달하기에 적합한지를 결정한다. 선택된 루트가 데이터 패킷을 전달하기에 부적합하다고 결정되면, 데이터 패킷이 라우팅 엔진으로 반환된다. 이전의 선택된 루트가 데이터 패킷을 전달하기에 부적합하면, 이전의 선택된 루트 대신에 데이터 패킷에 대한 대체 루트가 전송 테이블로부터 선택된다.In one embodiment, the method includes receiving a data packet at a routing engine of a node of the network. In order to transmit a data packet from the node to the destination of the data packet, a route is selected from the transmission table of the node. The transmission table includes the root property, which includes the root cost associated with two or more routes from the node to the destination. The hardware computing device analyzes the selected route and determines, based on the real-time traffic information, whether the selected route is suitable for delivering the data packet. If it is determined that the selected route is unsuitable for delivering the data packet, the data packet is returned to the routing engine. If the previous selected route is unsuitable for delivering the data packet, a replacement route for the data packet instead of the previously selected route is selected from the transmission table.

Figure P1020177008008
Figure P1020177008008

Description

정책 기반 네트워크들에서의 개선된 네트워크 이용{IMPROVED NETWORK UTILIZATION IN POLICY-BASED NETWORKS}[0001] IMPROVED NETWORK UTILIZATION IN POLICY-BASED NETWORKS [0002]

본 개시내용은 네트워킹에 관한 것으로, 더욱 구체적으로는, 네트워크가 동적일 수 있는 정책 기반 네트워크에서의 네트워크 이용 개선에 관한 것이다.This disclosure relates to networking, and more particularly, to improving network utilization in policy-based networks where the network may be dynamic.

소스와 목적지 사이에 다수의 경로를 갖는 정책 라우팅 네트워크는 일반적으로 그러한 다수의 경로를 이용하도록 최적화되지 않아서, 특히 토폴로지와 링크 품질이 시간에 따라 달라지는 상황에서 인위적으로 네트워크의 처리량을 줄인다. 주어진 서비스 품질(QoS) 레벨 또는 차별 서비스 코드 포인트(DSCP) 값에 대해 링크가 포화되는 경우, 적합한 대체 경로가 이용 가능할 경우에도, 추가 트래픽이 드롭(drop)된다. 데이터의 드롭에서, 중요한 정보가 손실될 수 있거나 시간에 민감한 정보(time-sensitive information)가 과도하게 지연될 수 있다. 이는 손실이나 지연이 심각한 결과를 초래할 수 있는 전술 네트워크에서 특히 중요하다.Policy routing networks with multiple paths between source and destination are typically not optimized to use such multiple paths, and artificially reduce the throughput of the network, especially in situations where topology and link quality vary over time. If the link is saturated for a given Quality of Service (QoS) level or a differentiated service code point (DSCP) value, additional traffic is dropped, even if a suitable alternate path is available. At the drop of data, important information can be lost or time-sensitive information can be over-delayed. This is especially important in tactical networks where loss or delay can have serious consequences.

종래의 네트워크 관리자는 QoS 레벨이나 DSCP 값에 기초하여 취해져야 하는 루트를 결정하는 정책 기반 관리를 위한 규칙을 갖지만, 이러한 루트가 정체되면, 데이터는 통상적으로 드롭된다.Conventional network managers have rules for policy-based management that determine which routes should be taken based on QoS level or DSCP value, but if such a route gets stuck, the data is typically dropped.

하나의 실시예에서, 방법은 네트워크의 노드의 라우팅 엔진에서 데이터 패킷을 수신하는 단계를 포함한다. 데이터 패킷을 노드로부터 데이터 패킷의 목적지로 전송하기 위해, 노드의 전송 테이블로부터 루트가 선택된다. 전송 테이블은 노드에서 목적지로의 2개 이상의 루트와 관련된, 루트 비용을 포함하는, 루트 특성을 포함한다. 컴퓨터 하드웨어 컴퓨팅 디바이스는 선택된 루트를 분석하여, 실시간 네트워크 트래픽에 기초하여, 선택된 루트가 데이터 패킷을 전달하기에 적합한지를 결정한다. 선택된 루트가 데이터 패킷을 전달하기에 부적합하다고 결정되면, 데이터 패킷이 노드의 라우팅 엔진으로 반환된다. 이전의 선택된 루트가 데이터 패킷을 전달하기에 부적합하다고 결정되면, 이전의 선택된 루트 대신에 데이터 패킷에 대한 대체 루트가 전송 테이블로부터 선택된다.In one embodiment, the method includes receiving a data packet at a routing engine of a node of the network. In order to transmit a data packet from the node to the destination of the data packet, a route is selected from the transmission table of the node. The transmission table includes the root property, which includes the root cost associated with two or more routes from the node to the destination. The computer hardware computing device analyzes the selected route to determine, based on the real-time network traffic, whether the selected route is suitable for delivering the data packet. If it is determined that the selected route is unsuitable for delivering the data packet, the data packet is returned to the node's routing engine. If it is determined that the previous selected route is unsuitable for delivering the data packet, a replacement route for the data packet is selected from the transmission table instead of the previously selected route.

다른 실시예에서, 시스템은 네트워크의 노드를 포함하며, 노드는 라우팅 엔진 및 라우팅 엔진의 아웃바운드 인터페이스와 관련된 트래픽 셰이퍼(traffic shaper)를 포함한다. 라우팅 엔진은 데이터 패킷을 수신하고; 노드의 전송 테이블로부터, 노드로부터 데이터 패킷의 목적지로 데이터 패킷을 전송하기 위한 루트를 선택하도록 구성된다. 전송 테이블은 노드에서 목적지로의 2개 이상의 루트와 관련된, 루트 비용을 포함하는, 루트 특성을 포함한다. 트래픽 셰이퍼는 하드웨어 컴퓨팅 디바이스에 의해, 선택된 루트를 분석하여, 실시간 트래픽 정보에 기초하여, 선택된 루트가 데이터 패킷을 전달하기에 적합한지를 결정하도록 구성된다. 트래픽 셰이퍼는 선택된 루트가 데이터 패킷을 전달하기에 부적합한 것으로 결정되면 데이터 패킷을 노드의 라우팅 엔진으로 반환하도록 더 구성된다. 라우팅 엔진은 이전의 선택된 루트가 데이터 패킷을 전달하기에 부적합한 것으로 결정되는 경우에 이전의 선택된 루트 대신에 데이터 패킷에 대한 대체 루트를 전송 테이블로부터 선택하도록 더 구성된다.In another embodiment, the system comprises a node of a network, the node comprising a routing engine and a traffic shaper associated with the outbound interface of the routing engine. The routing engine receiving the data packet; From the transmission table of the node, a route for transmitting the data packet from the node to the destination of the data packet. The transmission table includes the root property, which includes the root cost associated with two or more routes from the node to the destination. The traffic shaper is configured by the hardware computing device to analyze the selected route and determine, based on the real-time traffic information, whether the selected route is suitable for delivering the data packet. The traffic shaper is further configured to return the data packet to the node's routing engine if the selected route is determined to be unsuitable for delivering the data packet. The routing engine is further configured to select a substitute route for the data packet from the transmission table instead of the previously selected route if the previously selected route is determined to be unsuitable for delivering the data packet.

또 다른 실시예에서, 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 프로그램 코드를 구현한 컴퓨터 판독 가능 저장 매체를 포함한다. 컴퓨터 판독 가능 프로그램 코드는 방법을 수행하기 위해 프로세서에 의해 실행 가능하다. 방법은 네트워크의 노드의 라우팅 엔진에서 데이터 패킷을 수신하는 단계를 포함한다. 데이터 패킷을 노드로부터 데이터 패킷의 목적지로 전송하기 위해, 노드의 전송 테이블로부터 루트가 선택된다. 전송 테이블은 노드에서 목적지로의 2개 이상의 루트와 관련된, 루트 비용을 포함하는, 루트 특성을 포함한다. 컴퓨터 하드웨어 컴퓨팅 디바이스는 선택된 루트를 분석하여, 실시간 네트워크 트래픽에 기초하여, 선택된 루트가 데이터 패킷을 전달하기에 적합한지를 결정한다. 선택된 루트가 데이터 패킷을 전달하기에 부적합하다고 결정되면, 데이터 패킷이 노드의 라우팅 엔진으로 반환된다. 이전의 선택된 루트가 데이터 패킷을 전달하기에 부적합하다고 결정되면, 이전의 선택된 루트 대신에 데이터 패킷에 대한 대체 루트가 전송 테이블로부터 선택된다.In yet another embodiment, the computer program product comprises a computer readable storage medium embodying computer readable program code. The computer readable program code is executable by the processor to perform the method. The method includes receiving a data packet from a routing engine of a node of the network. In order to transmit a data packet from the node to the destination of the data packet, a route is selected from the transmission table of the node. The transmission table includes the root property, which includes the root cost associated with two or more routes from the node to the destination. The computer hardware computing device analyzes the selected route to determine, based on the real-time network traffic, whether the selected route is suitable for delivering the data packet. If it is determined that the selected route is unsuitable for delivering the data packet, the data packet is returned to the node's routing engine. If it is determined that the previous selected route is unsuitable for delivering the data packet, a replacement route for the data packet is selected from the transmission table instead of the previously selected route.

추가적인 특징 및 이점이 본 개시내용의 기술을 통해 실현된다. 본 개시내용의 다른 실시예 및 양태가 본 명세서에 상세히 설명되며 청구범위의 일부로 간주된다. 본 개시내용 및 그의 이점 및 특징의 더 나은 이해를 위해 설명과 도면을 참조한다.Additional features and advantages are realized through the teachings of the present disclosure. Other embodiments and aspects of the disclosure are described in detail herein and are considered a part of the claims. For a better understanding of the present disclosure and its advantages and features, reference is made to the description and drawings.

이제, 본 개시내용의 더 완전한 이해를 위해, 첨부된 도면 및 상세한 설명과 관련하여 취해진 다음의 간단한 설명이 참조되며, 도면에서 동일한 참조 번호는 동일한 요소를 나타낸다.
도 1은 본 개시내용의 일부 실시예에 따른 라우팅 시스템 노드의 블록도이다.
도 2는 본 개시내용의 일부 실시예에 따른 네트워크에서 데이터 패킷을 라우팅하기 위한 방법의 흐름도이다.
도 3은 본 개시내용의 일부 실시예에 따른 라우팅 시스템의 일부 또는 모든 양태를 구현하기 위한 컴퓨터 시스템의 블록도이다.
BRIEF DESCRIPTION OF THE DRAWINGS For a more complete understanding of the present disclosure, reference is now made to the following brief description taken in conjunction with the accompanying drawings and detailed description, wherein like reference numerals designate like elements.
1 is a block diagram of a routing system node in accordance with some embodiments of the present disclosure.
2 is a flow diagram of a method for routing data packets in a network in accordance with some embodiments of the present disclosure.
3 is a block diagram of a computer system for implementing some or all aspects of a routing system in accordance with some embodiments of the present disclosure.

본 라우팅 시스템의 일부 실시예에 따르면, 데이터 패킷은 정체, 즉 링크 포화 또는 다른 트래픽 셰이핑 문제로 인해 드롭되는 대신에 리라우팅될 수 있다. 일반적으로, 라우팅 시스템은 선택된 "최상의" 루트가 링크 포화 또는 기타 문제를 겪고 있다는 것을 식별하고, 데이터를 위한 하나 이상의 가능한 대체 루트를 동적으로 식별하고, 이들 대체 루트 중 적어도 하나를 이용할 수 있다. 따라서, 패킷을 드롭하는 대신에, 라우팅 시스템은 데이터 패킷의 목적지를 향하여, 아마도 상이한 그러나 호환 가능한 QoS 레벨에서 대체 루트를 동적으로 이용할 수 있다.According to some embodiments of the present routing system, data packets may be rerouted instead of being dropped due to congestion, i.e., link saturation or other traffic shaping problems. In general, the routing system can identify that the selected "best" route is experiencing link saturation or other problems, dynamically identify one or more possible alternate routes for data, and utilize at least one of these alternate routes. Thus, instead of dropping packets, the routing system can dynamically use alternative routes, perhaps at different but compatible QoS levels, towards the destination of the data packet.

라우팅 시스템은 다른 식별된 유효 루트를 이용하여, 예를 들어 원하는 목적지 주소, QoS 및 DSCP 마킹에 기초하여 그들로부터 선택할 수 있다. 그러한 대체 루트가 존재하면, 라우팅 시스템은 패킷의 드롭을 유발했을 루트 대신에 그러한 대체 루트를 따라 패킷을 전송할 수 있다. 라우팅 시스템의 다양한 실시예는 정체 또는 트래픽 셰이핑 문제의 경우에 패킷을 드롭할 필요성을 없애고, 전체 네트워크의 이용을 개선하고, 그에 따라 재전송에 대한 필요성을 감소시킬 수 있다. 본 라우팅 시스템의 실시예는 동적으로 루트를 선택할 수 있기 때문에, 그러한 실시예는 이에 따라 동적 네트워크를 더 효율적으로 이용할 수 있다.The routing system may use other identified valid routes to select from them based on, for example, the desired destination address, QoS and DSCP marking. If such an alternate route exists, the routing system may transmit the packet along such alternate route instead of the route that caused the drop of the packet. Various embodiments of the routing system may eliminate the need to drop packets in the case of congestion or traffic shaping problems, improve the utilization of the entire network, and thereby reduce the need for retransmissions. Since embodiments of the present routing system can dynamically select routes, such embodiments can thus more efficiently utilize the dynamic network.

도 1은 네트워크의 노드(110)의 적어도 일부의 블록도이며, 노드는 본 개시내용의 일부 실시예에 따른 라우팅 시스템(100)의 양태를 포함한다. 노드(110)는 라우팅 시스템(100)에 의해 관리되는 네트워크를 위한 라우팅 노드일 수 있다. 노드(110)는 도시된 것과 다른 컴포넌트를 포함할 수 있음을 알 것이다. 네트워크는, 함께 네트워크를 통해 데이터 패킷을 라우팅할 수 있는 그러한 노드들(110) 중 하나 이상을 포함할 수 있다. 도시된 바와 같이, 노드(110)는 라우팅 엔진(120) 및 하나 이상의 네트워크 인터페이스(130)를 포함할 수 있다. 각각의 네트워크 인터페이스(130)는 하나 이상의 다운스트림 엔티티(160)(예를 들어, 가중된 페어 큐(weighed fair queue))에 접속된 트래픽 셰이퍼(140)를 포함할 수 있다. 다수의 네트워크 인터페이스(130)가 도 1에 도시되지만, 2개의 네트워크 인터페이스(130)만이 단일 노드(110)에 포함될 수도 있다. 각각의 다운스트림 엔티티(160)는 현재 노드(110)를 인접 노드(110)에 접속하는 대응하는 물리적 링크에 대한 인터페이스를 포함할 수 있다.1 is a block diagram of at least a portion of a node 110 of a network, which includes aspects of a routing system 100 in accordance with some embodiments of the present disclosure. The node 110 may be a routing node for a network managed by the routing system 100. It will be appreciated that node 110 may include other components than those shown. The network may include one or more of such nodes 110 that together can route data packets over the network. As shown, the node 110 may include a routing engine 120 and one or more network interfaces 130. Each network interface 130 may include a traffic shaper 140 connected to one or more downstream entities 160 (e.g., a weighed fair queue). Although a plurality of network interfaces 130 are shown in FIG. 1, only two network interfaces 130 may be included in a single node 110. Each downstream entity 160 may include an interface to a corresponding physical link connecting the current node 110 to the neighboring node 110. [

노드의 네트워크 인터페이스들(130) 중 하나의 네트워크 인터페이스를 통해 인접 노드로부터 노드(110)에서 데이터 패킷이 수신될 수 있으며, 그러한 경우에 상기 하나의 네트워크 인터페이스는 입구 인터페이스(entrance interface)로서 동작한다. 대조적으로, 데이터 패킷이 특정 네트워크 인터페이스(130)를 통해 노드(110)로부터 전송될 때, 그 네트워크 인터페이스(130)는 출구 인터페이스(exit interface)로서 동작한다.A data packet may be received at a node 110 from a neighboring node via one of the network interfaces 130 of the node, in which case the one network interface acts as an entrance interface. In contrast, when a data packet is transmitted from a node 110 via a particular network interface 130, the network interface 130 acts as an exit interface.

라우팅 엔진(120)은 노드(110)에서 수신된 각각의 데이터 패킷에 대한 라우팅 결정을 행할 수 있다. 더욱 구체적으로, 라우팅 엔진(120)은 전통적인 정책 결정을 통해 데이터 패킷에 가장 적합한 것으로 간주되는 루트가 정체 또는 다른 이유로 인해 데이터 패킷을 처리하기에 부적합한지를 결정할 수 있다. 그러한 경우, 라우팅 엔진(120)은 데이터 패킷에 대한 최상의 대체 루트를 선택할 수 있다.Routing engine 120 may make routing decisions for each data packet received at node 110. [ More specifically, the routing engine 120 may determine, through traditional policy decisions, whether the route deemed best fit for the data packet is unsuitable for processing the data packet due to congestion or other reasons. In such a case, the routing engine 120 may select the best alternate route for the data packet.

종래의 라우팅 기술에 따르면, 노드의 라우팅 엔진은 라우팅 엔진이 알고 있는 각각의 목적지에 대한 최상의 루트를 나타내는 전송 테이블을 유지한다. 목적지에 대한 다수의 최상의 루트가 동일한 비용을 갖거나 비용 차이가 미리 정의된 임계치 이내인 경우에 그러한 최상의 루트가 유지될 수 있다. 전송 테이블에 저장되는 데이터는 인접 노드들과의 통신을 통해 형성되며, 그러한 인접 노드들은 결국 그의 인접 노드들과 통신하고, 기타 등등이다. 따라서, 제1 노드와 목적지 사이의 다양한 노드 간의 통신을 통해, 제1 노드는 목적지에 대한 최상의 루트를 결정한다. 또한, 각각의 노드는 그의 인접 링크들(즉, 인접 노드들에 대한 접속들)을 알고 있기 때문에, 다양한 노드는 네트워크 토폴로지 변경을 서로 통신할 수 있다. 네트워크에 대한 토폴로지 변경이나 다른 변경이 새로운 최상의 루트를 도입하는 경우, 제1 노드는 결국 다른 노드와의 통신을 통해 그것을 알게 될 것이다. 이 경우, 새로운 최상의 루트는 라우팅 엔진의 전송 테이블 내의 이전의 최상의 루트를 대체할 것이다.According to conventional routing techniques, the routing engine of the node maintains a transmission table indicating the best route for each destination that the routing engine knows. Such a best route can be maintained if the plurality of best routes to the destination have the same cost or if the cost difference is within a predefined threshold. Data stored in the transmission table is formed through communication with neighboring nodes, which are eventually communicating with its neighboring nodes, and so on. Thus, through communication between the various nodes between the first node and the destination, the first node determines the best route to the destination. Also, since each node knows its neighbor links (i.e., connections to neighbor nodes), the various nodes can communicate network topology changes with each other. If a topology change or other change to the network introduces a new best route, the first node will eventually know it through communication with the other node. In this case, the new best route will replace the previous best route in the routing table of the routing engine.

종래의 시스템에서는, 최상의 루트와 함께, 라우팅 엔진은 그 루트의 비용도 유지한다. 루트 비용 계산은 일반적으로 정책에 의존한다. 예를 들어, 제1 노드에 의해 저장되는 루트의 비용은 제1 노드와 목적지 사이의 홉(즉, 노드 간의 링크)의 수일 수 있다. 종래 기술에 따르면, 전송 테이블에 유지되는 각각의 목적지에 대해, 최상의 루트(즉, 최저 비용을 갖는 루트 또는 매우 유사한 최저 비용을 갖는 루트)만이 전송 테이블에 유지된다. 다른 모든 루트는 버려지고 잊혀진다. 따라서, 종래 기술에 따르면, 특정 목적지로의 전달을 위해 데이터 패킷이 수신될 때, 라우팅 엔진은 현재 알려진 최상의 루트를 선택한다.In conventional systems, along with the best route, the routing engine also maintains the cost of that route. Root cost calculations are generally policy dependent. For example, the cost of the route stored by the first node may be the number of hops (i.e., links between nodes) between the first node and the destination. According to the prior art, only the best route (i.e., the route with the lowest cost or the route with the lowest similar cost) is kept in the transmission table for each destination maintained in the transmission table. All other routes are discarded and forgotten. Thus, according to the prior art, when a data packet is received for delivery to a particular destination, the routing engine selects the currently known best route.

본 개시내용에 따른 라우팅 시스템(100)의 일부 실시예에서, 종래 기술에서와 같이, 노드들(110)은 서로 통신할 수 있고, 각각의 노드는 전송 테이블(125)을 유지할 수 있다. 그러나, 전송 테이블(125)은 알려진 각각의 목적지에 대한 하나 이상의 루트를 유지할 수 있다. 새로운 루트가 식별될 때, 그 루트는 그 루트의 비용과 함께 전송 테이블(125)에 추가될 수 있지만, 기존의 알려진 루트는 전송 테이블(125)로부터 제거될 필요가 없다. 일부 실시예에 따르면, 최상의 루트를 처음 선택할 때, 라우팅 엔진(120)은 전송 테이블에 저장된 바와 같은, 목적지에 대해 이용 가능한 루트 중에서 현재의 최상의 루트(예를 들어, 최저 비용 루트)를 선택할 수 있다.In some embodiments of the routing system 100 according to the present disclosure, as in the prior art, the nodes 110 may communicate with each other, and each node may maintain a transmission table 125. However, the forwarding table 125 may maintain one or more routes for each known destination. When a new route is identified, the route may be added to the forwarding table 125 with the cost of that route, but existing known routes need not be removed from the forwarding table 125. According to some embodiments, when first selecting the best route, the routing engine 120 may select the current best route (e.g., the lowest cost route) among the available routes for the destination, as stored in the forwarding table .

선택된 루트에 기초하여, 라우팅 엔진(120)은 대응하는 네트워크 인터페이스(130)를 식별할 수 있다. 일부 실시예에서, 별개의 네트워크 인터페이스(130)가 현재 노드(110)로부터의 각각의 링크에 대해 사용될 수 있으며, 따라서 루트 선택은 선택된 루트의 제1 링크와 관련된 대응하는 네트워크 인터페이스를 고유하게 결정할 수 있다.Based on the selected route, the routing engine 120 may identify the corresponding network interface 130. In some embodiments, a separate network interface 130 may be used for each link from the current node 110, so that route selection can uniquely determine the corresponding network interface associated with the first link of the selected route have.

각각의 네트워크 인터페이스(130)는 트래픽 셰이퍼(140) 및 관련 다운스트림 엔티티(160)를 포함할 수 있다. 트래픽 셰이퍼(140)는 하나 이상의 트래픽 큐를 포함할 수 있다. 트래픽 셰이퍼(140)는 사용자 구성 가능 정책에 기초하여 특정 큐에 데이터 패킷을 배치할 수 있다. 한정이 아니라 예로서, 트래픽 셰이퍼(140)는 데이터 패킷 출력 레이트, 즉 레이트 제한을 유지하기 위해 트래픽 미터로서 토큰 버킷을 사용할 수 있다. 큐 상의 다양한 데이터 패킷은 결국 디큐잉될 수 있으며, 일부 경우에서는 다운스트림 엔티티(160)로 전송될 수 있다.Each network interface 130 may include a traffic shaper 140 and an associated downstream entity 160. Traffic shaper 140 may include one or more traffic queues. Traffic shaper 140 may place data packets in a particular queue based on a user configurable policy. By way of example, and not limitation, traffic shaper 140 may use a token bucket as a traffic meter to maintain a data packet output rate, i. The various data packets on the queue may eventually be dequeued and, in some cases, sent to the downstream entity 160.

패킷이 다운스트림 엔티티(160)로 전송되기 전에, 트래픽 셰이퍼(140)는 해당 네트워크 인터페이스(130)로부터 이어지는 링크에서 시작하는 선택된 루트가 데이터 패킷을 전달하기에 적합한지를 결정할 수 있다. 선택된 루트가 적합한 것으로 간주되면, 트래픽 셰이퍼(140)는 패킷을 다운스트림 엔티티(160)로 전송할 수 있다.Before a packet is sent to the downstream entity 160, the traffic shaper 140 may determine from the network interface 130 that the selected route starting at the succeeding link is suitable for delivering the data packet. If the selected route is deemed appropriate, the traffic shaper 140 may forward the packet to the downstream entity 160.

선택된 루트가 전통적인 "최상의" 루트일 때에도, 선택된 루트가 특정 데이터 패킷을 전달하는 데 적합하지 않은 상황이 있을 수 있다. 한정이 아니라 예로서, 데이터 패킷은 사용자 구성 가능 정책에 따라 프로파일(즉, 계약)을 벗어난 경우에 또는 적용 가능한 큐가 가득 찬 경우에 드롭되는 것이 필요할 수 있다. 종래 기술에 따르면, 이러한 상황에서, 데이터 패킷은 사용자 구성 가능 정책에 따라 트래픽 셰이퍼(140)에 의해 드롭되거나 버려질 것이다.Even when the selected route is the traditional "best" route, there may be a situation where the selected route is not suitable for delivering a particular data packet. By way of example, and not limitation, a data packet may need to be dropped in the event of a profile (i.e., contract) out of compliance with a user configurable policy, or when the applicable queue is full. According to the prior art, in this situation, the data packet will be dropped or discarded by the traffic shaper 140 according to the user configurable policy.

데이터 패킷을 전달하는 것에 대한 선택된 루트의 적합성에 관한 결정은 네트워크 관리자에 의해 설정되고 네트워크의 다양한 노드(110)에 의해 시행될 수 있는 기존의 정책에 의해 결정될 수 있다. 한정이 아니라 예로서, 루트는 그의 이용이 루트의 임의의 하나의 링크 상의 80% 로딩의 임계치와 같은 미리 결정된 임계치를 초과할 때의 정체로 인해; 패킷을 전송하기에 불충분한 대역폭을 가짐으로 인해; 또는 다운스트림 엔티티(160)의 대응하는 물리적 인터페이스로의 이전의 데이터 패킷의 전송과 인접 링크를 통한 그러한 데이터 패킷의 전송 사이에 수용 불가 지연(즉, 미리 결정된 임계치의 시간 프레임을 초과하는 지연)이 존재함으로 인해 부적합한 것으로 간주될 수 있다. 다른 예로, 루트는 루트의 지터가 미리 결정된 임계치를 초과하는 경우에 부적합한 것으로 간주될 수 있다.The determination of the suitability of the selected route for delivering the data packet may be determined by existing policies that may be set by the network administrator and enforced by the various nodes 110 of the network. By way of example and not of limitation, the route may be due to congestion when its utilization exceeds a predetermined threshold, such as a threshold of 80% loading on any one link of the route; Due to having insufficient bandwidth to transmit packets; (I.e., a delay exceeding a time frame of a predetermined threshold) between the transmission of a previous data packet to the corresponding physical interface of the downstream entity 160 and the transmission of such data packet over the adjacent link It can be regarded as unsuitable due to its existence. As another example, the route may be deemed unsuitable if the jitter of the route exceeds a predetermined threshold.

종래 기술에 따르면, 트래픽 셰이퍼는 현재의 네트워크 정책에 기초하여 선택된 루트를 검사 및 분석하여, 선택된 루트가 데이터 패킷을 전달하는 데 현재 적합한지(예를 들어, 데이터 패킷이 프로파일 내에 있는지)를 결정한다. 선택된 루트가 데이터 패킷에 대해 적합하다고 간주되면, 트래픽 셰이퍼는 데이터 패킷을 다운스트림 엔티티(160)의 물리적 인터페이스로 전송할 수 있다. 이어서, 물리적 인터페이스는 선택된 루트에 대응하는 인접 링크를 따라 데이터 패킷을 전송할 수 있다. 선택된 루트가 적합하지 않은 경우, 종래 기술에 따라, 데이터 패킷은 통상적으로 큐잉, 재분류 또는 드롭될 것이다.According to the prior art, the traffic shaper examines and analyzes the selected route based on the current network policy to determine whether the selected route is currently suitable for delivering the data packet (e.g., whether the data packet is in the profile) . If the selected route is deemed appropriate for the data packet, the traffic shaper may forward the data packet to the physical interface of the downstream entity 160. The physical interface may then transmit the data packet along a neighbor link corresponding to the selected route. If the selected route is not suitable, according to the prior art, the data packet will typically be queued, reclassified or dropped.

본 개시내용의 일부 실시예는 종래 기술에 기초한다. 일부 실시예에 따르면, 트래픽 셰이퍼(140)는 선택된 루트의 부적합으로 인해 데이터 패킷을 드롭할 필요가 없다. 오히려, 그러한 경우, 트래픽 셰이퍼(140)는 데이터 패킷을 라우팅 엔진(120)에 반환할 수 있다. 이어서, 라우팅 엔진(120)은 데이터 패킷을 그의 목적지로 전송하기 위한 최상의 대체 루트를 결정할 수 있다. 이를 위해, 라우팅 엔진(120)은 데이터 패킷에 대한 하나 이상의 대체 루트를 식별할 수 있다. 이들 대체 루트는 전술한 바와 같은 전송 테이블(125)에 이미 저장되었을 수 있다. 일부 실시예에서, 식별된 대체 루트는 현재 노드(110)로부터 목적지까지 이어지는 모든 이전에 발견된 루트를 포함할 수 있는데, 이는 그러한 루트가 새로운 최상의 루트의 식별시에 드롭될 필요가 없었기 때문이다.Some embodiments of the present disclosure are based on the prior art. According to some embodiments, the traffic shaper 140 does not need to drop the data packet due to non-compliance of the selected route. Rather, in such a case, the traffic shaper 140 may return the data packet to the routing engine 120. The routing engine 120 may then determine the best alternative route for sending the data packet to its destination. To this end, the routing engine 120 may identify one or more alternate routes for data packets. These alternative routes may have already been stored in the transmission table 125 as described above. In some embodiments, the identified alternate route may include all previously discovered routes from the current node 110 to the destination, since such a route did not have to be dropped at the time of identifying the new best route.

일부 실시예에 따르면, 라우팅 엔진(120)은 그의 전송 테이블(125) 안에 각각의 알려진 목적지를 향하는 복수의 대체 루트를 유지할 수 있다. 라우팅 엔진(120)은 또한 대체 루트에 관한 다양한 루트 데이터를 유지할 수 있으며, 데이터는 각각의 루트 특성을 포함할 수 있고, 전술한 바와 같은 네트워크의 다양한 노드 간의 통신을 통해 생성 및 유지될 수 있다. 루트 데이터는 예를 들어 QoS, 대역폭, 레이턴시, 홉 카운트 및 지터와 같은 다양한 인자에 기초하여 계산될 수 있는 다양한 대체 루트의 루트 비용을 포함할 수 있다.According to some embodiments, the routing engine 120 may maintain a plurality of alternative routes to each known destination in its transmission table 125. [ The routing engine 120 may also maintain various route data for alternate routes, the data may include respective route characteristics, and may be generated and maintained through communication between the various nodes of the network as described above. Route data may include the root cost of various alternative routes that may be calculated based on various factors such as, for example, QoS, bandwidth, latency, hop count and jitter.

이전에 선택된 루트가 데이터 패킷에 부적합한 것으로 간주되었고, 그러한 데이터 패킷이 라우팅 엔진(120)으로 반환된 후에, 라우팅 엔진(120)은 루트 데이터를 이용하여 최상의 대체 루트를 선택할 수 있다. 어떤 루트를 최상의 대체 루트로서 선택할지에 대한 결정은 대체 루트의 다양한 트래픽 특성을 고려할 수 있는 다양한 선택 알고리즘의 사용을 통해 이루어질 수 있다. 한정이 아니라 예로서, 사용되는 선택 알고리즘은 QoS 인식 알고리즘일 수 있으며, 루트 비용에 기여하고 루트 데이터로부터 획득될 수 있는 QoS, DSCP 마킹, 대역폭, 레이턴시, 홉 카운트 및 지터 중 하나 이상의 조합을 고려할 수 있다. 일부 실시예에서, 선택 알고리즘은 또한 데이터 패킷이 전송되고 있는 애플리케이션을 고려할 수 있다. 예를 들어, VoIP 애플리케이션은 아마도 웹 브라우징을 위해 수용할 수 있는 것보다 더 낮은 정도의 지터를 요구할 것이다. 따라서 VoIP 패킷의 경우, 최상의 대체 루트는 지터 임계치 미만인 것이 요구될 수 있다. 다른 예에서, 선택 알고리즘은 가장 높은 대역폭을 갖는 루트를 단순히 선택할 수 있거나, 라운드 로빈 접근법을 사용하여 데이터 패킷을 목적지를 향하는 다양한 대체 루트에 할당할 수 있다. 다양한 선택 알고리즘이 전송 테이블(125) 내의 이용 가능한 대체 루트 중에서 최상의 대체 루트를 선택하는 데 사용될 수 있다는 것을 이해할 것이다.After the previously selected route is deemed unsuitable for the data packet and such data packet is returned to the routing engine 120, the routing engine 120 may use the route data to select the best alternative route. The decision as to which route to choose as the best alternate route can be made through the use of various selection algorithms that can take into account the various traffic characteristics of the alternate route. As an example and not by way of limitation, the selection algorithm used may be a QoS aware algorithm and may consider a combination of at least one of QoS, DSCP marking, bandwidth, latency, hop count and jitter that contribute to the root cost and can be obtained from the root data have. In some embodiments, the selection algorithm may also consider an application in which a data packet is being transmitted. For example, a VoIP application will likely require a lower jitter than can be accommodated for web browsing. Thus, for VoIP packets, the best alternative route may be required to be below the jitter threshold. In another example, the selection algorithm may simply select the route with the highest bandwidth, or may use a round robin approach to assign the data packet to various alternate routes to the destination. It will be appreciated that various selection algorithms may be used to select the best alternate route among the available alternate routes in the forwarding table 125.

일부 예에서, 최상의 대체 루트를 선택하는 것은 기존 네트워크 정책에 반할 수 있거나, 그것을 적어도 완화할 수 있다. 예를 들어, 네트워크 정책은 소정 애플리케이션에 대한 데이터 패킷이 적어도 사전 결정된 QoS 또는 다른 원하는 특성을 갖는 루트를 따라 전송될 것을 요구할 수 있다. 그러나, 그러한 요구는 정당한 패킷이 처음 선택된 최상의 루트의 부적합으로 인해 드롭될 때 이롭기보다는 해로울 수 있다. 일부 실시예에 따르면, 그러한 데이터 패킷은 대신에 약간 더 낮은 QoS를 갖는 루트를 따라 전송될 수 있으며, 이는 데이터 패킷을 드롭하는 것보다 더 나은 결과를 산출할 수 있다. 따라서, 최상의 대체 루트를 선택하면 데이터 패킷을 드롭하는 것보다 나은 결과를 유도할 수 있다. 전통적으로 정체가 큐잉된 데이터의 드롭을 요구할 때 이를 행하는 대신에, 라우팅 시스템(100)은 데이터 패킷을 적응시켜 이를 다른 상이한 루트에 의해 전송할 수 있다.In some instances, choosing the best alternate route may be against, or at least mitigate, existing network policies. For example, a network policy may require that a data packet for a given application be transmitted along a route having at least a predetermined QoS or other desired characteristics. However, such a request may be harmful rather than beneficial when a legitimate packet is dropped due to the incompatibility of the first best route selected. According to some embodiments, such a data packet may instead be transmitted along a route with slightly lower QoS, which may yield a better result than dropping the data packet. Therefore, choosing the best alternate route can lead to better results than dropping the data packet. Instead of doing this when the congestion traditionally requires dropping of queued data, the routing system 100 may adapt the data packet and transmit it by another different route.

일부 실시예에서, 라우팅 엔진(120)은 예를 들어, 데이터 패킷 자체 내에 있거나 라우팅 엔진(120)에 저장된 메타데이터를 유지할 수 있으며, 메타데이터는 해당 데이터 패킷에 대해 어느 네트워크 인터페이스(130)가 이미 시도되었는지를 지시한다. 데이터 패킷을 선택된 루트의 네트워크 인터페이스(130)로 전송하기 전에, 라우팅 엔진(120)은 데이터 패킷과 관련된 메타데이터를 검사하여 대응하는 네트워크 인터페이스(130)가 이전에 데이터 패킷에 대해 시도되지 않았음을 확인할 수 있다. 선택된 루트에 대한 네트워크 인터페이스(130)가 이미 그러한 메타데이터 내에 나열되어 있다면, 라우팅 엔진(120)은 이전에 선택되어 이미 시도된 것으로 결정된 루트를 제외하고, 데이터 패킷에 대해 다른 최상의 대체 루트를 선택할 수 있다. 또한, 데이터 패킷은 네트워크 인터페이스들(130) 중 하나의 네트워크 인터페이스를 통해 노드에서 수신되었을 것이며, 이 경우에 상기 하나의 네트워크 인터페이스는 입구 인터페이스로서 거동하였다. 루트 루핑(route looping)을 방지하기 위해, 일부 실시예에서, 라우팅 엔진(120)은 데이터 패킷에 대한 발신 네트워크 인터페이스(130)로서 입구 인터페이스를 선택하는 것을 피할 수 있다. 일부 실시예에서, 선택된 루트에 대한 네트워크 인터페이스(130)로 데이터 패킷을 전송할 때, 라우팅 엔진(120)은 네트워크 인터페이스(130)가 데이터 패킷에 대해 시도되었음을 나타내기 위해 데이터 패킷의 관련 메타데이터를 수정할 수 있다.In some embodiments, the routing engine 120 may maintain, for example, the metadata stored in the data packet itself or in the routing engine 120, and the metadata may indicate which network interface 130 Indicates if it has been attempted. Before sending the data packet to the network interface 130 of the selected route, the routing engine 120 examines the metadata associated with the data packet to determine that the corresponding network interface 130 has not previously been attempted for the data packet Can be confirmed. If the network interface 130 for the selected route is already listed in such metadata, the routing engine 120 may select another best alternative route for the data packet, except for the route previously selected and determined to have already been attempted have. Also, the data packet would have been received at the node via one of the network interfaces 130, in which case the one network interface behaved as the ingress interface. To prevent route looping, in some embodiments, the routing engine 120 may avoid selecting the ingress interface as the originating network interface 130 for the data packet. In some embodiments, when transmitting a data packet to the network interface 130 for the selected route, the routing engine 120 may modify the associated metadata of the data packet to indicate that the network interface 130 has been attempted for the data packet .

(처음에 선택된 최상의 루트 또는 라우팅 엔진(120)으로의 반환 후에 선택된 최상의 대체 루트일 수 있는) 선택된 루트가 데이터 패킷에 대해 적합한 것으로 간주되면, 트래픽 셰이퍼(140)는 데이터 패킷을 다운스트림 엔티티(160)로 전송할 수 있다. 이어서, 다운스트림 엔티티(160)의 물리적 인터페이스는 선택된 루트에 대응하는 인접 링크를 따라 데이터 패킷을 전송할 수 있다. 그러나, 선택된 루트가 부적합한 것으로 간주되면, 트래픽 셰이퍼(140)는 (라우팅 엔진(120)이 아직 이 작업을 수행하지 않았다면) 이 네트워크 인터페이스(130)가 이미 시도되었음을 나타내기 위해 데이터 패킷의 관련 메타데이터를 수정할 수 있고, 이어서 데이터 패킷을 라우팅 엔진(120)에 반환할 수 있다. 이어서, 라우팅 엔진(120)은 전술한 바와 같이 데이터 패킷에 대한 새로운 최상의 대체 루트를 선택할 수 있다.If the selected route is considered appropriate for the data packet (which may be the best selected route that was initially selected or the best alternative route selected after return to the routing engine 120), the traffic shaper 140 sends the data packet to the downstream entity 160 ). The physical interface of the downstream entity 160 may then transmit data packets along a neighbor link corresponding to the selected route. However, if the selected route is deemed to be inadequate, the traffic shaper 140 sends the associated metadata of the data packet 130 to indicate that this network interface 130 has already been attempted (unless the routing engine 120 has already done this) And then return the data packet to the routing engine 120. [ The routing engine 120 may then select a new best alternative route for the data packet, as described above.

대안적으로, 일부 실시예에서, 선택된 루트가 적합하지 않을 때, 트래픽 셰이퍼(140)가 종료 조건이 충족되었다고 결정하면, 트래픽 셰이퍼(140)는 데이터 패킷을 드롭할 수 있다. 한정이 아니라 예로서, 트래픽 셰이퍼(140)가 데이터 패킷의 관련 메타데이터에 기초하여 데이터 패킷이 이전의 시도에서 또는 사전 결정된 수의 이전의 시도에서 리라우팅을 위해 이미 라우팅 엔진(120)에 반환된 것으로 결정하는 경우에, 트래픽 셰이퍼(140)는 라우팅 엔진(120)으로 데이터 패킷을 반환하는 대신 드롭할 수 있다.Alternatively, in some embodiments, when the selected route is not suitable, the traffic shaper 140 may drop the data packet if the traffic shaper 140 determines that the termination condition is met. By way of example, and not limitation, traffic shaper 140 may determine that a data packet has been returned to routing engine 120 for re-routing in a previous attempt or a predetermined number of prior attempts based on the associated metadata of the data packet The traffic shaper 140 may drop the data packet instead of returning it to the routing engine 120. [

도 2는 본 개시내용의 일부 실시예에 따른 네트워크를 통해 데이터 패킷을 라우팅하는 방법(200)의 흐름도이다. 도시된 바와 같이, 블록 210에서, 데이터 패킷이 노드(110)에서 수신될 수 있다. 블록 220에서, 루트가 데이터 패킷에 대해 선택될 수 있고, 루트는 전송 테이블(125)로부터 선택된다. 루트가 결정되면, 데이터 패킷은 선택된 루트에 대응하는 네트워크 인터페이스(130)로 전송된다. 결정 블록 230에서, 선택된 루트의 네트워크 인터페이스(130)가 데이터 패킷에 적합한지를 결정할 수 있다. 선택된 루트가 적합한 것으로 간주되면, 블록 240에서 데이터 패킷은 다운스트림 엔티티(160)로 전송된다.2 is a flow diagram of a method 200 of routing data packets over a network in accordance with some embodiments of the present disclosure. As shown, at block 210, a data packet may be received at node 110. [ At block 220, a route may be selected for the data packet and a route is selected from the transmission table 125. Once the route is determined, the data packet is transmitted to the network interface 130 corresponding to the selected route. At decision block 230, the network interface 130 of the selected route may determine whether it is appropriate for the data packet. If the selected route is deemed appropriate, then at block 240 the data packet is forwarded to the downstream entity 160.

결정 블록 230에서 선택된 루트가 데이터 패킷에 부적합한 것으로 간주되면, 결정 블록 250에서 대체 루트가 이용 가능하지 않거나 미리 결정된 종료 조건이 충족되었는지를 결정한다. 결정 블록 250에서 대체 루트가 이용 가능하지 않거나 미리 결정된 종료 조건이 충족되면, 데이터 패킷은 블록 280에서 드롭된다. 그렇지 않으면, 데이터 패킷은 라우팅 엔진(120)으로 반환된다. 블록 270에서, 대체 루트가 전송 테이블(125) 내의 이용 가능한 대체 루트 중에서 선택될 수 있다. 이어서, 방법(200)은 결정 블록 230으로 복귀하여, 선택된 대체 루트의 네트워크 인터페이스(130)가 데이터 패킷에 적합한지를 결정한다. 블록 230 내지 270은 적합한 대체 루트가 발견될 때까지 또는 데이터 패킷이 드롭될 때까지 반복될 수 있다.If the route selected at decision block 230 is deemed unsuitable for the data packet, decision block 250 determines if a replacement route is not available or a predetermined end condition is met. If a replacement route is not available at decision block 250, or if a predetermined end condition is met, the data packet is dropped at block 280. Otherwise, the data packet is returned to the routing engine 120. At block 270, a replacement route may be selected from the available alternate routes in the transmission table 125. The method 200 then returns to decision block 230 to determine if the network interface 130 of the selected alternate route is suitable for the data packet. Blocks 230 through 270 may be repeated until a suitable alternate route is found or until a data packet is dropped.

상기 방법(200)은 단지 예시 목적으로 제공된다는 것을 이해할 것이다. 이 방법(200)은 구현에 기초하여 수정될 수 있거나, 본 개시내용의 다른 실시예에 따라 다른 방법이 사용될 수 있다.It will be appreciated that the method 200 is provided for illustrative purposes only. The method 200 may be modified based on an implementation, or other methods may be used in accordance with other embodiments of the present disclosure.

따라서, 오버로딩된 링크로의 트래픽이 충분히 이용되지 않는 링크로 오프로딩될 수 있기 때문에, 본 라우팅 시스템(100)의 일부 실시예는 네트워크의 대역폭의 더 나은 이용을 가능하게 한다. 그 결과, 라우팅 시스템(100)은 종래의 라우팅 기술에 비해 데이터를 드롭해야 할 필요성을 감소시킬 수 있다. 또한, 라우팅 시스템(100)은 라우팅 프로토콜이 수렴되기 전에 토폴로지 변경에 반응할 수 있다. 예를 들어, 토폴로지 변경 전에 주요 링크가 저하됨에 따라, 대체 링크가 자동으로 더 많은 트래픽을 전달하기 시작할 수 있다.Thus, some embodiments of the present routing system 100 enable better utilization of the bandwidth of the network, since traffic to the overloaded link can be offloaded to a link that is not fully utilized. As a result, the routing system 100 may reduce the need to drop data compared to conventional routing techniques. In addition, the routing system 100 may respond to topology changes before the routing protocol converges. For example, as the primary link degrades before the topology change, the alternate link can automatically begin to deliver more traffic.

라우팅 시스템(100)의 일부 실시예는 컴퓨터 시스템 또는 컴퓨터 하드웨어에 의해 전체적으로 또는 부분적으로 구현될 수 있다. 한정이 아니라 예로서, 라우팅 시스템은 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적 회로(ASIC) 또는 맞춤형 논리에 의해 구현될 수 있다. 다른 예에서, 도 3은 일부 실시예에 따른 라우팅 시스템(100) 또는 방법(200)을 구현하는 데 사용하기 위한 컴퓨터 시스템(300)의 블록도를 도시한다. 본 명세서에서 설명되는 라우팅 시스템(100) 및 방법(200)은 하드웨어, 소프트웨어(예를 들어, 펌웨어) 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 라우팅 시스템(100)의 하나 이상의 노드(110)는 도 3에 도시된 것과 같은 컴퓨터 시스템(300)으로 구현될 수 있다.Some embodiments of the routing system 100 may be implemented in whole or in part by a computer system or computer hardware. By way of example, and not limitation, a routing system may be implemented by a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or custom logic. 3 illustrates a block diagram of a computer system 300 for use in implementing routing system 100 or method 200 in accordance with some embodiments. The routing system 100 and method 200 described herein may be implemented in hardware, software (e.g., firmware), or a combination thereof. For example, one or more nodes 110 of routing system 100 may be implemented in computer system 300 as shown in FIG.

예시적인 실시예에서, 설명된 방법은 하드웨어로 적어도 부분적으로 구현될 수 있으며, 개인용 컴퓨터, 워크스테이션, 미니 컴퓨터 또는 메인프레임 컴퓨터와 같은 특수 또는 범용 컴퓨터 시스템(300)의 마이크로프로세서의 일부일 수 있다.In the exemplary embodiment, the described methods may be implemented at least partially in hardware and may be part of a microprocessor of a special or general purpose computer system 300, such as a personal computer, workstation, minicomputer, or mainframe computer.

예시적인 실시예에서, 도 3에 도시된 바와 같이, 컴퓨터 시스템(300)은 프로세서(305), 메모리 제어기(315)에 결합된 메모리(310), 및 로컬 I/O 제어기(335)를 통해 통신 가능하게 결합되는 주변 장치와 같은 하나 이상의 입력 디바이스(345) 및/또는 출력 디바이스(340)를 포함한다. 이들 디바이스(340 및 345)는 예를 들어 프린터, 스캐너, 마이크로폰 등을 포함할 수 있다. 종래의 키보드(350) 및 마우스(355)는 I/O 제어기(335)에 결합될 수 있다. 예를 들어 I/O 제어기(335)는 본 기술분야에 공지된 바와 같이 하나 이상의 버스 또는 다른 유선 또는 무선 접속일 수 있다. I/O 제어기(335)는 통신을 가능하게 하기 위해 제어기, 버퍼(캐시), 드라이버, 중계기 및 수신기와 같은 추가 요소를 가질 수 있으며, 이들은 간소화를 위해 생략된다.3, the computer system 300 includes a processor 305, a memory 310 coupled to the memory controller 315, and a local I / O controller 335 for communicating < RTI ID = One or more input devices 345 and / or output devices 340, such as peripheral devices, possibly coupled. These devices 340 and 345 may include, for example, a printer, a scanner, a microphone, and the like. The conventional keyboard 350 and the mouse 355 may be coupled to the I / O controller 335. For example, I / O controller 335 may be one or more buses or other wired or wireless connections as is known in the art. I / O controller 335 may have additional components such as a controller, a buffer (cache), a driver, a repeater and a receiver to enable communication, which are omitted for simplicity.

I/O 디바이스(340, 345)는 입력 및 출력 양자를 통신하는 디바이스, 예를 들어, 디스크 및 테이프 저장소, (다른 파일, 장치, 시스템 또는 네트워크에 액세스하기 위한) 네트워크 인터페이스 카드(NIC) 또는 변조기/복조기, 무선 주파수(RF) 또는 다른 송수신기, 전화 인터페이스, 브리지, 라우터 등을 더 포함할 수 있다.The I / O devices 340 and 345 may be devices that communicate both input and output, such as disk and tape storage, network interface cards (NICs) (for accessing other files, devices, systems or networks) / Demodulator, radio frequency (RF) or other transceiver, telephone interface, bridge, router, and the like.

프로세서(305)는 하드웨어 명령어 또는 소프트웨어, 특히 메모리(310)에 저장된 것을 실행하기 위한 하드웨어 디바이스이다. 프로세서(305)는 임의의 맞춤형 또는 상용 프로세서, 중앙 처리 유닛(CPU), 컴퓨터 시스템(300)과 관련된 여러 프로세서 중의 보조 프로세서, (마이크로칩 또는 칩셋 형태의) 반도체 기반 마이크로프로세서, 매크로프로세서, 또는 명령어를 실행하기 위한 다른 디바이스일 수 있다. 프로세서(305)는 실행 가능 명령어 인출을 가속화하기 위한 명령어 캐시, 데이터 인출 및 저장을 가속화하기 위한 데이터 캐시, 및 실행 가능 명령어 및 데이터 양자에 대한 가상/물리 어드레스 변환을 가속화하는 데 사용되는 변환 색인 버퍼(TLB)를 포함할 수 있지만 이에 한정되지 않는 캐시(370)를 포함한다. 캐시(370)는 더 많은 캐시 레벨(L1, L2 등)의 계층 구조로 구성될 수 있다.Processor 305 is a hardware device for executing hardware instructions or software, particularly those stored in memory 310. Processor 305 may be any of a variety of processors associated with a custom or commercial processor, a central processing unit (CPU), computer system 300, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macro processor, Lt; / RTI > The processor 305 may be implemented with a processor, such as an instruction cache for accelerating executable instruction fetch, a data cache for accelerating data fetch and storage, and a translation lookaside buffer 302 for use in accelerating virtual / physical address translations for both executable instructions and data. And a cache 370 that may include, but is not limited to, a TLB. The cache 370 may be configured with a hierarchical structure of more cache levels (L1, L2, etc.).

메모리(310)는 휘발성 메모리 요소(예를 들어, 랜덤 액세스 메모리(RAM), 예로서 DRAM, SRAM, SDRAM 등)와 비휘발성 메모리 요소(예를 들어, ROM, 소거 및 프로그래밍 가능 판독 전용 메모리(EPROM), 전기적 소거 및 프로그래밍 가능 판독 전용 메모리(EEPROM), 프로그래밍 가능 판독 전용 메모리(PROM), 테이프, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 디스크, 디스켓, 카트리지, 카세트 등) 중 어느 하나 또는 이들의 조합을 포함할 수 있다. 또한, 메모리(310)는 전자, 자기, 광학 또는 다른 유형의 저장 매체를 포함할 수 있다. 메모리(310)는 분산 아키텍처를 가질 수 있으며, 이러한 아키텍처에서는 다양한 컴포넌트가 서로 떨어져 위치하지만 프로세서(305)에 의해 액세스될 수 있음에 유의한다.The memory 310 may include volatile memory elements (e.g., random access memory (RAM), such as DRAM, SRAM, SDRAM, etc.) and non-volatile memory elements (e.g., ROM, erasable and programmable read- ), Electrically erasable and programmable read only memory (EEPROM), programmable read only memory (PROM), tape, compact disk read only memory (CD ROM), disk, diskette, cartridge, cassette, As shown in FIG. The memory 310 may also include electronic, magnetic, optical or other types of storage media. It is noted that memory 310 may have a distributed architecture in which various components may be located apart from one another but accessed by processor 305. [

메모리(310) 내의 명령어는 하나 이상의 개별 프로그램을 포함할 수 있으며, 이들 각각은 논리적 기능을 구현하기 위한 실행 가능 명령어의 순서화된 리스트를 포함한다. 도 3의 예에서, 메모리(310) 내의 명령어는 적절한 운영 체제(OS)(311)를 포함한다. 운영 체제(311)는 본질적으로 다른 컴퓨터 프로그램의 실행을 제어할 수 있고, 스케줄링, 입출력 제어, 파일 및 데이터 관리, 메모리 관리, 및 통신 제어 및 관련 서비스를 제공한다.The instructions in memory 310 may include one or more individual programs, each of which includes an ordered list of executable instructions for implementing the logical function. In the example of FIG. 3, the instructions in memory 310 include an appropriate operating system (OS) 311. Operating system 311 is essentially capable of controlling the execution of other computer programs and provides scheduling, input / output control, file and data management, memory management, and communication control and related services.

예를 들어 프로세서(305)에 대한 명령어 또는 다른 검색 가능한 정보를 포함하는 추가 데이터가 하드 디스크 드라이브 또는 솔리드 스테이트 드라이브와 같은 저장 디바이스일 수 있는 저장소(320)에 저장될 수 있다. 메모리(310) 또는 저장소(320) 내의 저장된 명령어는 프로세서가 본 개시내용의 라우팅 시스템(100) 및 방법(200)의 하나 이상의 양태를 실행할 수 있게 하는 명령어를 포함할 수 있다.Additional data including, for example, instructions for processor 305 or other searchable information may be stored in storage 320, which may be a hard disk drive or a storage device such as a solid state drive. The stored instructions in memory 310 or storage 320 may include instructions that enable a processor to execute one or more aspects of routing system 100 and method 200 of the present disclosure.

컴퓨터 시스템(300)은 디스플레이(330)에 결합된 디스플레이 제어기(325)를 더 포함할 수 있다. 예시적인 실시예에서, 컴퓨터 시스템(300)은 네트워크(365)에 결합하기 위한 네트워크 인터페이스(360)를 더 포함할 수 있다. 네트워크(365)는 광대역 접속을 통해 컴퓨터 시스템(300)과 임의의 외부 서버, 클라이언트 등 사이에서 통신하기 위한 IP 기반 네트워크일 수 있다. 네트워크(365)는 컴퓨터 시스템(300)과 외부 시스템 사이에서 데이터를 송신 및 수신한다. 예시적인 실시예에서, 네트워크(365)는 서비스 제공자에 의해 관리되는 관리형 IP 네트워크일 수 있다. 네트워크(365)는 예를 들어 Wi-Fi, WiMAX 등과 같은 무선 프로토콜 및 기술을 이용하여 무선 방식으로 구현될 수 있다. 네트워크(365)는 근거리 네트워크, 광역 네트워크, 도시 영역 네트워크, 인터넷 또는 기타 유사한 유형의 네트워크 환경과 같은 패킷 교환 네트워크일 수도 있다. 네트워크(365)는 고정 무선 네트워크, 무선 근거리 네트워크(LAN), 무선 광역 네트워크(WAN), 개인 영역 네트워크(PAN), 가상 비공개 네트워크(VPN), 인트라넷 또는 다른 적절한 네트워크 시스템일 수 있거나, 신호를 송수신하기 위한 장비를 포함할 수 있다.The computer system 300 may further include a display controller 325 coupled to the display 330. In an exemplary embodiment, the computer system 300 may further comprise a network interface 360 for coupling to the network 365. [ Network 365 may be an IP-based network for communicating between computer system 300 and any external server, client, etc., over a broadband connection. The network 365 transmits and receives data between the computer system 300 and the external system. In an exemplary embodiment, network 365 may be a managed IP network managed by a service provider. The network 365 may be implemented in a wireless manner using wireless protocols and technologies such as, for example, Wi-Fi, WiMAX, and the like. The network 365 may be a packet-switched network, such as a local area network, a wide area network, an urban area network, the Internet or other similar types of network environments. The network 365 may be a fixed wireless network, a wireless local area network (LAN), a wireless wide area network (WAN), a personal area network (PAN), a virtual private network (VPN), an intranet, And the like.

본 개시내용에 따른 라우팅 시스템(100) 및 방법(200)은 전체 또는 일부가 컴퓨터 프로그램 제품 또는 도 3에 도시된 것과 같은 컴퓨터 시스템(300)에서 구현될 수 있다.The routing system 100 and method 200 in accordance with the present disclosure may be implemented in whole or in part in a computer program product or in a computer system 300 such as that shown in FIG.

아래의 청구범위 내의 모든 수단 또는 단계 플러스 기능 요소의 대응하는 구조, 재료, 동작 및 균등물은 구체적으로 청구되는 바와 같은 다른 청구 요소와 조합하여 기능을 수행하기 위한 임의의 구조, 재료 또는 동작을 포함하는 것을 의도한다. 본 명세서의 설명은 예시의 목적으로 제공되었지만, 총망라하는 것으로 또는 구체적으로 설명된 실시예로 한정되는 것으로 의도되지 않는다. 본 개시내용의 범위 및 사상을 벗어나지 않으면서 많은 수정 및 변경이 본 기술분야의 통상의 기술자에게 명백할 것이다. 실시예는 다양한 실시예의 원리 및 실제 응용을 가장 잘 설명하기 위해 그리고 본 기술분야의 통상의 다른 기술자가 고려되는 특정 용도에 적합한 바와 같은 다양한 수정을 갖는 다양한 실시예를 이해하는 것을 가능하게 하기 위해 선택 및 설명되었다.The corresponding structures, materials, operations, and equivalents of all means or step-plus functional elements in the claims below include any structure, material, or action for performing a function in combination with other claimed elements, as specifically claimed It is intended to do. Although the description herein is provided for illustrative purposes, it is not intended to be exhaustive or to limit the embodiments specifically described. Many modifications and variations will become apparent to those skilled in the art without departing from the scope and spirit of the present disclosure. The embodiments are chosen and described in order to best explain the principles and practical applications of various embodiments and to enable others of ordinary skill in the art to understand various embodiments having various modifications as are suited to the particular use contemplated And described.

일부 실시예가 설명되었지만, 본 기술분야의 기술자는 현재뿐만 아니라 미래에도 후술하는 청구범위의 범위에 속하는 다양한 개선 및 향상을 행할 수 있음을 이해할 것이다. 이러한 청구범위는 본 개시내용에 대한 적절한 보호를 유지하는 것으로 해석되어야 한다.Although some embodiments have been described, it will be appreciated by those skilled in the art that various improvements and enhancements may be made within the scope of the claims which follow, both now and in the future. Such claims should be construed as maintaining adequate protection to the present disclosure.

Claims (20)

방법으로서,
네트워크의 노드의 라우팅 엔진(routing engine)에서 데이터 패킷을 수신하는 단계;
상기 노드의 전송 테이블(forwarding table)로부터, 상기 노드로부터 상기 데이터 패킷의 목적지로 상기 데이터 패킷을 전송하기 위한 루트(route)를 선택하는 단계 - 상기 전송 테이블은 상기 노드로부터 상기 목적지로의 2개 이상의 루트와 관련된, 루트 비용들(route costs)을 포함하는, 루트 특성들(route characteristics)을 포함함 -;
하드웨어 컴퓨팅 디바이스에 의해, 실시간 트래픽 정보에 기초하여, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계;
상기 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 데이터 패킷을 상기 노드의 상기 라우팅 엔진으로 반환하는 단계; 및
이전의 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 이전의 선택된 루트 대신에 상기 데이터 패킷에 대한 대체 루트를 상기 전송 테이블로부터 선택하는 단계
를 포함하는, 방법.
As a method,
Receiving a data packet at a routing engine of a node of the network;
Selecting a route from the node's forwarding table to transmit the data packet from the node to a destination of the data packet, the transmission table comprising at least two Comprising route characteristics, including route costs, associated with the route;
Analyzing the selected route by the hardware computing device to determine if the selected route is suitable for delivering the data packet based on real-time traffic information;
Returning the data packet to the routing engine of the node if the selected route is determined to be unsuitable for delivering the data packet; And
Selecting a replacement route for the data packet instead of the previous selected route from the transmission table if a previous selected route is determined to be unsuitable for delivering the data packet;
/ RTI >
제1항에 있어서,
상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주될 때까지, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계 및 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 선택하는 단계를 반복하는 단계; 및
상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주된 후에 상기 선택된 대체 루트를 따라 상기 데이터 패킷을 전송하는 단계
를 더 포함하는, 방법.
The method according to claim 1,
Analyzing the selected route to determine whether the selected route is suitable for conveying the data packet until the selected alternate route is deemed suitable for conveying the data packet, Repeating the step of selecting a replacement route for the data packet; And
Transmitting the data packet along the selected alternate route after the selected alternate route is deemed suitable for carrying the data packet
≪ / RTI >
제1항에 있어서,
종료 조건이 충족될 때까지, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계 및 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 선택하는 단계를 반복하는 단계; 및
상기 종료 조건이 충족된 후에 상기 데이터 패킷을 드롭(drop)하는 단계
를 더 포함하는, 방법.
The method according to claim 1,
Analyzing the selected route to determine whether the selected route is suitable for delivering the data packet until a termination condition is met and selecting an alternate route for the data packet instead of the previous selected route Repeating; And
Dropping said data packet after said termination condition is met
≪ / RTI >
제1항에 있어서, 상기 데이터 패킷과 관련된 메타데이터를 유지하는 단계를 더 포함하고, 상기 메타데이터는 상기 노드로부터 상기 목적지로의 어느 루트들이 상기 데이터 패킷을 전달하기 위한 적합성(suitability)에 대해 분석되었는지를 나타내는, 방법.2. The method of claim 1, further comprising maintaining metadata associated with the data packet, wherein the metadata includes information about which routes from the node to the destination are analyzed for suitability to deliver the data packet Lt; / RTI > 제1항에 있어서, 상기 데이터 패킷에 대한 상기 선택된 대체 루트를 선택하는 단계는
상기 전송 테이블에서, 상기 노드로부터 상기 목적지로의 2개 이상의 대체 루트를 식별하는 단계;
상기 2개 이상의 대체 루트의 상기 루트 특성들을 비교하는 단계; 및
상기 루트 특성들에 적어도 부분적으로 기초하여 상기 2개 이상의 대체 루트 중에서 상기 선택된 대체 루트를 선택하는 단계
를 포함하는, 방법.
2. The method of claim 1, wherein selecting the alternate route for the data packet comprises:
Identifying, in the transfer table, two or more alternate routes from the node to the destination;
Comparing the root characteristics of the at least two alternative routes; And
Selecting the selected alternate route from the at least two alternate routes based at least in part on the route characteristics
/ RTI >
제5항에 있어서, 상기 2개 이상의 대체 루트의 루트 특성들을 비교하는 단계는 상기 2개 이상의 대체 루트를 따르는 서비스 품질을 비교하는 단계를 포함하는, 방법.6. The method of claim 5, wherein comparing the route characteristics of the two or more alternate routes comprises comparing service quality along the two or more alternate routes. 제5항에 있어서, 상기 2개 이상의 대체 루트의 상기 루트 특성들을 비교하는 단계는 상기 데이터 패킷이 전송되고 있는 애플리케이션에 적어도 부분적으로 기초하여 수행되는, 방법.6. The method of claim 5, wherein comparing the root characteristics of the two or more alternate routes is performed based at least in part on an application in which the data packet is being transmitted. 시스템으로서,
네트워크의 노드를 포함하고, 상기 노드는
데이터 패킷을 수신하고, 상기 노드의 전송 테이블로부터, 상기 노드로부터 상기 데이터 패킷의 목적지로 상기 데이터 패킷을 전송하기 위한 루트를 선택하도록 구성된 라우팅 엔진 - 상기 전송 테이블은 상기 노드로부터 상기 목적지로의 2개 이상의 루트와 관련된, 루트 비용들을 포함하는, 루트 특성들을 포함함 -; 및
상기 라우팅 엔진의 아웃바운드 인터페이스(outbound interface)와 관련된 트래픽 셰이퍼(traffic shaper)
를 포함하고, 상기 트래픽 셰이퍼는
하드웨어 컴퓨팅 디바이스에 의해, 실시간 트래픽 정보에 기초하여, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하고;
상기 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 데이터 패킷을 상기 노드의 상기 라우팅 엔진으로 반환하도록 구성되며;
상기 라우팅 엔진은 이전의 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 이전의 선택된 루트 대신에 상기 데이터 패킷에 대한 대체 루트를 상기 전송 테이블로부터 선택하도록 더 구성되는, 시스템.
As a system,
Comprising a node of the network, the node
A routing engine configured to receive a data packet and select a route from the node's transport table to the destination of the data packet from the node, the transport table comprising two Comprising root properties, including root costs, associated with the above roots; And
A traffic shaper associated with the outbound interface of the routing engine,
, The traffic shaper
Analyze, by the hardware computing device, the selected route based on real-time traffic information, to determine whether the selected route is suitable for delivering the data packet;
And return the data packet to the routing engine of the node if the selected route is determined to be unsuitable for delivering the data packet;
Wherein the routing engine is further configured to select, from the transmission table, a replacement route for the data packet instead of the previous selected route if a previous selected route is determined to be unsuitable for delivering the data packet.
제8항에 있어서, 상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주될 때까지, 상기 트래픽 셰이퍼는 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 반복 분석하도록 구성되고, 상기 라우팅 엔진은 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 반복 선택하도록 구성되며;
상기 노드는 상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주된 후에 상기 선택된 대체 루트를 따라 상기 데이터 패킷을 전송하도록 구성된 네트워크 인터페이스를 더 포함하는, 시스템.
9. The method of claim 8, wherein the traffic shaper repeats the selected route to determine whether the selected route is suitable for delivering the data packet until the selected alternate route is deemed eligible to deliver the data packet. Wherein the routing engine is configured to iteratively select a replacement route for the data packet instead of the previous selected route;
Wherein the node further comprises a network interface configured to transmit the data packet along the selected alternate route after the selected alternate route is deemed suitable for carrying the data packet.
제8항에 있어서, 종료 조건이 충족될 때까지, 상기 트래픽 셰이퍼는 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 반복 분석하도록 구성되고, 상기 라우팅 엔진은 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 반복 선택하도록 구성되며;
상기 트래픽 셰이퍼는 상기 종료 조건이 충족된 후에 상기 데이터 패킷을 드롭하도록 더 구성되는, 시스템.
9. The method of claim 8, wherein until the termination condition is met, the traffic shaper is configured to iteratively analyze the selected route to determine whether the selected route is suitable for delivering the data packet, ≪ / RTI > alternatively selecting a substitute route for said data packet instead of a selected route of said data packet;
The traffic shaper is further configured to drop the data packet after the termination condition is satisfied.
제8항에 있어서, 상기 라우팅 엔진은 상기 데이터 패킷과 관련된 메타데이터를 유지하도록 더 구성되고, 상기 메타데이터는 상기 노드로부터 상기 목적지로의 어느 루트들이 상기 데이터 패킷을 전달하기 위한 적합성에 대해 분석되었는지를 나타내는, 시스템.9. The method of claim 8, wherein the routing engine is further configured to maintain metadata associated with the data packet, wherein the metadata indicates which routes from the node to the destination have been analyzed for conformance to deliver the data packet ≪ / RTI > 제8항에 있어서, 라우팅 엔진은
상기 전송 테이블에서, 상기 노드로부터 상기 목적지로의 2개 이상의 대체 루트를 식별하고;
상기 2개 이상의 대체 루트의 상기 루트 특성들을 비교하고;
상기 루트 특성들에 적어도 부분적으로 기초하여 상기 2개 이상의 대체 루트 중에서 상기 선택된 대체 루트를 선택함으로써
상기 데이터 패킷에 대한 상기 선택된 대체 루트를 선택하도록 구성되는, 시스템.
9. The system of claim 8, wherein the routing engine
Identifying, in the transfer table, two or more alternate routes from the node to the destination;
Compare the root characteristics of the two or more alternative routes;
And selecting the selected alternate route from the at least two alternate routes based at least in part on the route characteristics
And to select the selected alternate route for the data packet.
제12항에 있어서, 상기 2개 이상의 대체 루트의 루트 특성들을 비교하는 것은 상기 2개 이상의 대체 루트를 따르는 서비스 품질을 비교하는 것을 포함하는, 시스템.13. The system of claim 12, wherein comparing the route characteristics of the at least two alternative routes comprises comparing service quality along the at least two alternative routes. 제12항에 있어서, 상기 2개 이상의 대체 루트의 상기 루트 특성들을 비교하는 것은 상기 데이터 패킷이 전송되고 있는 애플리케이션에 적어도 부분적으로 기초하여 수행되는, 시스템.13. The system of claim 12, wherein comparing the route characteristics of the two or more alternate routes is performed based at least in part on the application to which the data packet is being sent. 컴퓨터 판독 가능 프로그램 코드를 구현한 컴퓨터 판독 가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 판독 가능 프로그램 코드는 방법을 수행하기 위해 프로세서에 의해 실행될 수 있으며, 상기 방법은,
네트워크의 노드에서 데이터 패킷을 수신하는 단계;
상기 노드의 전송 테이블로부터, 상기 노드로부터 상기 데이터 패킷의 목적지로 상기 데이터 패킷을 전송하기 위한 루트를 선택하는 단계 - 상기 전송 테이블은 상기 노드로부터 상기 목적지로의 2개 이상의 루트와 관련된, 루트 비용들을 포함하는, 루트 특성들을 포함함 -;
실시간 트래픽 정보에 기초하여, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계;
상기 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 데이터 패킷을 상기 노드의 라우팅 엔진으로 반환하는 단계; 및
이전의 선택된 루트가 상기 데이터 패킷을 전달하기에 부적합하다고 결정되면, 상기 이전의 선택된 루트 대신에 상기 데이터 패킷에 대한 대체 루트를 상기 전송 테이블로부터 선택하는 단계
를 포함하는, 컴퓨터 프로그램 제품.
A computer program product comprising a computer readable storage medium embodying computer readable program code, the computer readable program code being executable by a processor to perform a method,
Receiving a data packet at a node of the network;
Selecting a route from the node's transfer table to transfer the data packet from the node to a destination of the data packet, wherein the transfer table includes route costs associated with two or more routes from the node to the destination Containing root properties;
Analyzing the selected route based on real-time traffic information to determine if the selected route is suitable for delivering the data packet;
Returning the data packet to the routing engine of the node if the selected route is determined to be unsuitable for delivering the data packet; And
Selecting a replacement route for the data packet instead of the previous selected route from the transmission table if a previous selected route is determined to be unsuitable for delivering the data packet;
And a computer program product.
제15항에 있어서, 상기 방법은,
상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주될 때까지, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계 및 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 선택하는 단계를 반복하는 단계; 및
상기 선택된 대체 루트가 상기 데이터 패킷을 전달하기에 적합한 것으로 간주된 후에 상기 선택된 대체 루트를 따라 상기 데이터 패킷을 전송하는 단계
를 더 포함하는, 컴퓨터 프로그램 제품.
16. The method of claim 15,
Analyzing the selected route to determine whether the selected route is suitable for conveying the data packet until the selected alternate route is deemed suitable for conveying the data packet, Repeating the step of selecting a replacement route for the data packet; And
Transmitting the data packet along the selected alternate route after the selected alternate route is deemed suitable for carrying the data packet
The computer program product further comprising:
제15항에 있어서, 상기 방법은,
종료 조건이 충족될 때까지, 상기 선택된 루트가 상기 데이터 패킷을 전달하기에 적합한지를 결정하기 위해 상기 선택된 루트를 분석하는 단계 및 상기 이전의 선택된 루트 대신 상기 데이터 패킷에 대한 대체 루트를 선택하는 단계를 반복하는 단계; 및
상기 종료 조건이 충족된 후에 상기 데이터 패킷을 드롭하는 단계
를 더 포함하는, 컴퓨터 프로그램 제품.
16. The method of claim 15,
Analyzing the selected route to determine whether the selected route is suitable for delivering the data packet until a termination condition is met and selecting an alternate route for the data packet instead of the previous selected route Repeating; And
Dropping the data packet after the termination condition is satisfied
The computer program product further comprising:
제15항에 있어서, 상기 방법은 상기 데이터 패킷과 관련된 메타데이터를 유지하는 단계를 더 포함하고, 상기 메타데이터는 상기 노드로부터 상기 목적지로의 어느 루트들이 상기 데이터 패킷을 전달하기 위한 적합성에 대해 분석되었는지를 나타내는, 컴퓨터 프로그램 제품.16. The method of claim 15, wherein the method further comprises maintaining metadata associated with the data packet, wherein the meta data includes information about which routes from the node to the destination are analyzed for suitability to deliver the data packet The computer program product. 제15항에 있어서, 상기 데이터 패킷에 대한 상기 선택된 대체 루트를 선택하는 단계는,
상기 전송 테이블에서, 상기 노드로부터 상기 목적지로의 2개 이상의 대체 루트를 식별하는 단계;
상기 2개 이상의 대체 루트의 상기 루트 특성들을 비교하는 단계; 및
상기 루트 특성들에 적어도 부분적으로 기초하여 상기 2개 이상의 대체 루트 중에서 상기 선택된 대체 루트를 선택하는 단계
를 포함하는, 컴퓨터 프로그램 제품.
16. The method of claim 15, wherein selecting the alternate route for the data packet comprises:
Identifying, in the transfer table, two or more alternate routes from the node to the destination;
Comparing the root characteristics of the at least two alternative routes; And
Selecting the selected alternate route from the at least two alternate routes based at least in part on the route characteristics
And a computer program product.
제19항에 있어서, 상기 2개 이상의 대체 루트의 루트 특성들을 비교하는 단계는 상기 2개 이상의 대체 루트를 따르는 서비스 품질을 비교하는 단계를 포함하는, 컴퓨터 프로그램 제품.20. The computer program product of claim 19, wherein comparing the route characteristics of the two or more alternate routes comprises comparing service quality along the two or more alternate routes.
KR1020177008008A 2014-08-27 2015-06-18 Improved network utilization in policy-based networks KR101897423B1 (en)

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 true KR20170047315A (en) 2017-05-04
KR101897423B1 KR101897423B1 (en) 2018-09-10

Family

ID=53525262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177008008A KR101897423B1 (en) 2014-08-27 2015-06-18 Improved network utilization in policy-based networks

Country Status (7)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190132018A (en) * 2018-05-18 2019-11-27 삼성전자주식회사 Electronic device for performing network cnnection base on data transmission of application and method thereof

Families Citing this family (3)

* 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
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

Citations (2)

* 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
KR20130108250A (en) * 2010-08-11 2013-10-02 톰슨 라이센싱 Combining bandwidth aware routing with channel selection and channel switching in a multi-hop wireless home network

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60137406D1 (en) 2000-03-03 2009-03-05 Luminous Networks Inc ROUTE SWITCH FOR DYNAMIC TRANSPORT DUE TO CONNECTION FAULT RECOGNITION
US7133365B2 (en) 2001-11-02 2006-11-07 Internap Network Services Corporation System and method to provide routing control of information over networks
JP2004236050A (en) 2003-01-31 2004-08-19 Anritsu Corp Load distributed type repeater and load distributed type relaying method
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
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

Patent Citations (2)

* 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
KR20130108250A (en) * 2010-08-11 2013-10-02 톰슨 라이센싱 Combining bandwidth aware routing with channel selection and channel switching in a multi-hop wireless home network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190132018A (en) * 2018-05-18 2019-11-27 삼성전자주식회사 Electronic device for performing network cnnection base on data transmission of application and method thereof

Also Published As

Publication number Publication date
EP3186927A1 (en) 2017-07-05
WO2016032599A1 (en) 2016-03-03
US10075365B2 (en) 2018-09-11
KR101897423B1 (en) 2018-09-10
US20160065447A1 (en) 2016-03-03
JP2017526293A (en) 2017-09-07
CA2959495A1 (en) 2016-03-03
CA2959495C (en) 2022-10-04
JP6389564B2 (en) 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 (en) Method and network device for computer network
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 (en) Bandwidth monitoring device and packet relay device
JP2019523621A (en) Intelligent adaptive transport layer that uses multiple channels to improve performance
US9197544B2 (en) Comprehensive multipath routing for congestion and quality-of-service in communication networks
JP2004528775A (en) System and method for guaranteeing network service level for intelligent delivery
US10135736B1 (en) Dynamic trunk distribution on egress
EP3226509B1 (en) Dynamic prioritization of network traffic based on reputation
KR101897423B1 (en) Improved network utilization in policy-based networks
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
US11240140B2 (en) Method and system for interfacing communication 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
TW202347997A (en) Feedback-based dynamic network flow remapping
JP2011018965A (en) Traffic control system, method, and program
Phinjirapong CAFFEINE: Congestion Avoidance For Fairness & Efficiency In Network Entities
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