As a network-ignoramus, who likes cryptography, I’ve long dreamt of a networking protocol where endpoints are defined, primarily, by a public key. All messages would be encrypted with the destination public key, and signed by the source private key.
When a destination node receives a packet from a neighboring node, and ACK would constitute the destination node’s signature over the received packet, thus making ACKs provable and portable (“this node has already received that packet, here’s the proof”).
Packet sources addresses would no longer be fake-able, as that would constitute breaking asymmetric cryptography.
The protocol would have no concept of a “connection”.
Routing would be left out of this protocol completely, and networks would use whichever routing protocols they find most efficient.
I wouldn’t be surprised if there were countless issues with a protocol like this, but something about it just seems so elegant to me that I haven’t stopped considering it yet.