Développer une nouvelle implémentation noyau de l'ensemble du protocole tcp/ip, de qualité, et qui marcherait aussi bien que les produits existants, n'était pas une tâche facile. La décision de ne pas partir d'une implémentation existante fut prise à un moment où il y avait un doute sur d'éventuelles restrictions sur les droits de copie, en raison de décisions de justice U.S., et à un moment où il y avait beaucoup d'enthousiasme pour faire différemment et peut-être même mieux que ce qui avait été fait auparavant.
Le premier volontaire pour diriger le développement fut
Ross Biro <biro@yggdrasil.com>
. Ross produisit une
implémentation de routines simple, incomplète, mais
parfaitement utilisable, à laquelle fut ajouté un pilote
Ethernet pour la carte interface réseau WD-8003.
Ce fut suffisant pour que beaucoup de personnes essayent le logiciel et
même certains s'arrangèrent pour se connecter, avec
cette configuration, sur le réseau Internet en direct.
La pression de la communauté Linux qui
s'occupait du développement du support réseau augmenta, et
pour finir, la convergence de cette pression injuste et de ses propres
obligations l'emportèrent sur les avantages que Ross en tirait; il
arrêta donc sa tâche de coordinateur de développement.
Les efforts de Ross pour faire démarrer le projet, son acceptation de la
responsabilité de faire vraiment quelque chose d'utile dans de
telles circonstances mouvementées, furent le point de départ
de tout le travail ultérieur et donc un
élément essentiel du succès du produit actuel.
Orest Zborowski <obz@Kodak.COM>
produisit la première interface
socket BSD pour le noyau Linux.
Ce fut un grand pas en avant et permit à beaucoup d'applications
réseau existantes d'être portées sous Linux sans grandes modifications.
À peu près à cette époque Laurence Culhane
<loz@holmes.demon.co.uk>
développa les premiers pilotes Linux pour supporter le protocole SLIP.
Ceci permit à beaucoup de gens qui n'avaient pas accès à
un réseau Ethernet d'essayer le logiciel réseau. Puis certains
utilisèrent ce pilote pour se connecter sur l'Internet.
Cela donna à encore plus de personnes un aperçu de ce qui
serait possible si Linux avait un support complet pour
le réseau et augmenta le nombre d'utilisateurs utilisant et
expérimentant ce logiciel réseau.
L'une des personnes qui a aussi activement travaillé sur la
construction du support réseau fut
Fred van Kempen <waltje@uwalt.nl.mugnet.org>
.
Après la période d'incertitude qui suivit le retrait
de Ross, Fred offrit son temps et accepta le
rôle de conducteur du développement sans rencontrer d'opposition.
Fred avait quelques projets ambitieux quant à la direction vers laquelle
il voulait porter le logiciel réseau Linux, et il se mit à
progresser dans ces directions.
Fred produisit une série de code réseau appelée le code
noyau `NET-2' (le code `NET' étant celui de Ross), qui permit à
beaucoup de personnes de l'utiliser avec intérêt.
Ensuite Fred mit nombre d'innovations dans la poursuite du développement,
telle que l'interface de périphérique dynamique, le support du
protocole radio-amateur AX-25 et une implémentation réseau
conçue de manière plus modulaire.
Le code NET-2 de Fred fut utilisé par un grand nombre d'enthousiastes,
ce nombre augmentant au fur et à mesure de l'utilisation du logiciel
dans le monde. Le logiciel réseau à ce moment
était constitué encore d'un grand nombre de patches qui devaient être
appliqués au code noyau et n'était pas inclus dans la distribution normale.
Le document NET-FAQ et son successeur NET-2-HOWTO décrivait la
procédure assez complexe pour que tout cela fonctionne.
Fred se concentra sur le développement d'innovations et cela prenait
du temps. La communauté des utilisateurs s'impatientait, car elle
voulait avoir quelque chose
fonctionnant correctement et qui satisferait 80% des utilisateurs
puis, comme avec Ross, la pression sur le responsable du développement
augmentait.
Alan Cox <iialan@www.uk.linux.org>
proposa une solution pour
améliorer la situation.
Il proposa de prendre le code NET-2 de Fred, de le déboguer, de le
rendre fiable et stable si bien qu'il satisferait l'utilisateur de base
impatient, relâchant ainsi la pression sur Fred qui pourrait continuer
son oeuvre.
Alan se mit au travail avec un certain succès et sa première
version du code réseau Linux fut appelée `Net-2D(ebugged;)'.
Le code fonctionnait de manière fiable avec plusieurs configurations
typiques et l'utilisateur de base était content. Alan avait vraiment
des idées et une compétence à lui pour contribuer au
projet et de nombreuses discussions concernant la direction que devait
prendre le code NET-2 furent suivies d'effet.
Il se développa alors deux écoles distinctes dans la communauté
Linux, l'une ayant pour principe `que ça marche d'abord, puis on
améliorera ensuite' et l'autre `améliorer d'abord'. Linus arbitra
finalement et offrit son aide aux efforts de développement d'Alan et
inclut son code dans la distribution standard du noyau.
Cela plaçait Fred dans une situation délicate. Tout
développement de longue haleine souffrirait de l'absence
d'utilisation et d'essais par l'utilisateur de base et cela signifierait que
les progrès seraient longs et difficiles.
Fred continua à travailler encore quelque temps, puis se retira
finalement, et Alan devint le nouveau pilote de développement
du code réseau dans le noyau Linux.
Donald Becker <becker@cesdis.gsfc.nasa.gov>
révéla
rapidement ses talents dans les aspects de bas niveau du réseau et
produisit une énorme quantité de pilotes Ethernet, presque tous
ceux inclus dans les noyaux actuels étant de lui. Il y a d'autres personnes
qui ont apporté une contribution significative, mais le travail de
Donald est prolifique et mérite donc une mention spéciale.
Alan continua à affiner le code NET-2-D(ebugged) pendant
un certain temps, tout en progressant sur certains des sujets qui restaient
en suspens dans la liste des `TODO' (NdT : `À Faire').
Pendant que les sources du noyau Linux 1.3.*
faisaient leurs
premiers pas, le code réseau migra vers la distribution NET-3,
sur laquelle les versions actuelles sont fondées.
Alan travailla sur de multiples aspects du code réseau et, avec
l'assistance d'un grand nombre de personnes talentueuses venant de la
communauté Linux, développa le code dans toutes sortes de
directions. Alan produisit des pilotes de périphériques
réseau, le premier standard AX.25 et les implémentations IPX.
Alan continua à rafistoler le code, le restructurant petit à
petit et l'amenant à son niveau d'aujourd'hui.
Le support PPP fut ajouté par Michael Callahan
<callahan@maths.ox.ac.uk>
et Al Longyear <longyear@netcom.com>
, ce qui fut important pour
accroître le nombre de personnes utilisant Linux désireuses
d'aller sur le réseau.
Jonathon Naylor <jsn@cs.nott.ac.uk>
apporta sa contribution en
améliorant le code AX.25 d'Alan et en y ajoutant les protocoles
NetRom et Rose. Le support AX.25/NetRom lui-même est tout à fait
significatif, car aucun autre système d'exploitation que Linux ne peut
se vanter d'avoir un support natif pour ce protocole.
Il y a eu bien sûr des centaines d'autres personnes qui ont apporté une contribution significative à la couche réseau de Linux. Vous en retrouverez certains plus tard dans les paragraphes traitant de technologies spécifiques, d'autres ont collaboré aux modules, pilotes, corrections de bogues, suggestions, rapports d'essais et support moral. Dans tous les cas chacun peut se prévaloir d'avoir joué un rôle et offert ce qu'il pouvait. Le code réseau Linux est un excellent exemple de ce que l'on peut obtenir avec un style Linux de développement anarchique, si cela ne vous a pas encore étonné, et on le voit encore, le développement ne s'est pas arrêté.
Il y a un grand nombre d'endroits où l'on peut trouver de bonnes informations sur le réseau Linux.
Alan Cox, l'actuel mainteneur du code réseau Linux entretient une page web qui contient les points principaux du réseau actuel et les nouveaux développements à l'adresse : www.uk.linux.org.
Une autre bonne source est un livre écrit par Olaf Kirch ayant pour titre
Network Administrators Guide
. C'est une oeuvre du
Linux Documentation Project
et vous pouvez le lire de manière interactive sur
Network Administrators Guide HTML version
ou bien vous pouvez l'obtenir sous différents formats via ftp sur :
sunsite.unc.edu LDP ftp archive. Le livre d'Olaf est
très compréhensible et fournit un point de vue
de haut niveau sur la
configuration réseau sous Linux.
(NdT : ce livre a été traduit en français de manière remarquable par le regretté René Cougnenc)
Il existe un groupe de discussion dédié au réseau et, en ce qui le concerne dans la hiérarchie Linux, c'est : comp.os.linux.networking
Il existe une liste de diffusion à laquelle vous pouvez vous inscrire, et où vous pourrez poser des questions ayant trait au réseau Linux. Pour souscrire vous devez envoyer un message par courrier électronique :
To: majordomo@vger.rutgers.edu
Subject: (rien du tout)
Message:
subscribe linux-net
Sur les différents réseaux IRC, il y a souvent des canaux
#linux
sur lesquels des personnes sont en mesure de répondre
à vos questions au sujet du réseau Linux.
Souvenez-vous lorsque vous faites part d'un problème d'y inclure le plus possible de détails nécessaires. Plus spécialement indiquez les versions des logiciels que vous utilisez, en particulier la version du noyau, les versions des outils tels que pppd ou dip, et la nature exacte des problèmes que vous rencontrez. Cela veut dire prendre note de la syntaxe exacte des messages d'erreurs que vous recevez, et les commandes que vous avez exécutées.
si vous désirez des informations générales de base sur tcp/ip, alors je vous recommande de regarder les documents suivants :
ce document se trouve à la fois sur en version texte et en version postscript.
ce document se trouve à la fois sur en version texte et en version postscript.
Si vous recherchez des informations plus détaillées je vous recommande chaudement :
Internetworking with TCP/IP, Volume 1 : principes, protocoles et architectures, par Douglas E. Comer,ISBN 0-13-227836-7, Prentice Hall publications, 3ème édition, 1995.Si vous voulez apprendre comment écrire des applications réseau dans un environnement compatible Unix, je vous recommande également chaudement :
Unix Network Programming par W. Richard Stevens ISBN 0-13-949876-1, Prentice Hall publications, 1990.Une deuxième édition de ce livre va apparaitre sur les rayons : le nouveau livre comporte 3 volumes : voyez le site de Prentice Hall pour en savoir plus.
Vous pouvez essayer aussi le groupe de discussions : comp.protocols.tcp-ip.
Une importante source d'informations techniques concernant l'Internet et la suite des protocoles TCP/IP sont les RFC. RFC est l'acronyme de `Request For Comment' et c'est le moyen habituel de soumettre et de s'informer des normes de protocoles Internet. Il y a beauccoup d'endroits où sont stockées ces RFC. Beaucoup de ceux-ci sont des sites ftp, d'autres fournissent des accès WWW avec un moteur de recherche qui cherche les bases de données RFC avec des mots-clés particuliers.
Une source possible de RFC est : la base de données RFC de Nexor.