第五章 运输层
1. 面向通信部分的最高层
- 运输层
2. 运输层作用
- 提供进程之间的通信服务,负责端到端的可靠性控制
3. 三类端口
- 熟知端口
- 登记端口
- 客户端口号:留给客户进程短暂使用的
4. 软件端口与硬件端口
- 软件端口:协议栈层间的抽象的协议
- 硬件端口:路由器或交换机上的端口
5. UDP
- 在IP的数据报服务上增加的功能:
- 分用:将数据报分别发送到相应端口
- 复用:将UDP用户数据报组装成不同的IP数据报发送到互联网
- 差错检测(首部有检验和)
6. UDP与TCP不同点
- UDP
- UDP是无连接的
- UDP是不可靠交付
- UDP无拥塞控制,适合多媒体通信要求
- UDP支持一对一、一对多、多对一和多对多的交互通信
- UDP的首部开销小(8字节)
- UDP是面向报文的
- UDP报文长度是应用进程给出的,对应用层交下来的报文不合并、不拆分
- TCP
- TCP是面向连接的
- TCP是可靠交付
- TCP提供全双工通信
- TCP连接只能是点对点的,不提供广播或多播服务
- TCP是面向字节流的
- TCP可把太长的数据块划分短一些再传送,也可等待累计有足够的字节后再构成报文段发送出去
- TCP根据对方给出的窗口值和当前网络拥塞的程度来决定报文段应包含多少个字节
7. 套接字
- 包括IP地址和端口号
8. MSS
- TCP报文段中的数据字段的最大长度
9. TCP如何实现可靠交付(可靠传输协议)
- 停止等待协议
- 每发送完一个分组就停止发送,等待对方的确认(ACK)。在收到确认后再发送下一个分组(若发送方在超时计时器内未收到确认则重发:超时重传)
- 重发情况:
- 确认丢失
- 确认迟到
- 重发情况:
- 信道利用率低-》采用流水线传输-》连续ARQ协议
- 每发送完一个分组就停止发送,等待对方的确认(ACK)。在收到确认后再发送下一个分组(若发送方在超时计时器内未收到确认则重发:超时重传)
- 连续ARQ协议
- 连续发送多个分组,不必每个分组都停顿下来等待确认
- 发送方
- 维持发送窗口
- 收到一个确认后发送窗口向前滑动
- 发送窗口的大小是由接收端决定的
- 接收方
- 采用累计确认方式:对按序到达的最后一个分组发送确认
- 优点:容易实现,确认丢失也不必重传
- 缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息
- 采用累计确认方式:对按序到达的最后一个分组发送确认
- 滑动窗口协议
- 用于流量控制(让发送发发送速率不要太快、要让接收方来得及接收)的协议
- 发送缓存
- TCP准备发送的数据
- TCP已发送尚未接收到确认的数据
- 接受缓存
- 按序到达尚未被接收的数据
- 不按序到达的数据报
10. 拥塞控制
- 开环控制:事先考虑周全
- 闭环控制:在发生拥塞后,采取措施消除拥塞
11. TCP拥塞控制的方法
- 采用基于窗口的方法进行拥塞控制,属于闭环控制方法
- 发送方维持一个拥塞窗口,窗口大小取决于网络的拥塞程度,动态变化
12. 判断网络出现拥塞的依据
- 出现数据超时
13. TCP四种拥塞控制算法
- 慢开始:由小到大逐渐增大拥塞窗口的数值(小于慢开始门限,收到一个确认+1——一个RTT加倍)
- 拥塞避免:
- 一个RTT拥塞窗口+1,让拥塞窗口缓慢增大
- 快重传:
- 让发送方尽早知道发生了报文段的丢失,发送方只要一连收到三个重复确认,就知道接收方确实没收到报文段,立即重传。
- 快恢复
- 发送方收到三个重复确认,转入拥塞避免
14. TCP运输连接的三个阶段
- 建立连接、数据传送和连接释放
- TCP连接的建立和释放采用客户/服务器方式
- 主动连接建立的应用进程是客户
- 被动等待连接的应用进程叫做服务器
15. TCP的连接建立(三次握手)
- 客户向服务器发出连接请求报文段
- 服务器收到连接请求报文段后,如同一,则发回确认
- 客户收到此报文段后向服务器给出确认,客户的TCP通知上层应用进程,连接已建立;服务器收到客户的确认后,也通知上层应用,连接建立。
16. TCP的连接释放(四次挥手)
- 客户的应用进程向其TCP发出连接释放报文段,并停止发送数据,向服务器发送连接释放报文段,等待服务器确认
- 服务器发出确认,此时TCP连接处于半关闭状态,若服务器发送数据,客户仍要接受
- 若服务器已经没有要向客户发送的数据,其应用进程通知TCP释放连接,向客户发送TCP释放报文段。
- 客户收到连接释放报文段后,向服务器发出确认。