Course Number: 10693
Length: 3 Days
Why should you choose TONEX for your IPv6 Programming Training?
IPv6 Programming Training Class covers basics of IPv4 socket programming , IPv6 socket programming, socket API and more.
There are some incompatible differences related between IPv6 and IPv6 with:
• Name (DNS) and IP addresses management,
• Communication constants and data structures or
• Functions names and parameters
• Sockets and IPv6 Structs
In the general case, porting an existing application to IPv6 requires to examine the following issues in the application source code:
• Network information storage: data structures.
• Resolution and conversion address functions.
• Communication API functions and per-defined constants.
Aligned with IPv6 Forum IPv6 Programming Training Course
Write and Implement IPv6-capable Applications in a Mixed Network Environment and port
existing network applications to support IPv6.
You will learn to:
• Understand the benefits of making applications IPv6-capable.
• Perform IPv6 socket programming.
• Rewriting client and server applications to be IPv6 compatible.
• Use IPv6 porting tools.
• Parsing and mapping IPv6 address.
Who Should Attend
Systems and software engineers, system and softwarre designers, system and software architects, software developers, and application testers
Outline
Overview of IPv6
- IPv4 vs. IPv6
- IPv6 Addressing
- Unicast Addresses
- Anycast Addresses
- Multicast Addresses
- 64-bit MAC Address Assignment
- Loopback and Unspecified Addresses
- IPv6 Header Information
- New Header Format
- IPv6 Extension Headers
- DNS infrastructure
- IPv6 Tunneling
- IPSec Tunneling
Basic Socket Programming
- What is a socket?
- Types of Internet Sockets
- Low level Nonsense and Network Theory
- IP Addresses and structs
- IP Addresses, versions 4 and 6
- Byte Order
- structs
- IPv4 Socket Programming
- IPv6 Socket Programming
- Changes socket API for IPv6 Support
- Typical IPv6 Code sequence
IPv6 Socket Programming
- IPv4 Socket API
- IPv6 Socket API
- Changes to existing API
- Porting applications to IPv6
- Socket address structures
- Socket functions
- Address conversion functions
- Resolving names
- Multicasting
- New application design guidelines
- Real examples of porting process
- Porting Applications to Support IPv6
- Tips in IPv6 Programming
- A Practical Example
- IPv6 APIs
- Basic Socket Interface Extensions for IPv6
- Advanced Sockets API for IPv6
- IPv4-Mapped Address API
- Possible Abuse Against IPv6 Transition Technologies
- An Extension of format for IPv6 Scoped Addresses
- ProtocolIndependenceUsing the Sockets API
Migration from IPv4 to IPv6
- System Calls or Bust
- getaddrinfo(): Prepare to launch!
- socket(): Get the File Descriptor!
- bind(): What port am I on?
- connect(): Hey, you!
- listen(): Will somebody please call me?
- accept(): Thank you for calling port 3490.
- send() and recv(): Talk to me, baby!
- sendto() and recvfrom(): Talk to me, DGRAM-style
- close() and shutdown(): Get outta my face!
- getpeername(): Who are you?
- gethostname(): Who am I?
- Porting IPv4 applications to IPv6
- using the correct structures
- INADDR_ANY and INADDR_LOOPBACK
- address and protocol family constants
- IPv6 functions for older IPv4 ones where necessary
- flexible functions that work in both IPv4 and IPv6 environments
- Data structures
- sockaddr_in and in_addr
- in6_addr to store the 128-bit network address
- sockaddr_in6
- To port this code to IPv6
- AF_INET6
- PF_INET6
Client-Server Background
- A Simple Stream Server
- A Simple Stream Client
- Datagram Sockets
- Blocking
- select(): Synchronous I/O Multiplexing
- Handling Partial send()s
- Serialization: How to Pack Data
- Son of Data Encapsulation
- Broadcast Packets: Hello, World!
Cross-Platform IPv6 Socket Programming
- Linux and Mac
- Windows
- Socket
- Storing Addresses
- Resolving Addresses
- Historic Name and Address Lookup
- Modern Address Lookup
- AI_ADDRCONFIG
- AI_CANONNAME
- AI_V4MAPPED
- AI_ALL
- IPv6 format.
- AI_IDN
- AI_CANONIDN
- Modern Host Name Lookup
- Printing and Scanning Addresses
- Interface Checklist
- Obsolete Interface
- Protocol Independent Interface
- Example Client Code
- Example Server Code
changed Socket Interface
- New protocol family name: PF_INET6
- Address data structures
- Net address family name: AF_INET6
- in6_addr structure
- sockaddr_in6 structure
- Name-to-address translation functions
- inet_pton, inet_ntop
- Address conversion functions
- getnameinfo
- getaddrinfo
- Sockets
- Socket Programming
- Port Numbers
- Sockets
- Socket=IP address + port number
- Socket Basics
- How do sockets work?
- Socket Functions
- Typical flow of events for a connection-oriented socket
- Socket APIs
- Socket characteristics
- Sockets characteristics
IPv6 Programming APIs and examples
- Porting applications in IPv6
- C
- C++
- Java
- Perl
- PHP