tcp和udp

46 阅读2分钟
  • 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+应用层可靠性增强)。