[go: up one dir, main page]

KR20250060392A - SDN controller device for generating network topology - Google Patents

SDN controller device for generating network topology Download PDF

Info

Publication number
KR20250060392A
KR20250060392A KR1020230144378A KR20230144378A KR20250060392A KR 20250060392 A KR20250060392 A KR 20250060392A KR 1020230144378 A KR1020230144378 A KR 1020230144378A KR 20230144378 A KR20230144378 A KR 20230144378A KR 20250060392 A KR20250060392 A KR 20250060392A
Authority
KR
South Korea
Prior art keywords
sdn
packet
switch
network
control device
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
KR1020230144378A
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 KR1020230144378A priority Critical patent/KR20250060392A/en
Publication of KR20250060392A publication Critical patent/KR20250060392A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/12Discovery or management of network topologies
    • 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/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

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

Abstract

본 발명은 네트워크 토폴로지를 구축하는 SDN 제어장치에 관한 것으로, 본 발명의 일 실시예에 의한 SDN 제어장치는, 상기 SDN 제어장치에 연결된 SDN 스위치들과의 메시지를 송수신하는 송수신부; 제1 SDN 스위치로부터 포트 상태 메시지를 수신하면, 각각의 홉(hop)에서의 연결정보를 누적하여 저장하는 LD(Link Discovery) 태그(Tag)를 포함하는 LD 패킷을 생성하는 LD 태그 생성부; 상기 LD 패킷을 패킷-아웃 메시지에 포함하여 상기 제1 SDN 스위치로 전송하도록 제어하는 제어부; 및 제2 SDN 스위치로부터 상기 LD 패킷의 처리를 위한 패킷-인 메시지를 수신하면, 상기 LD 패킷에 포함된 상기 LD 태그로부터, 상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이에 연결된 적어도 1개 이상의 네트워크 스위치들의 연결정보를 추출하고, 상기 연결정보를 기반으로 네트워크 토폴로지를 업데이트하는 업데이트부를 포함할 수 있다.The present invention relates to an SDN control device for constructing a network topology. According to an embodiment of the present invention, the SDN control device may include: a transceiver for transmitting and receiving messages with SDN switches connected to the SDN control device; an LD tag generation unit for generating an LD packet including an LD tag that accumulates and stores connection information at each hop when receiving a port status message from a first SDN switch; a control unit for controlling the LD packet to be transmitted to the first SDN switch by including it in a packet-out message; and an update unit for extracting connection information of at least one network switch connected between the first SDN switch and the second SDN switch from the LD tag included in the LD packet when receiving a packet-in message for processing the LD packet from a second SDN switch, and updating the network topology based on the connection information.

Figure P1020230144378
Figure P1020230144378

Description

네트워크 토폴로지를 구축하는 SDN 제어장치 {SDN controller device for generating network topology}{SDN controller device for generating network topology}

본 발명은 소프트웨어 정의 네트워크(SDN: Software Defined Network) 기반의 네트워크에 대한 정확한 토폴로지를 생성하기 위한 SDN 제어장치에 관한 것이다. The present invention relates to a software defined network (SDN) control device for generating an accurate topology for a network based on software defined network (SDN).

소프트웨어 정의 네트워크(SDN: Software Defined Network)는, 기존의 네트워크 장비를 구성하는 데이터 평면(Data Plane)과 제어 평면(Control Plane)을 분리하여, 제어 평면(Control Plane)이 네트워크에 대한 관리, 모니터링, 제어 등에 관련된 전반적인 처리를 담당하도록 하는, 중앙 집중식 구조의 네트워킹을 의미한다. Software Defined Network (SDN) refers to a centralized networking structure that separates the data plane and control plane that make up existing network equipment, and allows the control plane to be responsible for overall processing related to management, monitoring, and control of the network.

제어 평면(Control Plane)의 기능은, SDN 제어기에 의하여 수행될 수 있으며, SDN 제어기는 오픈플로우(OpenFlow), NetConf 등 표준화된 인터페이스를 활용하여, 연결된 각각의 네트워크 장비들에 대한 제어를 수행할 수 있다.The function of the control plane can be performed by the SDN controller, and the SDN controller can control each connected network device by utilizing standardized interfaces such as OpenFlow and NetConf.

SDN 제어기는 연결된 네트워크 장비로부터 일괄 취합된 추상화된 네트워크 자원정보를 네트워크 관리자에게 제공할 수 있으며, 네트워크 관리자는 추상화된 네트워크 정보를 기반으로, 성능 최적화된 유연한 네트워크 운용을 수행할 수 있다. 예를 들어, SDN 제어기는, SDN 기반 네트워크에서 연결된 네트워크 장비들의 연결정보로부터 토폴로지 맵(Topology Map)을 생성할 수 있으므로, 네트워크 관리자에게 네트워크 전체에 대한 높은 가시성을 제공할 수 있다. 즉, 네트워크 관리자는 토폴로지 맵으로부터 빠른 장애 탐지, 효율적인 자원관리 및 정책 적용 등을 수행할 수 있다.The SDN controller can provide the network manager with abstracted network resource information that is collectively collected from connected network devices, and the network manager can perform flexible network operation with optimized performance based on the abstracted network information. For example, the SDN controller can generate a topology map from the connection information of the network devices connected in the SDN-based network, and thus provide the network manager with high visibility of the entire network. In other words, the network manager can perform rapid fault detection, efficient resource management, and policy application, etc. from the topology map.

다만, 소프트웨어 정의 네트워크 내에 기존의 레거시 스위치 등 일반 네트워크 장치가 포함되는 경우에는, 정확한 토폴로지 맵의 생성이 어려울 수 있으며, 네트워크 관리자 입장에서는 네트워크 장애가 발생시 정확하게 어떤 장비에 장애가 발생한 것인지 위치 파악이 어렵게 된다. 이러한 토폴로지 맵의 오류는, SDN 스위치와 연결되는 일반 네트워크 장비들이 많고, 네트워크의 복잡도가 높을수록, 더 심해질 수 있다However, if existing legacy switches and other general network devices are included in the software-defined network, it may be difficult to create an accurate topology map, and it may be difficult for network managers to accurately identify the location of the device that has failed when a network failure occurs. These errors in the topology map may become more severe as the number of general network devices connected to the SDN switch increases and the complexity of the network increases.

한국공개특허공보 제10-2017-0081422호Korean Patent Publication No. 10-2017-0081422

본 발명은, 리액티브 패킷 처리방식을 기반으로, 네트워크 내 레거시 스위치가 포함되는 경우에도 정확한 토폴로지 맵을 생성할 수 있는, 네트워크 토폴로지를 구축하는 SDN 제어장치를 제공하고자 한다.The present invention aims to provide an SDN control device that constructs a network topology based on a reactive packet processing method and can generate an accurate topology map even when a legacy switch is included in the network.

본 발명은 별도의 추가 장비없이, 기존의 SDN 제어장치를 이용하여 레거시 스위치들에 대한 연결정보를 반영한 토폴로지 맵을 생성할 수 있는, 네트워크 토폴로지를 구축하는 SDN 제어장치를 제공하고자 한다.The present invention aims to provide an SDN control device that constructs a network topology, which can generate a topology map reflecting connection information for legacy switches using an existing SDN control device without separate additional equipment.

본 발명은, 레거시 스위치에 대한 연결정보를 수집하기 위한 LD(Link Discovery) 태그를 활용하여 토폴로지 맵을 생성하는, 네트워크 토폴로지를 구축하는 SDN 제어장치를 제공하고자 한다.The present invention aims to provide an SDN control device that constructs a network topology by generating a topology map using an LD (Link Discovery) tag for collecting connection information for a legacy switch.

본 발명의 일 실시예에 의한 리액티브(Reactive) 패킷 처리방식이 적용된 소프트웨어 정의 네트워크(SDN: Software Defined Network) 환경에서, 네트워크 토폴로지(Network Topology)를 구축하는 SDN 제어장치는, 상기 SDN 제어장치에 연결된 SDN 스위치들과의 메시지를 송수신하는 송수신부; 제1 SDN 스위치로부터 포트 상태 메시지를 수신하면, 각각의 홉(hop)에서의 연결정보를 누적하여 저장하는 LD(Link Discovery) 태그(Tag)를 포함하는 LD 패킷을 생성하는 LD 태그 생성부; 상기 LD 패킷을 패킷-아웃 메시지에 포함하여 상기 제1 SDN 스위치로 전송하도록 제어하는 제어부; 및 제2 SDN 스위치로부터 상기 LD 패킷의 처리를 위한 패킷-인 메시지를 수신하면, 상기 LD 패킷에 포함된 상기 LD 태그로부터, 상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이에 연결된 적어도 1개 이상의 네트워크 스위치들의 연결정보를 추출하고, 상기 연결정보를 기반으로 네트워크 토폴로지를 업데이트하는 업데이트부를 포함할 수 있다.In a software defined network (SDN) environment to which a reactive packet processing method according to one embodiment of the present invention is applied, an SDN control device for constructing a network topology may include: a transceiver for transmitting and receiving messages with SDN switches connected to the SDN control device; an LD tag generation unit for generating an LD packet including an LD tag that accumulates and stores connection information at each hop when receiving a port status message from a first SDN switch; a control unit for controlling the LD packet to be transmitted to the first SDN switch by including it in a packet-out message; and an update unit for extracting connection information of at least one network switch connected between the first SDN switch and the second SDN switch from the LD tag included in the LD packet when receiving a packet-in message for processing the LD packet from a second SDN switch, and updating the network topology based on the connection information.

여기서 상기 LD 패킷은, 상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이에서, 브로드캐스팅(broadcasting) 방식으로 전송되도록 설정되는 것일 수 있다. 또한, 상기 LD 패킷은 이더넷 프레임(Ethernet Frame) 구조에 상기 LD 태그를 포함하는 필드를 더 포함하는 LD 프레임을 이용하여 생성한 것일 수 있다. Here, the LD packet may be set to be transmitted in a broadcasting manner between the first SDN switch and the second SDN switch. In addition, the LD packet may be generated using an LD frame that further includes a field including the LD tag in an Ethernet frame structure.

여기서 LD 태그는 상기 LD 패킷이 전달되는 홉의 개수를 세는 홉 카운트(hop count) 필드와, 각각의 홉에서의 식별정보(DPID: Datapath Identification) 및 포트정보를 누적하여 저장하는 연결정보 필드를 포함할 수 있으며, 상기 LD 패킷이 전달가능한 최대 홉의 개수인 최대 홉 카운트(idle count)를 더 포함할 수 있다. Here, the LD tag may include a hop count field that counts the number of hops through which the LD packet is transmitted, a connection information field that accumulates and stores identification information (DPID: Datapath Identification) and port information at each hop, and may further include a maximum hop count (idle count) that is the maximum number of hops through which the LD packet can be transmitted.

본 발명의 일 실시예에 의한 SDN 제어장치는, 상기 LD 패킷을 상기 제1 SDN 스위치와 연결된 네트워크 스위치로 전송하기 위한 LD 플로우 정책(flow rule)을 생성하여, 상기 제1 SDN 스위치에 설정하는 정책설정부를 더 포함할 수 있다. An SDN control device according to one embodiment of the present invention may further include a policy setting unit that generates an LD flow policy (flow rule) for transmitting the LD packet to a network switch connected to the first SDN switch and sets it in the first SDN switch.

여기서 상기 정책설정부는, 상기 포트 상태 메시지로부터, 상기 제1 SDN 스위치에 포함된 포트 중에서 상기 포트의 상태가 업(Up)으로 변화된 포트를 판별하고, 상기 포트를 통해 상기 네트워크 스위치로 상기 LD 패킷을 전송하도록 상기 LD 플로우 정책을 생성하는 것일 수 있다. Here, the policy setting unit may determine, from the port status message, a port among the ports included in the first SDN switch whose status has changed to Up, and generate the LD flow policy to transmit the LD packet to the network switch through the port.

여기서 상기 제어부는, 상기 LD 패킷의 처리를 위한 패킷-인 메시지가, 상기 LD 플로우 정책의 유지시간 내에 수신되지 않으면, 상기 정책설정부가 상기 LD 플로우 정책을 재설정하여 상기 LD 패킷을 다시 전송하도록 할 수 있다.Here, if a packet-in message for processing the LD packet is not received within the maintenance time of the LD flow policy, the control unit can cause the policy setting unit to reset the LD flow policy and retransmit the LD packet.

여기서 상기 업데이트부는, 상기 연결정보로부터 각각의 홉에서 연결된 상기 네트워크 스위치들의 식별정보 및 포트정보를 추출하고, 상기 홉의 순서에 따라 순차적으로 상기 네트워크 스위치들의 입력포트와 출력포트를 연결하여, 상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이의 네트워크 토폴로지를 추가하는 것일 수 있다.Here, the update unit may extract identification information and port information of the network switches connected at each hop from the connection information, and sequentially connect the input ports and output ports of the network switches according to the order of the hops, thereby adding a network topology between the first SDN switch and the second SDN switch.

여기서 상기 업데이트부는, 상기 연결정보에 포함된 각각의 네트워크 스위치들을, 상기 SDN 제어장치에 연결된 SDN 스위치들의 목록을 포함하는 기준 데이터베이스에서 검색하고, 상기 검색된 네트워크 스위치들을 상기 SDN 스위치로 업데이트하여, 토폴로지 맵 테이블을 생성하는 것일 수 있다.Here, the update unit may search for each network switch included in the connection information in a reference database including a list of SDN switches connected to the SDN control device, and update the searched network switches with the SDN switches to create a topology map table.

여기서 상기 업데이트부는, 상기 토폴로지 맵 테이블을 기반으로, 상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이에 포함되는 상기 네트워크 스위치들의 네트워크 토폴로지를 생성하는 것일 수 있다.Here, the update unit may generate a network topology of the network switches included between the first SDN switch and the second SDN switch based on the topology map table.

여기서 상기 제어부는, 상기 포트 상태 메시지를 수신하면, 상기 제1 SDN 스위치에 연결된 네트워크 스위치가 SDN 스위치인지 여부를 판별하는 것일 수 있다.Here, the control unit may determine whether the network switch connected to the first SDN switch is an SDN switch when receiving the port status message.

여기서 상기 제어부는, 상기 네트워크 스위치를 상기 SDN 스위치로 가정하여, 상기 네트워크 스위치의 연결정보를 확인하기 위한 LLDP(Link Layer Discovery Protocol) 패킷을 패킷-아웃 메시지에 포함하여 상기 제1 SDN 스위치로 전송하도록 하는 것일 수 있다.Here, the control unit may, assuming the network switch to be the SDN switch, include an LLDP (Link Layer Discovery Protocol) packet for confirming connection information of the network switch in a packet-out message and transmit it to the first SDN switch.

여기서 상기 제어부는, 상기 LLDP 패킷에 대응하는 패킷-인 메시지가 상기 네트워크 장치로부터 수신되지 않으면, 상기 네트워크 장치는 상기 SDN 스위치가 아닌 것으로 판별하는 것일 수 있다.Here, the control unit may determine that the network device is not the SDN switch if a packet-in message corresponding to the LLDP packet is not received from the network device.

여기서 상기 정책설정부는, 상기 LLDP 패킷을 상기 네트워크 장치로 전송하기 위한 LLDP 플로우 정책을 상기 제1 SDN 스위치에 설정하는 것일 수 있다.Here, the policy setting unit may set an LLDP flow policy for transmitting the LLDP packet to the network device to the first SDN switch.

여기서 상기 정책설정부는, 상기 포트 상태 메시지로부터, 상기 제1 SDN 스위치에 포함된 포트 중에서 상기 포트의 상태가 업(Up)으로 변화된 포트를 판별하고, 상기 포트를 통해 상기 네트워크 스위치로 상기 LLDP 패킷을 전송하도록 상기 LLDP 플로우 정책을 생성하는 것일 수 있다.Here, the policy setting unit may determine, from the port status message, a port among the ports included in the first SDN switch whose status has changed to Up, and generate the LLDP flow policy to transmit the LLDP packet to the network switch through the port.

여기서 상기 제어부는, 상기 LLDP 플로우 정책의 유지시간 내에 상기 패킷-인 메시지가 수신되지 않으면, 상기 SDN 스위치가 아닌 것으로 판별할 수 있다.Here, the control unit can determine that it is not the SDN switch if the packet-in message is not received within the maintenance time of the LLDP flow policy.

본 발명의 일 실시예에 의한 리액티브(Reactive) 패킷 처리방식이 적용된 소프트웨어 정의 네트워크(SDN: Software Defined Network) 환경에서, 네트워크 토폴로지(Network Topology)를 구축하는 컴퓨팅 장치는, 프로세서를 포함할 수 있으며, 상기 프로세서는 제1 SDN 스위치로부터 포트 상태 메시지를 수신하는 것; 상기 포트 상태 메시지에 대응하여, 각각의 홉(hop)에서의 연결정보를 누적하여 저장하는 LD(Link Discovery) 태그(Tag)를 포함하는 LD 패킷을 패킷-아웃 메시지에 포함하여, 상기 제1 SDN 스위치로 전송하는 것; 제2 SDN 스위치로부터 상기 LD 패킷의 처리를 위한 패킷-인 메시지를 수신하면, 상기 LD 패킷으로부터 상기 LD 태그를 추출하는 것; 및 상기 LD 태그로부터, 상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이에 연결된 적어도 1개 이상의 네트워크 스위치들의 연결정보를 추출하고, 상기 연결정보를 기반으로 네트워크 토폴로지를 업데이트하는 것을 포함하여 수행할 수 있다.In a software defined network (SDN) environment to which a reactive packet processing method according to one embodiment of the present invention is applied, a computing device for constructing a network topology may include a processor, wherein the processor may perform the following operations: receiving a port status message from a first SDN switch; including an LD (Link Discovery) tag, which accumulates and stores connection information at each hop in response to the port status message, in a packet-out message and transmitting the LD packet to the first SDN switch; extracting the LD tag from the LD packet when receiving a packet-in message for processing the LD packet from a second SDN switch; and extracting connection information of at least one network switch connected between the first SDN switch and the second SDN switch from the LD tag and updating the network topology based on the connection information.

여기서, 상기 프로세서는 상기 포트 상태 메시지를 수신하면, 상기 제1 SDN 스위치에 연결된 네트워크 스위치가 SDN 스위치인지 여부를 판별하는 것을 더 포함하여 수행하는 것일 수 있다.Here, the processor may further include performing, upon receiving the port status message, determining whether the network switch connected to the first SDN switch is an SDN switch.

여기서 상기 SDN 스위치인지 여부를 판별하는 것은, 상기 네트워크 스위치를 상기 SDN 스위치로 가정하고, 상기 네트워크 스위치의 연결정보를 확인하기 위한 LLDP(Link Layer Discovery Protocol) 패킷을 패킷-아웃 메시지에 포함하여, 상기 제1 SDN 스위치로 전송하는 것; 및 상기 LLDP 패킷에 대응하는 패킷-인 메시지가 상기 네트워크 장치로부터 수신되지 않으면, 상기 네트워크 장치는 상기 SDN 스위치가 아닌 것으로 판별하는 것을 더 포함하는 것일 수 있다.Here, determining whether the network switch is the SDN switch may further include: assuming the network switch to be the SDN switch, including an LLDP (Link Layer Discovery Protocol) packet for confirming connection information of the network switch in a packet-out message and transmitting it to the first SDN switch; and if a packet-in message corresponding to the LLDP packet is not received from the network device, determining that the network device is not the SDN switch.

덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.In addition, the solution to the above-mentioned problem does not enumerate all the features of the present invention. The various features of the present invention and the advantages and effects thereof can be understood in more detail by referring to the specific embodiments below.

본 발명의 일 실시예에 의한 네트워크 토폴로지를 구축하는 SDN 제어장치에 의하면, SDN 기반의 네트워크 내 포함된 SDN 스위치뿐만 아니라, 그 사이에 포함된 일반 L2/L3 스위치 등에 대한 연결정보를 파악하는 것이 가능하다. 따라서, 레거시 스위치 등에 대한 연결정보를 반영하여 실시간 네트워크 토폴로지 맵을 생성할 수 있으며, 네트워크 장애시에도 신속하여 장애위치 등을 파악하여, 장애조치 등을 수행하는 것이 가능하다. According to an SDN control device for constructing a network topology according to one embodiment of the present invention, it is possible to identify connection information not only for SDN switches included in an SDN-based network, but also for general L2/L3 switches included therebetween. Accordingly, a real-time network topology map can be created by reflecting connection information for legacy switches, etc., and even in the event of a network failure, it is possible to quickly identify the location of the failure, etc., and perform failover, etc.

본 발명의 일 실시예에 의한 네트워크 토폴로지를 구축하는 SDN 제어장치에 의하면, 별도의 추가 장비없이, 기존의 SDN 제어장치를 이용하여 레거시 스위치들에 대한 연결정보를 반영한 토폴로지 맵을 생성하는 것이 가능하다. 따라서, 추가 장비의 설치 등에 따른 시간이나 비용 등을 절감할 수 있으며, 간단하게 네트워크 장비들에 대한 탐지 및 조회를 제공할 수 있다.According to an SDN control device that constructs a network topology according to one embodiment of the present invention, it is possible to create a topology map reflecting connection information for legacy switches by using an existing SDN control device without separate additional equipment. Accordingly, time and cost for installing additional equipment, etc. can be reduced, and detection and inquiry for network equipment can be provided simply.

다만, 본 발명의 실시예들에 따른 네트워크 토폴로지를 구축하는 SDN 제어장치가 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the effects that can be achieved by the SDN control device that constructs the network topology according to the embodiments of the present invention are not limited to those mentioned above, and other effects that are not mentioned will be clearly understood by those skilled in the art to which the present invention belongs from the description below.

도1은 본 발명의 일 실시예에 의한 SDN 기반의 네트워크 구조를 나타내는 개략도이다.
도2는 본 발명의 일 실시예에 의한 SDN 스위치의 상태정보 업데이트를 나타내는 개략도이다.
도3 및 도4는 본 발명의 일 실시예에 의한 리액티브 패킷 처리방식을 나타내는 개략도이다.
도5 내지 도7은 본 발명의 일 실시예에 의한 SDN 제어장치의 SDN 스위치에 대한 토폴로지 생성을 나타내는 개략도이다.
도8 내지 도10은 SDN 제어장치의 단말정보 업데이트를 나타내는 개략도이다.
도11 내지 도14는 LLDP 메시지를 이용한 토폴로지 생성시 발생하는 문제점을 나타내는 개략도이다.
도15는 본 발명의 일 실시예에 의한 SDN 제어장치를 나타내는 블록도이다.
도16은 본 발명의 일 실시예에 의한 LD 패킷의 프레임 구조를 나타내는 개략도이다.
도17은 본 발명의 일 실시예에 의한 각 호에서의 연결정보를 누적하여 저장하는 LD 태그의 생성을 나타내는 개략도이다.
도18은 본 발명의 일 실시예에 의한 LD 태그와 기준 데이터베이스를 이용한 토폴로지 맵 테이블 생성을 나타내는 개략도이다.
도19는 본 발명의 일 실시예에 의한 토폴로지 맵 테이블을 이용한 토폴로지 맵 생성을 나타내는 개략도이다.
도20 내지 도26는 본 발명의 일 실시예에 의한 SDN 제어장치의 네트워크 토폴로지 구축을 나타내는 개략도이다.
도27은 본 발명의 일 실시예에 의한 리액티브 패킷 처리방식이 적용된 소프트웨어 정의 네트워크 환경에서, 네트워크 토폴로지를 구축하는 컴퓨팅 장치를 나타내는 블록도이다.
Figure 1 is a schematic diagram showing an SDN-based network structure according to one embodiment of the present invention.
Figure 2 is a schematic diagram showing status information update of an SDN switch according to one embodiment of the present invention.
Figures 3 and 4 are schematic diagrams showing a reactive packet processing method according to one embodiment of the present invention.
Figures 5 to 7 are schematic diagrams showing topology generation for an SDN switch of an SDN control device according to one embodiment of the present invention.
Figures 8 to 10 are schematic diagrams showing terminal information updates of an SDN control device.
Figures 11 to 14 are schematic diagrams showing problems that occur when creating a topology using LLDP messages.
Figure 15 is a block diagram showing an SDN control device according to one embodiment of the present invention.
Figure 16 is a schematic diagram showing the frame structure of an LD packet according to one embodiment of the present invention.
Figure 17 is a schematic diagram showing the creation of an LD tag that accumulates and stores connection information in each case according to one embodiment of the present invention.
Figure 18 is a schematic diagram showing the creation of a topology map table using an LD tag and a reference database according to one embodiment of the present invention.
Figure 19 is a schematic diagram showing the creation of a topology map using a topology map table according to one embodiment of the present invention.
Figures 20 to 26 are schematic diagrams showing the construction of a network topology of an SDN control device according to one embodiment of the present invention.
FIG. 27 is a block diagram showing a computing device that constructs a network topology in a software-defined network environment to which a reactive packet processing method according to one embodiment of the present invention is applied.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 즉, 본 발명에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.Hereinafter, embodiments disclosed in the present specification will be described in detail with reference to the attached drawings. Regardless of the drawing symbols, identical or similar components will be given the same reference numerals and redundant descriptions thereof will be omitted. The suffixes "module" and "part" used for components in the following description are given or used interchangeably only for the convenience of writing the specification, and do not have distinct meanings or roles in themselves. That is, the term "part" used in the present invention means a hardware component such as software, FPGA, or ASIC, and the "part" performs certain roles. However, the "part" is not limited to software or hardware. The "part" may be configured to be in an addressable storage medium or may be configured to reproduce one or more processors. Thus, as an example, a 'part' may include components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functionality provided within the components and 'parts' may be combined into a smaller number of components and 'parts' or further separated into additional components and 'parts'.

또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.In addition, when describing the embodiments disclosed in this specification, if it is determined that a detailed description of a related known technology may obscure the gist of the embodiments disclosed in this specification, the detailed description thereof will be omitted. In addition, the attached drawings are only intended to facilitate easy understanding of the embodiments disclosed in this specification, and the technical ideas disclosed in this specification are not limited by the attached drawings, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and technical scope of the present invention.

도1은 본 발명의 일 실시예에 의한 소프트웨어 정의 네트워크(SDN: Software Defined Network) 기반의 네트워크 구조를 나타내는 개략도이다.Figure 1 is a schematic diagram showing a network structure based on a software defined network (SDN) according to one embodiment of the present invention.

도1을 참조하면, 본 발명의 일 실시예에 의한 SDN 기반의 네트워크는, SDN 제어장치(100), 기준 데이터베이스(D), SDN 스위치(S1, S2), 레거시 스위치(L1, L2) 및 단말장치(1)를 포함할 수 있다. Referring to FIG. 1, an SDN-based network according to one embodiment of the present invention may include an SDN control device (100), a reference database (D), SDN switches (S1, S2), legacy switches (L1, L2), and a terminal device (1).

이하, 도1을 참조하여 본 발명의 일 실시예에 의한 SDN 기반의 네트워크 구조를 설명한다.Hereinafter, an SDN-based network structure according to one embodiment of the present invention will be described with reference to FIG. 1.

SDN 제어장치(100)는 SDN 기반의 네트워크 내 제어 평면(control plane)의 기능을 수행하는 SDN 제어기(Contoller)가 설치되는 네트워크 장치일 수 있다. SDN 제어장치(100)는 물리적인 서버나, 클라우드 서버 내 가상화 장치 등으로 구현될 수 있다. The SDN control device (100) may be a network device in which an SDN controller that performs the function of a control plane within an SDN-based network is installed. The SDN control device (100) may be implemented as a physical server, a virtualization device within a cloud server, etc.

SDN 제어장치(100)는 연결된 각각의 SDN 스위치(S1, S2)들을 중앙 집중형으로 관리 및 제어할 수 있으며, SDN 스위치(S1, S2)들에 대한 토폴로지 생성, 패킷 처리를 위한 플로우 정책 설정 등 다양한 기능을 수행할 수 있다. 여기서, SDN 제어장치(100)는 전용의 SDN 프로토콜을 통하여 SDN 스위치(S1, S2)에 대한 제어를 수행할 수 있다. SDN 프로토콜에는 오픈플로우, NETCOF 등이 포함될 수 있으며, 이외에도 소프트웨어 정의 네트워크를 구현하기 위한 것이면 어떠한 프로토콜도 적용가능하다.The SDN control device (100) can centrally manage and control each connected SDN switch (S1, S2), and perform various functions such as topology creation for the SDN switches (S1, S2), and flow policy setting for packet processing. Here, the SDN control device (100) can perform control over the SDN switches (S1, S2) through a dedicated SDN protocol. The SDN protocol may include OpenFlow, NETCOF, etc., and any protocol for implementing a software-defined network may be applied.

SDN 제어장치(100)는 연결된 SDN 스위치(S1, S2)와 특성요청(FeatureRequest) 메시지와 그에 대한 응답(Reply) 메시지를 교환하여, SDN 스위치(S1, S2)가 지원하는 기능을 확인할 수 있다. SDN 제어장치(100)는 SDN 스위치(S1, S2)에 필요한 설정을 보내거나, 도2(a)에 도시한 바와 같이, SDN 스위치(S1, S2)의 상태정보를 수집할 수 있다. 여기서 메시지를 주고 받을 때, 단말장치(1)에서 SDN 스위치(S1, S2)로 들어온 패킷의 처리를 위한 플로우 정책이 없거나, 플로우 정책의 액션이 SDN 제어장치(100)인 경우, SDN 스위치(S1, S2)가 SDN 제어장치(100)로 메시지를 전송할 수 있으며, 이때 해당 메시지를 패킷-인(Packet-In) 메시지라고 정의할 수 있다. 반대로, 패킷-인 메시지에 대응하여, SDN 제어장치(100)가 SDN 스위치(S1, S2)로 보내는 응답메시지를 패킷-아웃(Packet-Out) 메시지라고 정의할 수 있다. 패킷-인 메시지의 경우, 각 SDN 스위치(S1, S2)마다 패킷의 도착지를 SDN 제어장치(100)로 지정하는 플로우 정책을 등록하여야 동작할 수 있으며, 이때 등록한 플로우 정책은 패킷-인 정책에 해당한다.The SDN control device (100) can check the functions supported by the SDN switch (S1, S2) by exchanging a FeatureRequest message and a Reply message thereto with the connected SDN switch (S1, S2). The SDN control device (100) can send necessary settings to the SDN switch (S1, S2) or, as illustrated in Fig. 2(a), collect status information of the SDN switch (S1, S2). Here, when exchanging messages, if there is no flow policy for processing a packet that entered the SDN switch (S1, S2) from the terminal device (1) or if the action of the flow policy is the SDN control device (100), the SDN switch (S1, S2) can transmit a message to the SDN control device (100), and at this time, the corresponding message can be defined as a Packet-In message. Conversely, in response to a packet-in message, a response message that the SDN control device (100) sends to the SDN switch (S1, S2) can be defined as a packet-out message. In the case of a packet-in message, each SDN switch (S1, S2) must register a flow policy that designates the destination of the packet as the SDN control device (100) in order to operate, and the registered flow policy corresponds to the packet-in policy.

SDN 스위치(S1, S2)는 SDN 기반의 네트워크 내 포함되는 스위치, L2 스위치, 라우터, 무선 AP 등의 네트워크 장치로, SDN 프로토콜을 지원하는 것일 수 있다. 즉, SDN 스위치(S1, S2)는 SDN 프로토콜을 통하여, SDN 제어장치(100)의 제어에 따른 패킷 처리를 수행할 수 있다. SDN switches (S1, S2) are network devices such as switches, L2 switches, routers, and wireless APs included in an SDN-based network, and may support the SDN protocol. That is, the SDN switches (S1, S2) may perform packet processing according to the control of the SDN control device (100) through the SDN protocol.

여기서, SDN 스위치(S1, S2)는, 도1에 도시한 바와 같이, SDN 프로토콜을 지원하지 않는 레거시 스위치(L1, L2)들과 연결될 수 있으며, 이때, 레거시 스위치(L1, L2)들은 SDN 스위치(S1, S2) 사이에 위치할 수 있다. 즉, SDN 기반의 네트워크의 경우, SDN 제어장치(100)에는 SDN 스위치(S1, S2)가 직접 연결되고, 단말장치(1)와 연결되는 종단에는 SDN 스위치(S1, S2)가 위치하도록 구현할 수 있다.Here, the SDN switches (S1, S2) can be connected to legacy switches (L1, L2) that do not support the SDN protocol, as illustrated in Fig. 1, and at this time, the legacy switches (L1, L2) can be located between the SDN switches (S1, S2). That is, in the case of an SDN-based network, the SDN switches (S1, S2) can be directly connected to the SDN control device (100), and the SDN switches (S1, S2) can be implemented so that they are located at the end connected to the terminal device (1).

기준 데이터베이스(D)는 SDN 제어장치(100)와 연결된 SDN 스위치들의 상태정보를 저장할 수 있다. 도2(b)에 도시한 바와 같이, 상태정보에는 각각의 SDN 스위치들을 구분하기 위한 식별정보인 DPID(Datapath Identification), 각각의 SDN 스위치들의 송수신 트래픽처리량(Throughput), 송수신 패킷수 등이 포함될 수 있다. 이외에도, 상태정보에는 SDN 스위치(S1, S2)의 IP(Internet Protocol) 주소, SDN 제어장치(100)와 연결된 시간 정보, SDN 제어장치(100)와 연결된 전체 SDN 스위치(S1, S2)의 개수, 연결링크, 연결된 단말장치(1)의 수, SDN 스위치(S1, S2)에 등록된 플로우 정책이나 그룹 정책 정보, SDN 스위치(S1, S2)에 등록된 플로우 정책이나 그룹 정책에 따른 바이트카운트(ByteCount), 전송속도, 패킷 카운트(Packet Count) 정보, SDN 스위치(S1, S2)에 등록된 플로우 테이블 엔트리 사이즈 또는 그룹 테이블 엔트리 사이즈 정보, SDN 스위치(S1, S2)d의 포트별 상태(Enable/Disable 여부, 포트 전송속도, RX/TX 트래픽 처리량) 정보, 각 SDN 스위치(S1, S2)의 포트 별 수신, 지연, 에러 발생 패킷 수 등이 포함될 수 있다. 여기서, 상태정보는 일정한 주기마다 업데이트될 수 있으며, 기준 데이터베이스(D)는 SDN 제어장치(100)로부터 수신한 상태정보를 저장할 수 있다.The reference database (D) can store status information of SDN switches connected to the SDN control device (100). As shown in Fig. 2(b), the status information can include DPID (Datapath Identification), which is identification information for distinguishing each SDN switch, the amount of traffic throughput transmitted and received by each SDN switch, the number of packets transmitted and received, etc. In addition, the status information may include the IP (Internet Protocol) address of the SDN switch (S1, S2), time information connected to the SDN control device (100), the total number of SDN switches (S1, S2) connected to the SDN control device (100), connection links, the number of connected terminal devices (1), flow policy or group policy information registered in the SDN switch (S1, S2), byte count, transmission speed, and packet count information according to the flow policy or group policy registered in the SDN switch (S1, S2), flow table entry size or group table entry size information registered in the SDN switch (S1, S2), status information for each port of the SDN switch (S1, S2) (whether Enabled/Disabled, port transmission speed, RX/TX traffic processing volume), the number of packets received, delayed, and with errors occurring for each port of each SDN switch (S1, S2), etc. Here, the status information can be updated at regular intervals, and the reference database (D) can store the status information received from the SDN control device (100).

한편, 기준데이터베이스(D)는 고속 랜덤 액세스 메모리를 포함하는 것일 수 있으며, 이외에도 자기 디스크 저장 장치, 플래시 메모리 장치 등의 비휘발성 저장장치를 포함할 수 있다. 또한 기준데이터베이스(D)는 인터넷, 인트라넷, LAN, WLAN, SAN(Storage Area Network), 또는 이들의 적절한 조합과 같은 통신 네트워크를 통하여 엑세스되는 네트워크 부착형 저장 장치를 더 포함할 수 있다. 기준데이터베이스(D)는 도 1에서와 같이 SDN 제어장치(100)와 별도로 존재할 수도 있으나, SDN 제어장치(100)와 통합되어 존재할 수도 있다.Meanwhile, the reference database (D) may include a high-speed random access memory, and may also include a non-volatile storage device such as a magnetic disk storage device or a flash memory device. In addition, the reference database (D) may further include a network-attached storage device that is accessed via a communication network such as the Internet, an intranet, a LAN, a WLAN, a SAN (Storage Area Network), or an appropriate combination thereof. The reference database (D) may exist separately from the SDN control device (100) as in FIG. 1, or may exist integrated with the SDN control device (100).

단말장치(1)는 SDN 기반의 네트워크에 접속하는 호스트 장치일 수 있으며, 네트워크 서비스를 제공하는 서버나, 네트워크 서비스를 제공받는 컴퓨터 등의 사용자 단말 등일 수 있다. 단말장치(1)는 네트워크를 통해 다른 단말장치로 데이터를 전송하기 위한 패킷을 생성할 수 있으며, 생성한 패킷을 SDN 스위치(S1, S2)를 통하여 전송할 수 있다. 여기서, 단말장치는(1) 실제 물리서버 등의 장치일 수 있으나, 실시예에 따라서는 가상머신 등으로 구현하는 것도 가능하다.The terminal device (1) may be a host device that connects to an SDN-based network, and may be a server that provides network services, a user terminal such as a computer that receives network services, etc. The terminal device (1) may generate a packet for transmitting data to another terminal device through the network, and may transmit the generated packet through an SDN switch (S1, S2). Here, the terminal device (1) may be a device such as an actual physical server, but depending on the embodiment, it may also be implemented as a virtual machine, etc.

한편, SDN 제어장치(100)는 리액티브 패킷 전송방식을 활용하는 것일 수 있다. 즉, 플로우 정책에 정의되지 않은 미지의 패킷이 SDN 스위치(S1, S2)에 유입되면, SDN 스위치(S1, S2)는 해당 패킷에 대한 처리방안을 SDN 제어장치(100)에게 요청할 수 있으며, SDN 제어장치(100)는 최적의 경로를 탐색하여 해당 패킷에 대한 처리방안으로 제공할 수 있다.Meanwhile, the SDN control device (100) may utilize a reactive packet transmission method. That is, when an unknown packet not defined in the flow policy enters the SDN switch (S1, S2), the SDN switch (S1, S2) can request the SDN control device (100) for a processing method for the packet, and the SDN control device (100) can search for an optimal path and provide a processing method for the packet.

구체적으로, 도3을 참조하면, 단말장치#1에서 단말장치#2로 데이터 패킷을 보내고자 하는 경우, 단말장치#1은 해당 패킷을 SDN 스위치에 전달할 수 있다. 다만, SDN 스위치에는 해당 패킷의 처리를 위한 플로우 정책이 설정되어 있지 않을 수 있다. 이 경우, SDN 스위치는 리액티브 방식에 따라, 해당 데이터 패킷을 버퍼에 저장하고, 해당 패킷의 헤더를 포함한 일부 데이터를 패킷-인 메시지를 통해 SDN 제어장치(100)로 전달하여, SDN 제어장치(100)에게 해당 데이터 패킷의 처리를 문의할 수 있다.Specifically, referring to FIG. 3, when a data packet is to be sent from terminal device #1 to terminal device #2, terminal device #1 can transmit the corresponding packet to the SDN switch. However, the SDN switch may not have a flow policy set for processing the corresponding packet. In this case, the SDN switch may store the corresponding data packet in a buffer according to the reactive method and transmit some data including the header of the corresponding packet to the SDN control device (100) through a packet-in message, thereby inquiring the SDN control device (100) about processing the corresponding data packet.

여기서, SDN 제어장치(100)는 SDN 스위치와 처음 연결될 때, SDN 스위치가 전송한 ARP(Address Resolution Rotocol) 메시지를 통해 검출한 단말장치들에 대한 정보를 전달받을 수 있으며, 이를 취합하여 토폴로지 맵을 구성해둘 수 있다. 따라서, SDN 제어장치(100)는 해당 토폴로지 맵을 기반으로, 패킷-인 메시지로 전달받은 패킷의 헤더 정보에 포함된 목적지 정보로부터, 단말장치#1의 패킷을 단말장치#2로 보내기 위한 경로를 추출할 수 있다. Here, the SDN control device (100) can receive information about terminal devices detected through an ARP (Address Resolution Rotocol) message transmitted by the SDN switch when first connected to the SDN switch, and can compile the information to configure a topology map. Accordingly, the SDN control device (100) can extract a path for sending a packet of terminal device #1 to terminal device #2 from destination information included in the header information of a packet transmitted as a packet-in message based on the topology map.

이후, 도4(a)에 도시한 바와 같이, SDN 장치(100)는 OFTP_FLOW_MOD 메시지 등의 플로우 정책설정(Flow modify) 메시지를 SDN 스위치로 전달할 수 있으며, 이를 통하여 SDN 스위치에 해당 데이터 패킷의 처리를 위한 플로우 정책을 설정할 수 있다. 즉, 도4(a)에 도시한 바와 같이, SDN 스위치의 플로우 테이블에는, 입력포트(In port)가 "1"이고 소스 MAC 주소(Src MAC)가 "a"이며, 목적지 MAC 주소(Dst MAC)가 "b"이면, 출력포트(Out Port) "2"로 패킷을 전달하라는 플로우 정책이 설정될 수 있다. 이때, 해당 정책의 유지시간(Idle time)은 3초로 설정될 수 있다. Thereafter, as illustrated in FIG. 4(a), the SDN device (100) can transmit a flow policy setting (Flow modify) message, such as an OFTP_FLOW_MOD message, to the SDN switch, thereby enabling the SDN switch to set a flow policy for processing the corresponding data packet. That is, as illustrated in FIG. 4(a), a flow policy can be set in the flow table of the SDN switch to transmit a packet to the output port (Out Port) "2" if the input port (In port) is "1", the source MAC address (Src MAC) is "a", and the destination MAC address (Dst MAC) is "b". At this time, the idle time of the corresponding policy can be set to 3 seconds.

도4(b)를 참조하면, SDN 제어장치(100)는 패킷-아웃 메시지를 통해 SDN 스위치의 버퍼에 저장된 데이터 패킷의 도착지 주소를 설정할 수 있으며, SDN 스위치는 플로우 정책의 매치(Match) 필드를 통하여 입력된 데이터 패킷이 해당 플로우 정책을 만족하는지 확인할 수 있다. 즉, 입력포트가 "1"이고, 소스 MAC 주소가 단말장치#1, 목적지 MAC 주소가 단말장치#2인 경우 매치(Match) 필드를 만족하므로, 액션(Action) 필드의 정의에 따라, 출력포트 "2"로 데이터 패킷을 전송하여 단말장치#2로 데이터 패킷을 전달할 수 있다. 여기서, 플로우 테이블의 유지시간은 해당 플로우 정책이 유지되는 시간에 해당한다. 즉, 유지시간 내 해당 플로우 정책과 일치하는 패킷이 전송되지 않는 경우에는, 유지시간이 갱신되지 못하여 자동으로 플로우 정책이 삭제될 수 있다. Referring to FIG. 4(b), the SDN control device (100) can set the destination address of the data packet stored in the buffer of the SDN switch through a packet-out message, and the SDN switch can check whether the input data packet satisfies the corresponding flow policy through the Match field of the flow policy. That is, if the input port is "1", the source MAC address is terminal device #1, and the destination MAC address is terminal device #2, the Match field is satisfied, and therefore, according to the definition of the Action field, the data packet can be transmitted to the output port "2" to deliver the data packet to terminal device #2. Here, the retention time of the flow table corresponds to the time that the corresponding flow policy is maintained. That is, if a packet matching the corresponding flow policy is not transmitted within the retention time, the retention time may not be updated, and the flow policy may be automatically deleted.

한편, SDN 제어장치(100)는 SDN 스위치(S1, S2)들의 상태 정보로부터, 자신과 연결된 SDN 스위치(S1, S2)들의 존재여부는 알 수 있으나, 구체적으로 어떻게 연결되어 있는지는 파악할 수 없다. 즉, 현재 연결된 SDN 스위치(S1, S2)가 몇 대인지는 알 수 있으나, 해당 SDN 스위치(S1, S2)의 포트 별로 무엇이 연결되어 있는지는 알 수 없다. 이를 해결하기 위해서, SDN 제어장치(100)는 LLDP(Link Layer Discovery Protocol) 패킷을 이용할 수 있다. 즉, SDN 제어장치(100)는 LLDP 패킷과 패킷-인 메시지 및 패킷-아웃 메시지를 이용하여, SDN 스위치 사이의 연결을 파악하고, 토폴로지 맵을 생성할 수 있다.Meanwhile, the SDN control device (100) can know the existence of SDN switches (S1, S2) connected to it from the status information of the SDN switches (S1, S2), but cannot determine specifically how they are connected. In other words, it can know how many SDN switches (S1, S2) are currently connected, but cannot know what is connected to each port of the corresponding SDN switch (S1, S2). To solve this problem, the SDN control device (100) can use an LLDP (Link Layer Discovery Protocol) packet. That is, the SDN control device (100) can identify the connection between SDN switches and generate a topology map by using an LLDP packet, a packet-in message, and a packet-out message.

도5(a)를 참조하면, SDN 제어장치(100)의 관리포트(m 포트)에는 3개의 상위 SDN 스위치들이 각각 연결될 수 있으며, SDN 제어장치(100)는 연결된 SDN 스위치들의 상태정보를 파악할 수 있다. 이후, SDN 스위치#3의 1번 포트와 SDN 스위치#2의 2번 포트를 물리적으로 연결할 수 있으며, 이 경우 SDN 스위치#3의 1번 포트의 상태가 다운(down) 상태에서 업(up) 상태로 변경될 수 있다.Referring to Fig. 5(a), three upper SDN switches can be connected to the management port (m port) of the SDN control device (100), respectively, and the SDN control device (100) can identify the status information of the connected SDN switches. Thereafter, port 1 of SDN switch #3 and port 2 of SDN switch #2 can be physically connected, and in this case, the status of port 1 of SDN switch #3 can be changed from down to up.

포트의 상태가 변경되면, SDN 스위치#3은 도5(b)에 도시한 바와 같이, 포트 상태 메시지를 생성하여 포트의 변경사항을 SDN 제어장치(100)에게 전달할 수 있다. 이 경우, SDN 제어장치(100)는 도6(a)에 도시한 바와 같이, LLDP 패킷을 생성하여 패킷-아웃 메시지에 포함할 수 있으며, SDN 스위치#3의 1번 포트를 통하여 전송되도록, 패킷-아웃 메시지를 SDN 스위치#3 로 전달할 수 있다.When the status of the port changes, the SDN switch #3 can generate a port status message as illustrated in Fig. 5(b) and transmit the change in the port to the SDN control device (100). In this case, the SDN control device (100) can generate an LLDP packet as illustrated in Fig. 6(a) and include it in a packet-out message, and transmit the packet-out message to the SDN switch #3 so that it is transmitted through port 1 of the SDN switch #3.

이후, 도6(b)와 같이, 패킷-아웃 메시지를 수신한 SDN 스위치#3은 패킷-아웃 메시지에 포함된 LLDP 패킷을 SDN 스위치#3의 1번 포트를 통하여 SDN 스위치#2로 전달할 수 있다. 다만, LLDP 패킷을 수신한 SDN 스위치#2는 해당 LLDP 패킷을 어떻게 처리해야하는지 모르기 때문에, SDN 스위치#2는 LLDP 패킷을 패킷-인 메시지에 포함하여 SDN 제어장치(100)로 전달할 수 있다.Thereafter, as shown in Fig. 6(b), SDN switch #3, which has received the packet-out message, can forward the LLDP packet included in the packet-out message to SDN switch #2 through port 1 of SDN switch #3. However, since SDN switch #2, which has received the LLDP packet, does not know how to process the LLDP packet, SDN switch #2 can include the LLDP packet in the packet-in message and forward it to the SDN control device (100).

최종적으로, 도7에 도시한 바와 같이, SDN 제어장치(100)는 SDN 스위치#3으로 전달한 LLDP 패킷을 SDN 스위치#2를 통해 다시 전달받았으므로, 현재 SDN 스위치#3의 1번 포트와 SDN 스위치#2의 2번 포트가 서로 연결된 것으로 확인할 수 있다. 이후, 포트 상태 메시지가 수신될 때마다, SDN 제어장치(100)는 LLDP 패킷을 이용하여 SDN 스위치들 사이의 연결정보를 파악할 수 있다. Finally, as illustrated in Fig. 7, the SDN control device (100) can confirm that port 1 of SDN switch #3 and port 2 of SDN switch #2 are currently connected to each other since the LLDP packet transmitted to SDN switch #3 is retransmitted through SDN switch #2. Thereafter, whenever a port status message is received, the SDN control device (100) can identify connection information between SDN switches using the LLDP packet.

이와 같이, SDN 제어장치(100)는 LLDP 패킷을 이용하여 SDN 스위치들 사이의 연결정보를 파악하고, 이를 이용하여 토폴로지 맵을 작성할 수 있다. 각 SDN 스위치들은 연결된 단말장치(1)를 ARP(Address Resolution Protocol) 메시지로 검출할 수 있으며, 해당 SDN 스위치의 DPID, 포트번호 등과 함께 SDN 제어장치(100)에 송신할 수 있다. 따라서, SDN 제어장치(100)는 토폴로지 맵에 단말장치(1)의 정보 등을 반영하여 토폴로지 맵을 업데이트할 수 있다. In this way, the SDN control device (100) can identify connection information between SDN switches using LLDP packets and create a topology map using this. Each SDN switch can detect a connected terminal device (1) using an ARP (Address Resolution Protocol) message and transmit it to the SDN control device (100) along with the DPID, port number, etc. of the corresponding SDN switch. Accordingly, the SDN control device (100) can update the topology map by reflecting information about the terminal device (1), etc., in the topology map.

한편, SDN 제어장치(100)는 SDN 스위치에 연결된 단말장치(1)들에 대한 정보를 패킷이 전달될 때마다 갱신하여, 토폴로지 맵의 단말장치(1) 정보를 최신화할 수 있다. 예를 들어, 도8에 도시한 바와 같이, 단말장치#1이 단말장치#2와 통신을 하기 위해 데이터 패킷을 보낸다고 가정할 때, SDN 제어장치(100)는 해당 패킷의 헤더에 포함된 소스 IP(10.0.0.1), 소스 MAC 주소(a)를 기준으로 호스트 정보를 갱신할 수 있다.Meanwhile, the SDN control device (100) can update the terminal device (1) information of the topology map by updating the information about the terminal devices (1) connected to the SDN switch whenever a packet is transmitted. For example, as shown in Fig. 8, when it is assumed that the terminal device #1 sends a data packet to communicate with the terminal device #2, the SDN control device (100) can update the host information based on the source IP (10.0.0.1) and source MAC address (a) included in the header of the corresponding packet.

이후, 단말장치#1은 단말장치#2와 통신을 위하여 데이터 패킷을 SDN 스위치#1로 전달할 수 있다. 도9(a)에 도시한 바와 같이, SDN 스위치#1에는 단말장치#1로부터 들어온 패킷의 처리를 위한 플로우 정책이 설정되어 있지 않으므로, 해당 패킷을 패킷-인 메시지로 SDN 제어장치(100)로 전달할 수 있다. SDN 제어장치(100)는, 도9(b)에 도시한 바와 같이, 해당 패킷의 헤더에 포함된 소스 IP와 소스 MAC 주소를 기준으로 SDN 스위치#1에 연결된 단말장치 정보를 갱신하여 저장할 수 있다. 즉, 토폴로지 맵 상에 해당 단말장치#1의 IP 주소와 MAC 주소가 업데이트되어 반영될 수 있다. Thereafter, terminal device #1 can transmit a data packet to SDN switch #1 for communication with terminal device #2. As illustrated in Fig. 9(a), since SDN switch #1 does not have a flow policy set for processing a packet received from terminal device #1, the packet can be transmitted to SDN control device (100) as a packet-in message. As illustrated in Fig. 9(b), SDN control device (100) can update and store terminal device information connected to SDN switch #1 based on the source IP and source MAC addresses included in the header of the packet. In other words, the IP address and MAC address of the terminal device #1 can be updated and reflected on the topology map.

이후, 도10(a)에 도시한 바와 같이, SDN 제어장치(100)는 전달받은 패킷을 이용하여, 해당 패킷을 단말장치#2로 전송하기 위한 경로를 추출하고, 해당 경로에 포함되는 SDN 스위치#1, SDN 스위치#2 및 SDN 스위치#3의 포트를 명시하여 패킷의 전달을 위한 플로우 정책을 각각 등록할 수 있다.Thereafter, as illustrated in Fig. 10(a), the SDN control device (100) can extract a path for transmitting the received packet to terminal device #2 using the received packet, and register a flow policy for transmitting the packet by specifying the ports of SDN switch #1, SDN switch #2, and SDN switch #3 included in the path.

즉, 도10(b)에 도시한 바와 같이, 단말장치#1의 패킷은 각각의 SDN 스위치들에 등록된 플로우 정책에 따라 단말장치#2로 전달될 수 있다. 여기서, SDN 제어장치(100)는 하위 연결된 SDN 스위치들의 연결정보와, SDN 스위치에 연결된 단말장치(1)의 정보를 조합하여 토폴로지 맵을 구성하는 것이 가능하다. 다만, 이는 SDN 제어장치(100)가 SDN 스위치로부터 LLDP 패킷, 패킷-인 메시지, 패킷-아웃 메시지 등을 송, 수신받을 수 있어야 가능한 것이므로, SDN 스위치 사이에 레거시 스위치 등 다른 일반 스위치가 연결되는 경우에는, 생성되는 토폴로지 맵의 정확도는 떨어질 수 있다.That is, as illustrated in Fig. 10(b), the packet of terminal device #1 can be transmitted to terminal device #2 according to the flow policy registered in each SDN switch. Here, the SDN control device (100) can configure a topology map by combining the connection information of the lower-connected SDN switches and the information of the terminal device (1) connected to the SDN switch. However, since this is possible only when the SDN control device (100) can send and receive LLDP packets, packet-in messages, packet-out messages, etc. from the SDN switch, if other general switches such as legacy switches are connected between the SDN switches, the accuracy of the generated topology map may decrease.

예를 들어, 도11(a)에 도시한 바와 같이, SDN 스위치#1과 SDN 스위치#2 사이에 일반 L2 스위치가 연결되는 경우가 있을 수 있다. 여기서, SDN 스위치#1과 SDN 스위치#2는 각각 SDN 제어장치(100)와 연결되어 있으나, 일반 L2 스위치는 SDN 제어장치(100)와는 연결되어 있지 않은 상태에 해당한다. 즉, 일반 L2 스위치는 SDN 프로토콜을 지원하지 않으므로, SDN 제어장치(100)와의 연결이 불가능하다.For example, as illustrated in Fig. 11(a), there may be a case where a general L2 switch is connected between SDN switch #1 and SDN switch #2. Here, SDN switch #1 and SDN switch #2 are each connected to the SDN control device (100), but the general L2 switch is not connected to the SDN control device (100). That is, since the general L2 switch does not support the SDN protocol, connection with the SDN control device (100) is impossible.

도11(b)에 도시한 바와 같이, SDN 스위치#2의 1번 포트의 정보는 일반 L2 스위치와 연결되면서 다운에서 업으로 변경될 수 있으며, SDN 스위치#2는 포트 상태 메시지를 생성하여 1번 포트의 변경된 정보를 SDN 제어장치(100)로 전달할 수 있다. 이 경우, 도12(a)에 도시한 바와 같이, SDN 제어장치(100)는 LLDP 패킷을 생성하여 패킷-아웃 메시지에 포함시킬 수 있으며, 패킷-아웃 메시지를 SDN 스위치#2에 전송하여 SDN 스위치#2의 1번 포트를 통하여 LLDP 패킷을 전달하도록 할 수 있다.As illustrated in Fig. 11(b), information on port 1 of SDN switch #2 can be changed from down to up when connected to a general L2 switch, and SDN switch #2 can generate a port status message to transmit the changed information on port 1 to the SDN control device (100). In this case, as illustrated in Fig. 12(a), the SDN control device (100) can generate an LLDP packet and include it in a packet-out message, and transmit the packet-out message to SDN switch #2 to transmit the LLDP packet through port 1 of SDN switch #2.

이후, 도12(b)에 도시한 바와 같이, 패킷-아웃 메시지를 수신한 SDN 스위치#2는 LLDP 패킷을 SDN 스위치#2의 1번 포트를 통해 일반 L2 스위치로 전달하지만, 일반 L2 스위치는 연결되지 않은 SDN 제어장치(100)로 LLDP 패킷을 전송할 수 없으며, 이에 대한 처리도 불가하므로 LLDP 패킷을 폐기할 수 있다. 즉, 도13에 도시한 바와 같이, SDN 제어장치(100)는 SDN 스위치#1의 1번 포트에 다른 장치 등이 연결되어 있다는 것은 알 수 있으나, 어떤 장치가 연결되어있는지는 모르는 상태가 될 수 있다. Thereafter, as illustrated in FIG. 12(b), the SDN switch #2, which has received the packet-out message, transmits the LLDP packet to the general L2 switch through port 1 of the SDN switch #2. However, the general L2 switch cannot transmit the LLDP packet to the unconnected SDN control device (100), and cannot process it, so the LLDP packet may be discarded. That is, as illustrated in FIG. 13, the SDN control device (100) may know that another device is connected to port 1 of the SDN switch #1, but may not know which device is connected.

SDN 제어장치(100)는 동일한 방식으로, 일반 L2 스위치와 연결되는 SDN 스위치#1의 1번 포트를 통해 LLDP 패킷을 일반 L2 스위치로 전송할 수 있으나, 이 경우에도 일반 L2 스위치는 LLDP 패킷을 처리하지 못하고 폐기할 수 있다. 따라서, 도14에 도시한 바와 같이, SDN 제어장치(100)는 SDN 스위치#1의 1번 포트에도 다른 장치가 연결되었다는 것은 알 수 있으나, 어떤 장치가 연결되었는지는 모르는 상태가 될 수 있다.The SDN control device (100) can transmit an LLDP packet to a general L2 switch through port 1 of the SDN switch #1, which is connected to the general L2 switch, in the same manner, but even in this case, the general L2 switch may not process the LLDP packet and may discard it. Accordingly, as illustrated in Fig. 14, the SDN control device (100) may be in a state where it can know that another device is connected to port 1 of the SDN switch #1, but does not know which device is connected.

이와 같이, 실제 네트워크는 2개의 SDN 스위치 사이에 하나의 일반L2 스위치가 징검다리처럼 연결된 연결구조를 가지는 것이나, SDN 제어장치(100)가 인식한 토폴로지 맵은 각 SDN 스위치에 미지의 장치가 별도로 각각 연결된 형태로 생성될 수 있다. 즉, 잘못된 네트워크 토폴로지 맵이 구성되는 것이다. 이러한 토폴로지 맵의 오류는, SDN 스위치와 연결되는 일반 네트워크 장비들이 많거나, SDN 기반 네트워크의 복잡도가 높을수록, 더 심해질 수 있다. 토폴로지 맵의 오류가 발생하는 경우, SDN 제어장치(100)를 통해 실제 네트워크 장비 사이의 정확한 연결정보를 확인할 수 없으므로, 네트워크 관리자 입장에서는 고객별로 이용하는 네트워크 경로 정보 파악이 어렵게 된다. 또한, 네트워크 상에 장애가 발생하는 경우, 정확하게 어떤 장비에 장애가 발생한 것인지 위치 파악이 어렵게 된다. In this way, the actual network has a connection structure in which one general L2 switch is connected like a stepping stone between two SDN switches, but the topology map recognized by the SDN control device (100) may be generated in a form in which an unknown device is separately connected to each SDN switch. In other words, an incorrect network topology map is configured. Such an error in the topology map may become more severe as the number of general network devices connected to the SDN switch increases or the complexity of the SDN-based network increases. If an error in the topology map occurs, the accurate connection information between the actual network devices cannot be confirmed through the SDN control device (100), so it becomes difficult for the network manager to identify the network path information used by each customer. In addition, if a failure occurs in the network, it becomes difficult to identify the exact location of which device has the failure.

한편, 본 발명의 일 실시예에 의한 SDN 제어장치(100)에 의하면, SDN 스위치 사이에 레거시 스위치 등이 포함되는 경우에도, 정확한 토폴로지 맵을 생성하는 것이 가능하다. 즉, 별도의 외부 장치 설치 등이 없이도 SDN 제어장치(100)를 이용하여 레거시 스위치 등을 포함하는 토폴로지 맵을 생성하는 것이 가능하므로, 네트워크 장애 발생시 신속한 위치 파악 등이 가능하다. 이하, 도15를 참조하여 본 발명의 일 실시예에 의한 SDN 제어장치를 설명한다.Meanwhile, according to the SDN control device (100) according to one embodiment of the present invention, even when legacy switches, etc. are included between SDN switches, it is possible to generate an accurate topology map. That is, since it is possible to generate a topology map including legacy switches, etc. using the SDN control device (100) without installing a separate external device, etc., it is possible to quickly identify the location, etc. when a network failure occurs. Hereinafter, the SDN control device according to one embodiment of the present invention will be described with reference to FIG. 15.

도15는 본 발명의 일 실시예에 의한 SDN 제어장치를 나타내는 블록도이다.Figure 15 is a block diagram showing an SDN control device according to one embodiment of the present invention.

도15를 참조하면 본 발명의 일 실시예에 의한 SDN 제어장치(100)는, 송수신부(110), LD 태그 생성부(120), 제어부(130), 정책설정부(140) 및 업데이트부(150)를 포함할 수 있다. Referring to FIG. 15, an SDN control device (100) according to one embodiment of the present invention may include a transmission/reception unit (110), an LD tag generation unit (120), a control unit (130), a policy setting unit (140), and an update unit (150).

송수신부(110)는 SDN 제어장치(100)에 연결된 SDN 스위치(S1, S2)들과 메시지를 송수신할 수 있다. 예를 들어, SDN 스위치(S1, S2)는 자신의 포트에 새로운 연결이 생기면, 포트 상태 메시지를 SDN 제어장치(100)로 전송할 수 있다. 즉, SDN 스위치(S1, S2)는 자신의 포트에 새로운 연결이 생기면, 포트의 정보를 다운에서 업으로 변경시킬 수 있으며, SDN 스위치는 포트 상태 메시지를 생성하여 변경된 포트 상태 정보를 SDN 제어장치(100)로 전송할 수 있다. 이때, SDN 제어장치(100)는 송수신부(110)를 통하여 SDN 스위치(S1, S2)가 전송하는 포트 상태 정보를 수신할 수 있다. 이외에도, 송수신부(110)는 각각의 SDN 스위치(S1, S2)들의 상태정보, 패킷-인 메시지을 수신하고, 패킷-아웃 메시지을 송신하는 등 다양한 메시지들을 송수신할 수 있다.The transceiver (110) can transmit and receive messages with the SDN switches (S1, S2) connected to the SDN control device (100). For example, when a new connection is created in its port, the SDN switch (S1, S2) can transmit a port status message to the SDN control device (100). That is, when a new connection is created in its port, the SDN switch (S1, S2) can change the information of the port from down to up, and the SDN switch can generate a port status message and transmit the changed port status information to the SDN control device (100). At this time, the SDN control device (100) can receive the port status information transmitted by the SDN switches (S1, S2) through the transceiver (110). In addition, the transceiver (110) can transmit and receive various messages, such as receiving status information of each SDN switch (S1, S2), packet-in messages, and transmitting packet-out messages.

LD 태그 생성부(120)는 제1 SDN 스위치(S1)로부터 포트 상태 메시지를 수신하면, 각각의 홉(hop)에서의 연결정보를 누적하여 저장하는 LD(Link Discovery) 태그(Tag)를 포함하는 LD 패킷을 생성할 수 있다. 즉, 종단 SDN 스위치 사이에, SDN와 호환되지 않는 레거시 스위치 등 일반 네트워크 장치가 존재하는 경우에는, 해당 일반 네트워크 장치의 연결정보를 파악하기 위하여, 별도의 LD 태그를 포함하는 LD 패킷을 생성하여 배포할 수 있다. 이때, LD 패킷은 브로드캐스팅(broadcasting) 방식으로 전송되도록 설정될 수 있다. When the LD tag generation unit (120) receives a port status message from the first SDN switch (S1), it can generate an LD packet including an LD (Link Discovery) tag that accumulates and stores connection information at each hop. That is, when a general network device such as a legacy switch that is not compatible with SDN exists between the terminal SDN switches, an LD packet including a separate LD tag can be generated and distributed in order to identify the connection information of the general network device. At this time, the LD packet can be set to be transmitted in a broadcasting manner.

여기서, LD 패킷은 일반 이더넷 프레임(Ethernet frame) 구조에, LD 태그를 더 포함하는 프레임 구조로 생성할 수 있다. 도16(a)는 표준에 따른 이더넷 프레임 구조이고, 도16(b)는 LD 패킷의 프레임 구조이다. 즉, 도16(b)를 참조하면, 표준 이더넷 프레임 구조의 소스 MAC 주소(Source MAC Address) 필드와 이더넷타입(Ethernet Type) 필드 사이에 4 바이트 크기의 LD 태그(LD TAG)를 추가하는 방식으로 LD 패킷의 프레임 구조를 정의할 수 있다.Here, the LD packet can be generated as a frame structure that further includes an LD tag in a general Ethernet frame structure. Fig. 16(a) is an Ethernet frame structure according to the standard, and Fig. 16(b) is a frame structure of an LD packet. That is, referring to Fig. 16(b), the frame structure of the LD packet can be defined by adding an LD tag of 4 bytes between the Source MAC Address field and the Ethernet Type field of the standard Ethernet frame structure.

여기서, LD 태그에는 LD 패킷의 프레임이 전달되는 홉의 개수를 세는 홉 카운트(Hop Count) 필드, 전달가능한 최대 홉의 개수인 최대 홉 카운트(Idle Count) 필드 및 각 홉을 지나면서 각 홉에 해당되는 스위치의 식별정보(DPID)와 포트정보를 리스트 형식으로 누적 저장하는 연결정보(Port_Data) 필드를 포함할 수 있다. Here, the LD tag may include a Hop Count field that counts the number of hops through which the frame of the LD packet is transmitted, a Maximum Hop Count field that is the maximum number of hops that can be transmitted, and a Connection Information field that accumulates and stores switch identification information (DPID) and port information corresponding to each hop in a list format as each hop is passed.

도17을 참조하면, 초기상태의 LD 태그는 홉 카운트 필드가 0이고, 최대 홉 카운트 필드는 3이며, 연결정보 필드에는 입력값이 없을 수 있다. 이후 초기상태의 LD 태그가 포함된 LD 패킷을, DPID가 a, b, c, d, e인 각각의 스위치 5개를 지나도록 할 수 있다. 여기서, 각각의 스위치들은 SDN 스위치 또는 레거시 스위치일 수 있다. 이때, LD 태그 내 필드값을 살펴보면, 먼저 도17(a)에 도시한 바와 같이, 스위치#1에서 스위치#2로 전달될 때 LD 태그의 홉 카운트는 하나의 스위치를 지났으므로 0에서 1이 증가한 1이 될 수 있다. 또한, 최대 홉 카운트는 최대 지날 수 있는 홉의 개수에서 1개가 이미 지났으므로 3에서 1이 감소한 2가 될 수 있다. 연결정보의 경우, 스위치#1을 첫번째 홉인 hop1으로 간주하면, 스위치#1의 입력포트는 없으므로 입력포트를 0으로 설정하고, LD 패킷은 스위치#1의 1번 포트를 통해 스위치#2로 전달되므로 출력포트는 1번으로 설정할 수 있다. 또한, 스위치#1의 DPID는 "a"이므로, 이를 리스트 형태로 HOP1: {0, 1, a}로 나타낼 수 있다.Referring to Fig. 17, the LD tag in the initial state has a hop count field of 0, a maximum hop count field of 3, and a connection information field may not have an input value. Thereafter, an LD packet including the LD tag in the initial state can be made to pass through each of five switches whose DPIDs are a, b, c, d, and e. Here, each of the switches can be an SDN switch or a legacy switch. At this time, looking at the field values in the LD tag, first, as shown in Fig. 17(a), when the LD tag is transmitted from switch #1 to switch #2, the hop count of the LD tag can be 1, which is increased by 1 from 0, because it passed through one switch. In addition, the maximum hop count can be 2, which is decreased by 1 from 3, because one of the maximum number of hops that can be passed has already passed. For connection information, if switch #1 is considered as the first hop, hop1, there is no input port for switch #1, so the input port can be set to 0, and since the LD packet is transmitted to switch #2 through port 1 of switch #1, the output port can be set to 1. Also, since the DPID of switch #1 is "a", this can be expressed in list form as HOP1: {0, 1, a}.

다음으로, 도17(b)에 도시한 바와 같이, LD 패킷은 스위치#2에서 스위치#3으로 전달되었으므로, LD 태그의 홉 카운트는 1에서 1이 증가한 2가 되고, 최대 홉 카운트는 최대 지날 수 있는 홉의 개수에서 1개의 홉이 더 지나갔으므로, 2에서 1이 감소한 1이 된다. 연결정보의 경우, 스위치#2를 하나의 홉인 Hop2로 간주하면, 스위치#2의 2번포트를 통해 프레임이 내부로 유입되었으므로 입력포트는 2번, LD 패킷은 3번 포트를 통해 스위치#3으로 전달되므로 출력포트는 3번, 스위치#2의 DPID는 "b"이므로, 이를 리스트 형태로 나타낸 HOP2:{2, 3, b}가 추가될 수 있다. Next, as illustrated in Fig. 17(b), since the LD packet was transmitted from Switch #2 to Switch #3, the hop count of the LD tag increases by 1 from 1 to 2, and the maximum hop count decreases by 1 from 2 to 1 because one more hop has passed from the maximum number of hops that can pass. In the case of connection information, if Switch #2 is regarded as one hop, Hop2, the frame entered through Port 2 of Switch #2, so the input port is 2, the LD packet was transmitted to Switch #3 through Port 3, so the output port is 3, and since the DPID of Switch #2 is "b", HOP2:{2, 3, b}, which is expressed in the form of a list, can be added.

마지막으로, 도17(c)에 도시한 바와 같이, LD 패킷이 스위치#3에서 스위치#4로 전달되므로, LD 태그의 홉 카운트는 2에서 1이 증가한 3이 되고, 최대 홉 카운트는 최대 지날 수 있는 홉의 개수에서 1개의 홉이 더 지난 것이므로, 1에서 1이 감소한 0이 된다. 또한, 연결정보의 경우, 스위치#3을 하나의 홉인 Hop3로 간주하면, 스위치#3의 1번포트를 통해 프레임이 내부로 유입되므로 입력포트는 1번, LD 패킷은 3번 포트를 통해 스위치#4로 전달되므로 출력포트는 3번에 해당하며, 스위치#3의 DPIP는 "c"이므로, 이를 리스트 형태로 나타낸 HOP3:{1, 3, c}가 추가될 수 있다. 이후로는, 최대 홉 카운트가 0이므로 더 이상 LD 패킷이 전달되지 않고 중단될 수 있다.Finally, as illustrated in Fig. 17(c), since the LD packet is transmitted from Switch #3 to Switch #4, the hop count of the LD tag increases from 2 to 3, and the maximum hop count decreases from 1 to 0, since it is one more hop than the maximum number of hops that can be passed. In addition, in the case of connection information, if Switch #3 is regarded as one hop, Hop3, the frame enters through Port 1 of Switch #3, so the input port is Port 1, and the LD packet is transmitted to Switch #4 through Port 3, so the output port is Port 3. Since the DPIP of Switch #3 is "c", HOP3:{1, 3, c}, which is expressed in the form of a list, can be added. After this, since the maximum hop count is 0, LD packets are no longer transmitted and can be stopped.

실시예에 따라서는, 홉 카운트와 최대 홉 카운트를 1 바이트의 크기로 설정할 수 있으며, 이 경우 최대 256개의 홉을 설정할 수 있다. 즉, 최대 256개의 스위치에 대한 정보를 수집하는 것이 가능하다. 여기서, 네트워크 관리자는 설정된 크기(예를 들어, 1바이트) 내에서 임의의 값으로 최대 홉 카운트를 설정할 수 있다. 즉, 최대 홉 카운트를 이용하여 LD 패킷의 용량이 지나치게 커지는 것을 방지할 수 있다. 다만, 이에 한정되는 것은 아니며, 홉 카운트와 최대 홉 카운트를 1바이트 이외의 다른 크기로 설정할 수 있으며, 최대 홉 카운트를 설정하지 않는 실시예도 가능하다. In some embodiments, the hop count and the maximum hop count can be set to a size of 1 byte, in which case a maximum of 256 hops can be set. That is, it is possible to collect information for a maximum of 256 switches. Here, the network manager can set the maximum hop count to an arbitrary value within the set size (for example, 1 byte). That is, the maximum hop count can be used to prevent the capacity of the LD packet from becoming excessively large. However, the present invention is not limited thereto, and the hop count and the maximum hop count can be set to a size other than 1 byte, and an embodiment in which the maximum hop count is not set is also possible.

제어부(130)는 LD 패킷을 패킷-아웃 메시지에 포함하여 제1 SDN 스위치(S1)로 전송하도록 제어할 수 있다. 즉, 제어부(130)는 정책설정부(140)에게 '이더넷 타입(EtherType)이 LD 프레임(0x88EE)인 패킷은 PORT_NO에 정의된 포트로 내보내라’는 LD 플로우 정책을 생성하도록 요청할 수 있다. 이 경우 정책설정부(140)는 LD 플로우 정책을 생성하고, 대응하는 플로우 정책설정 메시지를 제1 SDN 스위치에 전달할 수 있다. 해당 플로우 정책 설정 메시지를 수신한 제1 SDN 스위치(S1)는, LD 플로우 정책을 플로우 테이블에 등록할 수 있다. 여기서, LD 프레임의 이더넷 타입(0x88EE)은 예시로, 표준 이더넷 타입들과 중복되지 않는 임의의 값으로 정의하여 활용할 수 있다.The control unit (130) can control to transmit the LD packet to the first SDN switch (S1) by including it in the packet-out message. That is, the control unit (130) can request the policy setting unit (140) to create an LD flow policy that states, 'Send packets whose Ethernet type (EtherType) is LD frame (0x88EE) to the port defined in PORT_NO.' In this case, the policy setting unit (140) can create an LD flow policy and transmit a corresponding flow policy setting message to the first SDN switch. The first SDN switch (S1) that receives the corresponding flow policy setting message can register the LD flow policy in the flow table. Here, the Ethernet type (0x88EE) of the LD frame is an example, and can be defined and utilized as an arbitrary value that does not overlap with standard Ethernet types.

또한, 제어부(130)는 LD 태그 생성부(120)가 LD 프레임 내 목적지 MAC 주소를 브로드캐스트 주소(FF:FF:FF:FF:FF:FF)로 설정하도록 할 수 있으며, 소스 MAC주소는 SDN 제어장치(100)의 MAC 주소로 설정하도록 할 수 있다. 나아가, 이더넷 타입(EtherType)은 LD 프레임(0x88EE)을 나타내는 것으로 설정하고, LD 태그의 홉 카운트는 0, 최대 홉 카운트는 1~256 중에서 네트워크 관리자 등이 설정한 임의값으로 설정하도록 할 수 있다. 마지막으로 LD 태그의 연결정보는 해당 LD 태그가 포함된 데이터 프레임이 최초로 제1 SDN 스위치(S1)에 1차적으로 이미 전달되기 때문에 이를 Hop1로 간주하고, 입력포트는 없으므로 0, 출력포트는 PORT_NO, 그리고 포트 상태 메시지를 송신했던 SDN 스위치의 DPID 값을 리스트 형태로 Hop1:{0, PORT_NO, DPID} 형태로 정의할 수 있다. 이후, 제어부(130)는 해당 LD 태그가 포함된 LD 패킷을 패킷-아웃 메시지를 통하여, 제1 SDN 스위치(S1)에 전달하도록 할 수 있다.In addition, the control unit (130) can cause the LD tag generation unit (120) to set the destination MAC address in the LD frame to a broadcast address (FF:FF:FF:FF:FF:FF), and can cause the source MAC address to be set to the MAC address of the SDN control device (100). Furthermore, the Ethernet type (EtherType) can be set to indicate an LD frame (0x88EE), the hop count of the LD tag can be set to 0, and the maximum hop count can be set to an arbitrary value set by a network manager or the like among 1 to 256. Finally, the connection information of the LD tag can be defined as Hop1 because the data frame including the corresponding LD tag is already primarily transmitted to the first SDN switch (S1), and there is no input port, so it can be 0, the output port can be PORT_NO, and the DPID value of the SDN switch that transmitted the port status message can be defined in the form of a list in the form of Hop1:{0, PORT_NO, DPID}. Thereafter, the control unit (130) can transmit the LD packet including the corresponding LD tag to the first SDN switch (S1) via a packet-out message.

패킷-아웃 메시지를 통해 LD 패킷을 전달받은 제1 SDN 스위치(S1)는, 해당 LD 패킷을 LD 플로우 정책에 따라 PORT_NO로 정의된 포트번호로 포워딩할 수 있다. 여기서, LD 패킷은 목적지 MAC주소가 브로드캐스트 주소로 지정되어있으므로, 제1 SDN 스위치(S1)의 각 포트와 연결된 모든 네트워크 장치에 LD 패킷이 전송될 수 있다. 다만, 입력 포트에 연결되는 네트워크 장치(여기서는 SDN 제어장치(100))는 제외될 수 있다. The first SDN switch (S1) that receives the LD packet through the packet-out message can forward the LD packet to the port number defined as PORT_NO according to the LD flow policy. Here, since the destination MAC address of the LD packet is designated as a broadcast address, the LD packet can be transmitted to all network devices connected to each port of the first SDN switch (S1). However, the network device connected to the input port (here, the SDN control device (100)) can be excluded.

최종적으로, LD 태그의 최대 홉 카운트 내에, 제2 SDN 스위치(S2)로 해당 LD 패킷이 전달되면, 이를 수신한 제2 SDN 스위치(S2)는 LD 패킷을 패킷-인 메시지에 포함시켜 SDN 제어장치(100)로 전달할 수 있다.Finally, when the LD packet is transmitted to the second SDN switch (S2) within the maximum hop count of the LD tag, the second SDN switch (S2) that receives it can include the LD packet in a packet-in message and transmit it to the SDN control device (100).

다만, 해당 LD 패킷을 최초로 전달했던 제1 SDN 스위치(S1)에 등록된 LD 플로우 정책의 유지시간 내에 SDN 제어장치(100)로 패킷-인 메시지로 전달된 LD 패킷이 없다면, 제어부(130)는 LD 태그 생성부로 LD 패킷을 재생성할 것을 요청하고, LD 패킷을 전송하도록 할 수 있다. 이후에도 다시 유지시간 내에 LD 패킷이 전송되지 않으면, 제1 SDN 스위치(S1)와 연결되는 제2 SDN 스위치(S2)가 없는 것으로 판단하여 토폴로지 맵 구성을 종료할 수 있다. 즉, 종단 SDN 스위치 사이에 위치하는 일반 스위치 정보를 파악하기 위해 LD 패킷을 전송하는 것이므로, 종단에 SDN 스위치가 없는 경우는 고려하지 않을 수 있다. 따라서, LD 패킷이 유지시간 내에 입력되지 않으면, 제어부(130)는 토폴로지 맵구성을 종료할 수 있다.However, if there is no LD packet transmitted as a packet-in message to the SDN control device (100) within the maintenance time of the LD flow policy registered in the first SDN switch (S1) that initially transmitted the LD packet, the control unit (130) may request the LD tag generation unit to regenerate the LD packet and transmit the LD packet. If the LD packet is not transmitted again within the maintenance time thereafter, it may be determined that there is no second SDN switch (S2) connected to the first SDN switch (S1), and the topology map configuration may be terminated. That is, since the LD packet is transmitted to identify general switch information located between the end SDN switches, the case where there is no SDN switch at the end may not be considered. Therefore, if the LD packet is not input within the maintenance time, the control unit (130) may terminate the topology map configuration.

정책설정부(140)는 다양한 플로우 정책 등을 생성할 수 있으며, 플로우 정책을 각각의 SDN 스위치에 적용하기 위한 플로우 정책설정 메시지를 SDN 스위치로 전송할 수 있다. 구체적으로, 제어부(130)의 요청에 따라, LD 패킷을 제1 SDN 스위치(S1)와 연결된 네트워크 스위치들로 전송하기 위한 LD 플로우 정책을 생성하여, 제1 SDN 스위치(S1)에 설정할 수 있다. 즉, 정책설정부(140)는 포트 상태 메시지로부터, 제1 SDN 스위치(S1)에 포함된 포트 중에서 포트의 상태가 업으로 변화된 포트를 판별하고, 포트를 통해 네트워크 스위치로 LD 패킷을 전송하도록 LD 플로우 정책을 생성할 수 있다. The policy setting unit (140) can create various flow policies, etc., and can transmit a flow policy setting message to the SDN switch for applying the flow policy to each SDN switch. Specifically, at the request of the control unit (130), an LD flow policy for transmitting an LD packet to network switches connected to the first SDN switch (S1) can be created and set in the first SDN switch (S1). That is, the policy setting unit (140) can determine a port whose port status has changed to up among the ports included in the first SDN switch (S1) from the port status message, and can create an LD flow policy to transmit an LD packet to the network switch through the port.

또한, LD 패킷의 처리를 위한 패킷-인 메시지가 LD 플로우 정책의 유지시간 내에 수신되지 않는 경우, 정책설정부(140)는 제어부(130)의 요청에 따라 LD 플로우 정책을 재설정하여 LD 패킷을 다시 전송하도록 할 수 있다.In addition, if a packet-in message for processing an LD packet is not received within the maintenance time of the LD flow policy, the policy setting unit (140) can reset the LD flow policy at the request of the control unit (130) to retransmit the LD packet.

업데이트부(150)는 제2 SDN 스위치(S2)로부터 LD 패킷의 처리를 위한 패킷-인 메시지를 수신하면, LD 패킷에 포함된 LD 태그로부터, 제1 SDN 스위치(S1)와 제2 SDN 스위치(S2) 사이에 연결된 적어도 1개 이상의 네트워크 스위치들의 연결정보를 추출하고, 연결정보를 기반으로 네트워크 토폴로지를 업데이트할 수 있다. When the update unit (150) receives a packet-in message for processing an LD packet from the second SDN switch (S2), it extracts connection information of at least one network switch connected between the first SDN switch (S1) and the second SDN switch (S2) from the LD tag included in the LD packet, and updates the network topology based on the connection information.

구체적으로, 업데이트부(150)는 연결정보에 포함된 각각의 네트워크 스위치들을 기준 데이터베이스(D)에서 검색할 수 있으며, 검색된 네트워크 스위치들을 SDN 스위치로 업데이트하여, 토폴로지 맵 테이블을 생성할 수 있다. 이후, 업데이트부(150)는 토폴로지 맵 테이블을 기반으로, 제1 SDN 스위치와 제2 SDN 스위치 사이에 포함되는 네트워크 스위치들의 네트워크 토폴로지를 생성할 수 있다. 즉, 연결정보로부터 각각의 홉에서 연결된 네트워크 스위치들의 식별정보(DPID) 및 포트정보(입력포트, 출력포트)를 추출하고, 홉의 순서에 따라 순차적으로 네트워크 스위치들의 입력포트와 출력포트를 연결하여, 제1 SDN 스위치와 제2 SDN 스위치 사이의 네트워크 토폴로지를 추가할 수 있다.Specifically, the update unit (150) can search for each network switch included in the connection information in the reference database (D), and update the searched network switches as SDN switches to create a topology map table. Thereafter, the update unit (150) can create a network topology of the network switches included between the first SDN switch and the second SDN switch based on the topology map table. That is, the identification information (DPID) and port information (input port, output port) of the network switches connected at each hop can be extracted from the connection information, and the input ports and output ports of the network switches can be sequentially connected in the order of the hops to add the network topology between the first SDN switch and the second SDN switch.

도18을 참조하면, 업데이트부(150)는 수신한 LD 패킷 내 LD 태그(LD tag)에 포함된 홉 순서에 따라, DPID, 입력포트, 출력포트를 추출할 수 있다. 이후, LD 태그(LD tag)에 포함된 DPID를 기준 데이터베이스(D)에서 검색하여, 대응하는 SDN 스위치를 추출할 수 있다. 추출한 SDN 스위치를 토폴로지 맵 테이블(T) 내 업데이트하여, LD 태그(LD tag) 내에 포함된 DPID 중에서 SDN 스위치들을 특정할 수 있다. 이후, 업데이트된 토폴로지 맵 테이블(T)을 이용하여 제1 SDN 스위치와 제2 SDN 스위치 사이의 토폴로지 맵을 구성할 수 있다. Referring to FIG. 18, the update unit (150) can extract DPID, input port, and output port according to the hop order included in the LD tag in the received LD packet. Thereafter, the DPID included in the LD tag can be searched in the reference database (D) to extract the corresponding SDN switch. The extracted SDN switch can be updated in the topology map table (T) to specify the SDN switches among the DPIDs included in the LD tag. Thereafter, the topology map between the first SDN switch and the second SDN switch can be configured using the updated topology map table (T).

도19(a)를 참조하면, 업데이트부(150)는 홉 순서 1번부터 토폴로지 맵을 구성할 수 있으며, 우선 첫번째 홉이었던 SDN 스위치#2와 해당 스위치의 출력포트인 1번포트를 그려줄 수 있다. 여기서, 입력포트는 0번이므로 제외한다.Referring to Fig. 19(a), the update unit (150) can configure a topology map starting from hop order 1, and first, can draw SDN switch #2, which was the first hop, and port 1, which is the output port of the switch. Here, the input port is 0, so it is excluded.

이후, 도19(b)와 같이, 두번째 홉이었던 일반 스위치와, 해당 일반 스위치의 입력포트 2번과, 출력포트인 1번을 각각 그릴 수 있다. 그리고 첫번째 홉인 SDN 스위치#2의 출력포트 1번을 지나 일반 스위치의 입력포트인 2번을 통해 LD 태그가 지났으므로 두 포트가 서로 연결되었다고 판단하고 해당 포트 사이를 연결해 그릴 수 있다. Afterwards, as in Fig. 19(b), the second hop, the general switch, the input port 2 of the general switch, and the output port 1 can be drawn respectively. Then, since the LD tag passes through the output port 1 of the first hop, SDN switch #2, and the input port 2 of the general switch, it can be determined that the two ports are connected to each other, and the ports can be connected and drawn.

마지막으로, 도19(c)와 같이, 세번째 홉이었던 SDN 스위치#1과 해당 SDN 스위치#1의 입력포트 1번을 그려줄 수 있다. 다만, 출력포트는 0번이므로 제외할 수 있다. 그리고 두번째 홉인 일반 스위치의 출력포트 1번을 지나, SDN 스위치#1의 입력포트인 1번을 통해 LD 패킷이 지났으므로, 두 포트가 서로 연결되었다고 판단하고, 해당 포트 사이를 연결해 그려주면 최종 토폴로지 맵의 구성을 완료하는 것이 가능하다.Finally, as in Fig. 19(c), the third hop, SDN switch #1, and input port #1 of the SDN switch #1 can be drawn. However, the output port is 0, so it can be excluded. And since the LD packet passed through output port #1 of the general switch, which is the second hop, and input port #1 of SDN switch #1, it is determined that the two ports are connected to each other, and by drawing a connection between the ports, it is possible to complete the configuration of the final topology map.

추가적으로, 실시예에 따라서는, 제어부(130)가 포트 상태 메시지를 수신하면, 제1 SDN 스위치에 연결된 네트워크 스위치가 SDN 스위치인지 여부를 먼저 판별하도록 하는 것도 가능하다. 즉, 제1 SDN 스위치에 연결된 네트워크 스위치가 SDN 스위치인지 여부를 먼저 판별하고, SDN 스위치가 아닌 경우에 한하여 LD 패킷을 송부하도록 할 수 있다.Additionally, depending on the embodiment, when the control unit (130) receives a port status message, it is also possible to first determine whether the network switch connected to the first SDN switch is an SDN switch. That is, it is possible to first determine whether the network switch connected to the first SDN switch is an SDN switch, and to transmit an LD packet only if it is not an SDN switch.

구체적으로, 제어부(130)는 수신한 포트 상태 메시지에 포함된 포트번호를 PORT_NO라는 변수에 저장하고 포트 상태정보는 PORT_STATE 변수에 저장할 수 있다. 이후, PORT_STATE 값이 다운인 경우에는, 네트워크 장애, 접촉불량, 오류 등으로 인한 잘못된 정보라고 판단하고 토폴로지 정보에서 제외시킬 수 있다. 반면에, PORT_STATE 값이 업인 경우에는 해당 포트에 새로운 네트워크 스위치가 연결되었다고 판단할 수 있다.Specifically, the control unit (130) can store the port number included in the received port status message in a variable called PORT_NO and store the port status information in a variable called PORT_STATE. Thereafter, if the PORT_STATE value is down, it can be determined that it is incorrect information due to a network failure, poor contact, or error, and can be excluded from the topology information. On the other hand, if the PORT_STATE value is up, it can be determined that a new network switch is connected to the corresponding port.

다만, 해당 포트에 연결된 네트워크 스위치가 SDN 스위치인지 일반 스위치 장비 인지 알 수 없으므로, 제어부(130)는 일단은 SDN 스위치라고 판단하고 LLDP 패킷을 생성하여 해당 포트로 내보내도록 할 수 있다. 이를 위하여, "이더넷 타입(EtherType)이 '0x88CC'인 LLDP 패킷은 PORT_NO에 정의된 포트로 내보내라’는 LLDP 플로우 정책을 정의하도록, 정책설정부(130)에게 요청할 수 있다. 이 경우, 정책설정부(130)는 플로우 정책설정 메시지를 제1 SDN 스위치에 전달할 수 있다. 해당 플로우 정책설정 메시지를 수신한 제1 SDN 스위치는 플로우 정책설정 메시지에 포함된 LLDP 플로우 정책을 플로우 테이블에 등록할 수 있다. 해당 플로우 테이블에 등록된 LLDP 플로우 정책은 유지시간(예를 들어, 10초)을 가질 수 있으며, 해당 유지시간 내 LLDP 플로우 정책에서 설정된 데이터 패킷이 입력되지 않으면, 해당 플로우 정책은 자동 폐기될 수 있다. However, since it is not possible to know whether the network switch connected to the port is an SDN switch or a general switch device, the control unit (130) may first determine that it is an SDN switch and generate an LLDP packet to be sent out to the port. To this end, the policy setting unit (130) may be requested to define an LLDP flow policy that states, "Send LLDP packets with an Ethernet type (EtherType) of '0x88CC' to the port defined in PORT_NO." In this case, the policy setting unit (130) may transmit a flow policy setting message to the first SDN switch. The first SDN switch that receives the flow policy setting message may register the LLDP flow policy included in the flow policy setting message in the flow table. The LLDP flow policy registered in the flow table may have a retention time (for example, 10 seconds), and if no data packet set in the LLDP flow policy is input within the retention time, the flow policy may be automatically discarded.

여기서, SDN 제어장치(100)는 LLDP 패킷을 포함한 패킷-아웃 메시지를 제1 SDN 스위치에 전달하고, 제1 SDN 스위치는 패킷-아웃 메시지에 포함된 LLDP 패킷을 플로우 정책에 설정된 포트번호로 포워딩할 수 있다. 이때, 전달된 LLDP 패킷이 유지시간 내 SDN 제어장치(100)로 전달된다면, LLDP 패킷을 전달받은 스위치는 SDN 스위치에 해당하므로, LLDP 패킷을 기반으로 네트워크 토폴로지 맵을 구성하도록 할 수 있다. Here, the SDN control device (100) transmits a packet-out message including an LLDP packet to the first SDN switch, and the first SDN switch can forward the LLDP packet included in the packet-out message to a port number set in the flow policy. At this time, if the transmitted LLDP packet is transmitted to the SDN control device (100) within the retention time, the switch that received the LLDP packet corresponds to an SDN switch, and therefore, a network topology map can be configured based on the LLDP packet.

반면에, SDN 제어장치(100)가 유지시간 내 LLDP 패킷을 수신하지 못하는 경우에는, 해당 스위치를 SDN 스위치가 아닌 일반 스위치라고 판단할 수 있으며, 그에 따라, LD 패킷을 전송하도록 제어할 수 있다. 여기서, LD 패킷을 전송하여 토폴로지 맵을 구성하는 내용은 앞서 설명하였으므로, 구체적인 설명은 생략한다.On the other hand, if the SDN control device (100) does not receive an LLDP packet within the maintenance time, the switch can be determined to be a general switch, not an SDN switch, and accordingly, the LD packet can be controlled to be transmitted. Here, since the content of transmitting the LD packet to configure the topology map has been described above, a detailed description is omitted.

도20 내지 도26는 본 발명의 일 실시예에 의한 SDN 제어장치의 LD 태그를 이용한 연결정보 수집을 나타내는 개략도이다. 도20을 참조하면, SDN 제어장치(100)에 2개의 SDN 스위치가 각각 연결되고, 2개의 SDN 스위치 사이에 1개의 일반 스위치가 연결되어 있을 수 있다. 여기서, SDN 제어장치(100)의 MAC 주소는 "sdns", SDN 스위치#1의 DPID는 "a", SDN 스위치#2의 DPID는 "b"일 수 있다. Figures 20 to 26 are schematic diagrams showing connection information collection using an LD tag of an SDN control device according to one embodiment of the present invention. Referring to Figure 20, two SDN switches may be connected to each of the SDN control devices (100), and one general switch may be connected between the two SDN switches. Here, the MAC address of the SDN control device (100) may be "sdns", the DPID of the SDN switch #1 may be "a", and the DPID of the SDN switch #2 may be "b".

도21(a)에 도시한 바와 같이, 일반 스위치와 SDN 스위치#2가 연결되면 SDN 스위치#2의 1번포트가 다운에서 업으로 변경될 수 있다. 이 경우, SDN 스위치#2는 포트 상태 메시지를 생성하여 해당 포트 상태 정보를 SDN 제어장치(100)에게 전달할 수 있다. 여기서, 제어부(130)는 해당 포트 상태 메시지를 통해 SDN 스위치#2의 1번 포트의 상태가 업으로 변경되었음을 확인할 수 있으며, PORT_NO=1, PORT_STATE=UP으로 변수값들을 정의할 수 있다.As illustrated in Fig. 21(a), when a general switch and SDN switch #2 are connected, port 1 of SDN switch #2 can be changed from down to up. In this case, SDN switch #2 can generate a port status message and transmit the corresponding port status information to the SDN control device (100). Here, the control unit (130) can confirm that the status of port 1 of SDN switch #2 has been changed to up through the port status message, and can define variable values as PORT_NO=1, PORT_STATE=UP.

제어부(130)는 먼저 연결된 일반 스위치를 SDN 스위치로 가정하고, 정책설정부(140)에게 LLDP 패킷을 생성하여 SDN 스위치#2의 1번 포트로 전송하기 위한 플로우 정책을 생성하도록 요청할 수 있다. 즉, 정책설정부(140)는 “이더넷 타입(EtherType)이 ‘0x88CC’인 LLDP 패킷은 PORT_NO에 정의된 1번포트로 내보내라’는 플로우 정책을 생성하고, 대응하는 플로우 정책 설정 메시지를 SDN 스위치#1에 전송할 수 있다. 이 경우, 도21(b)에 도시한 바와 같이, SDN 스위치#2는 플로우 정책 설정 메시지에 포함된 플로우 정책을, 플로우 테이블에 등록할 수 있다. 여기서, 플로우 테이블에 등록된 플로우 정책은 10초의 유지시간이 설정될 수 있으며, 해당 시간 내 플로우 정책이 적용된 데이터 패킷이 전송되지 않으면, 해당 플로우 정책은 자동 폐기될 수 있다. The control unit (130) may first assume that the connected general switch is an SDN switch, and request the policy setting unit (140) to create a flow policy to generate an LLDP packet and transmit it to port 1 of the SDN switch #2. That is, the policy setting unit (140) may create a flow policy that says, “Send the LLDP packet whose Ethernet type (EtherType) is ‘0x88CC’ to port 1 defined in PORT_NO,” and transmit a corresponding flow policy setting message to the SDN switch #1. In this case, as illustrated in Fig. 21(b), the SDN switch #2 may register the flow policy included in the flow policy setting message in the flow table. Here, the flow policy registered in the flow table may have a retention time of 10 seconds set, and if a data packet to which the flow policy is applied is not transmitted within the corresponding time, the corresponding flow policy may be automatically discarded.

이후, 도22(a)와 같이, 제어부(130)는 LLDP 패킷을 포함한 패킷-아웃 메시지를 SDN 스위치#2에 전달할 수 있으며, 도22(b)와 같이 SDN 스위치#2는 LLDP 패킷을 플로우 정책에 따라 1번포트로 포워딩할 수 있다. 다만, LLDP 패킷을 수신한 일반 스위치는 SDN을 지원하지 않으며, SDN 제어장치(100)와도 연결되어 있지 않으므로, 해당 LLDP 패킷을 처리하지 못하고 폐기하게 된다. 이 경우, SDN 스위치#2에 설정된 LLDP 플로우 정책도 유지시간이 경과하여 폐기될 수 있다.Thereafter, as shown in Fig. 22(a), the control unit (130) can forward a packet-out message including an LLDP packet to SDN switch #2, and as shown in Fig. 22(b), SDN switch #2 can forward the LLDP packet to port 1 according to the flow policy. However, the general switch that received the LLDP packet does not support SDN and is not connected to the SDN control device (100), so it cannot process the LLDP packet and discards it. In this case, the LLDP flow policy set in SDN switch #2 may also be discarded when the maintenance time expires.

즉, LLDP 플로우 정책의 유지시간 내, SDN 제어장치(100)가 LLDP 패킷을 수신하지 못하는 경우, 제어부(130)는 해당 스위치를 SDN 스위치가 아닌 일반 스위치라고 판단할 수 있다. 따라서, 제어부(130)는 LD 태그 생성부(120)에게 LD 태그의 생성을 요청할 수 있다. 현재 기존 SDN 스위치#2에 등록된 LLDP 플로우 정책은 유지시간이 만료되어 삭제된 상태이다. That is, if the SDN control device (100) does not receive an LLDP packet within the maintenance time of the LLDP flow policy, the control unit (130) can determine that the switch is a general switch, not an SDN switch. Therefore, the control unit (130) can request the LD tag generation unit (120) to generate an LD tag. Currently, the LLDP flow policy registered in the existing SDN switch #2 has been deleted because the maintenance time has expired.

그러므로, 제어부(130)는 ‘이더넷 타입(EtherType)이 LD 프레임(0x88EE)인 패킷은 PORT_NO에 정의된 1번 포트로 내보내라’는 새로운 LD 플로우 정책을 생성할 것을 정책설정부(140)에게 요청할 수 있다. 도23에 도시한 바와 같이, 정책설정부(140)는 LD 플로우 정책에 대응하는 플로우 정책설정 메시지를 SDN 스위치#2에 전달할 수 있다. 해당 플로우 정책설정 메시지를 수신한 SDN 스위치#2는 플로우 정책설정 메시지에 포함된 LD 플로우 정책을 플로우 테이블에 등록할 수 있다.Therefore, the control unit (130) can request the policy setting unit (140) to create a new LD flow policy that states, ‘Send packets whose Ethernet type (EtherType) is LD frame (0x88EE) to port 1 defined in PORT_NO.’ As illustrated in Fig. 23, the policy setting unit (140) can transmit a flow policy setting message corresponding to the LD flow policy to SDN switch #2. SDN switch #2, which receives the flow policy setting message, can register the LD flow policy included in the flow policy setting message in the flow table.

LD 태그 생성부(120)는, 도24와 같이 목적지 MAC 주소가 브로드캐스트 주소(FF:FF:FF:FF:FF:FF)이고, 소스 MAC주소는 SDN 제어장치(100), 이더넷 타입(EtherType)은 LD 프레임을 나타내는 (0x88EE), LD 태그의 홉 카운트(HC) 필드는 0, 최대 홉 카운트(IC) 필드는 최대 5대까지 확인할 수 있도록 5로 설정할 수 있다. 또한, 연결정보가 포함되는 LD 태그의 포트데이터(PD) 필드 값은, 해당 LD 태그가 포함된 LD 패킷이 SDN 스위치#2에 1차적으로 전달되므로, 이를 Hop1로 간주할 수 있다. 이때, 입력포트는 없으므로 0, 출력포트는 PORT_NO로 정의된 1번, 그리고 포트 상태 메시지를 송신했던 SDN 스위치#2의 DPID 값인 b을 리스트 형태인 ‘Hop1:{0, 1, b}’ 형태로 생성할 수 있다. 이후, 해당 LD 태그가 포함된 LD 패킷을 패킷-아웃 메시지에 포함시켜 SDN 스위치#2에 전달할 수 있다. 이 경우, LD 패킷을 패킷-아웃 메시지를 통해 전달받은 SDN 스위치#2는 해당 LD 패킷을 플로우 정책에 따라 1번포트로 포워딩할 수 있다.The LD tag generation unit (120) can set the destination MAC address as a broadcast address (FF:FF:FF:FF:FF:FF), the source MAC address as an SDN control device (100), the Ethernet type (EtherType) as (0x88EE) indicating an LD frame, the hop count (HC) field of the LD tag as 0, and the maximum hop count (IC) field as 5 so that up to 5 devices can be identified, as shown in FIG. 24. In addition, the port data (PD) field value of the LD tag including connection information can be regarded as Hop1 since the LD packet including the corresponding LD tag is primarily transmitted to SDN switch #2. At this time, since there is no input port, 0, the output port is defined as PORT_NO as 1, and the DPID value b of SDN switch #2 that transmitted the port status message can be generated in the form of a list, ‘Hop1:{0, 1, b}’. Afterwards, the LD packet containing the LD tag can be included in a packet-out message and forwarded to SDN switch #2. In this case, SDN switch #2, which receives the LD packet through the packet-out message, can forward the LD packet to port 1 according to the flow policy.

이후, 도25를 참조하면, SDN 스위치#2의 2번 포트를 통해 LD 패킷을 전달받은 일반 스위치는, LD 패킷의 목적지 MAC주소가 브로드캐스트 주소(FF:FF:FF:FF:FF:FF)임을 확인하고, 이를 입력포트인 2번 포트를 제외한 전체 포트인 1번포트로 브로드캐스트할 수 있다. 브로드캐스트된 LD 패킷은 일반 스위치에서 SDN 스위치#1로 전달되므로, LD 태그의 홉 카운트(HC) 필드값은 0에서 1이 증가한 값 1이 되고, 최대 홉 카운트(IC) 필드 값은 최대 지날 수 있는 홉에서 일반 스위치를 하나 지났으므로 5에서 1이 감소한 값 4가 될 수 있다. 그리고 포트데이터(PD)의 필드 값은 LD 패킷이 이미 지나간 일반 스위치를 하나의 홉인 Hop2로 간주할 수 있다. 일반 스위치의 2번포트를 통해 LD 패킷이 내부로 유입되었으므로, 입력포트는 2번, 해당 LD 패킷이 1번 포트를 통해 SDN 스위치#1로 전달되므로 출력포트는 1번, 그리고 일반 스위치의 경우 DPID가 없으므로 ‘0’으로 정의할 수 있으며, 이를 리스트 형태로 나타낸 Hop2 : {2,1,0}을 추가할 수 있다. Afterwards, referring to FIG. 25, the general switch that receives the LD packet through port 2 of SDN switch #2 verifies that the destination MAC address of the LD packet is a broadcast address (FF:FF:FF:FF:FF:FF), and can broadcast it to port 1, which is all ports except port 2, which is an input port. Since the broadcasted LD packet is forwarded from the general switch to SDN switch #1, the hop count (HC) field value of the LD tag increases from 0 to 1, and the maximum hop count (IC) field value can decrease from 5 to 4, which is one hop that passed through the general switch out of the maximum number of hops that can be passed. In addition, the field value of port data (PD) can regard the general switch through which the LD packet has already passed as one hop, Hop2. Since the LD packet entered the inside through port 2 of the general switch, the input port is 2, the LD packet is transmitted to SDN switch #1 through port 1, so the output port is 1, and since there is no DPID in the case of a general switch, it can be defined as ‘0’, and Hop2: {2,1,0}, which is expressed in list form, can be added.

이후, 도26을 참조하면, LD 패킷을 전달받은 SDN 스위치#1은 리액티브 모드로 동작하므로, LD 패킷의 목적지 MAC 주소가 브로드캐스트 주소라도, 일단 해당 LD 패킷을 처리하기 위한 플로우 정책이 없으므로, 이를 패킷-인 메시지에 포함시켜 SDN 제어장치(100)로 전송할 수 있다. 이때 패킷-인 메시지에 포함되는 LD 태그에는, LD 패킷이 일반 스위치에서 SDN 스위치#1로 전달되었으므로 LD 태그의 홉 카운트(HC) 필드값은 2에서 1이 증가한 값 3이 되고, SDN 스위치#1을 지났으므로 최대 홉 카운트(IC) 필드값은 4에서 1이 감소한 값 3이 된다. 그리고 포트데이터(PD) 필드값은 LD 패킷이 이미 지나간 SDN 스위치#1을 세번째 홉인 Hop3로 간주했을 때, SDN스 위치#1의 1번포트를 통해 LD 패킷이 내부로 유입되었으므로, 입력포트는 1번, 외부로 LD 패킷이 포워딩되지 않으므로 출력 포트는 0번, SDN 스위치#1의 DPID 값이 ‘a’ 이므로 이를 리스트 형태로 나타낸 Hop3 : {1,0,a}이 추가될 수 있다. Thereafter, referring to FIG. 26, since the SDN switch #1 that received the LD packet operates in reactive mode, even if the destination MAC address of the LD packet is a broadcast address, since there is no flow policy for processing the LD packet, it can be included in a packet-in message and transmitted to the SDN control device (100). At this time, in the LD tag included in the packet-in message, since the LD packet was transmitted from a general switch to SDN switch #1, the hop count (HC) field value of the LD tag increases from 2 to 3, which is 1, and since it passed through SDN switch #1, the maximum hop count (IC) field value decreases from 4 to 3, which is 1. And the port data (PD) field value is considered as Hop3, which is the third hop, when the LD packet entered through port 1 of SDN switch #1, the input port is 1, the LD packet is not forwarded to the outside, so the output port is 0, and since the DPID value of SDN switch #1 is ‘a’, Hop3: {1,0,a}, which is expressed in list form, can be added.

여기서, LD 태그의 최대 홉 카운트의 필드값은 3이기 ‹š문에, 경로상에 위치하는 3개의 스위치들에 대한 연결정보를 더 모으는 것이 가능하다. 그러나, 포트데이터(PD) 필드에 저장된 SDN 스위치#1의 출력포트가 0으로 지정되어 경로상에 LD 패킷을 전달할 다른 스위치가 없으므로, LD 패킷의 전달과정은 SDN 스위치#1까지만 진행되고 종료될 수 있다.Here, since the field value of the maximum hop count of the LD tag is 3, it is possible to collect more connection information for the three switches located on the path. However, since the output port of SDN switch #1 stored in the port data (PD) field is set to 0 and there is no other switch to forward the LD packet on the path, the forwarding process of the LD packet can proceed only up to SDN switch #1 and then end.

이후, 업데이트부(150)는, 수신한 LD 패킷의 LD 태그에 포함된 홉 순서, DPID, 입력포트, 출력포트 등의 순으로 추출할 수 있다. 또한, 기준 데이터베이스(D)를 검색하여 추출한 LD 태그 중에서, 동일한 DPID를 가지는 SDN 스위치가 존재하면, 이를 호출하여 업데이트할 수 있다. 이를 통하여, 토폴로지 맵 테이블을 구성할 수 있다.Thereafter, the update unit (150) can extract the hop order, DPID, input port, output port, etc. included in the LD tag of the received LD packet in that order. In addition, if there is an SDN switch with the same DPID among the LD tags extracted by searching the reference database (D), it can be called and updated. Through this, a topology map table can be configured.

토폴로지 맵 테이블이 생성되면, 이를 기반으로 토폴로지 맵을 생성하는 것이 가능하다. 구체적으로, 홉 순서 1번부터 토폴로지 맵을 구성할 수 있으며, 첫번째 홉이었던 SDN스위치#2와 해당 스위치의 출력포트인 1번포트를 그려줄 수 있다. 여기서, 입력포트는 0번이므로 제외한다.Once the topology map table is created, it is possible to create a topology map based on it. Specifically, a topology map can be configured starting from hop order 1, and the first hop, SDN switch #2, and the output port of the switch, port 1, can be drawn. Here, the input port is 0, so it is excluded.

이후, 두번째 홉이었던 일반 스위치와, 해당 일반 스위치의 입력포트 2번과, 출력포트인 1번을 각각 그릴 수 있다. 그리고 첫번째 홉인 SDN 스위치#2의 출력포트 1번을 지나 일반 스위치의 입력포트인 2번을 통해 LD 태그가 지났으므로 두 포트가 서로 연결되었다고 판단하고 해당 포트 사이를 연결해 그릴 수 있다. After that, you can draw the general switch which was the second hop, input port 2 of the general switch, and output port 1 respectively. Then, since the LD tag passed through output port 1 of the first hop, SDN switch #2, and input port 2 of the general switch, you can determine that the two ports are connected to each other and draw a connection between the ports.

마지막으로, 세번째 홉이었던 SDN 스위치#1과 해당 SDN 스위치#1의 입력포트 1번을 그려줄 수 있다. 다만, 출력포트는 0번이므로 제외할 수 있다. 그리고 두번째 홉인 일반 스위치의 출력포트 1번을 지나, SDN 스위치#1의 입력포트인 1번을 통해 LD 패킷이 지났으므로, 두 포트가 서로 연결되었다고 판단하고, 해당 포트 사이를 연결해 그려주면 최종 토폴로지 맵의 구성을 완료하는 것이 가능하다.Finally, we can draw the third hop, SDN Switch #1, and input port 1 of the SDN Switch #1. However, since the output port is 0, we can exclude it. And since the LD packet passed through output port 1 of the general switch, which is the second hop, and input port 1 of SDN Switch #1, we can determine that the two ports are connected to each other, and by drawing a connection between the ports, we can complete the configuration of the final topology map.

도27은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 환경(10)를 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.FIG. 27 is a block diagram illustrating a computing environment (10) suitable for use in exemplary embodiments. In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components other than those described below.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 사용자 계정이 공유되는 복수의 메신저 클라이언트 장치 사이의 메시지를 동기화하는 장치로, 복수의 메신저 클라이언트 장치 중 어느 하나일 수 있다.The illustrated computing environment (10) includes a computing device (12). In one embodiment, the computing device (12) is a device that synchronizes messages between a plurality of messenger client devices with which a user account is shared, and may be any one of the plurality of messenger client devices.

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.A computing device (12) includes at least one processor (14), a computer-readable storage medium (16), and a communication bus (18). The processor (14) may cause the computing device (12) to operate in accordance with the exemplary embodiments described above. For example, the processor (14) may execute one or more programs stored in the computer-readable storage medium (16). The one or more programs may include one or more computer-executable instructions, which, when executed by the processor (14), may be configured to cause the computing device (12) to perform operations in accordance with the exemplary embodiments.

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.A computer-readable storage medium (16) is configured to store computer-executable instructions or program code, program data, and/or other suitable forms of information. A program (20) stored in the computer-readable storage medium (16) includes a set of instructions executable by the processor (14). In one embodiment, the computer-readable storage medium (16) may be a memory (volatile memory such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, any other form of storage medium that can be accessed by the computing device (12) and capable of storing desired information, or a suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.A communication bus (18) interconnects various other components of the computing device (12), including the processor (14) and computer-readable storage media (16).

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.The computing device (12) may also include one or more input/output interfaces (22) that provide interfaces for one or more input/output devices (24) and one or more network communication interfaces (26). The input/output interfaces (22) and the network communication interfaces (26) are coupled to the communication bus (18). The input/output devices (24) may be coupled to other components of the computing device (12) via the input/output interfaces (22). Exemplary input/output devices (24) may include input devices such as a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or a touchscreen), a voice or sound input device, various types of sensor devices and/or photographing devices, and/or output devices such as a display device, a printer, speakers, and/or a network card. The exemplary input/output devices (24) may be included within the computing device (12) as a component that constitutes the computing device (12), or may be coupled to the computing device (12) as a separate device distinct from the computing device (12).

본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.The present invention is not limited to the above-described embodiments and the attached drawings. It will be apparent to those skilled in the art to which the present invention pertains that components according to the present invention can be substituted, modified, and changed within a scope that does not depart from the technical spirit of the present invention.

100: SDN 제어장치 110: 송수신부
120: LD 태그 생성부 130: 제어부
140: 정책설정부 150: 업데이트부
100: SDN control unit 110: Transmitter/receiver unit
120: LD tag generation section 130: Control section
140: Policy Setting Department 150: Update Department

Claims (20)

리액티브(Reactive) 패킷 처리방식이 적용된 소프트웨어 정의 네트워크(SDN: Software Defined Network) 환경에서, 네트워크 토폴로지(Network Topology)를 구축하는 SDN 제어장치에 있어서,
상기 SDN 제어장치에 연결된 SDN 스위치들과의 메시지를 송수신하는 송수신부;
제1 SDN 스위치로부터 포트 상태 메시지를 수신하면, 각각의 홉(hop)에서의 연결정보를 누적하여 저장하는 LD(Link Discovery) 태그(Tag)를 포함하는 LD 패킷을 생성하는 LD 태그 생성부;
상기 LD 패킷을 패킷-아웃 메시지에 포함하여 상기 제1 SDN 스위치로 전송하도록 제어하는 제어부; 및
제2 SDN 스위치로부터 상기 LD 패킷의 처리를 위한 패킷-인 메시지를 수신하면, 상기 LD 패킷에 포함된 상기 LD 태그로부터, 상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이에 연결된 적어도 1개 이상의 네트워크 스위치들의 연결정보를 추출하고, 상기 연결정보를 기반으로 네트워크 토폴로지를 업데이트하는 업데이트부를 포함하는 SDN 제어장치.
In a software-defined network (SDN) environment where reactive packet processing is applied, in an SDN control device that constructs a network topology,
A transceiver unit for transmitting and receiving messages with SDN switches connected to the above SDN control device;
An LD tag generation unit that generates an LD packet including an LD (Link Discovery) tag that accumulates and stores connection information at each hop when receiving a port status message from the first SDN switch;
A control unit that controls the above LD packet to be included in a packet-out message and transmitted to the first SDN switch; and
An SDN control device including an update unit that extracts connection information of at least one network switch connected between the first SDN switch and the second SDN switch from the LD tag included in the LD packet when receiving a packet-in message for processing the LD packet from the second SDN switch, and updates the network topology based on the connection information.
제1항에 있어서, 상기 LD 패킷은
상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이에서, 브로드캐스팅(broadcasting) 방식으로 전송되도록 설정되는 것인, SDN 제어장치.
In the first paragraph, the LD packet
An SDN control device, which is set to be transmitted in a broadcasting manner between the first SDN switch and the second SDN switch.
제1항에 있어서, 상기 LD 패킷은
이더넷 프레임(Ethernet Frame) 구조에 상기 LD 태그를 포함하는 필드를 더 포함하는 LD 프레임을 이용하여 생성한 것인, SDN 제어장치.
In the first paragraph, the LD packet
An SDN control device generated using an LD frame that further includes a field including the LD tag in the Ethernet Frame structure.
제1항에 있어서, 상기 LD 태그는
상기 LD 패킷이 전달되는 홉의 개수를 세는 홉 카운트(hop count) 필드와, 각각의 홉에서의 식별정보(DPID: Datapath Identification) 및 포트정보를 누적하여 저장하는 연결정보 필드를 포함하는 것인, SDN 제어장치.
In the first paragraph, the LD tag
An SDN control device including a hop count field that counts the number of hops through which the above LD packet is transmitted, and a connection information field that accumulates and stores identification information (DPID: Datapath Identification) and port information at each hop.
제4항에 있어서, 상기 LD 태그는
상기 LD 패킷이 전달가능한 최대 홉의 개수인 최대 홉 카운트(idle count)를 더 포함하는 것인, SDN 제어장치.
In the fourth paragraph, the LD tag
An SDN control device further comprising a maximum hop count (idle count), which is the maximum number of hops that the above LD packet can transmit.
제1항에 있어서,
상기 LD 패킷을 상기 제1 SDN 스위치와 연결된 네트워크 스위치로 전송하기 위한 LD 플로우 정책(flow rule)을 생성하여, 상기 제1 SDN 스위치에 설정하는 정책설정부를 더 포함하는 것인, SDN 제어장치.
In the first paragraph,
An SDN control device further comprising a policy setting unit that creates an LD flow policy (flow rule) for transmitting the LD packet to a network switch connected to the first SDN switch and sets it in the first SDN switch.
제6항에 있어서, 상기 정책설정부는
상기 포트 상태 메시지로부터, 상기 제1 SDN 스위치에 포함된 포트 중에서 상기 포트의 상태가 업(Up)으로 변화된 포트를 판별하고, 상기 포트를 통해 상기 네트워크 스위치로 상기 LD 패킷을 전송하도록 상기 LD 플로우 정책을 생성하는 것인, SDN 제어장치.
In Article 6, the policy setting department
An SDN control device that determines, from the above port status message, a port among the ports included in the first SDN switch whose status has changed to Up, and generates the LD flow policy to transmit the LD packet to the network switch through the port.
제7항에 있어서, 상기 제어부는
상기 LD 패킷의 처리를 위한 패킷-인 메시지가, 상기 LD 플로우 정책의 유지시간 내에 수신되지 않으면, 상기 정책설정부가 상기 LD 플로우 정책을 재설정하여 상기 LD 패킷을 다시 전송하도록 하는 것인, SDN 제어장치.
In the seventh paragraph, the control unit
An SDN control device, wherein, if a packet-in message for processing the LD packet is not received within the maintenance time of the LD flow policy, the policy setting unit resets the LD flow policy to retransmit the LD packet.
제1항에 있어서, 상기 업데이트부는
상기 연결정보로부터 각각의 홉에서 연결된 상기 네트워크 스위치들의 식별정보 및 포트정보를 추출하고, 상기 홉의 순서에 따라 순차적으로 상기 네트워크 스위치들의 입력포트와 출력포트를 연결하여, 상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이의 네트워크 토폴로지를 추가하는 것인, SDN 제어장치.
In the first paragraph, the update unit
An SDN control device that extracts identification information and port information of the network switches connected at each hop from the connection information, and sequentially connects input ports and output ports of the network switches in the order of the hops, thereby adding a network topology between the first SDN switch and the second SDN switch.
제9항에 있어서, 상기 업데이트부는
상기 연결정보에 포함된 각각의 네트워크 스위치들을, 상기 SDN 제어장치에 연결된 SDN 스위치들의 목록을 포함하는 기준 데이터베이스에서 검색하고, 상기 검색된 네트워크 스위치들을 상기 SDN 스위치로 업데이트하여, 토폴로지 맵 테이블을 생성하는 것인, SDN 제어장치.
In the 9th paragraph, the update unit
An SDN control device that searches for each network switch included in the above connection information in a reference database including a list of SDN switches connected to the SDN control device, and updates the searched network switches with the SDN switches to create a topology map table.
제10항에 있어서, 상기 업데이트부는
상기 토폴로지 맵 테이블을 기반으로, 상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이에 포함되는 상기 네트워크 스위치들의 네트워크 토폴로지를 생성하는 것인, SDN 제어장치.
In the 10th paragraph, the update unit
An SDN control device that generates a network topology of the network switches included between the first SDN switch and the second SDN switch based on the topology map table.
제1항에 있어서, 상기 제어부는
상기 포트 상태 메시지를 수신하면, 상기 제1 SDN 스위치에 연결된 네트워크 스위치가 SDN 스위치인지 여부를 판별하는 것인, SDN 제어장치.
In the first paragraph, the control unit
An SDN control device that, upon receiving the above port status message, determines whether a network switch connected to the first SDN switch is an SDN switch.
제12항에 있어서, 상기 제어부는
상기 네트워크 스위치를 상기 SDN 스위치로 가정하여, 상기 네트워크 스위치의 연결정보를 확인하기 위한 LLDP(Link Layer Discovery Protocol) 패킷을 패킷-아웃 메시지에 포함하여 상기 제1 SDN 스위치로 전송하도록 하는 것인, SDN 제어장치.
In the 12th paragraph, the control unit
An SDN control device that, assuming the above network switch to be the SDN switch, transmits an LLDP (Link Layer Discovery Protocol) packet for confirming connection information of the network switch to the first SDN switch by including it in a packet-out message.
제13항에 있어서, 상기 제어부는
상기 LLDP 패킷에 대응하는 패킷-인 메시지가 상기 네트워크 장치로부터 수신되지 않으면, 상기 네트워크 장치는 상기 SDN 스위치가 아닌 것으로 판별하는 것인, SDN 제어장치.
In the 13th paragraph, the control unit
An SDN control device, wherein if a packet-in message corresponding to the LLDP packet is not received from the network device, the network device is determined to be not the SDN switch.
제13항에 있어서, 상기 정책설정부는
상기 LLDP 패킷을 상기 네트워크 장치로 전송하기 위한 LLDP 플로우 정책을 상기 제1 SDN 스위치에 설정하는 것인, SDN 제어장치.
In Article 13, the policy setting department
An SDN control device that sets an LLDP flow policy for transmitting the LLDP packet to the network device on the first SDN switch.
제15항에 있어서, 상기 정책설정부는
상기 포트 상태 메시지로부터, 상기 제1 SDN 스위치에 포함된 포트 중에서 상기 포트의 상태가 업(Up)으로 변화된 포트를 판별하고, 상기 포트를 통해 상기 네트워크 스위치로 상기 LLDP 패킷을 전송하도록 상기 LLDP 플로우 정책을 생성하는 것인, SDN 제어장치.
In Article 15, the policy setting department
An SDN control device that determines, from the above port status message, a port among the ports included in the first SDN switch whose status has changed to Up, and generates the LLDP flow policy to transmit the LLDP packet to the network switch through the port.
제15항에 있어서, 상기 제어부는
상기 LLDP 플로우 정책의 유지시간 내에 상기 패킷-인 메시지가 수신되지 않으면, 상기 SDN 스위치가 아닌 것으로 판별하는 것인, SDN 제어장치.
In the 15th paragraph, the control unit
An SDN control device that determines that the packet-in message is not received within the maintenance time of the LLDP flow policy, and that the SDN switch is not the SDN switch.
프로세서를 포함하며, 리액티브(Reactive) 패킷 처리방식이 적용된 소프트웨어 정의 네트워크(SDN: Software Defined Network) 환경에서, 네트워크 토폴로지(Network Topology)를 구축하는 컴퓨팅 장치에 있어서,
상기 프로세서는
제1 SDN 스위치로부터 포트 상태 메시지를 수신하는 것;
상기 포트 상태 메시지에 대응하여, 각각의 홉(hop)에서의 연결정보를 누적하여 저장하는 LD(Link Discovery) 태그(Tag)를 포함하는 LD 패킷을 패킷-아웃 메시지에 포함하여, 상기 제1 SDN 스위치로 전송하는 것;
제2 SDN 스위치로부터 상기 LD 패킷의 처리를 위한 패킷-인 메시지를 수신하면, 상기 LD 패킷으로부터 상기 LD 태그를 추출하는 것; 및
상기 LD 태그로부터, 상기 제1 SDN 스위치와 상기 제2 SDN 스위치 사이에 연결된 적어도 1개 이상의 네트워크 스위치들의 연결정보를 추출하고, 상기 연결정보를 기반으로 네트워크 토폴로지를 업데이트하는 것을 포함하여 수행하는 것인, 컴퓨팅 장치.
In a computing device that includes a processor and constructs a network topology in a software defined network (SDN) environment with a reactive packet processing method applied,
The above processor
Receiving a port status message from the first SDN switch;
In response to the above port status message, a LD packet including an LD (Link Discovery) tag that accumulates and stores connection information at each hop is included in a packet-out message and transmitted to the first SDN switch;
When receiving a packet-in message for processing the LD packet from the second SDN switch, extracting the LD tag from the LD packet; and
A computing device, comprising: extracting connection information of at least one network switch connected between the first SDN switch and the second SDN switch from the above LD tag, and updating the network topology based on the connection information.
제1항에 있어서, 상기 프로세서는
상기 포트 상태 메시지를 수신하면, 상기 제1 SDN 스위치에 연결된 네트워크 스위치가 SDN 스위치인지 여부를 판별하는 것을 더 포함하여 수행하는 것인, 컴퓨팅 장치.
In the first paragraph, the processor
A computing device, further comprising: upon receiving the above port status message, determining whether a network switch connected to the first SDN switch is an SDN switch.
제12항에 있어서, 상기 SDN 스위치인지 여부를 판별하는 것은
상기 네트워크 스위치를 상기 SDN 스위치로 가정하고, 상기 네트워크 스위치의 연결정보를 확인하기 위한 LLDP(Link Layer Discovery Protocol) 패킷을 패킷-아웃 메시지에 포함하여, 상기 제1 SDN 스위치로 전송하는 것; 및
상기 LLDP 패킷에 대응하는 패킷-인 메시지가 상기 네트워크 장치로부터 수신되지 않으면, 상기 네트워크 장치는 상기 SDN 스위치가 아닌 것으로 판별하는 것을 더 포함하는 것인, 컴퓨팅 장치.

In the 12th paragraph, determining whether it is the SDN switch is
Assuming the above network switch as the SDN switch, including an LLDP (Link Layer Discovery Protocol) packet for checking the connection information of the network switch in a packet-out message and transmitting it to the first SDN switch; and
A computing device further comprising: determining that the network device is not the SDN switch if a packet-in message corresponding to the LLDP packet is not received from the network device.

KR1020230144378A 2023-10-26 2023-10-26 SDN controller device for generating network topology Pending KR20250060392A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230144378A KR20250060392A (en) 2023-10-26 2023-10-26 SDN controller device for generating network topology

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230144378A KR20250060392A (en) 2023-10-26 2023-10-26 SDN controller device for generating network topology

Publications (1)

Publication Number Publication Date
KR20250060392A true KR20250060392A (en) 2025-05-07

Family

ID=95709097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230144378A Pending KR20250060392A (en) 2023-10-26 2023-10-26 SDN controller device for generating network topology

Country Status (1)

Country Link
KR (1) KR20250060392A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170081422A (en) 2016-01-04 2017-07-12 아토리서치(주) Method and apparatus for recognizing and managing network resource

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170081422A (en) 2016-01-04 2017-07-12 아토리서치(주) Method and apparatus for recognizing and managing network resource

Similar Documents

Publication Publication Date Title
US9940153B2 (en) Method for generating configuration information, and network control unit
US20190230039A1 (en) Method and system for extracting in-tunnel flow data over a virtual network
KR101703088B1 (en) Aggregated routing method based on sdn and system thereof
US20180041429A1 (en) Network system and routing method
EP2843906B1 (en) Method, apparatus, and system for data transmission
CN103262472B (en) Computer system, controller, controller manager and communication routing analysis method
US6778540B1 (en) Facility for forwarding data from a network adapter to a router partition without internet protocol (ip) processing
JP2015503274A (en) System and method for mitigating congestion in a fat tree topology using dynamic allocation of virtual lanes
CN111614505B (en) Packet processing method and gateway device
US10122654B2 (en) Divided hierarchical network system based on software-defined networks
WO2020073908A1 (en) Method and device for sending routing information
JP6299745B2 (en) COMMUNICATION SYSTEM, CONTROL DEVICE, COMMUNICATION METHOD, AND PROGRAM
US11522792B2 (en) Method for discovering forwarding path and related device thereof
US9385951B2 (en) Apparatus and method for controlling packet transfer based on registered destination information
US20140310377A1 (en) Information processing method and information processing apparatus
KR101934908B1 (en) Method for controlling of pc power by aggregated routing based on sdn
US20150381775A1 (en) Communication system, communication method, control apparatus, control apparatus control method, and program
KR20250060392A (en) SDN controller device for generating network topology
US10931565B2 (en) Multi-VRF and multi-service insertion on edge gateway virtual machines
CN110830598B (en) Method and network equipment for establishing and transmitting interface address and alias in BGP (Border gateway protocol) session
KR20250060480A (en) Method for generating network topology by using SDN controller device and SDN switch connected thereto
CN118612015B (en) A centralized multifunctional VPC gateway data plane implementation method
US9749236B2 (en) Increased network scalability by router aware switches
KR101707073B1 (en) Error detection network system based on sdn
WO2024199223A1 (en) Method and apparatus for acquiring device access position

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20231026

PG1501 Laying open of application