计算机网络(第四章,传输层(上))
传输层服务
开篇
-
理解传输层服务的基本理论和基本机制
- 复用/分用
- 可靠数据传输机制
- 流量控制机制
- 拥塞控制机制
-
掌握Internet的传输层协议
- UDP:无连接传输服务
- TCP:面向连接的传输服务
- TCP拥塞控制
传输层概述
传输层协议为运行在不同Host上的进程提供了一种逻辑通信机制
-
端系统运行传输层协议:
- 发送方:将应用递交的消息分成一个或多个的Segment,并向下传给网络层
- 接收方:将接收到的segment组装成消息,并向上交给应用层
-
传输层可以为应用提供多种协议
- Internet上的TCP
- Internet上的UDP
传输层 vs 网络层
网络层:提供主机之间的逻辑通信机制
传输层:提供应用进程之间的逻辑通信机制(位于网络层之上;依赖于网络层服务;对网络层服务进行(可能的)增强)
Internet传输层协议
-
可靠、按序的交付服务(TCP)
- 拥塞控制
- 流量控制
- 连接建立
-
不可靠的交付服务(UDP)
- 基于“尽力而为(Best-effort)”的网络层,没有做(可靠行方面的)扩展
-
两种服务均不保证
- 延迟
- 带宽
复用和分用
复用和解复用
接收端进行多路分用:传输层依据头部信息将收到的Segment交给正确的Socket,即不同的进程
发送端进行多路复用:从多个Socket接收数据,为每块数据封装上头部信息,生成Segment,交给网络层
分用工作方法:
- 主机接收到IP数据报
- 每个数据报携带源IP地址,目的IP地址
- 每个数据报携带一个传输层的段(Segment)
- 每个段携带源端口号和目的端口号
- 主机收到Segment之后,传输层协议提取IP地址和端口信息,将Segment导向相应的Socket
- TCP做更多处理
无连接分用:
- UDP的Socket用二元组标识
- (目的IP地址,目的端口号)
- 主机收到UDP段后
- 检查段中的目的端口号
- 将UDP段导向绑定在该端口号的Socket
- 来自不同源IP地址和/或源端口号的IP数据报被导向同一个Socket
面向连接的分用:
- TCP的Socket用四元组标识
- 源IP地址
- 源端口号
- 目的IP地址
- 目的端口号
- 接收端利用所有的四个值将Segment导向合适的Socket
- 服务器可能同时支持多个TCP Socket
- 每个Socket用自己的四元组标识
- Web服务器为每个客户端开不同的Socket
无连接传输协议-UDP
UDP
UDP:User Datagram Protocol(RFC 768)
- 基于Internet IP协议
- 复用/分用
- 简单的错误校验
- “Best-effort”服务,UDP段可能
- 丢失
- 非按序到达
- 无连接
- UDP发送方和接收方之间不需要握手
- 每个UDP段的处理独立于其他段
UDP存在的原因:无需建立连接(减少延迟);实现简单,无需维护连接状态;头部开销少;没有拥塞控制(应用可更好地控制发送时间和速率)
UDP校验:
可靠数据传输的基本原理
可靠数据传输概述
可靠的定义:不错、不丢、不乱
rdt2.0
确认机制(ACK,Acknowledgements):接收方显示地告诉发送方分组已正确接收
NAK:接收方显示地告诉发送方分组有错误
发送方收到NAK后,重传分组
基于这种传输机制的rdt协议称为ARQ(Automatic Repeat reQuest)协议
rdt2.1
rdt3.0
滑动窗口协议
见课件