KR101740456B1 - IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법 - Google Patents

IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법 Download PDF

Info

Publication number
KR101740456B1
KR101740456B1 KR1020150172099A KR20150172099A KR101740456B1 KR 101740456 B1 KR101740456 B1 KR 101740456B1 KR 1020150172099 A KR1020150172099 A KR 1020150172099A KR 20150172099 A KR20150172099 A KR 20150172099A KR 101740456 B1 KR101740456 B1 KR 101740456B1
Authority
KR
South Korea
Prior art keywords
packet
open flow
terminal
flow switch
destination
Prior art date
Application number
KR1020150172099A
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 KR1020150172099A priority Critical patent/KR101740456B1/ko
Application granted granted Critical
Publication of KR101740456B1 publication Critical patent/KR101740456B1/ko

Links

Images

Classifications

    • 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
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

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

Abstract

본 발명은 IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법에 관한 것으로, 본 발명의 일 실시예에 따른 오픈플로우 스위치의 트래픽 전송 방법은 단말로부터 수신된 패킷을 오픈플로우 컨트롤러로 전송하는 단계; 오픈플로우 컨트롤러로부터 패킷의 목적지 정보를 수신하는 단계; 패킷에 송신지 MAC 주소 및 수신지 MAC 주소가 포함된 이더넷(Ethernet) 헤더를 추가하는 단계; 및 이더넷 헤더가 포함된 패킷과 매칭되는 플로우 엔트리의 액션필드에 지정된 명령에 따라, 다른 오픈플로우 스위치 또는 단말로 패킷을 포워딩 하는 단계를 포함한다.

Description

IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법{FOWARDING SCHEME OF PACKET IN SOFTWARE DEFINED NETWORK BASED INTERNET OF TINGS}
본 발명은 IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법에 관한 것이다.
사물인터넷(Internet of Things, IoT)은 사람, 사물, 공간 등 모든 것(Tings)이 인터넷으로 서로 연결되어 정보가 생성되고, 수집되며, 생성 및 수집된 정보가 상호간에 공유되고 활용되는 환경을 말한다. 이러한 IoT 환경의 실질적인 구현을 위해서는 시간과 장소에 구애받지 않고, 모든 사물이 연결되어 데이터를 주고 받을 수 있는 초연결(hyper connection)의 실현이 필수적이다. 따라서, 데이터의 효과적인 전송 및 처리를 위한 네트워크 인프라 구축이 필요하다.
IoT 환경에서는 대량의 단말에서 다양한 종류의 트래픽이 대량으로 발생하기 때문에, 단말 각각이 네트워크를 통해 정보를 주고 받을 경우, 수많은 종류의 플로우가 대량으로 발생하게 된다. 또한, 다양한 유무선 통신 및 네트워크 인프라 기술이 사용된다. 구체적으로, IoT 환경에서는 WPAN, WiFi, 3G/4G/LTE, Bluetooth, Ethernet, BcN, 위성통신, Microware, 시리얼 통신, PLC 등 인간과 사물, 그리고 서비스를 연결할 수 있는 모든 네트워크 기술이 사용될 수 있다. 따라서, IoT 트래픽을 효과적으로 제어하기 위해서는 상술한 IoT 단말의 특성을 고려해야 한다.
IoT 네트워크의 효과적인 관리를 위해, 소프트웨어 정의 네트워크(software defined network, SDN)가 사용될 수 있다. SDN은 네트워크의 관리 기능을 중앙 집중화하여 관리의 편의성과 효율을 높이기 위한 기술로서, 관리자가 네트워크를 프로그래밍하여 관리하는 것이 가능하다. 따라서, SDN은 관리자에게 보다 향상되고, 자동화된 네트워크 제어 기능을 제공할 수 있다.
그러나, SDN을 이용한 IoT 네트워크 관리에는 몇 가지 문제점이 존재한다. 특히, IoT 네트워크는 많은 수의 단말로 인하여 플로우 엔트리 수가 증가하여 플로우 테이블 관리가 어렵다. 또한, IoT 단말이 매치필드(match field)로 사용 불가능한 통신 프로토콜을 사용할 경우, 오픈플로우(OpenFlow) 프로토콜을 변경하거나 단말에 오픈플로우 프로토콜이 적용 가능한 통신 프로토콜을 추가해야 한다.
이와 관련하여 대한민국 등록특허공보 제1155012호(발명의 명칭: 오픈플로우 네트워크 시스템 및 그 제어방법)는 사용자가 정의하는 서비스 품질 요구사항에 맞추어 트래픽 전송 경로를 동적으로 할당하고, 네트워크 상황에 따라 플로우를 재정의하여 트래픽을 이동시키는 오픈 플로우 네트워크 시스템과 제어 방법을 개시하고 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, IoT 환경의 SDN 네트워크에서 플로우 테이블 사용을 최소화하는 포워딩 기법을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예에 따른 오픈플로우 스위치의 트래픽 전송 방법은 단말로부터 수신된 패킷을 오픈플로우 컨트롤러로 전송하는 단계; 오픈플로우 컨트롤러로부터 패킷의 목적지 정보를 수신하는 단계; 패킷에 송신지 MAC 주소 및 수신지 MAC 주소가 포함된 이더넷(Ethernet) 헤더를 추가하는 단계; 및 이더넷 헤더가 포함된 패킷과 매칭되는 플로우 엔트리의 액션필드에 지정된 명령에 따라, 다른 오픈플로우 스위치 또는 단말로 패킷을 포워딩 하는 단계를 포함한다.
또한, 본 발명의 제 2 측면에 따른 오픈플로우 컨트롤러는 오픈플로우 스위치로부터 수신된 패킷의 헤더를 파싱하여 목적지 단말 및 통신에 사용된 프로토콜을 파악하고, 목적지 단말의MAC 주소 또는 목적지 단말과 연결된 오픈플로우 스위치의 MAC 주소를 포함하는 목적지 정보를 생성하여 오픈플로우 스위치로 전송한다.
전술한 과제 해결 수단 중 어느 하나에 의하면, IoT 환경의 SDN 네트워크에서 패킷을 포워딩 하는 경우, 플로우 테이블 사용을 최소화함으로써, 효율적인 네트워크의 구현이 가능하다.
도 1은 본 발명의 일 실시예에 따른 오픈플로우 네트워크를 설명하기 위한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 오픈플로우 네트워크의 포워딩 과정을 설명하기 위한 토폴로지이다.
도 3은 본 발명의 일 실시예에 따른 오픈플로우 컨트롤러의 개략적인 구성을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 도 1에 도시된 오픈플로우 컨트롤러의 동작 순서를 상세히 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시예에 따른 오픈플로우 컨트롤러에 의해 생성되는 플로우 엔트리의 일례이다.
도 6은 본 발명의 일 실시예에 따른 오픈플로우 스위치의 개략적인 구성도이다.
도 7은 본 발명의 일 실시예에 따른 오픈플로우 스위치의 동작 과정을 설명하기 위한 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명의 일 실시예는 소프트웨어 정의 네트워크를 통해 IoT 단말을 효과적으로 관리할 수 있으며, 오픈플로우(openflow) 프로토콜 및 IoT 단말에 변형을 가하지 않으면서도, IoT 단말의 트래픽을 전달할 수 있다.
오픈플로우(openflow)는 소프트웨어 정의 네트워크(software definition network, SDN)의 인터페이스(interface) 표준 기술 중 하나이다. 오픈플로우의 장점은 네트워크 엔지니어들에게 보다 편리하게 네트워크 장비를 조작할 수 있는 인터페이스를 제공하며, 컨트롤러의 프로그램을 통하여 다양한 기능을 포함하는 모듈을 보다 유연하게 만들어 낼 수 있다. 예를 들어, 기존 네트워크 장비들은 네트워크에 새로운 기능을 추가하기 위해서 관련된 기존 장비들을 모두 업그레이드 하거나 부가적인 장비를 물리적으로 설치해야 한다. 그러나 오픈플로우를 이용하면 오픈플로우 표준을 따르는 어떤 업체의 네트워크 장비라 할지라도 컨트롤러에서 프로그래밍을 통하여 비교적 쉽게 새로운 기능을 추가할 수 있다.
여기서, 네트워크는 단말 및 서버와 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 3GPP(3rd generation partnership project) 네트워크, LTE(long term evolution) 네트워크, WIMAX(world interoperability for microwave access) 네트워크, 인터넷(internet), LAN(local area network), Wireless LAN(Wireless local area network), WAN(wide area network), PAN(personal area network), 블루투스(Bluetooth) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(digital multimedia broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
이하, 도 1을 참조하여 본 발명의 일 실시예에 따른 오픈플로우 네트워크(openflow network)를 설명한다.
도 1은 본 발명의 일 실시예에 따른 오픈플로우 네트워크를 설명하기 위한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 오픈플로우 네트워크의 포워딩 과정을 설명하기 위한 토폴로지이다.
본 발명의 일 실시예에 따른 오픈플로우를 이용한 네트워크는 도 1에 도시된 바와 같이, 오픈플로우 컨트롤러(openflow controller; 100), 제 1 오픈플로우 스위치(openflow switch; 210), 제 2 오픈플로우 스위치(220), 제 3 오픈플로우 스위치(230), 제 1 단말(310), 및 제 2 단말(320)을 포함한다. 제 1 단말(310) 및 제 2 단말(320)은 IoT 단말일 수 있으나 통신 프로토콜에 따라서 달라질 수 있으며, 어느 하나에 제한되지 않는다.
다시 말해, 단말은 네트워크 통신 장치를 포함하는 것으로서, 예를 들어, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), WiBro(Wireless Broadband Internet) 단말, 스마트폰(Smart Phone), 스마트 패드(Smart Pad) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치 또는 유선 통신 장치를 포함할 수 있다. 또한, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 데스크톱(desktop), 랩톱(laptop), 테블릿 PC(tablet PC) 등을 포함할 수 있다.
또한, 하나의 오픈플로우 컨트롤러(100)에 복수의 오픈플로우 스위치(210 내지 230)가 연결될 수 있으며, 마찬가지로 각각의 오픈플로우 스위치(210 내지 230)에는 복수의 오픈플로우 컨트롤러(미도시됨)가 연결될 수 있다.
일반적으로, 도 1에 도시된 제 1 단말(310)이 연결된 제 1오픈플로우 스위치(210) 또는 제 2 단말(320)이 연결된 제 3 오픈플로우 스위치(230)는 통칭하여 엣지(edge) 스위치라 명명한다. 반면, 제 2 오픈플로우 스위치(220)와 같이, 단말이 연결되어 있지 않고, 엣지 스위치 사이에 패킷을 포워딩해주는 역할을 하는 오픈플로우 스위치, 즉 제 1 오픈플로우 스위치(210)와 제 3 오픈플로우 스위치(230) 사이에서 패킷을 포워딩하는 제 2 오픈플로우 스위치는 코어(core) 스위치라 명명한다. 본 발명의 일 실시예에서, 코어 스위치는 하나 이상일 수 있으며, 개수에 제한되지 않는다.
다시 말해, 도 1에서, 제 1 오픈플로우 스위치(210) 및 제 3 오픈플로우 스위치(230)는 단말이 연결된 엣지 스위치이며, 제 2 오픈플로우 스위치(220)는 코어 스위치라 할 수 있다. 마찬가지로 도 2에 도시된 A, B, C, D, E, 및 F오픈플로우 스위치는 엣지 스위치이고, G는 코어 스위치한다.
그러나, 상술한 바와 같이, 복수개의 오픈플로우 스위치를 엣지 스위치 또는 코어 스위치로 구분하고, 도 1에서와 같이 제 1 오픈플로우 스위치(210), 제 2 오픈플로우 스위치(220), 및 제 3 오픈플로우 스위치(230)로 구분하여 도시한 것은, 본 발명의 일 실시예에서, 각각의 스위치의 역할에 대한 설명의 편의를 위한 것이지, 각각의 제 1 오픈플로우 스위치(210), 제 2 오픈플로우 스위치(220), 및 제 3 오픈플로우 스위치(230)의 구성이 다른 것임을 구분하기 위한 것이 아니다.
이하, 도면을 참조하여, 본 발명의 일 실시예에 따른 오픈플로우 네트워크의 포워딩 과정을 더욱 상세히 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 오픈플로우 컨트롤러의 개략적인 구성을 나타내는 도면이다.
본 발명의 일 실시예에 따른 오픈플로우 컨트롤러(100)는 컴퓨터 또는 서버에 소프트웨어가 설치되는 형태로 구현될 수 있다. 구체적으로, 오픈플로우 컨트롤러(100)는 도 3에 도시된 바와 같이, 통신모듈(110), 메모리(120) 및 프로세서(130)를 포함한다.
오픈플로우 컨트롤러(100)는 통신모듈(110)을 통해 오픈플로우 스위치와 패킷을 송수신한다. 이때, 오픈플로우 컨트롤러(100)는 Experimenter 메시지를 이용하여 IoT 단말 포워딩에 사용될 MAC 주소 정보를 엣지 스위치와 교환할 수 있다.
오픈플로우 컨트롤러(100)의 메모리(120)에는 라우팅 모듈(미도시됨) 및 호스트 위치 파악 모듈(미도시됨)이 저장된다. 메모리(120)는 컴퓨터 저장 매체중의 하나로서 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하여 구성될 수 있다. 예를 들어, 저장장치는 ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치, 콤팩트 플래시(compact flash; CF) 카드, SD(secure digital) 카드, 메모리 스틱(memory stick), 솔리드 스테이트 드라이브(solid-state drive; SSD) 및 마이크로(micro) SD 카드 등과 같은 낸드 플래시 메모리(NAND flash memory), 하드 디스크 드라이브(hard disk drive; HDD) 등과 같은 마그네틱 컴퓨터 기억장치 등을 포함할 수 있다.
오픈플로우 컨트롤러(100)의 프로세서(130)는 통신모듈(110)을 통해 수신된 패킷의 헤더를 통해 목적지 정보를 생성한다.
오픈플로우 컨트롤러(100)의 프로세서(130)는 메모리(120)에 저장된 호스트 위치 파악 모듈의 실행에 따라, 복수의 엣지 스위치, 즉, 제 1 오픈플로우 스위치(210) 또는 제 2 오픈플로우 스위치(230) 각각에 연결된 모든 단말의 정보를 수집 및 저장 가능하며, 네트워크상에서 사용되고 있는 통신 프로토콜 구조를 해석할 수 있다.
또한, 오픈플로우 컨트롤러(100)의 프로세서(130)는 라우팅 모듈의 실행에 따라 엣지 스위치로부터 수신한 패킷에 대한 라우팅 경로를 설정한다. 또한, 오픈플로우 컨트롤러(100)의 프로세서(130)는 라우팅 경로에 따라 라우팅 경로에 포함된 각각의 오픈플로우 스위치에 필요한 플로우 엔트리를 생성할 수 있다. 다시 말해, 오픈플로우 컨트롤러(100)의 프로세서(130)는 호스트 위치 파악 모듈의 실행에 따라, 패킷의 헤더를 파싱하여, 통신에 사용된 프로토콜을 파악하고, 목적지 호스트 및 목적지 호스트가 연결된 스위치를 탐색한다. 이어서, 오픈플로우 컨트롤러(100)의 프로세서는 해당 패킷의 목적지 호스트의 MAC 주소 또는 목적지 호스트가 연결된 오픈플로우 스위치의 MAC 주소를 포함하는 목적지 정보를 생성하여 해당 패킷을 전송한 오픈플로우 스위치로 전송할 수 있다. 여기서, 목적지 호스트는 수신 단말일 수 있다.
구체적으로 오픈플로우 컨트롤러(100)의 프로세서(130)는 목적지 호스트 즉 수신 단말이 일반적인 이더넷/아이피 프로토콜을 이용하는 경우, 해당 목적지 호스트의 MAC 주소를 목적지 정보로 생성할 수 있다.
반면, 목적지 호스트 즉, 수신 단말이 IoT 단말일 경우, 오픈플로우 컨트롤러의 프로세서(130)는 목적지 호스트와 연결된 오픈플로우 스위치의 MAC 주소를 목적지 정보로 생성할 수 있다.
이후, 오픈플로우 컨트롤러의 프로세서(130)는 통신모듈을 통해 목적지 정보를 해당 패킷을 전송한 오픈플로우 스위치로 송신한다.
또한, 오픈플로우 컨트롤러의 프로세서(130)는 해당 패킷의 라우팅 경로에 포함된 각각의 오픈플로우 스위치에 필요한 플로우 엔트리를 생성할 수 있다. 이때, 생성되는 플로우 엔트리의 매치 필드에는 해당 패킷을 전송한 오픈플로우 스위치의 MAC 주소 및 목적지 호스트의 MAC 주소가 포함된다.
도 4는 본 발명의 일 실시예에 따른 도 1에 도시된 오픈플로우 컨트롤러의 동작 순서를 상세히 설명하기 위한 순서도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 오픈플로우 컨트롤러의 프로세서는 송신 단말과 연결된 오픈플로우 스위치로부터 패킷을 수신하는 단계(S110); 패킷의 헤더를 파싱하여 수신 단말 및 통신에 사용된 프로토콜을 파악하여 목적지 정보를 생성하는 단계(S120); 수신 단말까지의 라우팅 경로를 설정하는 단계(S130); 및 라우팅 경로에 포함된 오픈플로우 스위치에 플로우 엔트리를 생성하는 단계(S140)를 포함한다.
도 1을 참조하여 예를 들면, 제 1 단말(310)이 제 2 단말(320)로 패킷을 송신하는 경우, 오픈플로우 컨트롤러의 프로세서(130)는 송신 단말, 즉 제 1 단말(310)과 연결된 제 1 오픈플로우 스위치(210)로부터, 제 1 단말(310)이 송신하려는 해당 패킷을 수신한다(S110).
이어서, 오픈플로우 컨트롤러의 프로세서(130)는 패킷의 헤더를 파싱하여 통신에 사용된 프로토콜을 파악하고, 패킷의 목적지 호스트, 제 2 단말(320), 및 제 2 단말(320)과 연결된 제 3 오픈플로우 스위치(230)를 탐색하여 목적지 정보를 생성한다. 이때, 제 1 단말(310) 또는 제 2 단말(320)이 이더넷/아이피 프로토콜을 사용하는 경우, 오픈플로우 컨트롤러의 프로세서(130)는 패킷의 목적지 호스트, 즉 제 2 단말(320)의 MAC 주소를 목적지 정보로 생성하여 제 1 오픈플로우 스위치(210)로 송신한다.
반면, 제 1 단말(310) 또는 제 2 단말(320)이 이더넷/아이피 프로토콜을 사용하지 않는 IoT단말일 경우, 오픈플로우 컨트롤러의 프로세서(130)는 패킷의 목적지 호스트, 즉 제 2 단말(320)과 연결된 제3 오픈플로우 스위치(230)의 MAC 주소를 목적지 정보로 생성하여 제 1 오픈플로우 스위치(210)로 송신한다(S120).
다음으로, 오픈플로우 컨트롤러의 프로세서(130)는 송신 제 1 단말(310)부터 목적지 호스트, 즉 수신제 2 단말(320)까지의 라우팅 경로를 생성한다. 도 1에서, 라우팅 경로는 제 1 오픈플로우 스위치(210)-제 2 오픈플로우 스위치(220)-제3오픈플로우 스위치(230)일 수 있다(S130).
이후, 오픈플로우 컨트롤러의 프로세서(130)는 라우팅 경로에 포함된 각각의 오픈플로우 스위치(210 내지 230)에 플로우 엔트리를 생성한다. 이때, 플로우 엔트리의 매치필드에는 제 1 오픈플로우 스위치(210)의 MAC 주소 및 제 2 단말(320)의 MAC 주소 또는 제 2 단말(320)과 연결된 제 3 스위치(230)의 MAC 주소가 포함될 수 있다.
도 2는 단말 H1(312) 또는 단말 H2(322)가 이더넷/아이피 프로토콜을 사용하지 않는 IoT 단말인 경우를 나타낸 것이다. 도 2를 참조하면, 단말 H1(312) 에서 단말 H2(322)로 패킷을 전송하는 경우, 라우팅 경로는 A-G-D가 될 수 있다. 이 경우, 오픈플로우 컨트롤러의 프로세서(130)는 라우팅 경로에 포함된 각각의 A(212), G(222), 및 D(232) 오픈플로우 스위치에 플로우 엔트리를 생성할 수 있다.
도 5는 본 발명의 일 실시예에 따른 오픈플로우 컨트롤러에 의해 생성되는 플로우 엔트리의 일례이다.
도 2 및 도 5를 참조하면, 각각의 오픈플로우 스위치의 플로우 테이블에 생성된 플로우 엔트리는 단말 H1(312)과 연결된 오픈플로우 스위치 A(212)의 MAC 주소 및 단말 H2(322)와 연결된 오픈플로우 스위치 D(232)의 MAC 주소를 포함한다.
또한, 오픈플로우 스위치 A(212)의 플로우 테이블의 액션 필드에는 가상랜 태그를 삽입하라는 명령(Add VLAN tag X)과, 다음 라우팅 경로인 오픈플로우 스위치 G(222)로 포워딩 하라는 명령(Forward to G)이 저장된다. 이때, 가상랜(VLAN) 태그에는 해당 트래픽이 이더넷 트래픽인지 또는 IoT 트래픽인지를 구분하는 정보가 포함된다.
반면, 오픈플로우 스위치 G(222)의 플로우 테이블의 액션필드에는 해당 패킷을 오픈플로우 스위치 D(232)로 포워딩하라는 명령(Forward to D)이 저장된다. 따라서, 오픈플로우 스위치 G(222)는 플로우 엔트리에 저장된 송신지 MAC 주소 정보 및 수신지 MAC 주소 정보와 매칭되는 패킷을 수신한 경우, 오픈플로우 스위치 D(232)로 포워딩 할 수 있다. 즉, 오픈플로우 스위치 G(222)는 이더넷 헤더에 포함된 패킷의 MAC 주소 정보 및 가상랜 태그만을 이용하여 패킷을 포워딩 할 수 있게 된다.
한편, 오픈플로우 스위치 D(232)의 플로우 테이블에 생성된 액션필드에는 전달된 패킷에 포함된 이더넷 헤더 및 가상랜 태그를 삭제하라는 명령(Remove Ethernet Header) 및 단말 H2(322)로 패킷을 전송하라는 명령(Receive packet)이 저장된다.
상술한 바와 같이, 오픈플로우 스위치에 연결되는 단말은 IoT 단말일 수 있으며, 오픈플로우 스위치에 연결된 단말이 IoT 단말일 경우에도, 오픈플로우 스위치는 IoT 단말의 통신 프로토콜을 이용하여 통신이 가능하다.
따라서, 도 1 및 도 2에 도시된 엣지 스위치는, IoT 단말과 통신이 가능한 오픈플로우 인에이블(openflow enabled) 스위치 일 수 있다.
도 6은 본 발명의 일 실시예에 따른 오픈플로우 스위치의 개략적인 구성도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 오픈플로우 스위치는 통신모듈(410), 메모리(420), 및 프로세서(430)를 포함한다.
오픈플로우 스위치는 통신모듈(410)을 통해 단말(미도시됨) 및 오픈플로우 컨트롤러(100)와 패킷을 송수신할 수 있다. 이때, 오픈플로우 스위치가 수신한 패킷에 할당된 속도, 처리된 패킷의 수 및 패킷에 대한 처리 방법 등은 메모리(420)의 플로우 테이블(미도시됨)에 저장된다.
오픈플로우 스위치의 메모리(420)에는 복수의 플로우 테이블 및 포워딩 모듈이 저장된다. 또한, 플로우 테이블에는 복수의 플로우 엔트리가 저장된다. 이때, 메모리(420)는 컴퓨터 저장 매체중의 하나로서 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하여 구성될 수 있다.
오픈플로우 스위치의 프로세서(430)는 통신 모듈(410)을 통해 패킷 및 패킷에 대응하는 플로우 엔트리를 오픈플로우 컨트롤러, 오픈플로우 스위치, 또는 단말로부터 수신한다. 오픈플로우 스위치의 프로세서(430)는 통신모듈(410)을 통해 패킷에 대응하는 플로우 엔트리를 오픈플로우 컨트롤러로부터 수신하여 메모리의 플로우 테이블에 저장할 수 있다. 이후, 수신된 패킷은 오픈플로우 스위치의 메모리(430)에 저장된 0번 플로우 테이블부터 비교되며, 매치되는 플로우 엔트리가 있으면 카운터 필드의 값이 증가하고, 액션 필드에 지정된 명령이 실행된다.
오픈플로우 스위치의 프로세서(430)는 포워딩 모듈의 실행에 따라 단말로부터 수신된 패킷을 오픈플로우 컨트롤러로 송신할 수 있다. 또한, 송신한 패킷에 해당하는 목적지 정보를 오픈플로우 컨트롤러로부터 수신할 수 있다.
이때, 목적지 정보에는 목적지 호스트의 MAC 주소 또는 목적지 호스트와 연결된 오픈플로우 스위치의 MAC 주소가 포함된다.
오픈플로우 스위치의 프로세서(430)는 포워딩 모듈의 실행에 따라 송신지 MAC주소 및 수신지 MAC주소가 포함된 이더넷 헤더를 패킷에 추가한다. 이때, 송신지 MAC 주소는 해당 오픈플로우 스위치의 MAC 주소일 수 있다. 또한, 수신지 MAC 주소는 컨트롤러로부터 수신된 목적지 정보에 포함된 목적지 호스트의 MAC 주소 또는 목적지 호스트와 연결된 오픈플로우 컨트롤러의 MAC 주소일 수 있다.
이어서, 오픈플로우 스위치의 프로세서(430)는 이더넷 헤더가 포함된 패킷과 매칭되는 플로우 엔트리가 존재하는 경우, 액션 필드에 저장된 명령을 실행한다.
오픈플로우의 스위치의 프로세서(430)는 액션필드에 저장된 명령을 실행함에 따라, 단말로부터 패킷을 수신한 경우, 해당 패킷과 매치되는 플로우 엔트리에 가상랜 태그를 삽입할 수 있다. 이때, 가상랜 태그에는 해당 트래픽이 이더넷 트래픽인지 또는 IoT 트래픽인지를 구분하는 정보가 포함될 수 있다.
또는, 오픈플로우의 스위치의 프로세서(430)는 해당 패킷을 단말로 전송하는 경우, 패킷에 삽입된 이더넷 헤더 및 가상랜 태그를 삭제하는 것이 가능하다. 이때, 이더넷 헤더 및 가상랜 태그의 삭제는 해당 패킷과 매칭되는 플로우 엔트리의 액션필드에 저장된 명령을 실행함에 따라 수행되는 것일 수 있다.
도 7은 본 발명의 일 실시예에 따른 오픈플로우 스위치의 동작 과정을 설명하기 위한 순서도이다.
도7을 참조하면, 본 발명의 일 실시예에 따른 오픈플로우 스위치의 동작 방법은, 단말로부터 수신된 패킷을 오픈플로우 컨트롤러로 전송하는 단계(S210); 오픈플로우 컨트롤러로부터 해당 패킷의 목적지 정보를 수신하는 단계(S220); 해당 패킷에 송신지 MAC 주소 및 수신지 MAC 주소가 포함된 이더넷 헤더를 추가하는 단계(S230); 이더넷 헤더가 포함된 패킷과 매칭되는 플로우 엔트리의 액션필드에 저장된 명령에 따라 패킷을 포워딩하는 단계(S240)를 포함한다.
도 2를 예로 들어 설명하면, 단말H1(312)에서 단말 H2(322)로 패킷이 전달될 경우, 단말 H1(312)로부터 패킷을 수신한 오픈플로우 스위치 A(212)는 해당 패킷을 오픈플로우 컨트롤러로 전송한다(S210).
이어서, 오픈플로우 컨트롤러(100)로부터 해당 패킷에 대한 목적지 정보를 수신한다(S220).
다음으로, 오픈플로우 스위치 A(212)의 프로세서는 해당 패킷에 송신지 MAC 주소 및 수신지 MAC 주소를 포함하는 이더넷 헤더를 추가한다. 이때, 송신지 MAC 주소는 오픈플로우 스위치 A(212)의 MAC 주소일 수 있다. 또한, 수신지 MAC 주소는 목적지 정보에 포함된 호스트 단말의 MAC 주소, 즉, 단말 H2(322)의 MAC 주소, 또는 단말 H2(322)와 연결된 오픈플로우 스위치 D(232)의 MAC 주소일 수 있다(S230).
이후, 오픈플로우 스위치 A(212)는 이더넷 헤더가 포함된 패킷을 오픈플로우 테이블에 저장된 플로우 엔트리와 비교하여, 해당 패킷과 매칭되는 플로우 엔트리가 존재하는 경우, 액션 필드에 저장된 명령을 실행함으로써, 패킷을 오픈플로우 스위치 G(222)로 포워딩 하는 것이 가능하다(S240).
한편, 오픈플로우 스위치 A(212)는 패킷을 포워딩 하기 전, 패킷에 가상랜 태그를 추가하는 단계를 더 포함할 수 있다. 이때, 가상랜 태그에는 해당 트래픽이 이더넷 트래픽인지 또는 IoT 트래픽인지를 구분하는 정보가 포함될 수 있다.
또한, 오픈플로우 스위치 G(222)와 같이, 오픈플로 스위치 A(212)로부터 패킷을 수신하여 오픈플로우 스위치 D(232)로 전송하는 코어스위치의 경우, 해당 패킷을 플로우 테이블과 매칭시켜, 액션필드에 저장된 명령을 실행함으로써, 해당 패킷을 오픈플로우 스위치 D(232)로 포워딩할 수 있다. 즉, 오픈플로우 스위치 G(222)는 패킷의 이더넷 헤더에 포함된 송신지 MAC 주소, 수신지 MAC 주소 및 가상랜 태그만을 이용하여 패킷을 포워딩 할 수 있게 된다.
한편, 오픈플로우 스위치 D(232)의 플로우 테이블에는 도 5에 도시된 바와 같이, 전달된 패킷에 포함된 이더넷 헤더 및 가상랜 태그를 삭제하라는 명령 및 단말 H2(322)로 패킷을 전송하라는 명령이 액션필드에 저장될 수 있다. 따라서, 오픈플로우 스위치 D(232)는 패킷에 포함된 이더넷 헤더 및 가상랜 태그를 삭제한 후, 패킷을 단말 H2(322)로 포워딩한다.
상술한 바와 같이, 본 발명의 일 실시예에 따르면, 오픈플로우 스위치에 연결된 단말이 IoT 단말일 경우에도, 오픈플로우 스위치는 IoT 단말의 통신 프로토콜을 이용하여 통신이 가능하다.
또한, IoT 환경의 SDN 네트워크에서 패킷을 포워딩 하는 경우, 플로우 테이블 사용을 최소화함으로써, 효율적인 네트워크의 구현이 가능하다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 오픈플로우 컨트롤러 210: 제 1 오픈플로우 스위치
220: 제 2 오픈플로우 스위치 230: 제 3 오픈플로우 스위치
310: 제 1 단말 320: 제 2 단말

Claims (8)

  1. IoT(Internet of Things) 환경의 소프트웨어 정의 네트워크(software defined network, SDN)에 포함되며, 단말과 직접 연결된 오픈플로우 스위치의 트래픽 전송 방법에 있어서,
    단말로부터 수신된 패킷을 오픈플로우 컨트롤러로 전송하는 단계;
    상기 오픈플로우 컨트롤러로부터 상기 패킷의 목적지 정보를 수신하는 단계;
    상기 목적지 정보에 기초하여 상기 패킷에 송신지 MAC 주소 및 수신지 MAC 주소가 포함된 이더넷(Ethernet) 헤더를 추가하는 단계; 및
    상기 이더넷 헤더가 포함된 패킷과 매칭되는 플로우 엔트리의 액션필드에 지정된 명령에 따라, 다른 오픈플로우 스위치 또는 단말로 상기 패킷을 포워딩하는 단계를 포함하고,
    상기 수신지 MAC 주소는 목적지 단말의 MAC 주소 또는 상기 목적지 단말과 연결된 오픈플로우 스위치의 MAC 주소이고,
    상기 플로우 엔트리는 패킷에 대한 라우팅 경로 및 처리 방법이 포함된 것으로서 상기 오픈플로우 컨트롤러로부터 수신되어 플로우 테이블에 포함된 것이고,
    상기 패킷에 트래픽 종류를 이더넷 트래픽 또는 IoT 트래픽으로 구분할 수 있는 가상랜 태그를 더 추가하며,
    상기 패킷의 라우팅 경로 상에 단말과는 직접 연결되지 않는 오픈플로우 스위치가 포함된 경우, 상기 단말과는 직접 연결되지 않는 오픈플로우 스위치는 상기 가상랜 태그 및 상기 이더넷 헤더에 기초하여 상기 패킷이 IoT 트래픽이면 목적지 단말과 연결된 오픈플로우 스위치로 상기 패킷을 포워딩하는 것인, 오픈플로우 스위치의 트래픽 전송 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 제 1 항에 있어서,
    다른 오픈플로우 스위치로부터 이더넷 헤더 및 가상랜 태그가 포함된 패킷을 수신하는 단계;
    상기 다른 오픈플로우 스위치로부터 수신된 패킷에 포함된 이더넷 헤더 정보 및 가상랜 태그를 삭제하는 단계; 및
    상기 수신된 패킷을 자신과 연결된 단말로 전송하는 단계를 더 포함하는, 오픈플로우 스위치의 트래픽 전송 방법.
  8. IoT(Internet of Things) 환경의 소프트웨어 정의 네트워크(software defined network, SDN)에 포함된 오픈플로우 컨트롤러에 있어서,
    오픈플로우 스위치로부터 수신된 패킷의 헤더를 파싱하여 목적지 단말 및 통신에 사용된 프로토콜을 파악하고,
    상기 목적지 단말의 MAC 주소 또는 상기 목적지 단말과 연결된 오픈플로우 스위치의 MAC 주소를 포함하는 목적지 정보를 생성하여 상기 오픈플로우 스위치로 전송하되,
    상기 목적지 단말까지의 라우팅 경로를 생성하여 상기 패킷에 대한 플로우 엔트리를 생성한 후 상기 오픈플로우 스위치로 전송하며,
    상기 목적지 단말이 이더넷(Ethernet) 또는 아이피 프로토콜을 이용하는 경우 목적지 단말의 MAC 주소를 포함하는 목적지 정보를 생성하고, 상기 목적지 단말이 IoT 단말인 경우 상기 목적지 단말과 연결된 오픈플로우 스위치의 MAC 주소를 포함하는 목적지 정보를 생성하고,
    상기 플로우 엔트리에는 패킷의 트래픽 종류가 이더넷 트래픽 또는 IoT 트래픽인지를 구분할 수 있는 가상랜 태그를 삽입하라는 명령이 포함되는 것이고,
    상기 목적지 정보는 단말과 직접 연결된 오픈플로우 스위치에서 패킷에 이더넷 헤더로서 추가되는 것이며,
    단말과 직접 연결되지 않는 오픈플로우 스위치에서는 상기 가상랜 태그 및 상기 이더넷 헤더에 기초하여, 포워딩된 패킷이 IoT 트래픽인지 여부를 판단하여 상기 목적지 단말과 연결된 오픈플로우 스위치로 포워딩하는, 오픈플로우 컨트롤러.
KR1020150172099A 2015-12-04 2015-12-04 IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법 KR101740456B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150172099A KR101740456B1 (ko) 2015-12-04 2015-12-04 IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150172099A KR101740456B1 (ko) 2015-12-04 2015-12-04 IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법

Publications (1)

Publication Number Publication Date
KR101740456B1 true KR101740456B1 (ko) 2017-05-26

Family

ID=59052139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150172099A KR101740456B1 (ko) 2015-12-04 2015-12-04 IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법

Country Status (1)

Country Link
KR (1) KR101740456B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10798222B2 (en) 2018-06-25 2020-10-06 Hyundai Motor Company Apparatus for managing SDN-based in-vehicle network and control method thereof
US11038838B2 (en) 2018-06-15 2021-06-15 At&T Intellectual Property I, L.P. Prioritizing communication with non network-enabled internet of things devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011188433A (ja) * 2010-03-11 2011-09-22 Nec Corp 通信装置、通信制御方法、及び通信制御用プログラム
KR101527786B1 (ko) * 2013-12-31 2015-06-09 쿨클라우드(주) 하이브리드 sdn 네트워크 관리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011188433A (ja) * 2010-03-11 2011-09-22 Nec Corp 通信装置、通信制御方法、及び通信制御用プログラム
KR101527786B1 (ko) * 2013-12-31 2015-06-09 쿨클라우드(주) 하이브리드 sdn 네트워크 관리 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11038838B2 (en) 2018-06-15 2021-06-15 At&T Intellectual Property I, L.P. Prioritizing communication with non network-enabled internet of things devices
US11627107B2 (en) 2018-06-15 2023-04-11 At&T Intellectual Property I, L.P. Prioritizing communication with non network-enabled internet of things devices
US10798222B2 (en) 2018-06-25 2020-10-06 Hyundai Motor Company Apparatus for managing SDN-based in-vehicle network and control method thereof

Similar Documents

Publication Publication Date Title
KR101900536B1 (ko) Openflow 데이터 플레인 및 컨트롤 플레인을 갖는 클라우드 컴퓨터에서의 3g 패킷 코어의 구현
CN107113241B (zh) 路由确定方法、网络配置方法以及相关装置
CN112787931A (zh) 报文传输方法、代理节点及存储介质
CN114189905A (zh) 一种报文处理方法及相关设备
EP2880550B1 (en) Connection mesh in mirroring asymmetric clustered multiprocessor systems
CN115004656A (zh) 一种报文发送方法、设备及系统
CN105531967B (zh) 一种报文传输方法、设备及通信系统
CN104092614A (zh) 更新地址解析信息的方法和装置
US11985110B2 (en) Distribution of stateless security functions
US10764411B2 (en) Stream control transmission protocol SCTP-based communications method and system, and apparatus
CN112566164A (zh) 一种通信系统及服务质量控制方法
KR101740456B1 (ko) IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법
US8675669B2 (en) Policy homomorphic network extension
US10341453B2 (en) Facilitating in-network content caching with a centrally coordinated data plane
JP5937563B2 (ja) 通信基地局およびその制御方法
US20150244570A1 (en) Method, apparatus, and system for implementing tunneling processing
US11006482B2 (en) Upgrading access points
US20170150471A1 (en) Message transmission method and node device based on network selection and time arrangement
US10965532B2 (en) Software-defined networking device based on service profile learning
JP2024506089A (ja) パケット転送方法、装置、およびシステム
CN115242699A (zh) 报文传输方法、切片生成方法、装置及系统
US8811344B1 (en) Methods and apparatus for assigning same sequence number to multiple GTP messages
CN112804130A (zh) 报文处理方法及装置、系统、存储介质以及电子设备
US20240007395A1 (en) User equipment route selection policy for multi-link operation over multiple radio access technologies
US20240223507A1 (en) Method and apparatus for updating packet processing rule at high speed in sdn network environment

Legal Events

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

Payment date: 20200217

Year of fee payment: 4