计网运输层
概述
运输层为它上面的应用层提供通信服务,位于网络的边缘部分,当位于网路边缘的两台主机使用网络的核心部分进行端到端通信时,只有主机的协议栈才有运输层,而网路核心部分中的路由器在转发分组时只用到下三层的功能。
在 IP 层中,因为 IP 首部标记的是主机,所以说通信是 “两台主机之间的通信” ,但是我们都知道一台主机可以干很多事情的,比如说可以一边聊微信,一边用浏览器看网页,不同的工作之间是不会相互干扰的,这些互不干扰的工作就是进程,而我们在聊微信时,应该是微信的进程想另一台主机的微信进程进程了通信,所以说通信的严格说法是 “两台主机中的应用进程通信”。
运输层的工作就是为主机中的应用进程提供通信服务,而网络层是为主机提供通信服务,当用户进程发送信息时,应用层会发送进程的数据到运输层,而网络层传输的数据是整个主机的杂合在一起的数据,所以运输层必须在交付数据给网络层之前把各个应用进程的数据都整合起来,我们称这为复用;而对于接受方主机,在运输层中接收到了网络层传来的杂合数据,它在交付数据给应用层之前必须要把这些杂合的数据分开为各个进程的数据。
运输还要对收到的报文进行差错检测,在网络层,IP 层数据报首部中检验和字段,只检验首部是否出现差错而不检测数据部分。
用户数据报协议 UDP
运输协议数据单元: UDP 用户数据报
UDP 在传送数据之前不需要先建立连接。远地主机的运输层在收到 UDP 报文后,不需要给任何确认。
UDP 只在 IP 的数据报服务之上增加了很少一点的功能,这就是复用分用的功能以及差错检测的功能。
特点
- 无连接,在发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。
- 使用尽量大努力交付,即不保证可靠交付,因此主机不需要不需要维持复杂连接状态表
- 面向报文。发送发的 UDP 对应用层交下来的报文,在添加首部后就向下交付 IP 层
- 没有拥塞控制
- 支持 一对一,一对多,多对一,多对多的交互通信
- UDP 的首部开销小,只有8个字节,比 TCP 的 20 个字节的首部要短。
传输控制协议 TCP
特点
- 面向连接。应用程序在使用 TCP 协议之前,必须先建立 TCP 连接。在传送数据完毕后,必须释放已经建立的 TCP 连接。
- 每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是点对点。
- 提供可靠交付(交付给应用层)的服务。通过 TCP 连接传送的数据,无差错、不丢失、不重复,并且按序到达。
- TCP 提供全双工通信。TCP 允许通信双方的应用进程在任务时候都能发送数据。 TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据
- 面向字节流。 TCP 中的流 (stream)指的是流入到进程或从进程流出的字节序列。
可靠传输的工作原理
停止等待协议
分组时串行发送,发送完一个分组,停止发送,收到接受方的确认后才会发送下一个分组,否则就会超时,重新发送上一个分组。串行发送,效率低下。
连续ARQ 协议
为了提高传输效率&#