2.1 KiB
+++ noatcards = True isdraft = False +++
Transmission control protocol (TCP)
TCP Introduction
Source: How to make a multiplayer game
TCP is a connection-oriented protocol over an IP network . Connection is established and terminated using a handshake . All packets sent are guaranteed to reach the destination in the original order and without corruption through:
- Sequence numbers and checksum fields for each packet
- Acknowledgement packets and automatic retransmission
If the sender does not receive a correct response, it will resend the packets. If there are multiple timeouts, the connection is dropped. TCP also implements flow control and congestion control . These guarantees cause delays and generally results in less efficient transmission than UDP.
To ensure high throughput, web servers can keep a large number of TCP connections open, resulting in high memory usage. It can be expensive to have a large number of open connections between web server threads and say, a memcached server. Connection pooling can help in addition to switching to UDP where applicable.
Use TCP over UDP when:
TCP is useful for applications that require high reliability but are less time critical. Some examples include web servers, database info, SMTP, FTP, and SSH.
- You need all of the data to arrive in tact
- You want to automatically make a best estimate use of the network throughput