Programmation d'applications réseau sous UNIX et Linux

Objectifs

Savoir développer un programme de communication sur Internet, serveur ou application client-serveur.

Matériel

Les travaux pratiques du stage Linux embarqué sont réalisés sur:

  • Ordinateur portable ou station de travail sous Debian (RedHat ou Fedora sur demande(*)).

(*) Attention ces modifications peuvent entrainer une modification des themes abordés.

Participants

Cette formation s'adresse aux développeurs travaillant sous UNIX pour une application réseau<

Pré-requis

Connaissance du langage C et du système Linux ou UNIX.

Programme

INTRODUCTION

  • Historique et standards
  • Les concepts fondamentaux, TCP-IP
  • Protocoles Internet
  • Travaux pratiques :
  • Prise en main de l'environnement de développement.

ETABLISSEMENT DE LA PILE RESEAU

  • La création de socket, familles d'adresses, famille de protocoles
  • Les domaines, INET, UNIX, IPV6
  • Se rattacher à une interface réseau
  • Les structures associées (sockaddr, socklen…)
  • Les outils de gestion d'adresse

STREAM SOCKET - TCP

  • Etablissement d'une connexion.
  • Le transfert de données
  • Terminer une connexion

DATAGRAM SOCKET - UDP

  • Initialisation
  • Le transfert de données
  • Les socket datagram connectées

SOCKET UNIX

  • Création de paires de socket
  • Socket UNIX de type stream
  • Socket UNIX de type datagram
  • Les sockets abstraites
  • Travaux pratiques :
  • Ecriture d'une application de copie de fichier par TCP

PRINCIPES FONDAMENTAUX DE TCP-IP

  • Les couches réseau et les protocoles TCP/IP
  • Adressage, fragmentation
  • Gestion des ports UDP et TCP
  • Les segments TCP, acquittements, timeout et retransmissions
  • Séquences et contrôle de flot, congestion
  • Travaux pratiques :
  • Les points d'administration du noyau Linux dans /proc/sys/net

SOCKET INET

  • Network byte order et problèmes dendianess
  • Représentation des données
  • Adressage INET (sockaddr_in et sockaddr_in6)
  • Les services de conversion host/net
  • Travaux pratiques :
  • Ecriture d'une application INET IPV6 de copie de fichier par UDP

GESTION DES NOMS ET ADRESSES

  • DNS, hosts et /etc/services
  • Services de conversion indépendant du protocole, getaddrinfo()
  • Travaux pratiques :
  • Travail sur la résolution des noms
  • SERVEURS ET SUPER-SERVEURS

    • Exemples de serveurs echo
    • Les super serveurs INETD et Xinetd
    • Travaux pratiques :
    • Ecriture de serveurs basés sur INETD

    DEVELOPPEMENT RESEAU AVANCE

    • Gestion d'erreurs et de lectures partielles
    • Fermeture d'une partie de la connexion
    • Spécificité des appels système accept(), send() et recv()
    • Optimisation de l'envoi de fichiers avec sendfile()
    • Contrôle de connexion avec setsockopt()
    • Données hors bande
    • Sequenced packet socket, protocoles SCTP et DCCP (Datagram Congestion Control Protocol)
    • Travaux pratiques
    • Re-écrire le serveur de fichier pour l'optimiser. Utiliser DCCP pour implémenter le serveur de fichier datagram.
    Informations

    Durée et prix du stage

    Prochaines sessions:

    Autres sessions:    
    Contact:
    S'inscrire:

    Calendrier 2019

    Consultez le calendrier complet de nos formations pour le premier semestre 2019.

    Repas du midi et collations compris dans le prix.

    Linux Embarqué
    La formation linux embarqué est effectuée sur cartes beaglebone.
    La carte est offerte aux stagiaires en fin de stage.


    Site construit par M.N.I.S. en utilisant Bootstrap licence Apache V2 et Glyphicons Free licence CC BY 3.0
    janvier 2015