KR101068787B1 - Overlay network system and method of multicast using the same - Google Patents

Overlay network system and method of multicast using the same Download PDF

Info

Publication number
KR101068787B1
KR101068787B1 KR1020090106016A KR20090106016A KR101068787B1 KR 101068787 B1 KR101068787 B1 KR 101068787B1 KR 1020090106016 A KR1020090106016 A KR 1020090106016A KR 20090106016 A KR20090106016 A KR 20090106016A KR 101068787 B1 KR101068787 B1 KR 101068787B1
Authority
KR
South Korea
Prior art keywords
packet
proxy node
mac
received
multicast
Prior art date
Application number
KR1020090106016A
Other languages
Korean (ko)
Other versions
KR20110049148A (en
Inventor
조진용
공정욱
Original Assignee
한국과학기술정보연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술정보연구원 filed Critical 한국과학기술정보연구원
Priority to KR1020090106016A priority Critical patent/KR101068787B1/en
Publication of KR20110049148A publication Critical patent/KR20110049148A/en
Application granted granted Critical
Publication of KR101068787B1 publication Critical patent/KR101068787B1/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/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Landscapes

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

Abstract

오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법이 개시된다. 본 발명은 복수의 종단 호스트, 데이터평면에서 복수의 종단 호스트와 각각 연결되고, 복수의 종단 호스트의 멀티캐스트 참가 및 탈퇴를 모니터링하고, 관리서버로부터 수신한 플로우테이블에 대응하여 아이피 인 아이(IP-in-IP)에 의해 패킷을 이동하는 복수의 프록시 노드 및 제어평면에서 복수의 프록시 노드로부터 수신한 정보를 바탕으로 멀티캐스트 스패닝트리를 구성하고, 패킷 플로우에 대한 플로우테이블을 설정하여 복수의 프록시 노드로 전송하는 상기 관리서버를 포함하여 구성되어, SeeOver(Service-enabling Overlay) 인프라를 구축, 서비스할 수 있다.An overlay network system and a multicast method using the same are disclosed. The present invention is connected to a plurality of end hosts, a plurality of end hosts in the data plane, and monitors the participation and withdrawal of the multicast of the plurality of end hosts, and in response to the flow table received from the management server IP in eye (IP- a multicast spanning tree based on information received from a plurality of proxy nodes moving packets by in-IP and a plurality of proxy nodes in a control plane, and a flow table for packet flows It is configured to include the management server to transmit to, to build and service SeeOver (Service-enabling Overlay) infrastructure.

종단 호스트, 데이터평면, 제어평면, 프록시 노드, 관리서버 End host, data plane, control plane, proxy node, management server

Description

오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법{OVERLAY NETWORK SYSTEM AND METHOD OF MULTICAST USING THE SAME}OVERLAY NETWORK SYSTEM AND METHOD OF MULTICAST USING THE SAME}

본 발명은 오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법에 관한 것으로, 보다 상세하게는 제어평면(control plane) 및 데이터평면(data plane)이 분리되어 있으며, 프록시 노드가 데이터평면에서 점대점(point-to-point) 또는 점대다(point-to-multipoint) 포워딩을 수행하고, 관리서버(Coordinator)는 제어평면에서 프록시 노드의 관리, 스패닝트리의 구성을 수행하여 SeeOver(Service-enabling Overlay) 인프라를 구축, 서비스할 수 있는 오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법에 관한 것이다.The present invention relates to an overlay network system and a multicast method using the same. More specifically, a control plane and a data plane are separated, and a proxy node is point-to-point in the data plane. -point) or point-to-multipoint forwarding, and the management server (Coordinator) manages the proxy nodes and configures the spanning tree in the control plane to build a SeeOver (Service-enabling Overlay) infrastructure. An overlay network system that can serve and a multicast method using the same.

종래의 아이피 멀티캐스트(IP Multicast)는 수익 모델의 부재, AS간 정책적 이견 및 유지 관리의 어려움 등으로 기술적 장점에도 불구하고 구축 서비스가 제한적으로 진행되어 왔다. 근래의 아이피(IP) TV 등 상용 서비스 모델이 등장하고 e-Science와 같은 과학기술 협업 환경에의 요구 등 기술의 확대 적용에 대한 기대가 증가되고 있다. 이러한 시점에서 아이피 멀티캐스트 서비스의 부재 및 도메인 간 상호 라우팅 문제 등으로 인해 발생하는 서비스의 단절 및 응용 서비스의 저품질화 를 포함하는 다양한 문제들을 극복하고 다자간 망기반 협업이 가능하도록 안정적인 아이피(IP) 멀티캐스팅 인프라를 제공할 수 있는 기술적 접근이 요구된다.Conventional IP Multicast (IP Multicast) has a limited implementation service despite the technical advantages due to the absence of a revenue model, policy differences between AS and difficult maintenance. Recently, commercial service models such as IP (IP) TVs have emerged, and there is a growing expectation for the widespread application of technology, such as the demand for scientific and technological collaboration environments such as e-Science. At this point, stable IP multiplexing is possible to overcome various problems including disconnection of service and low quality of application service caused by absence of IP multicast service and mutual routing problem between domains. A technical approach is needed to provide a casting infrastructure.

아이피(IP) 멀티캐스트의 비신뢰적 전송 등 품질 문제와 인프라 구축 지연 등으로 인한 서비스 부재의 문제를 해결하기 위해 Overcast, RON, ScatterCast, Yoid, ECM, ALMI 등 다양한 오버레이 멀티캐스트 연구들이 진행되어 왔다. 이러한 오버레이 멀티캐스트 연구들은 오버레이 구조의 확장성, 연결성, 신뢰성 등의 향상에 초점을 두었고, 응용 계층에서 아이피 패킷을 처리하기 때문에 패킷 포워딩 성능이 낮거나, 패킷 중계를 담당하는 호스트들의 잦은 멀티캐스트 참가 및 탈퇴(join and leave)로 인해 트리(tree) 구성이 안정적이지 못한 단점이 있다. Overlay, RON, ScatterCast, Yoid, ECM, ALMI and other overlay multicast studies have been conducted to solve problems such as quality problems such as unreliable transmission of IP multicast and lack of service due to delays in infrastructure construction. . These overlay multicast studies focus on improving the scalability, connectivity, and reliability of the overlay structure, and because the IP layer is handled at the application layer, low packet forwarding performance or frequent multicast participation of hosts responsible for packet relaying And tree composition is not stable due to join and leave.

또한, 오버레이 인프라에 참가하는 호스트 간 메시지 교환을 위해 비표준 통신 규약이나 인프라 종속적인 패킷 헤더 등을 사용해야 하므로 종단 호스트의 응용 소프트웨어 또는 시스템 설정의 변경을 필요로 한다. In addition, the use of non-standard communication protocols or infrastructure-dependent packet headers for message exchange between hosts participating in the overlay infrastructure requires a change in the application software or system configuration of the end host.

일례로, 오버레이 프록시(수퍼노드)를 사용하는 ScatterCast는 평균 350Mbps의 패킷 처리율을 보이며 패킷당 처리지연이 200 내지 600㎲(최대 2 내지 3㎳)로써 다수의 프록시를 통해 라우팅될 때 높은 지연변이(Jitter)가 발생하는 등 서비스 품질의 저하를 예상할 수 있다.For example, ScatterCast using an overlay proxy (supernode) has a packet throughput of 350 Mbps on average and a high latency variation when routing through multiple proxies with 200 to 600 milliseconds of delay per packet (up to 2-3 milliseconds). Deterioration of service quality can be expected such as jitter.

즉, 종래의 아이피 멀티캐스트를 대체하는 오버레이 네트워킹 기술들은 종단 호스트의 설정수정 또는 비표준 통신 규약 등을 이용해야 하고, 종단 호스트들이 패킷 전달에 직접 참가하므로 참가 및 탈퇴가 자유롭기 때문에 안정적인 트리를 제공하지 못하였고, 악성 사용자로부터 해당 그룹을 보호할 수 없었다. In other words, overlay networking techniques replacing conventional IP multicast must use end host configuration modification or non-standard communication protocol, and do not provide stable tree because end hosts directly participate in packet forwarding and are free to join and leave. The group could not be protected from malicious users.

또한, 종래의 소프트웨어에 의한 점대다 포워딩은 고성능, 고가의 워크스테이션(workstation)을 활용하지만 패킷 처리율 등에서 낮은 성능을 보이는 문제점이 있었다.In addition, conventional point-to-multiple forwarding by software utilizes a high-performance, expensive workstation, but has a problem of low performance in packet throughput.

따라서, 상기 문제점을 해결하기 위한 본 발명의 목적은 아이피(IP) 멀티캐스트를 대행하는 것으로, 제어평면 및 데이터평면이 분리되어 있으며, 프록시 노드가 데이터평면에서 점대점 또는 점대다 포워딩을 수행하고, 관리서버는 제어평면에서 프록시 노드의 관리, 스패닝트리의 구성을 수행하여 SeeOver 인프라를 구축, 서비스할 수 있는 오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법을 제공하는 것이다.Accordingly, an object of the present invention for solving the above problems is to substitute for IP (IP) multicast, the control plane and the data plane is separated, the proxy node performs point-to-point or point-to-many forwarding in the data plane, The management server provides an overlay network system capable of constructing and servicing a SeeOver infrastructure by managing proxy nodes and configuring a spanning tree in a control plane, and a multicast method using the same.

이러한 목적을 달성하기 위하여 본 발명은 복수의 종단 호스트, 데이터평면에서 상기 복수의 종단 호스트와 각각 연결되고, 상기 복수의 종단 호스트의 멀티캐스트 참가 및 탈퇴를 모니터링하고, 관리서버로부터 수신한 플로우테이블에 대응하여 아이피 인 아이(IP-in-IP)에 의해 패킷을 이동하는 복수의 프록시 노드 및 제어평면에서 상기 복수의 프록시 노드로부터 수신한 정보를 바탕으로 멀티캐스트 스패닝트리를 구성하고, 패킷 플로우에 대한 플로우테이블을 설정하여 상기 복수의 프록시 노드로 전송하는 상기 관리서버를 포함하며 상기 데이터평면과 상기 제어평면은 분리되고, 상기 복수의 종단 호스트와 상기 복수의 프록시 노드 사이에는 아이지엠피(IGMP) 규약이 적용되는 오버레이 네트워크 시스템을 제공한다.In order to achieve the above object, the present invention is connected to a plurality of end hosts and a plurality of end hosts in the data plane, respectively, and monitors multicast participation and withdrawal of the plurality of end hosts, and transmits them to a flow table received from a management server. Correspondingly, a multicast spanning tree is constructed based on the information received from the plurality of proxy nodes in the control plane and the control node moving the packet by IP-in-IP, and the packet flow And a management server configured to set a flow table and transmit the flow table to the plurality of proxy nodes, wherein the data plane and the control plane are separated, and an IGMP protocol is established between the plurality of end hosts and the plurality of proxy nodes. Provides an overlay network system applied.

상기 목적을 달성하기 위한 본 발명은 (a)프록시 노드는 맥 프레임을 수신하는 단계, (b)상기 프록시 노드는 상기 수신한 맥 프레임의 목적지 맥 주소를 판단 하는 단계, (c)상기 프록시 노드는 상기 맥 프레임의 목적지 맥 주소가 멀티캐스트 맥 주소이면 프로토콜 번호를 읽어 수신한 패킷의 종류를 판단하는 단계, (d)상기 프록시 노드는 상기 수신한 패킷이 멀티캐스트 아이피(IP)이면 플로우테이블의 필터링 룰(RULES)을 검색하고, 상기 수신한 프레임의 맥 주소와 프로토콜 번호가 아이지엠피 패킷이면 소프트웨어에서 처리하는 단계 및 (e)상기 프록시 노드는 상기 플로우테이블에 상기 수신한 맥 프레임이 갖는 정보를 포함하는 필터링 룰이 존재하지 않으면 관리서버에게 플로우테이블을 요청하고, 필터링 룰이 존재하는 경우 처리규칙(ACTION)을 수행하는 단계를 포함하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법을 제공한다.The present invention for achieving the above object is (a) the proxy node receiving the MAC frame, (b) the proxy node determining the destination MAC address of the received Mac frame, (c) the proxy node Determining a type of a received packet by reading a protocol number if the destination MAC address of the MAC frame is a multicast MAC address, and (d) filtering the flow table if the received packet is a multicast IP (IP) Searching for a rule and processing in software if the MAC address and protocol number of the received frame are IGMP packets; and (e) the proxy node includes information of the received MAC frame in the flow table. If the filtering rule does not exist, request the flow table from the management server, and if the filtering rule exists, the processing rule (ACTION) is executed. It provides a multicast method using an overlay network system comprising the step.

따라서, 본 발명의 오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법에 의하면, 아이피 멀티캐스트를 대행하는 것으로, 제어평면 및 데이터평면이 분리되어 있으며, 프록시 노드가 데이터평면에서 점대점 또는 점대다 포워딩을 수행하고, 관리서버는 제어평면에서 프록시 노드의 관리, 스패닝트리의 구성을 수행하여 SeeOver 인프라를 구축, 서비스할 수 있는 효과가 있다.Therefore, according to the overlay network system of the present invention and a multicast method using the same, the control plane and the data plane are separated on behalf of IP multicast, and the proxy node performs point-to-point or point-to-many forwarding on the data plane. In addition, the management server has the effect of establishing and servicing the SeeOver infrastructure by performing proxy node management and spanning tree configuration in the control plane.

또한, 본 발명의 오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법은 수퍼노드인 오버레이 프록시(proxy)를 이용하므로 안정적인 트리 제공이 가능하며, 아이지엠피(IGMP)(Internet group management protocol)등 기존 아이피 프로토콜 규약을 준수함으로써 시스템 설정의 변경없이 다자간 협업에 참가할 수 있는 효과가 있다.In addition, the overlay network system of the present invention and a multicast method using the same can provide a stable tree by using an overlay proxy, which is a super node, and can use existing IP protocol protocols such as Internet group management protocol (IGMP). Compliance allows you to participate in multilateral collaboration without changing system settings.

또한, 본 발명의 오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법은 멀티캐스트 패킷을 플로우테이블(Flow table)에 기반하여 포워딩하게 함으로써 각 플로우에 대한 관리성을 높이고, 관리서버가 멀티캐스트 패킷에 대한 필터링 룰(RULES) 규칙 및 처리지침(ACTION) 등을 결정하게 함으로써 플로우 처리에 대한 다양한 설정의 조합이 가능한 효과가 있다.In addition, the overlay network system of the present invention and a multicast method using the same increase the manageability of each flow by forwarding the multicast packet based on a flow table, and the management server filters the rules for the multicast packet. (RULES) It is possible to combine various settings for flow processing by determining rules and action instructions.

그리고, 본 발명의 오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법은 PCI(Peripheral component interconnect) 카드인 저가의 NetFPGA를 활용해 고속 패킷 포워딩 및 다지점 복제를 수행하고, 제어평면과 데이터평면을 분리함으로써 Gbps 급 패킷 처리 성능을 보장할 수 있고, 비용 효율적 프록시의 구축이 가능한 효과가 있다.In addition, the overlay network system of the present invention and a multicast method using the same perform a high-speed packet forwarding and multi-point replication using a low-cost NetFPGA, a Peripheral Component Interconnect (PCI) card, and separate the control plane from the data plane to provide Gbps. Packet processing performance can be guaranteed and a cost effective proxy can be constructed.

본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정 해석되지 아니하며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.The terms or words used in this specification and claims are not to be construed as limiting in their usual or dictionary meanings, and the inventors may properly define the concept of terms in order to best explain their invention in the best way possible. It should be interpreted as meaning and concept corresponding to the technical idea of the present invention.

이하, 본 발명의 바람직한 실시예를 첨부도면에 의거하여 설명한다.Best Mode for Carrying Out the Invention Preferred embodiments of the present invention will be described below with reference to the accompanying drawings.

본 발명의 실시예에 의한 오버레이 네트워크 시스템은 도 1 및 도 2 를 참조하여 설명하면 다음과 같다. 도 1은 본 발명의 실시예에 의한 오버레이 네트워크 시스템의 개략도이고, 도 2는 도 1의 프록시 노드를 나타내는 개략도이다.An overlay network system according to an embodiment of the present invention will be described with reference to FIGS. 1 and 2 as follows. 1 is a schematic diagram of an overlay network system according to an embodiment of the present invention, and FIG. 2 is a schematic diagram illustrating the proxy node of FIG. 1.

도 1에 도시된 바와 같이, 본 발명의 실시예에 의한 오버레이 네트워크 시스 템(100)은 멀티캐스트를 위해 제어평면(control plane)과 데이터평면(data plane)으로 분리되어 있으며, 복수의 종단 호스트(hk, hk', hm)(140), 복수의 프록시 노드(Nl, Nm, Nk)(110), 관리서버(C, 150)를 포함하여 구성된다.As shown in FIG. 1, the overlay network system 100 according to an embodiment of the present invention is divided into a control plane and a data plane for multicast, and includes a plurality of end hosts ( h k , h k ' , h m ) 140, a plurality of proxy nodes N 1 , N m , N k ) 110, and a management server C, 150.

복수의 종단 호스트(140)와 복수의 프록시 노드(110) 사이에는 아이지엠피(IGMP) 규약을 이용하며, 프록시 노드(110)는 종단 호스트(140)의 멀티캐스트 참가 및 탈퇴를 모니터링하고, 관리 즉 아이지엠피 스누핑(snooping)한다. 멀티캐스트 패킷을 목적지로 전송하기 위해 프록시 노드(110) 사이에는 아이핀-인-아이피(IP-in-IP) 서비스를 제공한다.IGMP protocol is used between the plurality of end hosts 140 and the plurality of proxy nodes 110, and the proxy node 110 monitors the multicast participation and withdrawal of the end hosts 140, and Snooping EGMP Snooping An IP-in-IP service is provided between the proxy nodes 110 to transmit a multicast packet to a destination.

관리서버(C)는 프록시 노드(110)가 제공한 정보를 바탕으로 스패닝트리를 구성하고 패킷 플로우에 대한 처리 방법을 프록시 노드(110)에 전송한다. 이후, 프록시 노드(110)는 관리서버(150)가 제공한 플로우테이블에 기반하여 해당 패킷 플로우를 고속 포워딩한다.The management server C constructs a spanning tree based on the information provided by the proxy node 110 and transmits a processing method for the packet flow to the proxy node 110. Thereafter, the proxy node 110 forwards the packet flow at high speed based on the flow table provided by the management server 150.

구체적으로, 도 2를 참조하여 프록시 노드(110)를 살펴보면, 프록시 노드(110)는 하드웨어 및 소프트웨어로 구분된다. 하드웨어는 아이피(IP) 패킷 및 맥(MAC) 프레임 포워딩 기능을 수행하고, 소프트웨어는 에이알피(ARP), 아이지엠피(IGMP), SSL 등의 통신규약 등을 수행한다. 이때, 데이터평면은 하드웨어가 관리하고, 제어평면은 소프트웨어가 관리한다.Specifically, referring to the proxy node 110 with reference to FIG. 2, the proxy node 110 is divided into hardware and software. The hardware performs IP packet and MAC frame forwarding functions, and the software performs communication protocols such as ARP, IGMP, SSL, and the like. At this time, the data plane is managed by hardware, and the control plane is managed by software.

프록시 노드(110)는 2계층, 3계층 헤더 정보를 바탕으로 패킷을 구분하여 처리한다. 특히, 프록시 노드(110)는 공인 IP를 가지고 있으므로 ARP 패킷을 소프트 웨어에서 처리하고, IGMP를 이용하기 때문에 IBMP 패킷을 소프트웨어에서 처리한다.The proxy node 110 classifies and processes packets on the basis of layer 2 and layer 3 header information. In particular, the proxy node 110 processes the ARP packet in software because it has a public IP, and processes the IBMP packet in software because IGMP is used.

구체적으로, 아비터(Arbiter, 111)는 물리계층(PHY, 119)을 통해 입력되는 맥 프레임을 통해 프레임 및 패킷의 종류를 파악하고, 종류에 따른 처리 블럭을 선택한다. 또한, 맥 테이블(MAC Table)을 유지, 관리하고 아이피 Checksum 오류를 검사한다. 예컨대, 에이알피에 해당하는 맥(MAC) 프레임을 수신받았을 경우에, 맥 테이블의 관리를 위해 소프트웨어 부분의 오버레이 엔진(Overlay Engine, 121)으로 분기시킨다.Specifically, the arbiter 111 detects the type of the frame and the packet through the MAC frame input through the physical layer PHY 119, and selects a processing block according to the type. It also maintains and maintains MAC tables and checks for IP checksum errors. For example, when receiving a MAC frame corresponding to the ALP, it branches to the overlay engine 121 of the software portion for managing the MAC table.

또한, 아비터(111)는 정보 베이스(Information Bases, 113)의 플로우테이블(Flow Table), 맥 테이블, 시스템 상태 등을 갱신하고, 정보 베이스(113)의 정보를 이용하여 패킷 및 프레임 입, 출력을 총괄한다.In addition, the arbiter 111 updates a flow table, a MAC table, a system state, and the like of the information bases 113, and inputs and outputs packets and frames using the information of the information base 113. Take control.

맥 브리지(MAC Bridge, 115)는 2계층 맥 프레임의 스위칭(switching) 기능을 수행한다. 정보 베이스(113)가 보유 중인 맥 테이블을 읽어 출력 포트 등을 결정하고 맥 프레임을 생성한다.The MAC bridge 115 performs a switching function of the two-layer MAC frame. The MAC table held by the information base 113 is read to determine an output port, etc., and generate a MAC frame.

아이피 브리지(IP Bridge, 117)는 정보 베이스(113)가 보유 중인 플로우테이블을 읽어 아이피 패킷을 캡슐화(encapsulation) 또는 역캡슐화(de-encapulation)한다. 여기서, 캡슐화는 아이피-인-아이피 방식이며 캡슐화된 아이피 패킷은 점대점으로 연결된 이웃(neighbor) 프록시 노드(110)에게 전달되며, 역캡슐화되는 아이피 패킷은 다운링크 포트에 연결된 종단 호스트(140)들에게 플러딩된다.The IP bridge 117 reads a flow table held by the information base 113 to encapsulate or de-encapsulate an IP packet. Here, the encapsulation is IP-in-IP, and the encapsulated IP packet is delivered to the neighbor proxy node 110 connected in point-to-point, and the IP packet being decapsulated is connected to the end hosts 140 connected to the downlink port. Is flooded into

본 발명의 실시예에 의한 오버레이 네트워크 시스템의 프록시 노드의 패킷 처리 방법을 도 1 내지 도 7을 참조하여 설명하면 다음과 같다. 도 3 및 도 4는 본 발명의 실시예에 의한 맥(MAC) 프레임 처리 방법에 대한 흐름도이고, 도 5는 본 발명의 실시예에 의한 에이알피(ARP) 처리 방법에 대한 흐름도이고, 도 6은 본 발명의 실시예에 의한 아이지엠피(IGMP) 처리 방법에 의한 흐름도이고, 도 7은 본 발명의 실시예에 의한 오버레이 네트워크 시스템의 관리서버와 프록시 노드 간의 신호 처리에 대한 도면이다.A packet processing method of a proxy node of an overlay network system according to an embodiment of the present invention will be described with reference to FIGS. 1 to 7. 3 and 4 are flowcharts illustrating a MAC frame processing method according to an embodiment of the present invention, FIG. 5 is a flowchart illustrating an ARP processing method according to an embodiment of the present invention, and FIG. FIG. 7 is a flowchart illustrating an IGMP processing method according to an embodiment of the present invention, and FIG. 7 is a diagram illustrating signal processing between a management server and a proxy node of an overlay network system according to an embodiment of the present invention.

프록시 노드(110)는 2계층에서 맥 프레임을 기준으로 패킷 또는 프레임을 구분하여 처리한다.The proxy node 110 classifies and processes packets or frames based on MAC frames in the second layer.

도 3에 도시된 바와 같이, 프록시 노드(110)는 S201과정에서 맥 프레임을 수신하고, S203과정에서 프록시 노드(110)의 맥 프레임의 목적지 맥 주소를 판단한다.As shown in FIG. 3, the proxy node 110 receives a MAC frame in step S201, and determines a destination MAC address of the mac frame of the proxy node 110 in step S203.

다음으로 211과정에서 프록시 노드(110)는 맥 프레임의 목적지 맥 주소가 멀티캐스트 맥 주소이면 프로토콜 번호를 읽어 수신한 패킷의 종류를 판단한다. 판단 결과 수신한 패킷이 아이지엠피 패킷이면 S213과정에서 프록시 노드(110)는 소프트웨어에서 처리한다.Next, in step 211, if the destination MAC address of the MAC frame is a multicast MAC address, the proxy node 110 reads the protocol number to determine the type of the received packet. If it is determined that the received packet is an IGP packet, the proxy node 110 processes the software in step S213.

판단 결과 수신한 패킷이 멀티캐스트 IP이면 S231과정에서 프록시 노드(110)는 플로우테이블의 필터링 룰이 존재하는지 검색한다. 다음으로 프록시 노드(110)는 S233과정에서 플로우테이블에 수신한 맥 프레임이 갖는 정보를 포함하는 필터링 룰이 존재하지 않으면 관리서버(150)에 플로우테이블을 요청하고, S235과정에서 필터링 룰이 존재하면 처리규칙을 수행한다.As a result of the determination, if the received packet is a multicast IP, in step S231, the proxy node 110 searches whether the filtering rule of the flow table exists. Next, the proxy node 110 requests a flow table from the management server 150 when there is no filtering rule including information of the MAC frame received in the flow table in step S233, and the filtering rule exists in step S235. Implement processing rules.

이때, 프록시 노드(110)는 패킷의 캡슐화 여부와 관계없이 필터링 된 맥 프레임이 수신되면 플로우테이블을 검색한다. 그리고, 프록시 노드(110)는 플로우테이블에 수신된 패킷에 대응하는 필터링 룰이 검색되지 않으면 필터링 룰을 얻어오기 위해 소프트웨어에서 관리서버(150)와 통신하는 것이 바람직하다.At this time, the proxy node 110 searches the flow table when the filtered MAC frame is received regardless of whether the packet is encapsulated. In addition, the proxy node 110 preferably communicates with the management server 150 in software to obtain a filtering rule if a filtering rule corresponding to the packet received in the flow table is not found.

한편, S203과정에서 맥 프레임의 목적지 맥 주소의 판단 결과, 목적지 맥 주소가 유니캐스트인 경우에 S221과정에서 프록시 노드(110)는 수신한 맥 주소와 수신한 프레임의 맥 주소가 일치하는지 판단한다. 이때, S223과정에서 프록시 노드(110)는 프록시 맥 주소와 수신한 프레임의 맥 주소가 일치하지 않으면 플러딩한다.On the other hand, as a result of determining the destination MAC address of the MAC frame in step S203, when the destination MAC address is unicast, the proxy node 110 determines whether the received MAC address and the MAC address of the received frame match in step S221. In this case, in step S223, the proxy node 110 floods if the proxy MAC address does not match the MAC address of the received frame.

다음으로 S225과정에서 프록시 노드(110)는 수신한 프레임이 아이피 인 아이피 패킷인지 판단하여 캡슐화의 여부를 판단한다.Next, in step S225, the proxy node 110 determines whether the received frame is an IP in IP packet to determine whether to encapsulate it.

다음으로 S227과정에서 수신한 맥 프레임이 캡슐화되지 않으면, 포트가 TCP/UDP 포트인 경우에는 S229과정에서 소프트웨어에서 처리하고, 포트가 TCP/UDP 포트가 아닌 경우에는 도시되지는 않았으나 소프트웨어에서 예외 처리한다.Next, if the Mac frame received in step S227 is not encapsulated, if the port is a TCP / UDP port, the process is handled by the software in step S229. .

한편, S227과정에서 수신한 맥 프레임이 캡슐화된 경우에는 S231과정에서 플로우테이블에 필터링 룰이 존재하는지 판단한다.On the other hand, if the MAC frame received in step S227 is encapsulated in step S231 it is determined whether the filtering rule exists in the flow table.

다음으로 프록시 노드(110)는 S233과정에서 플로우테이블에 수신한 맥 프레임이 갖는 정보를 포함하는 필터링 룰이 존재하지 않으면 관리서버(150)에 플로우테이블을 요청하고, S235과정에서 필터링 룰이 존재하면 처리규칙을 수행한다. 이때, 처리규칙을 통해 맥 헤더 및 IP 헤더의 필드 내용을 변경할 수 있다.Next, the proxy node 110 requests a flow table from the management server 150 when there is no filtering rule including information of the MAC frame received in the flow table in step S233, and the filtering rule exists in step S235. Implement processing rules. At this time, the contents of the fields of the MAC header and the IP header can be changed through the processing rule.

도 4에 도시된 바와 같이, 먼저, S301과정에서 맥 프레임을 수신하면, S303과정에서 수신된 프레임의 목적지 맥 주소를 바탕으로 워크플로우가 분기된다.As shown in FIG. 4, first, when the MAC frame is received in step S301, the workflow branches based on the destination MAC address of the frame received in step S303.

수신된 프레임의 목적지 맥 주소가 브로드캐스트 주소를 가질 경우 S311과정에서 헤더의 Ethernet type 필드값을 읽어 에이알피 패킷 여부를 판단한다. 다음으로, 확인 결과 에이알피 패킷이라면 S313과정에서 에이알피 패킷은 소프트웨어 영역으로 옮겨진 후 뒤에서 설명할 도 5와 같은 방법으로 처리된다.If the destination MAC address of the received frame has a broadcast address, it is determined whether the ALP packet is read by reading the value of the Ethernet type field of the header in step S311. Next, if it is confirmed that the ALP packet, the ALP packet is moved to the software domain in step S313 and then processed in the same manner as described in FIG. 5.

또한, 프록시 노드(110)는 수신된 목적지 맥 주소가 에이알피 패킷이 아닌 일반 브로드캐스트 패킷인 경우 S315과정에서 플러딩한다.In addition, the proxy node 110 floods in step S315 when the received destination MAC address is a general broadcast packet instead of an ALP packet.

그리고, 수신된 목적지 맥 주소가 일반 유니캐스트 주소(Ethernet type은 아이피(IP))인 경우에는 S321과정에서 프록시 노드(110)는 해당 프록시 노드(110)의 맥 주소와 수신한 프레임의 맥 주소를 비교한다. 두 주소가 일치하는 경우에는 S323과정에서 프록시 노드(110)는 아이피 패킷의 프로토콜 번호를 읽어 아이피-인-아이피 캡슐화 여부를 판단한다. S325과정에서 프록시 노드(110)는 캡슐화되지 않은 패킷인 경우 소프트웨어에서 처리하고, S327과정에서 캡슐화된 패킷인 경우에 플로우테이블을 검색하여 해당되는 필터링 룰(RULES)을 찾는다. 이후, 플로우테이블에 해당 필터링 룰이 존재하는 경우 S329과정에서 프록시 노드(110)는 처리규칙을 수행한다.If the received destination MAC address is a general unicast address (Ethernet type is IP), in step S321, the proxy node 110 may determine the MAC address of the corresponding proxy node 110 and the MAC address of the received frame. Compare. If the two addresses match, in step S323, the proxy node 110 reads the protocol number of the IP packet and determines whether to encapsulate the IP-in-IP. In step S325, the proxy node 110 processes the software in the case of an unencapsulated packet, and searches the flow table to find a corresponding filtering rule (RULES) in the case of the packet encapsulated in step S327. Thereafter, when the filtering rule exists in the flow table, the proxy node 110 performs a processing rule in step S329.

이때, 필터링 룰이 플로우테이블에 존재하지 않는 경우는 오류이므로 S328과정에서 프록시 노드(110)는 소프트웨어에서 예외처리(Error handling)한다. 여기서, 필터링 룰은 패킷 플로우를 필터링하는 규칙이며, 처리규칙은 해당 플로우를 처리하는 규정(예, discard, forward 등)이다.In this case, since the filtering rule does not exist in the flow table, an error is handled by the proxy node 110 in software in step S328. Here, the filtering rule is a rule for filtering a packet flow, and the processing rule is a rule (eg, discard, forward, etc.) for processing the flow.

한편, 목적지 맥 주소가 아이피 멀티캐스트인 경우에는 S331과정에서 프록시 노드(110)는 수신된 패킷의 입력 포트를 판단한다. 이때, S333과정에서 프록시 노드(110)는 업링크를 통해 입력되는 멀티캐스트 프레임은 처리하지 않고 버리고, S335과정에서 프록시 노드(110)는 다운링크 포트를 통해 입력되는 멀티캐스트 프레임은 플러딩한다.On the other hand, if the destination MAC address is IP multicast, the proxy node 110 determines the input port of the received packet in step S331. At this time, in step S333, the proxy node 110 discards the multicast frame input through the uplink without processing. In step S335, the proxy node 110 floods the multicast frame input through the downlink port.

다음으로 S337과정에서 프록시 노드(110)는 다운링크 포트를 통해 입력되는 멀티캐스트 프레임이 아이지엠피 패킷을 포함하고 있는지 판단하여, 아이지엠피 패킷을 포함하고 있으면 S339과정에서 아이지엠피 규약을 소프트웨어가 처리하고, 일반 Class D 주소를 가질 경우에는 S341과정에서 플로우테이블을 검색한다.Next, in step S337, the proxy node 110 determines whether the multicast frame inputted through the downlink port includes the IGP packet, and if it contains the IGP packet, the software processes the IGP protocol in step S339. In case of having a general Class D address, the flow table is searched in step S341.

검색 결과, 플로우테이블에 필터링 룰이 존재하면 S329과정에서 해당 처리규칙을 수행하고, 플로우테이블에 필터링 룰이 존재하지 않으면 S343과정에서 패킷에 대응하는 플로우테이블을 얻기 위해 소프트웨어가 관리서버(150)로부터 필터링 룰을 받고 플로우테이블을 갱신한다.As a result of the search, if the filtering rule exists in the flow table, the processing rule is performed in step S329. If the filtering rule does not exist in the flow table, the software sends the management server 150 to obtain a flow table corresponding to the packet in step S343. Receive filtering rules and update the flow table.

도 5는 에이알피(ARP) 패킷을 소프트웨어에서 처리하는 절차를 보여주는 도면으로, 도 4의 S311과정에서 헤더의 Ethernet type 필드값이 에이알피 패킷인 경우에 소프트웨어 영역으로 이동하여 처리하는 방법을 나타낸다.FIG. 5 is a diagram illustrating a procedure of processing an ARP packet in software, and illustrates a method of moving to a software area when the Ethernet type field value of the header is an ALP packet in step S311 of FIG. 4.

에이알피 패킷의 Ethernet Type은 0x0806이다. 임의의 호스트는 자신의 맥 테이블의 목적지 아이피에 대한 맥 주소를 가지고 있지 않을 경우 에이알피요청(ARP request) 패킷을 발생시키며, 수신받은 에이알피요청 패킷의 아이피 주소가 자신의 주소와 동일한 호스트는 에이알피응답(ARP reply) 패킷을 피드백한다. 도 5는 해당 프록시 노드가 패킷 송신자로써 에이알피요청 패킷을 발생시키는 과정은 생략되어 있고 타 호스트가 발생시킨 에이알피요청의 처리 과정만 포함하고 있다.The Ethernet type of ARP packet is 0x0806. If a host does not have a MAC address for its destination IP in its MAC table, it generates an ARP request packet. A host whose IP address in the received ARP request packet is the same as its own address Feedback the ARP reply packet. FIG. 5 omits the process of generating an ARP request packet by the corresponding proxy node as a packet sender, and includes only the processing of an ARP request generated by another host.

먼저, S401과정에서 에이알피 패킷이 입력되면, S403과정에서 임의의 호스트(140)는 에이알피 패킷의 operation 필드를 통해 에이알피 타입을 구분한다. 다음으로 S411과정에서 임의의 프록시 노드(110)는 자신이 발생시킨 에이알피요청 패킷에 대한 에이알피응답 패킷을 수신했는지 판단하고, 자신이 발생시킨 에이알피요청 패킷에 대한 에이알피응답 패킷을 수신한 경우 S413과정에서 에이알피 테이블을 갱신한다. 그리고, S415과정에서 reply 패킷이 보고한 맥 주소를 이용해 큐에 임시 저장된 패킷을 전송한다.First, when an ALP packet is input in step S401, in step S403, an arbitrary host 140 distinguishes an ALP type through an operation field of the ALP packet. Next, in step S411, the arbitrary proxy node 110 determines whether the ALP response packet for the ALP request packet generated by itself is received, and receives the ALP response packet for the ALP request packet generated by the proxy node 110. In case S413, the ALP table is updated. In step S415, the packet is temporarily stored in the queue using the MAC address reported by the reply packet.

한편, S403과정에서 프로시 노드(110)는 에이알피 타입을 구분한 결과, 에이알피요청 패킷을 수신한 경우에는 S421과정에서 에이알피 패킷에 의해 요청된 아이피의 맥 주소가 자신의 인터페이스 주소와 일치하는지 판단한다. 참고로, 에이알피 패킷의 이더넷(Ethernet) 에이알피 필드는 {송신자 맥(MAC) 주소, 송신자 아이피(IP) 주소, 수신자 맥(MAC) 주소, 수신자 아이피(IP) 주소}를 포함한다. 에이알피 패킷에 의해 요청된 아이피의 맥 주소가 자신의 인터페이스 주소와 일치하는 경우, S423과정에서 프록시 노드(110)는 에이알피응답 패킷을 발생시키고, S425과정에서 해당 에이알피요청 패킷이 수신된 포트로 송신한다.On the other hand, in step S403, when the procedure node 110 classifies the ALP type and receives the ALP request packet, the MAC address of the IP requested by the ALP packet in step S421 matches its interface address. Determine. For reference, the Ethernet ALP field of the ALP packet includes {sender MAC (MAC) address, sender IP (IP) address, recipient MAC (MAC) address, recipient IP (IP) address}}. If the MAC address of the IP requested by the ALP packet matches its interface address, the proxy node 110 generates an ARP response packet in step S423, and the port on which the corresponding ALP request packet is received in step S425. To send.

아울러, 입력된 패킷이 자신이 발생시킨 에이알피요청 패킷에 대한 에이알피응답 패킷이 아니거나, 에이알피 패킷에 의해 요청된 아이피의 맥 주소가 자신의 인터페이스 주소와 일치하지 않는 경우 S431과정에서 프록시 노드(110)는 에이알피 패킷을 플러딩한다.In addition, if the input packet is not an ARP response packet for an ARP request packet generated by the ARP packet, or if the MAC address of the IP requested by the ALP packet does not match its interface address, the proxy node in step S431. 110 floods the ALP packet.

멀티캐스트 맥 주소 테이블은 {Port, Sender 맥(MAC), Multicast 맥(MAC)}을 기본 tuples로 가지며, 확장 가능하다. 도 6은 프록시 노드(110)에서 아이지엠피 패킷을 처리하고 멀티캐스트 맥 주소 테이블을 유지하는 과정을 보여준다.The multicast MAC address table has {Port, Sender MAC (MAC), Multicast MAC (MAC)} as default tuples and is extensible. 6 shows a process of processing an IMP packet and maintaining a multicast MAC address table at the proxy node 110.

S501과정에서 아이지엠피 패킷이 입력되면, S503과정에서 프록시 노드(110)는 지속적으로 아이지엠피 스누핑을 수행하여 검색된 아이지엠피 join/leave/report 메시지를 관리하고, 아이지엠피 타입을 판단한다.When the IGP packet is input in step S501, the proxy node 110 continuously manages the IGP join / leave / report message by performing SNP snooping in step S503 and determines the IMP type.

먼저, 프록시 노드(110)가 아이지엠피(IGMP) join 또는 report 메시지를 필터링 한 경우, S511과정에서 프록시 노드(110)는 멀티캐스트 맥 주소 테이블을 검색한다. 다음으로 S513과정에서 엔트리가 이미 존재하는지 판단하여, S515과정에서 이미 존재하는 엔트리에 대해서는 해당 엔트리를 유지하고, S517과정에서 존재하지 않는 엔트리인 경우에는 멀티캐스트 맥 주소 테이블에 아이지엠피 joiner를 추가한다.First, when the proxy node 110 filters the IGMP join or report message, the proxy node 110 searches for the multicast MAC address table in step S511. Next, in step S513, it is determined whether an entry already exists. In step S515, the entry is maintained for an existing entry. In case of an entry that does not exist in step S517, an IGP joiner is added to the multicast MAC address table. .

다음으로, S519과정에서 프록시 노드(110)는 관리서버(150)에 플로우 엔트리의 등록을 요청하고, S521과정에서 관리서버(150)로부터 받은 플로우엔트리를 로컬 플로우 테이블에 추가한다. 이때, 멀티캐스트 맥 주소 테이블에 추가하는 S523 과정은 플로우테이블에 추가한 직후 또는 관리서버에게 플로우 등록을 요청하기 직전에 삽입 가능하다.Next, the proxy node 110 requests the management server 150 to register the flow entry in step S519, and adds the flow entry received from the management server 150 to the local flow table in step S521. In this case, the S523 process of adding to the multicast MAC address table may be inserted immediately after adding to the flow table or immediately before requesting the flow registration to the management server.

프록시 노드(110)가 아이지엠피(IGMP) leave 메시지를 필터링 한 경우, S531 과정에서 멀티캐스트 맥 주소 테이블을 검색하고, S533과정에서 멀티캐스트 맥 주소 테이블에서 아이지엠피(IGMP) joiner를 삭제한 후, S535과정에서 관리서버(150)에 보고하고, 관리서버가 보낸 필터링 룰에 기반하여 S537과정에서 플로우테이블의 플로우엔트리를 갱신한다. 다음으로 S539과정에서 아이지엠피 join과 마찬가지로 joiner를 맥 주소 테이블에서 삭제하는 과정은 플로우테이블을 갱신한 직후에 수행할 수 있다.When the proxy node 110 filters the IGMP leave message, the proxy node 110 searches for the multicast MAC address table in step S531 and deletes the IGMP joiner from the multicast MAC address table in step S533. Report to the management server 150 in step S535, and updates the flow entry of the flow table in step S537 based on the filtering rules sent by the management server. Next, in the S539 process, as in the IGMP join, the deleting of the joiner from the MAC address table can be performed immediately after updating the flow table.

아울러, S541과정에서 프록시 노드(110)는 지속적으로 스누핑하여 입력된 아이지엠피 패킷의 아이지엠피 타입을 판단한다.In addition, in step S541, the proxy node 110 continuously snoops to determine the IGP type of the IGP packet.

도 7을 참조하면, 본 발명의 관리서버(150)와 프록시 노드(110) 사이의 신호 처리는 다음과 같다.Referring to FIG. 7, signal processing between the management server 150 and the proxy node 110 of the present invention is as follows.

프록시 노드(110)는 2계층에서 플로우테이블에 등록되지 않은 멀티캐스트 패킷을 수신하면 관리서버(150)에게 플로우엔트리를 요청한다(hα request). 관리서버(150)는 자신의 토폴로지 지도에 기반하여 이웃한 노드를 선택하고 플로우의 처리지침(ACTION)을 결정하여 프록시 노드(110)에 전달한다(C response). 관리서버(150)로부터 플로우 처리지침을 전달받은 프록시 노드(110)는 해당 엔트리를 플로우테이블에 기록한다(hα register). 이후 수신되는 동일 플로우에 대해서는 플로우테이블을 참조하여 포워딩한다. 이때, 호스트(hα)의 join 또는 send 여부에 따라 관리서버(150)가 결정하는 명령이 구분된다.When the proxy node 110 receives a multicast packet not registered in the flow table at the second layer, the proxy node 110 requests a flow entry from the management server 150 (h α request). The management server 150 selects a neighboring node based on its topology map, determines a processing instruction (ACTION) of the flow, and transmits it to the proxy node 110 (C response). The proxy node 110, which has received the flow processing instructions from the management server 150, records the entry in the flow table (h α register). The same flow received thereafter is forwarded with reference to the flow table. In this case, commands determined by the management server 150 are classified according to whether the host h α is joined or sent.

본 발명의 실시예에 의한 오버레이 네트워크 시스템의 종단 호스트가 멀티캐 스트 그룹에 참가 및 탈퇴하는 방법을 도 8 내지 11을 참조하면 다음과 같다. 도 8은 내지 도 11은 각각 본 발명의 실시예에 의한 그룹에 참가, 상태 갱신, 탈퇴 및 최적화에 대한 프록시 노드와 종단 호스트 사이의 관계를 나타내는 도면이다.8 to 11 illustrate a method in which an end host of an overlay network system joins and leaves a multicast group according to an embodiment of the present invention. 8 to 11 are diagrams illustrating a relationship between proxy nodes and end hosts for joining, updating status, leaving, and optimizing groups according to an embodiment of the present invention, respectively.

먼저, 종단 호스트가 멀티 캐스트 그룹에 참가 및 탈퇴하는 방법을 설명하기 전에 사용되는 기호 및 의미를 정의하면 다음과 같다.First, before describing how an end host joins and leaves a multicast group, the symbols and meanings used are defined as follows.

s(hi, g)는 그룹에 참가하지 않은 상태에서 종단 호스트 hi에서 그룹 g로 멀티캐스트 패킷을 송신하는 것을 의미하고, j(hj, g)는 종단 호스트 hj에서 아이지엠피(IGMP) join 메시지를 통해 그룹 g로 참가하는 것을 뜻한다. 그리고 l(hk, g)는 호스트 hk가 그룹 g에서 아이지엠피(IGMP) leave 메시지를 통해 탈퇴하는 것을 의미한다.s (h i , g) means sending multicast packets from end host h i to group g without joining the group, and j (h j , g) means IGMP on end host h j ) Join to group g through a join message. And l (h k , g) means that the host h k withdraws from the group g through the IGMP leave message.

이때, 그룹 g에 대해 노드 Ni와 Nj는 양방향 또는 단방향으로 연결되어 있을 수도 있고, 연결설정을 갖지 못할 때도 있다. 연결관계는 그룹 g에 대해 이웃하는 두 프록시 노드(110)의 참가여부를 나타낸다. 또한, 노드 Nα를 통해 그룹 g에 참가하고 있는 종단 호스트(140)들의 수를 κα라 하고, 노드 Nα가 다른 프록시 노드(110)들과 가지고 있는 연결관계의 수를 μα로 정의한다. 관리서버(150)는 그룹 g에 대한 스패닝트리 정보를 가지고 있다.At this time, the nodes N i and N j may be connected in a bidirectional or unidirectional manner with respect to the group g, or may not have a connection configuration. The connection relationship indicates whether two neighboring proxy nodes 110 participate in the group g. In addition, the number of end hosts 140 participating in the group g through node N α is defined as κ α , and the number of connection relationships that node N α has with other proxy nodes 110 is defined as μ α . . The management server 150 has spanning tree information for the group g.

한편, 플로우테이블은 {필터링 룰(RULES), 처리규칙(ACTION), 통계(STATISTICS)}로 구분된다. 표 1을 참조하면, 플로우테이블의 필터링 룰 부분은 12개의 tuples을 가지며, [입력포트(INport), 아이피(IP), 맥 인 아이피(MACin-IP), 아이피 인 아이피(IPin-IP), TCP/UDP 포트(TCP)]로 정의된다. 여기에서, Saddr와 Daddr 각각 송신 및 목적지 아이피 주소를 나타내고, Pnum은 아이피 헤더의 프로토콜 번호를 나타낸다. SMAC과 DMAC은 송신 및 목적지 맥 주소를 나타내고, Etype은 맥 프레임의 이더넷 타입을 나타낸다.On the other hand, the flow table is divided into {filtering rules (RULES), processing rules (ACTION), statistics (STATISTICS)}. Referring to Table 1, the filtering rule part of the flow table has 12 tuples, [IN port , IP, MAC in-IP , IP in-IP. ), TCP / UDP port (TCP)]. Where S addr and D addr Represent the transmission and destination IP addresses, respectively, and P num represents the protocol number of the IP header. S MAC and D MAC represent the source and destination MAC addresses, and E type represents the Ethernet type of the MAC frame.

마지막으로 Sport와 Dport는 TCP/UDP의 송신 및 목적지 포트번호이다. 이때, 맥 인 아이피와 아이피 인 아이피는 아이피 패킷이 각각 맥 인 아이피와 아이피 인 아이피 캡슐화되었을 때만 값을 갖는다. 예컨대, 2계층 프레임, {맥(MAC)', 아이피(IP)', TCP}이 맥 인 아이피 캡슐화될 때 해당 아이피(IP) 패킷은 2계층에서 {맥(MAC), 아이피(IP), {맥(MAC)', 아이피(IP)', TCP}}를 가지게 된다. 이때 필터링 룰의 맥 인 아이피는 앞 예의 맥(MAC)'에 해당되고 아이피 인 아이피는 아이피(IP)'이 된다. 동일한 방법으로 2계층 프레임이 아이피 인 아이피 캡슐화되면 2계층에서 {맥(MAC), 아이피(IP), {아이피(IP)', TCP}}로 나타나며 맥 인 아이피(MACin-IP)는 null에 해당하고 아이피 인 아이피(IPin-IP)는 아이피(IP)'이 된다.Finally, S port and D port are TCP / UDP send and destination port numbers. In this case, the MAC in IP and IP in IP have a value only when the IP packet is encapsulated in the IP in IP and IP in IP, respectively. For example, when a layer 2 frame, {MAC ', IP', TCP} is encapsulated in a MAC in IP, the corresponding IP packet is placed in layer 2 at {MAC, IP, { MAC ', IP', TCP}}. At this time, the IP of the filtering rule is the IP of the MAC (MAC) of the previous example and the IP of the IP is IP (IP). In the same way, if a layer 2 frame is encapsulated with IP in IP, it appears as {Mac, IP, {IP ', TCP}} in Layer 2, and MAC in-IP is null. IP in-IP corresponds to IP '.

INport
IN port
아이피(IP)IP 맥 인 아이피(MACin-IP)MAC in-IP 아이피 인 아이피(IPin-IP)IP in-IP TCPTCP
Saddr S addr Daddr D addr Pnum P num SMAC S MAC DMAC D MAC Etype E type Saddr S addr Daddr D addr Pnum P num Sport S port Dport D port

Reserved(8bit)Reserved (8bit) Action(8bit)Action (8bit) Mask(16bit)Mask (16bit)
맥 인 아이피(MACin-IP)

MAC in-IP
SMAC(MSB)S MAC (MSB)
SMAC(LSB)S MAC (LSB) DMAC(MSB)D MAC (MSB) DMAC(LBS)D MAC (LBS) 아이피 인 아이피(IPin-IP)IP in-IP Saddr S addr Daddr D addr 아이피 인 아이피(IPin-IP)IP in-IP 아이피(IP)IP Pnum P num Pnum P num 아이피(IP)
IP
Saddr S addr
Daddr D addr TCP/UDPTCP / UDP Sport S port Dport D port

표 2는 p-type 필터링 룰에 의한 패킷 플로우의 처리규칙을 나타낸다. Action(8bit) 필드 중 MSB(Most Significant Bit) 3비트는 활용하지 않으며 하위 5비트를 사용한다. 하위 5비트의 용도는 표 3에 정의되어 있다.Table 2 shows the processing rule of the packet flow by the p-type filtering rule. Among the Action (8bit) field, 3 bits of MSB (Most Significant Bit) are not utilized and the lower 5 bits are used. The use of the lower 5 bits is defined in Table 3.

44 33 22 1(modif.)1 (modif.) 0(popul.)0 (popul.) DescriptionDescription 1One 1One 1One 00 00 discard the packetdiscard the packet 00 00 00 0/10/1 00 do nothing or modif., onlydo nothing or modif., only 00 00 00 00 1One lookup m-type tablelookup m-type table 00 00 1One 0/10/1 0/10/1 아이피(IP)-in-아이피(IP) encap., wo/w modif.IP-in-IP encap., Wo / w modif. 00 1One 00 0/10/1 00 아이피(IP)-in-아이피(IP) de-encap., wo/w modif.IP-in-IP de-encap., Wo / w modif. 00 1One 1One 0/10/1 0/10/1 맥(MAC)-in-아이피(IP) encap. wo/w modif.MAC-in-IP encap. wo / w modif. 1One 00 00 0/10/1 00 맥(MAC)-in-아이피(IP) de-encap., wo/w modif.MAC-in-IP de-encap., Wo / w modif.

예컨대, 1번 비트(modif.)는 플로우테이블의 mask 비트에 기초해 헤더 필드({아이피(IP), 맥 인 아이피(MAC-IN-IP), 아이피 인 아이피(IP in IP), TCP})의 변경을 결정한다. 0번 비트(popul.)는 m-type 처리규칙(ACTION) 추가 수행 여부를 결정하며 '1'로 설정되어 있을 경우 m-type 처리규칙 테이블을 읽어 패킷을 처리한다. m-type 테이블은 패킷의 다지점 복제를 위해 활용된다.For example, bit 1 (modif.) Is a header field based on a mask bit of a flow table ({IP, MAC-IN-IP, IP in IP, TCP}). Determine the change of. Bit 0 (popul.) Determines whether to add the m-type rule (ACTION). If set to '1', the packet is read by reading the m-type rule table. The m-type table is used for multipoint replication of packets.

비트는 각 (4,3,2), modif., popul.로 분류되며 실행순서는 좌에서 우로 진행된다. 즉, modif.는 popul. 전에 수행된다. Mask(16bit) 필드는 Action 필드의 '1'번 비트(modif.)가 1로 설정되었을 때 실행되고 각 비트가 지정하는 p-type ACTION의 필드값을 수정한다. MSB 6비트는 사용되지 않고 나머지 10비트만 사용되며, 9번 비트부터 내림차순으로 표 2의 {SMAC, DMAC, Saddr, Daddr, Pnum(in-IP), Pnum(IP), Saddr, Daddr, Sport, Dport}를 지시한다.Bits are classified as (4, 3, 2), modif., Popul., And execution order goes from left to right. That is, modif. Is popul. Is performed before. The Mask (16bit) field is executed when bit 1 (modif.) Of the Action field is set to 1 and modifies the field value of the p-type ACTION designated by each bit. MSB 6 bits are not used, only the remaining 10 bits are used, starting from bit 9 in descending order, {S MAC , D MAC , S addr , D addr , P num (in-IP), P num (IP), S addr , D addr , S port , and D port }.

한편, 표 1의 p-type 필터링 룰이 나타내는 대표필드 {입력포트(INport), 아이피(IP), 맥 인 아이피(MACin-IP), 아이피 인 아이피(IPin-IP), TCP}를 {p(i), p(g0), p(mi), p(gi), p(t)}로 표기된다. 예를 들어, p-type 필터링 룰의 아이피 필드에 해당하는 tuples는 (Saddr, Daddr, Pnum)이고, p(g0)와 동일한 의미로 사용된다. 프록시 노드 Nα에 플로우테이블의 추가, 삭제 등 갱신이 필요할 때에는 표 1과 같이 표기할 수 있다. 여기에서, p-type RULES가 p(g0) tuples와 관계되고, ACTION(->)은 m(fw;β)와 관련됨을 의미한다. m(fw;β)은 m-type 처리규칙 테이블을 I/O하며 '프록시 노드 Nβ로 포워딩'하는 명령이다. 추가적으로 m(fd)는 m-type 처리규칙 테이블을 I/O하며, '다운링크 플러딩'을 의미하며, p(fw;β)는 p-type 처리규칙 테이블을 I/O하며, '프록시 노드 Nβ로 포워딩'을 나타낸다.Meanwhile, the representative fields {in port , IP, MAC in-IP , IP in-IP , TCP} represented by the p-type filtering rule of Table 1 are shown. {p (i), p (g 0 ), p (m i ), p (g i ), p (t)}. For example, tuples corresponding to the IP field of the p-type filtering rule are (S addr , D addr , P num ) and are used in the same meaning as p (g 0 ). When an update, such as adding or deleting a flow table, is required at the proxy node N α , it may be indicated as shown in Table 1. Here, p-type RULES refers to p (g 0 ) tuples, and ACTION (->) means to m (f w ; β). m (f w ; β) is an I / O command of the m-type rule table and 'forwarding to the proxy node N β '. Additionally, m (f d ) I / Os the m-type rules table, which means 'downlink flooding', and p (f w ; β) I / Os the p-type rules table, and 'proxy' Forward to node N β '.

도 8에 도시된 바와 같이, 종단 호스트(140)가 아이지엠피 join 메시지를 발생시킬 때 해당 메시지를 수신한 프록시 노드(110)들이 보고한 내용을 중심으로 관리서버(150)가 멀티캐스트 스패닝트리를 구성한다.As shown in FIG. 8, when the end host 140 generates an IMP join message, the management server 150 generates a multicast spanning tree based on the contents reported by the proxy nodes 110 receiving the message. Configure.

관리서버(150)는 도 8의 ①과 같이 초기 연결 설정 알고리즘을 수행한다. 관리서버(150)는 최초로 수신된 j(hj, g)와 s(hi, g)에 대해서 연결 설정하며, 알고리즘에 따라 플로우테이블을 구성한 후 Ni, Nj에 전달한다. Ni, Nj가 각각 s(hi, g), j(hj, g)에 의한 요청을 했으므로 초기 연결 설정 알고리즘에 의해 Ni는 수학식 1을 받고, Nj는 수학식 2를 받는다. 이때, Ni는 Nj로의 연결설정을 갖지 못한다.The management server 150 performs an initial connection setup algorithm as shown in ① of FIG. The management server 150 establishes a connection for the first received j (h j , g) and s (h i , g), configures a flow table according to an algorithm, and delivers it to N i , N j . Since N i and N j make requests by s (h i , g) and j (h j , g) respectively, N i receives Equation 1 and N j receives Equation 2 by the initial connection establishment algorithm. . At this time, N i does not have a connection to N j .

Figure 112009067847926-pat00001
Figure 112009067847926-pat00001

Figure 112009067847926-pat00002
Figure 112009067847926-pat00002

관리서버(150)는 도 8의 ②와 같이 새로운 호스트 hk는 연동된 프록시 노드 Nk를 통해 그룹 g에 참가하기 위해 프록시 노드 Nk에 전송한 j(hk, g) 메시지를 수신한다. 노드 Nk는 관리서버(150)에게 Nk의 그룹 g에 대한 참가요청을 알린다. 관리서버(150)는 그룹 g에 대한 네트워크 토폴로지 지도를 통해 Nk가 연동되어야 할 프록시 노드로 Nj를 선택한다. 노드의 선택은 지리적 위치, AS번호, 노드 degree 등의 정보를 이용하고, 그룹에 포함된 모든 프록시 노드(110)들 중에 최적의 노드를 선택한다. 이때, Nk와 Nj는 양방향 연결관계를 갖는다.The management server 150 receives a new host, h k is the j (h k, g) transmitted to the proxy node N k to join the group g from the interworking proxy node N k messages as shown in ② of Fig. The node N k informs the management server 150 of the request for participation in the group g of N k . The management server 150 selects N j as a proxy node to which N k should interwork through a network topology map for group g. The node selection uses information such as geographical location, AS number, node degree, etc., and selects an optimal node among all the proxy nodes 110 included in the group. At this time, N k and N j have a bidirectional connection.

또한, 관리서버(150)는 도 8의 ③과 같이 호스트 hm이 Nm에게 j(hm, g)를 보내면, Nm은 관리서버(150)에게 플로우테이블을 요청한다. 관리서버(150)는 그룹 내에 Nj, Nk가 속해있으므로 그 중에 Nk를 선택할 수 있다. 플로우테이블은 연결 설정 알고리즘에 의해 결정되어 각 프록시 노드에게 전달된다. 이때, Nk와 Nm은 양방향 연결관계를 갖는다.In addition, the management server 150 sends a j (h m, g) to the host h m N m are as ③ in Fig. 8, N m requests the flow table to the management server 150. The management server 150 may select N k because N j and N k belong to the group. The flow table is determined by the connection establishment algorithm and delivered to each proxy node. At this time, N k and N m have a bidirectional connection.

그리고, 관리서버(150)는 도 8의 ④와 같이 호스트 hn이 그룹 g에 참가하지 않은 상태에서 s(hn, g)한다면, 그룹 내에 속한 Nj, Nk, Nm 중 한 노드를 선택해 플로우테이블을 전달함으로써 프록시 노드 Nn과 연결관계를 맺는다. 만약 Nm이 선택되었다면 hn이 그룹 g에 참가하지 않았으므로 Nn과 Nm은 단방향 연결관계를 갖는다. 이때, Nn과 Nm은 단방향 연결관계를 갖는 이유는 프록시 노드 Nm에서 그룹 g에 참가하지 않고 있는 노드 Nn에 멀티캐스트 트래픽이 전송되는 것을 방지하기 위해서이다.And, if the management server 150 hosts h n s (h n, g) in a state that is not joined to the group g as shown in ④ of Figure 8, the node of the N j, N k, N m that belong in a group It connects to the proxy node N n by passing the flow table. If N m is selected, then n n and N m have a one-way connection since h n has not joined group g. At this time, N n and N m have a unidirectional connection relationship in order to prevent the multicast traffic from being transmitted from the proxy node N m to the node N n not participating in the group g.

그리고, 본 발명의 오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법은 PCI(Peripheral component interconnect) 카드인 저가의 NetFPGA를 활용하는 것으로, NetFPGA가 총 4포트의 기가비트 이더넷 인터페이스를 가지고 있으므로 업링크 1포트를 제외한 나머지 3포트를 통해 종단 호스트(140)가 연결될 수 있다.In addition, the overlay network system of the present invention and a multicast method using the same utilize a low-cost NetFPGA, which is a Peripheral Component Interconnect (PCI) card. Since NetFPGA has a total of 4 ports of Gigabit Ethernet interfaces, except for one uplink port, The end host 140 may be connected through three ports.

도 9를 참조하면, 종단 호스트가 그룹 g에 참가하고 있는 Nj와 Nk는 각 신규 호스트 hj'과 hk'의 s(hj', g)나 j(hk', g)에 대해서 테이블의 갱신을 필요로 하지 않고, 관리서버(150)에 의해 s(hj', g) 등의 요청이 거절되면 플로우테이블이 갱신된다. s(hj', g)나 j(hk', g)에 대한 요청이 관리서버(150)로 전달된다. 관리서버(150)에 정의되니 규정에 따라 그룹 g에 대해 참가하지 않고 그룹 g에 송신하는 hj'의 패킷 플로우를 차단할 수 있다. Referring to FIG. 9, N j and N k in which an end host participates in group g are assigned to s (h j ' , g) or j (h k' , g) of each new host h j ' and h k' . The flow table is updated when a request of s (h j ' , g) or the like is rejected by the management server 150 without requiring an update of the table. A request for s (h j ' , g) or j (h k' , g) is delivered to the management server 150. As defined in the management server 150, it is possible to block the packet flow of h j ' to send to the group g without participating in the group g according to the regulations.

그룹 g에 참가하고 있는 종단 호스트가 없는 Ni에 신규 호스트 hi'이 j(hi', g) 메시지를 보낼 때(IGMP join), 노드 Ni와 인접한 노드 Nj는 연결관계를 단방향 연결관계에서 양방향 연결관계로 변경해야 한다.When a new host h i ' sends a j (h i' , g) message to N i with no end hosts participating in group g (IGMP join), node N i and adjacent node N j connect the connection in a one-way connection. You must change from a relationship to a two-way connection.

그룹의 탈퇴는 아이지엠피 leave 메시지 또는 타이머를 통해 이루어진다. 임의의 패킷 플로우에 대한 플로우테이블은 {필터링 룰(RULES), 처리규칙(ACTION), 통계(STATISTICS)}를 유지하며 통계에 타이머를 포함하고 있다. 즉 동일한 필터링 룰을 갖는 패킷 플로우가 특정시간 이상 프록시 노드(110)에서 처리되지 않을 경우에 타이머가 만료된다. 프록시 노드(110)는 만료된 RULES에 속한 패킷 플로우를 묵시적 그룹 탈퇴로 간주하고 해당 {필터링 룰(RULES), 처리규칙(ACTION), 통계(STATISTICS)}를 플로우테이블에서 삭제한다. 타이머에 의한 탈퇴 트리거링 시 관리서버(150)에 그룹 탈퇴가 보고된다. 프록시 노드(110)에서 발생하는 그룹 참가 및 탈퇴 등과 관련된 정보는 모두 관리서버(150)에 전달되므로 관리서버(150)는 그룹 g에 속한 모든 프록시 노드(110) 간의 연결관계를 알고 있다.The withdrawal of a group is done through an IGP leave message or a timer. The flow table for any packet flow maintains {filtering rules (RULES), processing rules (ACTION), statistics (STATISTICS)} and includes timers in the statistics. That is, the timer expires when the packet flow having the same filtering rule is not processed in the proxy node 110 for a specific time. The proxy node 110 regards the packet flow belonging to the expired RULES as an implicit group leaving, and deletes the corresponding {filtering rules (RULES), processing rules (ACTION), statistics (STATISTICS)} from the flow table. Group withdrawal is reported to the management server 150 when the withdrawal is triggered by a timer. Since all information related to group participation and withdrawal occurring in the proxy node 110 is transmitted to the management server 150, the management server 150 knows a connection relationship between all proxy nodes 110 belonging to the group g.

마지막으로, 도 10은 도 9의 호스트 {hi', hj, hk', hm}이 그룹 g에서 탈퇴했을 때 최종적으로 만들어지는 토폴로지 지도이다. 먼저, 종단 호스트(140)의 잦은 그룹 이탈로 인한 테이블 갱신 요구를 막기 위해 그룹 탈퇴 요청은 관리서버(150)에서 인위적으로 지연 처리한다. 즉, 타이머나 아이지엠피 leave 메시지에 의한 그룹 탈퇴는 관리서버(150)에 요청된 후 일정시간이 경과된 후에 처리된다.Finally, FIG. 10 is a topology map finally made when the hosts {h i ' , h j , h k' , h m } of FIG. 9 leave the group g. First, in order to prevent a table update request due to frequent group departure of the end host 140, the group leave request is artificially delayed by the management server 150. That is, the group withdrawal by the timer or the IGP leave message is processed after a predetermined time elapses after being requested to the management server 150.

도 9의 노드 Ni와 Nj를 예를 들어 설명하면, 먼저 Ni는 종단 호스트 hi'의 l(hi', g) 요청 메시지를 관리서버(150)에 전달하고 관리서버(150)는 노드 Nj의 κj 및 μj가 각각 1개씩이므로 Nj의 m-type 처리규칙 중 다운링크 플러딩과 관련된 부분을 삭제하고, 프록시 노드 Nj에서 노드 Ni로 트래픽이 흐르는 것을 방지하기 위해 Ni의 m-type 플로우테이블 중 노드 Nj로의 패킷 포워딩 명령을 삭제한다. 최종적으로 관리서버는 스패닝트리를 구성하는 모든 프록시 노드(110)들이 그룹 g에 대해서 참가하고 있는 종단호스트를 가지고 있지 않는 경우 집합에 포함되는 모든 프록시 노드(110)들을 스패닝트리에서 제거하고 해당 노드들에게 그룹 g에 대한 플로우테이블을 명령한다.Referring to the nodes N i and N j of FIG. 9 by way of example, first, N i forwards the l (h i ' , g) request message of the end host h i' to the management server 150 and the management server 150. is to remove the portions related to downlink flooding of the nodes N j of κ j and μ j is one by one, so N j of the m-type processing rules, respectively, to prevent the proxy node N j flowing traffic to the node N i N i is the delete packet forwarding command to the m-type flow node N j of the table. Finally, the management server removes all proxy nodes 110 included in the set from the spanning tree when all proxy nodes 110 constituting the spanning tree do not have an end host participating in the group g. Instructs the flow table for group g.

한편, 그룹 g에 대한 토폴로지 지도가 최종적으로 그림 11의 굵은 선과 같이 최적화될 수 있지만, 본 발명에서는 복잡도와 전송 품질 등을 고려하여 그룹 g가 유지되는 동안 최적화를 수행하지 않는다.On the other hand, the topology map for the group g can be finally optimized as shown in the thick line of Figure 11, but in the present invention, the optimization is not performed while the group g is maintained in consideration of the complexity and transmission quality.

이와 같이 본 발명의 오버레이 네트워크 시스템 및 이를 이용하는 멀티캐스트 방법은 아이피(IP) 멀티캐스트를 대행하는 것으로, 제어평면 및 데이터평면이 분리되어 있으며, 프록시 노드가 데이터평면에서 점대점 또는 점대다 포워딩을 수행하고, 관리서버는 제어평면에서 프록시 노드의 관리, 스패닝트리의 구성을 수행하여 SeeOver 인프라를 구축, 서비스할 수 있고, 아이지엠피 등 기존 아이피 프로토콜 규약을 준수함으로써 시스템 설정의 변경없이 다자간 협업에 참가할 수 있는 효과가 있다.As described above, the overlay network system of the present invention and the multicast method using the same are for IP (IP) multicast, the control plane and the data plane are separated, and the proxy node performs point-to-point or point-to-many forwarding in the data plane. In addition, the management server manages the proxy node in the control plane and configures the spanning tree to build and service the SeeOver infrastructure, and to participate in multilateral collaboration without changing the system settings by complying with existing IP protocol rules such as IGMP. It has an effect.

상술한 바와 같이 본 발명에 따른 바람직한 실시 예를 설명하였지만, 본 발명은 상기한 실시 예에 한정되지 않고, 이하의 특허 청구 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든 다양한 변경 실시가 가능한 범위까지 본 발명의 방법적 정신이 있다고 할 것이다.As described above, preferred embodiments of the present invention have been described, but the present invention is not limited to the above-described embodiments, and the present invention is not limited to the scope of the present invention as claimed in the following claims. Anyone with knowledge of the present invention will have the methodology of the present invention to the extent that various modifications can be made.

도 1은 본 발명의 실시예에 의한 오버레이 네트워크 시스템의 개략도,1 is a schematic diagram of an overlay network system according to an embodiment of the present invention;

도 2는 도 1의 프록시노드를 나타내는 개략도,2 is a schematic diagram illustrating the proxy node of FIG. 1;

도 3 및 도 4는 본 발명의 실시예에 의한 맥(MAC) 프레임 처리 방법에 대한 흐름도,3 and 4 are flowcharts illustrating a method of processing a MAC frame according to an embodiment of the present invention;

도 5는 본 발명의 실시예에 의한 에이알피(ARP) 처리 방법에 대한 흐름도,5 is a flowchart illustrating an ARP processing method according to an embodiment of the present invention;

도 6은 본 발명의 실시예에 의한 아이지엠피(IGMP) 처리 방법에 의한 흐름도,6 is a flowchart illustrating an IGMP processing method according to an embodiment of the present invention;

도 7은 본 발명의 실시예에 의한 오버레이 네트워크 시스템의 관리서버와 프록시 노드 간의 신호 처리에 대한 도면,7 is a diagram for signal processing between a management server and a proxy node of an overlay network system according to an embodiment of the present invention;

그리고,And,

도 8은 내지 도 11은 각각 본 발명의 실시예에 의한 그룹에 참가, 상태 갱신, 탈퇴 및 최적화에 대한 프록시 노드와 종단 호스트 사이의 관계를 나타내는 도면이다.8 to 11 are diagrams illustrating a relationship between proxy nodes and end hosts for joining, updating status, leaving, and optimizing groups according to an embodiment of the present invention, respectively.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100 : 오버레이 네트워크 시스템 110 : 프록시 노드100: overlay network system 110: proxy node

111 : 아비터 113 : 정보 베이스111: Arbiter 113: Information Base

119 : 물리계층 121 : 오버레이 엔진119 physical layer 121 overlay engine

123 : 서비스데몬 115 : 맥(MAC) 브리지123: service daemon 115: MAC bridge

117 : 아이피(IP) 브리지 140 : 종단 호스트 117: IP bridge 140: end host

150 : 관리서버150: management server

Claims (16)

삭제delete 복수의 종단 호스트; 데이터평면에서 상기 복수의 종단 호스트와 각각 연결되고, 상기 복수의 종단 호스트의 멀티캐스트 참가 및 탈퇴를 모니터링하고, 관리서버로부터 수신한 플로우테이블에 대응하여 아이피 인 아이피(IP-in-IP)에 의해 패킷을 이동하는 복수의 프록시 노드; 및 제어평면에서 상기 복수의 프록시 노드로부터 수신한 정보를 바탕으로 멀티캐스트 스패닝트리를 구성하고, 패킷 플로우에 대한 플로우테이블을 설정하여 상기 복수의 프록시 노드로 전송하는 상기 관리서버;를 포함하며 상기 데이터평면과 상기 제어평면은 분리되고, 상기 복수의 종단 호스트와 상기 복수의 프록시 노드 사이에는 아이지엠피(IGMP) 규약이 적용되는 오버레이 네트워크 시스템에 있어서,A plurality of end hosts; Respectively connected to the plurality of end hosts in the data plane, monitoring participation and withdrawal of the multicast of the plurality of end hosts, and by IP-in-IP corresponding to the flow table received from the management server. A plurality of proxy nodes for moving packets; And the management server constituting a multicast spanning tree based on information received from the plurality of proxy nodes in a control plane, and setting a flow table for packet flow and transmitting the multicast spanning tree to the plurality of proxy nodes. In an overlay network system in which a plane and the control plane are separated and an IGMP protocol is applied between the plurality of end hosts and the plurality of proxy nodes, 상기 복수의 프록시 노드는,The plurality of proxy nodes, 아이피(IP) 패킷 및 맥(MAC) 프레임 포워딩을 수행하는 하드웨어; 및Hardware for performing IP (IP) packets and MAC (MAC) frame forwarding; And 상기 복수의 종단 호스트와의 통신규약을 처리하는 소프트웨어;Software for processing communication protocols with the plurality of end hosts; 를 포함하며, 상기 하드웨어는,Including, the hardware, 상기 플로우테이블, 맥 테이블, 오버레이 네트워크 시스템의 상태를 포함하는 정보를 저장하는 정보 베이스;An information base for storing information including the state of the flow table, MAC table, and overlay network system; 물리계층을 통해 입력되는 맥 프레임을 통해 프레임 및 패킷의 종류를 파악하고, 상기 프레임 및 패킷의 종류에 따른 처리 블럭을 선택하고, 상기 맥 테이블의 유지 및 관리 아이피 Checksum 오류를 검사하며, 상기 정보 베이스에 포함되는 정보를 이용하여 패킷 및 프레임의 입, 출력을 수행하는 아비터;Determines the types of frames and packets through MAC frames input through the physical layer, selects processing blocks according to the types of frames and packets, checks the maintenance and management IP checksum of the MAC table, and the information base An arbiter performing input and output of packets and frames using information included in the information; 상기 정보 베이스에 저장된 상기 맥 테이블을 읽어 출력포트를 결정하고 상기 맥 프레임을 생성하여 2계층 맥 스위칭을 수행하는 맥 브리지; 및A MAC bridge that reads the MAC table stored in the information base to determine an output port, generates the MAC frame, and performs two-layer MAC switching; And 상기 정보 베이스에 저장된 상기 플로우테이블을 읽어 아이피 패킷을 캡슐화 또는 역캡슐화하여 3계층 아이피 패킷 포워딩을 수행하는 아이피 브리지;An IP bridge that reads the flow table stored in the information base and encapsulates or decapsulates an IP packet to perform three-layer IP packet forwarding; 를 포함하는 것을 특징으로 하는 오버레이 네트워크 시스템.Overlay network system comprising a. 제2항에 있어서, The method of claim 2, 상기 관리서버는 요청한 노드를 통해 그룹에 참가하고 있는 종단 호스트의 수 및 노드가 다른 프록시 노드들과 가지고 있는 연결관계의 수를 기반으로 스패닝트리를 구성하는 것을 특징으로 하는 오버레이 네트워크 시스템.The management server configures a spanning tree based on the number of end hosts participating in the group through the requested node and the number of connection relationships that the node has with other proxy nodes. 제2항 내지 제3항 중 어느 한 항에 있어서, The method according to any one of claims 2 to 3, 상기 플로우테이블은,The flow table, 상기 패킷 플로우에 대한 필터링 룰(RULES) 및 처리규칙(ACTION)을 포함하는 것을 특징으로 하는 오버레이 네트워크 시스템.And a filtering rule (RULES) and a processing rule (ACTION) for the packet flow. (a)프록시 노드는 맥 프레임을 수신하는 단계;(a) the proxy node receiving the MAC frame; (b)상기 프록시 노드는 상기 수신한 맥 프레임의 목적지 맥 주소를 판단하는 단계;(b) the proxy node determining a destination MAC address of the received MAC frame; (c)상기 프록시 노드는 상기 맥 프레임의 목적지 맥 주소가 멀티캐스트 맥 주소이면 프로토콜 번호를 읽어 수신한 패킷의 종류를 판단하는 단계;(c) determining, by the proxy node, a type of the received packet by reading a protocol number if the destination MAC address of the MAC frame is a multicast MAC address; (d)상기 프록시 노드는 상기 수신한 패킷이 멀티캐스트 아이피(IP)이면 플로우테이블의 필터링 룰(RULES)을 검색하고, 상기 수신한 프레임의 맥 주소와 프로토콜 번호가 아이지엠피 패킷이면 소프트웨어에서 처리하는 단계; 및(d) The proxy node searches for a filtering rule (RULES) of the flow table if the received packet is a multicast IP, and processes the software if the MAC address and protocol number of the received frame are IPMP packets. step; And (e)상기 프록시 노드는 상기 플로우테이블에 상기 수신한 맥 프레임이 갖는 정보를 포함하는 필터링 룰이 존재하지 않으면 관리서버에게 플로우테이블을 요청하고, 필터링 룰이 존재하는 경우 처리규칙(ACTION)을 수행하는 단계;(e) The proxy node requests a flow table from a management server if a filtering rule including information of the received MAC frame does not exist in the flow table, and performs a processing rule if the filtering rule exists. Doing; 를 포함하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.Multicast method using an overlay network system comprising a. 제5항에 있어서, The method of claim 5, 상기 프록시 노드는 상기 플로우테이블에 수신된 패킷에 대응하는 필터링 룰이 검색되지 않으면 상기 필터링 룰을 얻어오기 위해 상기 소프트웨어에서 상기 관리서버와 통신하는 것을 특징으로 하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.And the proxy node communicates with the management server in the software to obtain the filtering rule if the filtering rule corresponding to the packet received in the flow table is not found. 제5항에 있어서,The method of claim 5, 상기 (b)단계 이후에,After step (b), 상기 프록시 노드는 상기 맥 프레임의 목적지 맥 주소가 유니캐스트 맥 주소이면 상기 수신한 맥 주소와 프록시 맥 주소가 일치하는지 판단하는 단계;Determining, by the proxy node, whether the received MAC address and the proxy MAC address match if the destination MAC address of the MAC frame is a unicast MAC address; 상기 프록시 노드는 상기 수신한 맥 주소와 프록시 맥 주소가 일치하지 않으면 플러딩하고, 일치하면 상기 수신한 맥 프레임의 캡슐화 여부를 판단하는 단계;The proxy node flooding if the received MAC address and the proxy MAC address do not match, and determining whether to encapsulate the received MAC frame if they match; 상기 프록시 노드는 상기 수신한 맥 프레임이 캡슐화되지 않은 경우 상기 수신한맥 프레임을 TCP/UDP 포트를 통해 소프트웨어에서 처리하고, 캡슐화된 경우 상기 플로우테이블에 필터링 룰이 존재하는지 판단하는 단계; 및The proxy node processing the received MAC frame in software through a TCP / UDP port when the received MAC frame is not encapsulated, and determining whether a filtering rule exists in the flow table when the received MAC frame is encapsulated; And 상기 프록시 노드는 상기 플로우테이블에 상기 수신한 맥 프레임이 갖는 정보를 포함하는 필터링 룰이 존재하지 않는 경우 관리서버에 상기 플로우테이블을 요청하고, 존재하는 경우 처리규칙을 수행하는 단계;Requesting, by the proxy node, the flow table from the management server if there is no filtering rule including information of the received MAC frame in the flow table, and performing a processing rule if there is one; 를 포함하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.Multicast method using an overlay network system comprising a. 제7항에 있어서,The method of claim 7, wherein 상기 프록시 노드는 상기 프록시 맥 주소와 상기 수신한 프레임의 맥 주소가 일치하지 않으면 플러딩하는 단계;If the proxy node does not match the proxy MAC address and the MAC address of the received frame, flooding the proxy node; 를 더 포함하는 것을 특징으로 하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.Multicast method using an overlay network system, characterized in that it further comprises. 제7항에 있어서, The method of claim 7, wherein 상기 프록시 노드는 상기 플로우테이블에 수신된 패킷에 대응하는 필터링 룰이 검색되지 않으면 상기 필터링 룰을 얻어오기 위해 상기 소프트웨어에서 상기 관리서버와 통신하는 것을 특징으로 하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.And the proxy node communicates with the management server in the software to obtain the filtering rule if the filtering rule corresponding to the packet received in the flow table is not found. (a)프록시 노드는 맥 프레임을 수신하는 단계;(a) the proxy node receiving the MAC frame; (b)상기 프록시 노드는 상기 수신한 맥 프레임의 목적지 맥 주소를 판단하는 단계;(b) the proxy node determining a destination MAC address of the received MAC frame; (c)상기 프록시 노드는 상기 수신한 맥 프레임의 목적지 맥 주소가 멀티캐스트 주소를 가지면, 패킷의 입력포트를 판단하는 단계;(c) determining, by the proxy node, an input port of a packet if the destination MAC address of the received MAC frame has a multicast address; (d)상기 프록시 노드는 상기 수신된 멀티캐스트 프레임이 업링트 포트를 통해 입력되면 처리하지 않고 다운링크 포트를 통해 입력되면 플러딩하는 단계;(d) flooding the proxy node if it is input through a downlink port without processing if the received multicast frame is input through an uplink port; (e)상기 프록시 노드는 상기 다운링크 포트를 통해 입력되는 상기 멀티캐스트 프레임이 아이지엠피 패킷을 포함하는지 판단하여 포함하면 소프트웨어에서 처리하고, 포함하지 않으면 플로우테이블을 검색하는 단계; 및(e) the proxy node processing the software if the multicast frame inputted through the downlink port includes an IMP packet and searching for a flow table if not included; And (f)상기 프록시 노드는 상기 플로우테이블에 상기 패킷에 대응하는 필터링 룰이 검색되지 않으면 상기 소프트웨어에서 처리하고, 검색되면 처리규칙을 수행하는 단계;(f) the proxy node processing the software when the filtering rule corresponding to the packet is not found in the flow table, and performing a processing rule when the proxy node is found; 를 포함하는 것을 특징으로 하는 오버레이 네트워크 시스템을 이용하는 멀티 캐스트 방법.Multicast method using an overlay network system, characterized in that it comprises a. 제10항에 있어서,The method of claim 10, 상기 프록시 노드는 상기 다운링크 포트를 통해 입력되는 멀티캐스트 프레임이 아이지엠피 패킷을 포함하면 아이지엠피 규약을 소프트웨어에서 처리하는 것을 특징으로 하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.And if the multicast frame input through the downlink port includes an IGMP packet, the proxy node processes the IGMP protocol in software. (a)프록시 노드는 맥 프레임을 수신하는 단계;(a) the proxy node receiving the MAC frame; (b)상기 프록시 노드는 상기 수신한 맥 프레임의 목적지 맥 주소를 판단하는 단계;(b) the proxy node determining a destination MAC address of the received MAC frame; (c)상기 프록시 노드는 상기 수신한 맥 프레임의 목적지 맥 주소가 유니캐스트 주소이면, 프록시 노드의 맥 주소와 수신한 프레임의 맥 주소가 일치하는지 판단하는 단계;(c) the proxy node determining whether the MAC address of the proxy node matches the MAC address of the received frame if the destination MAC address of the received MAC frame is a unicast address; (d)상기 프록시 노드는 상기 프록시 노드의 맥 주소와 상기 수신한 프레임의 맥 주소가 일치하지 않으면 플러딩하고, 일치하면 아이피 패킷의 프로토콜 번호를 읽어 아이피 인 아이피 캡슐화 여부를 판단하는 단계;(d) the proxy node flooding if the MAC address of the proxy node and the MAC address of the received frame do not match; (e)상기 프록시 노드는 상기 캡슐화 여부의 판단 결과 캡슐화되지 않은 패킷일 경우에는 소프트웨어에서 처리하고, 캡슐화된 패킷일 경우에는 플로우테이블을 검색하여 캡슐화된 패킷에 대응하는 필터링 룰을 검색하는 단계; 및(e) the proxy node processing the software if the packet is not encapsulated as a result of the determination of the encapsulation; if the packet is an encapsulated packet, searching the flow table to search for a filtering rule corresponding to the encapsulated packet; And (f)상기 프록시 노드는 플로우테이블에 상기 캡슐화된 패킷에 대응하는 필터 링 룰이 검색되지 않으면 상기 소프트웨어에서 처리하고, 검색되면 처리규칙을 수행하는 단계;(f) the proxy node processing in the software if a filtering rule corresponding to the encapsulated packet is not found in the flow table, and performing a processing rule if found; 를 포함하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.Multicast method using an overlay network system comprising a. (a)프록시 노드는 맥 프레임을 수신하는 단계;(a) the proxy node receiving the MAC frame; (b)상기 프록시 노드는 상기 수신한 맥 프레임의 목적지 맥 주소를 판단하는 단계;(b) the proxy node determining a destination MAC address of the received MAC frame; (c)상기 프록시 노드는 상기 수신한 맥 프레임의 목적지 맥 주소가 브로드캐스트 주소를 가지면, 헤더의 이더넷타입(Ethernet Type) 필드값을 읽어 에이알피 패킷 여부를 판단하는 단계;(c) the proxy node, if the destination MAC address of the received MAC frame has a broadcast address, determining whether an ALP packet is read by reading an Ethernet Type field value of a header; (d)상기 프록시 노드는 상기 헤더의 이더넷타입 필드값이 에이알피 패킷이면, 소프트웨어에서 입력된 에이알피 패킷의 타입을 구분하는 단계;(d) the proxy node, if the Ethernet type field value of the header is an ALP packet, distinguishing a type of an ALP packet input by software; (e)상기 프록시 노드는 자신이 발생시킨 에이알피요청 패킷에 대한 에이알피응답 패킷을 수신했는지 판단하는 단계;(e) determining whether the proxy node receives an ARP response packet for an ARP request packet generated by the proxy node; (f)상기 프록시 노드는 상기 자신이 발생시킨 에이알피요청 패킷에 대한 에이알피응답 패킷을 수신한 경우 에이알피 테이블을 갱신하는 단계; 및(f) updating the ALP table when the proxy node receives an ALP response packet for the ALP request packet generated by the proxy node; And (g)상기 프록시 노드 응답 패킷이 보고한 맥 주소를 이용해 큐에 임시 저장된 패킷을 전송하는 단계;(g) transmitting a packet temporarily stored in a queue using the MAC address reported by the proxy node response packet; 를 포함하는 것을 특징으로 하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.Multicast method using an overlay network system comprising a. 제13항에 있어서,The method of claim 13, 상기 (d)단계 이후에,After step (d), 상기 프록시 노드는 상기 에이알피요청 패킷을 수신한 경우에 에이알피 패킷에 의해 요청된 아이피의 맥 주소가 자신의 인터페이스 주소와 일치하는지 판단하는 단계;Determining, by the proxy node, that the MAC address of the IP requested by the ALP packet matches its interface address when the ALP request packet is received; 상기 프록시 노드는 상기 에이알피 패킷에 의해 요청된 아이피의 맥 주소가 자신의 인터페이스 주소와 일치하면, 에이알피응답 패킷을 발생하는 단계; 및Generating, by the proxy node, an ALP response packet if the MAC address of the IP requested by the ALP packet matches its interface address; And 상기 프록시 노드는 에이알피응답 패킷이 수신된 포트로 송신하는 단계;Transmitting, by the proxy node, to a port on which an ARP response packet is received; 를 포함하는 것을 특징으로 하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.Multicast method using an overlay network system comprising a. 제14항에 있어서, The method of claim 14, 상기 프록시 노드는 입력된 패킷이 상기 자신이 발생시킨 에이알피요청 패킷에 대한 에이알피응답 패킷이 아니거나, 상기 에이알피 패킷에 의해 요청된 아이피의 맥 주소가 자신의 인터페이스 주소와 일치하지 않는 경우 패킷을 플러딩하는 것을 특징으로 하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.The proxy node is a packet if the input packet is not an ARP response packet for the ARP request packet generated by the proxy node or if the MAC address of the IP requested by the ALP packet does not match its interface address. Flooding the multicast method using an overlay network system. 제5항 내지 제15항 중 어느 한 항에 있어서, The method according to any one of claims 5 to 15, 상기 플로우테이블은 상기 패킷 플로우에 대한 필터링 룰 및 상기 패킷을 복 제, 포워딩, 플러딩하는 방법을 포함하는 처리규칙을 포함하며, The flow table includes a processing rule including a filtering rule for the packet flow and a method of replicating, forwarding, and flooding the packet. 상기 필터링 룰은,The filtering rule, 입력포트(INport);IN port ; 송신 및 목적지의 아이피 주소, 아이피 헤더의 프로토콜 번호를 포함하는 아이피(IP);An IP including an IP address of a transmission and a destination, a protocol number of an IP header; 송신 및 목적지 맥 주소, 상기 맥 프레임의 이더넷 타입을 포함하는 맥 인 아이피(MACin-IP);MAC in-IP including a send and destination MAC address and an Ethernet type of the MAC frame; 송신 및 목적지의 아이피 주소, 상기 아이피 헤더의 프로토콜 번호를 포함하는 아이피 인 아이피(IPin-IP); 및An IP in-IP including an IP address of a transmission and a destination and a protocol number of the IP header; And 송신 및 목적지 포트번호를 포함하는 TCP/UDP 포트(TCP);를 포함하는 것을 특징으로 하는 오버레이 네트워크 시스템을 이용하는 멀티캐스트 방법.And a TCP / UDP port (TCP) including a transmission and a destination port number.
KR1020090106016A 2009-11-04 2009-11-04 Overlay network system and method of multicast using the same KR101068787B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090106016A KR101068787B1 (en) 2009-11-04 2009-11-04 Overlay network system and method of multicast using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090106016A KR101068787B1 (en) 2009-11-04 2009-11-04 Overlay network system and method of multicast using the same

Publications (2)

Publication Number Publication Date
KR20110049148A KR20110049148A (en) 2011-05-12
KR101068787B1 true KR101068787B1 (en) 2011-09-30

Family

ID=44360328

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090106016A KR101068787B1 (en) 2009-11-04 2009-11-04 Overlay network system and method of multicast using the same

Country Status (1)

Country Link
KR (1) KR101068787B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2527968B1 (en) 2011-05-24 2017-07-05 LG Electronics Inc. Mobile terminal
CN113452737A (en) * 2020-03-27 2021-09-28 华为技术有限公司 Method and device for transmitting session request and electronic equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030015955A (en) * 2001-08-18 2003-02-26 엘지전자 주식회사 Method of Multi-casting in the MPLS Network
KR20060042785A (en) * 2004-11-10 2006-05-15 한국전자통신연구원 Method for configurating pass between source edge system and rendezvous point for ip multicasting

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030015955A (en) * 2001-08-18 2003-02-26 엘지전자 주식회사 Method of Multi-casting in the MPLS Network
KR20060042785A (en) * 2004-11-10 2006-05-15 한국전자통신연구원 Method for configurating pass between source edge system and rendezvous point for ip multicasting

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HIS 2003, Proceedings of the 2nd international conference on Human.society@internet, LNCS2713 - Framework of control protocol for relayed multicast (Seok Joo Koh, Juyoung Park, Jae Hong Min, Ki Shik P*
제21회 한국정보처리학회 춘계학술발표대회 논문집 제11권 제1호- RMCP를 이용한 미디어 스트림 전송 구현을 위한 Architecture (탁광옥, 박시용, 정기동, 2004-05, P1597-1600)

Also Published As

Publication number Publication date
KR20110049148A (en) 2011-05-12

Similar Documents

Publication Publication Date Title
EP3070890B1 (en) Multicast flow overlay using registration over a reliable transport
CN102377666B (en) Flooding-based routing protocol having average-rate and burst-rate control
US8102848B1 (en) Multicast high availability enhancements for faster convergence
EP1938530B1 (en) Application-level multicasting architecture
US9660898B2 (en) Enhanced protocol independent multicast source registration over a reliable transport
US20130003733A1 (en) Multicast in a trill network
US8681668B2 (en) Methods and apparatus for transmitting multicast traffic in a data network
US20130195107A1 (en) Method for Managing Multicast Traffic in a Data Netwrok and Network Equipment Using Said Method
EP2989755B1 (en) Efficient multicast delivery to dually connected (vpc) hosts in overlay networks
WO2010111956A1 (en) Method and system for multicast-forwarding-path convergence
EP2773070A1 (en) Multicast processing method and apparatus
TWI410062B (en) Station side device and optical communication system
KR20110027683A (en) Methods for obtaining terminal multicast status
US6515994B1 (en) Method of communication in a communications network and apparatus therefor
EP2439876B1 (en) Method and device for requesting multicasting, processing multicasting requests and assisting in the aforementioned process
WO2008138248A1 (en) A method, an interface board and a router for transmitting the message
JP4141304B2 (en) Communication method, receiving terminal, L2 switch and L3 switch in multicast communication network
KR101068787B1 (en) Overlay network system and method of multicast using the same
JP3824906B2 (en) INTERNET CONNECTION METHOD, ITS DEVICE, AND INTERNET CONNECTION SYSTEM USING THE DEVICE
WO2006093616A2 (en) Network address filter including random access memory
WO2015014197A1 (en) Method for selecting route in scenario of multicast load, and router
WO2015032261A1 (en) Route updating method and routing device
Cisco Internet Protocol (IP) Multicast
Cisco Banyan VINES Commands
CN102263649B (en) Controlled multicast system based on multicast conversion

Legal Events

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

Payment date: 20140718

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150904

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180809

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 9

R401 Registration of restoration