Bon puisque personne ne s’est dévoué pour te répondre…
Renseigne toi déjà sur le modèle OSI, et son pendant le modèle TCP. Une fois que c’est bien compris, documente toi sur les protocoles IP (RFC 791), TCP (RFC 793), UDP (RFC 768), ICMP (RFC 792) et ARP (RFC 826). Ça te donnera un tout petit début d’idée sur le genre de choses qu’il va falloir que tu implémentes (là on est toujours dans la partie logique, rien à voir avec l’accès à ton matériel réseau). Y’a aussi toutes les histoires de passerelles réseau (RFC 1009 si je ne m’abuse), tables de routage (pas sûr que ça soit spécifié quelque part) et autres joyeusetés mais j’avoue sans honte que je ne me suis jamais vraiment intéressé à leur implémentation, faudra que tu cherches par toi-même.
Si à ce stade t’es toujours motivé, comprendre comment fonctionne un réseau Ethernet me semble assez indispensable puisque c’est le seul protocole que ta carte réseau soit capable de parler. Ensuite tu n’auras “plus qu’à” apprendre à discuter avec la carte réseau (en écrivant une couche intermédiaire d’abstraction – en français : des pilotes – pour pouvoir changer de matériel sans avoir à réécrire toute ta pile IP), puis à écrire la pile IP proprement dite.
Une fois que tu auras une pile réseau fonctionnelle, le reste c’est bidon en comparaison : implémentation du protocole DNS (RFC 1035) et de tout autre protocole que tu jugeras bon, par exemple le DHCP (RFC 2131) ou encore le HTTP 1.1 (RFC 2616 ; le HTTP 1.0 est trop ancien et posera des problèmes avec la vaste majorité des serveurs Web).
Bon courage. N’hésite pas à repasser nous dire ce que tu en penses.