目录
TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)都是网络传输层中使用的协议,用于在网络中的不同设备之间发送和接收数据。它们各自具有不同的特性和适用场景。
TCP
用于发大量数据,一台电脑发了1万个包出去,另一台电脑就要告诉发送者是否接受到了1万个包,如果缺了3个包,就告诉我是哪几个包丢了,然后再发一次,保证对方把数据完整接收。具有以下特点:
面向连接:TCP是一个面向连接的协议,意味着在数据传输之前,双方必须先建立连接。这通过三次握手来完成,确保数据包的发送方和接收方都准备好进行通信。
可靠传输:TCP通过确认和重传机制保证数据的可靠传输。接收方每收到一个数据包都会向发送方发送一个确认包,如果发送方在一定时间内没有收到确认,它会重传数据包。TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
流量控制:TCP通过滑动窗口机制实现流量控制,以避免发送方发送数据过快导致接收方无法处理。
拥塞控制:TCP通过一系列算法来检测网络拥塞并调整发送速率,以缓解网络拥塞。
面向字节流:TCP把数据当作一串无结构的字节流来处理,对数据的收发不做任何限制。
UDP
UDP用于发送少量数据的。比如发20个包出去,不管对方收到多少个,比如多人互动游戏,就可以用U