计算机网络第5章知识点——运输层

📑对应

本笔记对应教材《计算机网络(第7版)》,谢希仁编著,电子工业出版社

运输层协议概述

运输层作用

image-20210609191532846

网络层与运输层

网络层是为主机之间提供逻辑通信,
而运输层为应用进程之间提供端到端的逻辑通信。

image-20210609191654309

运输层功能
  • 复用(multiplexing)
  • 分用 (demultiplexing)

image-20210609192133330

运输层协议
  • 无连接的 用户数据报协议 UDP (User Datagram Protocol)

  • 面向连接的 传输控制协议 TCP (Transmission Control
    Protocol)

    image-20210609192321194

用户数据报协议 UDP

提供无连接服务不提供可靠交付

在传送数据之前不需要先建立连接。

传送的数据单位协议UDP 报文用户数据报

对方的运输层在收到 UDP 报文后,不需要给出任何确认。

传输控制协议 TCP

TCP 提供可靠的面向连接的运输服务。

TCP 不提供广播或多播服务。

传送的数据单位协议TCP 报文段 (segment)

运输层端口

端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程

端口类别
  • 服务器端使用的端口号
    • 熟知端口,数值一般为 0~1023
    • 登记端口号,数值为 1024~49151
  • 客户端使用的端口号
    • 短暂端口号,数值为 49152~65535

image-20210609194023329

用户数据报协议 UDP

  • UDP 是无连接的
  • UDP 使用尽最大努力交付
  • UDP 是面向报文的
  • UDP 没有拥塞控制
  • UDP 支持一对一、一对多、多对一和多对多的交互通信
  • UDP 的首部开销小
  • UDP协议适合对传输协议的可靠性要求不高需要传送的数据不多使用频率不高,或者对实时性要求较高的应用。

image-20210609194618180

image-20210609202040439

传输控制协议 TCP

  • TCP 是面向连接的运输层协议。

  • 每一条 TCP 连接只能有两个端点 (endpoint),每一条TCP 连接只能是点对点的(一对一)。

  • TCP 提供可靠交付的服务

  • TCP 提供全双工通信

  • TCP 面向字节流

    image-20210609213044473

TCP 根据对方给出的窗口值当前网络拥塞的程度来决定一个报文段应包含多少个字节。

TCP 连接的端点叫做套接字 (socket)插口,端口号拼接到 (contatenated with) IP 地址即构成了套接字。

image-20210609214311966

可靠传输的工作原理

停止等待协议
无差错情况

发送方发送完毕后暂停发送直至收到确认,在收到确认后再发送下一个分组。

image-20210609214501981

出现差错

发送方超时重传

image-20210609214607824

确认丢失

发送方超时重传

确认迟到

接收方丢弃重复分组再发送一个确认

自动重传请求 ARQ

自动重传请求 ARQ (Automatic Repeat reQuest),使用确认和重传机制,就可以在不可靠的传输网络上实现可靠的通信

信道利用率

往返时间 RTT 远大于分组发送时间 T D T_{D} TD 时,信道的利用率就会非常低

image-20210610104356330

连续 ARQ 协议

发送方维持发送窗口,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。

image-20210610105517312

流水线传输

流水线传输就是发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认,从而提高信道利用率

image-20210610105010237

累积确认

接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认。

Go-back-N(回退 N)

遇到某个分组丢失的情况,需要再退回来重传已发送过的 N 个分组。

TCP 可靠通信的具体实现

TCP 连接的每一端都必须设有两个窗口——一 个发送窗口和一个接收窗口

TCP 的可靠传输机制用字节的序号进行控制。TCP 所有的确认都是基于序号不是基于报文段

TCP 报文段

格式

image-20210610112221110

连接
  • TCP的每条连接都有发送序号确认号
  • 序号字段是期望收到对方的下一个报文段的数据的第一个字节的序号。
  • 确认号字段是期望收到对方的下一个报文段的数据的第一个字节的序号。
  • TCP 连接的一端根据缓存空间大小确定自己的窗口大小,利用窗口字段控制对方发送的数据量

TCP 可靠传输的实现

以字节为单位的滑动窗口

TCP 的滑动窗口是以字节为单位的。

TCP连接的一端根据另一端给出的窗口值构造自己的发送窗口

TCP连接的一端可以连续把发送窗口内的数据都发送出去,而不需要等待对方的确认

收到新的确认号,发送窗口向前滑动。

  • 发送缓存用来暂时存放
    • 发送应用程序传送给发送方 TCP 准备发送的数据;
    • TCP 已发送出但尚未收到确认的数据。
  • 接收缓存用来暂时存放
    • 按序到达的、但尚未被接收应用程序读取的数据;
    • 不按序到达的数据。

image-20210610192037344

image-20210610192045833

超时重传时间的选择

image-20210610193141551

TCP 采用了一种自适应算法,记录报文段的往返时间 RTT

加权平均往返时间 R T T S RTT_{S} RTTS

TCP 保留了 RTT 的一个加权平均往返时间 R T T S ∗ ∗ RTT_{S}** RTTS(这又称为平滑的往返时间**)。

image-20210610193338352

超时重传时间 RTO

RTO (Retransmission Time-Out) 应略大于上面得出的加权平均往返时间 R T T S RTT_{S} RTTS

image-20210610193648976

R T T D RTT_{D} RTTD 是 RTT 的偏差的加权平均值

image-20210610193747670

Karn 算法

image-20210610194820530

选择确认 SACK

选择确认 SACK (Selective ACK),接收方收到了和前面的字节流不连续的两个字节块。接收方就先收下这些数据。

TCP 的流量控制

**流量控制 (flow control)**就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。

TCP利用滑动窗口机制实现流量控制

TCP 为每一个连接设有一个持续计时器 (persistence timer) ,用于解决互相等待的死锁的问题。

TCP 的拥塞控制

拥塞原因:Σ 对资源需求 > 可用资源

拥塞控制:防止过多的数据注入到网络中,使网络中的路由器或链路不致过载,

拥塞控制与流量控制
  • 拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
  • 流量控制往往指点对点通信量的控制,是个端到端的问题(接收端控制发送端)。

image-20210611100909197

拥塞控制方法

TCP 采用基于窗口的方法进行拥塞控制。该方法属于闭环控制方法。

TCP发送方维持一个拥塞窗口 CWND (Congestion Window)

  • 拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化
  • 发送端利用拥塞窗口根据网络的拥塞情况调整发送的数据量

image-20210611102057967

拥塞判断
  • 重传定时器超时
  • 收到三个相同(重复)的 ACK
TCP 拥塞控制算法
  • 慢开始 (slow-start)
  • 拥塞避免 (congestion avoidance)
  • 快重传 (fast retransmit)
  • 快恢复 (fast recovery)
慢开始

在慢开始阶段,拥塞窗口按指数规律增长

在每收到一个对新的报文段的确认后,可以把拥塞窗口增加最多一个 SMSS 的数值。

使用慢开始算法后,每经过一个传输轮次 (transmission round),拥塞窗口 cwnd 就加倍。一个传输轮次所经历的时间其实就是往返时间 RTT。

image-20210611103934048

image-20210611103946116

拥塞避免

在拥塞避免阶段,拥塞窗口按线性规律增长

让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞窗口cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长。

有**“加法增大”(Additive Increase)** 的特点。

image-20210611104445752

快重传

快重传FR (Fast Retransmission) 算法可以让发送方尽早知道发生了个别报文段的丢失。

快重传算法首先要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认,即使收到了失序的报文段也要立即发出对已收到的报文段的重复确认。

发送方只要一连收到三个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传(即“快重传”)。

image-20210611144515374

快恢复

快恢复算法FR (Fast Recovery) 算法。

把门限值设置为当前拥塞窗口值的一半,并大大减小拥塞窗口的数值。即**“乘法减小”MD (Multiplicative Decrease)。**

image-20210611144606567

主动队列管理 AQM

路由器的队列通常都是按照**“先进先出”FIFO (First In First Out)** 的规则处理到来的分组

当队列已满时,采用尾部丢弃策略 (tail-drop policy)

全局同步 (global syncronization):许多 TCP 连接在同一时间突然都进入到同一状态(如慢开始状态)

随机早期检测 RED

image-20210611145216377

image-20210611145237893

TCP 的运输连接管理

运输连接的管理就是使运输连接的建立和释放都能正常地进行。

运输连接阶段
  • 连接建立
  • 数据传送
  • 连接释放
客户服务器方式

主动发起连接建立的应用进程叫做客户 (client)

被动等待连接建立的应用进程叫做服务器 (server)

连接建立

TCP 建立连接的过程叫做握手

握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手

采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误。

image-20210609093953981

连接释放

TCP 连接释放过程是四报文握手

image-20210609102518061

TCP 有限状态机

粗实线箭头表示对客户进程的正常变迁。
粗虚线箭头表示对服务器进程的正常变迁。
细线箭头表示异常变迁。

image-20210609103500802

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值