Se vuoi fare comunicare delle macchine tra loro su linux ti consiglio di studiarti il funzionamento delle socket che come livello si pongono sopra TCP/IP-UDP. I dettagli del TCP/IP in questo modo non li vedi. Progettare protocolli a basso livello (OSI 3 e 4) non ha molto senso. Sarebbe molto molto molto complesso... Il tcp/ip non è stato inventato in una settimana dallo smanettone di turno..![]()
Dunque linux, C o C++ (va benissimo il C) una buona conoscenza delle socket per cominciare. In rete trovi tanto materiale a riguardo. Ti sconsiglio di partire subito con cose complesse, comincia con il far comunicare due macchine, una semplice chat e poi eventualmente puoi complicare le cose ulteriormente. Oppure comincia con creare un programma che dialoghi con un server sul web, webserver, smtp, pop3 etc...
Ho visto che su reti parli di TCP illustrated. Ottima suite di libri... (prima o poi sarà mia).