IPv4 and IPv6 Interoperability

Slides:



Advertisements
Similar presentations
IPv4 and IPv6 Interoperability
Advertisements

IPv6 Technologies and Advanced Services page 1 Porting applications to IPv6 OpenH323 and IPv6 support K. Stamos Computer Engineer, University of Patras.
Chapter 10 IPv4 and IPv6 Interoperability. contents Introduction IPv4 Client, IPv6 Server IPv6 Client, IPv4 Server IPv6 Address Testing Macros IPV6_ADDRFORM.
Socket Programming with IPv6. Why IPv6? Addressing and routing scalability Address space exhaustion Host autoconfiguration QoS of flow using flowlabel.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Socket Programming 0.
Chapter 14 Application Layer and Client-Server Model.
Today’s topic: Basic TCP API –Socket –Bind –Listen –Connect –Accept –Read –Write –Close.
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.
Quick Overview. 2 ISO/OSI Reference Model Application Application Presentation Presentation Session Session Transport Transport Network Network Data Link.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
1 Socket Interfaces Professor Jinhua Guo CIS527 Fall 2003.
Tutorial 8 Socket Programming
Programming with Berkeley Sockets Presented by Chris GauthierDickey Written by Daniel Stutzbach (I think!) for CIS 432/532 Useful References: ● man pages.
CS 311 – Lecture 18 Outline IPC via Sockets – Server side socket() bind() accept() listen() – Client side connect() Lecture 181CS Operating Systems.
ISP – 9 th Recitation Socket programming – Client side.
I NTRODUCTION OF S OCKET P ROGRAMMING L.Aseel AlTurki King Saud University.
Elementary UDP Sockets© Dr. Ayman Abdel-Hamid, CS4254 Spring CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer.
Socket Programming References: redKlyde ’ s tutorial set Winsock2 for games (gamedev.net)
ECE 4110 – Internetwork Programming Client-Server Model.
Sockets and intro to IO multiplexing. Goals We are going to study sockets programming as means to introduce IO multiplexing problem. We will revisit socket.
Hands On Networking Socket Programming Ram P Rustagi, ISE Dept Abhishek Gupta, ISE Dept Laxmi Kuber, MCA Dept June 28-30, 2012.
1 Networking (Stack and Sockets API). 2 Topic Overview Introduction –Protocol Models –Linux Kernel Support TCP/IP Sockets –Usage –Attributes –Example.
Fall 2000Datacom 11 Socket Programming Review Examples: Client and Server-Diagnostics UDP versus TCP Echo.
TCP/IP Protocol Stack IP Device Drivers TCPUDP Application Sockets (Gate to network) TCP: –Establish connection –Maintain connection during the communication.
Socket Programming. Introduction Sockets are a protocol independent method of creating a connection between processes. Sockets can be either – Connection.
IT1352-NETWORK PROGRAMMING AND MANAGEMENT
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Chapter 16 Socket Interface
Sockets API Overview Sockets with UDP Sockets with TCP Fast Sockets (Fast UDP) IP Multicasting.
 Wind River Systems, Inc Chapter - 13 Network Programming.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Chapter 16 Socket Interface.
Chapter 2 Applications and Layered Architectures Sockets.
4330/6310 SECOND ASSIGNMENT Summer Capulets and Montagues From Shakespeare's Romeo and Juliet Two rival families always trying to kill each other.
Page 1 Jan 5, 1998 CMPN 369 CPSC441 Sockets Module Sockets Application Programming Interface (API)
CPSC 441 TUTORIAL – FEB 13, 2012 TA: RUITNG ZHOU UDP REVIEW.
CSCE 515: Computer Network Programming UDP Socket Wenyuan Xu Department of Computer Science and Engineering.
Chapter 27 Socket API Interface The interface between an application program and the communication protocols in an operating system is known as the Application.
Sockets Socket = abstraction of the port concept: –Application programs request that the operating system create a socket when one is needed –O.S. returns.
Socket Programming Introduction. Socket Definition A network socket is one endpoint in a two-way communication flow between two programs running over.
Socket Programming.
S OCKET P ROGRAMMING IN C Professor: Dr. Shu-Ching Chen TA: HsinYu Ha.
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.
Socket Programming. Computer Science, FSU2 Interprocess Communication Within a single system – Pipes, FIFOs – Message Queues – Semaphores, Shared Memory.
Inter-Process Communication 9.1 Unix Sockets You may regard a socket as being a communication endpoint. –For two processes to communicate, both must create.
©The McGraw-Hill Companies, Inc., 2000© Adapted for use at JMU by Mohamed Aboutabl, 2003Mohamed Aboutabl1 1 Chapter 16 Socket Interface.
1 Spring Semester 2008, Dept. of Computer Science, Technion Internet Networking recitation #7 Socket Programming.
Using TCP sockets in Perl Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
Chapter 11 Advanced Name and Address Conversion. Introduction gethostbyname, gethostbyaddr: protocol dependent getaddrinfo: –a function providing protocol.
Lecture 3 TCP and UDP Sockets CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger.
Socket Programming in C CS587x Lecture 3 Department of Computer Science Iowa State University.
Socket Programming(1/2). Outline  1. Introduction to Network Programming  2. Network Architecture – Client/Server Model  3. TCP Socket Programming.
1 Socket Interface. 2 Basic Sockets API Review Socket Library TCPUDP IP EthernetPPP ARP DHCP, Mail, WWW, TELNET, FTP... Network cardCom Layer 4 / Transport.
SOCKET PROGRAMMING Presented By : Divya Sharma.
Chapter 10 IPv4 and IPv6 Interoperability
CS 1652 Jack Lange University of Pittsburgh
Internet Address Routines
Socket Programming--Traceroute
Socket Programming in C
Imam Ahmad Trinugroho, ST., MMSI
CHAPTER 8 ELEMENTARY UDP SOCKETS
Name and Address Conversions Part I
Interacting With Protocol Software
Transport layer API: Socket Programming
Chapter 16 Socket Interface.
Chapter 11 Name and Address Conversions (Part II)
CSC Advanced Unix Programming, Fall 2015
Refs: Chapter 10, Appendix A
Internet Networking recitation #8
Today’s topic: Basic TCP API
Presentation transcript:

IPv4 and IPv6 Interoperability IPv4 client, IPv6 server over dual-stack server host IPv6 client over dual-stack client host, IPv4 server IPv6 address macro, function and option Source code portability

over Dual-Stack Server Host IPv4 Client, IPv6 Server over Dual-Stack Server Host IPv6 client TCP data link IPv4 client TCP data link IPv6 server TCP IPv4 IPv6 data link IPv6 listening socket bounded to 0::0, port 8888 IPv4-mapped IPv6 address IPv6 address 206.62.226.43 5f1b:df00:ce3e:e200: 20:800:2b37:6426 Ether IPv4 TCP TCP hdr hdr hdr data type dport 8000 8888 Ether IPv6 TCP TCP hdr hdr hdr data type dport 86dd 8888

Dual-Stack Kernel at Server Side AF_INET SOCK_STREAM sockaddr_in AF_INET SOCK_DGRAM sockaddr_in IPv4 sockets AF_INET6 SOCK_STREAM sockaddr_in6 AF_INET6 SOCK_DGRAM sockaddr_in6 IPv6 sockets TCP UDP IPv4 IPv6 IPv6 IPv4 address returned by accept or recvfrom IPv4- mapped IPv4- mapped IPv4 IPv6 IPv4 datagram IPv6 datagram

Dual-Stack Kernel at Client Side AF_INET SOCK_STREAM sockaddr_in AF_INET SOCK_DGRAM sockaddr_in IPv4 sockets AF_INET6 SOCK_STREAM sockaddr_in6 AF_INET6 SOCK_DGRAM sockaddr_in6 IPv6 sockets TCP UDP IPv4 IPv6 IPv6 IPv4 address for connect or sendto IPv4- mapped IPv4- mapped IPv4 IPv6 IPv4 datagram IPv6 datagram

Interoperability between IPv4 and IPv6 Clients and Servers IPv4 server IPv6 server IPv4 server IPv6 server IPv4-only host IPv6-only host dual-stack host dual-stack host (A only) (AAAA only) (A and AAAA) (A and AAAA) IPv4 client, IPv4 (no) IPv4 IPv4 IPv4-only host IPv6 client, (no) IPv6 (no) IPv6 IPv6-only host dual-stack host IPv6 client, IPv4 IPv6 (no*) IPv6 *: IPv4-mapped IPv6 address if client chooses A record; no if client chooses AAAA record Note that most implementations of IPv6 client/server will be on dual-stack hosts. (Second row and second column may disappear.)

IPv6 Address Macro, Function, Option IPv6 address testing macros: IN6_IS_ADDR_* (e.g. V4MAPPED) Protocol independent socket address functions: sock_* (e.g. cmp_addr) (section 3.8) IPv6_ADDRFORM socket option: change a socket type between IPv4 and IPv6, by setsockopt function with IPv6_ADDRFORM option

Source Code Portability Automatic program conversion from IPv4 to IPv6 (sockaddr_in, AF_INET, etc) and #ifdef to use IPv6 when possible Deal with socket address structures as opaque objects: remove gethostbyname and gethostbyaddr, use getaddrinfo and getnameinfo (which use #ifdef internally)