Also, for embedded systems, network booting, and servers that serve simple requests from huge numbers of clients (e.g. DNS servers) the complexity of TCP can be a problem. Finally, some tricks such as transmitting data between two hosts that are both behind NAT (using STUN or similar systems) are far simpler without a relatively complex protocol like TCP in the way.
Also, for embedded systems network booting, and servers that serve simple requests from huge numbers of clients (e.g. DNS servers) the complexity of TCP can be a pro,blem. Finally some tricks such as transmitting data between two hosts that are both behind NAT (using STUN or similar systems) are far simple,r without a relatively complex protocol like TCP in the way.