Computer Network

计算机网络

概述

因特网概述

网络

互联网

因特网

区别与关系

  • 若干节点和链路互连形成网络
  • 若干网络通过路由器互连形成互连网(互联网)
  • 因特网是当今世界上最大的互联网

因特网简介

因特网发展的三个阶段

因特网服务提供者(Internet Service Provider, ISP)

因特网已发展成为基于ISP的多层次结构的互连网络

因特网的标准化工作

  • 因特网的标准化工作是面向公众的,其任何一个建议标准在成为因特网标准之前都以 RFC 技术文档的形式在因特网上发表
  • RFC(Request For Comments)的意思是"请求评论"。任何人都可以从因特网上免费下载 RFC 文档,并随时对某个 RFC 文档发表意见和建议

因特网的管理机构

因特网的组成

电路交换、分组交换和报文交换

电路交换

  • 计算机之间的数据传送时突发式的,当使用电路交换来传送计算机数据时,其线路的传输效率一般都会很低,线路上真正用来传送数据的时间往往不到10%甚至1%

分组交换

优点
  • 没有建立连接和释放连接的过程
  • 分组传输过程中逐段占用通信链路,有较高的通信线路利用率
  • 交换节点可以为每一个分组独立选择转发路由,使得网络有很好的生存性
缺点
  • 分组首部带来了额外的传输开销
  • 交换节点存储转发分组会造成一定的时延
  • 无法确保通信时端到通信资源全部可用,在通信量较大时可能造成网络拥塞
  • 分组可能会出现失序和丢失等问题

报文交换

  • 报文交换时分组交换的前身
  • 在报文交换中,报文被整个地发送,而不是拆分成若干个分组进行发送
  • 交换节点将报文整体接收完成后才能查找转发表,将整个报文转发到下一个节点
  • 因此,报文交换比分组交换带来的转发时延要长很多,需要交换节点具有的缓存空间也大很多

三种交换方式的对比

  • 若要连续传送大量的数据,并且数据传送时间远大于建立连接的时间,则使用电路交换可以有较高的传输效率。然而计算机的数据传送往往是突发式的,采用电路交换时通信线路的利用率会很低
  • 报文交换和分组交换都不需要建立连接(即预先分配通信资源),在传送计算机的突发数据时可以提高通信线路的利用率
  • 将报文构造成若干个更小的分组进行分组交换,比将整个报文进行报文交换的时延更小,并且还可以避免太长的报文长时间占用链路,有利于差错控制,同时具有更好的灵活性

计算机网络的定义和分类

定义

现阶段计算机网络的一个较好的定义

  • 计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用
可编程的硬件
  • 不限于计算机,而是包括了智能手机、具有网络功能的传感器以及智能家电等智能硬件,这些硬件一定包含有中央处理单元(CPU)
各类应用
  • 计算机网络并非只用来传送数据,而是能够基于数据传送进而实现各种各样的应用,包括今后可能出现的各种应用

分类

交换方式
  • 电路交换
  • 报文交换
  • 分组交换
使用者

传输介质

覆盖范围

拓扑结构

计算机网络的性能指标

  • 计算机网络的性能指标被用来从不同方面度量计算机网络的性能
  • 常用的八个计算机网络性能指标
    • 速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率、丢包率

速率

  • 比特(bit,记为小写b)是计算机中数据量的基本单位,一个比特就是二进制数字中的一个 1 或 0
  • 数据量的常用单位有字节(byte,记为大写B)、千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)
数据量的单位 换算关系
比特(b) 基本单位
字节(B) 1B = 8bit
千字节(KB) KB = 2^10 B
兆字节(MB) MB = K·KB = 2^20 B
吉字节(GB) GB = K·MB = 2^30 B
太字节(TB) TB = K·GB = 2^40 B
  • 速率是指数据的传送速率(即每秒传送多少个比特),也称为数据率(Data Rate)或比特率(Bit Rate)
  • 速率的基本单位是比特/秒(bit/s,可简记为b/s,有时也记为bps,即bit per second)。速率的常用单位有千比特/秒(kb/s或kbps)、兆比特/秒(Mb/s或Mbps)、吉比特/秒(Gb/s或Gbps)以及太比特/秒(Tb/s或Tbps)
速率的单位 换算关系
比特/秒(b/s) 基本单位
千比特/秒(kb/s) kb/s = 10^3 b/s
兆比特/秒(Mb/s) Mb/s = k·kb/s = 10^6 b/s
吉比特/秒(Gb/s) Gb/s = k·Mb/s = 10^9 b/s
太比特/秒(Tb/s) Tb/s = k·Gb/s = 10^12 b/s
练习
  • 有一个待发送的数据块,大小为100MB,网卡的发送速率为100Mbps,则网卡发送完该数据块需要多长时间?

带宽

模拟信号系统中的意义

  • 某个信号所包含的各种不同频率成分所占据的频率范围
  • 单位:Hz(kHz,MHz,GHz)

计算机网络中的意义

  • 用来表示网络的通信线路所能传送数据的能力,即在单位时间内从网络中的某一点到另一点所能通过的最高数据率
  • 单位:b/s(kb/s,Mb/s,Gb/s,Tb/s)

吞吐量

  • 吞吐量是指在单位时间内通过某个网络或接口的实际数据量。吞吐量常被用于对实际网络的测量,以便获知到底有多少数据量通过了网络

  • 吞吐量受网络带宽的限制

时延

  • 时延是指数据从网络的一端传送到另一端所耗费的时间,也成为延迟或时延/数据可由一个或多个分组、甚至是一个比特构成

时延带宽积

  • 时延带宽积是传播时延带宽的乘积

  • 链路的时延带宽积也称为以比特位单位的链路长度

往返时间

  • 往返时间(Round-Trip RTT)是指从发送端发送数据分组开始,到发送端收到接收端发来的相应确认分组为止,总共耗费的时间

利用率

链路利用率

  • 链路利用率是指某条链路有百分之几的时间是被利用的(即有数据通过)
  • 完全空闲的链路的利用率为零

网络利用率

  • 网络利用率是指网络中所有链路的链路利用率的加权平均

定义

  • 根据排队论可知,当某链路的利用率增大时该链路引起的时延就会迅速增加
  • 当网络的通信量较少时,产生的时延并不大,但在网络通信量不断增大时,分组在交换节点(路由器或交换机)中的排队时延会随之增大,因此网络引起的时延就会增大
  • 令D0表示网络空闲时的时延,D表示网络当前的时延,那么在理想的假定条件下,可用下式来表示D、D0和网络利用率U之间的关系

D=D01UD = \frac{D_0}{1 - U}

丢包率

  • 丢包率是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率

  • 分组丢失主要有以下两种情况:
    • 分组在传输过程中出现误码,被传输路径中的节点交换机(例如路由器)或目的主机检测出误码而丢弃
    • 节点交换机根据丢弃策略主动丢弃分组
  • 丢包率可以反映网络的拥塞情况
    • 无拥塞时路径丢包率为0
    • 轻度拥塞时路径丢包率为1%~4%
    • 严重拥塞时路径丢包率为5%~15%

常见的三种计算机网格体系结构

OSI标准失败的原因

  • 专家没有实际经验,完成标准时没有商业驱动力
  • 协议实现过分复杂,运行效率很低
  • 标准的制定周期太长,产品无法即时进入市场
  • 层次划分不太合理,有些功能在多个层次中重复出现

计算机网络体系结构分层的必要性

问题

物理层

  • 采用什么传输媒体(介质)(物理层之下)
  • 采用什么物理接口
  • 采用什么信号表示比特0和1

数据链路层

  • 标识网络中各主机(主机编址,例如MAC地址)
  • 从比特流中区分出地址和数据(数据封装格式
  • 协调各主机争用总线(媒体接入控制
  • 以太网交换机的实现(自学习和转发帧
  • 监测数据是否误码(差错检测
  • 出现传输差错如何处理(可靠传输和不可靠传输
  • 接收方控制发送方注入网络的数据量(流量控制

网络层

  • 标识网络和网络中的各主机(网络和主机共同编址,例如IP地址)
  • 路由器转发分组(路由选择协议、路由表和转发表

运输层

  • 进程之间基于网络的通信(进程的标识,例如端口号)
  • 出现传输差错如何处理(可靠传输和不可靠传输

应用层

  • 通过应用进程间的交互来完成特定的网络应用
  • 进行会话管理和数据表示

计算机网络体系结构分层思想

计算机网络体系结构中专用术语

实体

  • 实体是指任何可发送或接收信息的硬件软件进程
  • 对等实体是指通信双方相同层次中的实体

协议

  • 协议是控制两个对等实体在 “水平方向” 进行 “逻辑通信” 的规则的集合
  • 协议的三要素
    • 语法:定义所交换信息的格式
    • 语义:定义通信双方所要完成的操作
    • 同步:定义通信双方的时序关系

服务

  • 在协议的控制下,两个对等实体在水平方向的逻辑通信使得本层能够向上一层提供服务
    • 要实现本层协议,还需要使用下面一层所提供的服务
    • 协议是 “水平” 的,而服务是 “垂直” 的
    • 实体看得见下层提供的服务,但并不知道实现该服务的具体协议。下层的协议对上层的实体是 “透明” 的
  • 在同一系统中相邻两层的实体交换信息的逻辑接口称为服务访问点SAP,它被用于区分不同的服务类型
  • 帧的 “类型” 字段、IP数据报的 “协议” 字段,TCP报文段或UDP用户数据报的 “端口号” 字段都是SAP
  • 上层要使用下层所提供的服务,必须通过与下层交换一些命令,这些命令称为服务原语
  • 对等层次之间传送的数据包称为该层的协议数据单元(Protocol Data Unit,PDU
  • 同一系统内层与层之间交换的数据包称为服务数据单元(Service Data Unit,SDU

物理层

概述

物理层要实现的功能

物理层接口特性

机械特性
  • 形状和尺寸
  • 引脚数目和排列
  • 固定和锁定装置
电气特性
  • 信号电压的范围
  • 阻抗匹配的情况
  • 传输速率
  • 距离限制
功能特性
  • 规定接口电缆的各条信号线的作用
过程特性
  • 规定在信号线上传输比特流的一组操作过程,包括各信号间的时序关系

物理层下面的传输媒体

传输媒体的分类

  • 传输媒体是计算机网络设备之间的物理通路,也称为传输介质或传输媒介
  • 传输媒体并不包含在计算机网络体系结构中

传输方式

串行传输和并行传输

同步传输

异步传输

单向通信、双向交替通信和双向同时通信

编码与调制

基本概念

常用编码方式

基本的带通调制方法

混合调制方法

正交振幅调制QAM-16
  • 12种相位
  • 每种相位有1或2种振幅可选
  • 可以调制出16种码元(波形),每种码元可以对应表示4个比特
  • 每个码元与4个比特的对应关系采用格雷码,即任意两个相邻码元只有1个比特不同

信道的极限容量

造成信号失真的主要因素

  • 信道上传输的数字信号,可以看做是多个频率的模拟信号进行多次叠加后形成的方波
  • 如果数字信号中的高频分量在传输时受到衰减甚至不能通过信道,则接收端收到的波形前沿和后沿就变得不那么陡峭,每一个码元所占的时间界限也不再明确。这样,在接收端收到的信号波形就失去了码元之间的清晰界限,这种现象称为码间串扰
  • 如果信道的频带越宽,则能够通过的信号的高频分量就越多,那么码元的传输速率就可以更高,而不会导致码间串扰
  • 然而,信道的频率带宽是有上限的,不可能无限大。因此,码元的传输速率也有上限

奈氏准则

理想低通信道的最高码元传输速率 = 2W Baud = 2W 码元/秒

W:信道的频率带宽(单位为HZ)
Baud:波特,即码元/秒

  • 使用奈氏准则给出的公式,就可以根据信道的频率带宽,计算出信道的最高码元传输速率

  • 只要码元传输速率不超过根据奈氏准则计算出的上限,就可以避免码间串扰

  • 奈氏准则给出的是理想低通信道的最高码元传输速率,它和实际信道有较大的差别。因此,一个实际的信道所能传输的最高码元传输速率,要明显低于奈氏准则给出的上限值

  • 码元传输速率又称为波特率、调制速率、波形速率或符号速率

  • 波特率与比特率有一定的关系:

    • 当1个码元只携带1比特的信息量时,波特率(码元/秒)与比特率(比特/秒)在数值上是相等的
    • 当1个码元携带n比特的信息量时,波特率(码元/秒)转换成比特率(比特/秒)时,数值要乘以n

问题

尽管奈氏准则限制了最高码元传输速率,但是只要采用技术更为复杂的信号调制方法,让码元可以携带更多的比特,岂不是可以无限制地提高信息的传输效率吗?

回答是否定的。因为在实际的信道中会有噪声,噪声是随机产生的,其瞬时值有时会很大,这会影响接收端对码元的识别,并且噪声功率相对于信号功率越大,影响就越大

香农公式

带宽受限且有高斯白噪声干扰的信道的极限信息传输速率

C=Wlog2(1+SN)C = W \log2(1 + \frac{S}{N})

C:信道的极限信息传输速率(单位为b/s)

W:信道的频率带宽(单位为Hz)

S:信道内所传信号的平均功率

N:信道内地高斯噪声功率

S/N:信噪比,常用分贝(dB)表示

  • 信道的频率带宽W或信道中的信噪比S/N越大,信道的极限信息传输速率C就越高
  • 实际信道不可能无限制地提高频率带宽W或信道中的信噪比S/N
  • 实际信道中能够达到的信息传输速率,要比香农公式给出的极限传输速率低不少。这是因为在实际信道中,信号还要受到其他一些损伤,例如各种脉冲干扰和信号衰减等,这些因素在香农公式中并未考虑

信道复用技术

基本原理

  • 复用(Multiplexing)就是在一条传输媒体上同时传输多路用户的信号
  • 当一条传输媒体的传输容量大于多条信道传输的总容量时,就可以通过复用技术,在这条传输媒体上建立多条通信信道,以便充分利用传输媒体的带宽
  • 尽管实现信道复用技术会增加通信成本(需要复用器、分用器以及费用较高的大容量共享信道),但如果复用的信道数量较大,还是比较划算

常见的信道复用技术

频分复用FDM

时分复用TDM

波分复用WDM

  • 根据频分复用的设计思想,可在一根光纤上同时传输多个频率(波长)相近的光载波信号,实现基于光纤的频分复用技术
  • 目前可以在一根光纤上复用80路或更多路的光载波信号。因此,这种复用技术也称为密集波分复用DWDM
  • 铺设光缆的工程耗资巨大,应尽量在一根光缆中放入尽可能多的光纤,然后对每一根光纤使用密集波分复用技术
码分复用CDM
  • 码分复用(Code Division Multiplexing,CDM)常称为码分多址(Code Division Mutiple Access,CDMA),它是在扩频通信技术的基础上发展起来的一种无线通信技术

  • 与FDM和TDM不同,CDMA的每个用户可以在相同的时间使用相同的频带进行通信

  • CDMA最初用于军事通信,这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现

  • 随着技术的进步,CDMA设备的价格和体积都大幅下降,因而现在已广泛用于民用的移动通信中

  • CDMA将每个比特时间划分为m个更短的时间片,称为码片(Chip)。m的取值通常为64或128

  • CDMA的每个站点都被指派一个唯一的m比特码片序列(Chip Sequence)

    • 某个站要发送比特1,则发送它自己的m比特码片序列
    • 某个站要发送比特0,则发送它自己的m比特码片序列的反码
  • 如果有两个或多个站同时发送数据,则信道中的信号就是这些站各自所发送一系列码片序列或码片序列反码的叠加。为了从信道中分离出每个站的信号,给每个站指派码片序列时,必须遵守:

    • 分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列
    • 分配给每个站的码片序列必须相互正交,即各码片序列相应的码片向量之间的规格化内积为0

    AB=1mi=1mAiBi=0A·B = \frac{1}{m}\sum_{i=1}^{m}{A_iB_i} = 0

数据链路层

概述

数据链路层在网络体系结构中所处的地位

链路、数据链路和帧

  • 链路(Link)是指从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点
  • 数据链路(Data Link)是基于链路的。当在一条链路上传送数据时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路
  • 计算机中的网络适配器(俗称网卡)和其对应的软件驱动程序就实现了这些协议。一般的网络适配器都包含了物理层和数据链路层这两层的功能

  • 帧(Frame)是数据链路层对等实体之间在水平方向进行逻辑通信的协议数据单元PDU

三个问题

封装成帧

  • 封装成帧是指数据链路层给上层交付下来的协议数据单元PDU添加一个首部和一个尾部,使之成为帧
    • 帧的首部和尾部中包含一些重要的控制信息
    • 帧首部和尾部的作用之一就是帧定界
  • 为了提高数据链路层传输帧的效率,应当使帧的数据载荷的长度尽可能地大于首部和尾部的长度
  • 考虑到对缓存空间的需求以及差错控制等诸多因素,每一种数据链路层协议都规定了帧的数据载荷的长度上限,即最大传送单元(Maximum Transfer Unit,MTU)。例如,以太网的MTU为1500个字节

透明传输

  • 透明传输是指数据链路层对上层交付下来的协议数据单元PDU没有任何限制,就好像数据链路层不存在一样
    • 面向字节的物理链路使用字节填充的方法实现透明传输
    • 面向比特的物理链路使用比特填充的方法实现透明传输

差错检测

误码的相关概念
  • 实际的通信链路都是不理想的,比特在传输过程中可能会产生差错(称为比特差错

    • 比特1可能变成比特0
    • 比特0可能变成比特1
  • 在一段时间内,传输错误的比特数量占所传输比特总数的比率称为误码率(Bit Error Rate,BER)

  • 提高链路的信噪比,可以降低误码率。但在实际的通信链路上,不可能使误码率下降为零

  • 使用差错检测技术来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一

奇偶校验
  • 奇校验是在待发送的数据后面添加1个校验位,使得添加该校验位后的整个数据中比特1的个数奇数
  • 偶校验是在待发送的数据后面添加1个校验位,使得添加该校验位后的整个数据中比特1的个数偶数
  • 在所传输的数据中,如果有奇数个位发生误码,则所包含比特1的数量的奇偶性会发生改变,可以检测出误码
  • 在所传输的数据中,如果有偶数个位发生误码,则所包含比特1的数量的奇偶性不会发生改变,无法检测出误码
  • 在实际使用时,奇偶校验又可分为垂直奇偶校验、水平奇偶校验以及水平垂直奇偶校验
循环冗余校验
  • 数据链路层广泛使用漏检率极低的循环冗余校验(Cyclic Redundancy Check,CRC)检错技术
  • 循环冗余校验CRC的基本思想
    • 收发双方约定好一个生成多项式G(x)
    • 发送方基于待发送的数据和生成多项式G(x),计算出差错检测码(冗余码),将冗余码添加到待发送数据的后面一起传输
    • 接收方受到数据和冗余码后,通过生成多项式G(x)来计算收到的数据和冗余码是否产生了误码

总结
  • 奇偶校验、循环冗余校验等差错检测技术,只能检测出传输过程中出现了差错,但并不能定位错误,因此无法纠正错误
  • 要想纠正传输中的差错,可以使用冗余信息更多的纠错码(例如海明码)进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用
  • 在计算机网络中,通常采用检错重传方式来纠正传输中的差错或者仅仅丢弃检测到差错的帧,这取决于数据链路层想起上层提供的是可靠传输服务还是不可靠传输服务
  • 循环冗余校验CRC具有很好的检错能力(漏检率极低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层

可靠传输

基本概念

  • 使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特差错)
  • 数据链路层向其上层提供的服务类型
    • 不可靠传输服务仅仅丢弃有误码的帧,其他什么也不做
    • 可靠传输服务:通过某种机制实现发送方发送什么接收方最终就能收到什么
  • 一般情况下,有线链路的误码率比较低。为了减小开销,并不要求数据链路层向其上层提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理
  • 无线链路易受干扰,误码率比较高,因此要求数据链路层必须向其上层提供可靠传输服务

  • 可靠传输服务并不局限于数据链路层,其他各层均可选择实现可靠传输
  • 可靠传输的实现比较复杂,开销比较大,是否使用可靠传输取决于应用需求

停止-等待协议

实现原理

  • 接收方收不到数据分组,就不会发送相应的ACK或NAK
  • 如果不采取措施,发送方就会一致处于等待接收方ACK或NAK的状态
  • 为解决上述问题,发送方可在每发送完一个数据分组时就启动一个超时计时器(Timeout Timer)
  • 若到了超时计时器所设置的超时计重传时间(Retranmission Time-Out,RTO),但发送方仍未收到接收方的ACK或NAK,就重传之前已发送过的数据分组

  • 为了避免分组重复这种传输错误,必须给每个分组带上序号
  • 对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其序号与上次发送的数据分组的序号不同就可以,因此用一个比特来编号就够了,序号有0和1这两个

注意

  • 使用超时重传机制后,就可以不使用否认机制了,这样可使协议实现起来更加简单。但是,如果点对点链路的误码率较高,使用否认机制可以使发送方在超时计时器超时前就尽快重传
  • 为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的特性,只需1个比特编序号即可,即序号0和序号1
  • 为了让发送方能够判断所收到的确认分组是否是重复的,需要给确认分组编号,所用比特数量与数据分组所用比特数量一样
    • 数据链路层一般不会出现确认分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给确认分组编号
  • 给超时计时器设置的超时重传时间RTO应当仔细选择,一般将RTO设置为略大于收发双方的平均往返时间RTT
    • 在数据链路层,点对点的往返时间RTT比较固定,RTO就比较好设定
    • 在运输层,由于端到端往返时间非常不确定,设置合适的超时重传时间RTO有时并不容易
  • 停止等待协议属于自动请求重传(Automatic Repeat Request,ARQ)协议。即重传的请求是发送方自动进行的,而不是接收方请求发送方重传某个误码的数据分组
信道利用率

  • 若出现超时重传,对于传送有用的数据信息来说,信道利用率还要降低
  • 在往返时间RTT相对较大的情况下,为了提高信道利用率,收发双方不适合采用停止-等待协议,而可以选择使用回退N帧(GBN)协议或选择重传(SR)协议

回退N帧协议

发送方
  • 发送窗口W_T的取值范围是1 < W_T <= (2^n -1),其中,n是构成分组序号的比特数量
    • 如果W_T = 1 变成了停止-等待协议
    • 如果W_T > (2^n -1) 接收方无法分辨新旧数据分组
  • 可在未收到的接收方确认分组的情况下,将序号落入发送窗口内的多个数据分组全部发送出去
  • 只有收到对已发送数据分组的确认分组时,发送窗口才能向前滑动到相应位置
  • 收到多个重复确认时,可在重传计时器超时前尽早开始重传,由具体实现决定
  • 发送窗口内某个已发送的数据分组产生超时重传时,发送窗口内该数据分组的后续已发送的数据分组也必须全部重传,这就是回退N帧(Go-back-N,GBN)协议名称的由来
接收方
  • 接收窗口W_R = 1的,因此只能按序接收数据分组
  • 只接收序号落入接收窗口内且无误码的数据分组,并且将接收窗口向前滑动一个位置,与此同时给发送方发送相应的确认分组
  • 为了减小开销,接收方不必每收到一个按序到达且无误码的数据分组就给发送方发送一个相应的确认分组
    • 可以在连续收到多个按序到达且无误码的数据分组后(数量由具体实现决定),才针对最后一个数据分组发送确认分组,这称为累计确认
    • 或者可以在自己有数据分组要发送时才对之前按序接收且无误码的数据分组进行稍待确认
  • 接收方收到未按序到达的数据分组后,除丢弃外,还可对之前最后一个按序到达的数据分组进行重复确认,以便发送方尽快重传

选择重传协议

发送方
  • 可在未收到接收方确认分组的情况下,将序号落入发送窗口内的多个数据分组全部发送出去
  • 只有按序收到对已发送数据分组的确认分组时,发送窗口才能向前滑动到相应位置
  • 如果收到未按序到达的确认分组,应对其进行记录,以防止其相应数据分组的超时重发,但发送窗口不能向前滑动
接收方
  • 可接收未按序到达但没有误码并且序号落入接收窗口内的数据分组
  • 为了使发送方仅重传出现差错的分组,接收方不再采用累积确认,而需要对每一个正确接收到的数据分组进行逐一确认
  • 只有在按序接收数据分组后,接收窗口才能向前滑动到相应位置

点对点协议PPP

概述

  • 点对点协议(Point-to-point Protocol,PPP)是目前使用最广泛的点对点数据链路层协议
  • 点对点协议PPP是因特网工程任务组(Internet Engineering Task Force,IETF)于1992年制定的。经过多次修订,目前PPP已成为因特网的正式标准[RFC1661,RFC1662]
  • 点对点协议PPP主要有两种应用

  • 从网络体系结构的角度看点对点协议PPP的组成

PPP的帧格式

PPP帧的透明传输

PPP帧的差错检测

  • 接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;否则,就丢弃这个帧
  • 使用PPP的数据链路层,向上提供的是不可靠数据传输服务

PPP的工作状态

共享式以太网

  • 以太网(Ethernet)以曾经被假想的电磁波传输介质以太(Ether)来命名
  • 以太网最初采用无源电缆(不包含电源线)作为共享总线来传输帧,属于基带总线局域网,传输速率为2.94Mb/s
  • 以太网目前已经从传统的共享式以太网发展到交换式以太网,传输速率已经从10Mb/s提高到100Mb/s、1Gb/s甚至10Gb/s

网络适配器和MAC地址

网络适配器

  • 要将计算机连接到以太网,需要使用相应的网络适配器(Adapter),网络适配器一般简称为 “网卡
  • 在计算机内部,网卡与CPU之间的通信,一般都是通过计算机主板上的I/O总线以并行传输方式进行
  • 网卡与外部以太网(局域网)之间的通信,一般都是通过传输媒体(同轴电缆、双绞线电缆、光纤)以串行方式进行的
  • 网卡除要实现物理层和数据链路层功能,其另外一个重要功能就是要进行并行传输和串行传输的转换。由于网络的传输速率和计算机内部总线上的传输速率并不相同,因此在网卡的核心芯片中都会包含用于缓存数据的存储器
  • 在确保网卡硬件正确的情况下,为了使网卡正常工作,还必须要在计算机的操作系统中为网卡安装相应的设备驱动程序。驱动程序负责驱动网卡发送和接收帧

MAC地址

  • 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须要有一个唯一的标识,即一个数据链路层地址
  • 在每个主机发送的帧的首部中,都携带有发送主机(源主机)和接收主机(目的主机)的数据链路层地址。由于这类地址是用于媒体接入控制(Medium Access Control,MAC)的,因此被称为MAC地址

  • MAC地址一般被固化在网卡的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址

  • MAC地址有时也被称为物理地址

  • 物理地址属于数据链路层范畴

  • 一般情况下,普通用户计算机中往往会包含两块网卡

    • 一块是用于接入有限局域网的以太网卡
    • 另一块是用于接入无线局域网的Wi-Fi网卡
  • 每块网卡都有一个全球唯一的MAC地址

  • 交换机和路由器往往具有更多的网络接口,所以会拥有更多的MAC地址

广播MAC地址举例

多播MAC地址举例

总结

  • 网卡从网络上每收到一个无误码的帧,就检查帧首部中的目的MAC地址,按以下情况处理

    (1) 如果目的MAC地址是广播地址(FF-FF-FF-FF-FF-FF),则接受该帧

    (2) 如果目的MAC地址与网卡上固化的全球单播MAC地址相同,则接受该帧

    (3) 如果目的MAC地址是网卡支持的多播地址,则接受该帧

    (4) 除上述(1)、(2)和(3)情况外,丢弃该帧

  • 网卡还可被设置为一种特殊的工作方式:混杂方式(Promiscuous Mode)。工作在混杂方式的网卡,只要收到共享媒体上传来的帧就会收下,而不管帧的目的MAC地址是什么

    • 对于网络维护和管理人员,这种方式可以监视和分析局域网上的流量,以便找出提高网络性能的具体措施
    • 嗅探器(Sniffer)就是一种工作在混杂方式的网卡,再配合相应的工具软件(WireShark),就可以作为一种非常有用的网络工具来学习和分析网络
    • 混杂方式就像一把 “双刃剑”,黑客常利用这种方式非法获取网络用户的口令

注意

  • 全球单播MAC地址就如同身份证上的身份号码,具有唯一性,它往往与用户个人信息绑定在一起。因此,用户应尽量确保自己拥有的全球单播MAC地址不被泄露
  • 为了避免用户设备连接Wi-Fi热点时MAC地址泄露的安全问题,目前大多数移动设备都已采用了随机MAC地址技术

CSMA/CD协议

基本原理

  • 在以太网的发展初期,人们普遍认为 “无源的电缆线比有源器件可靠”,因此将多个站点连接在一条总线上来构建共享总线以太网
  • 共享总线以太网具有天然的广播特性,即使总线上某个站点给另一个站点发送单播帧,表示帧的信号也会沿着总线传播到总线上的其他各站点

  • 当某个站点在总线上发送帧时,总线资源会被该站点独占。此时,如果总线上的其他站点也要在总线上发送帧,就会产生信号碰撞
  • 当两个或多个站点同时使用总线发送帧时,就会产生信号碰撞

  • 为了解决各站点争用总线的问题,共享总线以太网使用了一种专用协议CSMA/CD,它是载波监听多址接入/碰撞检测(Carrier Sense Multiple Access Collision Detection)的英文缩写词

多址接入MA

载波监听CS

碰撞检测CD

  • 载波监听检测到总线空闲,但总线并不一定空闲
  • 使用CSMA/CD协议的共享总线以太网上的各站点,只是尽量避免碰撞并在出现碰撞时做出退避后重发的处理,但不能完全避免碰撞
  • 在使用CSMA/CD协议时,由于正在发送帧的站点必须 “边发送帧边检测碰撞”,因此站点不可能同时进行发送和接收,也就是不可能进行全双工通信,而只能进行半双工通信(双向交替通信)

共享式以太网

争用期

  • 使用CSMA/CD协议的共享总线以太网上的任意站点在发送帧的过程中都可能会遭遇碰撞

  • 站点从发送帧开始,最多经过时长2τ(即δ -> 0)就可以检测出所发送的帧是否遭遇了碰撞
  • 因此,共享总线以太网的端到端往返时间2τ被称为争用期(Contension Period)或碰撞窗口(Collision Window),它是一个非常重要的参数
    • 站点从发送帧开始,经过争用期2τ这段时间还没有检测到碰撞就可以肯定这次发送不会产生碰撞
  • 从争用期的概念可以看出,共享总线以太网上的每一个站点从发送帧开始,到之后的一小段时间内,都有可能遭遇碰撞,而这一小段的长短时不确定的,它取决于另一个发送帧的站点与本站点的距离,但不会超过总线的端到端往返传播时延,即一个争用期2τ
    • 很显然,总线的长度越长(单程端到端传播时延越大),网络中站点数量越多,发生碰撞的概率就越大
    • 因此,共享以太网的总线长度不能太长,接入的站点数量也不能太多

最小帧长

  • 为了确保共享总线以太网上的每一个站点在发送完一个完整的帧之前,能够检测出是否产生了碰撞,帧的发送时延就不能少于共享总线以太网端到端的往返时间,即一个争用期2τ
  • 对于10Mb/s的共享总线以太网,其争用期2的值规定为51.2μs,因此其最小帧长为512b,即64B

10Mb/s×51.2μs=512b=64B10Mb/s \times 51.2μs = 512b = 64B

  • 当某个站点在发送帧时,如果帧的前64B没有遭遇碰撞,那么帧的后续部分也就不会遭遇碰撞。也就是说,如果遭遇碰撞,就一定时在帧的前64B之内
  • 由于发送帧的站点边发送帧边检测碰撞,一旦检测到碰撞就立即中止帧的发送,此时已发送的数据量一定小于64B。因此,接收站点收到长度小于64B的帧,就可判定这是一个遭遇了碰撞而异常中止的无效帧,将其丢弃即可

最大帧长

  • 一般来说,帧的数据载荷的长度应远大于帧首部和尾部的总长度,这样可以提高帧的传输效率
  • 然而,如果不限制数据载荷的长度上限,就可能使得帧的长度太长,这会带来一些问题

退避算法

  • 如果连续多次发生碰撞,就表明可能有较多的站点参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(即动态退避),因而减小产生碰撞的概率
  • 当重传达16次仍不能成功时,就表明同时打算发送帧的站点太多了,以至于连续产生碰撞,此时应放弃重传并向高层报告

信道利用率

  • 考虑以下理想情况
    • 总线一旦空闲就有某个站点立即发送帧
    • 各站点发送帧都不会产生碰撞
    • 发送一帧占用总线的时间为T0 + τ,而帧本身的发送时间时T0

极限信道利用率 Smax=T0T0+τ=11+τT0=11+a极限信道利用率\ S_{max} = \frac{T_0}{T_0 + \tau} = \frac{1}{1 + \frac{\tau}{T_0}} = \frac{1}{1+a}

使用集线器的共享式以太网

  • 早期的传统以太网是使用粗同轴电缆的共享总线以太网,后来发展到使用价格相对便宜的细同轴电缆
  • 当初认为这种连接方法既简单又可靠,因为在那个时代普遍认为有源器件不可靠,而无源的电缆线才是最可靠的
    • 然而,实践证明这种使用无源电缆线和大量机械接口的总线型以太网并不像人们想象的那么可靠

  • 在使用细同轴电缆的共享总线以太网之后,以太网发展出来了一种使用大规模集成电路来替代总线、并且可靠性非常高的设备,叫作集线器(Hub)

  • 站点连接到集线器的传输媒体也转而使用更便宜、更灵活的双绞线电缆

  • 集线器的一些主要特点如下

    • 使用集线器的以太网虽然物理拓扑是星型的,但在逻辑上仍然是一个总线网。总线上的各站点共享总线资源,使用的还是CSMA/CD协议
    • 集线器只工作在物理层,它的每个接口仅简单地转发比特,并不进行碰撞检测。碰撞检测的xingxin任务由各站点中的网卡负责
    • 集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个站点的网卡出现了故障而不停地发送帧,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网能正常工作
  • IEEE于1990年制定了10BASE-T星型以太网的标准802.3i,这种以太网是局域网发展史上的一座非常重要的里程碑,它为以太网在局域网中的统治地位奠定了牢固的基础

  • 10BASE-T以太网的通信距离较短,每个站点到集线器的距离不能超过100m

  • IEEE 802.3以太网还可使用光纤作为传输媒体,相应的标准为10BASE-F,“F”表示光纤。光纤主要用作集线器之间的远程连接

在物理层扩展以太网

扩展站点与集线器之间的距离

  • 共享总线以太网中两站点之间的距离不能太远,否则它们之间所传输的信号就会衰减到使CSMA/CD协议无法正常工作
  • 在早期广泛使用粗同轴电缆或细同轴电缆共享总线以太网时,为了提高网络的地理覆盖范围,常用的是工作在物理层的转发器
  • IEEE 802.3标准规定,两个网段可用一个转发器连接起来,任意两个站点之间最多可以经过三个网段

  • 在10BASE-T星型以太网中,可使用光纤和一对光纤调制解调器扩展站点与集线器之间的距离
    • 这种扩展方法比较简单,所需付出的代价是:为站点和集线器各增加一个用于电信号和光信号转换的光纤调制解调器,以及它们之间的一对通信光纤
  • 信号在光纤上的衰减和失真很小,因此使用这种方法可以很简单地将站点与集线器之间的距离扩展到1000m以上

扩展共享式以太网的覆盖范围和站点数量

  • 以太网集线器一般具有8~32个接口,如果要连接的站点数量超过了单个集线器能够提供的接口数量,就需要使用多个集线器,这样就可以连接成覆盖更大的范围、连接更多站点的多级星型以太网
  • 采用多个集线器连接而成的多级星型以太网,在扩展了网络覆盖范围和站点数量的同时,也带来了一些负面因素

在数据链路层扩展以太网

使用网桥

  • 网桥(bridge)工作在数据链路层(包含其下的物理层),因此网桥具备属于数据链路层范畴的相关能力
    • 网桥可以识别帧的结构
    • 网桥可以根据帧首部中的目的MAC地址和网桥自身的帧转发表来转发或丢弃所收到的帧

网桥的主要结构和基本工作原理

透明网桥的自学习和转发帧的流程

  • 透明网桥(Transparent Bridge)通过自学习算法建立转发表

  • 透明网桥中的 “透明”,是指以太网中的各站点并不知道自己所发送的帧将会经过哪些网桥的转发,最终到达目的站点。也就是说,以太网中的各网桥对于各站点而言是看不见的

  • 透明网桥的标准是IEEE 802.1D,它通过一种自学习算法基于以太网中各站点间的相互通信逐步建立起自己的转发表

    1、网桥收到帧后进行登记(即自学习),登记的内容为帧的源MAC地址和进入网桥的接口号

    2、网桥根据帧的目的MAC地址和网桥的转发表对帧进行转发,包含以下三种情况

    • 明确转发:网桥知道应当从哪个接口转发帧
    • 盲目转发:网桥不知道应当从哪个接口转发帧,只能将其通过除进入网桥的接口外的其他所有接口转发
    • 丢弃:网桥知道不应该转发该帧,将其丢弃

注意

  1. 如果网桥收到有误码的帧则直接丢弃
  2. 如果网桥收到一个无误码的广播帧,则不用进行查表,而是直接从除接收该广播帧的接口的其他接口转发该广播帧
  3. 转发表中的每条记录都有其有效时间,到期后自动删除!这是因为各站点的MAC地址与网桥接口的对应关系并不是永久性的,例如某个站点更换了网卡,其MAC地址就会改变

透明网桥的生成树协议STP

  • 为了提高以太网的可靠性,有时需要在两个以太网之间使用多个透明网桥来提供冗余链路
  • 在增加冗余链路提高以太网可靠性的同时,却给网络引入了环路
  • 网络中的广播帧将在环路中永久兜圈,造成广播帧充斥整个网络,网络资源被白白浪费,而网络中的主机之间无法正常通信!
  • 为了避免广播帧在环路中永久兜圈,透明网桥使用生成树协议(Spanning Tree Protocol,STP),可以在增加冗余链路提高网络可靠性的同时,又避免环路带来的问题
    • 不管网桥之间连接成了怎样复杂的带环拓扑,网桥之间通过交互网桥协议单元(Bridge Protocol Data Unit,BPDU),找出原网络拓扑的一个连通子集(即生成树),在这个子集里整个连通的网络中不存在环路
    • 当首次连接网桥或网络拓扑发生变化时(人为改变或出现故障),网桥都会重新构造生成树,以确保网络的连通

交换式以太网

  • 网桥的接口数量很少,通常只有2~4个,一般只用来连接不同的网段
  • 1990年面世的交换式集线器(Switching Hub),实质上是具有多个接口的网桥,常称为以太网交换机(Switch)或二层交换机
    • “二层” 是指以太网交换机工作在数据链路层(包括物理层)
    • 与网桥相同,交换机内部的转发表也是通过自学习算法,基于网络中各主机间的通信,自动地逐步建立起来的
    • 另外,交换机也使用生成树协议STP,来产生能够连通全网但不产生环路的通信路径
  • 仅使用交换机(而不使用集线器)的以太网就是交换式以太网

以太网交换机

  • 以太网交换机(以下简称交换机)本质上就是一个多接口的网桥

    • 交换机自学习和转发帧的流程与网桥是相同的
    • 另外,交换机也使用生成树协议STP,来产生能够连通全网但不产生环路的通信路径
  • 交换机的每个接口可以连接计算机,也可以连接集线器或另一个交换机

    • 当交换机的接口与计算机或交换机连接时,可以工作在全双工方式,并能在自身内部同时连通多对接口,使每一对相互通信的计算机都能像独占传输媒体那样,无碰撞地传输数据,这样就不需要使用CSMA/CD协议
    • 当交换机的接口连接的是集线器时,该接口就只能使用CSMA/CD协议并只能工作在半双工方式
    • 现在的交换机和计算机中的网卡都能自动识别上述两种情况,并自动切换到相应的工作方式
  • 交换机一般都具有多种速率的接口,例如10Mb/s、100Mb/s、1Gb/s甚至10Gb/s的接口,大部分接口支持多速率自适应

  • 一般的交换机都采用 “存储转发” 方式,为了减小交换机的转发时延,某些交换机采用了直通(Cut-Through)交换方式

  • 采用直通交换方式的交换机,在接收帧的同时就立即按帧的目的MAC地址决定该帧的转发接口,然后通过其内部基于硬件的交叉矩阵进行转发,而不必把整个帧先缓存后再进行处理

    • 直通交换的时延非常小
    • 直通交换不检查差错就直接将帧转发出去,有可能会将一些无效帧转发给其他主机

共享式以太网与交换式以太网的对比

  • 交换式以太网的网络性能远高于共享式以太网,集线器早已被交换机取代

以太网的MAC帧格式

虚拟局域网VLAN

诞生背景

  • 将多个站点通过一个或多个以太网交换机连接起来就构建出了交换式以太网
  • 交换式以太网中的所有站点都属于同一个广播域
  • 随着交换式以太网规模的扩大,广播域也相应扩大。巨大的广播域会带来一系列问题
    • 广播风暴 广播风暴会浪费网络资源和各主机的CPU资源
    • 难以管理和维护,带来潜在的安全问题
  • 网络中会频繁出现广播信息
    • TCP/IP协议栈中的很多协议都会使用广播(例如地址解析协议ARP,路由信息协议RIPv1,动态主机配置协议DHCP)
    • NetBEUI: Windows下使用的广播型协议
    • IPX/SPX: Novell网络的协议栈
    • Apple Talk: Apple公司的网络协议栈
  • 分割广播域的方法
    • 使用路由器可以隔离广播域(成本较高)
    • 虚拟局域网技术应运而生

概述

  • 虚拟局域网(Virtual Local Area Network,VLAN)是一种将局域网内的站点划分成与物理位置无关的逻辑组的技术,一个逻辑组就是一个VLAN,VLAN中的各站点具有某些共同的应用需求
  • 属于同一VLAN的站点之间可以直接进行通信,而不同VLAN中的站点之间不能直接通信
  • 网络管理员可对局域网中的各交换机进行配置来建立多个逻辑上独立的VLAN
    • 连接在同一交换机上的多个站点可以属于不同的VLAN,而属于同一VLAN的多个站点可以连接在不同的交换机上

虚拟局域网VALN并不是一种新型网络,它只是局域网能够提供给用户的一种服务

实现机制

  • 虚拟局域网VLAN有多种实现技术,最常见的就是基于以太网交换机的接口来实现VLAN。这就需要交换机能够实现以下两个功能
    • 能够处理带有VLAN标记的帧,也就是IEEE 802.1Q帧
    • 交换机的各接口可以支持不同的接口类型,不同接口类型的接口对帧的处理方式有所不同

IEEE 802.1Q帧

  • IEEE 802.1Q帧也称为Dot One Q帧,它对以太网V2的MAC帧格式进行了扩展:在源地址字段和类型字段之间插入了4字节的VLAN标签(tag)字段

  • 802.1Q帧一般不由用户主机处理,而是由以太网交换机来处理
    • 当交换机收到普通的以太网MAC帧时,会给其插入4字节的VLAN标签使之成为802.1Q帧,该处理简称为 “打标签
    • 当交换机转发802.1Q帧时,可能会删除其4字节的VLAN标签使之成为普通的以太网MAC帧,该处理简称为 “去标签”。交换机转发802.1Q帧时也有可能不进行 “去标签” 处理,是否进行 “去标签” 处理取决于交换机的接口类型

以太网交换机的接口类型

以太网的发展

  • 都使用IEEE 802.3的帧格式
  • 都遵守IEEE 802.3的最小帧长和最大帧长的规定
  • 10吉比特以太网(10GE)和40/100吉比特以太网(40GE/100GE)只工作在全双工方式而不存在争用媒体的问题,因此不需要使用CSMA/CD协议,这样传输距离就不再受碰撞检测的限制
  • 都有多种不同的物理层标准,10吉比特以太网(10GE)和40/100吉比特以太网(40GE/100GE)还增加了支持城域网和广域网的物理层标准

无线局域网

组成

  • 随着移动通信技术的发展,无线局域网(Wireless Local Area Network,WLAN)自20世纪80年代末以来逐步进入市场
  • IEEE于1997年制定出了无线局域网的协议标准802.11,802.11无线局域网是目前应用最广泛的无线局域网之一,更多地将其简称为Wi-Fi(Wireless Fidelity,无线保真度)
  • 802.11无线局域网可分为以下两类
    • 有固定基础设施的
    • 无固定基础设施的
  • 固定基础设施是指预先建立的、能够覆盖一定地理范围的、多个固定的通信基站
  • 802.11无线局域网使用最多的是它的固定基础设施的组网方式

物理层

  • 802.11无线局域网的物理层非常复杂,根据工作频段调制方式传输速率等,可将其分为多种物理层标准:

  • 802.11无线网卡一般会被做成多模的,以便能适应多种不同的物理层标准,例如支持802.11b/g/n
  • 无线局域网最初还使用红外技术(infrared,IR)和跳频扩频(Frequency Hopping Spread Spectrum,FHSS)技术,但目前很少使用了

数据链路层

使用CSMA/CA协议的原因

  • 对于802.11无线局域网,其使用无线信道传输数据,这与共享总线以太网使用有线传输介质不同。因此,802.11无线局域网不能简单照搬共享总线以太网使用的CSMA/CD协议
  • 802.11无线局域网采用了另一种称为CSMA/CA的协议,也就是载波监听多址接入/碰撞避免(Carrier Sense Multiple Access/Collision Avoidance,CSMA/CA)
  • CSMA/CA协议仍然采用CSMA/CD协议中的CSMA,以 “先听后说” 的方式来减少碰撞的发生,但是将 “碰撞检测CD” 改为了 “碰撞避免CA”

不采用 “碰撞检测CD” 的原因

  1. 由于无线信道的传输环境复杂且信号强度的动态范围非常大,在802.11无线网卡上接收到的信号强度一般都远远小于发送信号的强度,信号强度甚至相差百万倍。因此,如果要在802.11无线网卡上实现碰撞检测对硬件的要求非常高
  2. 即使能够在硬件上实现碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),还会出现无法检测到碰撞的情况,因此实现碰撞检测并没有意义

CSMA/CA协议的基本工作原理

MAC帧

网络层

概述

分组转发和路由选择

  • 网络层的主要任务就是将分组从源主机经过多个网络和多段链路传输到目的主机,可以将任务划分为分组转发路由选择两种重要的功能

网路层向其上层提供的两种服务

面向连接的虚电路服务

  • 核心思想是 “可靠通信应由网络自身来保证
  • 必须首先建立网络层连接 虚电路(Virtual Circuit,VC),以保证通信双方所需的一切网络资源
  • 通信双方沿着已建立的虚电路发送分组

无连接的数据报服务

  • 核心思想是 “可靠通信应由用户主机来保证
  • 不需要建立网络层连接
  • 每个分组可走不同的路径。因此,每个分组的首部都必须携带目的主机的完整地址
  • 通信结束后,没有需要释放的连接

网际协议和异构网络互连

网际协议IP

  • 网际协议(Internet Protocol,IP)是TCP/IP体系结构网际层中的核心协议

异构网络互连

  • 当IP网上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体异构细节

IPv4地址及其编址方法

概述

  • IPv4地址是给因特网(Internet)上的每一个主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的32比特的标识符
  • IPv4地址由因特网名字和数字分配机构(Internet Corporation For Assigned Names And Numbers,ICANN)进行分配

  • IPv4地址的编址方法经历了三个历史阶段

表示方法

  • 由于IPv4地址由32比特构成,不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用

分类编址方法

  • A类B类C类地址都是单播地址,只有单播地址可以分配给网络中的主机(或路由器)的各接口
  • 主机号为 “全0” 的地址是网络地址不能分配给主机(或路由器)的各接口
  • 主机号为 “全1” 的地址是广播地址不能分配给主机(或路由器)的各接口

划分子网编址方法

  • 随着更多的中小网络加入因特网,IPv4分类编址方法不够灵活容易造成大量IPv4地址资源浪费的缺点就暴露出来了
  • 为新增网络申请新的网络号存在以下弊端
    • 需要等待时间和花费更多的费用
    • 会增加其他路由器中路由条目的数量
    • 浪费原有网络号中剩余的大量地址
  • 子网掩码可以表明分类IPv4地址的主机号部分被借用了几个比特作为子网号
  • 与IPv4地址类似,子网掩码也是由32比特构成的
    • 用左起多个连续的比特1对应IPv4地址中的网络号和子网号
    • 之后的多个连续的比特0对应IPv4地址中的主机号
  • 将划分子网的IPv4地址与相应的子网掩码进行逐比特的逻辑和运算,就可得到该IPv4地址所在子网的网络地址
  • 给定一个分类的IPv4地址和其相应的子网掩码,就可以得出子网划分的细节
    • 划分出的子网数量
    • 每个子网可分配的地址数量
    • 每个子网的网络地址和广播地址
    • 每个子网可分配的最小地址和最大地址
  • 默认子网掩码是指在未划分子网的情况下使用的子网掩码
    • A类:255.0.0.0
    • B类:255.255.0.0
    • C类:255.255.255.0

无分类编址方法

  • 无分类编址方法使用的地址掩码与划分子网使用的子网掩码类似,由32比特构成

    • 用左起多个连续的比特1对应IPv4地址中的网络前缀
    • 之后的多个连续的比特0对应IPv4地址中的主机号
  • 为了简便起见,可以不明确给出配套的地址掩码的点分十进制形式,而是在无分类编址的IPv4地址后面加上斜线 “/”,在斜线之后写上网络前缀所占的比特数量(也就是地址掩码中左起连续比特1的数量),这种记法称为斜线记法

应用规划

  • IPv4地址的应用规划是将给定的IPv4地址块(或分类网络)划分成若干个更小的地址块(或子网),并将这些地址块(或子网)分配给互联网中的不同网络,进而可以给给网络中的主机和路由器的接口分配IPv4地址

IPv4地址与MAC地址

封装位置

数据包传送过程中的变化情况

  • 在数据包的传送过程中,数据包的源IP地址和目的IP地址保持不变
  • 在数据包的传送过程中,数据包的源MAC地址和目的MAC地址逐链路(或逐网络)改变

关系

  • 如果仅使用MAC地址进行通信,则会出现以下主要问题

    • 因特网中的每台路由器的路由表中就必须记录因特网上所有主机和路由器各接口的MAC地址

    • 手工给路由器配置路由器几乎是不可能完成的任务,即使使用路由协议让路由器通过相互交换路由信息来自动构建路由表,也会因为路由信息需要包含海量的MAC地址信息而严重占用通信资源

    • 包含海量MAC地址的路由信息需要路由器具备极大的存储空间,并且会给分组的查表转发带来非常大的时延

  • 因特网的网际层使用IP地址进行寻址,就可使因特网中各路由器的路由表中的路由记录的数量大大减少,因为只需记录部分网络的网络地址,而不是记录每个网络中各通信设备的各接口的MAC地址

    • 路由器收到IP数据报后,根据其首部中的目的IP地址的网络号部分,基于自己的路由表进行查表转发

地址解析协议ARP

  • ARP协议的相关注意事项:
    • 由于ARP协议的主要用途是从网际层使用的IP地址解析出在数据链路层使用的MAC地址。因此,将ARP协议划归在网际层,将ARP协议划归在数据链路层。两种都是可以的
    • 除了ARP请求报文和响应报文,ARP协议还有其他类型的报文,例如用于检查IP地址冲突的 “无故ARP”
    • 由于ARP协议很在就指定出来,当时并没有考虑网络安全问题。因此,ARP协议没有安全验证机制,存在ARP欺骗和攻击等问题

IP数据报的发送和转发过程

  • 主机发送IP数据报
    • 判断目的主机是否与自己在同一个网络
      • 若在同一个网络,则属于直接交付
      • 不在同一个网络,则属于间接交付。发送给主机所在网络的默认网关(路由器),由默认网关帮忙转发
  • 路由器转发IP数据报
    1. 检查收到的IP数据报是否正确(生存时间是否结束;首部是否误码)
      • 若出错,则丢弃该IP数据报并给发送该IP数据报的源主机发送差错报告
      • 若正确,则进行查表转发
    2. 基于IP数据报首部中的目的IP地址在路由表中进行查找
      • 若找到匹配的路由条目,则按该路由条目的指示进行转发
      • 若找不到匹配的路由条目,则丢弃该IP数据报,并向发送该IP数据报的源主机发送差错报告

IPv4数据报的首部格式

  • 固定部分是指每个IPv4数据报都必须要包含的部分
  • 某些IPv4数据报的首部,除了包含20字节的固定部分,还包含一些可选的字段来增加IPv4数据报的功能
  • IPv4数据报首部中的各字段或某些字段的组合,用来表达IPv4协议的相关功能

静态路由配置

  • 静态路由配置是指用户或网络运维人员使用路由器的相关命令给路由器人工配置路由表
    • 人工配置方式简单、开销小、但不能及时适应网络状态(流量、拓扑等)的变化,一般只在小规模网络中采用
  • 进行静态路由配置需要认真考虑和谨慎操作,否则可能出现以下问题:
    • 路由条目配置错误,甚至导致出现路由环路
    • 聚合路由条目可能引入不存在的网络

因特网路由选择协议概述

路由选择分类

采用分层次的路由选择协议

  • 因特网是全球最大的互联网,它所采取的路由选择协议具有以下三个主要特点:

路由信息协议RIP

基本概念

  • 路由信息协议(Routing Information Protocol,RIP)是内部网关协议中最先得到广泛使用的协议之一,其相关标准文档为[RFC 1058]
  • RIP要求自治系统AS内的每一个路由器,都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为距离向量(Distance-Vector,D-V)
  • RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的距离
    • RIP将路由器到直连网络距离定义为1
    • RIP将路由器到非直连网络距离定义为所经过的路由器数加1
    • RIP允许一条路径最多只能包含15个路由器,距离等于16时相当于不可达。因此RIP只适用于小型互联网
  • RIP认为好的路由就是 “距离短” 的路由,也就是所通过路由数量最少的路由
  • 当到达同一目的的网络有多条RIP距离相等的路由时,可以进行等价负载均衡,也就是将通信量均衡地分布到多条等价的路径上
  • RIP具有以下三个重要特点:
    • 和谁交换信息:仅和相邻路由器交换信息
    • 交换什么信息:路由器自己的路由表。即本路由器到所在自治系统AS中各网络的最短RIP距离,以及到各网络应经过的下一跳路由器
    • 何时交换信息:周期性交换(例如,每个约30秒)。为了加快RIP的收敛速度,当网络拓扑发生变化时,路由器要即时向相邻路由器通告拓扑变化后的路由信息,这称为触发更新

RIP的基本工作过程

  1. 路由器刚开始工作时,只知道自己到直连网络的RIP距离为1
  2. 每个路由器仅和相邻路由器周期性地交换并更新路由信息
  3. 若干次交换和更新后,每个路由器都知道到达本自治系统AS内各网络的最短距离和下一跳路由器,称为收敛

RIP的距离向量算法

  • RIP路由条目更新规则

    • 发现了新网络,添加
    • 到达目的网络,相同下一跳,最新信息,更新
    • 到达目的网络,不同下一跳,新路由优势,更新
    • 到达目的网络,不同下一跳,新路由劣势,不更新
    • 到达目的网络,不同下一跳,等价负载均衡
  • 除了上述RIP路由条目更新规则,在RIP的距离向量算法中还包含以下一些时间参数

    • 路由器每隔大约30秒向其所有相邻路由器发送路由更新报文
    • 180秒(默认)没有收到某条路由条目的更新报文,则把该路由条目标记为无效(即把RIP距离设置为16,表示不可达),若再过一段时间(如120秒),还没有收到该路由条目的更新报文,则将该路由条目从路由表中删除

RIP存在的问题

  • ”坏消息传播得慢“ 的问题又被称为路由环路或RIP距离无穷计数问题。这是距离向量算法的一个固有问题。可以采取以下多种措施减少出现该问题的概率或减小该问题带来的危害
    • 限制最大RIP距离为15(16表示不可达)
    • 当路由表发生变化时就立即发送路由更新报文(即 ”触发更新“ ),而不仅是周期性发送
    • 让路由器记录到收到某个特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即 ”水平分割“ )

RIP版本和相关报文的封装

  • 现在较新的RIP版本是1998年11月公布的RIP2[RFC 2453],已经成为因特网标准协议。与RIP1相比,RIP2可以支持变长子网掩码和CIDR。另外,RIP2还提供简单的鉴别过程并支持多播
  • RIP相关报文使用运输层的用户数据报协议UDP进行封装,使用的UDP端口号为520
    • RIP报文封装的角度看,RIP属于TCP/IP体系结构的应用层
    • 但RIP的核心功能是路由选择,这属于TCP/IP体系结构的网际层

RIP的优缺点

优点
  • 实现简单,路由器开销小
  • 如果一个路由器发现了RIP距离更短的路由,那么这种更新信息就传播得很快,即 “好消息传播得块
缺点
  • RIP限制了最大RIP距离为15,这就限制了使用RIP的自治系统AS的规模
  • 相邻路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也随之增大
  • 坏消息传播得慢”,使更新过程的收敛时间过长。因此,对于规模较大的自治系统AS,应当使用OSPF协议

开放最短路径优先OSPF

相关概念

  • 开放最短路径优先(Open Shortest Path First,OSPF)协议是为了克服路由信息协议RIP的缺点在1989年开发出来的

    • 开放” 表明OSPF协议不是受某一厂商控制,而是公开发表
    • 最短路径优先” 是因为使用了Dijkstra提出的最短路径算法(Shortest Path First,SPF)
  • OSPF是基于链路状态的,而不像RIP是基于距离向量的

  • OSPF基于链路状态并采用最短路径算法计算路由,从算法上保证了不会产生路由环路

  • OSPF不限制网络规模,更新效率高,收敛速度快

  • 链路状态(Link State,LS)是指本路由器都和哪些路由器相邻,以及相应链路的 “代价(cost)”

    • 代价” 用来表示费用、距离、时延和带宽等,这些都由网络管理人员来决定
  • OSPF相邻路由器之间通过交互问候(Hello)分组来建立和维护邻居关系

    • 问候(Hello)分组封装在IP数据报中,发往组播地址224.0.0.5。IP数据报首部中的协议号字段的取值为89,表明IP数据报的数据载荷为OSPF分组
    • 问候(Hello)分组的发送周期为10秒
    • 40秒未收到来自邻居路由器的问候(Hello)分组,则认为邻居路由器不可达
    • 每个路由器都会建立一张邻居表
  • 使用OSPF的每个路由器都会产生链路状态通告(Link State Advertisement,LSA)

  • LSA中包含以下两类链路状态信息:

    • 直连网络的链路状态信息
    • 邻居路由器的链路状态信息
  • 链路状态通告LSA被封装在链路状态更新(Link State Update,LSU)分组中,采用可靠的洪泛法(Flooding)进行发送

    • 洪泛法的要点是路由器向自己所有的邻居路由器发送链路状态更新分组,收到该分组的各路由器又将该分组转发给自己所有的邻居路由器(但其上游路由器除外),以此类推
    • 可靠是指收到链路状态更新分组后要发送确认,收到重复的更新分组无需再次转发,但要发送一次确认
  • 使用OSPF的每一个路由器都有一个链路状态数据库(Link State Database,LSDB),用于存储链路状态通告LSA

OSPF的五种分组类型

OSPF的基本工作过程

多点接入网络中的OSPF路由器

  • 为了减少洪泛发送问候分组和链路状更新分组的数量,OSPF采用以下措施
    • 选举指定路由器(Designated Router,DR)和备用的指定路由器(Backup Designated Router,BDR)
    • 所有非DR/BDR只与DR/BDR建立邻居关系
    • 非DR/BDR之间通过DR/BDR交换信息

OSPF划分区域

边界网关协议BGP

基本概念

  • 边界网关协议(Border Gateway Protocol,BGP)属于外部网关协议EGP这个类别,用于自制系统AS之间的路由选择协议
  • 由于在不同AS内度量路由的 “代价” (距离、带宽、费用等)可能不同,因此对于AS之间的路由选择使用统一的 “代价” 作为度量来寻找最佳路由是不行的
  • AS之间的路由选择还必须考虑相关策略,这些策略包括政治、经济、安全等,它们都是由网络管理人员对每一个路由器进行设置的。但这些策略并不是自治系统之间的路由选择协议本身
  • BGP只能是力求寻找一条能够到达目的网络且比较好的路由(即不能兜圈子),而非要寻找一条最佳路由
  • 在配置BGP时,每个AS的管理员要选择至少一个路由器作为该AS的 “BGP发言人
  • 一般来说,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器
  • 使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)
  • BGP发言人除了运行BGP协议外,还必须运行自己所在AS所使用的内部网关协议IGP,例如RIP或OSPF
  • 当BGP发言人相互交换了网络可达性的信息后,各BGP发言人就根据所采用的策略,从收到的路由信息中找出到达各自治系统的较好的路由,也就是构造出树形结构且不存在环路的自治系统连通图
  • BGP适用于多级结构的因特网

BGP-4的四种报文

路由器的基本工作原理

  • 路由器是一种具有多个输入端口和输出端口的专用计算机,其任务是转发分组
  • 路由选择部分:核心构件是路由选择处理机,其任务是根据所使用的路由选择协议周期性地与其他路由器进行路由信息的交换,以便构建和更新路由表
  • 分组转发部分:由一组输入端口交换结构以及一组输出端口

国际控制报文协议ICMP

虚拟专用网和网络地址转换

虚拟专用网

  • 虚拟专用网(Virtual Private Network,VPN):利用公用的因特网作为本机构各专用网之间的通信载体,这样形成的网络又称为虚拟专用网

  • 给专用网内各主机配置的IP地址应该是该专用网所在机构可以自行分配的IP地址,这类IP地址仅在机构内部有效,称为专用地址(Private Address),不需要向因特网的管理机构申请

  • VPN要保证传输数据的安全性,会将原始的内部IP数据报进行加密,然后再将其封装成为在因特网上传送的外部IP数据报

  • 同一机构内不同部门的内部网络所构成的VPN,又称为内联网VPN

  • 有时,一个机构的虚拟专用网VPN需要某些外部机构(通常是合作伙伴)参加进来,这样的VPN就称为外联网VPN

  • 在外地工作的员工需要访问公司内部的专用网时,只要在任何地点接入因特网,运行驻留在员工PC中的VPN软件,在员工的PC和公司的主机之间建立VPN隧道,就可以访问专用网中的资源,这种虚拟专用网又称为远程接入VPN

网络地址转换

  • 网络地址转换(NetworkAddress Translation,NAT)技术于1994年被提出,用来缓解IPv4地址空间即将耗尽的问题
    • NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源
    • 这种方法需要在专用网络连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器称为NAT路由器,它至少要有一个有效的外部全球地址IPg。这样,所有使用内部专用地址的主机在和外部因特网通信时,都要在NAT路由器上将其内部专用地址转换成IPG
    • 如果NAT路由器拥有n(n比较小)个全球IP地址,那么专用网内最多可以同时有n台主机接入因特网。若专用网内的主机数量大于n,则需要轮流使用NAT路由器中数量较少的全球IP地址
    • 由于目前绝大多数基于TCP/IP协议栈的网络应用,都使用运输层传输控制协议TCP或用户数据报协议UDP,为了更加有效地利用NAT路由器中的全球IP地址,现在常将NAT转换和运输层端口号结合使用。这样就可以使内部专用网中使用专用地址的大量主机,共用NAT路由器上的1个全球IP地址,因而可以同时与因特网中的不同主机进行通信
    • 将NAT和运输层端口号结合使用,称为网络地址与端口号转换(Network Address and Port Translation,NAPT)。现在很多家用路由器将家中各种智能设备(手机、平板、笔记本电脑、台式电脑、物联网设备等)接入因特网,这种路由器实际上就是一个NAPT路由器,但往往并不运行路由选择协议
    • 尽管NAT(和NAPT)的出现在很大程度上缓解了IPv4地址资源紧张的局面,但NAT(和NAPT)对网络应用并不完全透明,会对某些网络应用产生影响
    • NAT(和NAPT)的一个重要特点就是通信必须由专用网内部发起,因此拥有内部专用地址的主机不能直接充当因特网中的服务器
    • 对于目前P2P这类需要外网主机主动与内网主机进行通信的网络应用,在通过NAT时会遇到问题,需要网络应用自身使用一些特殊的NAT穿透技术来解决

IP多播技术

基本概念

  • 多播(Multicast,也称为组播)是一种实现 “一对多” 通信的技术,与传统单播 “一对一” 通信相比,多播可以极大地节省网络资源
  • 因特网上进行的多播,称为IP多播

IP多播地址和多播组

  • IPv4中,D类地址被作为多播地址(224.0.0.0~239.255.255.255)
  • 多播地址只能用作目的地址,而不能用作源地址
  • 用每一个D类地址来标识一个多播组,使用同一个IP多播地址接收IP多播数据报的所有主机就构成了一个多播组
    • 每个多播组的成员是可以随时变动的,一台主机可以随时加入或离开多播组
    • 多播组成员的数量和所在的地理位置也不受限制,一台主机可以属于几个多播组
  • 非多播组成员也可以向多播组发送IP多播数据报
  • 与IP数据报相同,IP多播数据报也是 “尽最大努力交付” ,不保证一定能够交付给多播组内的所有成员
  • IPv4多播地址又可分为预留的多播地址(永久多播地址)、全球范围可用的多播地址以及本地管理的多播地址[RFC 3330]
  • IP多播可以分为以下两种:
    • 只在本局域网上进行的硬件多播
    • 因特网上进行的多播

在局域网上进行硬件多播

  • 由于MAC地址(也称为硬件地址)有多播MAC地址这种类型,因此只要把IPv4多播地址映射成多播MAC地址,即可将IP多播数据报封装在局域网的MAC帧中,而MAC帧首部中的目的MAC地址字段的值,就设置为由IPv4多播地址映射成的多播MAC地址。这样,可以很方便地利用硬件多播来实现局域网内的IP多播
  • 当给某个多播组的成员主机配置其所属多播组的IP多播地址时,系统就会根据映射规则从该IP多播地址生成相应的局域网多播MAC地址。
  • 因特网号码指派管理局IANA,将自己从IEEE注册管理机构申请到的以太网MAC地址块中从01-00-5E-00-00-00到01-00-5E-7F-FF-FF的多播MAC地址,用于映射IPv4多播地址。
    • 这些多播MAC地址的左起前25个比特都是相同的剩余23个比特可以任意变化,因此共有223个。
  • 由于IP多播地址可变化的28比特的前5个比特无法映射到MAC多播地址的低23比特,这会造成IP多播地址与多播MAC地址的映射关系并不是唯一的
  • 由于IP多播地址与多播MAC地址的映射关系不是唯一的,因此收到IP多播数据报的主机还要在网际层利用软件进行过滤,把不是主机要接收的IP多播数据报丢弃。

在因特网上进行IP多播需要的两种协议

网际组管理协议IGMP

多播路由选择协议

  • 多播路由选择协议的主要任务是:在多播路由器之间为每个多播组建立一个多播转发树
    • 多播转发树连接多播源和所拥有该多播组成员的路由器
  • 目前有以下两种方法来构建多播转发树:
    • 基于源树(Source-Base Tree)多播路由选择
    • 组共享树(Group-Shared Tree)多播路由选择

基于源树多播路由选择

  • 基于源树的多播路由选择的最典型算法是反向路径多播(Reverse Path Multicasting,RPM)算法
  • RPM算法包含以下两个步骤:
    1. 利用反向路径广播(Reverse Path Broadcasting,RPB)算法建立一个广播转发树
    2. 利用剪枝(Pruning)算法,剪除广播转发树中的下游非成员路由器,获得一个多播转发树
  • 要建立广播转发树,可以使用洪泛(Flooding)法
  • 利用反向路径广播RPB算法生成的广播转发树,不会存在环路,因此可以避免广播分组在环路中兜圈。
  • RPB算法的要点是:每一台路由器在收到一个广播分组时,先检查该广播分组是否是从源点经最短路径传送来的
    • 若是,本路由器就从自己除刚才接收该广播分组的接口的所有其他接口转发该广播分组。
    • 否则,丢弃该广播分组。
    • 如果本路由器有好几个邻居路由器都处在到源点的最短路径上,也就是存在好几条同样长度的最短路径,那么只能选取一条最短路径。选取的规则是这几条最短路径中的邻居路由器的IP地址最小的那条最短路径
  • RPB中 “反向路径” 的意思是:在计算最短路径时把源点当作终点

组共享树多播路由选择

  • 组共享树多播路由选择采用基于核心的分布式生成树算法来建立共享树。
    • 该方法在每个多播组中指定一个核心(core)路由器,以该路由器为,建立一棵连接多播组的所有成员路由器的生成树,作为多播转发树。
  • 每个多播组中除了核心路由器,其他所有成员路由器都会向自己多播组中的核心路由器单播加入报文
    • 加入报文通过单播朝着核心路由器转发,直到它到达已经属于该多播生成树的某个节点或者直接到达该核心路由器
    • 加入报文所经过的路径,就确定了一条从单播该报文的边缘节点到核心路由器之间的分支,而这个新分支就被嫁接到现有的多播转发树上。

因特网的多播路由选择协议

  • 目前还没有在整个因特网范围使用的多播路由选择协议。下面是一些建议使用的多播路由选择协议:
    • 距离向量多播路由选择协议(Distance Vector Multicast Routing Protocol,DVMRP)[RFC 1075]。
    • 开放最短路径优先的多播扩展(Multicast Extensions to OSPF,MOSPF) [RFC 1585]。
    • 协议无关多播-稀疏方式(Protocol Independent Multicast-Sparse Mode,PIM-SM) [RFC 2362]。
    • 协议无关多播-密集方式(Protocol Independent Multicast-Dense Mode, PIM-DM) [RFC 3973]。
    • 基于核心的转发树(Core Based Tree,CBT)[RFC 2189,RFC 2201]。
  • 尽管因特网工程任务组IETF努力推动着因特网上的全球多播主干网(Multicast Backbone On the Internet, MBONE)的建设,但至今在因特网上的IP多播还没有得到大规模的应用。
    • 主要原因是:改变一个已成功运行且广泛部署的网络层协议是一件极其困难的事情
    • 目前IP多播主要应用在一些局部的园区网络、专用网络或者虚拟专用网中。

移动IP技术概述

移动性对因特网应用的影响

相关基本概念

  • 移动IP(Mobile IP)是因特网工程任务组IETF开发的一种技术[RFC 3344],该技术使得移动主机在各网络之间漫游时,仍然能够保持其原来的IP地址不变
  • 移动IP技术还为因特网中的非移动主机提供了相应机制,使得它们能够将IP数据报正确发送到移动主机

基本工作原理

IPv6引进的主要变化

IPv6地址

地址空间大小

  • 在IPv6中,每个地址占128个比特
    • 如果整个地球表面(包括陆地和水面)都覆盖着需要IPv6地址的通信设备,那么IPv6允许每平方米拥有7 * 10^23个IPv6地址
    • 如果IPv6地址的分配速率是每微秒分配100万个IPv6地址,则需要10^19年的时间才能将所有可能的地址分配完毕
  • 很显然,这样巨大的地址空间在采用合理编址方法的情况下,在可预见的未来是不会用完的

表示方法

  • 在IPv6地址的冒号十六进制记法的基础上,再使用 “左侧零” 省略和 “连续零” 压缩,可使IPv6地址的表示更加简洁。
    • “左侧零” 省略是指两个冒号间的十六进制数中最前面的一串0可以省略不写。
    • “连续零” 压缩是指一连串连续的0可以用一对冒号取代。
  • 在一个IPv6地址中只能使用一次“连续零”压缩,否则会导致歧义。
  • 冒号十六进制记法还可结合点分十进制的后缀。这在IPv4向IPv6过渡阶段非常有用。
  • CIDR的斜线表示法在IPv6中仍然可用。

分类

从IPv4向IPv6过渡

  • 因特网上使用IPv4的路由器的数量太大,要让所有路由器都改用IPv6并不能一蹴而就。因此,从IPv4转变到IPv6只能采用逐步演进的办法
  • 另外,新部署的IPv6系统必须能够向后兼容,也就是IPv6系统必须能够接收和转发IPv4数据报,并且能够为IPv4数据报选择路由
  • 下面介绍两种由IPv4向IPv6过渡的策略:
    • 使用双协议栈
    • 使用隧道技术

使用双协议栈

使用隧道技术

网际控制报文协议ICMPv6

概述

  • 由于IPv6与IPv4一样,都不确保数据报的可靠交付,因此IPv6也需要使用网际控制报文协议ICMP来向发送IPv6数据报的源主机反馈一些差错信息,相应的ICMP版本为ICMPv6
  • ICMPv6比ICMPv4要复杂的多,它合并了原来的地址解析协议ARP和网际组管理协议IGMP的功能。因此与IPv6配套使用的网际层协议就只有ICMPv6这一个协议

封装

  • ICMPv6报文需要封装成IPv6数据报进行发送

分类

  • ICMP报文可被用来报告差错、获取信息、探测邻站或管理多播通信
  • 在对ICMPv6报文进行分类时,不同的RFC文档使用了不同的策略

软件定义网络

运输层


Computer Network
https://www.renkelin.vip/2023/10/26/Network/
Author
Kolin
Posted on
October 26, 2023
Licensed under