计算机网络学习笔记(持续更新)

第一章 计算机网络体系结构

谢老师很贴心的在书中给出了PPT下载地址

大纲

谢仁希 王道
计算机网络的分类
互联网的组成,
计算机网络主要性能指标 p21
计算机网络体系结构,
OSI体系结构、
TCP/IP体系结构。

1.1计算机网络的组成与分类

1.计算机网络的组成

从不同的角度看 内容
从组成上看 硬件、软件、协议
从工作方式上看 边缘部分、核心部分
从功能上看 通信子网、资源子网

2.计算机网络的分类

角度 内容
分布范围 广域网、城域网、局域网、个人局域网
传输技术 广播式网络、点对点网络
拓扑结构 总线形、星形、环形、网状网络
使用者 公用网、专用网
交换技术 电路交换、报文交换、分组交换
传输介质 有线、无线

3.计算机网络的性能指标

指标 内容
带宽 (Bandwidth) “最高数据传输率”的同义语
时延 (Delay) 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
时延带宽积 时延带宽积 = 传播时延 ✖️ 信道带宽
往返时延 (RTT) 从发送端发送数据开始,到发送端收到来自接受端的确认,总共经历的时延(RTT越大,在收到确认前可以发送的数据越多)
吞吐量 (Throughput) 单位时间内通过某个网络的数据量
速率 (Speed) 在数字信道上传送数据的速率
信道利用率 信道利用率 = 有数据通过的时间 / (有+无) 数据通过的时间

1.2 计算机网络体系结构与参考模型

  1. 网络体系结构是从功能上描述计算机网络结构。

  2. 计算机网络体系结构是分层结构

  3. 每层遵循某个/些网络协议以完成本层功能。

    ​ 协议是一些规则或者是约定,它规定了每一层的对等实体之间需要完成的哪些功能。

  4. 计算机网络体系结构是计算机网络的各层及其协议的集合。

    ​ 计算机网络包括计算机网络中的各个层次,以及各个层次需要完成的功能,还包括每一层对应的协议。

    ​ 网络体系结构是抽象的概念。

  5. 第n层在向n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能。

    ​ 只有相邻两层之间才能提供服务,且服务是单向的,只能由下层提供给上层。

  6. 仅仅在相邻层间有接口,且所提供的服务的具体实现对上一层完全屏蔽。

  7. 体系结构是抽象的,而实现是指能运行的一些软件和硬件。

OSI参考模型各层的功能归类

  1. 流量控制:可以存在于数据链路层及其之上的各层之中。主要是数据链路层、网络层、传输层中,且各层的流量控制对象不一样。
  2. 建立、维护、拆除端到端的连接的层:传输层

OSI参考模型

OSI参考模型 目的 功能 传输的数据单元 常用协议
物理层 实现比特流在传输介质上的透明传输 物理媒介上为数据端设备透明地传输原始比特流 比特 Rj45、802.3
数据链路层 将有差错的物理线路变成无差错的数据链路 成帧、差错控制流量控制、传输管理 SDLC、HDLC、PPP、STP、帧中继
网络层 实现路由选择、拥塞控制、网际互联,实现主机到主机的通信 路由选择、拥塞控制、流量控制差错控制、网际互联 (IP)数据报 IP、IPX、ICMP、IGMP、ARP、RARP、OSPF
传输层 实现主机的进程之间的端到端的数据传输 提供可靠的传输服务,提供流量控制差错控制、服务质量、数据传输管理等服务 TCP(报文段)、UDP(用户数据报) TCP、UDP
会话层 利用传输层的端到端的服务,向表示层提供它的增值服务 为表示层实体或用户进程建立连接并在连接上有序地传输数据 \ \
表示层 主要处理两个通信系统中交换信息的表示方式 数据压缩、加密和解密等数据表示交换功能 \ \
应用层 提供用户与网络的界面 为各种特定类型的网络应用提供访问OSI参考模型环境的手段 \ FTP、SMPT、HTTP
  1. 物理层实现比特流在传输介质上的透明传输;

  2. 数据链路层将有差错的物理线路变成无差错的数据链路;

  3. 网络层主要实现路由选择、拥塞控制、网际互联,实现主机到主机的通信;

  4. 传输层实现主机的进程之间的端到端的数据传输。

下一层为上一层提供服务
如:网络层下一层是数据链路层,所以为网络层实体提供数据发送和接收功能及过程的是数据链路层。

对等层之间传送数据的单位都称为协议数据单元(PDU);具体而言,传输层

王道1.2.4错题总结

1题:
​ 网络模型的分层不关心每一层的实现细节。

8题:
​ 数据链路层没有拥塞控制,网络层和传输层才有。

11题:
​ 数据链路层是点到点,不是端到端通信,端到端通信从传输层才有。
​ 传输层实现端到端的应答、分组排序和流量控制。

17题:
​ A选项:数据链路层在分组上除了增加源和目的地址外,也增加控制信息;
​ C选项:传输层的PDU不称为帧;
​ D选项:表示层不负责把高层协议产生的数据分割成数据段,且负责增加相应源和目的端口信息段应该是传输层。数据经过应用层、表示层、会话层后,只是增加了三层PCI。

18题,19题
已由上面 “OSI参考模型各层的功能归类” 概括了。

20题:
​ 集线器是一个多端口的中继器,工作在物理层。
​ 以太网交换机是一个多端口的网桥,工作在数据链路层。
​ 路由器是网络层设备,它实现了网络模型的物理层、数据链路层、网络层。

22题:

​ TCP/IP模型的传输层提供端到端的通信,并提供差错控制和流量控制,可以提供可靠的面向连接的服务或不可靠的无连接服务。

23题:
​ TCP/IP模型的网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
​ 考察首部:IP首部只有首部校验和,没有面向连接的用于建立连接的字段,同时也没有用于提供可靠服务的序号和校验和两个字段。

28题:
​ 协议由语法、语义和时序(又称同步)组成。

语法规定了通信双方彼此“如何讲”,即规定了传输数据的格式。
语义规定了“讲什么”,即所要完成的功能。
时序规定了信息交流的次序。

第二章 物理层

大纲

物理层特性,数据通信的基础知识,传输媒体,网络交换技术,调制编码技术,信道复用技术,数字传输系统,宽带接入技术。


2.1 通信基础

2.1.1基本概念

补充概念:

  1. 同步传输
  2. 异步传输
  3. 影响失真程度的因素:
    1. 码元传输速率
    2. 信号传输距离
    3. 噪声干扰
    4. 传输媒体质量
  4. 码间串扰接收端收到的信号波形失去了码元之间清晰界限现象
  5. 信号带宽:信道能通过的最高频率和最低频率之差
  6. 无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。

2.1.2 奈氏准则和香农定理

1. 奈奎斯特定理(奈氏准则)

讨论的是码元的极限传输速率

!!!在奈氏准则和香农定理中,带宽的单位都是Hz!!!

奈氏准则:在理想低通(无噪声,带宽受限)条件下,为了避免码间串扰,极限码元传输速率为 2W Baud,W是信道带宽,单位是Hz

公式:极限传输速率为

​ 理想低通信道下的极限数据传输速率 = 2 W log ⁡ 2 V 2W\log_2V 2Wlog2V (单位为b/s) (1)
​ 其中:
W W W是理想低通信道的带宽(Hz) V V V表示每个码元离散电平的数目(指有多少种码元)

奈氏准则结论

​ 1)在任何信道中,码元的传输速率是有上限的

​ 2)信道的频带越宽,就可用越高的速率进行码元的有效传输。

​ 3)奈氏准则给出了码元传输速率的限制,但没有给出信息传输速率的限制,也就是不限制一个码元对应有多少个比特位。
​ 另外,由于奈氏准则限制了码元的传输速率,所以为了提高数据传输速率,就必须设法让每个码元携带更多的信息量——(多元制的调制方法)。


2. 香农定理

!!!在奈氏准则和香农定理中,带宽的单位都是Hz!!!

公式:带宽受限且有高斯白噪声干扰的信道的极限数据传输速率

信道的极限数据传输速率 = W log ⁡ 2 ( 1 + S / N ) W\log_2(1+\mathrm{S} / \mathrm{N}) Wlog2(1+S/N) (单位为b/s) (2)
​ 其中:
W \mathrm{W} W为信道的带宽; S \mathrm{S} S为信道所传输信号的平均功率; N \mathrm{N} N为信道内部的高斯噪声功率。
  S / N \mathrm{~S} / \mathrm{N}  S/N为信噪比。

信噪比 (dB)= 10 log ⁡ 10 ( S / N ) 10 \log _{10}(\mathrm{S} / \mathrm{N}) 10log10(S/N) 数值上等价,只是表示格式不同,做题时需要注意!!!

香农定理结论

​ 1)信道的带宽或者信噪比越大,信息的极限传输速率越高

​ 2)对于一定的传输带宽和信噪比,信息的极限传输速率的上限是确定的。

​ 3)只要信息传输速率低于信道的极限传输速率,就一定能找到某种方法来实现无差错的传输

​ 4)香农定理得出的是极限信息传输速率,实际信道能达到的传输速率要比它低上不少。


3. “nice准则”和“香浓定理”总结

奈氏准则(内忧) 香农定理(外患)
带宽受限无噪声条件下,为了避免码间串扰, 码元传输速率的上限 2W Baud(波特率) 带宽受限有噪声条件下的信息传输速率。
理想低通信道下的极限数据传输率= 2 W log ⁡ 2 V 2\mathrm{W} \log_2\mathrm{V} 2Wlog2V 信道的极限数据传输速率= W log ⁡ 2 ( 1 + S / N ) \mathrm{W}\log_2{(1+\mathrm{S}/\mathrm{N})} Wlog2(1+S/N)
要想提高数据率,就要提高带宽/采用更好的编码技术。 要想提高数据率,就要提高带宽/信噪比。
题目:二进制信号在信噪比为127 : 1的4kHz信道上传输,最大的数据速率可达到多少?

答:

Nice: 2 × 4000 × log ⁡ 2 2 = 8000 b / s 2×4000× \log_22=8000b/s 2×4000×log22=8000b/s

香浓: 4000 × log ⁡ 2 ( 1 + 127 ) = 28000 b / s 4000×\log_2{(1+127)}=28000b/s 4000×log2(1+127)=28000b/s

选择相对较小的最大值:Nice的8kbps。

2.1.3 编码与调制

1. 数字数据编码为数字信号

编码名称 信号表示机制 时钟同步 举例
归零编码 高电平代表1,低电平代表0(或者相反)(每个时钟周期的中间归零 /
非归零编码 高电平代表1,低电平代表0(或者相反)(不归零) /
反向非归零编码 信号翻转代表0,信号保持不变代表1(或者相反)(不归零) USB2.0
曼彻斯特编码 前一个间隔是高电平而后一个间隔是低电平代表码元1,码元0正好相反 以太网
差分曼切斯特编码 前半个码元的电平与上一个码元的后半个相同表示1,码元0正好相反(抗干扰) 局域网

2. 数字数据调制为模拟信号

数字调制方法 改变载波信号的什么表示0和1 载波的频率和相位是否改变
幅移键控(ASK) 振幅 不改变
频移键控(FSK) 频率 不改变
相移键控(PSK) 相位 不改变
正交振幅调制(QAM)

3. 模拟数据编码为数字信号

采样定理(奈奎斯特定理)

​ 当采样频率大于等于模拟频率的最大频率的两倍时,才能保证采样后的数字信号完整保留原始模拟信号的信息。

概念 解释
采样 把时间上连续的信号变成时间上离散的信号
量化 把采样取得的电平幅值按照一定的分级标度转化为对应的数字值并取整数
编码 把量化的结果转换为与之对应的二进制编码

4. 模拟数据调制为模拟信号

​ 为了实现传输的有效性,可能需要较高的频率。这种调制方式还可以使用频分复用(FDM)


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

1. 电路交换

先建立连接,然后独占这条通信线路,再进行数据的传输。

特点:独占资源,用户始终占用端到端的固定传输带宽。适用于远程批处理信息传输或系统间实时性要求高的大量数据传输的情况。(通常使用交换机实现)

三个阶段: 连接建立、数据传输、连接释放。

电路交换优缺点
优点 缺点
传输时延小 建立连接时间长
数据顺序传送,无失序问题 线路独占,即使通信线路空闲,也不能供其他用户使用,信道使用效率低。
实时性强,双方一旦建立物理通路,便可以实时通信, 适用于交互式会话类通信。 灵活性差,双方连接通路中的任何一点出了故障,必须重新拨号建立新连接,不适应突发性通信。
全双工通信,没有冲突,通信双方有不同的信道,不 会争用物理信道 无数据存储能力,难以平滑通信量。
适用于模拟信号和数字信号 电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信
控制简单,电路的交换设备及控制较简单 无法发现与纠正传输差错,难以在通信过程中进行差错控制。

2. 报文交换

“一整块报文进行存储转发,然后到达目的主机。”

**报文交换的原理:无需在两个站点之间建立一条专用通路,其数据传输的单 位是报文,传送过程采用存储转发**方式。

报文交换优缺点
优点 缺点
无需建立连接,无建立连接时延,用户可随时发送报文。 实时性差,不适合传送实时或交互式业务的数据。数 据进入交换结点后要经历存储转发过程,从而引起转 发时延。
动态分配线路,动态选择报文通过的最佳路径,可以 平滑通信量。 只适用于数字信号。
提高线路可靠性,某条传输路径发生故障,可重新选 择另一条路径传输。 由于报文长度没有限制,而每个中间结点都要完整地 接收传来的整个报文,当输出线路不空闲时,还可能要存储几个完整报文等待转发,要求网络中每个结点 有较大的缓冲区。为了降低成本,减少结点的缓冲存 储器的容量,有时要把等待转发的报文存在磁盘上, 进一步增加了传送时延。
提高线路利用率,通信双方在不同的时间一段一段地 部分占有这条物理通道,多个报文可共享信道。
提供多目标服务:一个报文可同时发往多个目的地址。
在存储转发中容易实现代码转换和速率匹配,甚至收 发双方可以不同时处于可用状态。这样就便于类型、 规格和速度不同的计算机之间进行通信。

注意:报文交换主要使用在早起的电报通信网中,现在较少使用,通常被较先进的分组交换方式所取代。

3. 分组交换

“一整块报文分成若干个小块,并对其进行编号,再将这若干个小块进行两种方式的传送——数据报服务和虚电路服务方式。”

限制每次传送的数据块大小的上限,把大的数据块划为合理的小数据块,再加上一些必要的控制信息,构成分组。

分组交换优缺点
优点 缺点
无建立时延,无需为通信双方预先建立一条专用通信 线路,用户可随时发送分组。 尽管分组交换比报文交换的传输时延少,但仍存在存 储转发时延,而且其结点交换机必须具有更强的处理 能力。
线路利用率高,通信双方在不同的时间一段一段地部 分占有这条物理通道,多个分组可共享信道。 每个分组都要加控制信息,一定程度上降低了通信效 率,增加了处理的时间。
简化了存储管理。因为分组的长度固定,相应的缓冲 区的大小也固定,在交换结点中存储器的管理通常被 简化为对缓冲区的管理,相对比较容易。 当分组交换采用数据报服务时,可能出现失序、丢失 或重复分组,分组到达目的结点时,要对分组按编号 进行排序等工作,增加了麻烦。若采用虚电路服务, 虽无失序问题,但有呼叫建立、数据传输和虚电路释 放三个过程。
加速传输,后一个分组的存储可以和前一个分组的转 发并行操作;传输一个分组比一份报文所需缓冲区小, 减少等待发送时间。
减少出错几率和重发数据量,提高可靠性,减少传输 时延。
分组短小,适用于计算机之间突发式数据通信。

4. 数据交换方式的选择

  • 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最 小。
  • 当端到端的通路有很多段的链路组成时, 采用分组交换传送数据较为合适。
  • 从信道利用率上看,报文交换分组交换优于电路交换,其中分组交换报文交换的时延小,尤其适合于计算机之间的突发式的数据通信。
  • 分组交换要比报文交换时延小尤其适合于计算机之间的突发式数据通信

分组交换将继续细分为数据报和虚电路两种方式。


2.1.5 数据报和虚电路

这两种服务方式都由网络层提供;且数据报方式和虚电路方式是分组交换的两种方式。

补充概念:

  1. 无连接服务数据报为网络层提供):不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
  2. 连接服务虚电路为网络层提供):首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组, 系列分组传输路径相同,传输结束后拆除连接。

1. 数据报服务

报文被拆成若干个带有序号的数据单元,并在网络层加上地址等控制信息后形成的就是数据报分组(即网络层的PDU)。

数据报服务的流程:主机A现将分组逐个发往与它直接相连的交换结点A,交换结点A缓存收到的分组后查找自己的转发表,按照转发表转发出去(由于不同时刻的网络状态不同,所以转发表也不尽相同)。

特点:

  1. 不需要事先建立连接可随时发送分组,网络中的结点随时可接受结点。
  2. 尽最大努力交付不保证可靠性,传输路径可能不同,也不一定按序到达终点。
  3. 分组要包括发送端和接收端的完整地址,以便分组进行独立传输。
  4. 分组在交换结点存储转发时,要排队等候处理,会有一定的时延。交换结点还可以根据情况丢弃部分分组,所以会导致丢失分组
  5. 网络具有冗余路径,所以对故障的适应能力强
  6. 延时一般较小,提高了网络的吞吐量。
  7. 通信双方不独占某条链路,资源利用率高
  8. 分组在某一条链路上传送时不占用网络的其他资源,资源是共享的。
  9. 不同的分组可以走不同的路径,也可以按不同的顺序不分先后的到达目的结点。

2. 虚电路

试图将数据报方式与电路交换方式结合起来,发挥两者的优点,来达到最优的数据交换效果

整个通信分为三个阶段:虚电路建立、数据传输、虚电路释放。

特点:

  1. 通信链路的建立和拆除需要时间开销,所以对于交互式应用小量的短分组情况有点浪费,但长时间、频繁的数据交换效率较高
  2. 路由选择体现在连接建立阶段,连接建立后,就确定了传输路径。
  3. 提供了可靠的通信功能,能保证每个分组正确且有序的到达
  4. 分组通过虚电路上的每个节点时,节点只进行差错检测,不进行路由选择。
  5. 一次通信的所有分组都通过虚电路顺序传送分组不需携带源地址、目的地址等信息,但要包含虚电路号相对数据报方式开销小,同一报文的不同分组到达目的结点时不会乱序、重复或丢失。
  6. 有一个致命的弱点:若网络中的某个结点或者某条链路出现故障而彻底失效,所有经过该结点或该链路的虚电路将遭到破坏。
  7. 每个节点可能与多个节点之间建立多条虚电路,每条虚电路支持特定的两个端系统之间的数据传输,可以对 两个数据端点的流量进行控制,两个端系统之间也可以有多条虚电路为不同的进程服务

注意:网络中的传输是否有确认与网络层提供的两种服务没有任何关系。

3. 比较与区别

数据报服务和虚电路服务的比较
数据报服务 虚电路服务
连接的建立 不需要 必须有
目的地址 每个分组都有完整的目的地址 仅在建立连接阶段使用,之后每个分组使用长度较短的虚电路号
路由选择 每个分组独立地进行路由选择和转发 属于同一条虚电路的分组按照同一路由转发
分组顺序 不保证分组的有序到达 保证分组的有序到达
对网络故障的适应性 出故障的结点丢失分组,其他分组路径选择发生变化时可以正常传输 所有经过故障结点的虚电路均不能正常工作
差错处理和流量控制 由用户主机进行流量控制,不保证数据报的可靠性 可由分组交换网负责

2.2 传输介质

2.2.1 双绞线、同轴电缆、光纤与无线传输介质

1.一些概念

  1. 传输媒体并不是物理层。
  2. 传输介质分为导向传输介质(固体媒介如铜缆、光纤)和非导向传输介质(如空气、真空、海水等)。
  3. 模拟传输要用放大器放大衰减的信号,数字传输,要用中继器将失真的信号整形。

2. 双绞线

双绞线分为屏蔽双绞线和非屏蔽双绞线,双绞线价格便宜。

3. 同轴电缆

同轴电缆**抗干扰特性比双绞线好,被广泛用于传输较高速率的数据,其传输距离更远,但价格**较双绞线贵。

4. 光纤

光纤的特点:

  1. 传输**损耗小**,中继距离长,对远距离传输特别经济。
  2. 抗雷电和电磁干扰性能好。
  3. 无串音干扰,保密性好,也**不易被窃听或截取数据**。
  4. 体积小,重量轻
  5. 容量大。

2.2.2 物理层接口的特性

物理层考虑的是如何在连接到各种计算的传输媒体上传输比特流,(物理层)不是指具体的传输媒体

物理层的主要任务可以描述为确定与传输媒体的接口有关的一些特性包括四种特性,如下所示)。

  1. 机械特性。指明接口所用接线器的形状和尺寸、引脚数目、引线数量和排列、固定和锁定装置等。
  2. 电气特性。规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率速率限制等。
  3. 功能特性。指明某条线上出现的某一电平表示何种意义,接口部件的信号线的用途。
  4. 过程特性,( or 规程特性)。定义各条物理线路的工作规程和时序关系。

2.3 物理层设备(大纲似乎没有)

2.3.1 中继器

2.3.2 集线器


第三章 数据链路层

大纲

谢仁希 王道
数据链路层的功能及设计问题 P63 3.1节
数据链路成帧 p70-72, p66
透明传输 p73
差错检测 p74, p68
点对点协议PPP p76, p115
CSMA/CD协议 p85, p91
以太网 p83 &92-97 p104
透明网桥 P122
扩展的以太网 p97, 王道没有

3.1 数据链路层的功能及设计问题

3.1.1 数据链路层的功能

数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到 相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接 改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XeYnEPla-1629980020338)(/Users/charlieli/Library/Application Support/typora-user-images/数据链路层功能示意图.png)]

  1. 为网络层提供服务。无确认无连接服务有确认无连接服务有确认面向连接服务。(不存在无确认面向连接的服务,面向连接一定有确认)
  2. 链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
  3. 组帧。帧定界、帧同步与透明传输
  4. 流量控制,限制发送方哦~~
  5. 差错控制(帧错/位错)。

3.2 数据链路成帧(王道叫组帧)

封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流 后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。

帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧的四种方法:1.字符计数法,2.字符(节)填充法,3.零比特填充法,4.违规编码法。

3.2.1 字符计数法

首部使用一个计数字段(第一个字节,八位)来标明帧内字符数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U9oIV83V-1629980020339)(file:///Users/charlieli/Library/Application%20Support/typora-user-images/%E5%AD%97%E7%AC%A6%E8%AE%A1%E6%95%B0%E6%B3%95.png?lastModify=1629812717)]

缺点:鸡蛋装在一个篮子里了(一个字段错,后面全错)。

3.2.2 字节填充 / 字符填充法

包含有首尾标识位 FLAG (首尾都有!!!)

所传输的数据中出现控制字符“SOH”和“EOT”之前插入一个转义字符“ESC”。

1.当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码)。 不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。

2.当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像等)。 就要采用字符填充方法实现透明传输。

计算机网络学习笔记(持续更新)_第1张图片

3.2.3 零比特填充法

一连串比特连续发送~~

包含有首尾标识位 FLAG (首尾都有!!!)

“5” 1 “1” 0

“5” 1 “1” 0 解释:

  1. 在发送端,扫描整个所传输的数据,只要出现连续5个1,就立即填入1个0。
  2. 在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
  3. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f4EZl9Te-1629980020341)(file:///Users/charlieli/Library/Application%20Support/typora-user-images/%E9%9B%B6%E6%AF%94%E7%89%B9%E5%A1%AB%E5%85%85%E6%B3%95%E2%80%9C5%E2%80%9D1%E2%80%9C1%E2%80%9D0.png?lastModify=1629812717)]

3.2.4 违规编码法

计算机网络学习笔记(持续更新)_第2张图片

可以用“高**-高”,“低-**低”(这种曼彻斯特编码中不可能出现的电平)来定界帧的起始和终止。

由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现 上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。

3.3 透明传输

术语“透明”:某一个实际存在的食物却看起来好像不存在一样。

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施(看3.2节),使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。


3.4 差错控制

ppt(第三章上)第11页

思维导图

计算机网络学习笔记(持续更新)_第3张图片

3.4.0 差错从何而来?

概括来说,传输中的差错都是由于噪声引起的

全局性 1.由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。 解决办法:提高信噪比来减少或避免干扰。(对传感器下手)

局部性 2.外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。 解决办法:通常利用编码技术来解决

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ROR9Cvs8-1629980020345)(/Users/charlieli/Library/Application Support/typora-user-images/差错从何而来?.png)]

链路层为网络层提供服务:

  1. 无确认无连接服务,通常用于通信质量有线的传输链路。
  2. 有确认无连接服务
  3. 有确认面向连接服务,通信质量无线传输链路。

3.4.1 检错编码

1. 奇偶校验码

附加一个校验元,使得码长为 n 的码字中 “1” 的个数为奇数(奇校验码)或者为偶数(偶校验码)。

奇偶校验码特点: 只能检查出奇数个比特错误,检错能力为50%。

2. 循环冗余检验CRC(Cylic Redundancy Check)

发送端:要传的数据 ➗ 生成多项式 = 一个数 ······ 余数即为FCS冗余码
接收端:接收到的数据 ➗ 生成多项式 = 0(正确)或者非0(误码)
多项式表示除数:P(X) = X3 + X2 + 1 表示 P = 1101

发送流程:

  1. 将待传有效数据分成 n 组。
  2. 将每个组都加上冗余码(位数=生成多项式的阶数)构成帧再发送。

最终发送的数据是:要发送数据 + FCS冗余码

接收端检错过程

  1. 把收到的每一个帧都除以同样的除数,然后检查得到的余数R。 1.余数为0,判定这个帧没有差错,接受。
  2. 余数为不为0,判定这个帧有差错(无法确定到位),丢弃。

注:FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速, 因此不会延误数据的传输。

计算冗余码:

  1. 0
    1. 假设生成多项式G(x)的阶为r,则加r个0。(多项式N位,阶为N-1)
  2. 2 除法(异或:同0异1
    1. 数据加0后除以多项式,余数为冗余码/FCS/CRC检验码的比特序列。

3.4.2 纠错编码

海明码

  1. 确定校验码位数r
  2. 确定校验码和数据的位置。
  3. 求出校验码的值。
  4. 检错并纠错。

3.5 点对点协议PPP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-INcQaugG-1630314350881)(/Users/charlieli/Library/Application Support/typora-user-images/ 点对点协议 PPP.png)]

3.5.1 特点

是用户计算机和ISP进行通信是使用的数据链路层协议。

只支持点对点链路通信,只支持全双工链路。

3.5.2 应该满足的要求&不需要满足的要求

应该满足的要求 备注 不需要满足的要求
简单 对于链路层的帧,无需纠错,无需序号,无需流量控制。 不需要编序号
封装成帧 帧定界符 不支持多点线路
透明传输 与帧定界符一样比特组合的数据应如何处理:
异步线路用字节填充(转义字符)
同步线路用比特填充(“5” 1 “1” 0)
不需要流量控制
支持多种网络层协议 封装的IP数据报可以采用多种协议。 不需要纠错
支持多种链路 串行/并行,同步/异步,电/光…
要能差错检错 使用CRC循环冗余检错,错就丢弃。
要能检测连接状态 链路是否正常工作。
规定最大传送单元 说的是要传送的数据部分最大大小,数据部分最大长度MTU。
能够为网络层地址协商服务 知道通信双方的网络层地址。
能够进行数据压缩协商

附表:PPP的字节填充和比特填充

类型 字节填充 比特填充
“转义字符” “5” 1 “1” 0
用在哪里 用在异步传输 用在同步传输
标志字段 0x7E(0111 1110) 0x7E(0111 1110)
转义字符 0x7D(0111 1101) -

3.5.3 PPP协议的三个组成部分

  1. 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
  2. 链路控制协议LCP:建立并维护数据链路连接。 身份验证
  3. 网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配 置,为网络层协议建立和配置逻辑连接。

3.5.4 PPP协议的工作状态

计算机网络学习笔记(持续更新)_第4张图片

设备之间无链路
物理链路
LCP链路
已鉴别的LCP链路
已鉴别的LCP链路和NCP链路
  1. 用户电脑通过调制解调器呼叫路由器,路由器检测到调制解调器——建立物理连接。(链路静止->链路建立)
  2. 协商一些配置选项,发送LCP配置请求帧(也是一个PPP帧)
概念 内容
“链路建立” 为了建立链路层的LCP连接
LCP配置选项 链路上最大帧长、所使用的鉴别协议的规约以及不使用PPP帧中的地址和控制字段。
配置确认帧 所有选项都接受
配置否认帧 所有选项都理解但不能接受
配置拒绝帧 选项有的无法识别或不能接受,需要协商
“鉴别”状态 只允许发送LCP协议的分组、鉴别协议的分组以及检测链路质量的分组。
“口令鉴别协议” 身份验证,可重复多次
“口令握手鉴别协议” 身份验证,若失败则转入“链路终止”状态
“网络层协议”状态 NCP控制协议根据网络层的不同协议互相交换网络层特定的网络控制分组。(PPP链路两端的网络层可以运行不同的协议,但仍然能够使用同一个PPP协议进行通信)
“链路打开” 当网络层配置完后进入该状态,链路的两个PPP断电可以彼此互相发送分组,也可发送回送请求LCP分组和回送回答LCP分组,用来检查链路的状态。
“链路终止” 由一端发出终止请求LCP分组,收到对方发来的终止确认LCP分组后,转到该状态
注意:若链路出现故障也会进入该状态,当调制解调器的载波停止后,就进入“链路静止”状态

3.5.5 PPP协议的帧格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3FkZN02Y-1630314350885)(/Users/charlieli/Library/Application Support/typora-user-images/ppp帧格式.png)]


3.6 CSMA/CD协议

计算机网络学习笔记(持续更新)_第5张图片

一些概念

  1. 以太网使用曼彻斯特编码的信号
  2. 使用CSMA/CD的以太网只能进行半双工通信原因:因为使用CSMA/CD的时候,一个站不可能同时进行发送和接受数据(但必须边发送边检测信道)
  3. 以太网最短帧长为64Byte=512bit,也即争用期为512bit/10Mbps = 51.2 μ s 51.2\mu s 51.2μs,另外端到端时延必须要小于争用期的一般也就是 25.6 μ s 25.6 \mu s 25.6μs
  4. 截断二进制指数退避算法需要了解
  5. 以太网收到的所有小于512bit的数据都是表明信道已经发生了碰撞
  6. 以太网每发送完一帧,一定要把已发送的帧暂时保留一下。

3.6.1 多点接入

说明这是总线型网络,是许多交换机以多点接入的方式连接在一根总线上。

协议的实质是:“载波监听”和“碰撞检测”。

3.6.2 载波监听

不管在发送前还是发送中,每个站都必须不停地检测信道是否空闲。

状态 目的
发送前检测信道 为了获得发送权
发送中检测信道 为了及时发现有没有其他站的发送和本站的发送的碰撞

3.6.3 碰撞检测

“边发送边监听”

1.产生碰撞的物理现象是:信号电压变化幅度超过了一定的门限值。

2.产生碰撞的原因:因为电磁波的传播是需要时间的,所以即便信道发送的时候是“空闲”的,仍有可能发生碰撞,是因为或许别的站已经发送了数据,但还没传播过来而已。

3.强化碰撞的概念:发送数据的站检测到发生碰撞后,除了立即停止发送数据外,还要继续发送32bit或者48bit的人为干扰信号,以便所有的用户都知道现在已经发生了碰撞。

3.6.4 要点归纳

(1)准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部(见3.9 扩展的以太网),组成以太网帧,放入适配器的缓存中。但在发送前,必须先检测信道。

(2)检测信道:若检测到信道忙,则应该不停地检测,一直等待信道转为空闲。若检测到空闲,且在96bit时间内信道保持空闲(保证了帧间最小间隔 9.6 μ s 9.6 \mu s 9.6μs),就发送这个帧。

(3)在发送过程中仍然不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:

  1. 发送成功:争用期内一直未检测到碰撞。这个帧肯定能发送成功。发送完毕后,其他什么也不做。然后回到(1)。(注:因为从你开始发出到收到对方的信息——发生碰撞,最多也就是一个争用期时间,如果过了这个时间,是不会有其他端点发送数据的——因为其他端点回检测到现在信道是被你占用的。)
  2. 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待 r r r 倍512bit时间后,返回步骤(2),继续检测信道。但如果重传达16次仍然不能成功,则停止重传而向上报错。

另外,以太网每发送完一帧,一定要把已发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要在推迟一段时间后再把这个暂时保留的帧重传一次。


3.7 以太网

以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今 现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。

一些概念

  1. 以太网使用曼彻斯特编码的信号;
  2. 使用CSMA/CD的以太网只能进行半双工通信原因:因为使用CSMA/CD的时候,一个站不可能同时进行发送和接受数据(但必须边发送边检测信道);
  3. 以太网规定最短帧长为64Byte=512bit,也即争用期为512bit/10Mbps = 51.2 μ s 51.2\mu s 51.2μs,另外端到端时延必须要小于争用期的一般也就是 25.6 μ s 25.6 \mu s 25.6μs
  4. 以太网收到的所有小于512bit的数据都是表明信道已经发生了碰撞;
  5. 以太网每发送完一帧,一定要把已发送的帧暂时保留一下;
  6. 以太网使用集线器的星型拓扑(逻辑上仍然是总线型);
  7. 造价低廉(以太网网卡不到100人民币);
  8. 应用最广泛的局域网技术
  9. 比令牌环网、ATM网便宜,简单;
  10. 满足网络速率要求:10Mb/s~10Gb/s.
  11. 以太网两个标准:
    1. DIX Ethernet V2:第一个局域网产品(以太网)规约。
    2. IEEE 802.3IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(帧格式有一丢丢改动)
  12. 802.3局域网 AKA 以太网;
  13. 以太网提供无连接、不可靠的服务;以太网只实现无差错接收,不实现可靠传输

3.7.1 使用集线器的星型拓扑

1.集线器(hub):是一种可靠性非常高的设备;
2.10BASE-T:10代表10Mbps,BASE表示传送的是基带型号,T表示双绞线; 3.10BASE-T双绞线以太网的出现,是局域网发展史上一个非常重要的里程碑;
4.10BASE-T的标准IEEE 802.3i。
5.10BASE-T采用无屏蔽双绞线(UTP)
6.以太网拓扑:辑上线型,物理上星型。(“逻总”

集线器的一些特点

  1. 使用集线器的以太网在逻辑上仍然是一个总线网,各站共享逻辑上的总线,各站中的适配器使用的还是CSMA/CD协议。在同一时刻,至多只允许一个站发送数据。
  2. 集线器有许多物理接口,很像多接口的转发器。
  3. 集线器工作在物理层,仅仅简单的转发比特。
  4. 集线器可以进行自适应串音回波抵消。
  5. 集线器一般有少量的容错能力和网络管理功能(例如一个适配器故障一直发送以太网帧,那么集线器就可以检测到这个问题,然后断开与它的连线)
  6. 集线器在一个时钟周期内只能传输一组信息,也就是只能实现一组的通信。
  7. 集线器各端共享数据率,并不独享数据率。假设10Mbps以太网有10各站点同时工作,理想情况下每个站应当是1Mbps(1 / 10总数据率)只有交换机会把每个端口隔离出来形成独立的网段,高速以太网的全双工模式就使用了这个操作?

中继器(转发器?)的一些特点

  1. “再生数字信号”
  2. 不能连接两个具有不同速率的局域网
  3. 只能连接两个网段,且这两个网段必须使用同一种协议
  4. 在采用粗同轴电缆的10BASE5以太网规范中,遵循“5-4-3”规则——即最多连接5个通信介质,最多只能有4个中继器串联,最多只有3段可以挂接计算机,其余2段只能用作拓展通信范围的链路段,不能挂接计算机,否则就会导致网络故障。

3.7.2 以太网的信道利用率

以太网总的信道利用率不能达到100%

一个参数a,是以太网 单程端到端时延 τ \tau τ 与 帧的发送时间 T 0 T_0 T0 之比 a = τ T 0 a=\frac{\tau}{T_0} a=T0τ
a → 0 a\rightarrow 0 a0 时信道利用率才能达到最大,即:
以太网连线的长度不能太长(太长导致 τ \tau τ 太大)
以太网帧不能太短(太短导致 T 0 T_0 T0太小)

极限信道利用率为: S m a x = T 0 T 0 + τ = 1 1 + a S_{max} = \frac{T_0}{T_0 + \tau} = \frac{1}{1+a} Smax=T0+τT0=1+a1

所以,a远小于1,也就是 a → 0 a\rightarrow 0 a0 时才能得到尽可能高的极限信道利用率

3.7.3 以太网的MAC层

1)以太网适配器

1.MAC硬件地址

相当于是每一个站的“名字”或标识符,是固化在ROM中的内容。MAC前24位地址是生产厂商的标识符,后24位由厂商自己分配,每一个MAC地址全球唯一。

2.发往本站的帧

1)单播(unicast)帧(一对一)即收到的帧的MAC地址与本站的硬件地址相同
2)广播(broadcast)帧(1对全体)即发送给本局域网中所有站点的帧(全1地址)。
3)多播(multicast)帧(一对多),及发送给本局域网中一部分站点的帧。

3.混杂方式

以太网适配器还可以工作在混杂方式,“窃听”其他站点的通信而不中断其他站点的通信。网络上的黑客常利用这种方法非法获取用户上网的口令,所以以太网上的用户不愿意网络上有工作在混杂方式的适配器。
但有些时候混杂方式又特别有用,网络管理和维护人员需要用这种方式来监控和分析以太网上的流量,以便找出提高网络性能的具体措施。(嗅探器)此外,这种嗅探器还可以帮助学习网络的人员更好地理解各种网络的工作原理
因此混杂方式就像一把双刃剑,利弊看你如何使用它。

2)MAC帧的格式

有两种,只介绍 DIX Ethernet V2标准

计算机网络学习笔记(持续更新)_第6张图片

这里注意,以太网规定以太网帧最小帧长是64Byte,所以数据部分最小长度是 64 − 6 − 6 − 2 − 4 = 46 64-6-6-2-4=46 646624=46 (Byte)。
数据部分不足46字节的,补足到46字节再发送。(加入一些填充字节)

一个小问题,如何判断一个以太网帧的开始和结束呢?
开始:前导码的前 7B(全是1010 ··· 1010 共28位bit)用来同步时钟周期,最后1B 的最后两位11 (1010 1011)用来判断这两个11后是以太网帧开始的定界符
结束:因为以太网有一个帧间最小间隔 9.6 μ s 9.6\mu s 9.6μs (对于传统以太网 10Mbps 就是96bit 的时间),并且以太网使用的是曼彻斯特编码,而曼彻斯特每一个码元正中间一定有一次电平转换,所以等到电平转换结束(也就是电压不再变化了),就说明这个以太网帧发送结束了,就可以很容易判断出以太网帧的结束为止,往前找4个字节就是FCS循环冗余的冗余码,除以生成多项式就可以判断本次传输是否有出错了。所以以太网不需要帧结束定界符

无效的MAC帧:

  1. 帧的长度不是整数个字节。
  2. 用收到的帧检验序列 FCS 检查出有差错。
  3. 收到的帧的MAC客户数据字段的长度不在 46 ~ 1500 字节之间。

注:对于检查出无效的MAC帧就简单的丢弃,以太网不负责重传丢弃的帧。

3.8 透明网桥

“透明”是指以太网上的站点并不知道所发送的帧将经过哪几个网桥。

透明网桥是一种即插即用设备——具有自学习功能,存储转发,同时将丢弃CRC检验有差错的帧以及过短和过长的无效帧。(自学习在 3.9 扩展的以太网介绍)

与集线器/转发器的一个重要区别是网桥按存储转发方式工作,一定是把整个帧接下来(集线器/转发器是逐比特转发)再处理,而不管其目的地址是什么。

3.9 扩展的以太网

这种扩展的以太网在看网络层来仍然是一个网络。

计算机网络学习笔记(持续更新)_第7张图片

3.9.1 在物理层扩展以太网

1.光纤
2.主干集线器

好处:
第一:不同的冲突域之间可以进行通信
第二:扩大了以太网覆盖的地理范围

缺点:
1.冲突域也变大了,同一时间可能有更多的碰撞发生。
2.最大吞吐量仍然是一个冲突域的最大吞吐量。
3.只能工作在都支持的最高速率(可能限制了更高的速率)。

3.9.2 在数据链路层扩展以太网

一、网桥

1.透明网桥

“透明”是指以太网上的站点并不知道所发送的帧将经过哪几个网桥。

透明网桥是一种即插即用设备——具有自学习功能,存储转发,同时将丢弃CRC检验有差错的帧以及过短和过长的无效帧。(自学习在 3.9 扩展的以太网介绍)

与集线器/转发器的一个重要区别是网桥按存储转发方式工作,一定是把整个帧接下来(集线器/转发器是逐比特转发)再处理,而不管其目的地址是什么。

2.源路由网桥

在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。
方法:源站以广播方式向欲通信的目的站发送一个发现帧。

二、以太网交换机

0.两种类型的交换机:
  1. 直通(cut-through)式交换机

    ​ 1)查完目的地址(6B)就立刻转发。
    ​ 2)延迟小,可靠性低,无法支持具有不同速率的端口的交换。

  2. 存储转发式交换机

    ​ 1)将帧放入高速缓存,并检查是否正确,正确则转发,错误则丢弃。
    ​ 2)延迟大,可靠性高,可以支持具有不同速率的端口的交换。

1.以太网交换机的特点

1)以太网交换机实质上是一个多接口的网桥。
2)以太网交换机的每个接口一般都工作在全双工模式。
3)以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信.
4)是一种即插即用设备,因为其内部的帧交换表(又称地址表)是通过 自学习算法自动地逐渐建立起来的。
5)最大优点:一个用户在通信时是独占而不是和其他网络用户共享带宽。
6)拥有多种速率的接口。

2.以太网交换机的自学习功能

当网桥收到一转发帧时,先查找自己的转发表中是否有源地址,若没有则
添加此项

转发帧:查找自己转发表中是否有目的地址,
若没有,则将此帧从***其他端口转发出去***,其他端口的主机将丢弃目的地址
不是本机的帧,这也叫做过滤
若有, 则将转发表中记录的目的地址端口和此帧进入网桥时通过的端口进行比较,若相等则***丢弃此帧***(因为目的主机已经收到此帧了),若不相等,则将此帧通过***转发表记录的目的地址端口转发出去***。

生成树协议 STP(Spanning Tree Protocol)

由于以太网交换机组网时,会增加一些冗余的链路,自学习的过程就可能导致以太网帧在网络的某个环路中无限制的兜圈子

所以引入生成树协议
不改变网络的拓扑结构,但在逻辑上切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。

三、冲突域和广播域

**冲突域:**在同一个冲突域中的每一个节点都能收到所有被发送的帧。 简单的说就是同一时间内只能有一台设备发送 信息的范围。

**广播域:**网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一 个广播信号,所有能接收到这个信号的设备范围称为一个广播域。

能否隔离冲突域 能否隔离广播域
物理层设备【傻瓜】
(中继器、集线器)
链路层设备【路人】
(网桥、交换机)
网络层设备【大佬】
(路由器)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UPRkMbFT-1630651079373)(/Users/charlieli/Library/Application Support/typora-user-images/冲突域和广播域示例.png)]

四、从总线以太网到星型以太网

总线以太网使用 CSMA/CD 协议,以半双工方式工作。
星型以太网中心的以太网交换机不使用 CSMA/CD 协议,以全双工方式工作。

问:

1.为什么以太网交换机都不采用 CSMA/CD 协议,还叫做以太网呢?
答:它仍采用以太网的帧结构,所以还叫做以太网。

2.为什么从前的局域网不采用这种星型结构呢?
答:因为以前的技术条件下,难以造出可靠性高的以太网交换机,所以那时候采用无源的总线结构。但是随着技术的发展,以太网交换机可以做的既便宜又可靠,故现在采用以太网的星型结构为以太网的首选拓扑。

3.9.3 虚拟局域网(VLAN)

一、概念

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

以太网交换机不向虚拟局域网以外的计算机传送不是本虚拟局域网的广播信息,但本虚拟局域网内均收得到。

虚拟局域网限制了接受广播信息的计算机数,使得网络不会因传播过多的广播信息(即所谓的“广播风暴”)而引起性能恶化

二、802.1Q帧

虚拟局域网协议运行在以太网的帧格式中插入一个 4 字节的标识符,称为VLAN标记 (tag),用来指明发送该镇的计算机属于哪一个虚拟局域网。
插入 VLAN 标记得出的帧称为 802.1Q帧

VLAN标记字段的长度是 4 字节,插入在以太网 MAC 帧的源地址字段和类型字段之间。

按照 IEEE 802.1Q标记类型,VLAN 前 2 字节总是 0x8100。
后 2 个字节中,前 3 为是用户优先级字段,接着是 1 位规范格式指示符 CFI ,最后的 12 位是该虚拟局域网 VLAN 标识符 VID(VLAN ID),它唯一地标志了
这个以太网帧属于哪一个 VLAN 。

由于用于 VLAN 的以太网帧首部增加了 4 个字节,
因此以太网的最大帧长从原来的 1518 字节(1500字节的数据 + 18 字节的首部) 变为 1522 字节。

第四章 网络层

谢老师很贴心的在书中给出了PPT下载地址

大纲

谢仁希 王道
网络层提供的两种服务 p113,4.1 P37, 2.1.5
网际协议IP p115,4.2 P143,P194,P135 4.3.1 & 4.3.2 & 4.3.4的1,2 & 4.8 4.1.1
划分子网和构造超网 p135,4.3 P148, 4.3.3
网际控制报文协议ICMP p147,4.4 P152, 4.3.4的4
互联网路由选择协议 p151,4.5 P177, P139, 4.5 4.2.1和4.2.2
虚拟专用网VPN p185,
网络地址转换NAT p187, p147,

4.1 网络层提供的两种服务

4.1.1 数据报和虚电路

这两种服务方式都由网络层提供;且数据报方式虚电路方式
分组交换(物理层)的两种方式。

补充概念:

  1. 无连接服务数据报为网络层提供):不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
  2. 连接服务虚电路为网络层提供):首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组, 系列分组传输路径相同,传输结束后拆除连接。

1. 数据报服务

报文被拆成若干个带有序号的数据单元,并在网络层加上地址等控制信息后形成的就是数据报分组(即网络层的PDU)。

数据报服务的流程:主机A现将分组逐个发往与它直接相连的交换结点A,交换结点A缓存收到的分组后查找自己的转发表,按照转发表转发出去(由于不同时刻的网络状态不同,所以转发表也不尽相同)。

特点:

  1. 不需要事先建立连接可随时发送分组,网络中的结点随时可接受结点。
  2. 尽最大努力交付不保证可靠性,传输路径可能不同,也不一定按序到达终点。
  3. 分组要包括发送端和接收端的完整地址,以便分组进行独立传输。
  4. 分组在交换结点存储转发时,要排队等候处理,会有一定的时延。交换结点还可以根据情况丢弃部分分组,所以会导致丢失分组
  5. 网络具有冗余路径,所以对故障的适应能力强
  6. 延时一般较小,提高了网络的吞吐量。
  7. 通信双方不独占某条链路,资源利用率高
  8. 分组在某一条链路上传送时不占用网络的其他资源,资源是共享的。
  9. 不同的分组可以走不同的路径,也可以按不同的顺序不分先后的到达目的结点。

2. 虚电路

试图将数据报方式与电路交换方式结合起来,发挥两者的优点,来达到最优的数据交换效果

整个通信分为三个阶段:虚电路建立、数据传输、虚电路释放。

特点:

  1. 通信链路的建立和拆除需要时间开销,所以对于交互式应用小量的短分组情况有点浪费,但长时间、频繁的数据交换效率较高
  2. 路由选择体现在连接建立阶段,连接建立后,就确定了传输路径。
  3. 提供了可靠的通信功能,能保证每个分组正确且有序的到达
  4. 分组通过虚电路上的每个节点时,节点只进行差错检测,不进行路由选择。
  5. 一次通信的所有分组都通过虚电路顺序传送分组不需携带源地址、目的地址等信息,但要包含虚电路号相对数据报方式开销小,同一报文的不同分组到达目的结点时不会乱序、重复或丢失。
  6. 有一个致命的弱点:若网络中的某个结点或者某条链路出现故障而彻底失效,所有经过该结点或该链路的虚电路将遭到破坏。
  7. 每个节点可能与多个节点之间建立多条虚电路,每条虚电路支持特定的两个端系统之间的数据传输,可以对 两个数据端点的流量进行控制,两个端系统之间也可以有多条虚电路为不同的进程服务

注意:网络中的传输是否有确认与网络层提供的两种服务没有任何关系。

3. 比较与区别

数据报服务和虚电路服务的比较
虚电路服务 数据报服务
思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证
连接的建立 必须有 不需要
目的地址 仅在建立连接阶段使用,之后每个分组使用长度较短的虚电路号 每个分组都有完整的目的地址
路由选择 属于同一条虚电路的分组按照同一路由转发 每个分组独立地进行路由选择和转发
分组顺序 保证分组的有序到达 不保证分组的有序到达
对网络故障的适应性 所有经过故障结点的虚电路均不能正常工作 出故障的结点丢失分组,其他分组路径选择发生变化时可以正常传输
差错处理和流量控制 可由分组交换网负责,也可由用户主机负责 由用户主机进行流量控制,不保证数据报的可靠性

注:TCP/IP 体系的网络层提供的是数据报服务。


4.2 网际协议 IP

IPv1、2、3、5从未使用过。
计算机网络学习笔记(持续更新)_第8张图片

一些概念

  1. 与 IP 协议配套使用的还有三个协议:ARP、ICMP、IGMP。
  2. TCP/IP 体系结构中网络层通常被称为网际层或者 IP 层。
  3. IP 协议消除了异构网络之间的差异性,使得在网络层看来就好像是一个网络一样。
  4. 一个 IP 地址在整个互联网范围内是唯一的。

4.2.1 虚拟互连网络

1.一些中间设备

层次 设备
网络层以上 网关
网络层 路由器
数据链路层 网桥(或者叫桥接器)
物理层 转发器

2.虚拟互连网络

​ 虚拟互连网络就是指使用相同的网际协议 IP 把互连起来的计算机网络。
使用 IP 协议就可以使性能各异的网络在网络层上看起来好像是一个统一的网络。

互联网可以由多个异构网络互连组成。


4.2.2 分类的 IP 地址

1.IP 地址及其表示方法

​ IP 地址的编址方法经过了三个历史阶段
​ 1)分类的 IP 地址
​ 2)子网的划分
​ 3)构成超网

一个 IP 地址在整个互联网范围内是唯一的。

2.常用的三种类别的 IP 地址

1)A类网络

A类地址的网络号字段占一个字节,且只有7位可以使用(第1位固定为0)。
可指派的网络号是 126 个(即 2 7 − 2 2^7-2 272 )少的两个网络号是
1:IP 网络号全 0 表示 “这个(this)”。(是网络号!!!只有8位 如:0000 0000)是一个保留地址,意思是 “ 本网络”;
2:网络号为 127 (0111 1111)保留作为本地软件,环回测试本主机进程之间的通信之用。如果一个主机发送的一个目的地址为环回地址(例如:127.0.0.1)的 IP 数据报,则本机中的协议处理软件就处理数据报中的数据,而不会把数据报发送到任何网络。划重点:目的地址是环回地址的 IP 数据报永远不会出现在任何网络上,因为网络号为 127 的地址根本不是一个网络地址。

A 类地址的主机号占 3 个字节,因此每一个A类网络的最大主机数是 2 24 − 2 2^{24} -2 2242,少的两个主机号是:
1)全 0 表示该 IP 地址是 “本主机” 所连接到的***单个网络地址***。
(是主机号(后24位)如:一个主机的 IP 地址为 5.6.7.8,则该主机所在的网络地址就是 5.0.0.0),
2)全 1 表示 “所有的(all)”,全 1 的表主机号字段示该网络上的所有主机。

2)B类网络

网络号占 2个字节 16位,但前两位固定为 (10) 所以剩下14位可以自由分配,但注意:128.0.0.0 是不指派的,可以指派的最小网络地址为 128.1.0.0,故总数为 2 14 − 1 2^{14}-1 2141

主机号占 2 个字节,扣除全0 和 全1 的主机号,剩下 2 16 − 2 2^{16}-2 2162 个主机数。

总地址空间 2 30 2^{30} 230 个地址,占总 IP 地址空间的 25%。

3)C类网络

网络号有 3个字节,最前三位固定为 (110),剩下 24 -3 = 21位,而且 192.0.0.0 也是不指派的, 所以可以指派的最小网络地址是 192.0.1.0,所以可指派的网络总数为 2 21 − 1 = 2097151 2^{21}-1=2097151 2211=2097151

每个网络主机号占 8位,而且 全0(XXXX.XXXX.XXXX.0000) 和 全1(XXXX.XXXX.XXXX.1111)也都是不指派的,所以C类网络每个网络的最大主机数是 2 8 − 2 = 254 2^{8}-2=254 282=254 个。

总地址空间 2 29 2^{29} 229

4)总结三类网络

IP 地址的指派范围
网络类别 最大可指派的网络 第一个可指派的网络 最后一个可指派的网络 最大地址空间
A 126 = 2 7 − 2 126=2^7-2 126=272 1.X.X.X 126.X.X.X 2 31 2^{31} 231
B 16383 = 2 14 − 1 16383=2^{14}-1 16383=2141 128.1.X.X 191.255.X.X 2 30 2^{30} 230
C 2097151 = 2 21 − 1 2097151=2^{21}-1 2097151=2211 192.0.1.X 223.255.255.X.X 2 29 2^{29} 229
网络类别 最大可指派的主机 第一个可指派的主机 最后一个可指派的主机
A 16777214 = 2 24 − 2 16777214=2^{24}-2 16777214=2242 X.0.0.1 X.255.255.254
B 65534 = 2 16 − 2 65534=2^{16}-2 65534=2162 X.X.0.1 X.X.255.254
C 254 = 2 8 − 2 254=2^8-2 254=282 X.X.X.1 X.X.X.254

注:主机号 全0 表示本机,全1 表示所有主机。

5)IP 地址的一些特点

1.IP地址是一种分等级的地址结构。
2.实际上 IP 地址是标志一台主机(或路由器)和一条链路的接口。
3.一个路由器至少连接两个网络,所以一个路由器至少拥有 2个不同的 IP 地址.
4.用网桥或者转发器连接起来的若干个局域网仍然为一个网络,因为这些局域网具有相同的网络号。具有不同网络号的局域网必须通过路由器相连。
5.互联网同等对待每一个 IP 地址

6)需要注意的点:

  • 同一个局域网上的主机或者路由器的 IP 地址中网络号必须一样
  • 网桥(它只在数据链路层工作)互联的网段仍然是一个局域网,
    只能有一个网络号
  • 路由器总是具有两个或两个以上的 IP 地址。
  • 路由器的每一个接口都由一个不同网络号的 IP 地址
    (因为路由器连接的都是两个网段)
  • 当两个路由器直接相连时,在连线两端的接口处,
    可以分配也可以不分配 IP 地址。
  • 如果两个路由器直接相连,并且在两端接口处分配了 IP 地址,这是一种只包含一段线路的特殊“网络”。是无编号网络或者叫无名网络

4.2.3 IP 地址与硬件地址

物理地址 数据链路层物理层使用的地址。
IP 地址网络层和以上各层使用的地址,是一种逻辑地址
(因为IP 地址是用软件实现的)

IP数据报一旦交给数据链路层,就被封装成 MAC 帧了。 MAC 帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在 MAC 帧的首部中。

数据链路层看不见数据报的 IP 地址。

不同层次、不同区间的源地址和目的地址
1)网络层写入 IP 数据报首部的地址从未发生改变
2)数据链路层写入 MAC 帧首部的地址一直在改变

计算机网络学习笔记(持续更新)_第9张图片

如上图所示,在数据链路层写入 MAC 帧首部的地址
源地址 目的地址
H A 1 {HA_1} HA1 H A 3 HA_3 HA3
H A 4 HA_4 HA4 H A 5 HA_5 HA5
H A 6 HA_6 HA6 H A 2 HA_2 HA2

强调几点

1)在 IP 层抽象的互联网上只能看到 IP 数据报。
2)数据报首部的源地址和目的地址在传输的过程中始终不变。
3)数据报中间经过的几个路由器的IP地址并不出现在 IP 数据报的首部中。
4)路由器只根据目的站的 IP 地址的网络号进行路由选择。
5)局域网的链路层,只能看见 MAC 帧,IP 数据报是被封装在 MAC 帧中作为
数据部分的。
6)MAC 帧在不同的网络上传送时,MAC 帧首部中的源地址和目的地址要发生 变化,数据链路层在收到一个帧之后,要丢弃原来的 MAC 帧的首部和尾部, 在转发时,在数据链路层要重新加上 MAC 帧的新的首部和尾部。
(问:直通式交换机只检查 6 字节的目的地址,然后直接转发,那么直通式 交换机在转发的过程中是否去掉了原来MAC 帧的首部和尾部,然后
又重新加上 MAC 帧的新的首部和尾部呢?
答:交换机不更新 MAC 地址)
7)IP 层抽象的互联网屏蔽了下层这些很复杂的细节。只要是在网络层讨论问 题,就可以用统一的、抽象的 IP 地址来研究主机和主机或路由器之间的
通信,而无需考虑下层是如何将数据送到我们要求的地方的。


4.2.4 地址解析协议 ARP

一些概念

地址解析协议 ARP 就是将网络层使用的 IP 地址解析出在数据链路层使用的硬件地址,方便数据链路层进行数据传输。

逆地址解析协议 RARP 的功能已经被 DHCP 包含了,所以不再需要。

在实际网络的链路上传送数据帧时,最终必须使用MAC地址。
ARP协议解决下一跳走哪的问题。

ARP 协议要点

1)每一台主机都有一个 ARP 高速缓存,用于存放一个从 IP 地址到硬件地址的映射表,并且这个映射表经常动态更新(新增或超时删除,也就是有自学习功能)

2)ARP 使用的例子

  1. 主机 A 向本局域网中的 B 发送 IP 数据报时,先查询映射表,表中有 B 的 IP 地址,就从 ARP 高速缓存中查出其对应的硬件地址,再把这个硬件地址写入 MAC 帧首部,然后通过局域网把该 MAC 帧发往此硬件地址。

  2. 若映射表中查不到 主机B 的 IP地址,主机A 就自动运行 ARP,然后按照以下步骤找出主机B的硬件地址:

    1. ARP 进程在 本局域网 广播发送一个 ARP 请求分组,内容是:“我的 IP 地址是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18,我想知道 IP 地址为 209.0.0.6 的主机的硬件地址。”

    2. 本局域网上所有主机上运行的 ARP 进程都会收到此ARP请求分组。(请求分组广播的形式)

    3. 主机B 的 IP地址 与 ARP 请求分组 中要查询的 IP地址 一致,就收下这个ARP请求分组,同时在ARP响应分组中写入自己的硬件地址。

    4. 其余的主机都不理睬这个 ARP请求分组,因为不符合这个要查询的 IP 地址。

    5. ARP 响应分组主要内容是:“我的 IP 地址是 209.0.0.6,我的硬件地址是 08-00-2B-00-EE-0A。”

    6. 请求分组是广播发送的响应分组是普通的单播

    7. 主机A 收到 主机B 的 ARP 响应分组后,就在其 ARP 高速缓存中写入 主机B 的 IP地址到硬件地址的映射

    8. 主机B 在收到主机A 的请求分组之后,也会将请求分组中 A 的这一地址映射写入主机B 自己的ARP 高速缓存中

3)生存时间

​ ARP 对保存在高速缓存中的每一个映射地址仙姑都设置了 生存时间
​ 凡是超过了生存时间的项目就从高速缓存中删掉。

4)ARP协议4种典型情况

  1. 主机A 发给本网络上的 主机B:用 ARP 找到 主机B 的硬件地址;
  2. 主机A 发给另一网络上的 主机B:用 ARP 找到 本网络 上一个路由器
    (网关)的硬件地址;
  3. 路由器 发给本网络主机A:用 ARP 找到 主机A 的硬件地址;
  4. 路由器 发给另一网络主机B:用 ARP 找到 本网络 上的一个路由器的硬件地址。

5)一些问题

  1. 不在同一个局域网的 IP 地址如何解析出硬件地址?

    ​ 答:不需要,因为无法直接解析,也无法从高速缓存中查到对方主机。
    ​ 怎么办呢?一般是先用自己的子网掩码和目的 IP地址 相与一下,然后看看是不是在自己的网段内,在自己网段就发送 广播分组(MAC 帧的概念);否则就发送到自己的默认网关的MAC地址那里

    广播分组中填写的目的 MAC 地址是 全1: FF FF FF FF FF FF

  2. 主机发送IP数据报给主机B,经过了5个路由器,请问此过程总共使用了几次ARP协议?(ARP协议解决下一跳走哪的问题)

    ​ 答:6次。

  3. 既然网络链路上传送的帧最终都是按照硬件地址找到目的主机的,那为什么我们还要使用抽象的 IP 地址,而不直接使用硬件地址进行
    通信?这样似乎可以免除使用 ARP协议。

    ​ 答:由于全世界存在各式各样的网络,它们使用不同的硬件地址。而要使这些异构网络能够互相通信就需要进行非常复杂的硬件地址转换工作,因此由用户活用户之际来完成这项工作几乎是不可能的事情。但 IP编址把这个问题解决了。连接到互联网的主机只需要各自拥有唯一的 IP 地址,它们之间的通信就像连接到同一个网络那样方便简单,因为上述调用 ARP 的复杂过程都是计算机软件自动进行的,对用户来说是看不见这样的调用过程的。

4.2.5 IP 数据报的格式

计算机网络学习笔记(持续更新)_第10张图片

请添加图片描述

字段名 占几位 计算单位 内容
版本 4 bit IPv4、IPv6
首部长度 4 bit 4 Byte 表示本 IP 数据报首部的长度
区分服务 8 bit 一般没用,有时候用来表明优先级
总长度 16 bit 1 Byte 首部 + 数据的总长度
标识 (identification) 16 bit 相同的标识字段的分片是同一个数据报
每产生一个数据报,计数器值 + 1,所以也可以用来记录产生了多少数据报。
标志 (flag) 3 bit 只有2位有意义 “无意义 DF MF
MF (More Fragment) = 1表示后面还有分片
MF = 0 表示没有分片了
DF (Don’t Fragment) = 1 表示不能分片
DF = 0 表示可以分片
片偏移 13 bit 8 Byte 表明相对于用户数据字段的起点,该片从何处开始 除最后一个数据报片外,所有分片长度一定是 8 字节的整数倍
生存时间 8 bit IP分组的保质期。经过一个路由器-1,变成 0 则丢弃
协议 8 bit 表明数据部分带的是哪一种协议。
方便对方主机的IP 层收到之后知道应该将数据部分交给上层的哪个协议处理
首部检验和 16 bit 只检验首部
源地址 32 bit
目的地址 32 bit
可选字段 0~40B,用来支持排错、测量以及安全等措施。
填充 全0,把首部补成4B的整数倍。

注意:总长度计算单位是 1B;首部长度计算单位是 4B;片偏移计算长度是8B

IP 数据报,然后才是数据部分!

IP数据报分片

片偏移:指出较长分组分片后, 某片在原分组中的相对位置。 以8B为单位。

注意:除了最后一个分片,每个分片长度一定是 8B 的整数倍。

计算机网络学习笔记(持续更新)_第11张图片

总长度 标识 MF DF 片偏移
原始数据报 3820 12345 0 0 0
数据报片1 1420 12345 1 0 0
数据报片2 1420 12345 1 0 175
数据报片3 1020 12345 0 0 350

问:如果数据报片需要再分呢?最大支持 820 字节,该如何处理?

首部检验和

  1. 发送方:将数据报首部划分为很多个 16 位字的序列,并且将检验和字段置零(也要参与运算),然后用反码算数运算把 所有 16位字 相加后,将得到的 和的反码 写入检验和字段。
  2. 接收方:把收到的首部所有 16位字 再使用反码算数运算相加一次。将得到的和取反码结果是 0 代表没有出错

4.2.6 IP 层转发分组的流程

路由表不是将所有本路由器相连的所有主机都记录在路由表中,而是只保留
以下两个最主要的信息:

(目的网络地址,下一条地址)

当然,实际的路由表还会包括一些其他的信息,并不是我们讨论的主要内容。
详见谢仁希《计算机网络》第七版 P132 注 1。

我们一定是根据目的网络地址来确定下一跳路由器

0 一些概念

  1. 特定主机路由:
    由于一些网络连接或路由表排错的需要,或者考虑某种安全问题,我们允许这样的特例存在,直接在路由表中指明一个目的主机,这样可以直接交付。

  2. 默认路由:

    1. 一般应用在一个网络只有很少的对外连接时。
    2. 只要目的网络是其他网络,就一律选择默认路由。

1 分组转发算法归纳

  1. 从数据报的 首部 提取目的主机的 IP地址 D,得出网络地址为 N。
  2. 若 网络地址N 就是与此路由器直接相连的某个网络地址,就进行直接交付,将数据报交付目的主机(当然包括使用 ARP 将目的主机地址 D 转换为具体的硬件地址,把数据报封装成 MAC 帧,再发送此帧)
  3. 若路由表中有目的地址为 D 的特定主机路由,就把数据报传送给路由表中所指明的下一跳路由器;
    否则,执行 4.
  4. 若路由表中有到达 网络N 的路由,则把数据报传送诶路由表中所指明的下一跳路由器;
    否则,执行5.
  5. 若路由表中有一条默认路由,则把数据报传送给路由表中所指明的默认路由器;
    否则,报告转发分组出错。

【注】路由表没有给分组指明到某个网络的完整路径,只给出了下一跳
怎么走,剩下的交给下一跳路由器。


4.3 划分子网和构造超网(无分类编址CIDR)

4.3.1 划分子网

1.基本思路

1)一个单位自己将所属的物理网络划分为若干个子网,本单位以外的网络 看不见这个网络是有多少个子网组成,对外仍然表现为一个网络
(子网掩码不变,且比内部的子网掩码数字要小)

2)从网络的主机号借用若干位作为子网号(subnet-id):

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

3)凡是从其他网络发送给本单位某主机的 IP 数据报,仍然是根据 IP 数据 报的网络号找到本单位网络的路由器。但此路由器收到 IP 数据报后,
再按目的网络号和子网号找到目的主机,然后交付。

2.子网掩码

极力推荐使用连续的 1,以免发生不必要的错误。

使用子网掩码的好处:不管有没有划分子网,只要把子网掩码和 IP 地址逐位相与(AND),就可以立即得出网络地址来,然后就可以交付啦。
【注】“与” 运算:同时为 1,结果才为 1,否则为 0。

所有的网络必须使用子网掩码,且路由器的路由表也必须有子网掩码这一栏。
如果一个网络不划分子网, 就使用默认的子网掩码。
【注】A类网络默认子网掩码:255.0.0.0;
B类网络默认子网掩码:255.255.0.0;
C类网络默认子网掩码:255.255.255.0;

子网掩码是一个网络或一个子网的重要属性。

对于一个B类网络为例 “子网号的位数” 中 0,1,15,16 没有意义。

现在随着无分类域间路由选择 CIDR 的广泛使用,全 1和全 0的子网号也可以使用了。
【注】这里说的是子网号,不是主机号

子网号位数越,每一个子网上可连接的主机就越
子网号位数越,每一个子网上可连接的主机就越

划分子网增加了灵活性,却减少了能够连接在网络上的主机总数。

同样的 IP 地址和不同的子网掩码有时可以得出相同的网络地址。

4.3.2 使用子网时分组的转发

子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码
下一跳地址

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

  1. 从数据报的 首部 提取目的主机的 IP地址 D。
  2. 先判断是否为直接交付。
    对路由器直接相连的网络逐个检查:用各网络的子网掩码和 D 逐位 相 “与” (AND),看结果和相应的网络地址是否匹配。
    若匹配,则直接交付,转发结束。(当然包括使用 ARP 将目的 IP地址 D 转换为具体的硬件地址,把数据报封装成 MAC 帧,再发此帧)
    若不匹配,执行 3.
  3. 若路由表中有目的地址为 D 的特定主机路由,就把数据报传送给路由表中所指明的下一跳路由器;
    否则,执行 4.
  4. 对路由表中的每一行,用其中的子网掩码和 D 逐位 相 “与” (AND),其结果为 N。若 N 和该行目的网络地址匹配,则交付给指明的下一跳路由器。
    否则,执行5.
  5. 若路由表中有一条默认路由,则把数据报传送给路由表中所指明的默认路由器;
    否则,报告转发分组出错。

总的来说,因为子网多了子网掩码,所以相比较 4.2.6,在第二步和第四步多了和子网掩码逐位相 “与” (AND)的操作,而不是直接得出网络地址 N。

4.3.3 无分类编址CIDR(构造超网)

0. 特点

1)消除了传统的A类,B类和C类地址以及划分子网的概念。

2)**2.**融合子网地址与子网掩码,方便子网划分。 CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。

1. 网络前缀

主机号 全0 表示 “本网络”
全1 表示 广播地址

如何计算一个地址块的最小和最大地址?
答:直接将主机号全部置为 0 就是最小地址,全部置为 1 就是最大地址。

2. 构成超网

1)将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合

2)方法:将网络前缀缩短(所有网络地址取交集)。

例题:

计算机网络学习笔记(持续更新)_第12张图片

3. 最长前缀匹配

使用CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由前缀越长,地址块越小,路由越具体

计算机网络学习笔记(持续更新)_第13张图片

答:选B,下一跳是 R2.

4.4 网际报文控制协议 ICMP

计算机网络学习笔记(持续更新)_第14张图片

网际报文控制协议 ICMP 是为了更有效地转发IP数据报和提高交付成功的机会…

ICMP协议支持主机或路由器:
产生差错(或异常)报告,或者用于网络探询

计算机网络学习笔记(持续更新)_第15张图片

4.4.1 ICMP差错报告报文(5种)

  1. 终点不可达:
    当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
    无法交付
  2. 时间超过:
    当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还 要向源点发送时间超过报文。当终点在预先规定的时间内不能收到 一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并 向源点发送时间超过报文。
    T T L = 0 TTL=0 TTL=0
  3. 参数问题:
    当路由器或目的主机收到的数据报的首部中有的字段的值不正确
    时,就丢弃该数据报,并向源点发 送参数问题报文。
    首部字段有问题
  4. 改变路由(重定向):
    路由器把改变路由报文发送给主机,让主机知道下次应将数据报
    发送给另外的路由器 (可通过更好的路由)。
    值得更好的路由

ICMP差错报告报文数据字段

计算机网络学习笔记(持续更新)_第16张图片

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

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

4.4.3 ICMP询问报文

  1. 回送请求和回答报文:
    主机或路由器向特定目的主机发出的询问,收到此报文的主机必须
    给源主机或路由器发送 ICMP 回送回答报文。
    测试目的站是否可达以及了解其相关状态(PING)。
  2. 时间戳请求和回答报文:
    请某个主机或路由器回答当前的日期和时间。
    用来进行时钟同步和测量时间

4.4.4 ICMP的应用

PING:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文

Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。(发送 TTL 值从1开始递增,同一个数据报要发三遍)

4.5 互联网的路由选择协议

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

1. 理想的路由算法

  1. 算法必须是正确和完整的
  2. 算法在设计上应该简单
  3. 算法应该能适应通信量和网络拓扑的变化,要有自适应性
  4. 算法应该具有稳定性
  5. 算法应该是公平的
  6. 算法应该是最佳的

最佳路由:“最佳” 只能是相对于某一种特定要求下得出的较为合理的选择。

2. 分层次的路由选择协议

引子:
(1)因特网规模很大 。
(2)许多单位不想让外界知道自己的路由选择协议,但还想连入因特网。
(如一个 ISP)

自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度 量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。
一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通

路由选择协议分为

  1. 内部网关协议 IGP :如 RIP、OSPF。
  2. 外部网关协议 EGP:如 BGP-4。用来将路由选择信息传递到另一个
    自治系统中去。

不同的 自治系统AS 可以自行决定使用哪种内部网关协议,(如RIP 和 OSPF)但是通过外部网关协议就可以将这两个不尽相同的自治系统连通起来;同时每个自治系统除了运行本系统内部的路由选择协议外,还要运行自治系统间的路由选择协议/外部网关协议(BGP-4)。

4.5.2 内部网关协议 RIP

计算机网络学习笔记(持续更新)_第17张图片

RIP 和 OSPF 是用于自治系统 AS 内部使用的 路由选择协议。

RIP 是一种分布式的基于距离向量的路由选择协议,是互联网的协议标准,最大优点是简单
RIP 协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。
距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路 由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达

RIP协议只适用于小互联网。

1. RIP协议和谁交换?多久交换一次?交换什么?

1.仅和相邻路由器交换信息。
2.路由器交换的信息是自己的路由表
3. 30 30 30交换一次路由信息,然后路由器根据新信息更新路由表。若超过 180 s 180s 180s 没收到邻居路由器的通告,则判定邻居无了,并更新自己路由表,将邻居距离设为16(不可达)。

路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻 路由器交换并更新路由信息。

经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址, 即“收敛”。

2. 距离向量算法

1.修改相邻路由器发来的RIP报文中所有表项;对地址为X的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为X,并把所有的“距离”字段**+1**。

计算机网络学习笔记(持续更新)_第18张图片

2.对修改后的RIP报文中的每一个项目,进行以下步骤:
(1)R1路由表中若没有Net3,则把该项目填入R1路由表
(2)R1路由表中若有Net3,则查看下一跳路由器地址:
若下一跳是X,则用收到的项目替换源路由表中的项目;
若下一跳不是X, 原来距离比从X走的距离远则更新,否则不作处理。

3.若180s还没收到相邻路由器X的更新路由表,则把 X 记为不可达的路由器,即把距离设置为16。

4.返回。

计算机网络学习笔记(持续更新)_第19张图片

RIP是应用层协议, 使用UDP传送数据。

一个RIP报文最多可包括25 个路由,超过25个路由的话,就再用一 个RIP报文传送。

RIP协议好消息传得快,坏消息传得慢。

计算机网络学习笔记(持续更新)_第20张图片

R1 说:“我到网 1 的距离是 16 (表示无法到达), 是直接交付。”
R2 在收到 R1 的更新报文之前,还发送原来的报文, 因为这时 R2 并不知道 R1 出了故障。

R1 收到 R2 的更新报文后,误认为可经过 R2 到 达网 1,于是更新自己的路由表,说:“我到 网 1 的距离是 3,下一跳经过 R2”。然后将此更 新信息发送给 R2

计算机网络学习笔记(持续更新)_第21张图片

计算机网络学习笔记(持续更新)_第22张图片

4.5.3 内部网关协议 OSPF

开放最短路径优先OSPF协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;
“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。 OSPF最主要的特征就是使用分布式的链路状态协议

1. OSPF的特点

和谁交换?
1.使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。也就是广播
最终整个区域内所有路由器都得到了这个信息的一个副本。

交换什么?
2.发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度 量/代价——费用、距离、时延、带宽等)。

多久交换?
3.只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。

最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。

2. 链路状态路由算法

1.每个路由器发现它的邻居结点【HELLO问候分组】,并了解邻居节点的网络地址。

2.设置到它的每个邻居的成本度量metric。

3.构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。

4.如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR链路状态请求分组】 请求自己没有的和比自己更新的信息。

5.收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新。

6.更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认。
只要一个路由器的链路状态发生变化:
5.泛洪发送【LSU链路状态更新分组】进行更新。

7.使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。

3. OSPF 的区域

计算机网络学习笔记(持续更新)_第23张图片

4. OSPF 的分组

OSPF直接用 IP数据报 传送。

计算机网络学习笔记(持续更新)_第24张图片

5. OSPF 的其他特点

1.每隔30min,要刷新一次数据库中的链路状态。

2.由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因 此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。

3.OSPF不存在坏消息传的慢的问题,它的收敛速度很快

4.5.4 外部网关协议 BGP

与谁交换❓ 与其他AS的邻站BGP发言人交换信息
交换什么 交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS
多久交换 发生变化时更新有变化的部分。

计算机网络学习笔记(持续更新)_第25张图片

1. BGP协议交换信息的过程

BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS。当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。

BGP 发言人交换路径向量:
自治系统 AS2 的 BGP 发言人通知主干网 AS1的 BGP 发言人:“要到达网络 N1、 N2、N3 和 N4 可经过 AS2。”
主干网还可发出通知:“要到达网络 N5、N6 和 N7 可沿路径(AS1, AS3)。”

2. BGP协议报文格式

一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,即通过TCP传送,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。

BGP是应用层协议,借助TCP传送。

3. BGP协议特点

BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。

在 BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。

4. BGP-4的四种报文

1.OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方.
2.UPDATE(更新)报文:通告新路径或撤销原路径。 (是BGP的核心内容
3.KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性;也作为OPEN的确认。
4.NOTIFICATION(通知)报文:报告先前报文的差错;也被用于关闭连接。

KEEPALIVE报文只有 BGP 的19字节长的通用首部。

UPDATE(更新)报文,撤销时可以一次撤销好几条,但是增加新路由时,每个更新报文只能增加一条。

4.5.5 三种路由协议比较

RIP 是一种分布式的基于距离向量的内部网关路由选择协议,通过广播 UDP 报文来交换路由信息。

OSPF 是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP

BGP 是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用 TCP

可以记为: RUOIBT

协议 RIP OSPF BGP
类型 内部 内部 外部
路由算法 距离-向量 链路状态 路径-向量
传递协议 UDP IP TCP
路径选择 跳数最少 代价最低 较好,非最佳
交换结点 和本结点相邻的路由器 网络中所有路由器 和本结点相邻的路由器
交换内容 当前本路由器知道的全部信息,即自己的路由表 与本路由器相邻的所有路由器的链路状态 首次:整个路由表
非首次:有变化的部分

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

4.6.1 虚拟专用网 VPN

0 先介绍一些概念

1)本地地址 & 全球地址

1.仅在机构内部,供机构内部使用的计算机自行分配的 IP 地址,称为本地地址
2.与本地地址对立的就是全球唯一的 IP 地址:全球地址

2)专用地址

只能用于一个机构的内部通信,而不能用于和互联网上的主机通信。

如:

  1. 10.0.0.0 到 10.255.255.255 (或记为 10.0.0.0/8,是1个A类)
  2. 172.16.0.0 到 172.31.255.255(或记为 172.16.0.0/12,是16个B类)
  3. 192.168.0.0 到 192.168.255.255(或 192.168.0.0/16,是256个C类)

专用地址只能用作本地地址而不能用作全球地址。
在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。

3)专用互联网(专用网)

这些专用地址可以被重复使用,因为仅在机构内部使用。也叫做可重用地址

1 虚拟专用网

概念
利用公用的互联网作为本机构各个专用网之间的通信载体,这样的网络称为:虚拟专用网 VPN (Virtual Private Network)。

仅用作本机构内部主机通信,而不是用于和网络外非本机构的主机通信。
由于有保密的要求,所有通过互联网传送的数据都必须经过加密

VPN 只是在效果上和真正的专用网一样。

2 使用隧道技术实现虚拟局域网

计算机网络学习笔记(持续更新)_第26张图片

计算机网络学习笔记(持续更新)_第27张图片

3 内联网 intranet 和外联网 extranet

  • 它们都是基于 TCP/IP 协议的。

  • 由部门 A B 的内部网络所构成的虚拟专用网 VPN 又称为**内联网** (intranet),表示部门 A B 都是在同一个机构的内部

  • 一个机构和某些外部机构共同建立的虚拟专用网 VPN 又称为 外联网 (extranet)

4 第二种类型的 VPN —— 远程接入 VPN

  • 远程接入 VPN (remote access VPN)可以满足外部流动员工访问公司网络的需求。
  • 在外地工作的员工拨号接入互联网,而驻留在员工 PC 机中的 VPN 软件可在员工的 PC 机和公司的主机之间建立 VPN 隧道,因而外地员工与公司通信的内容是保密的,员工们感到好像就是使用公司内部的本地网络。

4.6.2 网络地址转换 NAT

0 引子

问题
​ 在专用网上使用专用地址的主机如何与互联网上的主机通信?
​ (并不需要加密)

解决

  1. 再申请一些全球 IP地址。但这在很多情况下是不容易做到的。
  2. 采用 网络地址转换NAT这是目前使用得最多的方法

1 网络地址转换 NAT

  • 需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球IP地址

  • 所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。

计算机网络学习笔记(持续更新)_第28张图片

地址转换过程
  • 内部主机 A 用本地地址 I P A IP_A IPA 和互联网上主机 B 通信所发送的数据报必须经过 NAT 路由器。
  • NAT 路由器将数据报的源地址 I P A IP_A IPA 转换成全球地址 I P G IP_G IPG ,并把转换结果记录到NAT地址转换表中,目的地址 I P B IP_B IPB 保持不变,然后发送到互联网
  • NAT 路由器收到主机 B 发回的数据报时,知道数据报中的源地址是 I P B IP_B IPB 而目的地址是 I P G IP_G IPG
  • 根据 NAT 转换表,NAT 路由器将目的地址 I P G IP_G IPG 转换为 $ ,转发给最终的内部主机 A。

可以看出,在内部主机与外部主机通信时,在NAT路由器上发生了两次地址转换:

  1. 离开专用网时:替换源地址,将内部地址替换为全球地址;
  2. 进入专用网时:替换目的地址,将全球地址替换为内部地址;
方向 字段 旧的IP地址 新的IP地址
IP地址 192.168.0.3 172.38.1.5
目的IP地址 172.38.1.5 192.168.0.3
源IP地址 192.168.0.7 172.38.1.6
目的IP地址 172.38.1.6 192.168.0.7
  • 当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可以同时有 n 台主机接入到互联网。这样就可以使专用网内较多数量的主机,轮流使用 NAT 路由器有限数量的全球 IP 地址。
  • 通过 NAT 路由器的通信必须由专用网内的主机发起。专用网内部的主机不能充当服务器用,因为互联网上的客户无法请求专用网内的服务器提供服务。

2 带端口号的网络地址转换 NAPT

  • 为了更加有效地利用 NAT 路由器上的全球IP地址,现在常用的 NAT 转换表把运输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个 NAT 路由器上的全球 IP 地址,因而可以同时和互联网上的不同主机进行通信。
  • 使用端口号的 NAT 叫做网络地址与端口号转换NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)。
方向 字段 旧的IP地址和端口号 新的IP地址和端口号
源IP地址:TCP源端口 192.168.0.3:30000 172.38.1.5:40001
源IP地址:TCP源端口 192.168.0.4:30000 172.38.1.5:40002
目的IP地址:TCP目的端口 172.38.1.5:40001 192.168.0.3:30000
目的IP地址:TCP目的端口 172.38.1.5:40002 192.168.0.4:30000

NAPT把专用网内不同的源 IP 地址,都转换为同样的全球 IP 地址。但对源主机所采用的 TCP 端口号(不管相同或不同),则转换为不同的新的端口号。因此,当 NAPT 路由器收到从互联网发来的应答时,就可以从 IP 数据报的数据部分找出运输层的端口号,然后根据不同的目的端口号,从 NAPT 转换表中找到正确的目的主机。

你可能感兴趣的:(考研,计算机网络)