Software Defined Network for Internet of Things
Transcription
Software Defined Network for Internet of Things
Software Defined Network for Internet of Things Sunyoung Han Konkuk University [email protected] 14 July 2016 WUNCA33, Chulalongkorn University, Thailand Contents 1. SDN - OpenFlow, Open vSwitch, Controller, OpenStack, NFV 2. IoT - IoTivity, CoAP, 6LoWPAN, Raspberry Pi & Arduino, Security 3. SDN for IoT 3 Introduction (Software Defined Network) SDN(Software Defined Network) • What is SDN? – Control and Data planes are decoupled. SDN Architecture [ONF] SDN Open Interfaces [TTA] Ref.[1][2] https://www.opennetworking.org/about/onf-overview, http://www.tta.or.kr/index.jsp 4 SDN(Software Defined Network) • Need for SDN – Layered architecture with standard Open interfaces – Experiment and research using non-bulky, non-expensive equipment – More accessibility since software can be easily developed by more vendors – More flexibility with programmability – Ease of customization and integration with other software applications Ref.[1][2] https://www.opennetworking.org/about/onf-overview, http://www.tta.or.kr/index.jsp 5 SDN(Software Defined Network) • SDN Controller 6 7 OpenFlow 8 What is OpenFlow? • “OpenFlow is based on an Ethernet switch, with an internal flowtable, and a standardized interface to add and remove flow entries.” – Nick Nckeown, et al., “OpenFlow: enabling innovation in campus networks,” ACM SIGCOMM Computer Communication Review, Vol. 38, Issue 2, pp.69-74, April 2008. Control Function ForwardingEngine Engine Forwarding Flow table Basic idea of OpenFlow • Separate Control function and Forwarding engine – OpenFlow Controller – OpenFlow Switch • Provide standard interface to control forwarding engine 9 10 OpenFlow • OpenFlow allows direct access to and manipulation of the forwarding plane of network devices such as switches and routers, both physical and virtual (hypervisor-based). Control plane OpenFlow Controller OpenFlow Protocol Forward to Controller Packet Flow Table OpenFlow Switch Data plane OpenFlow Ref.[3] http://www.slideshare.net/ireri339/sdndstw-ryu-developing Packet Drop 11 OpenFlow Switching OpenFlow Switch Software Layer Hardware Layer * MAC src * MAC dst port 1 5.6.7.8 Controller OpenFlow Table * IP Src IP Dst 5.6.7.8 port 2 * TCP TCP sport dport * port 3 Ref.[37] http://cleanslate.Stanford.edu, The Stanford Clean Slate Program OpenFlow Protocol Action port 1 port 4 1.2.3.4 OpenFlow Table Entry Ref.[37] http://cleanslate.Stanford.edu, The Stanford Clean Slate Program 12 OpenFlow Protocol • Controller with Switches • Maintains flow tables in OFS – Create – Delete • • – Modify Notify unknown packet to OFC Gather information and statistics 13 OpenFlow Specification • Current OpenFlow specification is v1.4 • Components – Secure Channel – Controller – Switch • Flow table 14 Components • Switch – Forwarding received packets according to flow tables – If unmatched packets are received, send packet-in message to controller • Controller – Handles packet-in event from switches – Communicates via TCP port 6633 – Create flow table – Modify flow table – Delete flow table 15 Flow Table • Match fields: to match against packets. – Ingress port, packet headers and optionally metadata specified by a previous table. • Priority: matching precedence of the flow entry. • Counters: updated when packets are matched. • Instructions: to modify the action set or pipeline processing. • Timeouts: flow expiration time by the switch. • Cookie: opaque data value chosen by the controller. – May be used by the controller to filter flow statistics, flow modification and flow deletion. – Not used when processing packets. Ref.[36] OpenFlow Speciifcation 1.4, ONF 16 Packet Flow Processing Ref.[36] OpenFlow Speciifcation 1.4, ONF 17 18 Matching • Forwarding the packet to the controller when the packet came in unknown Ref.[4] OpenFlow Specification 1.3, ONF Matching Process 19 Open vSwitch 20 Open vSwitch • OpenvSwitch is Open Source Software for OpenFlow Switch • Network interface devices connect to Open vSwitch bridge’s ports, and the ports can be configured like a physical switch’s port VM vNIC Virtual Network vNIC Physical Network Ref.[5] https://www.openvswitch.org/ Open vSwitch Architecture VM vNIC VM vNIC vSwitch Hypervisor SERVER Open vSwitch • Features – Multicast snooping – IETF Auto-Attach SPBM and rudimentary required LLDP support – Fine-grained QoS control – OpenFlow protocol support (including many extensions for virtualization) – IPv6 support – Multiple tunneling protocols (GRE, VXLAN, STT, and Geneve, with IPsec support) – Remote configuration protocol with C and Python bindings • Download Link – http://openvswitch.org/download/ 21 22 The Main Components Controller ovsdb-server ovs-vswitchd User Management Protocol (6632/TCP) OpenFlow (6633/TCP) Netlink OVS Kernel Module Kernel 23 Controller (OpenDaylight / ONOS) 24 Controller C / C++ C++ / Python Python JAVA Ref.[35] SangYun Han, “ONOS SDN Controller”, Kyunghee Univ. MOBILE CONVERGENCE LAB. 25 Opendaylight Beryllium Release (March 2016) OpenDaylight • OpenDaylight is Open Source Software for SDN/NFV • OSGi framework support • REST support for Northbound API • Supported protocols (Southbound Interface) – OpenFlow, NETCONF, OVSDB, CoAP, etc… • Download Link – https://www.opendaylight.org/software/release-archives 26 OpenDaylight • Membership 27 28 OpenDaylight • Release Name Date Hydrogen (Service Provider) February 4, 2014 Hydrogen (Base) February 4, 2014 Hydrogen (Virtualization) February 4, 2014 Helium September 29, 2014 Helium-SR1.1 December 18, 2014 Helium-SR1 Lithium Helium-SR4 November 10, 2014 June 29, 2015 August 11, 2015 Helium-SR2 January 27, 2015 Lithium-SR1 August 18, 2015 Lithium-SR3 December 3, 2015 Lithium-SR4 March 4, 2016 Helium-SR3 Lithium-SR2 Beryllium Beryllium-SR1 March 17, 2015 October 8, 2015 February 22, 2016 March 22, 2016 OpenDaylight • ‘PUT’ operation cycle – 'POST' request in XML or JSON format is to use the ‘Config’ datastore. • ‘GET’ operation cycle – To receive information from the datastore for controller, XML or JSON Ref.[7] https://wiki.opendaylight.org/view/Main_Page 29 OpenDaylight • AD(API-Driven)-SAL – Plugins can be data providers or data consumers or both – Translation between SB plugin API and abstract NB API is done in the abstraction module in AD-SAL – • – SAL APIs request routing between consumers and providers, and data adaptations are all statically defined at compile/build time AD-SAL has both NB and SB APIs MD(Model-Driven)-SAL – – – – – SAL APIs request routing between consumers and providers are defined from models, and data adaptation are provided by internal adaptation plugins API code is generated from models when a plugin is compile • API code is loaded into the controller along with the rest of the plugin containing the model when the plugin OSGi bundle is loaded into the controller Service adaptation is provided by plugin • An adaptation plugin is a regular plugin • Model to model translation between two APIs Provider and consumer plugins can exchange data through the MD-SAL storage MD-SAL allows both NB plugins and SB plugins to use the same API generated form a model Ref.[9] https://github.com/opendaylight/docs/blob/master/manuals/developer-guide/src/main/asciidoc/controller/mdsal-faq.adoc 30 31 ONOS SDN Network Operating System & SDN Control Platform Ref.[35] SangYun Han, “ONOS SDN Controller”, Kyunghee Univ. MOBILE CONVERGENCE LAB. ONOS Their mission is to enable Service Providers To build real SDN/NFV solutions. Ref.[35] SangYun Han, “ONOS SDN Controller”, Kyunghee Univ. MOBILE CONVERGENCE LAB. 32 ONOS 33 ONOS community Ref.[35] SangYun Han, “ONOS SDN Controller”, Kyunghee Univ. MOBILE CONVERGENCE LAB. 34 ONOS • OSGi based OSS Karaf • Deploy, Config • Multiple Instance Clustering • Distributed Clustering • Sync, Share • Fault tolerance using Distributed Core • Dynamic Clustering High Availability High Performance Scalability White Box (Open) • High Throughput • ~500K - 1M path setups/second • High Volume • ~500GB – 1TB state data • Low Latency • 10 ~ 100ms Ref.[35] SangYun Han, “ONOS SDN Controller”, Kyunghee Univ. MOBILE CONVERGENCE LAB. ONOS • Architectural Tenets – High availability, scalability and performance – Strong abstractions and simplicity – Protocol and device behavior independence – Separation of concerns and modularity Ref.[35] SangYun Han, “ONOS SDN Controller”, Kyunghee Univ. MOBILE CONVERGENCE LAB. 35 ONOS 36 ONOS Overall Architecture Application layer for specific services Transfer network information to the application layer, The key role of provides interface ONOS, distributed for the control subclustering Provide an interface for components capabilities for HA network infrastructure andcontrol, Scalability Network Element abstraction Protocol for the Network Element Set OpenFlow : SDN NetConf : Legacy Ref.[35] SangYun Han, “ONOS SDN Controller”, Kyunghee Univ. MOBILE CONVERGENCE LAB. 37 OpenStack What is OpenSource?(1/8) • The Open Source Definition 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Free Redistribution Source Code • The program must include source code • The license must allow modifications and derived works Derived Works Integrity of The Author’s Source Code No Discrimination Against Persons or Groups No Discrimination Against Fields of Endeavor Distribution of License License Must Not Be Specific to a Product License Must Not Restrict Other Software License Must Be Technology-Neutral Ref.[34] http://opensource.org , Open Source Initiative 38 What is OpenSource?(2/8) Ref.[10] HyeonJeong Jang, “Openstack_in_OpenSource”, OpenStack Korea Community 39 What is OpenSource?(3/8) “OCF is a standard & open source project that delivers “just-works” interconnectivity for developers, manufacturers and end users.” Ref.[30] Soohong Daniel Park, Ph.D., “Samsung OpenSource & IETF”, IETF mirror forum technology workshop 40 41 What is OpenSource?(4/8) • OCF Memberships +180 Members • Join as a OCF member Members of Board of Directors • Certify spec compliant apps and devices • Use OCF branding • Benefit from patent cross-licensing protection • Go to www.openconnectivity.org for membership Ref.[30] Soohong Daniel Park, Ph.D., “Samsung OpenSource & IETF”, IETF mirror forum technology workshop What is OpenSource?(5/8) • OCF Architecture Ref.[30] Soohong Daniel Park, Ph.D., “Samsung OpenSource & IETF”, IETF mirror forum technology workshop 42 What is OpenSource?(6/8) • OCF Protocols – OCF Protocol • Supporting CoAP (Constrained Application Protocol) • Supporting Wi-Fi, BT, BLE (ZigBee, Z-Wave – TBD) – CoAP • UDP based (TCP for Remote/Cloud Connection) • Multicast (for Discovery) • IETF CoRE Working Group Standards (RFC7252) Ref.[30] Soohong Daniel Park, Ph.D., “Samsung OpenSource & IETF”, IETF mirror forum technology workshop 43 What is OpenSource?(7/8) • OCF - IETF Collaboration OCF Ref.[30] Soohong Daniel Park, Ph.D., “Samsung OpenSource & IETF”, IETF mirror forum technology workshop 44 45 What is OpenSource?(8/8) • IoTivity Resource • Resource registration (server) • Device discovery with filtering (client) – e.g. GET /oc/core?rt=light • Resource discovery (client) Get OCF Client Set • • Property attributes (get/ set/ observe) (client/ server) Resource tree (resources with sub-resources) What’s your Status? I’m Off. Set your Status to On OK. Ref.[30] Soohong Daniel Park, Ph.D., “Samsung OpenSource & IETF”, IETF mirror forum technology workshop OCF Server R OpenStack: Logical Architecture(1/4) Ref.[10] HyeonJeong Jang, “Openstack_in_OpenSource”, OpenStack Korea Community 46 OpenStack (Recent Release Version) Year 2016 2015 Version 2016.04.07 Mitaka Release 2015.10.15 Liberty Release 2015.04.30 Kilo Release 2014 2014.10.16 Juno Release 2014.04.17 IceHouse Release 2012 2012.09.27 Folsom Release 2012.04.05 Essex Rlease 2010 2010.10.21 Austin Release 2013 2011 2013.10.17 Havana Release 2013.04.04 Grizzly Release 2011.09.21 Diablo Release 2011.04.15 Cactus Release 2011.02.03 Bexar Release Ref.[10] HyeonJeong Jang, “Openstack_in_OpenSource”, OpenStack Korea Community 47 OpenStack(3/4) Ref.[27] JaeSeok An, “OpenStack”, KRnet, 2016 48 OpenStack: Logical Architecture(4/4) OpenStack • Compute Service – Nova • Object Storage Service – Swift • Image Service – Glance • • • • • • Telemetry Service – Ceilometer • • • Orchestration Service – Heat • Authentication Service – Keystone Network Service – Neutron Block Storage Service – Cinder Dashboard Service – Horizon Database Service – Trove Elastic Map Reduce – Sahara Bare-Metal Provisioning – Ironic Containers Service - Magnum Ref.[10] HyeonJeong Jang, “Openstack_in_OpenSource”, OpenStack Korea Community 49 50 NFV (Network Function Virtualization) Network Function • 4G Network… EPC(MME, S/P-GW,..), Middle Boxes at SGi-LAN) • Middle Boxes at Cloud Center ( Portal, Enterprise, University,…) Ref.[31] Younghan Kim, “NFV”, Soongsil University 51 Network Function & Service Function Chain • 4G Network… EPC(MME, S/P-GW,..), Middle Boxes at SGi-LAN) Ref.[31] Younghan Kim, “NFV”, Soongsil University 52 53 NFV and SDN • NFV SDN Creates competitive supply of innovative applications by third parties. Open Innovation Software Defined Networks Network Functions Virtualization Creates network abstractions to enable faster innovation. Reduces CAPEX, OPEX, Space & Power Consumption. Comparison of NFV and SDN Ref.[13] Sungwon Lee, “SDN/NFV foundation, technology evolution and development”, Kyunghee University 54 NFV Functional Architecture SW Instances VNF Instances VNF VNF VNF VNF NFV Infrastructure(NFVI) Virtual Resources Virtualization SW HW Resources Virtual Compute Virtual Storage Virtual Network Compute Storage Network Virtualization Layer NFV Functional Architecture Examples of VNFs - Home routers and set top boxes. Security functions : Firewalls, intrusion detection systems. Mobile network nodes : HLR/HSS, MME, SGSN, GGSN/PDN-GW, RNC. Ref.[12] Insun Jang and Sangheon Pack, "NFVRG" Technology Trends Updates”, IETF mirror forum technology workshop OPNFV • OPNFV(Open Platform for NFV) – – – – Open source project To accelerate the introduction of new NFV products and services Releases : Arno(June 4, 2015), Brahmaputra(February 25, 2016) Goals • Develop an integrated and tested open source platform that can be used to build NFV functionality, accelerating the introduction of new products and services • Include participation of leading end users to validate OPNFV meets the needs of user community • Contribute to and participate in relevant open source projects that will be leveraged in the OPNFV platform; ensure consistency, performance and interoperability among open source components • Establish and ecosystem for NFV solutions based on open standards and software to meet the needs of end users Ref.[32] https://www.opnfv.org/about 55 Brahmaputra • • Brings rich platform-level testing of NFV functionality and use cases to the industry Enhanced stability, system and unit testing and integration, infrastructure and documentation Ref.[33] https://www.opnfv.org/software 56 57 Introduction (Internet of Things) 4 Key elements for IoT service • Device + Network + Platform + Application = IoT service Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 58 Key Features of IoT Data • Key performance measure are “connections”, “Transactions” and “Accumulation” Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 59 Technical requests for Openstack as a IoT-Cloud Platform • QoS, I/O guaranteed • Feature of Message Broking • Management Integration • Application performance monitoring • Easy to manage data stores and ETL(Extract, Transform, Load) Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 60 QoS, I/O guaranteed Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 61 Feature of Message Broking • Message Broker : – Pub/Sub model (Distributed processing) – Asynchronous I/O – Retrying tasks if workers fail • Support multiple protocol for IoT : – MQTT – Kafka : A high-throughput, distributed, publish-subscribe messaging system – CoAP – HTTP/2 • QoS Control: – Bandwidth – Priority Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 62 63 Management integration • Management integration includes: Deploy Automation Authentication Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University Monitoring Application performance monitoring • Data Gathering and Visualizing for AP monitoring : Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 64 Easy to manage data stores and ETL • Easy to manage various data stores – RDB : mysql, PostgreSQL – NoSQL : mongoDB, CouchDB,… – KVS(cache) : Redis, Couchbase, Cassandra, … • Easy to manage various data extract, transform and load – (ex.1) KVS to NoSQL – (ex.2) NoSQL to Object storage Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 65 IoT architecture in NTT DATA Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 66 IoT architecture on Openstack Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 67 Some other Requirements in Platform • Scalability • Lifecycle Management • Peer to Peer Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 68 69 Network Side New Considerations Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University Endpoint-Aware Service Function Chaining Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 70 Service function chaining for the IoT data plane • Protect IoT assets, gather network telemetry data, prescribe high value network services Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 71 Mobile Network Slicing for IoT Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 72 73 Mobile Edge Computing and vCPE network services • Virtual network services are now available at the network edge Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 74 DevOps(CI,CD) Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University Recall IoT Building Blocks • Connectivity • Device Management • Information Management Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 75 What’s Continuous Integration? • In software engineering, continuous integration (CI) implements continuous processes of applying quality control – smart pieces of effort, applied frequently. • Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 76 Continuous Integration • Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. • Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 77 Continuous Integration Benefit • Project Management Detect system development problems earlier Reduce risks of cost, schedule, and budget • Code Quality Measureable and visible code quality Continuous automatic regression unit test Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 78 Ingredients of DevOps • Tools – Source Code Management, e.g. Git – Artifact repository, e.g. maven – Review Management System, e.g. Gerrit – Integration Engine, e.g. Jenkins – Configuration management system, e.g. Ansible, Chef – Test Harness, e.g rally, tempest, yardstick – Flexible System Deployment, e.g Vagrant • Principles and Practices – Infrastructure as code – Declarative Topologies – Test driven development – Agile development Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 79 Jenkins – Fitting in Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 80 Jenkins Features • Trigger a build • Get source code from repository • Automatically build and test • Generate report & notify • Deploy • Distributed build Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 81 Case Study : Verizon PoC : Problems • Take 2~3 months to release new features • With DevOps change IT development lifecycle – Spin environment in minutes – Run thousand of test cases in a single click – Make releases in week • Network Function Upgrades – Upgrade a firewall or a packet gateway setup environment, take a week not end-to-end automation – How to make upgades agile ? Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 82 NFV CI/CD Automation Use cases • Use cases – Ericsson Virtual Router Onboard and Instantiate – Virtual Router Seamless Upgrade • NFV CI/CD benefits – Enable DevOps for VNF deployments – Shorten TTM for product features updates – Increase quality by streaming deployments – Minimize recurring costs and efforts for deployments and upgrades Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 83 NFV DevOps Life cycle Automation PoC • Integrate two development life cycle Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 84 Infrastructure as code • Configuration management on steroid • Core tenet of DevOps • Bring tried and tested practices from software engineering into infrastructure operations • Revision control – Use git tools – Track both what was changed and why – Audit all changes to the cluster – See precisely what has changed between two points in time Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 85 Other Case :OPNFV Octopus CI/CD approach Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 86 Discussion • Standards vs OpenSource Project ? • Protocol vs API ? • KR Position in IoT ? Ref.[15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University 87 88 IoTivity Reasons for Standard • Interoperability • Collaborative deployment • Cost efficiency Ref.[30] Soohong Daniel Park, Ph.D., “Samsung OpenSource & IETF”, IETF mirror forum technology workshop 89 Reasons for Standard • Interoperable devices and features are tremendously growing up Ref.[30] Soohong Daniel Park, Ph.D., “Samsung OpenSource & IETF”, IETF mirror forum technology workshop 90 Introduction to IoTivity (1/2) • AllSeen Alliance vs. OIC (Open Interconnect Consortium) Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 91 Introduction to IoTivity (1/2) • OCF (Open Connectivity Foundation) Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 92 Conceptual Architecture of IoTivity Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 93 94 IoTivity Framework Additional Service Basic Service IoTivity Base 2 (C++ SDK) IoTivity Base 1 (C API Stack/ Internal) Transport Protocol REST Framework Control/Controllee Manager Software Sensor Manager Protocol Plugin Manager Things Manager Notification Manager Resource Manager (Registration, Discovery, Attribute GET/SET/OBSERVE) JSON Encoder/Decoder OCSocket Connectivity UDP/IP OCStack OCCoAP (Transport) libcoap-4.1.1 Logger TCP/IP (Future) Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 ocrandom ocmalloc Future PAN (Future) 95 IoTivity Stack Application IoTivity Base(C++ SDK) Application IoTivity Base(C SDK) IoTivity Base(C SDK) CoAP CoAP UDP / IP UDP / IP Resource API For Unconstrained Devices Resource API For Constrained Devices Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 AllJoyn Stack Application Base Service Frameworks AllJoyn Core Frameworks AllJoyn Router AllJoyn Software Frameworks Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 96 97 IoTivity vs. AllJoyn • Comparison between IoTivity and AllJoyn IoTivity AllJoyn Feature RESTful RMI Management Resource BusObject Topology Point to Point Mesh of Stars Protocol CoAP Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 D-Bus 98 Interaction between OIC Client & Server 2. Light Bulb Resource Discovery (GET) 3. Status Query for Light Bulb (GET) 4. Config Query for Light Bulb (PUT) 5. Status Observation Query (GET) OIC Client (User) Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 OIC Server (Resource) 1. Resource Registration 99 Registering a Resource ISV Server App Server Wrapper (internal) SDK OCStack (internal) [1]Platform.registerResource(…) [2]InProcServer.registerResource(…) [3]OCCreateResource(…) OCStackResult Failure / Success Failure / Success Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 100 Discovering a Device/Resource OIC Client (Smartphone) Application C++ API (SDK) C API (Stack/Internal) IoTivity Device (2) Reply from the Corresponding IoT Devices in Unicast (1) Query in Multicast (e.g., GET/oc/core?rt=light) Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 OIC Server (IoT Devices) IoTivity Device IoTivity Device IoTivity Device 101 Querying a Resource State (GET) Client ISV Client App Client SDK [1]resource.get(callback) Client Wrapper (Internal) Client OCStack (Internal) Server OCStack (Internal) Server Wrapper (Internal) Server SDK Server ISV Server App [2]InProcClient.get(callback) [3]OCDoResource() Failure / pending [4] GET /light/1 [5]call entity handler [6] call OCResource [7] InProcClient.get() [11] ACK, CONENT [13] asyncResultHandler Resource Get [10] Return code [9] Return code [8] Return code [12] invoke wrapperAsyncCallbackFunc Get Request Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 Call Entity Handler Return Result code 102 Setting a Resource State (PUT) Client ISV Client App Client SDK Client Wrapper (Internal) [1]resource.put(attributeMap, callback) [2]InProcClient.setResourceAttributes (attributeMap, callback) Client OCStack (Internal) Server OCStack (Internal) Server Wrapper (Internal) Server Server SDK ISV Server App [3]OCDoResource() Failure / pending [4] PUT /light/1 [5]call entity handler [6] call OCResource [7] InProcClient.put(attributeMap) [11] ACK, CHANGED [13] asyncResultHandler Resource Put [10] Return code [9] Return code [8] Return code [12] invoke wrapperAsyncCallbackFunc Put Request Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 Call Entity Handler Return Result code 103 Observing a Resource State (1/2) Client ISV Client App Client SDK [1]resource.observe() Client Wrapper (Internal) [2]InProcClient.observe() Client OCStack (Internal) Server OCStack (Internal) Server Wrapper (Internal) ISV Server App [4] GET /light/1 [5]call entity handler [11] ACK, CONTENT Resource Observe Server SDK [3]OCDoResource() Failure / pending [13] asyncResultHandler Server [10] Return code [6] call OCResource [9] Return code [7] InProcClient.observe() [8] Return code [12] invoke wrapperAsyncCallbackFunc Observe Request Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 Call Entity Handler Return Result code 104 Observing a Resource State (2/2) Client ISV Client App Client Wrapper (Internal) Client SDK Notification [19] asyncResultHandler Client OCStack (Internal) Server OCStack (Internal) [17] CON, CONTENT [18] invoke wrapperAsyncCallbackFunc Server Wrapper (Internal) [16] OCNotifyObservers() Server ISV Server App Server SDK [14] Change Event [15] OCNtifyObserves() Cancellation [20] Result [21] [22] OCCancel() [23] GET /light/1 Trans Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 Notify Event Installation (1/5) • How You Can Use – Use the code from IoTivity.org • Open to any individual or company • Code is available at IoTivity.org under the Apache v2.0 license Ref.[30] Soohong Daniel Park, Ph.D., “Samsung OpenSource & IETF”, IETF mirror forum technology workshop 105 Installation (2/5) • Install – https://www.iotivity.org/documentation/linux/getting-started $ sudo apt-get install git-core $ sudo apt-get install scons $ sudo apt-get install ssh $ sudo apt-get install build-essential g++ $ sudo apt-get install libglib2.0, scons, unzip, uuid-dev, python-dev, autotools-dev, libicu-dev, libbz2-dev Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 106 Installation (3/5) • Download Libraries $ tar xzvf boost_1_55_0.tar.gz $ cd boost_1_55_0/ $ ./bootstrap.sh --with- libraries=system,filesystem,date_time,thread,regex,log,iostreams, program_options --prefix=/usr/local $ sudo apt-get update $ sudo apt-get install python-dev autotools-dev libicu-dev buildessential libbz2-dev Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 107 Installation (4/5) $ sudo ./b2 install 108 $ sudo sh –c ‘echo ‘/usr/local/lib’ >> /etc/ld.so.conf.d/local.conf’ $ sudo ldconfig Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 Installation (5/5) • Download IoTivity source code. • Build the IoTivity project for linux. – $ <..iotivity directory..> scons • After build, sample code had made in <iotivity>/out/ directory. Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 109 Demonstration Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 110 Access the IoTivity Website Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 111 Access Get-Involved Webpage Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 112 11 3 CoAP 114 CoAP • Constrained Application Protocol (CoAP) – IETF Standard in CoRE Working Group: RFC 7252 – CoAP is one of the open standards communication protocols for IoT – CoAP use a Web-based model, HTTP-like but based on UDP – URI and content-type support – Asynchronous message exchanges – DTLS for Secure – CoAP defines 4-type Messages using a 4-byte, binary, and base header format with binary options. Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 Application Request / Responses Message UDP / DTLS CoAP 115 CoAP • CoAP Message Format 0 Ver T TKL 0xff 8 Code 16 24 Message ID 32 Token (if any, TKL bytes) … Options (if any) … Payload (if any) … • Ver (Version) : CoAP version number (01) • T (Message Type) : Confirmable (0), Non-confirmable (1), Acknowledgement (2), or Reset (3) • TKL (Token Length) : The length of the variable-length Token field (0-8 bytes) • Code : 3-bit class (e.g., request and success response) and 5-bit details • Message ID : To detect message duplication and to match messages of type Acknowledgement/Reset to messages of type Confirmable/Non-confirmable. • Token : The token value is used to correlate requests and responses. Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 116 CoAP • 2 Types of Transmission – Confirmable : The recipient sends the sender an ACK message with the same Message ID for the confirmable message. – Non-Confirmable : A message that does not require reliable transmission can be sent as a Non-confirmable message. Client Server Client CON [0x7d34] NON [0x01a0] ACK [0x7d34] Reliable Message Transmission Server Unreliable Message Transmission Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 117 CoAP Architecture Rest C Server Server Internet HTTP Proxy C C C CoAP C Constrained Environments Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 11 8 6LoWPAN 119 6LoWPAN • IPv6 over Low-Power Wireless Personal Area Networks – N/W Adaptation Layer between IPv6 Protocol & IEEE 802.15.4 – Encapsulation (RFC 4944) and Header Compression (RFC 6282) – Neighbor Discovery Optimizations (RFC 6775) HTTP TCP RTP UDP ICMP Application Transport IP Network Ethernet MAC Data Link Ethernet PHY Physical Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 Application UDP IPv6 ICMP 6LoWPAN IEEE 802.15.4 MAC IEEE 802.15.4 PHY 120 6LoWPAN • IPv6 over Low-Power Wireless Personal Area Networks – Sensor nodes use 6LoWPAN over 802.15.4 to create a mesh network that is connected to an Ethernet-equipped gateway node. 6LoWPAN Network Gateway • • • • Internet Communications range : 10 meter Transfer rate : 250 kbit/s Frequency bands : 868/915/2450 MHz MAC Protocol : CSMA/CA Ref.[16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 121 Raspberry Pi & Arduino 122 Raspberry Pi & Arduino (1/4) • Raspberry Pi – A series of credit card-sized single-board computers developed in the United Kingdom by the Raspberry Pi Foundation – The Foundation provides Debian and Arch Linux ARM distributions for download, and promotes Python as the main programming language, C, C++, PHP, Java, Perl, Ruby, Squ eak Smalltalk and more also available. Ref.[28] https://en.wikipedia.org/wiki/Raspberry_Pi Raspberry Pi 3 model B 123 Raspberry Pi & Arduino (2/4) Type Generati on SoC CPU GPU Model A 1 1+ Model B 1 1+ Zero 2 3 Broadcom BCM2835 Broadcom BCM2836 Broadcom BCM2837 700 MHz single-core ARM 1176JZF-S 900 MHz 32bit quad-core ARM CortexA7 1.2 GHz 64-bit quad-core ARM CortexA53 N/A Broadco m BCM283 5 1 GHzAR M1176JZ F-S singlecore Broadcom VideoCoreIV @ 250 MHz (BCM2837: 3D part of GPU @ 300 MHz, video part of GPU @400 MHz) OpenGL ES 2.0 (BCM2835, BCM2836: 24 GFLOPS / BCM2837: 28.8 GFLOPS) MPEG-2 and VC-1 (with license), 1080p30 H.264/MPEG-4 AVC high-profile decoder and encoder(BCM2837: 1080p60) Ref.[28] https://en.wikipedia.org/wiki/Raspberry_Pi 124 Raspberry Pi & Arduino (3/4) Type Generati on Memory Onboard network Target price Model A 1 1+ Model B 1 256 MB 2 512 MB None 25 US$ 1+ 20 US$ Ref.[28] https://en.wikipedia.org/wiki/Raspberry_Pi Zero 3 1 GB 10/100 Mbit/s Ethernet, 10/100 Mbit/s Ethernet (8P8C) 802.11n USB adapter on the USB hub wireless, Bluetoot h 4.1 35 US$ 25 US$ 35 US$ 35 US$ N/A 512 MB None 5 US$ 125 Raspberry Pi & Arduino (4/4) • Arduino – A hardware and software company, project, and user community that designs and manufactures computer open-source hardware, open-source software, and microcontroller-based kits for building digital devices and interactive objects that can sense and control physical devices. – For programming the microcontrollers, the Arduino project provides an integrated development environment (IDE) based on a programming language named Processing, which also supports the languages C and C++. Ref.[29] https://en.wikipedia.org/wiki/Arduino "Arduino Uno" SMD Revision 3 126 Security Security Vulnerabilities in IoT • IoT means that everything can be exploited • security attack issues (so many) – Remotely hack a 2014 Jeep Cherokee (www.wired.com) – A suite of Vulnerabilities in the Tesla Model S (DefCon hacker conference) – Disable pacemaker WiFi capability – Droug infusion pumps • Stopped selling in 2013(FDA) Ref.[18] NamHui Kang, “Internet of Things Security-IETF Standard trends”, IETF mirror forum technology workshop 127 Security services in IoT • Supporting CIA services for communications in IoT – Standard trends • IETF : CoAP/DTLS/UDP – DICE WG : CoAP over DTLS Profile • OMA LWM2M - CoAP/DTLS/UDP, CoAP/DTLS/SMS • OASIS : MQTT/TLS/TCP Ref.[19] NamHui Kang, “Internet of Things Security-IETF standard technology”, Duksung University 128 CoAP over DTLS (1/2) • DTLS(Datagram Transport Layer Security) – A tweak to TLS – Runs over UDP, using UDP to provide end-to-end transport – Becoming more widely used, e.g. Cisco VPN products – Allow for retransmission of handshake messages – Allow out-of-order arrival of messages Application(CoAP, XML) Security(DTLS) Transport(UDP) Network(IPv6) PHY/MAC(IEEE 802.15.4) DTLS in protocol stack Ref.[20] Kenny Paterson, “TLS and DTLS : A Tale of Two Protocols”, Royal Holloway University, London Ref.[21] Raj Jain, “Constrained Application Protocol for Internet of Things” 129 130 Introduction International Research Network 131 KOREN & KREONET TEIN4 • Trans-Eurasia Information Network – Increase direct Internet connectivity for research and education between Europe and Asia – Improve intra-regional connectivity within Asia – Act as a catalyst for the development of national research networking in the developing countries in the Asia-Pacific region • Two key elements in networking between Europe and Asia: – Asian regional infrastructure connecting TEIN4’s Asian partners – Connectivity between the TEIN4 regional backbone and GÉANT2 Ref.[26] www.tein4.net 118 APAN/TEIN4 Ref.[25] http://www.koren.kr/koren/eng/net/natworkmap.html?cate=3&menu=1 119 KOREN • KOREN : KOREA Advanced REsearch Network – A non-profit testbed network infrastructure established for facilitating research and development and international joint research cooperation. – provide quality broadband network testbed for domestic and international research activities to the industry, academia, and research institutions, enabling testing of future network technologies and supporting R&D on advanced applications.. – Cooperate with many international research network such as APII, TEIN. • Advantages of KOREN – Establishment of high-capacity and high-quality research testbed and internetworking with international research networks – Test and verify next generation network application technologies – Provide infrastructure for validation test(sensors, future networks) 121 KOREN Topology Ref.[25] http://www.koren.kr/koren/eng/net/natworkmap.html?cate=3&menu=1 122 KREONET 123 - KREONET (Korea Research Environment Open Network) is a R&D network of Korea supported by Korean government. - KREONET member are Currently over 200 organizations (research institutes, universities, industrial, research laboratories) - KREONET has 12 regional network centers & NOC in Daejeon, KISTI - Major Network Services are IPv4/IPv6 Unicast Routing, Multicast routing, Lambda networking, QoS Service, TE.. - Major S&T resource service with KREONET are National Supercomputing Center TeraCluster(512CPU) S&T DB Service Advanced Experimental Facilities 137 138 Research on IoT/ Cloud host management in SDN Introduction • Centralized IoT host management is needed – IoT hosts are connected through autonomous network – Hart to control one by one because of the diversity and huge number of the IoT hosts • SDN based IoT can have: – Centralized control : enables controller keep global view of network topology – Programmability : Easy to combined with other Open source software and easy to deliver application requirements to network layer just by SDN control application 139 IoT Host Management System Architecture • IoT host address management (collection, blocking and translation) using controller application 140 141 Experiment Environment • Network Topology Switch Controller Switch Host Switch Host Host 142 Experiment Environment • The real testbed equipment – install Opendaylight controller in PC – 3 Open vSwitches and 2 hosts are using raspberry pi 3 – Host1 send web streaming to Host2 using webcam – using webcam Switch Switch Host Web Camera Switch Host Host Test Scenario (1/4) • Host Address collection 143 Test Scenario (2/4) • Host bloking 144 145 Test Scenario (3/4) • Host address translation - Achieve Host2 request video to Host1, but the requested video will be sent by Host3 by adding flow entry to corresponding OVSs OVS OpenDaylight OVS OVS Host1 Host3 I hope Host 1! Host2 I sent Host 3… Test Scenario (4/4) • Host address translation 146 147 Dynamic QoS Routing Algorithm in SDN Introduction • Rising popularity of multimedia applications with high requirements , so high and new requirements on QoS routing other than best effort approach. • QoS routing requires an awareness of dynamic network status and application QoS requirement as well. • Classification flows according to the application QoS requirements and find the best satisfied path. 148 SDN based Dynamic QoS Routing Framework 149 SDN based QoS Routing Algorithm 150 • Routing algorithm based on two cases • Feasible path exists • None feasible path (In traditional QoS routing algorithm, the flow will be dropped) • Find the path with best-effort on QoS satisfaction • In case different flows selects the same path, QoS for data from higher priority applications will be considered firstly. • Priority: - For example: priority VoIP > Video > FTP. - FTP will be suppressed if other higher priority applications on the same unfeasible path 907 New Millennium Hall, KU, Seoul, Korea 150 151 Flow Chart of Routing Algorithm Initially apply existing routing Bandwidth-sensitive Flow statsitic collection Flow classification (bandwidth, delay, delay/bandwidth sensitive) filtering no Both bandwidth and delay satisfied? cost, send the path with least bandwidth cost Finding feasible paths filtering Bandwidth satisfied? yes Find the path with minimum delay cost no no Find the path with minimum bandwidth cost ranking Delay-sensitive no yes ranking Calculate the bandwidth yes yes yes Delay satisfied? Find the path with minimum bandwidth cost no Find the path with minimum delay cost ranking OSPF filtering If none feasible path, find besteffort QoS performance path Dynamic QoS Routing Algorithm Implementation • Dynamic QoS Routing algorithm implementation as controller application – Will find paths with best QoS performance by flow monitoring – Different flows have different routing path depending on Application QoS requirement - Dynamic QoS Routing Controller Application - Implementation Environments 152 Experiment Result • Dynamic QoS routing algorithm application test – Streaming video from H1 to H2, if current path are lack of available bandwidth because of network condition changes, then it will automatically send video to another path which is satisfy the video transmission requirement. 95 Experiment Result 95 155 Mobility Support in SDN IoT networks Drawbacks of Existing Mobility Solutions • Tunneling for each MN – Between MN/FA and HA (MIPv4) or MAG and LMA (PMIP) – Result in suboptimal routing • Signaling overhead – IP Header encapsulation during tunneling – Messages: HA discovery, MN registration, Binding Update, etc. • Scalability issues – HA traffic congestion if MN too many – Network entity limitation, FA, HA, MAG, LMA, etc. • Only support MN with public IP address 156 SDN based mobility • OpenFlow protocol has not natively support mobility yet • SDN based mobility – Centralized control enables controller keep global view of whole network topology – Reduce overhead for supporting mobility to IoT device • Propose SDN based mobility mechanism – SDN based mobility support to IoT device without IP address change • From basic OpenFlow functions, we can : – Configure forwarding plane • according to the requirements of applications and services – Manipulate Per-flow forwarding through: • Managing flow tables at OpneFlow Switches(OFS) • Modifying packet header • Build GRE tunnel among OFSs 157 SDN-based IP Mobility Support Architecture • After handover, the first packet from MN is sent to Controller Process: ①: Packet from MN to CN ②: packet_in message to Controller ③: Authentication between Controller and MN ④: flow_mod message to distribute specific flow entries to S1, S2, and S3 S3: Map MN’s IP/Port to S3’s IP/Port S1: Map S3’s IP/Port back to MN’s IP/Port S2: Delete MN’s flow entries ⑤: Packets are redirected from S3 to S1 ⑥: S1 translates packet to the original as from MN Controller 158 SDN-based IP Mobility Support Architecture • CN sends packet to MN before Flow Table of S1 updated Process: ①: Packet from CN to MN ②: S1 sends the packet to MN’s home network ③: S2 sends packet_in to controller. Because MN’s flow entries on S2 were deleted when controller detected new attach point of MN. ④: Controller sends flow_mod to S1, S2, and S3 S1: Map MN’s IP/Port to S3’s IP/Port S3: Map S3’s IP/Port back to MN’s IP/Port S2: Map MN’s IP/Port to S3’s IP/Port ⑤: Packet is redirected from S2 to S3 ⑥: S3 translates to the original packet as from CN ⑦: Subsequent packets exchange directly between S1 and S3. 159 Testbed Environment • Implement the OVS using Raspberry Pi – Main OVS : Connect to Controller and APs – OVS AP : Also implement the AP using Raspberry Pi – IoT Devices : Raspberry Pi 160 Real testbed • Simulation using Mininet-WiFi 161 16 2 SDN and Cloud based Forest Fire Detection System using IoT devices Introduction • Collecting Temperature, Illumination and Humidity sensor data to detect forest fire. • Once forest fire is detected, turn on the camera • All sensor data and web streaming will be sent to the DB server and Web server which is located in OpenStack • We can see the real-time video streaming and sensor data online 163 System Design 164 System Implementation Plan 165 System Implementation Plan 166 System Implementation Plan • Once OVS is burnt out , then reroute. OVS OVS OVS OVS Routing Changes Controller OVS OVS OVS 167 OVS OVS OVS Camera • • Classification Calculation 168 System Implementation Plan OpenStack Server Layer ( Data for Service ) Wired data Communications Network Layer - Wired ( Data Analyses ) Wireless data Communications Sensing Layer - Wireless ( Data Collection ) 169 System Implementation Plan • Sensors Temperature-humidity sensor Arduino Uno Illumination sensor 170 Sensors using Arduino Illumination sensor LED sensor Temperature-humidity sensor Sensors using Arduino 171 Sensors using Arduino • Sensor data 172 Run OVS & AP in Raspberry Pi 3 • Raspberry Pi 3 173 System Implementation Plan • Network Topology in OpenStack 174 System Implementation Plan • Web streaming and sensor data 175 Demo 176 Reference [1] https://www.opennetworking.org/about/onf-overview [2] http://www.tta.or.kr/index.jsp [3] http://www.slideshare.net/ireri339/sdndstw-ryu-developing [4] OpenFlow Specification 1.3, ONF [5] https://www.openvswitch.org/ [6] http://www.frank-durr.de/?p=75 [7] https://wiki.opendaylight.org/view/Main_Page [8] http://docs.inocybe.com/dev-guide/content/_opendaylight_controller_md_sal_faqs.html [9] https://github.com/opendaylight/docs/blob/master/manuals/developer-guide/src/main/asciidoc/controller/md-sal-faq.adoc [10] HyeonJeong Jang, “Openstack_in_OpenSource”, OpenStack Korea Community, 2015 [11] HyeonJeong Jang, “Billing_for_OpenStack_Solution”, OpenStack Korea Community [12] Insun Jang and Sangheon Pack, "NFVRG" Technology Trends Updates”, IETF mirror forum technology workshop, 2016 [13] Sungwon Lee, “SDN/NFV foundation, technology evolution and development”, Kyunghee University, 2016 [14] Bhavna Singh, “How Internet of Things(IoT) Are Going To Impact Your Business?” [15] Younghan Kim, “IoT, Openstack, DevOps”, Soongsil University, 2016 [16] Jaehoon Jeong, “IoTivity:OFC_Open_Source_Project”, KRnet, 2016 [17] John Wiley & Sons, “6LoWPAN: The Wireless Embedded Internet Companion Lecture Slides” [18] NamHui Kang, “Internet of Things Security-IETF Standard trends”, IETF mirror forum technology workshop, 2015 [19] NamHui Kang, “Internet of Things Security-IETF standard technology”, Duksung University [20] Kenny Paterson, “TLS and DTLS : A Tale of Two Protocols”, Royal Holloway University, London 177 Reference [21] Raj Jain, “Constrained Application Protocol for Internet of Things” [22] Zach Shelby, “Lightweight Device Management for IoT”, http://community.arm.com/groups/internet-of-things/blog/2014/02/24 [23] Suhas Rao et al., “Implementing LWM2M in constrained IoT devices”, ICWiSe, 2015 [24] “CoAP, OMA LWM2M, and IPSO Smart Objects”, ARM, 2014 [25]http://www.koren.kr/koren/eng/net/natworkmap.html?cate=3&menu=1 [26] www.tein4.net [27] JaeSeok An, “OpenStack”, KRnet, 2016 [28] https://en.wikipedia.org/wiki/Raspberry_Pi [29] https://en.wikipedia.org/wiki/Arduino [30] Soohong Daniel Park, Ph.D., “Samsung OpenSource & IETF”, IETF mirror forum technology workshop, 2016 [31] Younghan Kim, “NFV”, Soongsil University, 2016 [32] https://www.opnfv.org/about [33] https://www.opnfv.org/software [34] http://opensource.org , Open Source Initiative [35] SangYun Han, “ONOS SDN Controller”, Kyunghee Univ. MOBILE CONVERGENCE LAB. [36] OpenFlow Switch Speciifcation version 1.4.0 [37] http://cleanslate.Stanford.edu, The Stanford Clean Slate Program [38] Srini Seetharaman et al., “OpenFlow/SDN tutorial”, Deutsche Telekom, Silicon Valley Innovation Center 178 179 Thank You!