运输层协议:TCP和UDP

时间:2023-03-09 18:51:32
运输层协议:TCP和UDP

运输层简介

运输层的通信实体不再是主机,而是主机中的进程。运输层的通信是一台主机的进程和另一台主机的进程进行数据交换。

运输层作用

  • 运输层向上层的应用层提供通信服务
  • 运输层为进程提供端到端的通信

运输层协议

  • 传输控制协议(TCP):面向连接的可靠传输协议
  • 用户数据报协议(UDP):无连接的不可靠协议

应用层对UDP和TCP的使用

应用 应用层协议 运输层协议
域名解析 DNS UDP
文件传送 TFTP(简单文件传送协议) UDP
万维网 HTTP TCP
电子邮件 SMTP TCP
文件传送 FTP(文件传送协议) TCP

UDP

UDP,用户数据报协议(User Packet Protocol)。UDP在IP的数据报基础上只加入了很少的功能,包括复用分用和差错检测。它有以下的特点:

  1. 无连接:UDP在发送数据前不需要建立连接,这减少了建立连接和释放连接带来的开销
  2. 尽最大努力交付:UDP没有差错重传的机制,它只能尽最大努力交付数据,所以是不可靠传输。虽然没有重传机制导致了不可靠传输,但是这样也减少了主机需要维护的状态参数,减轻了主机的负担
  3. 面向报文:UDP将上层服务传递的报文加上首部后就能发送,它不会对数据进行拆分或合并
  4. 首部开销小:UDP报文的首部只有8字节
  5. 一对多、多对一、一对一通信

TCP

TCP,传输控制协议(Transport Controller Protocol)。TCP是比较复杂的协议,它加入了可靠传输、流量控制、拥塞控制的机制。

  1. 面向连接:TCP在发送数据之前要建立TCP连接,通信完成需要释放连接。TCP建立连接要经过三次握手的过程,释放连接要经过四次挥手
  2. 可靠传输:TCP通过确认报文、停止等待(自动重传)等方式实现了可靠传输
  3. 面向字节流:TCP会将应用层的数据划分成大小不等的数据块,数据块以字节为单位。TCP会将这些数据块封装后按序发送,但是不能保证数据块到达的顺序
  4. 点对点:因为建立连接,TCP只能进行端到端的通信

TCP与UDP对比

UDP TCP
有无连接 无连接 有连接
是否可靠 尽最大努力交付 可靠传输
传输方式 面向报文 面向字节流
端点 一对一、一对多 点对点
首部大小 首部小,仅8字节 首部开销大