ho modificato alcune cose nel mio post...
IP direttamente è difficile da usare. Solo ICMP usa direttamente IP. IP non permette l'uso delle porte.
Per una usabilità devi considerare UDP. UDP fondamentalmente è IP con l'uso delle porte. No connessione, no conferma di ricezione da parte del protocollo, no controllo errori... niente di niente. Se vuoi usare UDP e avere queste cose le devi implementare tu nel programma ma no hai supporto dal protocollo.
Ricorda sempre ovviamente che Tcp usa Ip. Sotto, Ip c'è sempre!
Tcp sta alla telefonata come Udp sta all'SMS