文章主调

谈及tcp协议,定离不离开与udp协议的比较。

记录方式

抓住主要矛盾,不过于在意瓶瓶罐罐。

正文

认清两种运输层协议

UDP(用户数据协议),为应用程序提供一种不可靠、无连接的服务。
TCP(传输控制协议),为应用程序提供一种可靠的、面向连接的服务。**

什么是不可靠?

不能保证从一个进程发送出去的数据能够完整无缺的到达目的进程。

UDP和TCP最基本的责任

将两个端系统间IP的交付服务扩展为运行在端系统上的两个进程的交付服务。将主机间交付扩展到进程间交付被称为运输层的多路复用与多路分解。

TCP实现可靠的数据传输的手段

  • 流量控制
  • 序号
  • 确认
  • 定时器

通过以上技术,TCP确保正确地、有序地从发送进程交付到接收进程。

UDP:做运输协议能够做得最少工作

UDP只是做了运输协议能够做得最少工作。除了复用/分解服务及少量差错检测外,它几乎没有对IP增加别的东西。实际上,如果应用程序开发人员选择UDP而不是TCP,这该应用程序差不多就是直接与IP打交道。
值得注意的是,使用UDP时,在发送报文段时,发送方和接收方的运输层实体间没有握手。正因为如此,UDP被称为是无连接的。
**

UDP的使用场景

  • 关于发送什么数据以及何时发送数据的应用层控制更为精细。因为TCP有拥塞控制可能导致比较大的延迟。
  • 无需建立连接。如谷歌的QUIC(快速UDP因特网连接)。
  • 无连接状态。
  • 分组首部开销小。

**