一、传输层基本服务
标记:
1. 传输层基本服务
传输层的核心任务是为应用进程之间提供端到端的逻辑通信服务。
主要实现如下功能 :
1. 传输层寻址。
2. 对应用层报文进行分段和重组。
3. 对报文进行差错检测。
4. 实现进程间的端到端可靠数据传输控制。
5. 面向应用层实现复用与分解。
6. 实现端到端的流量控制。
7. 拥塞控制。
领会:
1. 复用与分解的基本概念
支持众多应用进程共用一个传输层协议,并能够将接收到的数据准确交付给不同的应用进程,是传输层需要实现的一项基本功能,称为传输层的多路复用与多路分解,简称复用与分解。
2. UDP与TCP实现复用与分解的方法
传输层端口号为16位整数,其中0~1023 为熟知端口号;1024~ 49151为登记端口号,使用时需要在互联网数字分配结构,IANA登记,防止重复使用;49152~65535为客户端口号或短暂端口号。
传输层协议依据IP地址和端口号实现多路复用与多路分解。
UDP依据二元组<目的IP地址,目的端口号> 来唯一标识一个UDP套接字;
TCP依据四元组<源IP地址,目的IP地址,源端口号,目的端口号> 来唯一标识一个TCP套接字,即标识一条TCP连接。
3. 无连接服务与面向连接服务
无连接服务是指数据传输之前无需与对端进行任何信息交换(即“握手”),直接构造传输层报文段并向接收端发送。
面向连接服务是指在数据传输之前,需要双方交换一些控制信息,建立逻辑连接,然后再传输数据,数据传输结束后还需要在拆除连接。
二、用户数据报协议(UDP)
标记:
1. UDP特点
UDP是Internet提供不可靠、无连接、数据报传输服务的传输层协议。
- 应用进程更容易控制发送什么数据以及何时发送。
- 无需建立连接。
- 无连接状态。
- 首部开销小,8字节。
2. UDP数据报结构
UDP首部只有4个字段,每个字段2个字节:
1. 源端口号
2. 目的端口号
3. 长度:UDP报文中字节数(首部和数据总和)
4. 校验和:接收方检测该报文段是否出现差错(差错检测功能,不能纠错)
领会:
1.UDP校验和及其计算
参与UDP检验和计算的内容3部分:UDP伪首部、UDP首部、应用层数据。
在计算校验和时,所有参与运算的内容按16位对齐求和,求和过程中遇到任何溢出(进位)都被回卷(进位与和的最后一位再加),最后得到的和取反码,就是UDP的校验和。
三、停-等协议与滑动窗口协议
领会:
1. 可靠数据传输基本原理
实现可靠数据传输的措施主要有5条:
1. 差错检测:利用差错编码实现数据包传输过程中的比特差错检测(甚至纠正)。
2. 确认:接收方向发送方反馈接收状态。
3. 重传:发送方重新发送接收方没有正确接收的数据。
4. 序号:确保数据按序提交。
5. 计时器:解决数据丢失问题。
2. 停-等协议工作原理
每发送一个报文段后就停下来等待接收方确认,只需要使用1bit编号分组,每次发送一个分组,等收到确认后再发送新的分组。
3. 滑动窗口协议工作原理
不使用停-等协议的停止-等待运行方式,允许发送方在没有收到确认前连续发送多个分组。
两种代表性滑动窗口协议:
- 回退N步协议(Go-Back-N),GBN
- 选择重传协议(Selective Repeat),SR
GBN协议发送窗口大于1,接收窗口等于1;GBN协议的发送方如果超时,则重发所有已经发送但未收到确认的分组;GBN协议采用累计确认。
SR协议每个分组独立确认;每个已发送分组需要独立计时,如果某个分组超时,只需重发该分组;SR协议的发送窗口和接收窗口都大于1。
应用:
1. 停-等协议信道利用率计算
假设发送方发送报文段的时间是tseg(即报文段的传输时延),接收方正确收到该报文段后,处理报文段的时间忽略不计,同时立即回发ACK;接收方发送ACK需要时间tACK,信道利用率USender为:
U S e n d e r = t s e g t s e g + R T T + t A C K U_{Sender} = \frac{t_{seg}}{t_{seg}+RTT+t_{ACK}} USender=