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 oeuvre 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."





























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



Couverture
<!-- Ceci est a mettre comme texte de la news annoncant la revue<br/> du livre -->


Ce livre détaille la mise en oeuvre 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.


<!-- Fin du texte de la news -->





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




Aller plus loin

  • # 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.