KR101958943B1 - Method and apparatus for multicast routing in software defined networking environment - Google Patents

Method and apparatus for multicast routing in software defined networking environment Download PDF

Info

Publication number
KR101958943B1
KR101958943B1 KR1020170149135A KR20170149135A KR101958943B1 KR 101958943 B1 KR101958943 B1 KR 101958943B1 KR 1020170149135 A KR1020170149135 A KR 1020170149135A KR 20170149135 A KR20170149135 A KR 20170149135A KR 101958943 B1 KR101958943 B1 KR 101958943B1
Authority
KR
South Korea
Prior art keywords
node
multicast
routing
network
tree
Prior art date
Application number
KR1020170149135A
Other languages
Korean (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 아토리서치(주)
Priority to KR1020170149135A priority Critical patent/KR101958943B1/en
Application granted granted Critical
Publication of KR101958943B1 publication Critical patent/KR101958943B1/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/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • 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/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation

Landscapes

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

Abstract

The present invention relates to a multicast routing method, apparatus and computer program. According to one aspect of the present invention, a method for performing multicast routing in a software defined networking environment comprises the steps of selecting a rendezvous point (RP) of a first multicast group and performing multicast routing using the RP. The step of selecting the RP includes (a) setting a second network equipment connected to a server or a host of a first network equipment belonging to the first multicast group as an edge node and a remaining third network equipment as a node; (b) calculating a cost per node by using at least one of the number of hops between the node and the edge node or a link traffic; and (c) selecting a first node having a minimum path cost according to the calculation result as the RP. According to the present invention, a network traffic environment can be dynamically reflected by automatically selecting the RP based on a network topology and a link state.

Description

소프트웨어 정의 네트워킹 환경에서의 멀티캐스트 라우팅 방법 및 장치{METHOD AND APPARATUS FOR MULTICAST ROUTING IN SOFTWARE DEFINED NETWORKING ENVIRONMENT}[0001] METHOD AND APPARATUS FOR MULTICAST ROUTING IN SOFTWARE DEFINED NETWORKING ENVIRONMENT [0002]

본 발명은 멀티캐스트 라우팅 방법, 장치 및 컴퓨터 프로그램에 관한 것으로, 보다 자세하게는 소프트웨어 정의 네트워킹 환경에서의 멀티캐스트 라우팅 방법 및 장치에 관한 것이다. The present invention relates to a multicast routing method, apparatus and computer program, and more particularly, to a multicast routing method and apparatus in a software defined networking environment.

소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다. SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다.Software Defined Networking (SDN) is a technology that manages all the network devices in the network by an intelligent central management system. In the SDN technology, a controller provided in a form of software can perform processing instead of a control operation related to the packet processing performed by itself in a conventional hardware type network device, so that various functions can be developed and given over the existing network structure. The SDN system generally comprises a controller server for controlling the entire network, a plurality of open flow switches controlled by the controller server for processing packets, and a host corresponding to a lower layer of the open flow switch. Here, the open flow switch is only responsible for transmitting and receiving packets, and routing, management, and control of the packets are all performed in the controller server. In other words, separating the data planes and control planes that form the network equipment is the basic structure of the SDN system.

한편, 멀티캐스트 라우팅과 관련하여 대규모 네트워크 상에서 프로토콜에 의존하지 않는 멀티캐스트 라우팅을 가능하게 하는 라우팅 프로토콜로 PIM(Protocol Independent Multicast)이 있다. PIM은 밀집 모드(Dense Mode, DM)와 분산 모드(Sparse Mode, SM)로 구분할 수 있다. On the other hand, there is Protocol Independent Multicast (PIM) as a routing protocol that enables multicast routing that does not depend on protocols in a large network in relation to multicast routing. PIM can be divided into Dense Mode (DM) and Sparse Mode (SM).

PIM-DM(Protocol Independent Multicast-Dense Mode)은 기업이나 학교처럼 그룹 멤버가 특정 장소에 밀집된 LAN 환경에서 주로 활용되는 것으로, 각 라우터들이 멀티캐스팅에 참여할 가능성이 높을 때 사용된다. Protocol Independent Multicast-Dense Mode (PIM-DM) is mainly used in a LAN environment where group members are concentrated in a specific place, such as a company or a school, and is used when each router is likely to participate in multicasting.

PIM-SM(Protocol Independent Multicast-Sparse Mode)은 그룹 멤버가 여러 곳에 분산되어있는 환경에서 사용되는 것으로, 망 부담을 줄이면서 라우터가 기본적으로 보유하고 있는 포워딩 테이블을 활용하여 멀티캐스트 망을 구축하는 방식이다. 각 라우터들이 멀티캐스팅에 참여할 가능성이 상대적으로 낮을 때 사용되며, 공유 트리(Shared Tree)를 기반으로 전송 경로를 생성한다. PIM-SM은 멀티캐스트 패킷을 멀티캐스트 그룹으로 라우트 하고, WAN에서 효율적으로 분배 트리를 구축하도록 설계되어있다. PIM-SM은 어떤 라우팅 프로토콜이 멀티캐스트 라우팅 정보 베이스(Routing Information Base, RIB)에 들어가는지에 대한 라우트 정보를 사용할 수 있기 때문에 프로토콜 독립적이다. Protocol Independent Multicast-Sparse Mode (PIM-SM) is used in an environment where group members are distributed in various places. It is a method of constructing a multicast network by using a forwarding table that a router has basically while reducing network load to be. It is used when the possibility of each router participating in multicasting is relatively low, and a transmission path is created based on a shared tree. PIM-SM is designed to route multicast packets into multicast groups and efficiently construct distribution trees on the WAN. PIM-SM is protocol independent because it can use route information on which routing protocols enter the multicast routing information base (RIB).

PIM-SM에서 스트림 서버와 같은 소스의 멀티캐스트 트래픽은 먼저 랑데부 포인트(Randezvous Point, 이하 ‘RP’라 함)로 전달되고, RP는 멀티캐스트 트래픽 전송을 위한 공유 트리의 루트(root) 역할을 수행한다. 이후에는 RP와 인접 라우터 간의 정보 교환을 통해 멀티캐스트 트래픽 전송을 위한 최단 경로 트리(Shortest-Path Tree, 이하 SPT 라 함)가 생성된다. SPT는 소스 기반 트리라고도 불리는데, 전달 경로는 소스까지의 최단 유니캐스트 경로를 기준으로 한다. In PIM-SM, multicast traffic of a source such as a stream server is first delivered to a Randezvous Point (RP), and the RP serves as a root of a shared tree for multicast traffic transmission. do. Thereafter, a shortest-path tree (hereinafter referred to as SPT) is generated for multicast traffic transmission through information exchange between the RP and the neighboring routers. SPT is also referred to as a source-based tree, where the delivery path is based on the shortest unicast path to the source.

여기서 중요한 것은 어떤 라우터를 RP로 선택할지에 관한 것이다. RP 선택에는 정적 선택과 동적 선택 기법이 존재한다. 정적 선택 기법은 각 리프(leaf) 라우터를 그룹이나 그룹 집단의 주소로 구성하는 것으로, 특별한 알고리즘을 필요로 하지 않는다. What matters here is what router to choose as the RP. There are static selection and dynamic selection techniques for RP selection. The static selection scheme consists of each leaf router as the address of a group or group of groups and does not require any special algorithm.

동적 선택 기법은 도 1에 도시된 바와 같다. 도 1을 참조하면, 동적 선택 기법은 부트스트랩 메시지들을 생성하기 위해 부트스트랩 라우터(Bootstrap Router, BSR라 함)를 사용한다. 먼저, BSR과 C-RP(Candidate Rendezvous Point) 역할을 수행할 라우터를 수동으로 설정하고, C-RP가 주기적으로 자신의 정보를 포함한 광고 메시지를 BSR에 전송하면(A), BSR은 C-RP의 우선순위(Priority), 해시값(Hash value), IP 주소 정보 등 수집한 C-RP 정보를 기반으로 멀티캐스트 그룹 별로 RP를 맵핑한 RP-Set 정보를 생성한다. 그러면 BSR은 RP-Set정보를 BSR 메시지(B)에 포함시켜 모든 라우터에 주기적으로 전송하는 방식으로 RP를 선택할 수 있다. The dynamic selection technique is as shown in FIG. Referring to FIG. 1, the dynamic selection technique uses a Bootstrap Router (BSR) to generate bootstrap messages. First, a router is set up to perform a BSR and a Candidate Rendezvous Point (C-RP) manually. When the C-RP periodically transmits a advertisement message containing its own information to the BSR (A) Based on the collected C-RP information such as priority, hash value, and IP address information of the multicast group, and generates RP-Set information in which the RP is mapped for each multicast group. Then, the BSR can select the RP by transmitting the RP-Set information to the BSR message (B) periodically to all the routers.

이러한 종래 방식에 의하면, 멀티캐스트 전송을 위해 RP를 수동으로 설정해야 하며, 동적으로 RP를 설정하는 경우에도 라우터 별로 BSR과 C-RP에 대한 설정이 필요하기 때문에 RP 관리가 매우 비효율적으로 이루어진다. 뿐만 아니라, C-RP는 지속적으로 자신의 정보를 네트워크 망을 통해 전달해야 하므로 네트워크 관리 오버헤드가 증가하는 문제가 있다. 또한 RP 선택 시 C-RP의 우선순위, 해시값, IP 주소의 비교를 통해 RP를 선택하기 때문에 네트워크 트래픽 환경을 동적으로 반영하지 못하며, C-RP에 모두 장애가 발생하거나 BSR에 장애가 발생하면 멀티캐스트 전송이 어렵고, 장애 발생 시에는 수동으로 C-RP와 BSR을 재설정해야하므로 네트워크 트래픽과 장애 발생에 취약하다. According to this conventional method, the RP must be manually set for multicast transmission, and even when the RP is set dynamically, the RP management is very inefficient because the configuration for the BSR and the C-RP is required for each router. In addition, since C-RP must continuously transmit its information through network, there is a problem that network management overhead increases. In addition, RP selection does not dynamically reflect the network traffic environment because RP is selected through comparison of C-RP priority, hash value, and IP address. If failure occurs in C-RP or BSR failure occurs, multicast It is difficult to transmit, and in case of failure, it is necessary to manually reset C-RP and BSR, which is vulnerable to network traffic and failure.

본 발명은 전술한 문제점을 해결하기 위한 것으로서, 네트워크 토폴로지와 링크 상태를 기반으로 자동으로 RP를 선택함으로써 네트워크 트래픽 환경을 동적으로 반영할 수 있는 멀티캐스트 라우팅 방법을 제공하는 것을 일 목적으로 한다. It is an object of the present invention to provide a multicast routing method capable of dynamically reflecting a network traffic environment by automatically selecting an RP based on a network topology and a link state.

또한 본 발명은 링크 장애나 스위치 장애 시 발생하는 토폴로지 변화를 인지하고, 이를 기반으로 자동으로 각 멀티캐스트 그룹별 RP를 재선택함으로써, 네트워크 장애 상황에서도 멀티캐스트 트래픽의 지속적인 전송을 보장하는 멀티캐스트 라우팅 방법을 제공하는 것을 다른 목적으로 한다. In addition, the present invention recognizes the topology change occurring in the case of a link failure or a switch failure, and automatically reselects the RP for each multicast group based on the change in topology. Thus, multicast routing It is another purpose to provide a method.

또한 본 발명은 멀티캐스트 그룹 내의 호스트에 변화가 발생하면 적응적으로 RP를 재선택하도록 함으로써 특정 링크에 과도한 멀티캐스트 트래픽이 집중되는 것을 방지하고, 결과적으로 네트워크 이용 효율을 증대시킬 수 있는 멀티캐스트 라우팅 방법을 제공하는 것을 다른 목적으로 한다. Further, according to the present invention, when a change occurs in a host in a multicast group, the RP is reselected adaptively, thereby preventing excessive multicast traffic from being concentrated on a specific link, and consequently, multicast routing It is another purpose to provide a method.

또한 본 발명은 멀티캐스트 환경에서 멀티캐스트 그룹 간 트래픽 부하 분산 기능을 제공하는 것을 다른 목적으로 한다. Another object of the present invention is to provide a multicast group traffic load balancing function in a multicast environment.

이러한 목적을 달성하기 위한 본 발명은 소프트웨어 정의 네트워킹 환경에서 컨트롤러가 멀티캐스트 라우팅을 수행하는 방법에 있어서, 제1 멀티캐스트 그룹의 랑데부포인트(RP)를 선정하는 단계, 상기 RP를 이용하여 멀티캐스트 라우팅을 수행하는 단계를 포함하며, 상기 RP 선정 단계는 상기 제1 멀티캐스트 그룹에 속하는 제1 네트워크 장비 중 서버 또는 호스트와 연결된 제2 네트워크 장비를 에지 노드로, 나머지 제3 네트워크 장비는 노드로 설정하는 a 단계, 상기 노드와 상기 에지 노드 간 홉 수 또는 링크 트래픽 중 적어도 하나를 이용하여 상기 노드 별 경로 비용을 연산하는 b 단계, 상기 연산 결과에 따라 최소 경로 비용을 갖는 제1 노드를 RP로 선정하는 c 단계를 포함하는 것을 일 특징으로 한다. In accordance with another aspect of the present invention, there is provided a method for multicast routing in a software defined networking environment, the method comprising: selecting a rendezvous point (RP) of a first multicast group; Wherein the RP selecting step sets a second network equipment connected to a server or a host among the first network equipment belonging to the first multicast group as an edge node and the remaining third network equipment as a node a step b) of calculating the path cost for each node by using at least one of the number of hops between the node and the edge node or the link traffic, selecting the first node having the minimum path cost according to the calculation result, c < / RTI >

또한, 본 발명은 소프트웨어 정의 네트워킹 환경에서 멀티캐스트 라우팅을 수행하는 장치에 있어서, 컨트롤러가 제1 멀티캐스트 그룹의 랑데부포인트(RP)를 선정하고, 상기 RP를 이용하여 멀티캐스트 라우팅을 수행하는 애플리케이션, 상기 제1 멀티캐스트 그룹에 속하는 하나 이상의 제1 네트워크 장비에 상기 멀티캐스트 라우팅에 따른 플로우 룰을 전송하고 상기 제1 네트워크 장비로부터 네트워크 환경에 관한 메시지를 수신하는 통신부, 상기 제1 멀티캐스트 그룹의 토폴로지 정보를 저장하는 저장부를 포함하며, 상기 애플리케이션부는 상기 제1 멀티캐스트 그룹에 속하는 제1 네트워크 장비 중 서버 또는 호스트와 연결된 제2 네트워크 장비를 에지 노드로, 나머지 제3 네트워크 장비는 노드로 설정하고, 상기 노드와 상기 에지 노드 간 홉 수 또는 링크 트래픽 중 적어도 하나를 이용하여 상기 노드 별 경로 비용을 연산하고, 상기 연산 결과에 따라 최소 경로 비용을 갖는 제1 노드를 RP로 선정하는 RP 선정부, 상기 RP를 루트로 하는 전송 경로 트리를 생성하고, 상기 전송 경로 트리를 서버와 연결된 에지 노드를 루트로 하는 라우팅 트리로 변환하는 멀티캐스트 라우팅부를 포함하는 것을 일 특징으로 한다. The present invention also provides an apparatus for performing multicast routing in a software defined networking environment, the apparatus comprising: a controller for selecting a rendezvous point (RP) of a first multicast group and performing multicast routing using the RP; A communication unit for transmitting a flow rule according to the multicast routing to at least one first network equipment belonging to the first multicast group and for receiving a message relating to the network environment from the first network equipment, Wherein the application unit sets a second network equipment connected to a server or a host among the first network equipment belonging to the first multicast group as an edge node and the remaining third network equipment as a node, The number of hops or rings between the node and the edge node An RP selecting unit for selecting a first node having a minimum path cost according to the calculation result, and a transmission path tree having the RP as a root are generated And a multicast routing unit for converting the transmission path tree into a routing tree having an edge node connected to the server as a root.

전술한 바와 같은 본 발명에 의하면, 네트워크 토폴로지와 링크 상태를 기반으로 자동으로 RP를 선택함으로써 네트워크 트래픽 환경을 동적으로 반영할 수 있다.According to the present invention as described above, the network traffic environment can be dynamically reflected by automatically selecting the RP based on the network topology and the link status.

또한 본 발명은 링크 장애나 스위치 장애 시 발생하는 토폴로지 변화를 인지하고, 이를 기반으로 자동으로 각 멀티캐스트 그룹별 RP를 재선택함으로써, 네트워크 장애 상황에서도 멀티캐스트 트래픽의 지속적인 전송을 보장할 수 있다.Further, the present invention recognizes topology changes occurring in the case of a link failure or a switch failure, and automatically selects the RPs for each multicast group based on the topology change, thereby ensuring continuous transmission of multicast traffic even in a network failure situation.

또한 본 발명은 멀티캐스트 그룹 내의 호스트에 변화가 발생하면 적응적으로 RP를 재선택하도록 함으로써 특정 링크에 과도한 멀티캐스트 트래픽이 집중되는 것을 방지하고, 결과적으로 네트워크 이용 효율을 증대시킬 수 있다.Also, according to the present invention, when a change occurs in a host in a multicast group, the RP is adaptively selected, thereby preventing excessive multicast traffic from being concentrated on a specific link, and consequently, network utilization efficiency can be increased.

또한 본 발명은 멀티캐스트 환경에서 멀티캐스트 그룹 간 트래픽 부하 분산 기능을 제공할 수 있다. Also, the present invention can provide a multicast group traffic load balancing function in a multicast environment.

도 1은 종래의 랑데부 포인트(RP) 설정 방법을 설명하기 위한 도면,
도 2는 본 발명의 일 실시 예에 의한 소프트웨어 정의 네트워킹 환경을 설명하기 위한 도면,
도 3은 본 발명의 일 실시 예에 의한 컨트롤러를 설명하기 위한 블록도,
도 4는 본 발명의 일 실시 예에 의한 컨트롤러의 RP 선정 및 멀티캐스트 라우팅을 설명하기 위한 도면,
도 5는 본 발명의 일 실시 예에 의한 전송 경로 트리 및 라우팅 트리를 설명하기 위한 도면,
도 6는 본 발명의 일 실시 예에 의한 컨트롤러의 멀티캐스트 라우팅 방법을 설명하기 위한 순서도,
도 7은 임의의 링크에 장애가 발생한 경우 일 실시 예를 도시한 도면,
도 8은 도 7의 실시 예에 의한 전송 경로 트리 및 라우팅 트리를 설명하기 위한 도면,
도 9는 스위치에 장애가 발생한 경우의 일 실시 예를 도시한 도면,
도 10은 도 9의 실시 예에 의한 전송 경로 트리 및 라우팅 트리를 설명하기 위한 도면,
도 11은 멀티캐스트 그룹이 변화된 경우의 일 실시 예를 도시한 도면,
도 12는 도 11의 실시 예에 의한 전송 경로 트리 및 라우팅 트리를 설명하기 위한 도면,
도 13은 네트워크 트래픽을 반영하여 멀티캐스트 라우팅하는 경우의 일 실시 예를 도시한 도면,
도 14는 도 13의 실시 예에 의한 전송 경로 트리 및 라우팅 트리를 설명하기 위한 도면이다.
FIG. 1 is a view for explaining a conventional method of setting a rendezvous point (RP)
2 is a diagram illustrating a software defined networking environment according to an embodiment of the present invention;
3 is a block diagram for explaining a controller according to an embodiment of the present invention.
4 is a diagram for explaining RP selection and multicast routing of a controller according to an embodiment of the present invention;
5 is a diagram for explaining a transmission path tree and a routing tree according to an embodiment of the present invention;
6 is a flowchart illustrating a multicast routing method of a controller according to an embodiment of the present invention.
FIG. 7 illustrates one embodiment when a failure occurs in any link;
FIG. 8 is a diagram for explaining a transmission path tree and a routing tree according to the embodiment of FIG. 7;
Fig. 9 is a diagram showing an embodiment when a failure occurs in a switch, Fig.
FIG. 10 is a diagram for explaining a transmission path tree and a routing tree according to the embodiment of FIG. 9;
11 is a diagram illustrating an embodiment in which a multicast group is changed;
FIG. 12 is a diagram for explaining a transmission path tree and a routing tree according to the embodiment of FIG. 11;
13 is a diagram illustrating an embodiment in which multicast routing is performed by reflecting network traffic,
14 is a diagram for explaining a transmission path tree and a routing tree according to the embodiment of FIG.

전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용되며, 명세서 및 특허청구의 범위에 기재된 모든 조합은 임의의 방식으로 조합될 수 있다. 그리고 다른 식으로 규정하지 않는 한, 단수에 대한 언급은 하나 이상을 포함할 수 있고, 단수 표현에 대한 언급은 또한 복수 표현을 포함할 수 있음이 이해되어야 한다. The above and other objects, features, and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings, which are not intended to limit the scope of the present invention. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals are used to designate the same or similar components, and all combinations described in the specification and claims can be combined in any manner. It is to be understood that, unless the context requires otherwise, references to singular forms may include more than one, and references to singular forms may also include plural forms.

본 발명의 명세서에서 ‘플로우 룰’의 용어는 해당 업계의 통상의 기술자 입장에서 소프트웨어 정의 네트워크에서 컨트롤러 서버가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다. The term 'flow rule' in the description of the present invention should be understood to mean a network policy applied by a controller server in a software defined network in the ordinary artisan's field.

또한 본 명세서의 각 도면에서 원형으로 색칠된 서버 및 호스트는 하나의 멀티캐스트 그룹으로 설정된 것을 의미하며, 본 발명의 컨트롤러는 멀티캐스트 그룹 별로 스위치를 관리하고, 전체 멀티캐스트 그룹에 포함된 서버와 호스트의 네트워크 토폴로지 정보를 관리할 수 있다.Also, the controller of the present invention manages a switch for each multicast group, and manages a switch and a host included in the entire multicast group, Can manage the network topology information of the network.

도 2는 본 발명의 일 실시 예에 의한 소프트웨어 정의 네트워킹 환경을 설명하기 위한 도면이다. 도 2를 참조하면, 소프트웨어 정의 네트워킹 환경(Software Defined Networking Environment)은 서버(50), 컨트롤러(100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다.2 is a diagram illustrating a software defined networking environment according to an embodiment of the present invention. Referring to FIG. 2, a software defined networking environment may include a server 50, a controller 100, a network device 200, and a host 300. The network device 200 and the host 300 may be referred to as a node, and a link may denote a connection between two nodes.

컨트롤러(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러(100)는 전체 멀티캐스트 그룹에 포함된 서버 및 호스트를 포함하는 네트워크 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 애플리케이션(소프트웨어)가 탑재된 형태로 구현될 수 있다.The controller 100 manages the network equipment 200 and centrally manages and controls the plurality of network equipment 200. Specifically, the controller 100 is configured to perform network topology management including a server and a host included in the entire multicast group, path management related to packet processing, link discovery, (Software) that performs functions such as flow management and the like.

스위치(200)는 컨트롤러(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 도면에 도시된 스위치(200)는 패킷 처리를 위한 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 라우터 등과 같은 네트워크 장비로도 교환 가능하다. 다만 설명의 편의를 위해 네트워크 장비(200)가 오픈플로우 스위치(200)인 경우를 중심으로 설명하고, 동일한 도면 부호를 병기하도록 한다. The switch 200 functions to process packets under the control of the controller 100. The switch 200 shown in the figure can be exchanged with a network device such as a mobile communication base station, a base station controller, a gateway device, a router, etc. for packet processing. However, for convenience of explanation, the case where the network equipment 200 is the open flow switch 200 will be mainly described, and the same reference numerals will be given.

한편 멀티캐스트 트래픽을 전송하는 서버(50)와 호스트(300)는 컨트롤러(100)가 관리하는 오픈플로우 스위치(200)에 연결되며, 스위치(200)가 컨트롤러(100)로부터 수신한 플로우 룰에 따라 패킷을 전달하는 것에 의해 멀티캐스트 트래픽을 송수신할 수 있다. Meanwhile, the server 50 and the host 300 that transmit the multicast traffic are connected to the open flow switch 200 managed by the controller 100, and the switch 200 is controlled according to a flow rule received from the controller 100 Multicast traffic can be transmitted and received by forwarding packets.

도 3은 본 발명의 일 실시 예에 의한 컨트롤러(100)를 설명하기 위한 블록도이다. 도 3을 참조하면, 본 발명의 일 실시 예에 의한 컨트롤러(100)는 애플리케이션부(130), 통신부(150), 저장부(170)를 포함할 수 있으며, 애플리케이션부(130)는 RP 선정부(135), 멀티캐스트 라우팅부(137)를 포함할 수 있다. 3 is a block diagram for explaining a controller 100 according to an embodiment of the present invention. 3, the controller 100 according to an exemplary embodiment of the present invention may include an application unit 130, a communication unit 150, and a storage unit 170. The application unit 130 may include an RP pre- A multicast routing unit 135, and a multicast routing unit 137.

애플리케이션부(130)는 컨트롤러(100)가 수행하는 각종 기능이 구현되는 영역으로, 전술한 네트워크 토폴로지 관리, 경로 관리 등을 수행하는 애플리케이션이 포함될 수 있다. 본 발명의 일 실시 예에 의하면, 제1 멀티캐스트 그룹의 랑데부포인트(RP)를 선정하고, RP를 이용하여 멀티캐스트 라우팅을 수행하는 애플리케이션부(130)는 RP 선정부(135), 멀티캐스트 라우팅부(137)를 포함할 수 있다.The application unit 130 is an area in which various functions performed by the controller 100 are implemented, and may include an application for performing the network topology management, the path management, and the like described above. According to an embodiment of the present invention, an application unit 130 for selecting a rendezvous point (RP) of a first multicast group and performing multicast routing using the RP includes an RP selection unit 135, a multicast routing (137).

RP 선정부(135)는 제1 멀티캐스트 그룹에 속하는 제1 네트워크 장비 중 서버 또는 호스트와 연결된 제2 네트워크 장비를 에지 노드로, 나머지 제3 네트워크 장비는 노드로 설정하고, 노드와 에지 노드 간 홉 수 또는 링크 트래픽 중 적어도 하나를 이용하여 노드 별 경로 비용을 연산하고, 연산 결과에 따라 경로 비용이 가장 낮은 제1 노드를 RP로 선정할 수 있다. The RP selection unit 135 sets the second network equipment connected to the server or the host among the first network equipment belonging to the first multicast group as an edge node and the remaining third network equipment as a node, The path cost for each node may be calculated using at least one of the number of links and the link traffic, and the first node having the lowest path cost may be selected as the RP according to the calculation result.

보다 구체적으로 도 4를 참조하여 본 발명의 일 실시 예에 따른 멀티캐스트 라우팅에 사용되는 랑데부포인트(이하, RP라 함) 선정 방법을 설명하기로 한다. More specifically, a rendezvous point (hereinafter referred to as RP) selection method used in multicast routing according to an embodiment of the present invention will be described with reference to FIG.

종래 PIM 프로토콜에서 사용되는 개념인 랑데부포인트는 서버(소스)에서 트래픽을 모두 수신하고 수신기로 트래픽을 모두 전달하는 일종의 멀티캐스트 라우터이다. RP는 모든 멀티캐스트 스트림들이 하나의 분배 노드로 모인 후에 각 리시버들에게 분배되는 구조에서 사용되는데, RP를 루트로 하는 트리를 공유 트리(Shared Tree) 또는 RP 트리라고 한다. PIM 프로토콜에 의하면, 모든 멀티캐스트 소스는 RP에게 멀티캐스트 스트림을 보내고, 모든 리스너(listener)는 RP에 조인(join)하여 공유 트리를 이용해 멀티캐스트 스트림을 전달받는다. Rendezvous point, which is a concept used in the conventional PIM protocol, is a kind of multicast router that receives all the traffic from the server (source) and delivers all the traffic to the receiver. The RP is used in a structure where all the multicast streams are collected into one distribution node and then distributed to the receivers. The tree with the RP as the root is called a shared tree or RP tree. According to the PIM protocol, all multicast sources send a multicast stream to the RP, and all listeners join the RP to receive the multicast stream using the shared tree.

본 발명의 일 실시예에서 사용되는 RP는 종래 기술의 RP와는 그 기능이 상이하나, 멀티캐스트 라우팅에 있어서 RP를 루트로 트리를 생성한다는 점에서 유사한 특성을 포함하는 바, 동 분야에서 통상의 기술자에 의해 널리 사용되는 용어를 사용하였다. 그러나 본 발명 RP 선정부(135)에 의해 선정되는 RP는 소스로부터 수신된 멀티캐스트 트래픽을 모두 수신하여 리시버에게 전달하는 역할을 하지 않고, 라우팅 트리 생성 전 단계의 전송 경로 트리 생성을 위한 것이라는 점에서 그 역할이 전혀 상이하다. The RP used in one embodiment of the present invention is similar in functionality to the RP of the prior art but includes similar features in that it creates a root tree for the RP in multicast routing, The term widely used by. However, the RP selected by the RP selecting unit 135 of the present invention is not for receiving all the multicast traffic received from the source and delivering it to the receiver, but for generating the transmission path tree before the generation of the routing tree Its role is completely different.

또한 RP를 선정하는 방식에 있어서도, PIM 프로토콜은 전술한 바와 같이 수동으로 RP를 설정하는 단계를 필요로 하였으나, 본 발명은 RP 선정부(135)가 에지 노드와 노드 간의 경로 비용을 연산함으로써 외부 설정 없이 RP를 네트워크 상황에 따라 동적으로 설정한다는 점에서 큰 차이가 있다. Also, in the method of selecting the RP, the PIM protocol requires a step of manually setting the RP as described above. However, the present invention is not limited to the case where the RP selection unit 135 calculates the path cost between the edge node and the node, There is a big difference in that the RP is set dynamically according to the network conditions.

RP 선정부(135)는 서버 또는 호스트와 연결된 스위치(200)와 링크가 다른 스위치(200)와의 연결로만 이루어져있는 스위치(200)를 구분한다. 본 명세서에서 전자는 에지 노드, 후자는 노드로 명명한다. RP 선정부(135)는 각 에지 노드와 노드 간 경로 홉(hop) 수와 링크 트래픽(link traffic)을 기반으로 최소 경로 비용(cost)을 연산할 수 있다. The RP selection unit 135 distinguishes the switch 200 that is connected only to the switch 200 connected to the server or the host and the switch 200 connected to the other switch. In this specification, the former is referred to as an edge node and the latter as a node. The RP selection unit 135 can calculate the minimum path cost based on the number of path hops and link traffic between each edge node and the node.

예를 들어, 1 홉(hop)인 경우 경로 비용을 1로 하고, 링크 트래픽을 가중치(W)로 추가적으로 반영할 수 있다. 따라서 도 4의 실시 예에서 각 스위치(200) 간 경로 비용은 1+W일 수 있다. 가중치(W)는 다음과 같이 계산될 수 있는데, 최대 트래픽을

Figure 112017111531363-pat00001
, 이전 트래픽을
Figure 112017111531363-pat00002
라고 할 때, 다음과 같이 연산할 수 있다.For example, in the case of one hop, the path cost may be set to 1, and the link traffic may be additionally reflected as the weight W. Thus, the path cost between each switch 200 in the embodiment of FIG. 4 may be 1 + W. The weight (W) can be calculated as follows:
Figure 112017111531363-pat00001
, Previous traffic
Figure 112017111531363-pat00002
, The following operation can be performed.

Figure 112017111531363-pat00003
Figure 112017111531363-pat00003

도 4의 예시에서 이전 트래픽이 없는 경우(W=0)를 가정한다. 경로 비용에는 홉 수만이 반영될 것이며, 각 스위치(200) 간 링크의 경로 비용은 다음 표와 같이 계산될 수 있다. In the example of FIG. 4, it is assumed that there is no previous traffic (W = 0). Only the number of hops will be reflected in the path cost, and the path cost of the link between each switch 200 can be calculated as shown in the following table.

SW#2SW # 2 SW#3SW # 3 SW#1SW # 1 1One 22 SW#4SW # 4 22 33 SW#5SW # 5 22 22 SW#6SW # 6 1One 1One CostCost 66 88

RP 선정부(135)는 경로 비용이 최소인 노드를 멀티캐스트 그룹의 RP로 선정할 수 있다. 따라서 위 예시에서는 경로 비용이 최소인 스위치 #2가 RP로 선정될 것이다. The RP selection unit 135 can select a node having the minimum path cost as the RP of the multicast group. Therefore, in the above example, switch # 2 with the minimum path cost will be selected as the RP.

멀티캐스트 라우팅부(137)는 RP를 루트로 하는 전송 경로 트리를 생성하고, 전송 경로 트리를 서버와 연결된 에지 노드를 루트로 하는 라우팅 트리로 변환할 수 있다. 위 예시에서 멀티캐스트 라우팅부(137)는 스위치 #2를 루트로 하는 전송 경로 트리를 도 5의 <A>와 같이 생성할 수 있다. 컨트롤러(100)는 멀티캐스트 그룹 별로 전송 경로를 관리할 수 있는데, 멀티캐스트 라우팅부(137)는 각 멀티캐스트 그룹 내에 소스(서버)가 접속한 에지 노드를 루트로 하는 라우팅 트리를 <B>와 같이 생성할 수 있다. 즉, 전송 경로 트리를 생성하고, 전송 경로 트리에서 서버와 연결된 에지 노드가 루트에 오도록 트리를 변환하여 라우팅 트리를 생성할 수 있다. 그리고 컨트롤러(100)는 멀티캐스트 트래픽이 라우팅 트리를 따라 전달되도록 할 수 있다. 이러한 방법에 의하면, PIM-SM과 같이 멀티캐스트 트래픽 수신자들이 RP에 원할 때 마다 조인할 필요가 없으며, PIM-DM과 같이 멀티캐스팅이 불필요한 곳을 가지치기(Pruning)할 필요도 없다. 따라서 훨씬 간단한 방법으로 멀티캐스트 그룹 내의 호스트(수신자) 변화를 반영할 수 있다. The multicast routing unit 137 may generate a transmission path tree having the root of the RP and convert the transmission path tree into a routing tree having an edge node connected to the server as a root. In the above example, the multicast routing unit 137 can generate a transmission path tree having the switch # 2 as the root, as shown in the <A> in FIG. The controller 100 can manage a transmission path for each multicast group. The multicast routing unit 137 assigns a routing tree having an edge node connected to a source (server) as a root in each multicast group to < B > You can create it together. That is, a transmission path tree can be created and a routing tree can be created by converting the tree so that the edge node connected to the server in the transmission path tree is at the root. The controller 100 may then cause the multicast traffic to be delivered along the routing tree. According to this method, there is no need to join multicast traffic receivers whenever the RP wants to, like PIM-SM, and there is no need to pruning where multicasting is unnecessary like PIM-DM. Thus, it is possible to reflect changes in the host (receiver) in the multicast group in a much simpler way.

통신부(150)는 스위치(200)와 통신할 수 있다. 통신부(140)는 제1 멀티캐스트 그룹에 속하는 하나 이상의 제1 네트워크 장비에 멀티캐스트 라우팅에 따른 플로우 룰을 전송하고 제1 네트워크 장비로부터 네트워크 환경에 관한 메시지를 수신할 수 있다. 이렇게 수신된 메시지는 컨트롤러(100)가 네트워크 장애를 판단하는 데 사용될 수 있다. 통신부(150)는 보안 채널(Secure Channel)을 통해 스위치(200)와 정보를 교환할 수 있으며, 스위치(200)와 교환되는 정보는 암호화될 수 있다. The communication unit 150 can communicate with the switch 200. The communication unit 140 may transmit a flow rule according to multicast routing to one or more first network devices belonging to the first multicast group and receive a message regarding the network environment from the first network equipment. The message thus received can be used by the controller 100 to determine a network failure. The communication unit 150 can exchange information with the switch 200 through a secure channel and the information exchanged with the switch 200 can be encrypted.

저장부(170)는 컨트롤러 애플리케이션의 상태와 애플리케이션의 운영에 필요한 정보, 컨트롤러가 스위치(200)에 전송한 플로우 룰, 스위치(200)의 상태, 네트워크 토폴로지 정보 등 다양한 정보를 저장할 수 있다. 특히, 저장부(170)는 멀티캐스트 그룹별 토폴로지 정보를 저장할 수 있다.  The storage unit 170 may store various information such as the status of the controller application and information necessary for operating the application, the flow rule transmitted from the controller to the switch 200, the status of the switch 200, and the network topology information. In particular, the storage unit 170 may store topology information for each multicast group.

이하에서는 도 6 내지 도 14를 참조하여, 컨트롤러의 멀티캐스트 라우팅 방법 및 장애 상황에서의 라우팅 방법을 자세하게 살펴본다. Hereinafter, a multicast routing method of a controller and a routing method in a fault situation will be described in detail with reference to FIG. 6 to FIG.

도 6는 본 발명의 일 실시 예에 의한 컨트롤러의 멀티캐스트 라우팅 방법을 설명하기 위한 순서도이다. 6 is a flowchart illustrating a multicast routing method of a controller according to an embodiment of the present invention.

도 6을 참조하면, 컨트롤러는 먼저 제1 멀티캐스트 그룹의 랑데부포인트(RP)를 선정하고(S100), RP가 선정되면 선정된 RP를 이용하여 멀티캐스트 라우팅을 수행할 수 있다(S200). 보다 구체적으로 단계 100에서 컨트롤러는 제1 멀티캐스트 그룹에 속하는 제1 네트워크 장비 중 서버 또는 호스트와 연결된 제2 네트워크 장비를 에지 노드로, 나머지 제3 네트워크 장비는 노드로 설정하여 에지 노드와 노드를 구분할 수 있다(S130). 다음으로 컨트롤러는 노드와 에지 노드 간 홉 수 또는 링크 트래픽 중 적어도 하나를 이용하여 노드 별 경로 비용을 연산할 수 있다(S150). 그리고 연산 결과에 따라 경로 비용이 가장 낮은 제1 노드를 RP로 선정할 수 있다(S170). Referring to FIG. 6, the controller first selects a rendezvous point RP of the first multicast group (S100), and when the RP is selected, performs multicast routing using the selected RP (S200). More specifically, in step 100, the controller sets the second network equipment connected to the server or host among the first network equipment belonging to the first multicast group as an edge node and the remaining third network equipment as a node to distinguish the edge node and the node (S130). Next, the controller can calculate the path cost per node using at least one of the number of hops between the node and the edge node or the link traffic (S150). The first node having the lowest path cost may be selected as the RP according to the calculation result (S170).

단계 150에서, 컨트롤러는 홉 수에 비례하여 경로 비용의 초기값을 설정하고, 링크 트래픽을 경로 비용의 초기값에 가중치로 부가할 수 있다. 이에 대한 구체적인 실시 예는 [표 1] 및 [수학식 1]을 통해 전술한 바 있다. In step 150, the controller may set an initial value of the path cost in proportion to the number of hops, and add link traffic to the initial value of the path cost as a weight. A concrete example of this has been described above with reference to [Table 1] and [Equation 1].

단계 170에서 컨트롤러는 단계 160의 연산 결과 가장 경로 비용이 낮은 노드가 둘 이상이면, 둘 중 임의의 일 노드를 RP로 선정한다. 만약 두 개 노드 중에 어느 하나가 RP로 기 선정된 노드이면, 컨트롤러는 기존의 RP를 그대로 유지할 수 있다. In step 170, the controller selects an arbitrary one of the nodes RP as the operation result of step 160 if there are two or more nodes having the lowest path cost. If either of the two nodes is the RP selected node, the controller can keep the existing RP.

도 7은 스위치 1과 스위치 2 사이의 링크에 장애가 발생한 경우를 도시한 도면이다. 임의의 링크에 장애가 발생하면, 컨트롤러는 링크와 연결된 네트워크 장비로부터 포트 다운(port down) 메시지를 포함하는 장애 보고 메시지를 수신할 수 있다. 컨트롤러는 장애 보고 메시지를 이용하여 해당 링크에 대한 장애 상황은 인지할 수 있다.FIG. 7 is a diagram showing a case where a failure occurs in the link between the switch 1 and the switch 2. FIG. If any link fails, the controller can receive a failure report message containing a port down message from the network equipment associated with the link. The controller can recognize the fault condition for the link using the fault report message.

예를 들어 도 7과 같이 스위치 1과 스위치 2를 연결하는 링크에 장애가 발생하면, 스위치 1과 스위치 2는 컨트롤러에 포트 다운 메시지를 전송한다. 컨트롤러는 스위치 1과 스위치 2에서 수신된 포트 다운 메시지를 이용하여 스위치 1과 스위치 2를 연결하는 링크에 장애가 발생했다는 사실을 인지할 수 있다. 컨트롤러는 해당 링크를 포함하는 멀티캐스트 그룹 네트워크의 토폴로지 정보에서 상기 링크를 삭제하는 작업을 통해 토폴로지 정보를 변경할 수 있다. 그리고 컨트롤러는 변경된 토폴로지 정보를 이용하여 RP를 재선정하고 재선정된 RP를 이용하여 멀티캐스트 라우팅을 다시 수행할 수 있다.  For example, as shown in FIG. 7, when a failure occurs in a link connecting switch 1 and switch 2, switch 1 and switch 2 transmit a port down message to the controller. The controller can use the port down messages received at switch 1 and switch 2 to acknowledge that the link connecting switch 1 and switch 2 has failed. The controller can change the topology information by deleting the link from the topology information of the multicast group network including the link. Then, the controller can re-determine the RP using the changed topology information and perform the multicast routing again using the re-selected RP.

상기 예에서, 스위치 1와 스위치 2 사이의 링크가 동작하지 않는 경우에 각 노드 별로 에지 노드와의 경로 비용은 다음과 같이 연산될 수 있다. In this example, if the link between switch 1 and switch 2 does not operate, the path cost to the edge node for each node may be computed as follows.

SW#2SW # 2 SW#3SW # 3 SW#1SW # 1 33 33 SW#4SW # 4 33 33 SW#5SW # 5 22 22 SW#6SW # 6 1One 1One CostCost 88 88

위 실시 예에서, 경로 트래픽은 반영되지 않은 것으로 가정한다. 노드인 스위치 2와 스위치 3의 경로 비용은 홉 수에 비례하며, 각 노드별로 에지 노드와의 홉 수를 합산한 결과 값이 동일하다. 전술한 바와 같이 경로 비용이 동일한 경우에는 둘 중 어느 하나를 임의로 RP로 선정할 수 있다. 만약 이전의 RP가 스위치 2였다면, 경로 비용이 동일한 경우 불필요하게 RP를 변경할 필요는 없으므로, RP는 그대로 유지될 수 있다. 다만, 스위치 1 및 2 사이의 링크가 동작하지 않는 상황이므로 네트워크 토폴로지는 변경되며, 스위치 2를 루트로 하는 멀티캐스트 그룹의 전송 경로 트리는 도 8의 <A>와 같이 생성될 수 있다. In the above embodiment, it is assumed that the path traffic is not reflected. The path cost of switches 2 and 3 is proportional to the number of hops and the result of summing the number of hops with each edge node is the same. If the route cost is the same as described above, either one of them can be arbitrarily selected as RP. If the previous RP was switch 2, it is not necessary to change the RP unnecessarily if the path cost is the same, so the RP can remain unchanged. However, since the link between the switches 1 and 2 does not operate, the network topology is changed, and the transmission path tree of the multicast group with the switch 2 as the root can be generated as shown in FIG. 8A.

컨트롤러는 전송 경로 트리를 사용하여 라우팅 트리를 생성하는데, 전송 경로 트리를 만든 뒤에 전송 경로 트리에 포함된 서버(소스)가 루트가 되도록 트리 모양을 변경할 수 있다. 이러한 방법에 의하면 라우팅 트리를 구성하는 각 노드 간 연결은 전송 경로 트리와 동일하나, 루트만이 변경된 새로운 트리를 얻을 수 있다. The controller uses the transmission path tree to create the routing tree. After creating the transmission path tree, the controller can change the tree shape so that the server (source) included in the transmission path tree becomes the root. According to this method, the connection between each node constituting the routing tree is the same as the transmission path tree, but a new tree in which only the root is changed can be obtained.

도 9는 스위치에 장애가 발생한 경우의 일 예이다. 본 발명의 일 실시 예에 의한 컨트롤러는 멀티캐스트 그룹을 구성하는 각각의 스위치로부터 기 설정된 간격으로 상태 메시지(hello message)를 수신하여, 스위치의 장애 여부를 확인할 수 있다. 9 is an example of a case where a failure occurs in the switch. The controller according to an embodiment of the present invention can receive a status message (hello message) from each of the switches constituting the multicast group at predetermined intervals to check whether the switch has failed or not.

도 9에 도시된 멀티캐스트 그룹에 속하는 임의의 네트워크 장비(스위치 2)에 장애가 발생하면 인접 스위치로의 패킷 전송이 불가능한 바, 스위치 2와 인접한 스위치 1, 스위치 3, 스위치 6은 스위치 2로부터 메시지가 일정 시간 이상 수신되지 않는 것에 대응하는 링크 장애 메시지를 컨트롤러에 전송할 수 있다. When a failure occurs in any network equipment (switch 2) belonging to the multicast group shown in FIG. 9, it is impossible to transmit a packet to the adjacent switch, so that the switch 1, the switch 3, It is possible to transmit a link failure message to the controller that corresponds to a failure to be received for a predetermined time or longer.

스위치 2에 문제가 발생하면, 스위치 2로부터 수신하던 상태메시지의 단절로 인해 컨트롤러는 스위치 2의 문제 상황을 인식할 수 있다. 나아가 스위치 2와 인접한 스위치로부터 포트 다운 메시지와 같은 링크 장애 메시지도 수신하게 되므로, 컨트롤러는 수신되는 메시지를 통해 장애 상황을 인지할 수 있다. If a problem occurs in the switch 2, the controller can recognize the problem situation of the switch 2 due to the disconnection of the status message received from the switch 2. Further, since the switch 2 receives a link failure message such as a port down message from the switch 2 and the adjacent switch, the controller can recognize the failure situation through the received message.

장애 상황이 인지되면 컨트롤러는 특정 링크 및 스위치가 더 이상 동작하지 않는 사실을 반영하여 네트워크 토폴로지를 변경할 수 있다. 그리고 컨트롤러는 변경된 토폴로지 정보를 기반으로 RP를 재선정 한다. 즉, 각 노드별로 에지 노드 간의 경로 비용을 연산하고 이를 합산하여 노드 별 총 경로 비용을 도출할 수 있다. 상술한 예시에서의 노드 별 경로 비용은 다음 표와 같다. When a fault condition is recognized, the controller can change the network topology to reflect the fact that certain links and switches no longer work. The controller then re-selects the RP based on the changed topology information. That is, it is possible to calculate the total path cost per node by calculating the path cost between the edge nodes for each node and summing them. The path cost for each node in the above example is shown in the following table.

SW#2SW # 2 SW#3SW # 3 SW#1SW # 1 INFINF 33 SW#4SW # 4 INFINF 33 SW#5SW # 5 INFINF 22 SW#6SW # 6 INFINF 1One CostCost INFINF 88

위 예시 역시 이전 트래픽이 없어(BW=0) 경로 트래픽으로 인한 가중치 w가 0인 경우를 가정하였다. 노드인 스위치 2의 경우에는 동작이 불가하므로, 스위치 2와 에지 노드 간 홉 수는 무한대로 설정될 수 있다. 스위치 3과 각 에지 노드 간 홉 수는 [표 3]에 도시된 바와 같으며, 변경된 토폴로지에서 최소 경로 비용을 갖는 노드는 스위치 3이므로 스위치 3이 새로운 RP로 선정될 수 있다. The above example also assumes that there is no previous traffic (BW = 0) and the weight w due to the route traffic is zero. In the case of switch 2, which is a node, operation is impossible, so that the number of hops between switch 2 and edge node can be set to infinity. The number of hops between switch 3 and each edge node is as shown in [Table 3], and since the node having the minimum path cost in the changed topology is switch 3, switch 3 can be selected as a new RP.

스위치 3을 루트로 하는 전송 경로 트리는 도 10의 <A>와 같으며, 전송 경로 트리에서 서버(소스)와 연결된 에지 노드(스위치 1)을 루트로 하는 라우팅 트리는 <B>와 같이 생성된다. 컨트롤러는 라우팅 트리를 기반으로 멀티캐스트 라우팅에 대한 플로우 룰을 각 스위치로 전송하며, 스위치들은 본 라우팅 트리를 기반으로 멀티캐스트 트래픽을 전달한다. 따라서 도 10의 예시에서 서버에서 전송되는 데이터스트림은 스위치 1과 스위치 5를 거쳐 각 호스트에 전달될 수 있다. The transmission path tree with the switch 3 as the root is the same as the <A> in FIG. 10, and the routing tree with the edge node (switch 1) connected to the server (source) in the transmission path tree as the root is generated as shown in <B>. The controller sends flow rules for multicast routing to each switch based on the routing tree, and the switches carry multicast traffic based on this routing tree. Therefore, in the example of FIG. 10, the data stream transmitted from the server can be transmitted to each host via the switch 1 and the switch 5.

도 11은 멀티캐스트 그룹이 변화된 경우의 일 실시 예이다. 멀티캐스트 그룹 내의 호스트가 추가 또는 삭제된 경우, 컨트롤러는 RP를 재선정할 수 있다. Fig. 11 shows an embodiment in which the multicast group is changed. If a host in the multicast group is added or deleted, the controller can reselect the RP.

도 11의 예시에서, 호스트 B가 멀티캐스트 그룹에서 삭제되었다. 멀티캐스트 그룹 내의 호스트가 삭제되면, 컨트롤러는 멀티캐스트 그룹에 속하는 노드의 경로 비용을 재연산할 수 있다. 호스트 B가 삭제되면, 기존에 에지 노드로 설정되어 있던 스위치 5는 노드로 재설정된다. In the example of FIG. 11, the host B has been deleted from the multicast group. When a host in a multicast group is deleted, the controller can recalculate the path cost of a node belonging to the multicast group. When host B is deleted, switch 5, which was previously set as an edge node, is reset to the node.

따라서 노드 별로 에지 노드와의 경로 비용은 다음 표와 같이 연산된다. Therefore, the path cost to the edge node for each node is calculated as shown in the following table.

SW#2SW # 2 SW#3SW # 3 SW#5SW # 5 SW#1SW # 1 1One 22 1One SW#4SW # 4 22 33 1One SW#6SW # 6 1One 1One 1One CostCost 44 66 33

전술한 실시 예와 동일한 조건에서, 노드는 스위치 2, 3, 5 이고, 에지 노드는 1, 4, 6으로 구분되며, 각 노드-에지 노드 간 홉 수를 합산한 결과 스위치 5가 가장 낮은 경로 비용을 갖는 것으로 나타났다. 따라서 스위치 5가 RP로 선정되며, 재선정된 RP를 기반으로 전송 경로 트리를 생성하면 도 12의 <A>와 같은 트리를 얻을 수 있다. 컨트롤러는 <A>를 라우팅 트리로 변환하며, 변환 방법은 전술한 것과 동일하다. The nodes are switches 2, 3, and 5, and the edge nodes are divided into 1, 4, and 6, and as a result of summing the number of hops between each node and the edge node, . Therefore, the switch 5 is selected as the RP, and a transmission path tree is generated based on the re-selected RP to obtain the tree shown in FIG. 12A. The controller converts <A> to a routing tree, and the conversion method is the same as described above.

도 13은 네트워크 트래픽을 반영하여 멀티캐스트 라우팅하는 경우를 도시한 도면이다. 13 is a diagram illustrating a case where multicast routing is performed by reflecting network traffic.

이전 트래픽(BW)이 0이고, 스위치 1-4 링크, 스위치 1-2 링크, 스위치 1-5 링크, 스위치 2-6 링크의 트래픽이 도면에 도시된 바와 같이 각각 1, 0.5, 0.5, 1씩 증가한 것으로 가정하자. The traffic of the switch 1-4 link, the switch 1-2 link, the switch 1-5 link, and the switch 2-6 link is 1, 0.5, 0.5, 1 each as shown in the figure .

컨트롤러는 스위치로부터 전송되는 트래픽 정보를 이용하여 링크 트래픽을 모니터링 하며, 모니터링 결과 트래픽이 임의의 경로에 집중되는 것으로 판단되면 변경된 경로 비용을 이용하여 노드별 경로 비용을 다시 연산하고, 연산 결과에 따라 최소 경로 비용을 갖는 노드를 RP로 재선정 한다. The controller monitors the link traffic using the traffic information transmitted from the switch. If it is determined that the monitoring result traffic is concentrated in an arbitrary path, the controller calculates the path cost for each node again using the changed path cost, The node having the path cost is re-selected as the RP.

도 13의 예시에서 노드인 스위치 2, 3의 경로 비용은 다음 표와 같이 연산될 수 있다. In the example of FIG. 13, the path cost of switches 2 and 3, which are nodes, can be calculated as shown in the following table.

트래픽 증가가 없는 링크는 홉 수인 1만이 경로 비용으로 반영되는 바, 스위치 4-5, 5-6, 6-3의 경로 비용은 각각 1이며, 스위치 1-2의 경로비용은 홉 수인 1에 트래픽 증가에 따른 가중치 0.5를 합산한 1.5, 스위치 2-4의 경로비용은 홉 수인 2에 가중치 1.5가 부가된 3.5와 같이 연산될 수 있다. 따라서 각 노드의 경로 비용의 총 합은 스위치 2는 9, 스위치 3은 8.5와 같이 계산되며, 트래픽 변화에 의해 변경되는 RP는 스위치 3이 될 것이다. The path cost of switches 4-5, 5-6, and 6-3 is 1, and the path cost of switches 1-2 is 1 And the path cost of the switch 2-4 can be calculated as 3.5, which is the number of hops of 2 and the weight of 1.5 is added. Therefore, the total sum of the path cost of each node is calculated as 9 for switch 2 and 8.5 for switch 3, and the RP changed by the traffic change will be switch 3.

SW#2SW # 2 SW#3SW # 3 SW#1SW # 1 1.51.5 2.52.5 SW#4SW # 4 3.53.5 33 SW#5SW # 5 33 22 SW#6SW # 6 22 1One CostCost 99 8.58.5

RP가 스위치 3으로 선정되면, 새롭게 생성된 라우팅 트리에 따른 멀티캐스트 트래픽의 전송 경로는 도 14와 같이 나타난다. 즉, 도 14의 전송 경로에 의하면, 도 13에 도시된 바와 같이 트래픽이 급격하게 증가하는 경로를 피하여 트래픽이 전송되므로 네트워크 이용 효율이 증대되는 효과가 있다. When the RP is selected as the switch 3, the transmission path of the multicast traffic according to the newly generated routing tree is shown in FIG. That is, according to the transmission path shown in FIG. 14, as shown in FIG. 13, traffic is transmitted while avoiding a path in which traffic increases sharply, thereby increasing network utilization efficiency.

본 명세서에서 생략된 일부 실시 예는 그 실시 주체가 동일한 경우 동일하게 적용 가능하다. 또한, 전술한 본 발명은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.Some embodiments omitted in this specification are equally applicable if their implementation subject is the same. It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to be exemplary and explanatory only and are not restrictive of the invention, The present invention is not limited to the drawings.

50: 서버
100: 컨트롤러
200: 네트워크 장비
300: 호스트
50: Server
100: controller
200: Network equipment
300: Host

Claims (8)

소프트웨어 정의 네트워킹 환경에서 컨트롤러가 멀티캐스트 라우팅을 수행하는 방법에 있어서,
제1 멀티캐스트 그룹의 랑데부포인트(RP)를 선정하는 단계;
상기 RP를 루트로 하는 전송 경로 트리를 생성하고, 상기 전송 경로 트리를 서버와 연결된 에지 노드를 루트로 하는 라우팅 트리로 변환하여 상기 라우팅 트리에 따라 라우팅을 수행하는 단계를 포함하며,
상기 RP 선정 단계는
상기 제1 멀티캐스트 그룹에 속하는 제1 네트워크 장비 중 서버 또는 호스트와 연결된 제2 네트워크 장비를 에지 노드로, 나머지 제3 네트워크 장비는 노드로 설정하는 a 단계;
상기 노드와 상기 에지 노드 간 홉 수 또는 링크 트래픽 중 적어도 하나를 이용하여 상기 노드 별 경로 비용을 연산하는 b 단계;
상기 연산 결과에 따라 최소 경로 비용을 갖는 제1 노드를 RP로 선정하는 c 단계를 포함하는 멀티캐스트 라우팅 방법.
In a method for a controller to perform multicast routing in a software defined networking environment,
Selecting a rendezvous point (RP) of a first multicast group;
Generating a transmission path tree having the RP as a root, converting the transmission path tree into a routing tree having an edge node connected to the server as a root, and performing routing according to the routing tree,
The RP selection step
Setting a second network equipment connected to a server or a host among the first network equipment belonging to the first multicast group as an edge node and the remaining third network equipment as a node;
B) calculating the per-node path cost using at least one of the number of hops between the node and the edge node or the link traffic;
And selecting a first node having a minimum path cost as an RP according to the calculation result.
제1항에 있어서,
상기 b 단계는
상기 홉 수에 비례하여 경로 비용의 초기값을 설정하는 단계;
상기 링크 트래픽을 상기 경로 비용의 초기값에 가중치로 부가하는 단계를 포함하는 멀티캐스트 라우팅 방법.
The method according to claim 1,
The step b
Setting an initial value of a path cost in proportion to the number of hops;
And adding the link traffic as a weight to an initial value of the path cost.
제1항에 있어서,
상기 c 단계는
상기 연산 결과 상기 제1 노드가 둘 이상이면, 상기 제1 노드 중 임의의 일 노드를 RP로 선정하는 단계를 포함하는 멀티캐스트 라우팅 방법.
The method according to claim 1,
Step c
And selecting an arbitrary one of the first nodes as an RP if the first node has more than two first nodes.
제1항에 있어서,
임의의 링크에 장애가 발생한 것으로 판단되면,
상기 링크와 연결된 네트워크 장비로부터 포트 다운 메시지를 수신하는 단계;
상기 포트 다운 메시지를 이용하여 상기 제1 멀티캐스트 그룹의 토폴로지 정보를 변경하는 단계;
상기 변경된 토폴로지 정보를 이용하여 상기 RP 선정 단계 및 상기 멀티캐스트 라우팅 수행 단계를 다시 실행하는 단계를 더 포함하는 멀티캐스트 라우팅 방법.
The method according to claim 1,
If it is determined that a failure has occurred in an arbitrary link,
Receiving a port down message from a network device connected to the link;
Changing topology information of the first multicast group using the port down message;
And executing the RP selection step and the multicast routing step again using the changed topology information.
제1항에 있어서,
상기 제1 네트워크 장비로부터 기 설정된 간격으로 상태 메시지를 수신하는 단계를 더 포함하며,
상기 제1 멀티캐스트 그룹에 속하는 임의의 제4 네트워크 장비와 인접한 하나 이상의 네트워크 장비로부터 수신되는 포트 다운 메시지 또는 상기 제4 네트워크 장비가 전송하는 상태 메시지의 수신 여부 중 적어도 하나를 이용하여 상기 제4 네트워크 장비에 장애가 발생한 것으로 판단되면,
상기 포트 다운 메시지 및 상기 상태 메시지 수신 여부를 이용하여 상기 제1 멀티캐스트 그룹의 토폴로지 정보를 변경하는 단계;
상기 변경된 토폴로지 정보를 이용하여 상기 RP 선정 단계 및 상기 멀티캐스트 라우팅 수행 단계를 다시 실행하는 단계를 더 포함하는 멀티캐스트 라우팅 방법.
The method according to claim 1,
Further comprising receiving a status message from the first network device at predetermined intervals,
A fourth multicast group, a fourth network device, and a fourth network device, the fourth network device being connected to the fourth network device, the fourth network device being connected to the fourth network device, If it is determined that the equipment has failed,
Changing topology information of the first multicast group using the port down message and the status message reception;
And executing the RP selection step and the multicast routing step again using the changed topology information.
제1항에 있어서,
상기 제1 네트워크 장비로부터 수신되는 메시지를 이용하여 상기 링크 트래픽을 모니터링하는 단계;
상기 모니터링 결과 트래픽이 임의의 경로에 집중되는 것으로 판단되면,
변경된 경로 비용을 이용하여 상기 b 단계 내지 상기 c 단계, 및 상기 멀티캐스트 라우팅 수행 단계를 다시 실행하는 단계를 포함하는 멀티캐스트 라우팅 방법.
The method according to claim 1,
Monitoring the link traffic using a message received from the first network equipment;
If it is determined that the monitoring result traffic is concentrated in an arbitrary path,
And performing the step b to step c and the step of performing the multicast routing again using the modified path cost.
소프트웨어 정의 네트워킹 환경에서 멀티캐스트 라우팅을 수행하는 장치에 있어서,
제1 멀티캐스트 그룹의 랑데부포인트(RP)를 선정하고, 상기 RP를 이용하여 멀티캐스트 라우팅을 수행하는 애플리케이션부;
상기 제1 멀티캐스트 그룹에 속하는 하나 이상의 제1 네트워크 장비에 상기 멀티캐스트 라우팅에 따른 플로우 룰을 전송하고 상기 제1 네트워크 장비로부터 네트워크 환경에 관한 메시지를 수신하는 통신부;
상기 제1 멀티캐스트 그룹의 토폴로지 정보를 저장하는 저장부를 포함하며,
상기 애플리케이션부는
상기 제1 멀티캐스트 그룹에 속하는 제1 네트워크 장비 중 서버 또는 호스트와 연결된 제2 네트워크 장비를 에지 노드로, 나머지 제3 네트워크 장비는 노드로 설정하고, 상기 노드와 상기 에지 노드 간 홉 수 또는 링크 트래픽 중 적어도 하나를 이용하여 상기 노드 별 경로 비용을 연산하고, 상기 연산 결과에 따라 최소 경로 비용을 갖는 제1 노드를 RP로 선정하는 RP 선정부;
상기 RP를 루트로 하는 전송 경로 트리를 생성하고, 상기 전송 경로 트리를 서버와 연결된 에지 노드를 루트로 하는 라우팅 트리로 변환하는 멀티캐스트 라우팅부를 포함하는 컨트롤러.

An apparatus for performing multicast routing in a software defined networking environment,
An application unit for selecting a rendezvous point (RP) of a first multicast group and performing multicast routing using the RP;
A communication unit for transmitting a flow rule according to the multicast routing to at least one first network equipment belonging to the first multicast group and receiving a message regarding the network environment from the first network equipment;
And a storage unit for storing topology information of the first multicast group,
The application unit
A second network device connected to a server or a host among the first network devices belonging to the first multicast group is set as an edge node and the remaining third network device is set as a node and the number of hops or link traffic between the node and the edge node An RP selection unit for calculating a path cost for each node by using at least one of the RPs and an RP and selecting a first node having a minimum path cost according to the calculation result;
And a multicast routing unit for generating a transmission path tree having the RP as a root and converting the transmission path tree into a routing tree having an edge node connected to the server as a root.

삭제delete
KR1020170149135A 2017-11-10 2017-11-10 Method and apparatus for multicast routing in software defined networking environment KR101958943B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170149135A KR101958943B1 (en) 2017-11-10 2017-11-10 Method and apparatus for multicast routing in software defined networking environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170149135A KR101958943B1 (en) 2017-11-10 2017-11-10 Method and apparatus for multicast routing in software defined networking environment

Publications (1)

Publication Number Publication Date
KR101958943B1 true KR101958943B1 (en) 2019-03-15

Family

ID=65762363

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170149135A KR101958943B1 (en) 2017-11-10 2017-11-10 Method and apparatus for multicast routing in software defined networking environment

Country Status (1)

Country Link
KR (1) KR101958943B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040218536A1 (en) * 2002-12-11 2004-11-04 Nippon Telegraph And Telephone Corp. Multicast communication path calculation method and multicast communication path calculation apparatus
EP1985064A2 (en) * 2006-02-16 2008-10-29 Cisco Technology, Inc. Rerouting multicast traffic in response to detecting imminent network disruption
KR20160115050A (en) * 2015-03-25 2016-10-06 한국전자통신연구원 OpenFlow controller and method for managing QoS of packet forwarding path in OpenFlow network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040218536A1 (en) * 2002-12-11 2004-11-04 Nippon Telegraph And Telephone Corp. Multicast communication path calculation method and multicast communication path calculation apparatus
EP1985064A2 (en) * 2006-02-16 2008-10-29 Cisco Technology, Inc. Rerouting multicast traffic in response to detecting imminent network disruption
EP1985064B1 (en) * 2006-02-16 2013-08-21 Cisco Technology, Inc. Rerouting multicast traffic in response to detecting imminent network disruption
KR20160115050A (en) * 2015-03-25 2016-10-06 한국전자통신연구원 OpenFlow controller and method for managing QoS of packet forwarding path in OpenFlow network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
S.B. Choi, et.al., "Efficient Partial Single Relay Selection Scheme for Wireless Communications", IEICE TRANSACTIONS on Fundamentals of Electronics, Communications and Computer Sciences, Vol.E98-A, No* *

Similar Documents

Publication Publication Date Title
US7961646B2 (en) Multicast mesh routing protocol
EP1677464B1 (en) Packet distribution control method
US7860093B2 (en) Fast multicast convergence at secondary designated router or designated forwarder
US8009671B2 (en) Multicast method and multicast routing method
US20020143951A1 (en) Method and system for multicast to unicast bridging
US9065768B2 (en) Apparatus for a high performance and highly available multi-controllers in a single SDN/OpenFlow network
CN109150580B (en) Protocol independent multicast join entropy
US20030193958A1 (en) Methods for providing rendezvous point router redundancy in sparse mode multicast networks
US20140226525A1 (en) Safe Multicast Distribution with Predictable Topology Changes
US11290394B2 (en) Traffic control in hybrid networks containing both software defined networking domains and non-SDN IP domains
KR20110010087A (en) Method and apparatus for multicast tree management in multi-hop relay communication system
US9130857B2 (en) Protocol independent multicast with quality of service support
US9030926B2 (en) Protocol independent multicast last hop router discovery
WO2017201750A1 (en) Method, device and system for processing multicast data
US9036462B2 (en) Internet group management protocol version three for quality of service support
KR101958943B1 (en) Method and apparatus for multicast routing in software defined networking environment
US20210067438A1 (en) Multicast transmissions management
CN104348736A (en) Method for selecting route under multicast load scene and routers
JP6892206B2 (en) Multipoint communication systems and methods and programs
KR101977527B1 (en) Multicasting method and apparatus using multicast group sharing tree in software definition network
CN114915588B (en) Upstream multicast hop UMH extension for anycast deployment
JP2019036829A (en) Distribution configuration management device, distribution configuration management program, and information distribution system
Chang et al. Multiparty videoconferencing using IP multicast
Tahir et al. Dynamic QoS multicasting using greedy approach and fuzzy-based Tabu Search
Shah et al. Performance under a failure of wide-area datagram networks with unicast and multicast traffic routing

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant