-
TCP和UDP的概念:
-
TCP:通过三次握手建立连接,提供端到端的可靠传输,确保数据无差错、不丢失、按序到达。
-
UDP:直接发送数据包,不建立连接,不保证传输质量,但延迟极低,适用于实时性要求高的场景。
-
TCP和UDP的区别:
-
连接方式:
TCP:TCP通过三次握手建立连接(SYN、SYN-ACK、ACK),四次挥手释放连接(FIN、ACK、FIN-ACK、ACK) 。
UDP:UDP直接发送数据包,无需握手和挥手。 -
可靠性:
TCP:TCP通过确认应答(ACK)、超时重传、数据校验(校验和)确保数据可靠。
UDP:UDP无重传机制,发送即丢弃,可靠性由应用层处理(如视频丢帧不影响整体播放)。 -
传输顺序:
TCP:TCP通过序列号(Sequence Number)保证接收端按序重组数据。
UDP:UDP不维护数据顺序,接收端可能乱序接收(如VoIP通话中语音包顺序错乱)。 -
传输速度:
TCP:TCP因连接管理、流量控制、重传等机制,传输延迟较高。
UDP:UDP无控制开销,传输速度极快,适合实时应用(如在线游戏、直播)。 -
头部开销:
TCP:TCP头部最小20字节(含选项字段可扩展),包含序列号、确认号、窗口大小等字段。
UDP:UDP头部固定8字节(仅源/目标端口、长度、校验和)。 -
流量控制:
TCP:TCP通过滑动窗口动态调整发送速率,避免接收方缓冲区溢出。
UDP:UDP无流量控制,可能因接收方处理不及时导致丢包。 -
拥塞控制:
TCP:TCP通过慢启动、拥塞避免、快重传等算法避免网络拥堵。
UDP:UDP无拥塞控制,可能加剧拥塞(如P2P下载中的UDP Flood攻击)。 -
应用场景:
TCP:HTTP/HTTPS、SMTP(邮件)、FTP(文件传输)。
UDP:DNS查询、视频会议(Zoom)、在线游戏(UDP+应用层可靠性增强)。