KR20140064600A - 네트워크 시스템 및 라우팅 방법 - Google Patents

네트워크 시스템 및 라우팅 방법 Download PDF

Info

Publication number
KR20140064600A
KR20140064600A KR1020130054616A KR20130054616A KR20140064600A KR 20140064600 A KR20140064600 A KR 20140064600A KR 1020130054616 A KR1020130054616 A KR 1020130054616A KR 20130054616 A KR20130054616 A KR 20130054616A KR 20140064600 A KR20140064600 A KR 20140064600A
Authority
KR
South Korea
Prior art keywords
nodes
controller
connection port
data rate
links
Prior art date
Application number
KR1020130054616A
Other languages
English (en)
Other versions
KR101406878B1 (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 KR20140064600A publication Critical patent/KR20140064600A/ko
Application granted granted Critical
Publication of KR101406878B1 publication Critical patent/KR101406878B1/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/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/03Topology update or discovery by updating link state protocols
    • 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/42Centralised routing

Landscapes

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

Abstract

본 발명인 라우팅 방법은 컨트롤러를 통해, 네트워크 토폴로지 다이어그램을 구성하기 위한 상기 식별 정보를 수신하고 상기 다수의 노드들의 적어도 하나의 연결 포트에 대한 지원율을 수신하는 단계; 상기 컨트롤러를 통해, 상기 다수의 노드들의 적어도 하나의 연결 포트의 데이터율을 모니터링하는 단계; 상기 컨트롤러를 통해, 경로 계획 요청을 수신하는 단계; 상기 컨트롤러를 통해, 상기 경로 계획 요청을 수신한 후에, 상기 다수의 노드들의 적어도 하나의 연결 포트의 데이터율과 상기 다수의 노드들의 적어도 하나의 연결 포트의 지원율에 의해 상기 다수의 링크들의 코스트들을 각각 산출하는 단계; 상기 컨트롤러를 통해, 상기 경로 계획 요청 및 상기 네트워크 토폴로지 다이어그램에 의해 출발지-목적지 페어 사이의 복수의 후보 경로들을 탐색하는 단계; 상기 컨트롤러를 통해, 상기 각각의 후보 경로에 대한 링크 코스트의 합을 획득하기 위하여, 상기 각각의 후보 경로에 의하여 통과되는 상기 다수의 링크들의 코스트들을 합산하는 단계; 및 상기 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나를 상기 출발지- 목적지 페어 사이의 패킷 전송 경로로서 선택하는 단계를 포함하여 이루어진다.

Description

네트워크 시스템 및 라우팅 방법{NETWORK SYSTEM AND ROUTING METHOD}
본 발명은 전자 시스템 및 라우팅 방법에 관한 것이다. 특히, 본 발명은 네트워크 시스템 및 라우팅 방법에 관한 것이다.
정보 기술의 급속한 발전과 함께, 로컬 영역 네트워크, 인터넷, 데이터 센터 네트워크 등과 같은 다양한 형태의 네트워크는 관련 기술에서 널리 적용되어 왔다.
일반적으로, 네트워크는 스위치들 또는 라우터들과 같은 복수의 노드들을 포함한다. 상기 노드들은 일반적으로 포워딩 테이블을 제공한다. 상기 노드들은 개별 포워딩 테이블(forwarding table)에 따라, 패킷들의 수신시 상기 패킷들의 헤더들을 비교하고, 상기 패킷들을 다른 노드들에게 전송하다.
상기 포워딩 테이블(forwarding table)들은 네트워크 관리자에 의하여 수동으로 설정될 수도 있고, 또는 특정 알고리즘을 실행하는 방법을 통하여 설정될 수도 있다.
따라서, 네트워크 혼잡을 방지하고, 네트워크의 신뢰성을 향상시키기 위하여, 상기 네트워크에서 상기 노드들의 포워딩 테이블을 적절하게 설정하기 위한 경로 계획 방법에 대한 설계법이 요청되고 있다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 창안된 것으로, 컨트롤러를 통해 네트워크 내에 있는 모든 노드들 사이의 링크들의 데이터율과 연결 포트들의 지원율에 따라 상기 링크들의 코스트들을 산출할 수 있는 네트워크 시스템 및 라우팅 방법을 제공하는 것을 그 목적으로 한다.
또한, 컨트롤러를 통해 출발지-목적지 페어 사이의 패킷이 링크 코스트의 가장 작은 합을 가지는 후보 경로를 따라 전송되도록 하기 위하여, 링크들의 코스트들에 따라 출발지-목적지 페어 사이의 전송 경로를 계획할 수 있는 네트워크 시스템 및 라우팅 방법을 제공하는 것을 그 목적으로 한다.
또한, 컨트롤러의 제어를 통해, 네트워크 안에서의 데이터율 부하(load)가 균형 잡히고, 결과적으로, 네트워크 혼잡이 방지되고 네트워크 신뢰성이 향상될 수 있는 네트워크 시스템 및 라우팅 방법을 제공하는 것을 그 목적으로 한다.
상기와 같은 과제를 해결하기 위하여 제안된 본 발명인 라우팅 방법을 이루는 구성수단은, 컨트롤러와 다수의 노드들을 포함하여 구성되되, 상기 다수의 노드들의 각각은 적어도 하나의 연결 포트를 포함하고, 모든 두개의 인접 노드들은 다수의 링크들을 형성하기 위하여 상기 다수의 노드들의 적어도 하나의 연결 포트를 통해 연결되는 네트워크 시스템에 적용되는 라우팅 방법에 있어서, 상기 다수의 노드들의 식별 정보와 상기 다수의 노드들의 적어도 하나의 연결 포트에 대한 지원율을 상기 다수의 노드들을 통해 상기 컨트롤러로 전송하는 단계; 상기 컨트롤러를 통해, 네트워크 토폴로지 다이어그램을 구성하기 위한 상기 식별 정보를 수신하고 상기 다수의 노드들의 적어도 하나의 연결 포트에 대한 지원율을 수신하는 단계; 상기 컨트롤러를 통해, 상기 다수의 노드들의 적어도 하나의 연결 포트의 데이터율을 모니터링하는 단계; 상기 컨트롤러를 통해, 경로 계획 요청을 수신하는 단계; 상기 컨트롤러를 통해, 상기 경로 계획 요청을 수신한 후에, 상기 다수의 노드들의 적어도 하나의 연결 포트의 데이터율과 상기 다수의 노드들의 적어도 하나의 연결 포트의 지원율에 의해 상기 다수의 링크들의 코스트들을 각각 산출하는 단계; 상기 컨트롤러를 통해, 상기 경로 계획 요청 및 상기 네트워크 토폴로지 다이어그램에 의해 출발지-목적지 페어 사이의 복수의 후보 경로들을 탐색하는 단계; 상기 컨트롤러를 통해, 상기 각각의 후보 경로에 대한 링크 코스트의 합을 획득하기 위하여, 상기 각각의 후보 경로에 의하여 통과되는 상기 다수의 링크들의 코스트들을 합산하는 단계; 및 상기 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나를 상기 출발지- 목적지 페어 사이의 패킷 전송 경로로서 선택하는 단계를 포함하여 이루어진 것을 특징으로 한다.
여기서, 상기 다수의 노드들의 적어도 하나의 연결 포트의 데이터율을 모니터링하는 단계는, 상기 컨트롤러를 통해, 제1 시점에서 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 제1 누적 데이터율을 수신하는 과정; 및 상기 컨트롤러를 통해, 제2 시점에서 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 제2 누적 데이터율을 수신하는 과정을 포함하여 이루어진 것을 특징으로 한다.
여기서, 상기 다수의 링크들의 코스트들을 각각 산출하는 단계는, 상기 컨트롤러를 통해, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 평균 데이터율을 획득하기 위하여, 상기 제1 누적 데이터율과 상기 제2 누적 데이터율의 차를 상기 제1 시점과 상기 제2 시점 사이의 차이로 나누는 과정; 상기 컨트롤러를 통해, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 잔여 데이터율을 획득하기 위하여, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 평균 데이터율을 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 지원율로부터 빼는 과정; 및 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대응하는 상기 링크들의 코스트들 중 하나를 획득하기 위하여, 상기 컨트롤러를 통해, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 잔여 데이터율을 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 지원율로 나누는 과정을 포함하여 이루어진 것을 특징으로 한다.
또한, 상기 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나를 상기 출발지- 목적지 페어 사이의 패킷 전송 경로로서 선택하는 단계는, 상기 컨트롤러를 통해, 적어도 하나의 패킷 포워딩 규칙 각각을 상기 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나에 따라 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나를 지나가게 되는 상기 다수의 노드들 중 하나에 포함되는 적어도 하나의 포워딩 테이블에 작성하는 과정을 포함하여 이루어진 것을 특징으로 한다.
여기서, 상기 출발지-목적지 페어 사이의 상기 패킷 전송 경로가 시간에 따라 업데이트될 수 있도록, 상기 컨트롤러를 통해 상기 적어도 하나의 패킷 포워딩 규칙의 오류 시간을 설정하는 과정을 더 포함하여 이루어진 것을 특징으로 한다.
한편, 또 다른 본 발명인 네트워크 시스템은 다수의 노드들과 컨트롤러를 포함하여 구성되되, 상기 다수의 노드 각각은 적어도 하나의 연결 포트를 포함하고, 모든 두개의 인접 노드들은 다수의 링크들을 형성하기 위하여 상기 다수의 노드들의 적어도 하나의 연결 포트를 통해 연결되고, 상기 다수의 노드들은 각각 상기 컨트롤러에 상기 다수의 노드들의 식별 정보와 상기 다수의 노드들의 적어도 하나의 연결 포트의 지원율을 출력하기 위하여 사용되며, 상기 컨트롤러는 네트워크 토폴로지 다이어그램을 구성하기 위하여 상기 식별 정보를 수신하고, 상기 다수의 노드들의 적어도 하나의 연결 포트의 지원율을 수신하고, 상기 다수의 노드들의 상기 적어도 하나의 연결 포트의 데이터율을 모니터링하고, 경로 계획 요청을 수신하기 위하여 사용되며, 상기 컨트롤러는 경로 계획 요청을 수신한 후에, 상기 다수의 노드들의 적어도 하나의 연결 포트의 데이터율과 상기 다수의 노드들의 적어도 하나의 연결 포트의 지원율에 의해 상기 다수의 링크들의 코스트들을 각각 산출하고, 상기 경로 계획 요청과 상기 네트워크 토폴로지 다이어그램에 따라 출발지-목적지 페어 사이의 복수의 후보 경로들을 탐색하고, 각 후보 경로의 링크 코스트의 합을 획득하기 위하여 각 후보 경로를 지나가게 되는 복수의 링크들의 코스트들을 합산하며, 링크 코스트의 가장 작은 합을 가지는 상기 후보 경로들 중 하나를 상기 출발지-목적지 페어 사이의 패킷 전송 경로로서 선택하는 것을 특징으로 한다.
여기서, 상기 컨트롤러는 제1 시점에서 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 제1 누적 데이터율을 수신하고, 제2 시점에서 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 제2 누적 데이터율을 수신하며, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 평균 데이터율을 획득하기 위하여 상기 제1 누적 데이터율과 상기 제2 누적 데이터율 사이의 차이를 상기 제1 시점과 상기 제2 시점 사이의 차이로 나누기 위하여 더 사용되는 것을 특징으로 한다.
여기서, 상기 컨트롤러는 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 잔여 데이터율을 획득하기 위하여 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 상기 평균 데이터율을 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 지원율로부터 빼고, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트에 대응하는 링크들의 코스트들 중 하나를 획득하기 위하여 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 상기 잔여 데이터율을 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 지원율로 나누기 위하여 더 사용되는 것을 특징으로 한다.
또한, 상기 컨트롤러는 적어도 하나의 패킷 포워딩 규칙 각각을 상기 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나에 따라 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나를 지나가게 되는 상기 다수의 노드들 중 하나에 포함되는 적어도 하나의 포워딩 테이블에 각각 작성하기 위하여 더 사용되는 것을 특징으로 한다.
여기서, 상기 컨트롤러는 상기 출발지-목적지 페어 사이의 상기 패킷 전송 경로가 시간에 따라 업데이트될 수 있도록, 상기 적어도 하나의 패킷 포워딩 규칙의 오류 시간을 설정하기 위하여 더 사용되는 것을 특징으로 한다.
상기와 같은 과제 및 해결수단을 가지는 본 발명인 네트워크 시스템 및 라우팅 방법에 의하면, 컨트롤러를 통해 네트워크 내에 있는 모든 노드들 사이의 링크들의 데이터율과 연결 포트들의 지원율에 따라 상기 링크들의 코스트들을 산출할 수 있는 장점이 있다.
또한, 컨트롤러를 통해 출발지-목적지 페어 사이의 패킷이 링크 코스트의 가장 작은 합을 가지는 후보 경로를 따라 전송되도록 하기 위하여, 링크들의 코스트들에 따라 출발지-목적지 페어 사이의 전송 경로를 계획할 수 있는 장점이 있다.
따라서, 컨트롤러의 제어를 통해, 네트워크 안에서의 데이터율 부하(load)가 균형 잡히고, 결과적으로, 네트워크 혼잡이 방지되고 네트워크 신뢰성이 향상될 수 있는 현저한 효과가 있다.
도 1은 본 발명의 실시예에 따른 네트워크 시스템을 보여주는 개략도이다.
도 2는 본 발명의 실시예에 따른 라우팅 방법을 보여주는 플로우챠트이다.
이하, 첨부된 도면을 참조하여 상기와 같은 과제, 해결수단 및 효과를 가지는 본 발명인 네트워크 시스템 및 라우팅 방법에 관한 바람직한 실시예를 상세하게 설명한다.
이 과정에서 도면에 도시된 구성요소의 크기나 형상 등은 설명의 명료성과 편의상 과장되게 도시될 수 있다. 또한, 본 발명의 구성 및 작용을 고려하여 특별히 정의된 용어들은 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다.
또한 본 발명의 본질적인 사상은 도면을 참조하여 다음의 상세한 설명에서 명확하게 설명될 것이다. 본 발명의 실시예를 습득한 후, 당업자는 본 발명의 기본적인 사상과 범위를 벗어나지 않고, 본 발명에서 가르쳐 준 기술을 참조하여 변형 및 수정을 할 수 있다.
또한, 여기에서 사용되는 "제1(첫 번째)", "제2(두 번째)" 등의 문구는 순서 또는 차례를 명확하게 가리키지 않을 뿐만 아니라, 본 발명을 한정하기 위하여 사용되는 것이 아니고, 단지 동일한 기술적 용어 또는 표현을 가지고 설명되는 구성요소들 또는 동작들을 구별하기 위하여 사용된다.
본 발명의 하나의 실시예는 네트워크 시스템을 제공한다. 상기 네트워크 시스템은 이 네트워크 시스템 내에 있는 노드들(예를 들어 스위치들 또는 라우터들)의 데이터율(data rates)과 지원율(support rates)을 수집하고 연결 포트들의 데이터율(data rates)과 지원율(support rates)에 따라 출발지-목적지 페어(pair) 사이의 전송 경로를 계획하기 위하여 컨트롤러를 사용할 수 있다.
도 1은 본 발명의 실시예에 따른 네트워크 시스템을 보여주기 위한 개략도이다.
상기 네트워크 시스템(10)은 컨트롤러(100)와 다수의 노드들(예를 들어, N1 ~ N5)을 포함하여 구성된다. 상기 노드들 N1 ~ N5의 각각은 적어도 하나의 연결 포트를 포함한다. 예를 들어, 상기 노드 N1은 연결 포트 P11과 연결 포트 P12를 포함한다. 상기 노드 N2는 연결 포트 P21과 연결 포트 P22를 포함한다.
상기 컨트롤러(100)는 상기 노드들 N1 ~ N5의 각각에 연결된다. 상기 노드들 N1 ~ N5 중, 모든 두개의 인접 노드들은 링크들을 형성하기 위하여 대응하는 연결 포트들을 통해 연결된다. 예를 들어, 상기 노드 N1과 상기 노드 N3은 링크 L1을 형성하기 위하여 연결 포트 P11과 연결 포트 P31을 통해 연결된다. 상기 노드 N1과 상기 노드 N4는 링크 L2를 형성하기 위하여 연결 포트 P12와 연결 포트 P41을 통해 연결된다.
여기에서 언급하는 소위 인접 노드들은 하나의 링크를 통하여 서로 연결될 수 있는 두개의 노드들을 나타낸다(지칭한다). 또한, 위에서 언급한 상기 노드들 N1 ~ N5는 오픈플로우(OpenFlow) 스위치들 또는 라우터들과 같은 오픈플로우(OpenFlow) 계층2(layer2) 통신 프로토콜과 호환될 수 있고, 위에서 언급한 상기 컨트롤러는 오픈플로우(OpenFlow) 컨트롤러가 될 수 있다.
본 발명의 실시예가 예시로서 도 1에서 보여주는 연결 모델을 가지고 설명되고 있지만, 노드들의 수량, 상기 노드들의 연결 포트들의 수량 및 상기 노드들 사이의 연결 관계는 도면에서 보여준 수량에 한정되지 않는다는 것이 주목되어야 한다.
본 발명의 실시예에 따른 상기 컨트롤러(100)는 예를 들어 컴퓨터이다. 상기 컨트롤러(100)는 상기 노드들 N1 ~ N5가 각각 상기 컨트롤러(100)에게 상기 노드들 N1 ~ N5의 식별 정보(identification information)와 상기 연결 포트들 P11 ~ P52의 지원율(support)을 출력하도록 지시하기 위하여 상기 노드들 N1 ~ N5에게 명령을 전송할 수 있다.
다음, 상기 컨트롤러(100)는 상기 네트워크 시스템(10)에 상응하는 네트워크 토폴로지(topology) 다이어그램(diagram)을 구성하기 위하여 상기 노드들 N1 ~ N5의 식별 정보를 수신할 수 있고, 상기 연결 포트들 P11 ~ P52의 지원율(support rates)을 수신할 수 있다. 상기 네트워크 토폴로지 다이어그램은 상기 노드들 N1 ~ N5 사이의 연결 관계를 반영할 수 있다.
실제로, 상기 컨트롤러(100)는 인접 노드들 N1 ~ N5가 서로 자신들의 식별 정보를 교환하도록 하기 위하여, 상기 노드들 N1 ~ N5에게 링크 계층 탐색 프로토콜(LLDP : link layer discovery protocol) 패킷을 상기 인접 노드들 N1 ~ N5에게 브로드캐스팅 하도록 지시할 수 있다.
그런 후, 상기 컨트롤러(100)는 상기 노드들 N1 ~ N5가 상기 컨트롤러(100)에게 상기 인접 노드들 N1 ~ N5의 식별 정보를 전달하는 것을 야기하기 위하여, 상기 노드들 N1 ~ N5에게 다른 명령(instruction)을 전송할 수 있다.
따라서, 상기 컨트롤러(100)는 상기 노드들 N1 ~ N5의 식별 정보를 통해 상기 네트워크 시스템(10)에 상응하는 네트워크 토폴로지 다이어그램을 결정할 수 있다. 또한, 상기 컨트롤러(100)는 상기 노드들 N1 ~ N5에게 명령들을 전송하는 것을 통해 상기 노드들 N1 ~ N5가 상기 연결 포트들 P11 ~ P52의 지원율(support rates)을 다시 전송하게 할 수 있다.
또한, 상기 컨트롤러(100)는 상기 연결 포트들 P11 ~ P52의 데이터율(data rates)을 모니터링하기 위하여 사용될 수 있다. 예를 들어, 상기 노드들 N1 ~ N5가 상기 컨트롤러(100)에게 상기 연결 포트들 P11 ~ P52의 데이터율(data rates)을 전송할 수 있도록 하기 위하여, 명령들이 상기 노드들 N1 ~ N5에게 주기적으로 전송될 수 있다.
상기 컨트롤러(100)는 경로 계획 요청을 받은 후에 수신된 상기 연결 포트들 P11 ~ P52의 지원율(support rates)과 경로 계획 요청을 받은 후에 주기적으로 수집된 상기 연결 포트들 P11 ~ P52의 데이터율(data rates)에 기반하여, 상기 연결 포트들 P11 ~ P52의 지원율(support rates)과 데이터율(data rates)에 의해 링크들 L1 ~ L6의 코스트(cost)들을 각각 산출할 수 있다.
예를 들어, 상기 컨트롤러(100)는 상기 연결 포트들 P11 ~ P52의 지원율(support rates)과 데이터율(data rates)을 통해 대응하는 링크들 L1 ~ L6의 혼잡도(congestion level)를 결정할 수 있고, 그에 따라 상기 링크들 L1 ~ L6의 코스트들을 산출할 수 있다.
상기 컨트롤러(100)는 상기 링크들 L1 ~ L6의 코스트들을 산출한 후에, 상기 경로 계획 요청 및 상기 네트워크 시스템(10)에 상응하는 상기 네트워크 토폴로지에 따라 출발지-목적지 페어(source-destination pair) 사이의 복수의 후보 경로들을 탐색할 수 있다.
또한, 상기 컨트롤러(100)는 상기 각각의 후보 경로의 링크 코스트(link-cost) 합을 획득하기 위하여, 상기 후보 경로들에 의하여 통과되는 상기 링크들 L1 ~ L6의 코스트들을 합한다. 다음, 상기 컨트롤러(100)는 링크 코스트(link-cost)의 작은 합을 가지는 상기 후보 경로들 중 하나를 상기 출발지-목적지 페어 사이의 패킷 전송 경로로서 선택한다. 상기 출발지-목적지 페어(source-destination pair)는 상기 경로 계획 요청(route planning request)에 따른다.
예를 들어, 상기 출발지-목적지 페어의 출발지 노드가 N1이고 상기 출발지-목적지 페어의 목적지 노드가 N2라면, 상기 컨트롤러는 상기 네트워크 시스템(10)에 상응하는 상기 네트워크 토폴로지 다이어그램으로부터 두개의 후보 경로들 (N1 → N3 → N2) 및 (N1 → N4 → N2)를 각각 탐색하고, 상기 링크들의 코스트들을 합한다.
상기 후보 경로 (N1 → N3 → N2)의 링크 코스트(link-cost)의 합이 상기 후보 경로 (N1 → N4 → N2)의 링크 코스트(link-cost)의 합보다 더 작으면, 상기 컨트롤러(100)는 상기 후보 경로 (N1 → N3 → N2)를 상기 출발지-목적지 사이의 패킷 전송 경로로서 선택한다.
이와 같은 설정 통하여, 상기 출발지-목적지 페어 사이의 전송 경로를 계획할 때, 상기 컨트롤러(100)는 상기 네트워크 내에서 데이터율(data rate)의 균형을 유지하고, 상기 네트워크 혼잡을 방지하며, 상기 네트워크의 신뢰성을 향상시키기 위하여, 가장 작은 링크 코스트(link-cost)의 합을 가지는 상기 후보 경로들 중 하나를 상기 패킷 전송 경로로서 선택한다.
상기 데이터율(data rates)의 모니터링하는 방법과 상기 링크들의 코스트들을 산출하는 방법은 다음의 단락들에서 더 상세하게 설명한다.
본 발명의 실시예에 따른 상기 노드들 N1 ~ N5는 각각 통계 데이터를 저장할 수 있다. 상기 통계 데이터는 상기 노드들 N1 ~ N5의 연결 포트들 P11 ~ P52의 누적 데이터율(cumulative data rates)(예를 들어, 오픈플로우 테이블(OpenFlow table)에서 수신된 각 포트의 바이트들)을 포함할 수 있다.
상기 컨트롤러(100)는 상기 노드들 N1 ~ N5의 연결 포트들 P11 ~ P52의 각각에 대한 누적 데이터율(cumulative data rates)을 주기적으로 수신한다. 명령(예를 들어, 경로 계획 요청)을 받으면(수신하면), 상기 컨트롤러(100)는 상기 링크들 L1 ~ L6의 코스트들을 산출한다.
즉, 상기 컨트롤러(100)는 상기 명령을 받으면, 상기 연결 포트들 P11 ~ P52 중 하나에 대한 평균 데이터율(average data rate)을 획득하기 위하여, 상기 연결 포트들 P11 ~ P52 중 하나에 대한 가장 최신에 수신된 누적 데이터율과 상기 연결 포트들 P11 ~ P52 중 하나에 대한 두 번째로 최신에 수신된 누적 데이터율 사이의 차이를 상기 두개의 누적 데이터율들의 수신 사이의 시간 간격으로(시간 차로) 나눈다.
상기 연결 포트 P11을 가지고 예를 들면, 상기 컨트롤러(100)는 제1 시점(예를 들어, 0번째초 순간)에서 상기 노드 N1의 연결 포트 P11의 제1 누적 데이터율을 수신할 수 있다. 그런 다음, 사전에 설정된 기간(예를 들어, 30초) 후에, 상기 컨트롤러는 제2 시점(예를 들어, 30번째초 순간)에서 다시 상기 노드 N1의 연결 포트 P11의 제2 누적 데이터율을 수신할 수 있다.
바로 이때, 상기 컨트롤러(100)가 상기 링크들 L1 ~ L6의 코스트들을 산출하기 위한 경로 계획 요청을 받으면(수신하면), 상기 컨트롤러(100)는 상기 연결 포트 P11의 평균 데이터율(average data rate)을 획득하기 위하여, 상기 제1 누적 데이터율과 상기 제2 누적 데이터율 사이의 차이를 상기 제1 시점과 상기 제2 시점 사이의 차로 나눈다.
다음, 상기 컨트롤러(100)는 상기 연결 포트 P11의 잔여 데이터율(residual data rate)을 획득하기 위하여, 상기 연결 포트 P11의 평균 데이터율(average data rate)을 상기 연결 포트 P11의 지원율(support rate)로부터 뺄 수 있다.
그리고, 상기 컨트롤러(100)는 상기 연결 포트 P11에 대응하는 상기 링크 L1의 코스트를 획득하기 위하여, 상기 연결 포트 P11의 상기 잔여 데이터율(residual data rate)을 상기 연결 포트 P11의 지원율(support rate)로 나눌 수 있다.
이와 같은 과정을 통해 , 상기 연결 포트 P11의 지원율(support rate)이 상기 연결 포트 P11의 평균 데이터율(average data rate)보다 훨씬 클 때, 상기 링크 L1의 코스트는 낮고, 반면, 상기 연결 포트 P11의 지원율(support rate)이 상기 연결 포트 P11의 평균 데이터율(average data rate)보다 미미하게 클 때, 상기 링크 L1은 이미 혼잡 상태에 있는 것이고, 상기 링크 L1의 코스트는 높다.
상기와 같은 방법으로, 상기 컨트롤러(100)는 상기 링크들 L1 ~ L6의 코스트들을 획득할 수 있다. 상기 컨트롤러(100)는 주기적으로 그리고 끊임없이 상기 노드들 N1 ~ N5의 연결 포트들 P11 ~ P52의 상기 누적 데이터율을 수신하고, 더욱이 상기 가장 최신에 수신된 누적 데이터율과 두번째로 최신에 수신된 데이터율에 의해 상기 평균 데이터율을 산출하기 때문에, 상기 링크들 L1 ~ L6의 코스트들은 시간에 따라 동적으로 변경될 수 있다는 것을 주목해야 한다.
또한, 본 발명의 실시예에 따른 상기 노드들 N1 ~ N5의 각각은 제로(0) 이상의 패킷 포워딩 규칙들(예를 들어, 오픈플로우 플로우 엔트리(OpenFlow flow entries))을 저장하기 위하여 사용되는 포워딩 테이블(예를 들어, 오픈플로우 플로우 테이블(OpenFlow flow table))을 포함할 수 있다.
상기 노드들 N1 ~ N5는 상기 패킷 포워딩 규칙들에 따라 상기 패킷들을 포워딩할 수 있다. 패킷이 상기 노드들 N1 ~ N5 중 어느 하나에 입력될 때, 상기 노드들 N1 ~ N5에 있는 상기 패킷에 대응하는 패킷 포워딩 규칙이 없다면, 상기 노드들 N1 ~ N5는 상기 컨트롤러(100)로 상기 경로 계획 요청(route planning request)을 전송할 수 있다.
어떤 일부 실시예에서, 상기 경로 계획 요청은 출발지-목적지 페어의 데이터를 포함할 수 있다. 예를 들어, 상기 출발지-목적지 페어의 출발지 노드(source node)는 상기 경로 계획 요청을 전송하는 노드들 N1 ~ N5 중 하나이다. 예를 들어, 상기 목적지 노드(destination node)는 상기 패킷이 도착하기를 원하는 노드들 N1 ~ N5 중 하나이다.
상기 컨트롤러(100)는 상기 경로 계획 요청을 수신한 후에, 상기 연결 포트들 P11 ~ P52의 데이터율과 상기 연결 포트들 P11 ~ P52의 지원율에 의해 상기 링크들 L1 ~ L6의 코스트들을 각각 산출할 수 있다.
더욱이, 상기 경로 계획 요청, 상기 네트워크 시스템(10)에 상응하는 상기 네트워크 토폴로지 다이어그램 및 상기 링크들 L1 ~ L6의 비용들에 의해, 상기 컨트롤러(100)는 링크 코스트(link-cost)의 가장 작은 합을 가지는 상기 후보 경로들중 하나를 상기 출발지-목적지 페어 사이의 패킷 전송 경로로서 탐색하기 위하여, 상기 출발지-목적지 페어에 대해 최단 경로 우선 알고리즘(shortest path first algorithm)을 실행한다.
예를 들어, 상기 컨트롤러(100)는 상기 링크들 L1 ~ L6의 코스트들이 되는 가중치를 가지고, 상술한 상기 출발지-목적지 페어에 대해 최단 경로 우선 알고리즘(예를 들어, 다이크스트라 알고리즘(Dijkstra algorithm))을 실행한다.
그런 다음, 상기 컨트롤러(100)는 상기 패킷 전송 경로에 상응하는 적어도 하나의 패킷 포워딩 규칙을 상기 패킷 전송 경로를 지나가는 적어도 하나의 노드들이 포함하고 있는 적어도 하나의 포워딩 테이블들에 각각 작성할 수 있다. 결과적으로, 상술한 출발지-목적지 페어의 상기 패킷은 상기 패킷 전송 경로를 통해 전송될 수 있다.
예를 들어, 상기 노드 N1이 상기 컨트롤러(100)로 경로 계획 요청을 전송한 경우로 가정한다. 상기 경로 계획 요청의 상기 출발지-목적지 페어의 출발지 노드는 상기 노드 N1이고, 상기 출발지-목적지 페어의 목적지 노드는 노드 N2이다.
상기 노드 N1에 의하여 전송된 경로 계획 요청을 수신한 때에, 상기 컨트롤러(100)는 상기 모든 링크들 N1 ~ N6의 코스트들을 합산할 수 있다. 더욱이, 상기 네트워크 시스템(10)에 상응하는 상기 네트워크 토폴로지 다이어그램과 상기 링크들 L1 ~ L6의 코스트들에 의해, 상기 컨트롤러(100)는 상기 링크 코스트(link-cost)의 가장 작은 합을 가지는 후보 경로들 중 하나를 패킷 전송 경로(예를 들어, 상기 노드 N1과 상기 노드 N2 사이의 (N1 → N4 → N2))로서 탐색한다.
다음, 상기 컨트롤러(100)는 상기 패킷 전송 경로 (N1 → N4 → N2)를 따라 상기 패킷 포워딩 규칙들을 상기 노드 N1과 상기 노드 N4에 작성한다. 예를 들어, 상기 컨트롤러(100)는 상기 출발지-목적지 페어의 패킷이 상기 연결 포트 P12로부터 전송되도록 하기 위하여, 상기 패킷 포워딩 규칙을 상기 노드 N1의 포워딩 테이블에 새롭게 추가할 수 있다.
그리고, 상기 컨트롤러(100)는 상기 출발지-목적지 페어의 패킷이 상기 연결 포트 P42로부터 전송되도록 하기 위하여, 상기 패킷 포워딩 규칙을 상기 노드 N4의 포워딩 테이블에 새롭게 추가할 수 있다. 따라서, 상기 출발지-목적지 페어의 상기 패킷은 가장 낮은 링크 코스트를 가지는 경로를 통해 전송될 수 있다.
또한, 본 발명의 실시예에 따른 상기 컨트롤러(100)는 상기 패킷 포워딩 규칙들 중 적어도 하나에 오류 시간(failure time)을 설정할 수 있다. 따라서, 상기 패킷 포워딩 규칙들 중 하나가 오류 시간을 초과한 후에는, 상기 대응하는 노드들 N1 ~ N5 중 하나는 상기 패킷 포워딩 규칙들 중 하나를 제거할 수 있다.
따라서, 상기 패킷 포워딩 규칙을 제거한 후에, 상기 출발지-목적지 페어의 상기 패킷이 상기 노드들 N1 ~ N5로 다시 입력되면, 대응하는 패킷 포워딩 규칙이 상기 노드들 N1 ~ N5 사이에서 탐색되지 않기 때문에, 상기 노드들 N1 ~ N5는 상기 경로 계획 요청을 상기 컨트롤러(100)로 전송할 수 있다.
그래서, 상기 컨트롤러(100)는 상기 출발지-목적지 페어 사이의 상기 패킷 전송 경로가 시간에 따라 업데이트될 수 있도록 하기 위하여, 상기 출발지-목적지 페어 사이의 상기 패킷 전송 경로를 다시 계획한다.
본 발명의 다른 실시예는 라우팅 방법을 제공하는 것이다. 상기 라우팅 방법은 도 1에 도시된 네트워크 시스템과 동일 또는 유사한 네트워크 시스템에 적용될 수 있다. 설명을 용이하게 하기 위하여, 이하에서 설명할 동작 방법은 하나의 예로서, 도 1에서 보여주는 구조를 가지고 설명된다. 그러나, 이하에서 설명되는 동작 방법은 도 1의 구성에 의하여 묘사되는 것으로 한정되지 않는다.
다음에서 설명되는 동작 방법의 단계들은 달리 명시하지 않는 한, 명확하게 차례로 배열되지 않는다. 또한, 이하에서 설명되는 단계들은 동시에 실행될 수도 있고, 또는 이하에서 설명되는 단계들의 실행 시간은 중첩될 수도 있다.
도 2는 본 발명의 실시예에 따른 라우팅 방법(200)을 보여주는 플로우챠트이다. 상기 라우팅 방법(200)은 단계 S0에서 단계 S7을 포함할 수 있다.
단계 S0에서, 상기 노드들 N1 ~ N5는 상기 컨트롤러(100)에게 상기 노드들 N1 ~ N5의 식별 정보(identification information)와 상기 노드들 N1 ~ N5의 연결 포트들 P11 ~ P52의 지원율(support)을 전송할 수 있다.
단계 S1에서, 상기 컨트롤러(100)는 상기 네트워크 시스템(10)에 상응하는 네트워크 토폴로지(topology) 다이어그램(diagram)을 구성하기 위하여 상기 노드들 N1 ~ N5에 의하여 전송된 상기 노드들 N1 ~ N5의 식별 정보를 수신할 수 있고, 상기 노드들 N1 ~ N5에 의하여 전송된 상기 연결 포트들 P11 ~ P52의 지원율(support rates)을 더 수신할 수 있다.
예를 들어, 상기 컨트롤러(100)는 인접 노드들 N1 ~ N5가 서로 자신들의 식별 정보를 교환하도록 하기 위하여, 상기 노드들 N1 ~ N5에게 링크 계층 탐색 프로토콜(LLDP : link layer discovery protocol) 패킷을 상기 인접 노드들 N1 ~ N5에게 브로드캐스팅 하도록 지시할 수 있다.
그런 후, 상기 컨트롤러(100)는 상기 노드들 N1 ~ N5가 상기 컨트롤러(100)에게 상기 인접 노드들 N1 ~ N5의 식별 정보를 전달하는 것을 야기하기 위하여, 상기 노드들 N1 ~ N5에게 다른 명령(instruction)을 전송할 수 있다.
이와 같은 방법으로, 상기 컨트롤러(100)는 상기 노드들 N1 ~ N5의 식별 정보를 통해 상기 네트워크 시스템(10)에 상응하는 네트워크 토폴로지 다이어그램을 알 수 있다. 또한, 상기 컨트롤러(100)는 상기 노드들 N1 ~ N5에게 명령들을 전송하는 것을 통해 상기 노드들 N1 ~ N5가 상기 연결 포트들 P11 ~ P52의 지원율(support rates)을 다시 전송하게 할 수 있다.
단계 S2에서, 상기 컨트롤러(100)는 상기 연결 포트들 P11 ~ P52의 데이터율(data rates)을 모니터링할 수 있다. 예를 들어, 상기 컨트롤러(100)는 상기 노드들 N1 ~ N5가 상기 컨트롤러(100)에게 상기 연결 포트들 P11 ~ P52의 데이터율(data rates)을 전송할 수 있도록 하기 위하여, 주기적으로(예를 들어, 사전에 설정된 기간의 간격마다) 상기 노드들 N1 ~ N5로 명령들을 전송할 수 있다.
다음, 단계 S3에서, 상기 컨트롤러(100)는 상기 노드들 N1 ~ N5 중 어느 하나에 의하여 전송된 경로 계획 요청이 수신되는지를 판단할 수 있다. 만약 상기 경로 계획 요청이 수신되지 않는다면, 상기 컨트롤러(100)는 상기 연결 포트들 P11 ~ P52의 데이터율(data rates)을 모니터링하는 것을 계속한다.
만약 상기 경로 계획 요청이 수신된다면, 상기 컨트롤러(100)는 상기 연결 포트들 P11 ~ P52의 지원율(support rates)과 데이터율(data rates)에 의해 링크들 L1 ~ L6의 코스트(cost)들을 각각 산출할 수 있다(단계 S4).
예를 들어, 상기 컨트롤러(100)는 상기 연결 포트들 P11 ~ P52의 지원율(support rates)과 현재의 데이터율(data rates)을 통해 대응하는 링크들 L1 ~ L6의 혼잡도(congestion level)를 결정할 수 있고, 상기 링크들 L1 ~ L6의 코스트들을 더 산출할 수 있다.
그 다음, 단계 S5에서, 상기 경로 계획 요청 및 상기 네트워크 시스템(10)에 상응하는 상기 네트워크 토폴로지에 따라 출발지-목적지 페어(source-destination pair) 사이의 복수의 후보 경로들을 탐색할 수 있다.
또한, 상기 컨트롤러(100)는 상기 각각의 후보 경로의 링크 코스트(link-cost) 합을 획득하기 위하여, 상기 각각의 후보 경로들에 의하여 지나가게 되는 상기 링크들 L1 ~ L6의 코스트들을 합산한다(단계 S6).
상기 컨트롤러(100)는 링크 코스트(link-cost)의 가장 작은 합을 가지는 상기 후보 경로들 중 하나를 상기 출발지-목적지 페어 사이의 패킷 전송 경로로서 선택한다(단계 S7). 상기 출발지-목적지 페어(source-destination pair)는 상기 경로 계획 요청(route planning request)에 따른다.
예를 들어, 상기 출발지-목적지 페어의 출발지 노드가 N1이고 상기 출발지-목적지 페어의 목적지 노드가 N2라면, 상기 컨트롤러는 상기 네트워크 시스템(10)에 상응하는 상기 네트워크 토폴로지 다이어그램으로부터 두개의 후보 경로들 (N1 → N3 → N2) 및 (N1 → N4 → N2)를 각각 탐색할 수 있다. 그런 다음, 상기 컨트롤러는 상기 링크들의 코스트들을 합산한다.
만약, 상기 후보 경로 (N1 → N3 → N2)의 링크 코스트(link-cost)의 합이 상기 후보 경로 (N1 → N4 → N2)의 링크 코스트(link-cost)의 합보다 더 작으면, 상기 컨트롤러(100)는 상기 후보 경로 (N1 → N3 → N2)를 상기 출발지-목적지 사이의 패킷 전송 경로로서 선택한다.
이와 같은 단계들을 통하여, 상기 출발지-목적지 페어 사이의 전송 경로를 계획할 때, 상기 컨트롤러(100)는 상기 네트워크 내에서 데이터율(data rate)의 균형을 유지하고, 상기 네트워크 혼잡을 방지하며, 상기 네트워크의 신뢰성을 향상시키기 위하여, 상기 가장 작은 링크 코스트(link-cost)의 합을 가지는 상기 후보 경로들 중 하나를 상기 패킷 전송 경로로서 선택할 수 있다.
본 발명의 실시예에 따른 상기 단계 2에서, 상기 컨트롤러(100)는 상기 노드들 N1 ~ N5의 모든 연결 포트들 P11 ~ P52의 누적 데이터율(cumulative data rates)을 주기적으로 수신할 수 있다.
상기 연결 포트 P11을 가지고 예를 들면, 상기 컨트롤러(100)는 제1 시점(예를 들어, 0번째초 순간)에서 상기 노드 N1의 연결 포트 P11의 제1 누적 데이터율을 수신할 수 있다. 그런 다음, 사전에 설정된 기간(예를 들어, 30초) 후에, 상기 컨트롤러는 제2 시점(예를 들어, 30번째초 순간)에서 다시 상기 노드 N1의 연결 포트 P11의 제2 누적 데이터율을 수신할 수 있다.
바로 이때, 상기 컨트롤러(100)가 상기 노드들 N1 ~ N5에 의하여 전송된 경로 계획 요청을 받으면(수신하면)(단계 S3), 상기 컨트롤러(100)는 상기 연결 포트 P11의 평균 데이터율(average data rate)을 획득하기 위하여, 상기 제1 누적 데이터율과 상기 제2 누적 데이터율 사이의 차이를 상기 제1 시점과 상기 제2 시점 사이의 차로 나눈다.
다음, 상기 컨트롤러(100)는 상기 연결 포트 P11의 잔여 데이터율(residual data rate)을 획득하기 위하여, 상기 연결 포트 P11의 평균 데이터율(average data rate)을 상기 연결 포트 P11의 지원율(support rate)로부터 뺄 수 있다.
그리고, 상기 컨트롤러(100)는 상기 연결 포트 P11에 대응하는 상기 링크 L1의 코스트를 획득하기 위하여, 상기 연결 포트 P11의 상기 잔여 데이터율(residual data rate)을 상기 연결 포트 P11의 지원율(support rate)로 나눌 수 있다(단계 S4).
즉, 상기 컨트롤러(100)는 상기 명령을 받으면, 상기 연결 포트 P11에 대한 평균 데이터율(average data rate)을 획득하기 위하여, 연결 포트 P11에 대한 가장 최신에 수신된 누적 데이터율과 두 번째로 최신에 수신된 누적 데이터율 사이의 차이를 상기 두개의 누적 데이터율들의 수신 사이의 시간 간격으로(시간 차로) 나눈다. 다음, 상기 연결 포트 P11의 평균 데이터율은 상기 링크 L1의 코스트를 산출하기 위하여 사용된다.
상술한 단계들을 통하여 상기 링크들의 코스트에 대한 산출이 이루어지는 동안, 상기 연결 포트 P11의 지원율(support rate)이 상기 연결 포트 P11의 평균 데이터율(average data rate)보다 훨씬 클 때, 상기 링크 L1의 코스트는 낮고, 반면, 상기 연결 포트 P11의 지원율(support rate)이 상기 연결 포트 P11의 평균 데이터율(average data rate)보다 미미하게 클 때, 상기 링크 L1은 이미 혼잡 상태에 있는 것이고, 상기 링크 L1의 코스트는 높다.
상기와 같은 방법으로, 상기 컨트롤러(100)는 상기 링크들 L1 ~ L6의 코스트들을 획득할 수 있다. 상기 컨트롤러(100)는 주기적으로 그리고 끊임없이 상기 노드들 N1 ~ N5의 연결 포트들 P11 ~ P52의 상기 누적 데이터율을 수신하고, 더욱이 상기 가장 최신에 수신된 누적 데이터율과 두번째로 최신에 수신된 데이터율에 의해 상기 평균 데이터율을 산출하기 때문에, 상기 링크들 L1 ~ L6의 코스트들은 시간에 따라 동적으로 변경될 수 있다는 것을 주목해야 한다.
본 발명의 실시예에 따른 상기 단계 S5에서, 상기 경로 계획 요청을 수신한 후에, 상기 컨트롤러(100)는 상기 경로 계획 요청, 상기 네트워크 시스템(10)에 상응하는 상기 네트워크 토폴로지 다이어그램 및 상기 링크들 L1 ~ L6의 코스트들에 의해, 상기 경로 계획 요청에 대응하는 상기 출발지-목적지 페어에 대해 최단 경로 우선 알고리즘(shortest path first algorithm)을 실행할 수 있다.
상기 링크 코스트의 가장 작은 합을 가지는 후보 경로는 상기 출발지-목적지 페어의 패킷 전송 경로로서 선택된다. 예를 들어, 상기 컨트롤러(100)는 상기 링크들 L1 ~ L6의 코스트들을 가중치(weights)로서 사용할 수 있고, 상술한 상기 출발지-목적지 페어에 대해 최단 경로 우선 알고리즘(예를 들어, 다이크스트라 알고리즘(Dijkstra algorithm))을 실행할 수 있다.
그리고, 상기 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나를 상기 출발지-목적지 페어 사이의 패킷 전송 경로로서 선택할 수 있다.
그런 다음, 상기 단계 S60에서, 상기 컨트롤러(100)는 상기 패킷 전송 경로에 의하여 통과되는 적어도 하나의 노드들이 포함하고 있는 적어도 하나의 포워딩 테이블들에 적어도 하나의 패킷 포워딩 규칙을 각각 작성할 수 있다. 상기 포워딩 테이블들과 상기 패킷 포워딩 규칙들에 대한 구체적인 설명은 이전에 설명한 본 발명의 실시예에 따른 네트워크 시스템에서 언급한 것에 의하여 이해될 수 있다.
또한, 본 발명의 실시예에 따른 라우팅 방법(200)은 상기 컨트롤러(100)를 통해 상기 패킷 포워딩 규칙들 중 적어도 하나에 오류 시간(failure time)을 설정할 수 있는 단계를 더 포함할 수 있다. 따라서, 상기 적어도 하나의 패킷 포워딩 규칙들이 상기 오류 시간을 초과한 후에는, 상기 대응하는 노드들 N1 ~ N5 중 하나는 상기 패킷 포워딩 규칙들 중 하나를 제거할 수 있다.
따라서, 상기 패킷 포워딩 규칙을 제거한 후에, 상기 출발지-목적지 페어의 상기 패킷이 상기 노드들 N1 ~ N5로 다시 입력되면, 대응하는 패킷 포워딩 규칙이 상기 노드들 N1 ~ N5 사이에서 탐색되지 않기 때문에, 상기 노드들 N1 ~ N5는 상기 경로 계획 요청을 상기 컨트롤러(100)로 다시 전송할 수 있다.
그래서, 상기 컨트롤러(100)는 상기 출발지-목적지 페어 사이의 상기 패킷 전송 경로가 시간에 따라 업데이트될 수 있도록 하기 위하여, 상기 출발지-목적지 페어 사이의 상기 패킷 전송 경로를 다시 계획한다.
이상에서 본 발명에 따른 실시예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.
10 : 네트워크 시스템 100 : 컨트롤러
200 : 라우팅 방법

Claims (10)

  1. 컨트롤러와 다수의 노드들을 포함하여 구성되되, 상기 다수의 노드들의 각각은 적어도 하나의 연결 포트를 포함하고, 모든 두개의 인접 노드들은 다수의 링크들을 형성하기 위하여 상기 다수의 노드들의 적어도 하나의 연결 포트를 통해 연결되는 네트워크 시스템에 적용되는 라우팅 방법에 있어서,
    상기 다수의 노드들의 식별 정보와 상기 다수의 노드들의 적어도 하나의 연결 포트에 대한 지원율을 상기 다수의 노드들을 통해 상기 컨트롤러로 전송하는 단계;
    상기 컨트롤러를 통해, 네트워크 토폴로지 다이어그램을 구성하기 위한 상기 식별 정보를 수신하고 상기 다수의 노드들의 적어도 하나의 연결 포트에 대한 지원율을 수신하는 단계;
    상기 컨트롤러를 통해, 상기 다수의 노드들의 적어도 하나의 연결 포트의 데이터율을 모니터링하는 단계;
    상기 컨트롤러를 통해, 경로 계획 요청을 수신하는 단계;
    상기 컨트롤러를 통해, 상기 경로 계획 요청을 수신한 후에, 상기 다수의 노드들의 적어도 하나의 연결 포트의 데이터율과 상기 다수의 노드들의 적어도 하나의 연결 포트의 지원율에 의해 상기 다수의 링크들의 코스트들을 각각 산출하는 단계;
    상기 컨트롤러를 통해, 상기 경로 계획 요청 및 상기 네트워크 토폴로지 다이어그램에 의해 출발지-목적지 페어 사이의 복수의 후보 경로들을 탐색하는 단계;
    상기 컨트롤러를 통해, 상기 각각의 후보 경로에 대한 링크 코스트의 합을 획득하기 위하여, 상기 각각의 후보 경로에 의하여 통과되는 상기 다수의 링크들의 코스트들을 합산하는 단계; 및
    상기 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나를 상기 출발지- 목적지 페어 사이의 패킷 전송 경로로서 선택하는 단계를 포함하여 이루어진 것을 특징으로 하는 라우팅 방법.
  2. 청구항 1에 있어서,
    상기 다수의 노드들의 적어도 하나의 연결 포트의 데이터율을 모니터링하는 단계는,
    상기 컨트롤러를 통해, 제1 시점에서 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 제1 누적 데이터율을 수신하는 과정; 및
    상기 컨트롤러를 통해, 제2 시점에서 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 제2 누적 데이터율을 수신하는 과정을 포함하여 이루어진 것을 특징으로 하는 라우팅 방법.
  3. 청구항 2에 있어서,
    상기 다수의 링크들의 코스트들을 각각 산출하는 단계는,
    상기 컨트롤러를 통해, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 평균 데이터율을 획득하기 위하여, 상기 제1 누적 데이터율과 상기 제2 누적 데이터율의 차를 상기 제1 시점과 상기 제2 시점 사이의 차이로 나누는 과정;
    상기 컨트롤러를 통해, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 잔여 데이터율을 획득하기 위하여, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 평균 데이터율을 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 지원율로부터 빼는 과정; 및
    상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대응하는 상기 링크들의 코스트들 중 하나를 획득하기 위하여, 상기 컨트롤러를 통해, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 잔여 데이터율을 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나에 대한 지원율로 나누는 과정을 포함하여 이루어진 것을 특징으로 하는 라우팅 방법.
  4. 청구항 1에 있어서,
    상기 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나를 상기 출발지- 목적지 페어 사이의 패킷 전송 경로로서 선택하는 단계는,
    상기 컨트롤러를 통해, 적어도 하나의 패킷 포워딩 규칙 각각을 상기 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나에 따라 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나를 지나가게 되는 상기 다수의 노드들 중 하나에 포함되는 적어도 하나의 포워딩 테이블에 작성하는 과정을 포함하여 이루어진 것을 특징으로 하는 라우팅 방법.
  5. 청구항 4에 있어서,
    상기 출발지-목적지 페어 사이의 상기 패킷 전송 경로가 시간에 따라 업데이트될 수 있도록, 상기 컨트롤러를 통해 상기 적어도 하나의 패킷 포워딩 규칙의 오류 시간을 설정하는 과정을 더 포함하여 이루어진 것을 특징으로 하는 라우팅 방법.
  6. 다수의 노드들과 컨트롤러를 포함하여 구성되되,
    상기 다수의 노드 각각은 적어도 하나의 연결 포트를 포함하고, 모든 두개의 인접 노드들은 다수의 링크들을 형성하기 위하여 상기 다수의 노드들의 적어도 하나의 연결 포트를 통해 연결되고, 상기 다수의 노드들은 각각 상기 컨트롤러에 상기 다수의 노드들의 식별 정보와 상기 다수의 노드들의 적어도 하나의 연결 포트의 지원율을 출력하기 위하여 사용되며,
    상기 컨트롤러는 네트워크 토폴로지 다이어그램을 구성하기 위하여 상기 식별 정보를 수신하고, 상기 다수의 노드들의 적어도 하나의 연결 포트의 지원율을 수신하고, 상기 다수의 노드들의 상기 적어도 하나의 연결 포트의 데이터율을 모니터링하고, 경로 계획 요청을 수신하기 위하여 사용되며,
    상기 컨트롤러는 경로 계획 요청을 수신한 후에, 상기 다수의 노드들의 적어도 하나의 연결 포트의 데이터율과 상기 다수의 노드들의 적어도 하나의 연결 포트의 지원율에 의해 상기 다수의 링크들의 코스트들을 각각 산출하고, 상기 경로 계획 요청과 상기 네트워크 토폴로지 다이어그램에 따라 출발지-목적지 페어 사이의 복수의 후보 경로들을 탐색하고, 각 후보 경로의 링크 코스트의 합을 획득하기 위하여 각 후보 경로를 지나가게 되는 복수의 링크들의 코스트들을 합산하며, 링크 코스트의 가장 작은 합을 가지는 상기 후보 경로들 중 하나를 상기 출발지-목적지 페어 사이의 패킷 전송 경로로서 선택하는 것을 특징으로 하는 네트워크 시스템.
  7. 청구항 6에 있어서,
    상기 컨트롤러는 제1 시점에서 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 제1 누적 데이터율을 수신하고, 제2 시점에서 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 제2 누적 데이터율을 수신하며, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 평균 데이터율을 획득하기 위하여 상기 제1 누적 데이터율과 상기 제2 누적 데이터율 사이의 차이를 상기 제1 시점과 상기 제2 시점 사이의 차이로 나누기 위하여 더 사용되는 것을 특징으로 하는 네트워크 시스템.
  8. 청구항 7에 있어서,
    상기 컨트롤러는 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 잔여 데이터율을 획득하기 위하여 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 상기 평균 데이터율을 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 지원율로부터 빼고, 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트에 대응하는 링크들의 코스트들 중 하나를 획득하기 위하여 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 상기 잔여 데이터율을 상기 다수의 노드들 중 하나에 포함되는 상기 적어도 하나의 연결 포트 중 하나의 지원율로 나누기 위하여 더 사용되는 것을 특징으로 하는 네트워크 시스템.
  9. 청구항 6에 있어서,
    상기 컨트롤러는 적어도 하나의 패킷 포워딩 규칙 각각을 상기 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나에 따라 링크 코스트의 가장 작은 합을 가지는 후보 경로들 중 하나를 지나가게 되는 상기 다수의 노드들 중 하나에 포함되는 적어도 하나의 포워딩 테이블에 각각 작성하기 위하여 더 사용되는 것을 특징으로 하는 네트워크 시스템.
  10. 청구항 9에 있어서,
    상기 컨트롤러는 상기 출발지-목적지 페어 사이의 상기 패킷 전송 경로가 시간에 따라 업데이트될 수 있도록, 상기 적어도 하나의 패킷 포워딩 규칙의 오류 시간을 설정하기 위하여 더 사용되는 것을 특징으로 하는 네트워크 시스템.
KR1020130054616A 2012-11-20 2013-05-14 네트워크 시스템 및 라우팅 방법 KR101406878B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210473295.5A CN103841015A (zh) 2012-11-20 2012-11-20 网络系统及路由方法
CN201210473295.5 2012-11-20

Publications (2)

Publication Number Publication Date
KR20140064600A true KR20140064600A (ko) 2014-05-28
KR101406878B1 KR101406878B1 (ko) 2014-06-13

Family

ID=48784619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130054616A KR101406878B1 (ko) 2012-11-20 2013-05-14 네트워크 시스템 및 라우팅 방법

Country Status (6)

Country Link
US (1) US8897141B2 (ko)
JP (1) JP2014103656A (ko)
KR (1) KR101406878B1 (ko)
CN (1) CN103841015A (ko)
DE (1) DE102013104304A1 (ko)
GB (1) GB2508048A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102468716B1 (ko) 2022-03-23 2022-11-17 이홍근 가구용 친환경 천연가죽 및 이의 제조 방법

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860132B2 (en) * 2013-11-04 2018-01-02 Maged E. Beshai Multiple petabit-per-second switching system based on orthogonal formations of sets of access nodes
WO2016003454A1 (en) * 2014-07-02 2016-01-07 Hewlett-Packard Development Company, L.P. Managing port connections
US9813301B2 (en) 2014-08-20 2017-11-07 Nec Corporation Optimization framework for multi-tenant data centers
EP2993842A1 (en) * 2014-09-05 2016-03-09 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Search for disjoint paths through a network
KR101600231B1 (ko) 2015-02-23 2016-03-04 한양대학교 산학협력단 경로 계산 방법 및 그 장치
CN104734995B (zh) * 2015-02-28 2018-02-23 华为技术有限公司 一种链路汇聚流量上限的设置方法和网络控制器
TWI555351B (zh) * 2015-06-17 2016-10-21 國立清華大學 用於非循環網路的網路可靠度計算方法及其系統
CN106817299B (zh) 2015-11-27 2019-11-29 新华三技术有限公司 软件定义网络的表项生成方法和装置以及报文转发方法
EP3758298B1 (en) * 2016-03-02 2023-10-04 Huawei Technologies Co., Ltd. Network device management method and apparatus
CN107204924B (zh) 2016-03-18 2020-09-25 华为技术有限公司 链路发现方法及装置
CN105847151B (zh) * 2016-05-25 2019-03-29 安徽大学 一种面向软件定义网络的多约束QoS路由策略设计方法
JP6834795B2 (ja) * 2017-06-16 2021-02-24 富士通株式会社 通信制御装置、通信制御方法、及び、通信制御プログラム
US11240140B2 (en) 2018-02-20 2022-02-01 Anapaya Systems Ag Method and system for interfacing communication networks
US10733131B1 (en) 2019-02-01 2020-08-04 Hewlett Packard Enterprise Development Lp Target port set selection for a connection path based on comparison of respective loads
US11252034B1 (en) 2019-03-15 2022-02-15 Juniper Networks, Inc. Generating candidate links and candidate paths before selecting links for an optimized optical network plan
US11252042B2 (en) 2019-04-12 2022-02-15 Huawei Technologies Co., Ltd. Systems and methods for communication network customization
EP3941006B1 (en) 2020-07-16 2022-10-26 Anapaya Systems AG System and method for carrying and optimizing internet traffic over a source-selected path routing network
EP3941003B1 (en) 2020-07-16 2022-09-28 Anapaya Systems AG Achieving highly available autonomous systems (as) in a source-selected path routing network
CN115134293B (zh) * 2022-09-01 2022-11-25 浪潮通信信息系统有限公司 电信路由推荐方法、装置及服务器

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0222948A (ja) * 1988-07-12 1990-01-25 Nec Corp 最小コストルーテイング制御方式
JP2723097B2 (ja) * 1995-12-04 1998-03-09 日本電気株式会社 Qosルーティング装置
US7242679B1 (en) 2002-10-28 2007-07-10 At&T Corp. Scheme for routing circuits with dynamic self-adjusting link weights in a network
US7689693B2 (en) * 2003-03-31 2010-03-30 Alcatel-Lucent Usa Inc. Primary/restoration path calculation in mesh networks based on multiple-cost criteria
US7376121B2 (en) * 2003-06-06 2008-05-20 Microsoft Corporation Method and system for global routing and bandwidth sharing
JP4213546B2 (ja) * 2003-09-09 2009-01-21 富士通株式会社 通信装置および通信方法
JP4702848B2 (ja) * 2006-07-27 2011-06-15 Kddi株式会社 リンク帯域制約制御における帯域制約設定方法およびパス設定方法
US8130700B2 (en) * 2007-06-15 2012-03-06 Silver Spring Networks, Inc. Method and system for providing network and routing protocols for utility services
US8130657B2 (en) * 2008-03-18 2012-03-06 Palo Alto Research Center Incorporated Network routing using a retransmission-time-based link metric
US20090257365A1 (en) * 2008-04-11 2009-10-15 Tae In Hwang Method of distributing files over network
US7995481B2 (en) * 2008-07-31 2011-08-09 Cisco Technology, Inc. Hop cost as secondary metric for equal cost multi-paths
US20110164546A1 (en) * 2008-09-04 2011-07-07 Mishra Rajesh K Vehicular mobility vector based routing
CN101583057B (zh) * 2009-06-11 2013-08-07 中兴通讯股份有限公司 网络选路方法及装置
US9014008B2 (en) * 2009-08-12 2015-04-21 Empire Technology Development Llc Forward-looking probabilistic statistical routing for wireless ad-hoc networks with lossy links
WO2011118574A1 (ja) * 2010-03-24 2011-09-29 日本電気株式会社 通信システム、制御装置、遅延測定方法およびプログラム
US8862775B2 (en) * 2010-11-26 2014-10-14 Industrial Technology Research Institute Network server and load balancing routing method for networks thereof
JP5716587B2 (ja) * 2011-07-19 2015-05-13 富士通株式会社 経路決定装置,経路決定方法,管理プログラム及び管理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102468716B1 (ko) 2022-03-23 2022-11-17 이홍근 가구용 친환경 천연가죽 및 이의 제조 방법

Also Published As

Publication number Publication date
CN103841015A (zh) 2014-06-04
GB2508048A (en) 2014-05-21
KR101406878B1 (ko) 2014-06-13
DE102013104304A1 (de) 2014-05-22
JP2014103656A (ja) 2014-06-05
GB201309284D0 (en) 2013-07-10
US8897141B2 (en) 2014-11-25
US20140140216A1 (en) 2014-05-22

Similar Documents

Publication Publication Date Title
KR101406878B1 (ko) 네트워크 시스템 및 라우팅 방법
US11695699B2 (en) Fault tolerant and load balanced routing
CA2843366C (en) Resiliency-aware hybrid design of controller-switch connectivity in a split-architecture system
EP2911348B1 (en) Control device discovery in networks having separate control and forwarding devices
JP3546764B2 (ja) ネットワークに備えられた負荷分散サーバ及び負荷分散サーバを備えるノード
KR20230022265A (ko) 내부 게이트웨이 프로토콜 플러딩 최소화
JP4968117B2 (ja) 経路計算装置および経路計算システム
US20130215769A1 (en) Controller placement for fast failover in the split architecture
US8681634B2 (en) Systems and methods for determining protection paths in a multi-domain network
CN101656732A (zh) 路径控制系统
US20140140210A1 (en) Network system and load balancing method
JP2006279482A (ja) ネットワーク、ルータ装置、それに用いる切替方法及びそのプログラム並びに記録媒体
CA2418923C (en) A node, an optical/electrical path integrated network using the node, and a program which controls the node
WO2012137501A1 (en) Control server, network control method, and program
TWI487330B (zh) 網路系統及路由方法
JP5375833B2 (ja) ノード装置、経路制御方法、経路計算システム、及び経路計算装置
Kadhar et al. An Efficient Monarchic Reconfiguration Protocol with Deadlock Freedom on Interconnection Networks
JP2011199383A (ja) 閉路検出方法、閉路検出システム、及び閉路検出用プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180517

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190516

Year of fee payment: 6