Black belt consultants is our quality assurance
Black belt consultants is our quality assurance

IPv6 Programming

New New  

Description

Advanced training for those who need deeper understanding of IPv6 network programming and testing. The course is covering socket API, IPv4 versus IPv6 programming and IP-agnostic programming. This course focuses on the differences in IPv6 programming from traditional network programming and assumes prior knowledge in basic network programming.

The training will be performed by trainers who are working with IPv6 programming and you will get a lot of practical exercises and experiences.

Target group

Engineers (designers/developers, testers etc) who develop and test IP-applications and need deeper knowledge of how to build solutions/applications based on IPv6.

Prerequisites

1.   Basic knowledge of data communication
2.   Good knowledge of the TCP/IP protocol suite equivalent to the TCP/IP course
3.   You need basic IPv6 knowledge equivalent to our trainings IPv6 Strategy and Technology or IPv6 technical.
4.   Applied knowledge in modern programming languages like (C/C++/C#/Java…)
5.   Basic knowledge of network programming and the concepts associated (sockets, bind, send, host- and network-byte-order)

Other

This course is available as scheduled training and the presentation is given in English or Swedish. The course is mixing theory and practical exercises. We can also give this course as on-site training. If you are interested in customized education, don’t hesitate to contact us for further information.

Agenda

IPv6 (brief overview)

  • Brief overview of differences from IPv4
  • IPv6 addresses
  • IPv6 unicast scopes (Link-local, Unique local and Global)
  • Neighbor discovery
  • Path MTU discovery

Repetition of Basic Network Programming

  • The socket concept
  • User space versus kernel space
  • Communicating with the kernel
  • Packets

Socket API

  • History
  • IPv4 refresher
    -         Structures
    -         Sockaddr_in
    -         Commands
    -         Creating a socket (socket)
    -         Binding a name to a socket (bind)
    -         Open a socket form communication (open)
    -         Send and receive data (send/recv)
    -         Configuring the socket (options)
    -         Converting data for transmission  (inet_aton)
    -         Typical command flow
  • IPv6

-         Changes to existing API
-         sockaddr_in6
-         commands
-         inet_pton
-         New additions
-         addrinfo
-         getaddrinfo

  • IP-agnostic programming
  • Approaches

-         Modifying existing solution
-         New development

Testing

  • Addresses
  • Analysing traffic
  • Tools and using them
    -         Sniffers
    -         Injectors
    -         Logs
    -         Debug
  • Protocol verification, implementation vs RFC compliance.

Examples

A programming example is shown and described by the instructor. This example is the basis for the exercises.

Exercises

Exercises based on the example shown by the instructor are performed.

Summary

Discussion on course contents and repetition.

Instructors

Jani
Senior consultant