TCP vs UDP

UDP is the preferable choice, if you do not need to implement a protocol that requires TCP (eg HTTP SMTP etc.) When a proper master slave structure is chosen, it is no big deal to make the UDP reliable. All you need is to implement a checksum and check if the master gets a correct answer on every command.

TCP (Transmission_Control_Protocol) and UDP (User Datagram Protocol) are protocols to send messages and datas over the internet.

TCP UDP
limitations with LabVIEW embedded The TCP functions never time out. They can only be interrupted by a timed loop with higher priority. Therefore a complex framework has to be implemented The Zsystem targets cannot receive packets larger than 1480 bytes (Fragmented IP packets are not fully supported) Sending of larger data packets is no poblem.
packet order organized by the protocol must be organized by the application if required
protocol overhead moderate (~4 seconds to open a connection receive a message send a answer and close the connection again) The transmission is much faster when the connection is held open minimal
unknown packet size the packet size has to be sent first so that the receiver knows how many bytes will folllow entire packets are received

Wikipedia compares the two protocols as follows: (state: 25.01.2011)
TCP is a connection-oriented protocol, which means that it requires handshaking to set up end-to-end communications. Once a connection is set up user data may be sent bi-directionally over the connection.

UDP is a simpler message-based connectionless protocol. Connectionless protocols do not set up a dedicated end-to-end connection. Communication is achieved by transmitting information in one direction from source to destination without verifying the readiness or state of the receiver.