MST
星途 面试题库

面试题:Java网络协议之TCP与UDP的区别

在Java网络编程中,TCP和UDP是两种常用的传输层协议,请详细阐述它们在连接特性、可靠性、传输效率、应用场景等方面有哪些区别?
28.6万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

连接特性

  • TCP:面向连接,在传输数据之前需要通过三次握手建立可靠的连接,传输完成后通过四次挥手释放连接。
  • UDP:无连接,发送数据之前不需要建立连接,直接将数据报发送出去。

可靠性

  • TCP:可靠传输,通过序列号、确认应答、超时重传等机制保证数据的有序到达和完整性。如果数据包丢失或损坏,会自动重传。
  • UDP:不可靠传输,不保证数据一定能到达目的地,也不保证数据的顺序,可能会出现丢包、乱序的情况。

传输效率

  • TCP:由于要进行连接建立、确认应答、重传等操作,额外开销较大,传输效率相对较低,尤其是在实时性要求高、数据量小的场景下。
  • UDP:没有连接建立和复杂的确认机制,开销小,传输效率高,适用于对实时性要求高但对数据准确性要求相对较低的场景。

应用场景

  • TCP:常用于对数据准确性要求高、对可靠性要求严格的场景,如文件传输(FTP)、远程登录(SSH、Telnet)、网页浏览(HTTP、HTTPS)等。
  • UDP:适用于对实时性要求高、能容忍少量数据丢失的场景,如视频流传输(RTSP、RTP)、音频流传输(VoIP)、实时游戏等。