Introducing CoMI Aligned with RestCONF (draft-ietf-netconf-restconf-04) Common data modeling language (YANG defined in RFC 6020) Protocol (CoAP instead.

Slides:



Advertisements
Similar presentations
Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
Advertisements

Presenter: James Huang Date: Sept. 29,  HTTP and WWW  Bottle Web Framework  Request Routing  Sending Static Files  Handling HTML  HTTP Errors.
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
SOAP.
XML in the real world (2) SOAP. What is SOAP? ► SOAP stands for Simple Object Access Protocol ► SOAP is a communication protocol ► SOAP is for communication.
SOAP Quang Vinh Pham Simon De Baets Université Libre de Bruxelles1.
©Silberschatz, Korth and Sudarshan12.1Database System Concepts Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B+-Tree Index Files B-Tree.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
HTTP Hypertext Transfer Protocol. HTTP messages HTTP is the language that web clients and web servers use to talk to each other –HTTP is largely “under.
Hypertext Transfer Protocol Information Systems 337 Prof. Harry Plantinga.
HTTP Overview Vijayan Sugumaran School of Business Administration Oakland University.
Client, Server, HTTP, IP Address, Domain Name. Client-Server Model Client Bob Yahoo Server yahoo.com/finance.html A text file named finance.html.
Rensselaer Polytechnic Institute CSC-432 – Operating Systems David Goldschmidt, Ph.D.
TP2653 Adv Web Programming SOAP and WSDL. SOAP Simple Object Access Protocol – Lightweight XML-based messaging protocol – A protocol for accessing a Web.
Web Architecture Dr. Frank McCown Intro to Web Science Harding University This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
HyperText Transfer Protocol (HTTP).  HTTP is the protocol that supports communication between web browsers and web servers.  A “Web Server” is a HTTP.
Maryam Elahi University of Calgary – CPSC 441.  HTTP stands for Hypertext Transfer Protocol.  Used to deliver virtually all files and other data (collectively.
CSCI 6962: Server-side Design and Programming Web Services.
Remote Procedure Calls Babak Esfandiari. RPC Introduced by Birrell & Nelson (1984) Remote Procedure Calls allow a program to make use of procedures executing.
Web Server Design Week 8 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 3/3/10.
ICN and DTN NetInf over BP using BPQ Elwyn Davies Folly Consulting Ltd/Trinity College Dublin or
CSC 600 Internetworking with TCP/IP Unit 7: IPv6 (ch. 33) Dr. Cheer-Sun Yang Spring 2001.
A Little Bit About Cookies Fort Collins, CO Copyright © XTR Systems, LLC A Little Bit About Cookies Instructor: Joseph DiVerdi, Ph.D., M.B.A.
Comments on draft-ietf-pkix-scvp-19.txt IETF Meeting Paris - August 2005 Denis Pinkas
1-1 HTTP request message GET /somedir/page.html HTTP/1.1 Host: User-agent: Mozilla/4.0 Connection: close Accept-language:fr request.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
Protocol for I2RS I2RS WG IETF #89 London, UK Dean Bogdanovic v0.1.
Appendix E: Overview of HTTP ©SoftMoore ConsultingSlide 1.
Operating Systems Lesson 12. HTTP vs HTML HTML: hypertext markup language ◦ Definitions of tags that are added to Web documents to control their appearance.
CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting HTTP.
Web Server Design Week 13 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 4/7/10.
HTTP Here, we examine the hypertext transfer protocol (http) – originally introduced around 1990 but not standardized until 1997 (version 1.0) – protocol.
Summer 2007 Florida Atlantic University Department of Computer Science & Engineering COP 4814 – Web Services Dr. Roy Levow Part 1 – Introducing Ajax.
RESTful Web Services What is RESTful?
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
Overview of Servlets and JSP
RESTful Studies Services Jim Philbin American College of Radiology Johns Hopkins School of Medicine DICOM Standard Committee, User Co-Chair DICOM WG-27,
1 3GPP2 GBA Overview Adrian Escott Chair, TSG-S WG4 24 May 2006.
Web Server Design Week 6 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/17/10.
DEVELOPING A MEDIA FRAGMENT NODE.JS SERVER MASTER DEGREE THESIS 25/09/ PASQUALE LISENA.
SRAMP-8 Update ZIP Publishing. Issue 8 – ZIP Publishing ZIP Publishing in the contributed documents needs to be reviewed and revisited. The basics of.
Globally Identifiable Number (GIN) Registration Adam Roach draft-martini-roach-gin-01 IETF 77 – Anaheim, CA, USA March 22, 2010.
ACS F2F 1st/2nd Aug, 2005 ACS Data Transport Sachiko Wada ASCADE, Inc.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
Discussion of open issues for WebSocket binding Group Name: PRO WG Source: Qualcomm Inc., Wolfgang Granzow, Nobu Uchida Meeting Date: PRO#22,
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Web Server Design Week 3 Old Dominion University Department of Computer Science CS 495/595 Spring 2006 Michael L. Nelson 1/23/06.
HyperText Transfer Protocol HTTP v1.1 hussein suleman uct cs honours 2009.
5 June 2015 Webex IPv6 over the TSCH mode of IEEE e Chairs:
22 May 2015 Webex IPv6 over the TSCH mode of IEEE e Chairs:
Outline What’s in the document Open Issues Encoding Device Discovery
HTTP – An overview.
2nd Interoperability testing issues
ALTO Protocol draft-ietf-alto-protocol-14
Node.js Express Web Services
HTTP Protocol Specification
Subscribing to YANG datastore push updates draft-netconf-yang-push-00 IETF #94 Yokohama A. Clemm A. Gonzalez Prieto
HTTP Protocol.
WEB API.
What is Cookie? Cookie is small information stored in text file on user’s hard drive by web server. This information is later used by web browser to retrieve.
Joe Clarke (presenting)
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Binary encoding draft-MAHESH-NETCONF-binary-encoding
WebDAV Design Overview
HTTP Hypertext Transfer Protocol
Zero Touch Provisioning for NETCONF/RESTCONF Call Home draft-ietf-netconf-zerotouch-19 NETCONF WG IETF 100 (Singapore)
Web Server Design Week 6 Old Dominion University
Web Server Design Week 7 Old Dominion University
Web Server Design Week 7 Old Dominion University
Presentation transcript:

Introducing CoMI Aligned with RestCONF (draft-ietf-netconf-restconf-04) Common data modeling language (YANG defined in RFC 6020) Protocol (CoAP instead of http) Security (DTLS instead of TLS) Payload encoded (CBOR instead of XML or JSON) Data node identifier (30 bit hash value instead of data node path) Hash values are encoded in base64 in URI, in binary in payload

Example RestCONF (214 bytes payload) GET /restconf/data/ietf-6tisch-mac:TSCHSpecificPIBAttributes Host: example.com Accept: application/yang.data+json HTTP/ OK Date: Mon, 23 Apr :01:30 GMT Server: example-server Content-Type: application/yang.data+json { "ietf-6tisch:TSCHSpecificPIBAttributes" : { "macMinBE" : 3, "macMinBE" : 7, "macDisconnectTime" : 255, "macJoinPriority" : 1, "macASN" : , "macNoHLBuffers" : true } CoMI (52 bytes payload) REQ: GET example.com/mg/nDAal RES: 2.05 Content (Content-Format: application/cbor) a1 1a 270c06a5 a6 1a 18f1deec 03 1a 3a4367ae 07 1a 0fd897c1 18 ff 1a 0f817d a 35920a57 1b a 2386c778 f5

YANG hash clashes Hashes are computed using the murmur3 hash on the canonical representation of the data node path. For example: mmh3 ('/6top:TSCHSpecificPIBAttributes/6top:macMinBE', 42) = or "Y8d7s" in base64 Hashes may be identical for different names, so-called clashes Hash clashes within a module can be detected and fixed at module design time Hash clashes between modules depend on the set of modules implemented by each CoMI server

YANG hash clashes Set of YANG hashes for Module A Set of YANG hashes for Module B Set of YANG hashes for Module C Hash clashes

Hash clashes handling as defined in draft-vanderstok-core-comi-06 CoMI servers with hash clashes need to implement a “rehash” list containing: The hash causing the clash The data node path A character appended to the path to resolve the clash CoMI clients need to retrieve the “rehash” list of each CoMI server prior to accessing them CoMI clients use the “rehash” list as a lookup table to associate the right data node with the right hash CoMI clients need to store the full data node names

Hash clashes handling as defined in draft-vanderstok-core-comi-06 Data nodes , value , value (Rehash to ) -… “rehash” list , “/6top:TSCHSpecificPIBAttributes/6top:macMinBE”, “_” CoMI server #1 Data nodes , value , value -… “rehash” list - CoMI server #n -Path of each data node for lookup in “rehash” lists -Server 1 “rehash” list -Server n “rehash” list CoMI client Step 1 Retrieve “rehash” list from server #1 to #n Step 2 For each access to data node, perform a lookup in “rehash” list to associate the right data node with the right hash Step 1 Step 2

First alternate solution (simplified “rehash” list) Assuming that hash clashes within each module are resolved at design time CoMI servers return a “hash clash” error only when a CoMI client tries to access data node(s) with hash clashes The CoMI client generates a simplified “rehash” list containing: The old hash The new hash The module identifier (local to client) The CoMI client uses the “rehash” list to resend the request with the proper hash

First alternate solution (simplified “rehash” list) Data nodes , value , empty (Rehashed to ) -… “extend” list , value CoMI server #1 Data nodes , value , value -… “rehash” list - CoMI server #n -Module name & data nodes hashes -Server 1 “rehash” list -Server n “rehash” list CoMI client Step 1 Try to access a data node Step 2 If “hash clash” error receive, retrieve “rehash” from “clash_file” using module name, old hash” Step 3 Try again to access a data node with the rehash value [ Step 2 ] Step 1 [ Step 3 ]

Second alternate solution (No “rehash” list) Assuming that hash clashes within each module is resolved at design time CoMI servers return a “hash clash” error only when a CoMI client tries to access data node(s) with hash clashes On reception of a “hash clash” error, a CoMI client resends its request with the optional query parameter specifying the module name. Notes: This format can also be used all the time to avoid “hash clash” errors. “rehash” list are not required (to implement, to retrieve, to lookup) But requires communication overhead, and module name in server For example: GET example.com/Y8d7s?select= ietf-6tisch-mac Permanent query overhead

Second alternate solution (No “rehash” list) Data nodes , ietf-6tisch-mac, value , ietf-6tisch-mac, value -… CoMI server #1 Data nodes , ietf-6tisch-mac, value , ietf-6tisch-mac, value -… CoMI server #n -Module name & data nodes hashes CoMI client Step 1 Try to access a data node Step 2 If “hash clash” error receive, try again to access the data node with the module name added as optional query parameter. e.g. GET example.com/Y8d7s?select= ietf-6tisch-mac Step 1 [ Step 2 ]

Third alternate solution (Managed IDs) Partially managed identifiers (Module ID) or fully managed identifiers (Module ID & Data node ID) Require IANA registration of each YANG module writer. Each writer need to assign module IDs and optionally data node IDs. Allows payload size reduction For example (24 bytes payload): REQ: GET example.com/mg/1&select(5) RES: 2.05 Content (Content-Format: application/cbor) a1 01 a ff b f5

Third alternate solution (Managed IDs) Data nodes -data node #1, module #5, value -data node #2, module #5, value -… CoMI server #1 Data nodes -data node #1, module #5, value -data node #2, module #5, value -… CoMI server #n -Module ID & data nodes ID CoMI client Step 1 Access a data node e.g. GET example.com/mg/1&select(5) Step 1

Other items to be discussed within CoMI Support of the YANG RPC Similar approach as the RestCONF RPC (protocol operations) Support of the YANG notification Similar approach as the RestCONF notification