Existem dificuldades para implementar o TCP sobre o UDP, principalmente:
- Pacotes TCP e Pacotes UDP têm um formato incompatível.
- O TCP e o UDP têm diferentes números de protocolo (vistos no cabeçalho IP ), significando que os pacotes TCP para uma porta UDP não seriam passados para a protocolo de camada superior.
No entanto, protocolos que implementam algoritmos TCP no topo do UDP foram implementadas para necessidades muito específicas. Isso é chamado de "Pseudo TCP", usado principalmente por aplicativos P2P porque o NAT traversal para TCP é mais complicado que para o UDP.
Existem duas variações de pseudo-TCP: Libjingle e Libnice . Libjingle é uma biblioteca de código aberto do google usada inicialmente para o gtalk. O desktop do Chrome também usa libjingle para conexões confiáveis.