花不解语花颔首
佛度我心佛空叹
概念
- 运输层主要为进程之间提供端到端的可靠的通信服务
- 两种不同的协议
- 面向连接的传输控制协议TCP
尽管下面的网络是不可靠的,但TCP的逻辑信道确相当于一条全双工的可靠信道 - 无连接的用户数据报协议UDP
逻辑信道仍不可靠
- 面向连接的传输控制协议TCP
- UDP
- 提供无连接服务
- 传送数据前不需要先建立连接
- 传送的数据单位协议是UDP报文或用户数据报
- 对方运输层收到UDP报文后,不需要给出确认
- 虽然UDP不是可靠交付,但某些情况下是最有效的工作方式
PS:此用户数据报非网络层IP数据报
- TCP
- 面向连接的服务
- 传送的数据单位协议是TCP报文段
- TCP不提供广播或多播服务
- TCP提供可靠的、面向连接的服务,因此开销大
- 软件端口
在协议栈层抽象的协议端口 - 硬件端口
路由器或交换机上的端口 - 运输层端口用一个16位端口号进行标识
- 两大类端口号
- 服务器端
- 熟知端口(0~1023)
- 登记端口(1024~49151)
- 客户端(49152~65535)
- 服务器端
- TCP将连接作为最基本的抽象
TCP的端点是套接字 - 可靠传输
- 停止-等待
- 自动重传ARQ
- 流量控制
- 可变滑动窗口
- 拥塞控制
- 开环拥塞控制
设计网络时就考虑一切因素,避免拥塞 - 闭环拥塞控制(反馈环路)
- 监测网络系统以便检测拥塞何时发生、何处发生
- 将拥塞信息传送到可采取行动的地方
- 调整网络系统的运行以解决出现的问题
- 开环拥塞控制
- 检测拥塞的指标
- 缺少缓存空间而被丢弃的分组百分数
- 平均队列长度
- 超时重传分组数
- 平均分组时延
- 分组时延标准差
- TCP的拥塞控制
- TCP发送方维持一个拥塞窗口CWND
- 拥塞窗口的大小取决于网络拥塞程度,动态变化
- 发送端利用拥塞窗口根据网络拥塞情况调整发送数据量
- TCP拥塞控制算法
- 慢开始(由小到大增加拥塞窗口的值)
- 拥塞避免(拥塞窗口缓慢增大)
- 快重传(尽早知道报文丢失)
- 快恢复(收到三个重复确认后,停止慢开始,执行快恢复)
- TCP连接管理
- 连接建立(三次握手)
- 连接释放(四次握手)
注意
- 运输层是面向通信的最高层,面向用户的最低层
- 只有网络边缘的主机才有运输层协议栈,网络核心的路由器只有下三层
- 运输层向高层用户屏蔽了网络核心的细节(网络拓扑、路由选择等)
- UDP在IP的数据报服务上增加了的功能
- 复用和分用功能
- 差错检测功能
- UDP特点
- 无连接
- 尽最大努力交付
- 面向报文
- 无拥塞控制
- 支持一对一、一对多、多对一、多对多的交互通信
- 首部开销小
- TCP特点
- 面向连接
- 每一条TCP连接只有两个端点,即只能点对点(一对一)
- 可靠交付
- 全双工通信
- 面向字节流(不保证接受方收到的数据块和发送方发送的数据块大小对应,但字节流完全一样)
- TCP首部最小20字节
- 拥塞控制和流量控制区别
- 拥塞控制
- 防止过多数据注入到网络中,使网络中的路由器或链路不至过载
- 拥塞控制前提,网络能够承受现有的网络负荷
- 拥塞控制是一个全局性的过程,涉及所有主机、路由器,以及降低网络传输性能有关的所有因素
- 流量控制
- 点对点通信量的控制,是个端到端的问题
- 抑制发送端速率以便接受端能够接收
- 拥塞控制