TCP/IP Illustrated Volume 2

Posté par  . Modéré par Fabien Penso.
Étiquettes :
0
2
avr.
2001
Internet

Extrait : « Ce livre détaille la mise en œuvre de TCP/IP dans le système 4.4BSD-lite2. Cette pile a servi (et sert toujours) de référence pour tout ce qui touche à TCP/IP. L'ouvrage décrit avec beaucoup de détails le code de la pile TCP/IP, permettant avec un minimum de connaissance en C (et la lecture du premier tome) de comprendre comment s'articulent les protocoles dans le noyau BSD. »

Sommaire

TCP/IP Illustrated Volume 2: the implementation
Auteur : Gary R. Wright et Richard W. Stevens
Éditeur : Addison-Wesley
ISBN : 0-201-63354-X
Pages 1200
Prix 590 FF
Rédacteur : Jean-Jacques Bernard-Gundol

Couverture

Ce livre est un monument. En effet, commenter et expliquer le code de la pile TCP/IP de 4.4BSD semble une gageure, mais pourtant ces deux auteurs l'ont fait. Il faut savoir que la pile TCP/IP de 4.4BSD approche des 50000 lignes de code, et même si dans l'ensemble elle est bien écrite, il reste des points obscurs que les auteurs nous expliquent comme deux très bons professeurs. Pour mémoire, 4.4BSD est à la base des systèmes d'exploitation BSD/OS de BSDi, OpenBSD, NetBSD, FreeBSD et MacOSX.

Tous les chapitres sont présentés de la même façon : les différents fichiers de code source qui vont être examinés, les variables globales utilisées, parfois les structures importantes (elles sont le plus souvent décrites au fil du texte), et des exemples avec les commandes UNIX standards (route, netstat…).

L'ouvrage commence par introduire un certain nombre de concepts très utiles à la compréhension de la suite. Parmi ceux-ci on retrouve les subtilités de la programmation dans un noyau (particulièrement la gestion des interruptions, aussi bien matérielles que logicielles), et notamment la gestion des incontournables mbufs (structures mémoire permettant de stocker les données réseau), indispensable pour comprendre la suite du livre. Quelques explications sur les conventions adoptées dans la présentation du code source sont aussi fournies.

On entre dans le vif du sujet par le bas. Comprenez par là que les couches basses de la pile IP sont décrites en premier et que les auteurs ont écrit le livre en remontant la pile (à quelques exceptions près). Cette approche permet d'augmenter la difficulté progressivement (IP est infiniment plus simple à comprendre que TCP). Le début de l'ouvrage est donc consacré à la description de différentes interfaces (Ethernet, SLIP et Loopback).

Le livre se poursuit avec la description du protocole IP lui-même. Vu l'importance et la complexité, 5 chapitres ne sont pas de trop pour le décrire (il y a aussi deux chapitres sur le multicast IP qui viennent plus tard). La présentation est claire et émaillée de nombreux schémas permettant de mieux cerner la discussion. Deux chapitres sont entièrement réservés à la description de la fragmentation et la gestion des options IP (qui ne sont plus vraiment utilisées de nos jours). ARP est décrit quant à lui ultérieurement.

L'ouvrage se poursuit ensuite avec la description du protocole ICMP, du multicast IP, et la gestion des groupes multicast. La lecture est très intéressante, mais il vaut mieux avoir revu ses notions sur le multicast avant.

Les trois chapitres sur les sockets permettent aux développeurs de mieux comprendre ce qui se cache derrière le fameux appel système socket() et tous ceux qui y sont associés. Ces chapitres sont très intéressants pour tout programmeur réseau, qu'il programme dans le noyau ou pas.

Le reste de l'ouvrage est consacré au routage et aux protocoles de transport. Le routage est décrit en 3 chapitres et TCP en 7
chapitres (UDP ne prend qu'un chapitre, ce protocole étant très simple). Il s'agit du protocole qui prend le plus de place dans le livre, mais sa complexité le justifie pleinement. Comme pour le reste de l'ouvrage, le texte est agrémenté d'un grand nombre de schéma.

Le livre se termine avec la description de l'interface des BPF (Berkeley Packet Filter) bien connue des utilisateurs de tcpdump.

Ce livre répond au besoin de toutes les personnes cherchant à savoir comment fonctionne une pile TCP/IP. Tous les programmeurs noyau (et les autres) y trouveront des astuces utiles. Cependant, ce livre demande un certain investissement en temps. Il est assez gros et touffu. Mais il est sans doute le meilleur ouvrage décrivant une implémentation des protocoles TCP/IP. Tous ceux qui sont intéressés par les détails trouveront dans ce livre beaucoup de matière. Par contre, la lecture du premier ouvrage de la série (il y en a trois) est indispensable avant la lecture de celui-ci si vous ne connaissez pas le fonctionnement des protocoles TCP/IP.

Du côté non technique, le lecteur appréciera la clarté de l'ouvrage et le talent pédagogique des auteurs. La marque de fabrication de Richard W. Stevens que l'on découvre dans le premier ouvrage de la série est toujours présente ici (ainsi que dans tous ses autres livres).

Table des matières

  • Introduction
  • Mbufs
  • Interface Layer
  • Interfaces: Ethernet
  • Interfaces: SLIP and Loopback
  • IP Addressing
  • Domains and Protocols
  • IP: Internet Protocol
  • IP Option Processing
  • IP Fragmentation and Reassembly
  • ICMP: Internet Control Message Protocol
  • IP Multicasting
  • IGMP: Internet Group Management Protocol
  • IP Multicast Routing
  • Socket Layer
  • Socket I/O
  • Socket Options
  • Radix Tree Routing Tables
  • Routing Requests and Routing Messages
  • Routing Sockets
  • ARP: Address Resolution Protocol
  • Protocol Control Blocks
  • UDP: User Datagram Protocol
  • TCP: Transmission Control Protocol
  • TCP Timers
  • TCP Output
  • TCP Functions
  • TCP Input
  • TCP Input (Continued)
  • TCP User Requests
  • BPF: BSD Packet Filter
  • Raw IP
  • Epilogue
  • Appendix A. Solutions to Selected Exercises
  • Appendix B. Source Code Availability
  • Appendix C. RFC 1122 Compliance
  • Bibliography
  • Index

Références

  • # poisson d'avril !

    Posté par  . Évalué à 0.

    Bouahahah p'tain c'était drôle !
  • # et System V ?

    Posté par  . Évalué à 0.

    Il n'existe pas un bon bouquin du même genre sur la pile TCP/IP de System V ?

    Elle est a quand même de gros avantages sur celle des BSD : le couple stream/xti est quand même bien mieux que les mbufs/sockets.

    Mais bizzarement trop de gens ne connaissent que la pile TCP/IP des BSD, qu'ils jugent trop vite comme la meilleure... dommage.
    • [^] # Re: et System V ?

      Posté par  . Évalué à 0.

      et où peut-on avoir des informations techniques sur la pile TCP/IP du système V, et plus généralement avez-vous des liens sur des comparaisons objectives des différentes piles existantes ?

      merci

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.