The TCP/IP protocol handles message duplication (and also message ordering!) by introducing "sequence numbers". The sequence number is incremented each time a new message is sent by the sender.
TCP/IP is a communication protocol. It provides several useful features (such as avoiding message duplication) for two interacting systems.
When we implement our system based on a communication protocol such as TCP/IP, we are able to forget about the underlying difficulties that the communication protocol has promised to handle. Therefore, we would be living at a certain abstraction level that is made available by the underlying layers!
Message duplication in Paxos algorithm is a case when a single message is delivered to its destination multiple times. Please note that the messages (including the duplicate ones) may be delivered out of order, at any time.
The Paxos algorithm manages to operate in such an unreliable network, and it does so without using an underlying network communication protocol.
By the way, the Paxos algorithm is an extremely general and flexible algorithm. If you are sure that your TCP/IP implementation (for example, provided by an operating system) can definitely handle all message duplicates, then you can try to modify or perhaps simplify the Paxos algorithm assuming that message duplicates are impossible.
I Hope this is helpful.