API Extension Discussion for MIF-enabled Hosts IETF#77 Dapeng Liu, Zhen Cao.

Slides:



Advertisements
Similar presentations
MPTCP Application Considerations draft-scharf-mptcp-api-01 Michael Scharf Alan Ford IETF 77, March 2010.
Advertisements

MIF API Extension Discussion MIF IETF 78 Dapeng Liu Yuri Ismailov.
IPv6 Technologies and Advanced Services page 1 Porting applications to IPv6 OpenH323 and IPv6 support K. Stamos Computer Engineer, University of Patras.
Ipv4 Socket Address Structure struct in_addr { in_addr_t s_addr; /* 32-bit IPv4 address */ /* network byte ordered */ }; struct sockaddr_in { uint8_t sin_len;
CSE 333 – SECTION 8 Networking and sockets. Overview Network Sockets IP addresses and IP address structures in C/C++ DNS – Resolving DNS names Demos.
Sockets: Network IPC Internet Socket UNIX Domain Socket.
Today’s topic: Basic TCP API –Socket –Bind –Listen –Connect –Accept –Read –Write –Close.
Elementary TCP Sockets Computer Networks Computer Networks Term B10 UNIX Network Programming Vol. 1, Second Ed. Stevens Chapter 4.
Networks: TCP/IP Socket Calls1 Elementary TCP Sockets Chapter 4 UNIX Network Programming Vol. 1, Second Ed. Stevens.
Elementary TCP Sockets Chapter 4 UNIX Network Programming Vol. 1, Second Ed. Stevens.
#include DatatypeDescription int8_t uint8_t int16_t uint16_t int32_t uint32_t Signed 8-bit integer Unsigned 8-bit integer Signed 16-bit integer Unsigned.
1 Advanced Name and Address Conversions getaddrinfo, getnameinfo, gai_strerror, freeaddrinfo host_serv, tcp_connect, tcp_listen, udp_client, udp_connect,
Introduction to Project 1 Web Client and Server Jan 2006.
Host Identity Protocol
Basic Socket Programming TCP/IP overview. TCP interface Reference: –UNIX Network Programming, by Richard Stevens. –UNIX man page.
HIP API issues in base spec Tom Henderson IETF-59, March 3, 2004.
Client-Side Network Programming
University of Calgary – CPSC 441.  UDP stands for User Datagram Protocol.  A protocol for the Transport Layer in the protocol Stack.  Alternative to.
CS345 Operating Systems Φροντιστήριο Άσκησης 2. Inter-process communication Exchange data among processes Methods –Signal –Pipe –Sockets.
Class A Addresses The 1 st bit of a class A address is 0 The 1 st byte has a value from (128.x.x.x would not be a class A) 127.x.x.x is reserved.
Unrestricted Connection Manager MIF WG IETF 79, Beijing Gaétan Feige - Cisco Pierrick Seïté, France Telecom - Orange
Remote Shell CS230 Project #4 Assigned : Due date :
Name and Address Conversions Chap 11. Domain Name System  A lookup mechanism for translating objects into other objects  A globally distributed, loosely.
Netprog: Advanced Sockets Programming1 Advanced Sockets Programming Ref: Chapter 7,11,21,22.
Advanced Sockets API-II Vinayak Jagtap
CPSC 441 TUTORIAL – FEB 13, 2012 TA: RUITNG ZHOU UDP REVIEW.
1 Computer Networks An Introduction to Computer Networks University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani Lecture 3: Sockets.
TELE202 Lecture 15 Socket programming 1 Lecturer Dr Z. Huang Overview ¥Last Lecture »TCP/UDP (2) »Source: chapter 17 ¥This Lecture »Socket programming.
TELE 402 Lecture 6: Name and address conversions 1 Overview Last Lecture –Socket Options and elementary UDP sockets This Lecture –Name and address conversions.
1 Sockets Programming Socket to me!. 2 Network Application Programming Interface (API) The services provided by the operating system that provide the.
IETF#83 Mobility API for DMM draft-liu-dmm-mobility-api-00 draft-korhonen-dmm-prefix-properties-01.txt Dapeng Liu,Hui Deng, J. Korhonen, B. Patil, S. Gundavelli.
Discussion of MIF API draft-liu-mif-api-extension-04 IETF 80 March 28, 2011 Dapeng Liu.
Research and developments Introduction to IPv6 Lana Abadie, Februar 5 th 2008.
Introduction to Sockets
Shim6 Architecture Geoff Huston IETF-63 August 2005.
Review: – Why layer architecture? – peer entities – Protocol and service interface – Connection-oriented/connectionless service – Reliable/unreliable service.
CSCI 330 UNIX and Network Programming Unit XIV: User Datagram Protocol.
IETF70 - Mobopts RG1 On Mobile IPv6 Optimization and Multihoming draft-ng-mobopts-multihoming-00.txt Chan-Wah Ng
API Extension for MIF- enabled Hosts Dapeng Liu, Zhen Cao, Bo Zhou.
Chapter 11 Advanced Name and Address Conversion. Introduction gethostbyname, gethostbyaddr: protocol dependent getaddrinfo: –a function providing protocol.
API Extension Discussion for MIF-enabled Hosts IETF#77 Dapeng Liu, Zhen Cao.
Lecture 15 Socket Programming CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger.
Socket Programming(1/2). Outline  1. Introduction to Network Programming  2. Network Architecture – Client/Server Model  3. TCP Socket Programming.
CSE 333 – SECTION 8 Client-Side Network Programming.
UNIX Sockets COS 461 Precept 1.
CS 105 “Tour of the Black Holes of Computing”
Class A Addresses The 1st bit of a class A address is 0
Network Programming CSC- 341
Name and Address Conversions Part I
Chapter 3 Sockets Introduction
Client-side Networking CSE 333 Spring 2018
תקשורת ומחשוב תרגול 3-5 סוקטים ב-C.
Advanced Sockets Programming
Network Programming: Part II CSCI 380: Operating Systems Lecture #13
IP Addresses, DNS CSE 333 Spring 2018
IP Addresses, DNS CSE 333 Summer 2018
Client-side Networking CSE 333 Summer 2018
IP Addresses, DNS CSE 333 Autumn 2018
Network Programming: Part I CSCI 380: Operating Systems
Client-side Networking CSE 333 Autumn 2018
Network Programming: Part II CSCI 380: Operating Systems
IP Addresses, DNS CSE 333 Winter 2019
Sockets Programming Socket to me!.
Sockets Programming Socket to me!.
Client-side Networking CSE 333 Winter 2019
Sockets.
Today’s topic: Basic TCP API
Client-side Networking CSE 333 Spring 2019
Presentation transcript:

API Extension Discussion for MIF-enabled Hosts IETF#77 Dapeng Liu, Zhen Cao

Background There are API extension works going on in IETF –IPv6 –MPTCP –SHIM6 –HIP

Background-IPv6 Basic Socket Interface Extensions for IPv6 –RFC3493 Objective –Support IPv6 Extensions –IPv6 Address Family and Protocol Family AF_INET6/PF_INET6 IPv6 address structure IPv6 Socket address structure –Socket Functions s = socket(AF_INET6, SOCK_STREAM, 0); s = socket(AF_INET6, SOCK_DGRAM, 0);

Background-MPTCP MPTCP Application Considerations –draft-scharf-mptcp-api-00 Motivation –Define extended API for applications to exploit additional features of multipath transport. –Optional extension that provides access to multipath information and enables control over the usage of multipath. Specification of API Extensions for MPTCP: –New options that defined at TCP level(IPPROTO_TCP), used by getsockopt()/setsockopt() TCP_MP_ENABLE: Enable/disable MPTCP TCP_MP_SUBFLOWS: Get the addresses currently used by the MPTCP subflows TCP_MP_PROFILE: Get/set the MPTCP profile

Background-SHIM6 Socket Application Program Interface (API) for Multihoming Shim –draft-ietf-shim6-multihome-shim-api-12 Objective –The API aims to enable interactions between applications and the multihoming shim layer for advanced locator management, and access to information about failure detection and path exploration. Extensions focus on –Turn on/off shim –Locator management –Notification from application to the shim sub-layer about the status of the communication –Feedback from applications to the shim sub-layer –Hot-standy –Providing locator information to the applications

SHIM6 (cont.) Socket Options Extensions –Used for getsockopt()/setsockopt() ……

Background-HIP Basic Socket Interface Extensions for Host Identity Protocol –draft-ietf-hip-native-api-12 Goals –The first goal is to allow HIP-aware applications to open sockets to other hosts based on the HITs alone –The second goal is that applications can explicitly initiate communications with unknown peer identifiers The Extensions focus on –The use of public-key based identifiers discovered via DNS resolution –Interfaces for manual bindings between HITs and locators

HIP (cont.) Socket Family and Address Structure Extensions –New protocol family/new address family PF_HIP/AF_HIP –Socket structure for HIP #include typedef struct in6_addr hip_hit_t; struct sockaddr_hip { uint8_t ship_len; sa_family_t ship_family; in_port_t ship_port; uint32_t ship_flags; hip_hit_t ship_hit; }; Extensions to Resolver Data Structures #include #include int getaddrinfo (const char *nodename, struct addrinfo { const char * servname, int ai_flags; /* e.g. AI_CANONNAME*/ const struct addrinfo *hints, int ai_family; /*e.g. AF_HIP*/ struct addrinfo **res) int ai_protocol; /*e.g. SOCK_STREAM*/ void free_addrinfo (struct addrinfo *res) socklen_t ai_addrlen; struct sockaddr *ai_addr; char * ai_canonname; struct addrinfo *ai_next; int ai_eflags; };

HIP (cont.) Explicit Handling of Locators –Application first creates a socket with AF_HIP as the domain argument. –Second, the application may get or set locator information with one of the following shim socket options as defined in the multihoming extensions in [I-D.ietf-shim6-multihome-shim-api].I-D.ietf-shim6-multihome-shim-api

MIF API Extensions Motivation –For the application to utilize the benefits from multiple interfaces in a smooth way, there should be some socket API exported to the upper layer. Extensions may focus on –Use extended API to solve the problems that caused by multiple connections Name and addressing/Routing/Address selection/Configuration polices…

Requirement R1: Compatible with existing Socket APIs R2: Support for Multiple Connections R3: No Changes to Existing Socket APIs R4: Easy for Implementation

Tentative Way Generic Connection approach –Application bind to this generic connection –Generic Connection manages the multiple interfaces/domains Control which interfaces/routes/address/domain to use –Extend Data Structure/ Provides API to application layer struct GenericConnection { struct GenericConnection *next; int index; struct Netdevice *dev; int priority; char status; struct socket *sock; } Data Structure of Generic Connection

Thanks Question or Comments?