Computer Network Note

《计算机网络》笔记

第一章 概述

1.1 计算机网络向用户提供最重要的功能

  • 连通性:计算机网络使上网用户之间都可以交换信息,使用户的计算机可以彼此连通。

  • 共享:即资源共享,如,信息共享、软件共享,硬件共享。

1.2 因特网概述

网络(network):由若干结点 (node) 和连接这些结点的链路 (link) 组成。

网络的网络 (network of networks):网络和网络通过路由器互联起来,即互联网。

因特网发展的三个阶段

第一阶段:从单个网络 ARPANET 向互联网发展的过程。

第二阶段:建成三级结构的因特网。

  • 三级计算机网络,分为:主干网、地区网、校园网(或企业网)。

第三阶段:逐渐形成多层次 ISP 结构的因特网。

image-20210306111725179

1.3 因特网的组成

1.3.1 网络边缘(Network Edge)

与因特网相接的计算机及其他设备位于因特网的边缘,称为端系统

端系统 = 主机,可以被划为下面两种:

  • 客户(client)
  • 服务器(server):比如有企业存储大量数据的大型数据中心(data centers)

两种端系统的通信方式

  • 客户服务器方式(C/S 方式): 即Client/Server方式

    • 客户软件的特点
      • 被用户调用后运行,在打算通信时主动向远地服务器发起通信(请求服务)。
      • 注意:客户程序必须知道服务器程序的地址
    • 服务器软件的特点
      • 系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。
      • 服务器需要具备的功能:监听、处理、反馈
      • 注意:服务器程序不需要知道客户程序的地址。
  • 对等方式(P2P 方式): 即 Peer-to-Peer方式

    • 只要两个主机都运行了对等连接软件(P2P 软件),它们就可以进行平等的、对等连接通信。
    • 对等连接方式的特点
      • 从本质上看,仍然是使用客户服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器

1.3.2 网络核心(Network Core)

网络核心:由端系统的分组交换机和链路构成的网状网络。为网络边缘部分提供服务

在网络核心部分起特殊作用的是路由器(router)。

  • 路由器是实现分组交换(packet switching)的关键构件;(与电路交换不同)
  • 路由器的任务是转发收到的分组,这是网络核心部分最重要的功能。

电路交换的特点

如果举一个电话的例子

  • N N N 部电话机两两相连,需 N ( N – 1 ) / 2 N(N – 1)/2 N(N1)/2 对电线。
  • 当电话机的数量很大时,这种连接方法需要的电线对的数量与电话机数的平方成正比。

因此,

电路交换必定是面向连接的。

电路交换有三个阶段:建立连接、通信、释放连接

  • 电路交换传送计算机数据效率低

由于建立链接和释放链接的耗时很长,而计算机数据具有突发性,这样就导致通信线路的利用率很低。

  • 电路交换时信道是独占的,信道的利用效率低

交换机

  • 当电话机的数量增多时,就要使用交换机来完成全网的交换任务。

交换的含义

  • “交换”(switching):就是转接,把一条电话线转接到另一条电话线,使它们连通起来。
  • 从通信资源的分配角度来看,“交换”就是按照某种方式动态地分配传输线路的资源。

分组交换的主要特点

分组交换采用存储转发技术

发送端

  • 先把较长的报文(数据)划分成较短的固定长度的数据段

  • 每一个数据段前面添加上首部构成分组

    • 如何对数据进行分段和拼接:遵循 I P IP IP 协议 (PS: T C P TCP TCP 协议保证数据的完整型)
    • 首部:发送方、接收方、地址信息
  • 分组交换网以“分组”作为数据传输单元。

  • 依次把各分组发送到接收端

接收端

  • 接收端收到分组后,剥去首部还原成报文。

存储转发

路由器实现,转发分组,进行分组交换

  • 把收到的分组先放入缓存(暂时存储)
    • 如果缓存满了,数据就会丢失
  • 按照先进先出的顺序从缓存队列中取出分组,查找转发表,找出到某个目的地址应从哪个端口转发(路由选择)
  • 把分组送到适当的端口转发出去

分组交换的优点

  • 高效 动态分配传输带宽,对通信链路是逐段占用
  • 灵活 以分组为传送单位和查找路由
  • 迅速 不必先建立连接就能向其他主机发送分组
    • 不先建立链接有可能造成接收方关机但发送方无法知道的情况
  • 可靠 保证可靠性的网络协议;分布式的路由选择协议使网络有很好的生存性
    • 通过 TCP​ 协议保证数据传输是可靠的

分组交换的缺点

  • 分组在各结点存储转发时需要排队,会造成一定的时延
  • 分组必须携带的首部(里面有必不可少的控制信息),造成一定的开销

报文交换

  • 报文交换的存储转发单位为报文,需要交换机接收到整个报文后才能输出。

  • 在 20 世纪 40 年代,电报通信也采用了基于存储转发原理的报文交换(message switching)

  • 报文交换的时延较长,从几分钟到几小时不等

三种交换方式的比较

*1.4 计算机网络的定义和分类

1.4.1 计算机网络的不同定义

  • 最简单的定义:计算机网络是一些互相连接的、自治的计算机的集合

  • 因特网 (Internet) 是“网络的网络”

1.4.2 几种不同类别的网络

  1. 不同作用范围的网络
  • 广域网 WAN (Wide Area Network) (因特网的核心部分)
  • 城域网 MAN (Metropolitan Area Network) (5-50km)
  • 局域网 LAN (Local Area Network) (1km)
  • 个人区域网 PAN (Personal Area Network)(Wireless PAN)(10m)
  1. 不同使用者的网络
  • 公用网 (public network)
  • 专用网 (private network)
  1. 用来把用户接入到因特网的网络
  • 接入网 AN (Access Network),又称为本地接入网或居民接入网。
    • 由 ISP 提供的接入网只是起到让用户能够与因特网连接的“桥梁”作用。
    • 接入网即不属于因特网的核心部分,也不属于因特网的边缘部分。
    • 采用不同的宽带接入技术(如xDSL),构成不同的宽带接入网。

1.5 计算机网络的性能

1.5.1 计算机网络的性能指标

速率

速率,指数据在数据信道上的传送速率,即数据率(data rate)或比特率(bit rate)

  • 指连接在计算机网络上主机在数字信道上传送数据的速率
  • 是计算机网络中最重要的一个性能指标。单位是: b/s(bps),或kb/s, Mb/s, Gb/s 等

带宽

表示网络的通信线路实际能传送比特数据的能力

吞吐量

表示在单位时间内通过某个网络(或信道、接口)的数据量

时延(delay 或 latency)

Computer Network Note_第1张图片

总时延 = 发送时延 + 传播时延 + 处理时延 + 处理时延

  • 发送时延:主机或路由器发送数据时,数据块从结点进入到传输媒体所需要的时间

发 送 时 延 = 数 据 块 长 度 ( b i t ) 信 道 带 宽 ( b i t / s ) 发送时延=\frac{数据块长度(bit)}{信道带宽(bit/s)} =(bit/s)(bit)

  • 传播时延:电磁波在信道中传播一定的距离而花费的时间

注意:信号传输速率(即发送速率)和信号在信道上的传播速率是完全不同的概念。
传 播 时 延 = 信 道 长 度 ( m ) 信 号 在 信 道 上 的 传 播 速 率 ( m / s ) 传播时延=\frac{信道长度(m)}{信号在信道上的传播速率(m/s)} =(m/s)(m)

  • 处理时延:交换结点为存储转发而进行一些必要的处理所花费的时间。
  • 排队时延:结点缓存队列中分组排队所经历的时延。

注意

对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。

  • 传播速率与数据的发送速率无关;
  • 提高数据的发送速率,只是减小数据的发送时延。

提高链路带宽减小了数据的发送时延。

利用率

  • 信道利用率:指某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
  • 网络利用率:全网络的信道利用率的加权平均值。

注意:由于时延,信道利用率并非越高越好

D 0 D_0 D0 表示网络空闲时的时延, D D D 表示网络当前的时延,在适当的假定条件下, D 0 D_0 D0 D D D 之间的关系可表示为
D = D 0 1 − U D=\frac{D_0}{1-U} D=1UD0
U U U :网络的利用率,数值在 0 到 1 之间

Computer Network Note_第2张图片

往返时间 RTT

从发送方发送数据开始,到发送方收到接收方的确认所经历的时间

傅里叶变换:区分不同频率的信号

1.6 计算机网络的体系结构

1.6.1 计算机网络体系结构的形成

  • 体系结构的解决方案:“分层” 策略。将庞大而复杂的问题,转化为若干较小的局部问题 → \to 这些较小的局部问题比较易于研究和处理。

  • TCP/IP 常被称为事实上的国际标准

  • 计算机网络的各层 + 协议 = 计算机网络的体系结构

协议与划分层次

计算机网络中的数据交换必须遵守事先约定好的规则

  • 规则:明确规定 “所交换的数据的格式” 以及 “有关的同步” 问题(同步含有时序的意思) → \to 网络协议

  • 网络协议(network protocol) :为进行网络中的数据交换而建立的规则、标准或约定

网络协议的组成要素

  • 语法:输出数据的格式,数据与控制信息的结构或格式
  • 语义:控制信息的含义,需要发出何种控制信息,完成何种动作以及做出何种响应
  • 同步:事件实现顺序的详细说明

层次模型示例

Q u e s t i o n Question Question 主机 1 通过网络向主机 2 发送文件

  1. 问题描述
  2. 功能分解
    • 文件管理
    • 传送文件
    • 数据发送
  • 设计文件传送模块
    • 确信对方已做好接收和存储文件的准备。
    • 双方协调好一致的文件格式。
    • 两个主机将文件传送模块作为最高的一层 。剩下的工作由下面的模块负责。

Computer Network Note_第3张图片

  • 设计一个通信服务模块

    Computer Network Note_第4张图片

  • 设计一个网络接入模块

Computer Network Note_第5张图片

分层的好处

  • 各层之间是独立的
  • 灵活性好
  • 结构上可分割开
  • 易于实现和维护
  • 能促进标准化工作

1.6.2 计算机网络的体系结构

计算机网络的体系结构 (architecture):计算机网络的各层及其协议的集合

Computer Network Note_第6张图片

底层的网络通信

  • 物理层:确保电子信号间的互联互通
  • 数据链路层:对收到的位串进行语义的解析

使用 1 , 2 1,2 1,2 层就可以构造一个 LAN

  • 网络层:实现广域网上两台计算机的通信
  • 传输层:实现了网络上进程之间的通信(段到端通信)

对于TCP/IP协议

  • Host-to-network :空

对于上课来说,教授们杜撰了一个五层的体系结构

image-20210312110433266

主机发送数据的过程

Computer Network Note_第7张图片

Computer Network Note_第8张图片

Computer Network Note_第9张图片

Computer Network Note_第10张图片

Computer Network Note_第11张图片

Computer Network Note_第12张图片

  • 尾部:包含冗余信息用来查错

1.6.4 实体、协议、服务

  • 实体 (entity) :表示任何可发送或接收信息的硬件或软件进程(就是计算机网络的层)
  • 协议 (protocol) :控制两个对等实体进行通信的规则的集合
    • 协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的
    • 必须非常仔细地检查这个协议能否应付各种异常情况

1.6.5 TCP/IP的体系结构

Computer Network Note_第13张图片

  • 路由器在转发分组时最高只用到网络层,而没有使用运输层和应用层
    • 理论上,数据不被路由器解析
    • 但是,现在绝大多数的路由器都有监控程序

Computer Network Note_第14张图片

  • TCP:可靠
  • UDP:速度

第二章 物理层

2.1 物理层的基本概念

屏蔽硬件设备和传输媒体的差异,确定与传输媒体的接口有关的特性

  • 机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。
  • 电气特性 指明在接口电缆的各条线上出现的电压的范围。
  • 功能特性 指明某条线上出现的某一电平的电压表示何种意义。
  • 过程特性 指明对于不同功能的各种可能事件的出现顺序。

2.2 数据通信的基础知识

2.2.1 数据通信系统的模型

Computer Network Note_第15张图片

  • 数据(data):运送消息(message)的实体。

  • 信号(signal):数据的电气或电磁表现

    • 模拟信号:连续变化的信号,如话音信号和广播电视信号,采用连续变化的信号电压。

    • 数字信号:离散变化的信号,如计算机通信所用的二进制代码 “1” 和 “0” 组成的高低电平信号、光脉冲。

  • 码元(code)—— 时间域(时域)内的波形。不同基本波形,用于表示不同的数字信号

    • 码元是承载信息的基本信号单位。比如用脉冲信号表示数据时,一个单位脉冲就是一码元
    • 码元的信息量由码元所能表示的数据有效 状态值个数决定的,若一个码元有00、01、10、11四个有效状态值,则一码元能携带 2bit 的信息。
  • 波特率和比特率

    • 波特率:又称为调制速率,指每秒可传输的码元个数 单位: 码元/秒
    • 比特率:数据传输速率,指 每秒能传输 的比特数,单位:位/秒,简称bps。
    • 注意:波特率和比特率是两个完全不同的概念。但是,如果一个码元只包含一个比特的数据时,波特率在数值上等于比特率。

2.2.2 编码与调制

  • 编码(coding) :将数字数据转换成数字信号的过程。适用于数字信道,如双绞线、电缆、光纤
  • 调制(modulation):将数字数据转换成模拟信号的过程。适用于模拟信道,如电话网、有线电视网

2.2.2.1 常用的编码方式

  • 归零制 :正脉冲代表1,负脉冲代表0。(在实际应用中存在问题)
  • 不归零制:正电平代表1,负电平代表0。
  • 曼彻斯特编码:位周期中心的上跳变代表0,位周期中心的下跳变代表1。
  • 差分曼彻斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变代表0,而位开始边界没有跳变代表1。

Computer Network Note_第16张图片

2.2.2.2 基本的调制方法

许多信道不能传送基带信号(数字信号)

  • 基带调制:仅对基带信号的波形进行变换,使它能够与信道特性相适应。
  • 带通调制:使用载波(carrier)进行调制,将基带信号的频率范围搬移到较高的频段传输。
    • 调幅(AM):载波的振幅随基带数字信号而变化(最不靠谱)
    • 调频(FM):载波的频率随基带数字信号而变化。
    • 调相(PM) :载波的初始相位随基带数字信号而变化。

2.2.3 信道的极限容量

任何实际的信道都不是理想的,在传输信号时会产生各种失真以及带来多种干扰。码元传输的速率越高,或信号传输的距离越远,在信道的输出端的波形的失真就越严重。

  • 限制码元在信道上传输速率的因素
    • 信道能够通过的频率范围
    • 信噪比 (根据香农公式决定)

香农公式

带宽受限且有高斯白噪声干扰的信道的极限、无差错信息传输速率 C C C
C = W l o g 2 ( 1 + S / N )     b / s C = W log_2(1+S/N) \ \ \ b/s C=Wlog2(1+S/N)   b/s
W W W :信道的带宽(以 H z Hz Hz 为单位)(非网络带宽)
S S S :信道内所传信号的平均功率
N N N :信道内部的高斯噪声功率

对于频带宽度 W W W 已确定的信道,如果信噪比不能再提高,并且码元传输速率也达到上限值。则,提高信息的传输速率方法是:用编码的方法让每一个码元携带更多比特的信息量(但是区分码元也就更加困难)。

2.2.4 传输方式

2.2.4.1 并行传输和串行传输

  • 并行传输,指数据是一次发送 n n n 个比特,为此,在发送端和接收端之间需要有 n n n 条传输线路(e.g. 内存条、SATA硬盘接口)

  • 串行传输,指数据是一个比特一个比特依次发送的,因此在发送端和接收端之间只需要一条传输线路 (e.g. 鼠标)

2.2.4.2 异步传输和同步传输

  • 同步:指收发双方在时间基准上保持一致的过程。异步传输和同步传输是指两种采用不同同步方式的传输方式
  • 异步传输:以字节为独立的传输单位,字节之间的时间间隔不是固定的,接收端仅在每个字节的起始处对字节内的比特实现同步
  • 同步传输:以稳定的比特流的形式传输,字节间没有间隔,没有起始位和结束位,要采取技术使收发双方的时钟保持同步
    • 外同步:收发之间提供一条单独的时钟线,发送方在发送数据的同时,发送时钟同步信号
    • 内同步:发送方将时钟同步信号编码到发送数据中一起传输

2.2.4.3 几种不同的通信方式

  • 信道(channel):向某一方向传送信息的媒体。一条通信电路通常包含一条发送信道和一条接收信道
  • 单向通信(单工通信):只能有一个方向的通信而没有反方向的交互
  • 双向交替通信(半双工通信):通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)
  • 双向同时通信(全双工通信):通信的双方可以同时发送和接收信息

2.3 物理层下面的传输媒体

传输媒体:为电磁波传输的媒介

  • 导向传输媒体 (有形)
  • 非导向传输媒体 (无形)

2.3.1 导向传输媒体

  • 双绞线
    • 屏蔽双绞线 STP (Shielded Twisted Pair)
    • 无屏蔽双绞线 UTP (Unshielded Twisted Pair)
  • 同轴电缆 coaxial cable
    • 50欧姆 同轴电缆
    • 75欧姆 同轴电缆

可靠性:双绞线 > > > 同轴电缆

  • 光缆
    • 光纤(optical fiber)是一种传输光束的细微而柔韧的介质,通常由非常透明的石英玻璃拉成细丝,由纤芯和包层构成双层通信圆柱体。
    • 光纤的传输特性 : 通常封套较纤芯有较低的折射率。当光线从高折射率的介质射向低折射率的介质时,其折射角将大于入射角,如下左图所示此,如果入射角足够大,就会出现全反射,即光线碰到包层时就会折射回纤芯。这个过程不断重复,光也就沿着光纤传输下去。

2.3.2 非导向传输媒体

2.3.2.1 电磁频谱

Computer Network Note_第17张图片

2.3.2.2 无线电传输

  • 无线传输所使用的频段很广
  • 短波通信主要是靠电离层的反射,但短波信道的通信质量较差
  • 微波在空间主要是直线传播。
    • 地面微波接力通信
    • 卫星通信

Computer Network Note_第18张图片

2.3.2.3 微波传输

2.3.2.4 红外线和毫米波

  • 短距离有方向性的通信

2.3.2.5 光波传输

2.3.2.6 卫星通信

2.4 信道复用技术

2.4.1 频分复用、时分复用和统计时分复用

  • 复用技术

Computer Network Note_第19张图片

2.4.1.1 频分复用 FDM (Frequency Division Multiplexing)

  • 用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
  • 频分复用:所有用户在同样的时间占用不同的带宽资源(注意:这里的“带宽”是频率带宽,而不是数据的发送速率)
  • 使用傅里叶变换分离信号
  • 缺点:会出现频段的浪费的问题,一个频段被一个用户独占

Computer Network Note_第20张图片

2.4.1.2 时分复用TDM(Time Division Multiplexing)

  • 时分复用:将时间划分为一段段等长的时分复用帧(TDM 帧),每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙(slot)。

    • 每个用户所占用的时隙周期性出现(其周期就是 TDM 帧的长度)。

    • TDM 信号也称为等时(isochronous)信号。

即:时分复用的所有用户是在不同的时间占用同样的频带宽度。

  • 使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般是不高的。

Computer Network Note_第21张图片

2.4.1.3 统计时分复用 STDM (Statistic TDM)

  • 各用户将数据发往集中器,时分复用帧分给申请方,动态按需分配
  • 特点:slot数少于用户数,slot动态分配给用户;集中器按顺序扫描用户输入的数据,将缓存中数据依次放入STDM帧中slot,当一帧放满,再发送
  • STDM特点
    • STDM帧不是固定分配时隙,而是按需动态分配;
    • STDM可以提高线路的利用率
    • STDM方法中,每个时隙中,必须分配部分时间用于传送用户信息。

2.4.2 波分复用 WDM (Wavelength Division Multiplexing)

波分复用:本质上是光的频分复用。

2.4.3 码分复用 CDM (Code Division Multiplexing)

  • 常用的名词:码分多址 CDMA (Code Division Multiple Access)。

  • 各用户使用经过特殊挑选的不同码型,可以在同时使用同样的频带通信,彼此不会造成干扰。(相当于大家使用不同的暗语,同时喊话,收听者只会收听自己能听懂的暗语)

  • 优点:发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。

**CDMA工作原理 **

  • 每一个比特时间划分为 m m m 个短的间隔,称为码片(chip)。 ( m = 8 , 64 , 128 ) (m=8, 64, 128) (m=8,64,128)
  • 每个CDMA站被指派一个唯一的 m m m bit 码片序列(chip sequence)
    • 发送比特 1 1 1,则发送自己的 m m m bit 码片序列。
    • 发送比特 0 0 0,则发送该码片序列的二进制反码。

e . g . e.g. e.g. S S S 站的 8 8 8 bit 码片序列是 00011011 00011011 00011011

  • 发送比特 1 1 1 时,就发送序列 00011011 00011011 00011011
  • 发送比特 0 0 0 时,就发送序列 11100100 11100100 11100100

CDMA 的特点

  • 对于每个站分配的码片序列
    • 必须各不相同
    • 必须互相正交(orthogonal) 将码片序列看成向量 v = ( 1 , 1 , 0 , 1 ) v=(1,1,0,1) v=(1,1,0,1) ,正交即 v 1 ⋅ v 2 = 0 v_1 \cdot v_2 =0 v1v2=0
    • 必须与其他码片的反码正交
    • 模为1
    • 在实用的系统中,码片序列使用伪随机码序列。

码片序列的正交关系

  • 令向量 S S S 表示站 S S S 的码片向量, T T T 表示其他任何站的码片向量。
  • 两个不同站的码片序列正交,指向量 S S S T T T 的规格化内积(inner product)为 0 0 0

S × T = 1 m ∑ i = 1 m S i T i = 0 S \times T =\frac{1}{m} \sum_{i=1}^{m}S_iT_i=0 S×T=m1i=1mSiTi=0

注意:计算时,必须将: 0 0 0 写为 − 1 -1 1 1 1 1 写为 + 1 +1 +1

这样做,就可以区分一个基站是否发送了数据,如果基站发送了数据, r e s = 1   o r   − 1 res=1\ or \ -1 res=1 or 1 ,分别对应发送 1 和 -1 两种二进制数据,如果计算结果为 0 ,则这个基站就没有发送数据。如果不这样做的话,没有发送数据和发送了 -1 所得到的结果都是 r e s = 0 res=0 res=0 这样无法区分发送的数据 0 和没有发送数据 1 .

参考资料

2.5 数字传输系统

!2.5.1 脉码调制 PCM 体制

脉码调制 PCM (Pulse code Modulation)体制:最初是为了在电话局之间的中继线上传送多路的电话。

Computer Network Note_第22张图片

  • 模拟电话信号转变为数字信号的过程
  1. 对电信号采样

Δ t \Delta t Δt 时间对电信号采样,把它离散化

  1. 量化 → \to 模数转换

对每个采样点所对应的数值确定一种二进制的表示方式,实现从模拟信号到数字信号的转换

e.g. 这是一个例子

设采样频率 S = 8 k H z S = 8kHz S=8kHz ( k k k 在描述数据量大小的时候才是 1024 1024 1024,其它时候都是 1000 1000 1000,同理 M M M 在其他时候是 1 0 6 10^6 106),即采样周期 T = 125 u s T = 125us T=125us,每秒 8000 8000 8000 个脉冲信号

如果每个脉冲信号用 8 8 8 位二进制编码 → \to PCM速率: 8 × 8000 = 64 k b p s 8\times 8000 = 64kbps 8×8000=64kbps

为提高线路利用率(因为PCM 每隔 T T T 采样一个信号传送,其它时间空闲),采用时分复用方法将一秒划分为三十二个时分复用帧(长度 T = 125 μ s T=125\mu s T=125μs,即每秒可以传送 8000 8000 8000 个时分复用帧)划分为 32 个 slots(即32个时隙)

每个 slot 传送 8 b i t s 8 bits 8bits,因此PCM一次群 E1 的数据率: 32 × 8 × 8000 = 2048 k b p s = 2.048 M b p s 32\times8\times 8000 = 2048 kbps = 2.048Mbps 32×8×8000=2048kbps=2.048Mbps

32个slot中,有2个slot用于帧同步和传送信令,因此一个E1时分复用帧共有30个话路.

  • PCM的缺点
    • 速率标准不统一
    • 如果不对高次群的数字传输速率进行标准化,国际范围的高速数据传输就很难实现
  • 不是同步传输
    • 在过去相当长的时间,为了节约经费,各国的数字网主要是采用准同步方式
    • 随着数据传输速率的提高,非同步给数字信号的复用和分用产生严重影响,“同步”成为亟待解决的问题

*2.5.2 同步光纤网 SONET 和 同步数字系列 SDH

*2.5.3 光网络

2.6 互联网接接入技术

解决无法连接到主干网用户的问题

2.6.1 电话网拨号接入

  • 通过拨号调制解调器接入(非宽带接入)
    • 允许最高56Kbps接入速率(通常会更低)
    • 不能同时上网和打电话
    • 不提供持续连接

2.6.2 数字用户接入

利用高频部分进行传输

xDSL 技术:用数字技术对现有的模拟电话用户线进行改造,使它能够承载宽带业务。

标准模拟电话信号的频带被限制在 300~3400 Hz 的范围内,但用户线本身实际可通过的信号频率超过 1 MHz。

xDSL 技术把 0~4 kHz 低端频谱留给传统电话使用,把原来没有被利用的高端频谱留给用户上网使用。高频部分分成两份,上传数据和下载数据所用的频道分开

DSL:数字用户线(Digital Subscriber Line)的缩写。

DSL 的前缀 x :表示在数字用户线上实现的不同宽带方案。

xDSL 的几种类型

  • ADSL (Asymmetric Digital Subscriber Line):非对称数字用户线。用数字技术改造电话用户线,实现宽带数字业务;
  • HDSL (High speed DSL):高速数字用户线
  • SDSL (Single-line DSL):1 对线的数字用户线
  • VDSL (Very high speed DSL):甚高速数字用户线
  • DSL :ISDN 用户线。
  • RADSL (Rate-Adaptive DSL):速率自适应 DSL,是 ADSL 的一个子集,可自动调节线路速率)。

! ADSL

ADSL 的极限传输距离

ADSL 的极限传输距离与数据率以及用户线的线径有很大的关系(用户线越细,信号传输时的衰减就越大),所能得到的最高数据传输速率与实际的用户线上的信噪比密切相关。

ADSL 的特点
  • 上行和下行带宽不对称
  • 上行指从用户到 ISP,下行指从 ISP 到用户。
  • ADSL 在用户线(铜线)的两端各安装一个 ADSL 调制解调器(又称为接入端单元ATU(Access Termination Unit))。
    • ATU-C(C 代表端局 Central Office)
    • ATU-R(R 代表远端 Remote)

Computer Network Note_第23张图片

ADSL调制解调器实现方案
  • 离散多音调 DMT (Discrete Multi-Tone)调制技术。“多音调”:指“多载波”或“多子信道”
!DMT 技术

DMT 调制技术采用频分复用的方法,

  • 将 40 kHz ~ 1.1 MHz 的高端频谱划分为许多的子信道,其中
    • 上行信道:25 个子信道
    • 下行信道:249 个子信道。
  • 每个子信道占据 4 kHz 带宽(严格讲是 4.3125 kHz),使用不同的载波(即不同的音调)进行数字调制:
    • 相当于在一对用户线上使用许多小的调制解调器,均采用先进的编码技术编码,且并行地传送数据,因此可以极大的提高数据传送速率。

2.6.3 光纤同轴混合网 HFC (Hybrid Fiber Coax)

HFC 网具有比 CATV 网更宽的频谱,且具有双向传输功能,理论速率比 ADSL 快几百倍

Computer Network Note_第24张图片

2.6.4 光纤接入

FTTx(光纤到……)也是一种实现宽带居民接入网的方案。这里字母 x 可代表不同意思。

  • 光纤到家 FTTH (Fiber To The Home):光纤一直铺设到用户家庭可能是居民接入网最后的解决方法。
  • 光纤到大楼 FTTB (Fiber To The Building):光纤进入大楼后就转换为电信号,然后用电缆或双绞线分配到各用户。
  • 光纤到路边 FTTC (Fiber To The Curb):从路边到各用户可使用星形结构双绞线作为传输媒体。

2.6.5 以太网接入

各种政府机构、大型企业和大学校园的用户通常通过内部的以太网接入到因特网

2.6.6 无线接入

  • 无线广域接入:通过蜂窝移动通信系统接入到因特网。

  • 无线局域接入:通过无线局域网接入到因特网。

总结

  • 物理层做什么用的
  • 物理层屏蔽了细节,标准化对外部的接口
  • 如何实现不同设别间的连接:双绞线,同轴电缆,光纤

第三章 数据链路层

数据链路层概述

数据链路层使用的信道主要有两种类型(连接方式)

  • 点对点信道:使用一对一的点对点通信方式。(PPP)
  • 广播信道: 使用一对多的广播通信方式。(以太网)

说明

  • 广播信道上连接的主机很多,必须使用专用的共享信道协议来协调这些主机的数据发送。
  • 数据链路层传输的数据单位,称为

3.1 使用点对点信道的数据链路层

3.1.1 数据链路和帧

  • 链路(link):一条无源的点到点的物理线路段,中间没有任何其他的交换结点

  • 数据链路(data link) :除物理线路外,还必须有通信协议来控制数据的传输

    • 使用适配器(即网卡)实现这些协议的硬件和软件
    • 一般的适配器包括:数据链路层和物理层 这两层的功能
  • 在两个对等的数据链路层之间画出一个数字管道,在这条数字管道上传输的数据单位是

3.1.2 封装成帧

  • 封装成帧(framing):就是在一段数据的前后分别添加首部和尾部,确定帧的界限

Computer Network Note_第25张图片

一开始,使用字符串进行帧定界

Computer Network Note_第26张图片

但是,传送的数据本身包含EOT,就会使得接收端收到的帧不完整

3.1.3 透明传输

  • 传送的数据本身包含EOT,就会使得接收端收到的帧不完整,这就叫透明传输问题

解决透明传输问题

数据中出现控制字符“SOH”或“EOT”:

  • 发送端数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(十六进制编码是 1B)。
  • 接收端数据链路层在将数据送往网络层之前,删除插入的转义字符,称为字节填充(byte stuffing)或字符填充(character stuffing)。
  • 如果转义字符也出现数据当中,在转义字符前面插入一个转义字符。
  • 当接收端收到连续的两个转义字符时,就删除其中前面的一个。

3.1.4 差错检测

在传输过程中可能会产生比特差错:1 可能变成 0,而 0 也可能变成 1

循环冗余检验(CRC)的原理

  • 在发送端,先把数据划分为组。假定每组 k k k 个比特。
  • 每组数据 M M M 的后面再添加用于差错检测的 n n n 位冗余码(Frame Check Sequence) R R R 一起发送

运算方法

  1. 用二进制的模 2 2 2 运算进行 2 n 2^n 2n M M M 的运算,相当于在 M M M 后面添加 n n n 0 0 0
  2. 得到 ( k + n ) (k + n) (k+n) 位的数,除以事先选定好的长度为 ( n + 1 ) (n + 1) (n+1) 位的除数 P P P(注意:这里的除,指异或运算,也就是保证当前存在的首位为 0 0 0
  3. 得商 Q Q Q,余数 R R R,余数 R R R 比除数 P P P 1 1 1 位,即 R R R n n n 位。
  • n n n 的计算: n = l e n ( 除 数 ) − 1 n=len(除数)-1 n=len()1 ,因为余数一定是 l e n ( 除 数 ) − 1 len(除数)-1 len()1

下面是一个例子

Computer Network Note_第27张图片

接收端对收到的每一帧进行 CRC 检验

  1. 若得出的余数 R = 0 R = 0 R=0,则判定这个帧没有差错,就接受

  2. 若余数 R ≠ 0 R \ne 0 R=0,则判定这个帧有差错,就丢弃

  • 这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错
  • 只要使用位数足够多的除数 P P P,那么出现检测不到的差错的概率就很小很小

3.1.5 可靠传输

停止等待协议

对于发送的每一个信号,接收方发送一个确认信息,如果发送和接受都顺畅(在倒计时内),认为传输成功

通过超时重传实现可靠传输

Computer Network Note_第28张图片

  • 超时重传时间根据当前网络情况动态调整
  • 在确认报文丢失的情况下,当作发送失败
  • 如果过了倒计时才收到,依旧超时重传(A会收到两个相同的确认)

协议特点

  • 在发送完一个帧后,必须暂时保留已发送的帧的副本
    • 这就导致了停止等待协议效率低下
  • 数据帧和确认帧都必须进行编号
  • 只要超过了一段时间还没有收到确认,就认为已发送的帧出错或丢失了,因而重传已发送过的帧。这就叫做超时重传
  • 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些

自动重传请求 (ARQ)

自动重传请求ARQ :使用确认和重传机制,可以在不可靠的传输网络上实现可靠的通信,接收方不需要请求发送方重传某个出错的分组

信道利用率

Computer Network Note_第29张图片
U = T D T D + R T T + T A U=\frac{T_D}{T_D+RTT+T_A} U=TD+RTT+TATD
RTT​ (Round-Trip Time): 往返时延

连续ARQ: 流水线传输

Computer Network Note_第30张图片

  • 优点

    • 发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。
    • 由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。
  • 缺点

    • 对于发送方而言,流水线发送如果产生错误,后续处理非常麻烦
    • 对于接受方而言,如果接收方性能太差,接收方网络来不及处理
  • 解决方法

    • 限制连续发送分组的数目 (但是效率还是太低)
    • 通过滑动窗口协议(如,GBN 协议)来进行浏览控制 (选择的方案)

滑动窗口1 后退N(Go-Back-N)

滑动窗口协议的特点

  • 只发送发送窗口的数据
  • 按序发送
  • 采用累计确认(收到一波数据后,等待一段延时,确认值是收到的完整前缀子串的最大值+1)
    • 比如在一个 t t t 时间内,收到了编号为 1 , 2 , 3 , 5 1,2,3,5 1,2,3,5 的四个数据包,那么返回的确认信息值就为 v a l u e = 3 + 1 = 4 value=3+1=4 value=3+1=4 ,如果发送方接收到了这个信息,就认为数据包 [ 1 ∼ 3 ] [1\sim3] [13] 已经全部发送成功
  • 回退 N N N 机制
    • 如果发送方发送了前 5 5 5 个分组,而中间的第 3 3 3 个分组丢失了。这时接收方只能对前两个分组发出确认,发送方无法知道后面 3 3 3 个分组的下落,而只好把后面的 3 3 3 个分组都再重传一次
  • 超时重传,如果发送方超时,将发送窗口内的数据全部重新发送一边

发送窗口的大小由接收方决定,接收方有接收缓存和接收窗口,接收窗口一般大于发送窗口,但为了方便起见,接收窗口一般取等于发送窗口的大小

通信双方在正式传输之前进行协商

注意:如果用 k k k 位表示帧序号,在 GBN 协议中,发送窗口和接收窗口的最大大小应为 2 k − 1 2^{k-1} 2k1 (原因:滑动窗口协议:发送窗口大小与序号空间大小关系)

滑动窗口2 选择重传(没有用)

对于滑动窗口 (go-back-N) 协议,一个分组的差错可能引起大量分组的重传,这些分组可能已经被接收方正确接收了,但由于未按序到达而被丢弃

设法只重传出现差错的分组。但必须加大接收窗口,以便先收下失序到达但仍然处在接收窗口中的哪些分组,等到所缺分组收齐后再一并送交上层。这就是选择重传 SR(Selective Repeat) 协议

但由于这样操作的效率太低,故被废弃

可靠传输的代价

实现可靠传输需要付出代价(如会降低传输效率),应当根据链路的具体情况来决定是否需要让链路层向上提供可靠传输服务

  • 当链路误码率非常低时,在数据链路层可不实现可靠传输,而是由上层协议(例如,运输层的TCP协议)来完成。
  • 但是在使用无线信道传输数据时,由于信道质量较差,在数据链路层仍需要实现可靠传输

3.2 点对点协议 PPP

3.2.1 PPP 协议的特点

现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)

  • 简单: 更严格,复杂的要求由传输层实现:
    • 对于接受方,每收到一帧,进行CRC检测。如果检验正确,接受该帧,否则,丢弃该帧,其它什么也不做
    • 得到的是不可靠传输,所以不使用帧的编号
      • p.s. 帧的编号是数据可靠传输的基本机制
  • 封装成帧 :规定帧定界符
  • 透明性 :能处理帧定界符为数据情形
  • 支持多种网络层协议 :能在同一条物理链路上同时支持多种网络层协议的运行
  • 多种类型链路 :能在多种类型的链路上运行。如:串行、并行,同步、异步,低速、高速等链路
    • 例:PPPoE,即 PPP over Ethernet,将PPP帧再封装成以太帧,可在以太网上运行。
    • 例:宽带上网就是使用PPPoE

PPP 协议的三个组成部分

  • 将 IP 数据报封装到串行链路的方法
  • 链路控制协议 LCP (Link Control Protocol)
    • 保证的物理的联通性,能发送数据,但是不提供网络服务
  • 一套网络控制协议 NCP (Network Control Protocol)
    • 每个协议支持不同的网络层协议(如IP, DECnet等)
    • 分配网络信息

3.2.2 PPP 协议的帧格式

Computer Network Note_第31张图片

  • PPP协议没有地址信息

PPP 有一个 2 个字节的协议字段

  • 当协议字段为 0x0021 时,PPP 帧的信息字段就是 IP 数据报
  • 若为 0xC021, 则信息字段是 PPP 链路控制数据
  • 若为 0x8021,则表示这是网络控制数据

F :flag,A:Address,C:Control

3.2.2.1 PPP 协议的透明传输

  • PPP 协议用在 SONET/SDH 链路时,使用同步传输。当 PPP 用在同步传输链路时,协议规定采用硬件来完成零比特填充(和 HDLC High-level Data Link Control 的做法一样)
  • 在发送端,只要发现有 5 个连续 1,则立即填入一个 0

  • 接收端对帧中的比特流进行扫描。每当发现 5 个连续 1 时,就把这 5 个连续 1 后的一个 0 删除

理由是:原因:flag = = = 0x7E = = = 0111 1110

  • 当 PPP 用在异步传输时,使用一种特殊的字符填充法。
  • 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列:(0x7D, 0x5E)
  • 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列:(0x7D, 0x5D)
  • 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
    • 如:0x03 → \to (0x7D, 0x23)

3.2.2.2 PPP协议是不提供使用序号和确认的可靠传输

原因

  • 在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理
  • 反正网络层也不可靠,所以干脆都不可靠
  • 帧检验序列 FCS 字段可保证无差错接收

3.2.3 PPP 协议的工作步骤

  1. 当用户通过 Modem 拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接(Physical link establish)
  2. PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧),建立LCP连接:(Link Establish)
    • 通过分组及其响应选择一些 PPP 参数,并进行网络层配置
    • NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机
  3. 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址
  4. LCP 释放数据链路层连接。最后释放物理层的连接

LCP : Link Control Protocol

NCP: Network Control Protocol

Computer Network Note_第32张图片

3.3 使用广播信道的数据链路层

在多用户的网络中,现有的 PPP 协议有以下问题

  1. 连接
  2. 身份
  3. 信道的使用

主要内容:媒体接入控制和局域网

3.3.1 媒体接入控制

两种媒体接入控制技术:(协调如何共享信道)

  • 静态划分信道:代价高,不适合于局域网使用

    • 频分复用:在人太多的时候,不适合使用
    • 时分复用
    • 波分复用
    • 码分复用
  • 动态接入控制(多点接入):信道(以独占式)根据需要动态分配给用户

    • 随机接入(多点接入):如Ether网的CSMA/CD
    • 受控接入 :如多点线路探询(polling),或轮询。

3.3.2 局域网

网络为一个单位所拥有,且地理范围和站点数目均有限

  • 具有广播功能,从一个站点可访问全网
  • 局域网上的主机可共享连接在局域网上的各种硬件和软件资源
  • 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变

3.3.2.1 局域网的不同连接方式

Computer Network Note_第33张图片

  • 匹配电阻:吸收在总线上传播的电阻,避免在总线上产生有害的电磁波反射

  • 总线网需要 T 头连接

  • 星形网、环形网、树形网本质上都是总线网

  • 交换机不仅把电脑连接起来,还可以处理数据

3.3.2.2 局域网体系结构

  • 实现不同局域网协议( MAC )的通信,类似于 IP 协议,将数据封装成 LLC 格式(IEEE 802.3)进行传输
    • 但是大家都使用以太网,这个协议就没有用了
    • 以太网只使用 MAC

Computer Network Note_第34张图片

3.3.2.3 网络适配器

网络接口板:又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card),或“网卡”

  • 网卡存储身份信息
  • 进行串行并行传输:电脑使用并行传输,数据在链路上通信使用串行传输
  • 对数据缓存:网卡发送/接收的数据需要一个等待队列
  • 多数网卡实现以太网协议
  • 驱动操作系统

Computer Network Note_第35张图片

3.3.2.4 MAC 地址 (身份)

在局域网中,硬件地址又称为物理地址,或 MAC 地址。 802 标准所说的 “地址” ,严格地讲应当是每一个站的 “名字” 或标识符

分配MAC地址

IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位),即组织唯一标示符号OUI

地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符EUI,必须保证生产出的适配器没有重复地址

MAC 地址的I/G、G/L位

  • MAC地址的第1字节的最低位为I/G位(Individual/Group)
    • I/G=0单个站地址
    • I/G=1组地址,用于多播(全部为1,即 FFF.FFFF.FFFF
  • IEEE只负责分配前3个字节中的23位,同时,IEEE允许人们不向其购买OUI,规定MAC地址的第1字节的最低第2位为G/L位(Global/Local):
    • G/L=1:MAC全球管理,全球唯一
    • G/L=0:MAC本地管理,不能在互联网上使用

适配器检查 MAC 地址

  • 适配器从网络上每收到一个 MAC 帧,首先用硬件检查 MAC 帧中的 MAC 地址
    • 如果是1
    • 发往本站的帧则收下,然后再进行其他的处理
    • 否则就将此帧丢弃,不再进行其他的处理
  • 对于收到的帧,对其进行分类,根据接收方的 MAC 地址 I/G=0
    • 单播(unicast)帧(一对一)
    • 广播(broadcast)帧(一对全体) 全部都是 1
    • 多播(multicast)帧(一对多)

以太网适配器的“混杂方式”(promiscuous mode):该工作方式下,适配器只要“听到”有帧在以太网上传输,就全部接收

3.4 共享式以太网

3.4.1 CSMA/CD 协议

为了通信的简便以太网采取了两种重要的措施

  1. 无连接:采用较为灵活的无连接的工作方式 (因为是有线网络)
    • 不先建立连接,直接发送数据,不确认接收方是否在线
    • 对发送的数据帧不进行编号,也不要求对方发回确认
  • 理由是:局域网信道的质量很好,因此信道质量产生差错的概率很小。 一旦出现差错帧,直接丢弃
    • 因此,以太网提供的服务是不可靠的交付,即最大努力的交付
  1. 同步:使用曼彻斯特(Manchester)编码发送比特数据,便于提取同步信号
    • 在面对一长串 1 或者 0 的时候,曼彻斯特编码在发送和接收方时间不同步的时候可以容易的区分 0 和 1

3.4.2 碰撞检测

在发生碰撞的那一刹那,碰撞双方并不知道发生了碰撞,只有碰撞信号到达双方时,才知道发生了碰撞

发生碰撞

  1. 每一个正在发送数据的站,一旦发现总线上出现了碰撞,立即停止发送,并发送强化干扰信号强化碰撞
    • 发送32 / 48比特的人为干扰信号 (jamming signal),以便让所有用户都知道现在已经发生了碰撞。
  2. 等待一段随机时间后再次发送

产生信道碰撞的原因

  • 当某个站监听到总线是空闲时,可能总线并非真正是空闲的
    • A 向 B 发出的信息,要经过一定的时间后才能传送到 B
    • B 若在 A 发送的信息到达 B 之前发送自己的帧(因为这时 B 的载波监听检测不到 A 所发送的信息),必然要在某个时间和 A 发送的帧发生碰撞
    • 对 B 而言,从发送数据到最大可能发生碰撞的时间是 2 τ 2\tau 2τ (设 B 数据发送到 A 的时间为 τ \tau τ,端到端的往返时延)

争用期

最先发送数据帧的站,在发送数据帧后至多经过时间 2 τ 2\tau 2τ (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
以太网的端到端往返时延 2 τ 2\tau 2τ 称为争用期,或碰撞窗口

经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

计算随机时间:截断二进制指数退避算法

发生碰撞的站在停止发送数据后,推迟(退避)一个随机时间才能再发送数据

确定基本退避时间,一般是取为争用期 2 τ 2\tau 2τ

定义重传次数 k k k k ≤ 10 k \le 10 k10,即
k = M i n [ 重 传 次 数 , 10 ] k = Min[重传次数, 10] k=Min[,10]

从整数集合 [ 0 , 1 , … , ( 2 k − 1 ) ] [0,1,…, (2^{k}-1)] [0,1,,(2k1)]中随机地取出一个数,记为 r r r。重传所需的时延就是 r r r 倍的基本退避时间。

重传的总时延 T T T
T = r × 2 τ T=r\times 2\tau T=r×2τ
争用期的长度

以太网取 2 τ = 51.2 μ s 2\tau = 51.2 \mu s 2τ=51.2μs 为争用期的长度

e.g. 对于 10 Mb/s 以太网,在争用期内可发送 512 bit,即 64 字节:

以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突(根据争用期得出)。如果发生冲突,就一定是在发送的前 64 字节之内,由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节

因此,以太网规定,一个合法帧的长度大于等于 64 字节

凡是小于 64 字节的帧都是因为碰撞终止的无效帧,收到无效帧应该立即丢弃

3.4.3 共享以太网的信道利用率

α = τ n τ + T 0 + τ \alpha=\frac{\tau}{n\tau+T_0+\tau} α=nτ+T0+ττ

对以太网参数的要求

τ \tau τ 的大小与连线的长度有关:
当数据率一定时,以太网的连线的长度受到限制,否则 τ \tau τ 的数值会太大。
以太网的帧长不能太短,否则 T 0 T_0 T0 的值会太小,使 α \alpha α 值太大。

3.4.4 以太网的连接方式:使用集线器的星形拓扑

image-20210408092244045

  • 从逻辑上说,集线器起到了总线的作用

Computer Network Note_第36张图片

!3.4.5 以太网的帧格式

  • 常用的以太网MAC帧格式有两种标准

    • DIX Ethernet V2 标准

    Computer Network Note_第37张图片

    • IEEE 的 802.3 标准

Computer Network Note_第38张图片

  • 以太网的帧的数据范围是在 64 ∼ 1500 64\sim 1500 641500 个字节之间

无效的 MAC 帧

  • 数据字段的长度与长度字段的值不一致
  • 帧的长度不是整数个字节
  • 用收到的帧检验序列 FCS 查出有差错
  • 数据字段的长度不在 46 ~ 1500 字节之间
  • 有效的 MAC 帧长度为 64 ~ 1518 字节之间
  • 对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧

3.4.6 小结

  • 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信
    • 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
    • 这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率

3.5 网桥和以太网交换机

3.5.1 在物理层扩展局域网

  1. 使用中继器放大电信号
  2. 使用光纤连入

使用物理层扩展局域网, 会造成平均可利用信道资源的下降, 发生碰撞的概率上升

e.g. 某大学有三个系,各自有一个局域网

Computer Network Note_第39张图片

  • 用集线器组成更大的局域网,都在一个碰撞域中,这样,每个人使用的信道资源都下降了

Computer Network Note_第40张图片

优点

  • 使原来属于不同碰撞域 (冲突域) 的局域网上的计算机能够进行跨碰撞域的通信。

  • 扩大了局域网覆盖的地理范围

缺点

  • 碰撞域增大了,但总的吞吐量并未提高
  • 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来:否则只能已最小数据率工作

3.5.2 在数据链路层扩展局域网

使用网桥,网桥工作在数据链路层:根据 MAC 帧的目的地址对收到的帧进行转发

  • 使用自学习算法更新,也就是说,根据源地址和目的地址找到每一个设备所属的网段
    • 登记地址、接口、时间

优点

  • 过滤通信量,增大吞吐量
  • 扩大了物理范围
  • 提高了可靠性
  • 可互连不同物理层、不同 MAC 子层和不同速率的局域网
    • 如:10 Mb/s 和 100 Mb/s 以太网

缺点

  • 存储转发增加了时延
  • MAC 子层并没有流量控制功能,导致速度快的设备超量发送数据但是接收方接收速度慢导致缓冲区满,致使帧丢失

网桥和集线器(或转发器)不同

  • 集线器在转发帧时,不对传输媒体进行检测
  • 网桥在转发帧之前必须执行 CSMA/CD 算法
    • 若在发送过程中出现碰撞,就必须停止发送和进行退避
  • 用户数量太大(几百个以上)或者通信量太大时,会产生广播风暴

透明网桥

指局域网上的站点并不知道所发送的帧将经过哪几个网桥,网桥对各站来说是看不见的

透明网桥是一种即插即用设备,只要把网桥接入局域网,不需要改动硬件和软件,无需设置地址开关,无需装入路由表或参数,网桥就能工作

透明网桥的局限性:如果两个终端之间存在环,转发的数据就有可能在不停地兜圈子,导致了网络资源被白白的消耗了

Computer Network Note_第41张图片

源路由网桥

源路由(source route)网桥:在发送帧时将详细的路由信息放在帧的首部中

  • 源站以广播方式向欲通信的目的站发送一个发现帧,每个发现帧交换机能同时连通许多对接口,使每一对相互通信的主机能像独占通信媒体那样,进行无碰撞地传输数据都记录所经过的路由

  • 发现帧到达目的站时就沿各自的路由返回源站。源站在得知这些路由后,从所有可能的路由中选择出一个最佳路由

  • 凡从该源站向该目的站发送的帧的首部,都必须携带源站所确定的这一路由信息

3.5.3 多接口网桥——以太网交换机

以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式(每一个站点和另一个站点通信的时候都是独占信道的,传输的数据都是无碰撞数据)

  • 交换机能同时连通许多对接口,使每一对相互通信的主机能像独占通信媒体那样,进行无碰撞地传输数据

  • 以太网交换机使用专用的交换结构芯片,交换速率较高

  • 以太网交换机独占传输媒体的带宽:对于拥有 N N N 对接口的 10   M b / s 10 \ Mb/s 10 Mb/s交换机的总容量为 N × 10   M b / s N\times10 \ Mb/s N×10 Mb/s

  • 以太网接口的两种通讯模式

    • ACCESS模式:只接收和他自己虚拟局域网编号相同的帧
    • TRUNK模式:可以接收所有地方的帧

3.5.4 虚拟局域网

虚拟局域网 VLAN :由一些局域网网段构成的与物理位置无关的、具有某些共同需求的逻辑组

  • 这些网段具有某些共同的需求
  • 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN

image-20210409123910038

  • 虚拟局域网只是局域网给用户提供的一种服务,而并不是一种新型局域网

e . g . e.g. e.g.

对于上图

  • B 1 B_1 B1VLAN2 工作组内成员发送数据时,工作站 B 2 B_2 B2 B 3 B_3 B3 将会收到广播的信息
  • B 1 B_1 B1 发送数据时,工作站 A 1 A_1 A1, A 2 A_2 A2 C 1 C_1 C1都不会收到 B 1 B_1 B1 发出的广播信息
  • 虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息(即“广播风暴”)而引起性能恶化

*3.7 无线局域网

  • 无线局域网难以保证广播和可靠性

3.7.1 无线局域网的组成

Computer Network Note_第42张图片

  • 基本入网方式:与接入点 AP 建立关联(association)

    • 一个移动站若要加入到一个基本服务集 BSS,必须先选择一个接入点 AP,并与此接入点建立关联
    • 建立关联就表示这个移动站加入了选定的 AP 所属的子网,并和这个 AP 之间创建了一个虚拟线路
    • 只有关联的 AP 才向这个移动站发送数据帧,而这个移动站也只有通过关联的 AP 才能向其他站点发送数据帧
  • 移动自组网络

又称自组网络(ad hoc network) : 是没有固定基础设施(即没有 AP)的无线局域网。这种网络由一些处于平等状态的移动站之间相互通信组成的临时网络

通过在网络中的设备进行存储和转发, 所有的设备都是转发节点

Computer Network Note_第43张图片

  • 移动IP与移动自组网络
移动IP 移动自组网络
目的 移动终端接入Internet 移动终端之间的互联
协议 采用固定互联网路由协议 拥有自己的路由协议
残桩网络Stub network 是,即允许通信量进入网络, 允许网络发出通信量, 但不允许外部通信量穿越网络
身份 IP地址(是一种身份,一种IP地址) 是网络
难点 IP地址不能直接用于路由

残桩网络:通信量可以进入该网络,也可以从该网络发出,但不允许外部的通信量穿越的网络

3.7.3 802.11 的 MAC协议

  1. 使用CSMA/CA 协议

  2. 隐蔽站问题

    当 A 和 C 检测不到无线信号时,都以为 B 是空闲的,
    因而都向 B 发送数据,结果发生碰撞。

确认与帧间间隔

所有的站在完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间的通称是帧间间隔 IFS (Inter Frame Space)

p.s. 通过帧间间隔区分发送的优先级

第四章 网络层与网络互连

  • IP 地址
  • IP 分组如何进行存储转发 → \to 路由表 → \to 构造和维护路由表
  1. 数据格式:IP 分组,将传输的数据放到一个大家都认识的数据格式中
  2. 定位

4.1 网络层概述

4.1.1 分组转发和路由选择

  • 根据路由选择协议转发

4.1.2 网络层提供的两种服务

争论:在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)

  • 借助电信网的成功经验让网络负责可靠交付

    • 面向连接的通信方式
    • 建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源
    • 如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点
  • 因特网采用的设计思路

    • 网络在发送分组时不需要先建立连接
    • 网络层不提供服务质量的承诺
对比的方面 虚电路服务 数据报服务
思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证
连接的建立 必须有 不需要
终点地址 仅在连接建立阶段使用,每个分组使用短的虚电路号 每个分组都有终点的完整地址
分组的转发 属于同一条虚电路的分组均按照同一路由进行转发 每个分组独立选择路由进行转发
当结点出故障时 所有通过出故障的结点的虚电路均不能工作 出故障的结点可能会丢失分组,一些路由可能会发生变化
分组的顺序 总是按发送顺序到达终点 到达终点时不一定按发送顺序
端到端的差错处理和流量控制 可以由网络负责,也可以由用户主机负责 由用户主机负责

4.2 网际协议IP !

网桥存在的问题

  1. 寻址问题 找到一个网络地址只能全网络广播
  2. 格式问题 各个网络使用的帧的格式不同

解决这个问题: IP 地址

  1. 在数据链路层之上,构造了一个网络互连层
  2. 给定一个网络上的设备一个 IP 地址,IP 地址与设备的地理位置有关
  3. 给定新的数据格式:IP 分组/IP 数据表
    • 也就是不在使用网卡地址作为身份认证,使用 IP 地址确定身份
    • 路由器可以不知道具体 IP 地址的位置,只用知道下一个需要发送给谁(通过路由表)

要实现这种方法

  • IP 如何分配
  • IP 分组的格式
  • 路由表如何查询选择 → \to 路由选择问题

! 三种IP地址的分配方式

4.2.1 分类的 IP 地址

IP 地址:给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符

为了方便识别和记忆,常使用点分十进制表示 IP 地址

Computer Network Note_第44张图片

e.g. 在网络上:域名 → \to (域名解析) → \to IP 地址

  • 每一类地址都由两个固定长度的字段组成,

    • 网络号 net-id:它标志主机(或路由器)所连接到的网络;
    • 主机号 host-id:它标志该主机(或路由器)。
  • 两级的 IP 地址可以记为

I P 地 址 : : = { < 网 络 号 > , < 主 机 号 > } IP 地址 ::= \{ <网络号>,<主机号>\} IP::={<>,<>}

通过最高位的数字判断网络号

Computer Network Note_第45张图片

Computer Network Note_第46张图片

特殊的IP地址

  • 全0 IP地址代表本机

  • 全1 IP地址代表广播

  • 私有的IP地址

    • 127.0.0.1 ∼ \sim 127.255.255.254 为回环地址
      • 能PING通127.0.0.1说明本机的IP协议安装没有问题
    • A类:10.0.0.0到10.255.255.255
    • B类:172.16.0.0到172.31.255.255
    • C类:192.168.0.0到192.168.255.255

IP地址的分配

  1. IP 地址管理机构在分配 IP 地址时只分配网络号,买 IP 地址的时候只买了网络号

查询和转发

  1. 从IP分组中提出 I P B IP_B IPB
  2. I P B → IP_B\to IPB 网络号
  3. 查路由表
网络号 下一跳
192.168.2 I 1 I_1 I1 (接口)
192.168.3 I 2 I_2 I2

4.2.2 划分子网

从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位

如果同一网络号具有两个不同的接口,使用子网号划分子网

I P B IP_B IPB 和子网掩码做与运算,得到下一跳,这样只使用一个网络号,得到了两个子网

  • 一定是 2 2 2 的幂次
  • 一个子网号管理的子网数目一定是相同的
网络号+子网号(来源于主机号) 下一跳 子网掩码
192.168.2.128 I 1 I_1 I1 255.255.255.128
192.168.2.0 I 2 I_2 I2 255.255.255.128

计算子网掩码:目的是计算出网络号和子网号,在点分十进制的最后一个字段 n 1 − k n_{1-k} n1k 都为 1 1 1

4.2.3 不等分的划分子网 CIDR

利用网络前缀,选择位数最深的那个(CIDR 无分类的IP地址),构成超网

CS 0*
O  10*
SE 110*
NE 111*
网络前缀 下一跳 掩码
CS I 1 I_1 I1 125
O I 2 I_2 I2 126
SE I 3 I_3 I3 127
NE I 4 I_4 I4 127
  • CIDR使用各种长度的 “网络前缀” (network-prefix)来代替分类地址中的网络号和子网号

IP地址::= {<网络前缀>, <主机号>}

  • CIDR 还使用 “斜线记法”( 或称 CIDR 记法) , 即 IP 地址/网络前缀 所占比特数。其中,网络前缀所占比特数对应于网络号的部分, 等效于子网掩码中连续 1 的部分
    • 例如, 对于 128:14:32:5/20 这个地址, 它的掩码是 20 个连续的 1 和后续 12 个连续的 0, 通过逐位相 “与” 的方法可以得到该地址的网络前缀( 或直接截取前 20 位)
    • 注意:一个 IP 地址以斜线记法出现,那么它一定是 CIDR 划分方法

4.2.4 地址解析协议 ARP 和逆地址解析协议 RARP

4.2.4.1 ARP

不管网络层使用什么协议,在实际网络的链路上传送数据帧时,必须使用硬件地址

Computer Network Note_第47张图片

每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表

执行流程

  1. 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
  2. 如有,就查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
  3. 如无,自动运行ARP:广播ARP请求分组

Computer Network Note_第48张图片

4.2.4.2 RARP

逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址

使用范围:

  • 无盘工作站
  • 自动获取 IP 地址:DHCP 服务器

4.2.5 IP 数据报的格式

一 个 I P 数 据 报 = 首 部 + 数 据 一个 IP 数据报 = 首部 + 数据 IP=+

  • 首部的前一部分是固定长度, 20 20 20 字节,是所有 IP 数据报必须具有的

  • 在首部的固定部分的后面是一些可选字段 ( 1 ∼ 40 1\sim 40 140 Byte),其长度是可变的

Computer Network Note_第49张图片

4.2.5.1 固定部分

  • 版本:IPV4 为 4 4 4

  • 首部长度 n n n 的实际值为 4 n 4n 4n

    • 当首部长度不为 4 4 4 的倍数的时候,在首部的面加 0 0 0
  • 区分服务:已经废弃

  • 总长度:IP 分组的总长度

  • 标识: 16 16 16 位二进制数

    • 它是一个计数器,用来产生数据报的标识
    • 序号回扰:IPV4 的序号
  • 标志: 3 3 3 位(有一位空着不用)

    • 分片标志
    • DF (Don‘t Fragment) :只有当 DF = 0 时,才允许分片
    • MF (More Fragment):MF = 1 表示后面还有分片 MF = 0 表示最后一个分片
    • 对于首部
      • 修改DF,MF
      • 修改首部长度
      • 不修改标识
    • 为了解决分片的顺序问题,引进片偏移量
  • 片偏移(13 位):当数据报长度超过MTU,必须分片;较长的分组在分片后,某片在原分组中的相对位置

    • 以 8 个字节为偏移单位,每个分片长度是 8 字节倍数
    • 偏移量 = 数据字段长 / 8
  • 生存时间:IP 分组到达的最长时间(以跳为单位)

    • 生存时间(8 位)记为 TTL (Time To Live)
    • 数据报在网络中可通过的路由器数的最大值
      • 例:TTL=1:表示该数据报只能在本局域网内传送
  • 协议:指明以那一个协议传输

  • 首部检验和(16 位) :只检验数据报的首部,不检验数据部分

    • 反码求和算法

    从低位到高位,0+0=0,0+1=1,

    1+1=10 即产生一个进位1,加到下一列。若最高位相加产生进位,最后结果要加1(加到最低位)

Computer Network Note_第50张图片

  • 源地址,目的地址

4.2.5.2 可变部分

4.2.6 IP 数据报的转发

转发分组依赖路由表

  • 若按目的主机号来制作路由表,则路由表会过于庞大

  • 若按主机所在的**网络地址(网络号)**来制作路由表,那么可使路由表大大简化

4.2.6.1 特定主机路由

因特网允许为特定目的主机指明一个路由 —— 特定主机路由。

采用特定主机路由,可使网络管理人员能更方便地控制网络和测试网络

也可在需要考虑某种安全问题时采用这种特定主机路由

4.2.6.2 默认路由(default route)

Computer Network Note_第51张图片

只要目的网络不是 N1 和 N2,就一律选择默认路由,把数据报先间接交付路由器 R1,让 R1 再转发给下一个路由器

  • 默认 = 剩下的,其他的
  • 默认网关 = 默认路由器

IP 数据报的首部中没有地方可以用来指明下一跳路由器的 IP 地址

当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件

网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部

然后根据这个硬件地址找到下一跳路由器

4.2.6.3 分组转发算法

从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
报告转发分组出错。 

4.2.6.4 在划分子网的情况下路由器转发分组的算法

(1) 分类网络路由器收到分组后,从收到的分组的首部提取目的 IP 地址 D。
(2) 先对与路由器直接相连的网络逐个用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。
	若匹配,则将分组直接交付。
	否则,间接交付,执行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(4)。
(4) 对路由表中的每一行的子网掩码和 D 逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。

4.2.7 路由聚合

  • 使用单个网络前缀代表多个网络路由

  • 使用 0/1 字典树进行前缀匹配

4.3 网际控制报文协议 ICMP

为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol):

  • ICMP 允许主机或路由器向发送方报告差错情况,提供有关异常情况的报告。
  • ICMP 不是高层协议,是 IP 层的辅助协议。
  • ICMP 报文:是 IP 层数据报的数据。

4.3.1 ICMP 报文的种类

  • ICMP 差错报告报文 前提是,IP 分组本身没有出错(首部检验和没问题) e.g. 传送的时候找不到这台电脑

    • 终点不可达 TYPE = 3
    • 源点抑制(Source quench) TYPE = 4
    • 时间超过 TYPE = 11
    • 参数问题 TYPE = 12
    • 改变路由(重定向)(Redirect) TYPE = 5
  • ICMP 询问报文

    • 回送请求/回答报文 TYPE = 8 / 0
    ping 命令
    C:\Users\huawei>ping www.baidu.com
    
    正在 Ping www.a.shifen.com [14.215.177.39] 具有 32 字节的数据:
    来自 14.215.177.39 的回复: 字节=32 时间=94ms TTL=50
    来自 14.215.177.39 的回复: 字节=32 时间=14ms TTL=50
    来自 14.215.177.39 的回复: 字节=32 时间=44ms TTL=50
    来自 14.215.177.39 的回复: 字节=32 时间=48ms TTL=50
    
    14.215.177.39 的 Ping 统计信息:
        数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
    往返行程的估计时间(以毫秒为单位):
        最短 = 14ms,最长 = 94ms,平均 = 50ms
    
    • 时间戳请求/回答报文 TYPE = 13 / 14
    traceroute(linux)/tracert(win)
    C:\Users\huawei>tracert www.baidu.com
    
    通过最多 30 个跃点跟踪
    到 www.a.shifen.com [14.215.177.39] 的路由:
    
      1     3 ms     3 ms     6 ms  10.173.43.254
      2     7 ms     3 ms     3 ms  10.10.202.21
      3     6 ms    41 ms     3 ms  192.168.237.9
      4     5 ms     3 ms     4 ms  10.10.202.65
      5     *        *       42 ms  10.168.100.101
      6    19 ms     7 ms     6 ms  10.168.100.26
      7     7 ms     7 ms     7 ms  61.144.27.21
      8    45 ms     7 ms     7 ms  121.8.109.117
      9    11 ms     5 ms    10 ms  117.176.37.59.broad.dg.gd.dynamic.163data.com.cn [59.37.176.117]
     10    15 ms    10 ms     9 ms  249.32.63.58.broad.gz.gd.dynamic.163data.com.cn [58.63.32.249]
     11     *       22 ms     *     113.96.5.94
     12    22 ms    12 ms    28 ms  94.96.135.219.broad.fs.gd.dynamic.163data.com.cn [219.135.96.94]
     13    18 ms    12 ms    12 ms  14.29.121.190
     14     *        *        *     请求超时。
     15     *        *        *     请求超时。
     16    20 ms    19 ms    71 ms  14.215.177.39
    
    跟踪完成。
    

4.3.2 ICMP 报文的格式

Computer Network Note_第52张图片

4.3.3 ICMP 差错报告报文的数据字段的内容

image-20210506100116658

4.3.4 不应发送 ICMP 差错报告报文的情况

  • 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
  • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
  • 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
  • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。

4.4 因特网的路由选择协议 !

  • 因特网太大了,无法维护所有的转发表

  • 路由表的生成和维护 → \to 路由选择协议

  • 好的路由选择协议 → \to 动态的

  • 因特网过大 → \to 无法构造出最优的路由选择协议 → \to 将因特网划分为有限集合(一个个自治系统) → \to 维护小范围内的最优解 → \to 内部路由选择协议 (RIP 和 OSPF 协议)

    • 如果要和有限集合外的网络进行通信 → \to 外部路由选择协议 (BGP 协议)

Computer Network Note_第53张图片

4.4.1 有关路由选择协议的几个基本概念

最佳路由:只能是相对于某一种特定要求下得出的较为合理的选择而已。实际的路由选择算法,应尽可能接近于理想的算法

静态路由选择策略:即非自适应路由选择,其特点:简单和开销较小,但不能及时适应网络状态的变化

动态路由选择策略:即自适应路由选择,其特点:能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大

自治系统 AS (Autonomous System) :在单一的技术管理下的一组路由器

链路状态路由选择算法:最短路径优先 Dijkstra(OSPF)

距离向量路由选择算法:洪泛法 Bellman-Ford(RIP)

  • 内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统AS内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议
  • 外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议EGP。在外部网关协议中目前使用最多的是 BGP-4

Computer Network Note_第54张图片

因特网的早期 RFC 文档中未使用路由器而是使用网关这一名词。但在新的 RFC 文档中又使用路由器这一名词。应当把这两个属于当作同义词

4.4.2 内部网关协议 RIP(Routing Information Protocol)

  • RIP 是一种分布式的基于距离向量的路由选择协议
    • 距离的定义:从一路由器到直接连接的网络的距离定义为 1 1 1
    • 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1 1 1
    • RIP 协议中的距离(最短距离)也称为跳数(hop count):每经过一个路由器,跳数就加 1 1 1

4.4.2.1 RIP 的特殊规定

  • 只以距离判断路由的好坏
  • RIP 允许一条路径最多只能包含 15 个路由器
  • 距离的最大值为 16 时即相当于不可达
  • RIP 不能在两个网络之间同时使用多条路由
  • 如果有矛盾,选择新信息
    • 有两个到同样地方的路由项,如果路线一样(下一跳相同),参考新信息,否则参考距离信息

4.4.2.2 RIP 协议的算法

  • 当前路由器仅和相邻路由器交换信息
    • 相邻:两个路由器在同一个网络中,交付信息不需要转发
  • 交换的信息是当前本路由器所知道的全部信息,即自己的路由表
  • 按固定的时间间隔交换路由信息,例如,每隔 30 秒
路由器在开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。
每一个路由器只和数目非常有限的相邻路由器交换并更新路由信息。(基于距离向量算法)
经过若干次更新后,所有的路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址
收到相邻路由器(其地址为 X)的一个 RIP 报文:
先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,将所有的“距离”字段的值加 1。(每条项目:到目的网络、距离 、下一跳路由器)

对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。
否则
	若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。(一切以新的为准)
否则 
	若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。

若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。
返回

4.4.2.3 RIP 协议的报文格式

Computer Network Note_第55张图片

4.4.2.4 RIP 协议的优缺点

RIP 协议最大的优点:实现简单,开销较小

RIP 存在的一个问题:当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器(好消息传的快,坏消息传的慢)

Computer Network Note_第56张图片

这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网 1 是不可达的,这里所需要的时间是很多的

4.4.3 内部网关协议 OSPF(Open Shortest Path First)

OSPF 是一种链路状态协议,使用洪泛(广播)链路状态信息和 Dijkstra 最低开销算法 (LS: Link state algorithm 路由选择算法)

LS算法 = 广播路由 + Dijkstra算法

  • 广播路由:每个节点都要广播链接状态 pkt 给每个其他节点,从而每个节点都获得相同完整的网络信息
  • Dijkstra算法:计算源到每个节点的最小 cost 路径
  • 如果有link cost变化,则重新进行上述操作

4.4.3.1 OSPF概述

对公众开放

  • 使用LS算法
    • 需要发送LS pkt
    • 每个节点采用拓扑结构
    • 路由采用 Dijkstra 算法
  • OSPF 通告每个邻居路由器携带一个条目
    • 通告通过洪泛散布到整个AS
    • OSPF消息直接分装在IP数据报上

4.4.3.2 分层OSPF

  • 两层结构:局部区域(local area)和主干(backbone)
    • LS通告只在区域内
    • 每个节点知道该区域的拓扑结构,对于其他区域只知道到那个区域的方向(最短路径)
  • 区域边界路由器(area border router):负责为流向该区域以外的分组提供路由选择。汇拢该区域的节点距离信息,通告给其他的区域边界路由器
  • 主干路由器(backbone router):在主干内运行 OSPF 路由
  • 网关路由器(boundary router):与其他 AS 连接

在自治系统内部维护链路状态数据库,和其它区域通信使用主干区域的路由器

Computer Network Note_第57张图片

4.4.4 外部网关协议 BGP

BGP 是不同自治系统的路由器之间交换路由信息的协议

BGP配置

  1. 每个 AS 在其路由器中选择至少一台路由器为 “BGP发言人”
  2. BGP 发言人负责与其它 AS 沟通

BGP 发言人(BGP speaker)

  1. BGP 发言人往往是 BGP 边界路由器,也可以不是 BGP 边界路由器
  2. 两个 BGP 发言人都是通过一个共享网络连接在一起

BGP 交换路由信息

  1. 先建立 TCP 连接 (需要对方的回应)
  2. 然后在此连接上交换 BGP 报文以建立 BGP 会话
  3. 利用 BGP 会话交换路由信息

Computer Network Note_第58张图片

*4.5 路由器的工作原理

4.5.1 路由器的结构

Computer Network Note_第59张图片

  1. 通过共享存储器 → \to 不可并行发送数据

Computer Network Note_第60张图片

  1. 通过一根总线 → \to 不可并行发送数据

Computer Network Note_第61张图片

  1. 通过互联网络 → \to 通过 2 N 2N 2N 条总线并行发送数据

Computer Network Note_第62张图片

4.5.2 路由器与交换机的区别

  • 路由器
    • 发送的是 IP 数据报
    • 维护路由表
  • 交换机
    • 发送的是
  1. 路由表是根据路由选择算法得出的,而转发表是从路由表得出的
  2. 在讨论路由选择的原理时,往往不去区分转发表和路由表的区别

4.5.3 三层交换机

三层交换机:路由器加上两个普通的交换机

Computer Network Note_第63张图片

*4.6 虚拟专用网 VPN 和网络地址转换 NAT

VPN → \to 外网(实际IP)访问内网资源(均是本地IP)

NAT → \to 内网(本地IP)访问因特网资源(实际IP)

4.6.1 虚拟专用网 VPN

  • 本地地址 → \to 仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请
  • 全球地址 → \to 全球唯一的IP地址,必须向因特网的管理机构申请

三个本地地址

10...
172...
192...
  • 以这 3 个开头的 IP 地址被称作本地 IP 地址,这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。
  • 专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发

4.6.2 网络地址转换 NAT

4.7 IP 多播

  1. 不丢弃目的地址为多播地址的 IP 分组
    • 前 4 位为 1110
  2. 一个用户申请加入多播组 I P d IP_d IPd (由要多播的用户发布),路由器登记此信息,路由器又把这个信息发送给其他邻近的路由器
  3. 在数据链路层如何传输(如何得到 MAC)?(因为 ARP 是针对真实的 IP 地址)
    • 人为的生成 MAC 多播地址
    • 因特网号码指派管理局 IANA 拥有以太网地址块的高 24 位:00-00-5E
    • TCP/IP 协议使用的以太网多播地址块的范围是: 00-00-5E-00-00-00 ∼ \sim 00-00-5E-FF-FF-FF
    • 前 25 位是固定的

Computer Network Note_第64张图片

4.8 移动 IP

整个 IP 地址不变

第五章 运输层

  • 在网络层,虽然实现了 IP 分组的传输,但是数据没有传输到需要的应用程序
    • 需要在 IP 分组的数据中加上应用程序的身份信息

5.1 运输层协议概述

5.1.1 进程之间的通信

  • 两个主机进行通信实际上是两个主机中的应用进程互相通信
    • 为什么需要运输层:网络层的 IP 分组无法传到主机的应用程序中
  • 应用进程之间的通信又称为端到端的通信

运输层的通信服务

  • 运输层提供应用进程间的逻辑通信
  • 面向通信的最高层
  • 用户功能的最低层

运输层的主要功能

  • 运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)
  • 运输层对收到的报文进行差错检测
  • TCP和UDP协议

TCP和UDP协议

  • TCP
    • 面向连接的,可靠的(但是下层的 IP 协议是不可靠的)
    • 无广播和多播服务
    • 使用拥塞控制
    • 弱检验
    • 数据单位:TCP报文段
  • UDP
    • 无连接的,尽最大努力的交付,不需要给出任何的确认
    • 不使用拥塞控制
    • 数据单位:UDP报文或者用户数据报

5.1.3 运输层的端口

  • 端口号:16 位二进制数

  • 端口号是本地的

  • 三类端口号

    • 目的:区别二者
    • 熟知端口(well known port):0 ~ 1023。由IANA 指派给TCP/IP最重要的一些应用程序
      • FTP 20/21
      • telnet 23
      • HTTP(既是协议又是应用程序) 80
      • 简单邮件传输服务器(SMTP) 25
    • 登记端口号:1024 ~ 49151,在 IANA 登记的端口号
    • 客户端口号或短暂端口号:49152 ∼ \sim 65535,留给客户进程选择暂时使用

image-20210527100531430

5.2 用户数据报协议 UDP 待补充

5.2.1 UDP 概述

  • UDP 是无连接的,即发送数据之前不需要建立连接,减少了开销和发送数据之前的时延

  • UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制

    • 使用反码求和法验证正确性

      • 从低位到高位逐列进行运算
      • 0+0=0,0+1=1,1+1=0(进位1加到下一列)
      • 最高位相加产生的进位,要在最后的结果加1
    • 一个例子

      下列数据反码求和
      1100 1111 0001 1010
      1111 1010 0001 1000
      1000 0000 0000 0001
      反码为:
      0011 0000 1110 0101
      0000 0101 1110 0111
      0111 1111 1111 1110
      --------------------
      得:
      0011 0110 1100 1100
      0111 1111 1111 1110
      
      =
      1011 0110 1100 1010 
      
    • 还是一个例子Computer Network Note_第65张图片

  • UDP 支持一对一、一对多、多对一和多对多的交互通信。

  • UDP是面向报文的

    • 对于应用程序的报文添加首部后直接传送给 IP 层,对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界
    • 应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文
  • UDP 的首部开销小,只有 8 个字节

  • UDP 可能产生的问题

    • 网络可能发生拥塞: 由于不使用拥塞控制,当很多的源主机同时都向网络发送高速率的实时视频流时,网络就有可能发生拥塞
    • 数据丢失: UDP 的不可靠传输导致

5.2.2 UDP 的首部格式

image-20210626000422401

5.3 传输控制协议 TCP 概述

5.3.1 TCP 最主要的特点

  • TCP 是面向连接的运输层协议
    • 有确认机制
    • TCP 连接是一条虚连接而不是一条真正的物理连接
  • 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一
  • TCP 提供可靠交付的服务
    • TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(根据接收能力决定)
  • TCP 提供全双工通信
  • 面向字节流:TCP将应用程序下传的数据看成无结构的字节流
    • 为了确保可靠的传输的文件分块方式

5.3.2 TCP 的连接

  • TCP 连接的端点叫做**套接字(socket)**或插口:IP 地址+ 端口号
  • 每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定(也叫 socket 对)

TCP连接 :: = {socket_1, socket_2} = {(IP_1 : port_1), (IP_2 : port_2)}

5.3.3 TCP 报文段的首部格式

Computer Network Note_第66张图片

  • 序号(seq):当前数据部分第一个字节的编号

  • 确认号(ack):当前还没收到的第一个字节的编号

  • 数据偏移:4 bit

    • 即首部长度(固定部分加选项部分)= TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远
    • 一位当四位 S i z e = S i z e d a t × 4 Size=Size_{dat}\times 4 Size=Sizedat×4
    • 数据偏移的最大值为 60 60 60 字节(也是 TCP 首部的最大长度)
  • 保留字段:6 bit,保留为今后使用,但目前应置为 0

  • 标志位

    • 紧急 URG:当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)
    • 确认 ACK:只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效
    • 推送 PSH (PuSH) : 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付(提高交付速度)
    • 复位 RST (ReSeT) : 当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接
    • 同步 SYN : 同步 SYN = 1 表示这是一个连接请求或连接接受报文(建立连接时使用,用两次)
    • 终止 FIN (FINis) : 用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。 (用于释放连接,用两次)
  • 窗口字段

    • 指出现在允许对方发送的数据量
    • 在双方发送数据的时候,捎带了接收窗口和发送窗口的大小
  • 检验和:2 byte 检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。(同UDP)

  • (有歧义)紧急指针字段 :16 bit,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。 仅在URG=1时有效 . 即使窗口为0,也可发送紧急数据.

    • 报文中紧急数据所在的位置
  • 选项字段 —— 长度可变,选项部分最长可达 40字节 (由数据偏移求得)

    • MSS (Maximum Segment Size): TCP 报文段中的数据字段的最大长度
      • 数据字段 + TCP 首部 = 整个的 TCP 报文段
      • 默认为:536 字节
      • 注意:MSS应尽可能大,只要在IP层不要分片即可
    • 窗口扩大选项:3 字节,其中有一个字节表示移位值 S。
  • 填充:保证报文段是 4 4 4 的倍数

  • TCP 首部没有给出数据报的总长度(因为一定是对号接收的)

5.3.4 TCP 的可靠传输

  • 通过 IP 传送的数据是不可靠的
  • 使用三个措施保证可靠
    • 数据编号和确认
      • TCP 协议是面向字节的
      • 连接建立时,双方要商定初始序号
      • 累计确认
      • 很多时候通过捎带发送确认数据
    • 滑动窗口
    • 超时重传:使用超时重传时间 RTO 定义

超时重传时间 RTO (Retransmission Time-Out)

R T O = R T T S + 4 × R T T D RTO = RTT_S + 4 \times RTT_D RTO=RTTS+4×RTTD

  • R T T D RTT_D RTTD 是 RTT 的偏差的加权平均值
  • R T T S RTT_S RTTS 是加权平均往返时间
  1. Karn 算法

在计算平均往返时间 RTT 时,只要报文段重传了,就不采用其往返时间样本(因为其 RTT 不可信)

  1. 修正的 Karn 算法
  • 报文段每重传一次,就把 RTO 增大一些:新的 R T O = γ   × RTO=\gamma \ \times RTO=γ × (旧的 RTO)
  • 系数 γ \gamma γ 的典型值是 2
  • 当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延 RTT 和超时重传时间 RTO 的数值
  1. 快速重传策略
  • 接收方每收到一个失序的报文段后,立即发出重复确认
  • 发送方只要一连收到三个重复的确认就应当立即重传对方尚未收到的报文段,不必等到超时

5.3.5 TCP 的流量控制

  • 产生原因,接收方的接收能力小于发送方的发送速度
  • 流量控制 (flow control):让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞
  • 持续计时器(persistence timer):对于窗口为0的连接,可能产生死锁
    • 只要 TCP 连接的一方收到对方的零窗口(接收窗口为0)通知,启动持续计时器
    • 若持续计时器设置的时间到期,发送一个零窗口探测报文段(仅携带 1 字节的数据),对方在确认该探测报文段时给出现在的窗口值
      • 若窗口是零,则收到这个报文段的一方重新设置持续计时器
      • 若窗口不是零,则死锁的僵局就可以打破

5.3.6 TCP 的发送时机

  1. 机制一: TCP 维持一个变量,它等于最大报文段长度 MSS。只要缓存中存放的数据达到 MSS 字节时,就组装成一个 TCP 报文段发送出去。
  2. 机制二:由发送方的应用进程指明要求发送报文段,即 TCP 支持的推送(push)操作。
  3. 机制三:发送方的一个计时器期限到了,这时就把当前已有的缓存数据装入报文段(但长度不能超过 MSS)发送出去
  4. Nagle:发送应用进程将要发送的数据逐个字节地送到TCP的发送缓存
    • 发送方将第一个数据发送出去,后面到达的数据 缓存
    • 当发送方收到对第一个数据字符的确认,将发送缓存中所有数据组成一个报文段发送;后面到达的数据缓存
    • 只有在收到对前一报文的确认,才发送下一个报文段

5.3.7 TCP 的运输连接管理

运输连接的三个阶段

  • 运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行

  • 连接建立过程中要解决以下三个问题

    • 要使每一方能够确知对方的存在
    • 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)
    • 能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配

5.3.7.1 连接建立(三次握手)

  • TCP 连接的建立都是采用客户服务器方式
    • 主动发起连接建立的应用进程叫做客户(client)
    • 被动等待连接建立的应用进程叫做服务器(server)
  • 三次握手建立 TCP 连接
  1. A 的 TCP 向 B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x​,表明传送数据时的第一个数据字节的序号是 x

Computer Network Note_第67张图片

  1. B 的 TCP 收到连接请求报文段后,如同意,则发回确认

    B 在确认报文段中应使 SYN = 1,使 ACK = 1,其确认号ACK = x + 1,自己选择的序号 seq = y

Computer Network Note_第68张图片

  1. A 收到此报文段后向 B 给出确认,其 ACK = 1,确认号 ACK = y + 1

    A 的 TCP 通知上层应用进程,连接已经建立

    B 的 TCP 收到主机 A 的确认后,也通知其上层,TCP 连接已经建立

Computer Network Note_第69张图片

三次握手的目的

  1. 防止旧的链接初始化新的连接

e . g . e.g. e.g. 客户端连续发送多次 SYN 建立连接的报文,在网络拥堵情况下

  • 一个「旧 SYN 报文」比「最新的 SYN 」 报文早到达了服务端
  • 那么此时服务端就会回一个 SYN + ACK 报文给客户端
  • 客户端收到后可以根据自身的上下文,判断这是一个历史连接(序列号过期或超时),那么客户端就会发送 RST 报文给服务端,表示中止这一次连接。

如果是两次握手连接,就不能判断当前连接是否是历史连接,三次握手则可以在客户端(发送方)准备发送第三次报文时,客户端因有足够的上下文来判断当前连接是否是历史连接

  • 如果是历史连接(序列号过期或超时),则第三次握手发送的报文是 RST 报文,以此中止历史连接
  • 如果不是历史连接,则第三次发送的报文是 ACK 报文,通信双方就会成功建立连接
  1. 同步双方初始序列号

序列号在 TCP 连接中占据着非常重要的作用,所以当客户端发送携带「初始序列号」的 SYN 报文的时候,需要服务端回一个 ACK 应答报文,表示客户端的 SYN 报文已被服务端成功接收,那当服务端发送「初始序列号」给客户端的时候,依然也要得到客户端的应答回应,这样一来一回,才能确保双方的初始序列号能被可靠的同步

  1. 避免资源浪费

如果只有「两次握手」,当客户端的 SYN 请求连接在网络中阻塞,客户端没有接收到 ACK 报文,就会新发送 SYN ,由于没有第三次握手,服务器不清楚客户端是否收到了自己发送的建立连接的 ACK 确认信号,所以每收到一个 SYN 就只能先主动建立一个连接

如果客户端的 SYN 阻塞了,重复发送多次 SYN 报文,那么服务器在收到请求后就会建立多个冗余的无效链接,造成不必要的资源浪费

5.3.7.2 连接释放(四次握手)

  • TCP 的连接双方都可以主动断开连接,断开连接后主机中的资源将被释放

Computer Network Note_第70张图片

  • 客户端打算关闭连接,此时会发送一个 TCP 首部 FIN 标志位被置为 1 的报文,也即 FIN 报文,之后客户端进入 FIN_WAIT_1 状态
  • 服务端收到该报文后,就向客户端发送 ACK 应答报文,接着服务端进入 CLOSED_WAIT 状态
  • 客户端收到服务端的 ACK 应答报文后,之后进入 FIN_WAIT_2 状态。 等待服务端处理完数据后,也向客户端发送 FIN 报文,之后服务端进入 LAST_ACK 状态
  • 客户端收到服务端的 FIN 报文后,回一个 ACK 应答报文,之后进入 TIME_WAIT 状态
  • 服务器收到了 ACK 应答报文后,就进入了 CLOSED 状态,至此服务端已经完成连接的关闭
  • 客户端在经过 2MSL 一段时间后,自动进入 CLOSED 状态,至此客户端也完成连接的关闭

注意:主动关闭连接的,才有 TIME_WAIT 状态

为什么需要四次握手

  • 关闭连接时,客户端向服务端发送 FIN 时,仅仅表示客户端不再发送数据了但是还能接收数据
  • 服务器收到客户端的 FIN 报文时,先回一个 ACK 应答报文,而服务端可能还有数据需要处理和发送,等服务端不再发送数据时,才发送 FIN 报文给客户端来表示同意现在关闭连接

从上面过程可知,服务端通常需要等待完成数据的发送和处理,所以服务端的 ACKFIN 一般都会分开发送,从而比三次握手导致多了一次

为什么必须等待 2MSL 的时间

  • 为了保证客户端发送的最后一个 ACK 报文段能够到达服务端
  • 防止 “已失效的连接请求报文段” 出现在本连接中。客户端在发送完最后一个 ACK 报文段后,再经过时间 2MSL,可以使本连接持续的时间内所产生的所有报文段,都从网络中消失(超过生存时间 TTL)这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段

5.4 TCP的拥塞控制

5.4.1 拥塞控制的一般原理

在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,也就产生了拥塞。

拥塞控制与流量控制的关系

  • 拥塞控制

    • 拥塞控制前提:网络能够承受现有的网络负荷
    • 拥塞控制是一个全局性的过程,防止过多的数据注入到网络;涉及所有的主机、所有的路由器,与降低网络传输性能有关的所有因素
  • 流量控制

    • 在给定的发送端和接收端之间的点对点通信量的控制
    • 抑制发送端发送数据的速率,使接收端来得及接收

开环控制和闭环控制

  • 开环控制方法:在设计网络时,事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞(设计难度非常大)

  • 闭环控制方法:是基于反馈环路的概念。有以下几种措施

    • 监测网络系统以便检测到拥塞在何时、何处发生
    • 将拥塞发生的信息传送到可采取行动的地方
    • 调整网络系统的运行以解决出现的问题

5.4.2 几种拥塞控制方法

慢开始和拥塞避免

  • 发送方维持一个称为拥塞窗口 cwnd (congestion window) 的状态变量

    • 大小动态地变化
    • cwnd 为一个 MSS 数值
    • 发送方让发送窗口小于等于拥塞窗口
  • 发送方控制拥塞窗口的原则是

    • 只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去
    • 只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数
  • 慢开始算法的原理

在主机刚刚开始发送报文段时,设置拥塞窗口 cwnd = 1,即设置为一个最大报文段 MSS 的数值。
在每收到一个对新的报文段的确认后,将拥塞窗口加 1,即增加一个 MSS 的数值。(拥塞窗口增加1倍)
用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。 

设定上界: 30
增加:1, 2, 4, 8, 16, 32, 33, 34...
  • 设置 慢开始门限状态变量 ssthresh

    • 慢开始门限 ssthresh 的用法如下:(防止cwnd增长过大)
      • cwnd < ssthresh 时,使用慢开始算法。
      • cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
      • cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
    • 拥塞避免算法的思路:让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律(一个个往上加)缓慢增长
  • 只要出现超时重传现象,就可以认为网络上出现了拥塞,需要进行处理

    • 把慢开始门限 ssthresh 设置为出现拥塞时的发送方窗口值(当时的 cwnd 值)的一半(但不能小于2)。
    • 把拥塞窗口 cwnd 重新设置为 1,执行慢开始算法

Computer Network Note_第71张图片

快重传和快恢复

  • 重置重传计时器
  • 让发送方认为网络是通畅的(因为能够收到三个连续确认,就有理由相信之前的报文发送失败只是意外)
快重传算法
接收方每收到一个失序的报文段,立即发出重复确认。让发送方及早知道有报文段没有到达接收方。 
发送方只要一连收到三个重复确认,应当立即重传对方尚未收到的报文段

快恢复算法
当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门限 ssthresh 减半。但接下去不执行慢开始算法。 
由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,即拥塞窗口 cwnd 现在不设置为 1,而是设置为慢开始门限 ssthresh 减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。

Computer Network Note_第72张图片

第六章 应用层

6.1 应用层概述 (课堂介绍)

6.1.1 网络应用程序体系结构

6.1.2 应用层协议

6.1.3 选择运输层协议

6.2 域名系统DNS (课堂介绍)

6.2.1 域名系统概述

6.2.2 因特网的域名结构

6.2.3 域名服务器

6.2.4 域名解析的过程

6.3 万维网WWW

6.3.1 万维网概述

6.3.2 统一资源定位符URL (课堂介绍)

6.3.3 超文本传送协议HTTP

6.3.4 万维网的文档

6.3.5 移动Web

6.3.6 万维网搜索引擎

6.3.7 博客与微博

6.4 电子邮件

6.4.1 概述

6.4.2 简单邮件传送协议SMTP

6.4.3 电子邮件的信息格式

6.4.4 邮件读取协议POP3和IMAP

6.4.5 基于万维网的电子邮件

6.4.6 通用因特网邮件扩充MIME

6.5 文件传输协议FTP

6.6 远程终端协议TELNET

6.7 动态主机配置协议DHCP

6.8 P2P文件共享**(课堂介绍)**

6.8.1 P2P文件分发

6.8.2 在P2P对等方中搜索对象

6.8.3 案例:BitTorrent

6.9 多媒体网络应用

6.9.1 实时多媒体数据传输中的问题

6.9.2 实时传输协议RTP

6.9.3 流式存储音频/视频

6.9.4 流式实况音频/视频

6.9.5 实时交互音频/视频

6.10 网络应用编程接口**(课堂介绍)**

6.10.1 TCP套接字编程

6.10.2 一个简单的代码实例

你可能感兴趣的:(笔记本,网络,网络协议)