Also du solltest dich zuerst mit dem ISO/OSI 7 Schichten-Modell vertraut machen und dann jede Stufe durchgehen:
Zuerst brauchst du einen Netzwerkkartentreiber:
- hier würd ich einen für NE2000-kompatible (z.B DP8390) oder für RTL8139 schreiben, die sind/waren weit verbreitet und werden durch gängige Emulatoren (QEMU,Bochs) simuliert; weiterhin solltest du dich mit den IEEE 802.3 Standard auseinandersetzen um das Paketformat und die generelle funktionsweise von Ethernet zu verstehen
- danach solltest du 3 Protokolle darüber implementieren: ARP, IP und ICMP, die Informationen dazu stehen in den RFC 826, 791 und 792
- danach kannst du dich an UDP und TCP heranwagen (RFC 768 und 793)
- dann könntest du Sockets bauen um den Zugriff auf die vorherigen Schichten zu vereinfachen
- darüber kannst du dann deine Anwendungsprotokolle wie HTTP, FTP, usw. setzen
Die meiste Dokumentation zu den genannten Sachen ist auf Englisch, besser gesagt ich kenne für die Netzwerkkartensachen nicht einmal deutsches. Also es ist ein ganzes Stück bis du Netzwerkdinge benutzen kannst