0%

网络协议 —— TCP 和 UDP

如果本文有错,希望在下面的留言区指正。

TCP/IP 五层模型如图所示:

面向连接的 TCP

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个 TCP 连接必须要经过三次”对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。

三次握手

TCP 建立连接如下图所示:

四次挥手

先由客户端向服务器端发送一个FIN,请求关闭数据传输。

当服务器接收到客户端的FIN时,向客户端发送一个ACK,其中ack的值等于FIN+SEQ

然后服务器向客户端发送一个FIN,告诉客户端应用程序关闭。

当客户端收到服务器端的FIN是,回复一个ACK给服务器端。其中ack的值等于FIN+SEQ

面向非连接 UDP

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。

总结

  • TCP 面向连接;UDP 是无连接,即发送数据前不需要建立连接
  • TCP 提供可靠的服务,即通过 TCP 连接传送的数据,无差错,不丢失,不重复,且有序到达;UDP 尽最大努力交付,但不保证可靠交付。
  • UDP 具有较好的实时性,工作效率比 TCP 高,适用于高速传输和实时性较高的通信或者广播通信。
  • 每一条 TCP 连接只能点到点的;UDP 支持一对一、一对多、多对一和多对多通信。
  • TCO 对系统资源需求比较多;UDP 对系统资源需求比较少。

Reference

客官,赏一杯coffee嘛~~~~