KR102023901B1 - 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램 - Google Patents

소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102023901B1
KR102023901B1 KR1020180106280A KR20180106280A KR102023901B1 KR 102023901 B1 KR102023901 B1 KR 102023901B1 KR 1020180106280 A KR1020180106280 A KR 1020180106280A KR 20180106280 A KR20180106280 A KR 20180106280A KR 102023901 B1 KR102023901 B1 KR 102023901B1
Authority
KR
South Korea
Prior art keywords
switch
packet
tree
network
host
Prior art date
Application number
KR1020180106280A
Other languages
English (en)
Inventor
신규식
황인욱
손우진
박현우
송용주
Original Assignee
아토리서치(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아토리서치(주) filed Critical 아토리서치(주)
Priority to KR1020180106280A priority Critical patent/KR102023901B1/ko
Application granted granted Critical
Publication of KR102023901B1 publication Critical patent/KR102023901B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports

Abstract

본 발명은 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법에 대한 것으로, 컨트롤러에서, 임의의 스위치에 저장될 수 있는 최대 플로우 엔트리 개수 및 임의의 스위치에 물리적으로 연결될 수 있는 최대 호스트의 개수를 이용하여, 임의의 스위치에 연결되는 호스트의 패킷 처리를 보장하기 위해 확보되어야 하는 최소한의 플로우 엔트리 수 k를 계산하는 a 단계; 상기 컨트롤러에서, 네트워크에 연결된 호스트 수가 상기 k 개 이하인 경우, 각각의 스위치 별로 경로 트리를 구성하고, 상기 스위치별로 상기 경로 트리를 따라 패킷 경로를 설정하는 멀티 트리 기반 플로우 룰을 생성하는 b 단계; 상기 컨트롤러에서 상기 네트워크에 연결된 호스트 수가 상기 k 초과인 경우, 네트워크 전체에 대해 하나의 경로 트리를 구성하고, 상기 네트워크 전체에 대한 경로 트리를 따라 패킷 경로를 설정하는 싱글 트리 기반 플로우 룰을 생성하는 c단계를 포함하는 것을 특징으로 한다.

Description

소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램 {METHOD, APPARATUS AND COMPUTER PROGRAM FOR ROUTING PACKETS OF SOFTWARE DEFINED NETWORK}
본 발명은 네트워크를 관리하는 방법에 대한 것이다. 보다 구체적으로 본 발명은, 소프트웨어 정의 네트워크에서 자원을 최대한 활용하여 패킷의 경로를 설정하는 최적화된 플로우 룰을 작성하는 방법에 대한 것이다.
소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다는 장점을 갖는다.
SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN의 기본 구조라 볼 수 있다.
도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, 소프트웨어 정의 네트워크(Software Defined Network)는 컨트롤러 서버 (100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다.
컨트롤러 서버(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러 서버(100)는 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 응용 프로그램이 탑재된 형태로 구현될 수 있다.
네트워크 장비(200)는 컨트롤러 서버(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 네트워크 장비(200)의 예로는 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크의 스위치, 라우터 등이 있다.
소프트웨어 정의 네트워크에서 컨트롤러 서버(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우 (OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다.
오픈플로우 프로토콜을 따르면, 스위치(200)는 컨트롤 채널(Control Channel)을 통해 컨트롤러 서버(100)와 정보를 교환하고, 파이프라인(Pipeline) 프로세싱을 위한 하나 이상의 플로우 테이블(Flow table), 그룹 테이블, 미터 테이블 및/또는 패킷 전달을 위한 네트워크 인터페이스로 하나 이상의 포트를 가질 수 있다.
Open Networking Foundation, "OpenFlow Specification 1.3.0"
본 발명은 네트워크의 링크를 최대한 활용하면서 동시에 스위치에 최대한 많은 호스트를 등록할 수 있도록 최적화된 플로우 룰을 작성하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법은, 컨트롤러에서, 임의의 스위치에 저장될 수 있는 최대 플로우 엔트리 개수 및 임의의 스위치에 물리적으로 연결될 수 있는 최대 호스트의 개수를 이용하여, 임의의 스위치에 연결되는 호스트의 패킷 처리를 보장하기 위해 확보되어야 하는 최소한의 플로우 엔트리 수 k를 계산하는 a 단계; 상기 컨트롤러에서, 네트워크에 연결된 호스트 수가 상기 k 개 이하인 경우, 각각의 스위치 별로 경로 트리를 구성하고, 상기 스위치별로 상기 경로 트리를 따라 패킷 경로를 설정하는 멀티 트리 기반 플로우 룰을 생성하는 b 단계; 상기 컨트롤러에서 상기 네트워크에 연결된 호스트 수가 상기 k 초과인 경우, 네트워크 전체에 대해 하나의 경로 트리를 구성하고, 상기 네트워크 전체에 대한 경로 트리를 따라 패킷 경로를 설정하는 싱글 트리 기반 플로우 룰을 생성하는 c단계를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 네트워크의 링크를 최대한 활용하면서 동시에 스위치에 최대한 많은 호스트를 등록할 수 있도록 플로우 룰을 최적화할 수 있는 효과가 있다.
도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면
도 2는 네트워크 전체를 하나의 트리로 구성하고 싱글 트리 기반으로 플로우 룰을 생성하는 예시를 설명하기 위한 도면
도 3은 스위치별로 트리를 구성하여 멀티 트리 기반으로 플로우 룰을 생성하는 예시를 설명하기 위한 도면
도 4는 본 발명의 실시예에 따라 하이브리드 트리 기반의 플로우 룰을 생성하는 예시를 설명하기 위한 도면
본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다.
한편, 첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다.
본 발명의 명세서에서 “플로우 룰”의 용어는 해당 업계의 통상의 기술자 입장에서 소프트웨어 정의 네트워크에서 컨트롤러 서버가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다.
나아가 본 명세서에서 오픈플로우 스위치(200)는 오픈플로우 프로토콜만을 지원하는 스위치, 오픈플로우 프로토콜을 지원하는 가상 스위치, 오픈플로우 프로토콜을 지원하는 일반적인 L2 스위치를 포함하는 개념으로 이해될 수 있다.
소프트웨어 정의 네트워킹에서 패킷의 경로는 컨트롤러에서 계산된다. 컨트롤러는 네트워크의 물리적 토폴로지를 고려하여, 네트워크를 하나 이상의 링크와 노드를 포함하는 논리적 트리로 구성하고 이를 기반으로 패킷의 경로를 설정하는 플로우 룰을 생성할 수 있다.
예를 들어 컨트롤러는 네트워크 전체에 대해 하나의 경로 트리를 구성하고 이를 기반으로 패킷 경로를 설정할 수 있다. 또 다른 예로 컨트롤러는 스위치별로 각각의 경로 트리를 구성하고, 다수의 경로 트리를 기반으로 패킷 경로를 설정할 수도 있다.
도 2는 네트워크 전체에 대한 하나의 트리를 기반으로 패킷 경로를 설정하는 예시를 설명하기 위한 도면이다.
예를 들어, 임의의 네트워크의 물리적 토폴로지가 도 2a와 같은 경우를 고려할 수 있다. 도 2a에서 작은 숫자는 해당 스위치의 물리적인 포트 번호를 의미한다. 이와 같은 네트워크에서 컨트롤러는 네트워크의 패킷 경로를 설정하기 위해 도 2b와 같은 논리적인 트리를 네트워크 전체에 대해 구성할 수 있다.
도 2b의 경로 트리는 네트워크에서 발생할 수 있는 루핑 (looping)을 방지하기 위해 하나의 링크 (230)를 논리적으로 삭제한 것이다. 예를 들어 도 2a에서 제 1 호스트 (h1)에서 제 3 호스트 (h3)까지의 경로는 링크 220를 이용하거나 또는 링크 210 과 링크 230을 이용하는 것 중에 선택할 수 있기 때문에 실제로는 2개이지만, 루핑을 방지하기 위해, 도 2b와 같이 링크 230을 논리적으로 사용하지 않도록 하여 데이터는 링크 220으로만 다니도록 한 것이다.
컨트롤러는 도 2b와 같이 네트워크 전체에 대한 하나의 경로 트리를 구성하고 이를 기반으로 패킷 경로를 설정할 수 있다. 본 명세서에서, 네트워크 전체에 대한 하나의 트리를 기반으로 패킷 경로를 설정하는 플로우 룰은 싱글 트리 기반 플로우 룰로 설명한다.
싱글 트리 기반 플로우 룰은 하나의 논리적인 트리를 기반으로 네트워크 전체의 패킷 경로를 설정하게 된다. 예를 들어 제 1 호스트 내지 제 6 호스트의 맥 주소를 순차적으로 A, B, C, D, E, F 라고 가정하고, 도 2b의 트리를 기반으로 패킷 경로를 설정하면, 각각의 스위치에 적용되는 플로우 테이블은 아래의 표 1 내지 표 3의 예시를 참고할 수 있다.
표 1은 제 1 스위치 (S1), 표 2는 제 2 스위치 (S2), 표 3은 제 3스위치 (S3)에 적용된 플로우 테이블의 예시이다.
표 1 내지 표 3에서 각각의 스위치에 적용되는 플로우 테이블을 참고하면, 싱글 트리 기반 플로우 룰에서 스위치는 패킷의 목적지 맥주소가 해당 스위치에 직접 연결된 호스트의 맥주소와 일치하는지 우선적으로 확인하여, 해당 패킷은 상기 호스트에 연결된 포트로 포워딩하도록 설정될 수 있다.
나머지 경우, 즉, 목적지 맥주소가 해당 스위치에 직접 연결된 호스트의 맥주소와 일치하지 않은 패킷은 상기 패킷의 인포트 정보에 따라 다른 스위치에 연결된 포트로 포워딩하도록 설정될 수 있다.
Figure 112018088544305-pat00001
Figure 112018088544305-pat00002
Figure 112018088544305-pat00003
이와 같은 싱글 트리 기반 플로우 룰은 구현이 단순하고, 나아가 도착지가 스위치에 직접 연결된 호스트 맥주소와 일치하지 않는 패킷은 인포트 정보를 기반으로 다른 스위치로 포워드하도록 간단하게 처리할 수 있기 때문에 적은 수의 플로우 엔트리로 플로우 테이블을 생성할 수 있는 장점이 있다.
보다 구체적으로, 싱글 트리 기반 플로우 룰은 해당 스위치에 직접 연결된 호스트를 목적지로 하는 패킷을 해당 호스트로 바로 포워딩하도록 설정하는 제 1 플로우 룰 및 다른 패킷은 인포트 정보를 기반으로 다른 스위치로 포워드하도록 설정하는 제 2 플로우 룰로 구성되며, 각각의 스위치에 요구되는 최대 플로우 엔트리 수는 해당 스위치에 직접 연결된 호스트 수 + 물리적 포트의 수로 계산될 수 있다. 여기서 전자는 상기 제 1 플로우 룰을 위해 요구되는 플로우 엔트리의 수이며, 후자는 상기 제 2 플로우 룰을 위해 요구되는 플로우 엔트리의 수이다.
그런데 싱글 트리 기반 플로우 룰에서는 루핑을 방지하기 위해 일부 링크가 사용되지 않는다. (도 2b에서는 링크 230가 사용되지 않음) 즉, 싱글 트리 기반 플로우 룰에서는 네트워크의 전체 링크가 사용되지 않고 일부 링크만 사용되게 되므로 링크가 낭비되는 문제가 있다.
이를 해결하기 위해서 스위치별로 트리를 작성하고, 이에 따라 플로우 룰을 생성하는 방법을 고려할 수 있다.
도 3는 스위치별로 경로 트리를 구성하여, 스위치별 구성된 트리를 기반으로 패킷 경로를 설정하는 예시를 설명하기 위한 도면이다.
네트워크의 물리적 토폴로지가 도 2a와 같은 앞의 예에서, 컨트롤러는 해당 네트워크의 패킷 경로를 설정하기 위해 도 3a 내지 도 3c와 같은 논리적인 트리를 각각의 스위치 (즉, S1 내지 S3)에 대해 구성할 수 있다.
도 3a는 제 1 스위치 (S1)을 도착지로 하는 경로 트리, 도 3b는 제 2 스위치 (S2)을 도착지로 하는 경로 트리, 도 3c는 제 3 스위치 (S3)을 도착지로 하는 경로 트리를 도시하고 있다.
컨트롤러는 도 3a 내지 도 3c와 같이 스위치 별 경로 트리를 구성하고, 이를 기반으로 해당 스위치에 대한 패킷 경로를 설정할 수 있다. 본 명세서에서, 스위치별 작성된 트리를 기반으로 패킷 경로를 설정하는 플로우 룰은 멀티 트리 기반 플로우 룰로 설명한다.
멀티 트리 기반 플로우 룰은 스위치별로 작성된 논리적인 트리를 기반으로 해당 스위치로 유입된 패킷의 경로를 설정하는 것이다. 예를 들어 제 1 스위치 (S1)는 도 3a의 트리를 기반으로 설정되며, 제 2 스위치 (S2)는 도 3b의 트리를 기반으로 설정되며, 제 3 스위치 (S3)는 도 3c의 트리를 기반으로 설정될 수 있다. 각각의 스위치에 적용된 플로우 테이블은 아래의 표 4 내지 6의 예시를 참고할 수 있다.
표 4 내지 표 6에서, 제 1 스위치 내지 제 3 스위치에 적용되는 플로우 테이블을 참고하면, 멀티 트리 기반 플로우 룰에서 스위치는 패킷의 목적지 맥주소에 해당하는 호스트를 검색하여 패킷을 처리하게 된다.
즉, 멀티 트리 기반 플로우 룰을 따르면 스위치는 직접 연결된 호스트뿐만 아니라 전체 네트워크에 등록된 호스트의 맥주소를 확인하여 패킷을 포워딩하도록 설정되며, 모든 호스트의 맥주소를 기반으로 패킷을 처리하기 때문에 각 플로우 엔트리의 우선순위는 동일할 것이다.
보다 구체적으로, 멀티 트리 기반 플로우 룰에서 스위치는 패킷의 목적지 맥주소가 해당 스위치에 직접 연결된 호스트의 맥주소와 일치하면, 패킷을 해당 호스트에 연결된 포트로 포워딩하고, 패킷의 목적지 맥주소가 다른 호스트의 맥주소와 일치하면, 다른 호스트를 직접 연결하고 있는 다른 스위치까지 연결되는 경로의 포트로 포워딩하도록 설정될 수 있다.
Figure 112018088544305-pat00004
Figure 112018088544305-pat00005
Figure 112018088544305-pat00006
이와 같은 멀티 트리 기반 플로우 룰은 네트워크의 모든 링크를 최대로 활용할 수 있는 장점이 있다. 이를 따르면 네트워크의 전체 링크가 사용되기 때문에 링크를 효율적으로 사용할 수 있다.
그러나 멀티 트리 기반 플로우 룰에서 스위치는 네트워크에 등록된 모든 호스트의 맥주소를 기반으로 패킷을 처리하도록 설정되기 때문에, 모든 스위치에서 전체 호스트 수만큼의 플로우 엔트리가 요구된다.
그러나 스위치에 저장될 수 있는 플로우 엔트리 수는 한정되어 있기 때문에, 하나의 스위치라도 플로우 엔트리가 초과되면 네트워크에 호스트를 등록할 수 없어, 결과적으로 네트워크에 등록될 수 있는 호스트 수가 제한되는 결과가 발생할 것이다.
이를 해결하기 위해서, 본 발명의 실시예를 따르면, 네트워크에 등록된 호스트의 수가 임의의 범위 내인 경우, 네트워크의 대역폭을 최대한 사용하기 위하여 멀티 트리 기반 플로우 룰을 운영하고, 네트워크에 등록된 호스트의 수가 상기 범위를 벗어나는 경우, 싱글 트리 기반 플로우 룰을 운영하여 최대한 많은 호스트를 등록하는 최적화 방안을 고려할 수 있으며, 본 명세서에서 이를 하이브리드 트리 기반 플로우 룰로 설명한다.
보다 구체적으로 본 발명의 실시예를 따르는 컨트롤러는 하이브리드 트리 기반 플로우 룰 운영을 위한 호스트에 대한 최적화 범위 k를 설정할 수 있다.
보다 구체적으로, 본 발명의 실시예를 따르는 최적화 범위 k는 임의의 스위치에 저장될 수 있는 최대 플로우 엔트리 개수 L에서 임의의 스위치에 물리적으로 연결될 수 있는 최대 호스트의 개수 M 및 임의의 스위치가 보유하는 물리 포트의 개수 P를 뺀 값으로 설정될 수 있다.
이와 같은 최적화 범위 k는 임의의 스위치에 연결되는 호스트의 패킷 처리를 보장하기 위해 확보되어야 하는 최소한의 플로우 엔트리 수를 의미한다. 이를 따르면 M개의 호스트의 통신을 보장하면서 k개의 이하의 호스트에 대해서는 효율적으로 링크를 사용할 수 있다.
본 발명의 실시예를 따르면 네트워크에 등록된 호스트가 k 이하인 경우에는 멀티 트리 기반 플로우 룰에 플로우 엔트리를 할당하여 네트워크의 링크를 최대한 활용하고, k개를 초과하여 등록되는 호스트에 대해서는 싱글 트리 기반 플로우 룰로 패킷의 처리를 보장하도록 스위치가 설정될 수 있다.
보다 구체적으로 본 발명의 실시예를 따르는 컨트롤러는 네트워크에 연결된 호스트 수가 상기 k 개 이하이면 멀티 트리 기반 플로우 룰로 패킷의 경로를 설정하고, 네트워크에 연결된 호스트 수가 상기 k 초과이면, 싱글 트리 기반 플로우 룰로 패킷의 경로를 설정할 수 있다.
도 4는 본 발명의 실시예에 따라 하이브리드 트리 기반의 플로우 룰을 생성하는 예시를 설명하기 위한 도면이다.
도 4a와 같은 네트워크에서, 예를 들어 호스트가 h1, h6, h3, h4, h5, h2 의 순서에 따라 등록되며, 최적화 범위 k 가 2인 경우를 고려할 수 있다.
본 발명의 실시예를 따르면, h1, h6이 등록되면, h1 또는 h6을 직접 연결하는 제 1 스위치 또는 제 3 스위치에 대해 도 4b 및 도 4c와 같은 멀티 트리를 구성할 수 있으며, 멀티 트리 기반 플로우 룰에 따라 아래의 표 7과 같은 플로우 룰이 각각의 스위치에 적용될 것이다.
Figure 112018088544305-pat00007
표 7에서 제 1 스위치 내지 제 3 스위치에 적용되는 플로우 테이블을 참고하면, 모든 스위치에서 제 1 호스트 (h1) 및 제 6 호스트 (h6)의 맥주소를 검색하여 패킷을 처리하게 될 것이다. 상기 플로우 룰을 따르면 패킷의 맥주소 기반으로 경로가 결정되기 때문에 각각의 플로우 엔트리의 우선 순위는 동일할 수 있다.
이후 h3, h4, h5, h2가 차례로 등록되면, k 초과의 호스트가 등록된 것이기 때문에, 도 4d, 도 4e, 도 4f, 도 4g와 같은 싱글 트리가 구성되어, 싱글 트리 기반 플로우 룰에 따라 아래의 표 8과 같은 플로우 룰이 각각의 스위치에 적용될 것이다.
Figure 112018088544305-pat00008
표 8에서 제 1 스위치 내지 제 3 스위치에 적용되는 플로우 테이블을 참고하면, 각각의 스위치는 유입된 패킷의 목적지 맥주소가 해당 스위치에 직접 연결된 호스트의 맥주소와 일치하는지 우선적으로 확인하고, 일치하는 패킷은 해당 호스트에 연결된 포트로 포워딩하고, 일치하지 않는 패킷은 인포트 정보에 따라 다른 스위치에 연결된 포트로 포워딩하게 될 것이다. 이때, 해당 스위치에 직접 연결된 호스트를 목적지로 하는 패킷은 높은 우선순위, 그렇지 않은 패킷은 낮은 우선순위로 처리될 것이다.
한편, 도 4g와 같은 상황에서 임의의 호스트가 네트워크에 연결을 끊은 경우를 고려할 수 있다.
예를 들어 도 4g의 상황에서 제 6 호스트 (h6)가 연결을 끊은 경우, 본 발명의 실시예를 따르면, 전체 스위치에 대해 h6를 위한 플로우 룰이 삭제될 것이다. 제 6 호스트가 연결을 끊으면, 멀티 트리 버전 플로우 룰에 대한 여유가 1개 생기기 때문에, 제 6 호스트 다음으로 등록된 제 3 호스트에 대한 멀티 트리 기반 플로우 룰이 추가될 수 있다. (표 9에서 굵은 글씨)
Figure 112018088544305-pat00009
또 다른 예로 도 4g의 상황에서 제 3 호스트, 제 4 호스트, 제 5 호스트 및 제 2 호스트가 연결을 끊은 경우, 본 발명의 실시예를 따르면, 전체 스위치에 대해 h3, h4, h5, h2를 위한 플로우 룰이 삭제될 것이다. 이경우 싱글 트리 기반 플로우 룰은 네트워크에 더 이상 적용되지 않으며, 멀티 트리 기반 플로우 룰로만 네트워크가 운영되는 결과가 될 것이다.
본 발명의 실시예를 따르면, 이와 같이 최적화 범위 k를 기준으로 k 이하의 호스트에 대해서는 멀티 트리 기반 플로우 룰을 적용하여 패킷을 처리하여 네트워크의 링크를 최대한 활용하고, k 초과의 호스트에 대해서는 싱글 트리 기반 플로우 룰을 적용하여 최대한의 호스트에 대한 패킷 처리를 보장할 수 있다. 이를 따르면 네트워크에 등록가능한 최대한의 호스트의 통신을 보장하면서 k개의 이하의 호스트에 대해서는 효율적으로 링크를 사용하는 효과가 있다.
본 명세서와 도면에 게시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 게시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식 가진 자에 자명한 것이다.

Claims (4)

  1. 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법에 있어서,
    컨트롤러에서, 임의의 스위치에 저장될 수 있는 최대 플로우 엔트리 개수 및 임의의 스위치에 물리적으로 연결될 수 있는 최대 호스트의 개수를 이용하여, 임의의 스위치에 연결되는 호스트의 패킷 처리를 보장하기 위해 확보되어야 하는 최소한의 플로우 엔트리 수 k를 계산하는 a 단계;
    상기 컨트롤러에서, 네트워크에 연결된 호스트 수가 상기 k 개 이하인 경우, 각각의 스위치 별로 경로 트리를 구성하고, 상기 스위치별로 상기 경로 트리를 따라 패킷 경로를 설정하는 멀티 트리 기반 플로우 룰을 생성하는 b 단계; 및
    상기 컨트롤러에서 상기 네트워크에 연결된 호스트 수가 상기 k 초과인 경우, 네트워크 전체에 대해 하나의 경로 트리를 구성하고, 상기 네트워크 전체에 대한 경로 트리를 따라 패킷 경로를 설정하는 싱글 트리 기반 플로우 룰을 생성하는 c단계를 포함하는 것을 특징으로 하는 패킷 경로 설정 방법
  2. 제 1항에 있어서,
    상기 b 단계는,
    상기 스위치에 유입된 패킷의 목적지 맥주소가 상기 스위치에 직접 연결된 호스트의 맥주소와 일치하면, 상기 패킷을 상기 호스트와 연결된 포트로 포워딩하고, 상기 패킷의 목적지 맥주소가 다른 호스트의 맥주소와 일치하면, 상기 다른 호스트를 직접 연결하고 있는 다른 스위치까지 연결되는 경로의 포트로 포워딩하도록 상기 스위치를 설정하는 단계를 포함하며,
    상기 c 단계는,
    상기 스위치에 유입된 패킷의 목적지 맥주소가 상기 스위치에 직접 연결된 호스트의 맥주소와 일치하는지 우선적으로 확인하고, 일치하는 패킷은 상기 호스트에 연결된 포트로 포워딩하고, 일치하지 않는 패킷은 인포트 정보에 따라 다른 스위치에 연결된 포트로 포워딩하도록 상기 스위치를 설정하는 단계를 포함하는 것을 특징으로 하는 패킷 경로 설정 방법.
  3. 제 2 항에 있어서,
    상기 멀티 트리 기반 플로우 룰은, 상기 패킷의 맥 주소를 기반으로 모든 패킷의 경로가 동일한 우선 순위로 설정되며,
    상기 싱글 트리 기반 플로우 룰은, 상기 스위치에 직접 연결된 호스트를 도착지로 하는 패킷은, 맥 주소를 기반으로 상기 패킷의 경로가 높은 우선 순위로 설정되며, 그 외의 패킷은 포트 정보를 기반으로 상기 패킷의 경로가 낮은 우선 순위로 설정되는 것을 특징으로 하는 패킷 경로 설정 방법.
  4. 제 1항에 있어서, 상기 k는,
    임의의 스위치에 저장될 수 있는 최대 플로우 엔트리 개수에서 임의의 스위치에 물리적으로 연결될 수 있는 최대 호스트의 개수 및 임의의 스위치가 보유하는 물리 포트의 개수를 뺀 값인 것을 특징으로 하는 패킷 경로 설정 방법.
KR1020180106280A 2018-09-06 2018-09-06 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램 KR102023901B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180106280A KR102023901B1 (ko) 2018-09-06 2018-09-06 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180106280A KR102023901B1 (ko) 2018-09-06 2018-09-06 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR102023901B1 true KR102023901B1 (ko) 2019-11-14

Family

ID=68577749

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180106280A KR102023901B1 (ko) 2018-09-06 2018-09-06 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR102023901B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140051802A (ko) * 2012-10-23 2014-05-02 한국전자통신연구원 패킷 포워딩 룰 설정 방법 및 이를 이용한 제어 장치
KR101598775B1 (ko) * 2015-01-26 2016-03-02 아토리서치(주) 소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치
KR20170124136A (ko) * 2016-04-29 2017-11-10 포항공과대학교 산학협력단 소프트웨어 정의 네트워크를 위한 적응적 제어 평면 관리 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140051802A (ko) * 2012-10-23 2014-05-02 한국전자통신연구원 패킷 포워딩 룰 설정 방법 및 이를 이용한 제어 장치
KR101598775B1 (ko) * 2015-01-26 2016-03-02 아토리서치(주) 소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치
KR20170124136A (ko) * 2016-04-29 2017-11-10 포항공과대학교 산학협력단 소프트웨어 정의 네트워크를 위한 적응적 제어 평면 관리 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Open Networking Foundation, "OpenFlow Specification 1.3.0"

Similar Documents

Publication Publication Date Title
US11134012B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
US20210083899A1 (en) Method and apparatus for providing a point-to-point connection over a network
KR102233645B1 (ko) 가상 네트워크 기반 분산 다중 도메인 라우팅 제어 시스템 및 라우팅 제어 방법
WO2015127107A1 (en) Control device discovery in networks having separate control and forwarding devices
CN108429680B (zh) 一种基于虚拟私有云的路由配置方法、系统、介质及设备
EP3069471B1 (en) Optimized multicast routing in a clos-like network
JP2002508123A (ja) マルチレイヤ・ネットワーク要素用のシステムおよび方法
US20130286844A1 (en) Information system, control apparatus, communication method, and program
CN111147372B (zh) 下行报文发送、转发方法和装置
CN100499549C (zh) 一种WiMAX网络中转发IP报文的装置及基站设备
US8675669B2 (en) Policy homomorphic network extension
KR101794719B1 (ko) Sdn 기반 네트워크 가상화 플랫폼에서의 ip 주소 가상화 방법 및 시스템
KR102023901B1 (ko) 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램
CN109218191B (zh) 使群播封包得以穿越非群播网络的系统及方法
JP7127537B2 (ja) トランスポートネットワーク制御装置、通信システム、転送ノードの制御方法及びプログラム
KR102092091B1 (ko) 소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램
EP3817295A1 (en) Layer-2 private wire network system and configuration method
KR101767439B1 (ko) 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램
KR101786623B1 (ko) 소프트웨어 정의 네트워크에서 브로드캐스트를 처리하는 방법, 장치 및 컴퓨터 프로그램
KR101786616B1 (ko) 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램
KR102207290B1 (ko) 소프트웨어 정의 네트워크에서 vlan을 지원하는 방법
CN109005114B (zh) 一种常规路由与延迟容忍网络融合分布式转发系统和方法
KR102019210B1 (ko) 소프트웨어 정의 네트워크에서 호스트를 관리하는 방법, 장치 및 컴퓨터 프로그램
KR20150052773A (ko) 계층적 구조를 이용한 소프트웨어 정의 네트워크에서의 통신방법

Legal Events

Date Code Title Description
GRNT Written decision to grant