概要

前言:
实习期间靠着编程基础(?)在某企担任主机管理员 (副), 日常工作主要为内部员工定制一些提高效率的程序, 兼顾处理公司内网络异常。在长期的单人开发下, 决定转行开始朝运维方向发展。
但网络通讯那块的相关知识对于我来说是一无所知, 在盲目的刷题下挫败感不断增加, 所以定制一个简单的学习计划, 无论考试结果如何, 都能逐渐自律起来。

渠道:全国计算机技术与软件专业技术资格(水平)考试
目标:网络工程师
资料:《网络工程师 第五版》老子软考app
计划:学习网络工程师相关知识, 每日对学习内容做好笔记, 将错题和解析进行记录。
考试时间:2021-05-29

部分文献:

记录

2021-05-03

数据的表示

计算机中 1 字节 (Byte) 占 8 位 (bit) 二进制数

进制:

  • 表示方法:二进制、十进制(D)、八进制(O)、十六进制(H)

  • 取值范围:(0-1)₂ 、(0-7)₈ 、(0-9)₁₀ 、(0-E)₁₆

  • 进制转换(注:位数从0开始计算):

    • 二进制 -> 十进制:根据所在位数-1次方求和
      101001 -> 1×2⁵+0×2⁴+1×2³+0×2²+0×2¹+1×2⁰ -> 32+0+8+0+0+1 = 41

    • 十进制 -> 二进制:不断除2取余数后反向组合/加法反推
      77 -> 77 % 2 = 38(余1) % 2 = 19(余0) % 2 = 9(余1) % 2 = 4(余1) % 2 = 2(余0) % 2 = 1(余0) % 2 = 0 (余1) -> 1001101
      77 -> 64+8+4+1 -> 2⁶+2³+2²+2⁰ -> 1001101

    • 二进制 -> 八进制:从右到左每三位一组计算 (未满 3 位数补零处理)
      1100100 -> 001 100 100 -> 2 8 8 -> (144)₈

    • 二进制 -> 十六进制:从右到左每四位一组计算 (未满 4 位数补零处理)
      1001110 -> 0100 1110 -> 4 14 -> (4E)₁₆

    • 十进制 -> 八进制/十六进制:推荐先转换为二进制

编码:

首位是符号位, 0 无符号 (正数) , 1 有符号(负数), 计算机使用 补码 存储数值

  • 原码:符号位分辨正负数, 数字位二进制表示数值
    取值范围:-(2ⁿ⁻¹-1) ~ 2ⁿ⁻¹-1
    1:0 0000001
    -1:1 0000001
    1+(-1):1 0000010
    0:0 0000000/1 0000000

  • 反码:符号位分辨正负数, 数值位二进制表示数值;若数值为负数, 原码的数值位按位取反
    取值范围:-(2ⁿ⁻¹-1) ~ 2ⁿ⁻¹-1
    1:0 0000001
    -1:1 1111110
    1+(-1):1 1111111
    0:0 0000000/1 1111111

  • 补码:符号位分辨正负数, 数值位二进制表示数值;若数值为负数, 反码的数值位上加一
    取值范围:-2ⁿ⁻¹ ~ 2ⁿ⁻¹-1
    1:0 0000001
    -1:1 1111111
    1+(-1):0 0000000
    0:0 0000000/1 0000000

补码转原码:
正数:完全一致
负数:数值位减一后取反/数值位取反后加一

2021-05-04

逻辑运算

  • 或:两者其中一个为真, 结果为真
  • 与:两者都为真, 结果为真
  • 非:真变假, 假变真
  • 异或:两者相同为假, 不同则为真

计算机结构 (冯·诺伊曼结构)

主机:

  • 主存储器

  • CPU

    • 运算器

      • 算术逻辑单元 (Arithmetic and Logic unit, ALU)
        用于算术运算与逻辑运算

      • 累加寄存器 (accumulator, AC)
        用于暂存计算结果

      • 数据缓冲寄存器 (Data Register, DR)
        作为CPU和主存、外设之间信息传输的中转站, 用以弥补CPU和主存、外设之间操作速度上的差异

      • 状态条件寄存器 (Program Status Word, PSW)
        表征当前运算的状态及程序的工作方式

    • 控制器

      • 程序计数器 (Program Counter, PC)
        用于指出下一条指令在主存储器中的地址

      • 指令寄存器 (Instruction register, IR)
        用来保存当前正在执行的一条指令

      • 指令译码器 (Instruction Decoder, ID)
        对指令中的操作码部分进行译码, 向具体操作部件执行控制命令

      • 时序部件
        为指令执行产生实时性

  • 输入系统

  • 输出系统

总线:数据交互的通道 (包括数据总线、地址总线、控制总线)


寻址方式

指令分为操作码与地址码

操作码:该操作的代码
地址码:操作数的地址

常见寻址方式:

  1. 立即寻址
    指令的地址字段指出的不是操作数的地址, 而是操作数本身

  2. 变址寻址
    把CPU中某个变址寄存器的内容与偏移量 D 相加来形成操作数有效地址

  3. 直接寻址
    地址码部分直接指出操作数在内存的地址

  4. 间接寻址
    进过两次或以上的访存操作才能得到操作数的地址

  5. 寄存器寻址
    当操作数不放在内存中, 而是放在 CPU 的通用寄存器中时, 指令中给出的操作数地址不是内存的地址单元号, 而是通用寄存器的编号

  6. 寄存器间接寻址
    指令格式中的寄存器内容不是操作数, 而是操作数的地址, 该地址指明的操作数在内存中


CISC 与 RISC

  • CISC
    1. 指令系统类型:复杂指令集
    2. 指令:数量多, 使用频率差别大, 可变长格式
    3. 实现方式:微程序控制技术
    4. 其他:偏向于用户编程
  • RISC
    1. 指令系统类型:精简指令集
    2. 指令:数量少, 定长格式, 大部分作为单周期指令, 操作寄存器只有Load/Stroe 操作内存
    3. 实现方式:增加通用寄存器;硬布线逻辑控制为主, 适合采用流水线
    4. 其他:偏向于机器高效性

2021-05-05

流水线模式

流水线

流水线模式:将多条相同指令中的不同步骤并行执行

流水线完成时间(Tk):(t₁ + t₂ + t₃ + ... + tₙ) + (N - 1)T
顺序执行完成时间(Ts): (t₁ + t₂ + t₃ + ... + tₙ)N
吞吐率(Tp):N / Tk
最大吞吐率:1 / T
加速比(S):Ts / Tk
效率:工作步骤与总步骤比值

tₙ 步骤n所花时间
N 指令条数
T 流水线周期 (即最长步骤所花时间)
Tk 流水线完成时间
Ts 顺序执行完成时间

例:
如图所示, 若各步骤所花时间为:Fetch (1ns) 、Decode (2ns) 、Execute (4ns) 、Memory (2ns) 、Write (3ns) , 求该流水线周期、完成时间、吞吐率、最大吞吐率、加速比和前三条指令的效率

1
2
3
4
5
6
7
8
9
10
T = Execute(4ns)= 4ns
Tk = (1 + 2 + 4 + 2 + 3) + (7 - 1) × 4 = 36ns
Tp = (7 / 36)ns
MaxTp = (1 / 4)ns
S = (1 + 2 + 4 + 2 + 3) × 7 / 36 = (84 / 36)ns

效率:
N1 = (1 / 5) = 20%
N2 = (2 / 5) = 40%
N3 = (3 / 5) = 60%

2021-05-06

存储系统结构

存储系统结构图

主存:随机存储器 RAM (掉电丢失) 和只读存储器 ROM (掉电不丢失)
缓存:Cache 高速缓存存储器, 实现缓和 CPU 和主存之间的速率矛盾

存储器读取方式:

  • 顺序存取 (磁带)
  • 直接存取 (硬盘)
  • 随机存取 (内存)
  • 相联存取 (Cache)

其中前三种都根据数据地址存取, 只有相联存取根据内容存取。


主存储器组成

存储器总容量是由一片或多片存储芯片配以控制电路构成, 其容量为 W × B , W 是存储单元 (word, 字) 的数量, B 表示每个 word 由多少 bit (位)组成。

例:按字节编址, 地址从 A4000H - CBFFFH, 芯片容量为 32K × 8bit, 求一共多少芯片?

1
2
3
地址所包含的字节 = (CBFFFH - A4000H) + 1H = CC0000H - AA4000H = 28000H = 101000 0000 0000 0000 = 160KB
160K × 8bit / 32K × 8bit = 5个


Cache

用于弥补 CPU 与主存储器速度之间的差异
平均访问时间公式: t3 = h × t1 + (1 - h) × t2

  • h : 命中率
  • t1 : Cache 访问时间
  • t2 :主存储器访问时间

Cache 淘汰算法:

  1. 先进先出算法
  2. 最近最少使用算法
  3. 随机算法

磁盘

硬盘接口


RAID (独立硬盘冗余阵列)

磁盘阵列比较表

独立硬盘冗余阵列, 旧称廉价磁盘冗余阵列, 简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来, 成为一个或多个硬盘阵列组, 目的为提升性能或资料冗余, 或是两者同时提升。

JBOD(Just a Bunch Of Disks)

JBOD

将数个物理硬盘, 在操作系统中合并成一个逻辑硬盘, 以直接增加容量

RAID 0

RAID 0

它将两个以上的磁盘并联起来, 成为一个大容量的磁盘。在存放数据时, 分段后分散存储在这些磁盘中, 因为读写时都可以并行处理, 所以在所有的级别中, RAID 0的速度是最快的。但是RAID 0既没有冗余功能, 也不具备容错能力, 如果一个磁盘(物理)损坏, 所有数据都会丢失, 危险程度与JBOD相当

RAID 1

RAID 1

两组以上的N个磁盘相互作镜像, 在一些多线程操作系统中能有很好的读取速度, 理论上读取速度等于硬盘数量的倍数, 与RAID 0相同。另外写入速度有微小的降低。只要一个磁盘正常即可维持运作, 可靠性最高。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时, 镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份, 所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1, 仅算一个磁盘的容量, 是所有RAID中磁盘利用率最低的一个级别

如果用两个不同大小的磁盘建RAID 1, 可用空间为较小的那个磁盘, 较大的磁盘多出来的空间也可以分割成一个区来使用, 不会造成浪费

RAID 2

RAID 2

这是RAID 0的改良版, 以汉明码(Hamming Code)的方式将数据进行编码后分割为独立的比特, 并将数据分别写入硬盘中。因为在数据中加入错误修正码(ECC, Error Correction Code), 所以数据整体的容量会比原始数据大一些

RAID 2最少要三台磁盘驱动器方能运作

RAID 3

RAID 3

采用Bit-interleaving(数据交错存储)技术, 它需要通过编码再将数据比特分割后分别存在硬盘中, 而将同比特检查后单独存在一个硬盘中, 但由于数据内的比特分散在不同的硬盘上, 因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作, 所以这种规格比较适于读取大量数据时使用

RAID 4

RAID 4

它与RAID 3不同的是它在分割时是以区块为单位分别存在硬盘中, 但每次的数据访问都必须从同比特检查的那个硬盘中取出对应的同比特数据进行核对, 由于过于频繁的使用, 所以对硬盘的损耗可能会提高。(块交织技术, Block interleaving)

RAID 5

RAID 5

RAID Level 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分割)技术

RAID 5至少需要三个硬盘, RAID 5不是对存储的数据进行备份, 而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上, 并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后, 可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障, 但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度, 只是因为多了一个奇偶校验信息, 写入数据的速度相对单独写入一块硬盘的速度略慢, 若使用“回写缓存”可以让性能改善不少。同时由于多个数据对应一个奇偶校验信息, RAID 5的磁盘空间利用率要比RAID 1高, 存储成本相对较便宜

RAID 6

RAID 6

与RAID 5相比, RAID 6增加第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法, 数据的可靠性非常高, 任意两块磁盘同时失效时不会影响数据完整性。RAID 6需要分配给奇偶校验信息更大的磁盘空间和额外的校验计算, 相对于RAID 5有更大的IO操作量和计算量, 其“写性能”强烈取决于具体的实现方案, 因此RAID 6通常不会通过软件方式来实现, 而更可能通过硬件方式实现

同一数组中最多容许两个磁盘损坏。更换新磁盘后, 资料将会重新算出并写入新的磁盘中
RAID 6在硬件磁盘阵列卡的功能中, 也是最常见的磁盘阵列等级

RAID 7

RAID 7并非公开的RAID标准, 而是Storage Computer Corporation的专利硬件产品名称, RAID 7是以RAID 3及RAID 4为基础所发展, 但是经过强化以解决原来的一些限制。另外, 在实现中使用大量的缓冲存储器以及用以实现异步数组管理的专用即时处理器, 使得RAID 7可以同时处理大量的IO要求, 所以性能甚至超越了许多其他RAID标准的实现产品。但也因为如此, 在价格方面非常的高昂

RAID 10

RAID 10

RAID 10是先分割资料再镜像, 再将所有硬盘分为两组, 视为以RAID 1作为最低组合, 然后将每组RAID 1视为一个“硬盘”组合为RAID 0运作

RAID 01

RAID 01

RAID 01则是跟RAID 10的程序相反, 是先镜像再将资料到分割两组硬盘。它将所有的硬盘分为两组, 每组各自构成为RAID 0作为最低组合, 而将两组硬盘组合为RAID 1运作

当RAID 10有一个硬盘受损, 其余硬盘会继续运作。RAID 01只要有一个硬盘受损, 同组RAID 0的所有硬盘都会停止运作, 只剩下其他组的硬盘运作, 可靠性较低。如果以六个硬盘建RAID 01, 镜像再用三个建RAID 0, 那么坏一个硬盘便会有三个硬盘离线。因此, RAID 10远较RAID 01常用, 零售主板绝大部分支持RAID 0/1/5/10, 但不支持RAID 01

RAID 50

RAID 50

RAID 5与RAID 0的组合, 先作RAID 5, 再作RAID 0, 也就是对多组RAID 5彼此构成Stripe访问。由于RAID 50是以RAID 5为基础, 而RAID 5至少需要3颗硬盘, 因此要以多组RAID 5构成RAID 50, 至少需要6颗硬盘。以RAID 50最小的6颗硬盘配置为例, 先把6颗硬盘分为2组, 每组3颗构成RAID 5, 如此就得到两组RAID 5, 然后再把两组RAID 5构成RAID 0。

RAID 50在底层的任一组或多组RAID 5中出现1颗硬盘损坏时, 仍能维持运作, 不过如果任一组RAID 5中出现2颗或2颗以上硬盘损毁, 整组RAID 50就会失效。

RAID 50由于在上层把多组RAID 5构成Stripe, 性能比起单纯的RAID 5高, 容量利用率比RAID5要低。比如同样使用9颗硬盘, 由各3颗RAID 5再组成RAID 0的RAID 50, 每组RAID 5浪费一颗硬盘, 利用率为(1-3/9), RAID 5则为(1-1/9)。

RAID 60

RAID 60

RAID 6与RAID 0的组合:先作RAID 6, 再作RAID 0。换句话说, 就是对两组以上的RAID 6作Stripe访问。RAID 6至少需具备4颗硬盘, 所以RAID 60的最小需求是8颗硬盘。

由于底层是以RAID 6组成, 所以RAID 60可以容许任一组RAID 6中损毁最多2颗硬盘, 而系统仍能维持运作;不过只要底层任一组RAID 6中损毁3颗硬盘, 整组RAID 60就会失效, 当然这种情况的概率相当低。

比起单纯的RAID 6, RAID 60的上层透过结合多组RAID 6构成Stripe访问, 因此性能较高。不过使用门槛高, 而且容量利用率低是较大的问题。


系统可靠性

串联与并联系统

串联系统

串联系统是组成系统的所有单元中任一单元失效就会导致整个系统失效的系统
可靠性计算公式:R = R1 × R2 × R3 × ··· × Rn, Rn : n部件的可靠性

并联系统

并联系统指的是组成系统的所有单元都失效时才失效的系统
可靠性计算公式:R = 1 - (1 - R1)(1 - R2)(1 - R3) ··· (1 - Rn), Rn : n部件的可靠性

2021-05-07

操作系统

程序设计语言

  • 机器语言(二进制)
  • 汇编语言
  • 高级语言 (如:C 、C++、 CSharp、…)
    • 编译程序
    • 翻译程序
  • 4GL 语言 (如:SQL 语句)

进程管理

进程状态

进程状态

死锁

死锁

死锁:两个或两个以上的进程在执行过程中, 由于竞争资源或者由于彼此通信而造成的一种阻塞的现象, 若无外力作用, 它们都将无法推进下去

形成死锁的原因大致分为以下四种:

  • 互斥
  • 保持和等待
  • 不剥夺
  • 环路等待

解决死锁方法:

  • 死锁预防 (一次性进行分配)
  • 死锁避免 (对资源请求数进行分离)
  • 死锁检测 (设定时间与状态, 检测到后执行死锁解除)
  • 死锁解除 (剥夺)
银行家算法(有借有还)

银行家算法

银行家算法是最具代表性的避免死锁的算法。在银行中, 客户申请贷款的数量是有限的, 每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量, 在满足所有贷款要求时, 客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时, 都应尽量满足客户的需要。在这样的描述中, 银行家就好比操作系统, 资金就是资源, 客户就相当于要申请资源的进程

互斥与同步

互斥:依次完成进程
同步:同时完成进程

PV 操作:
信号量(S):操作的计数器, 分为互斥信号量 (进程共用计数器, 常用于多缓冲区)与同步信号量(各进程单独计数器, 常用于单缓冲区)
P 操作:使 S = S - 1, 若 S >= 0, 则该进程继续执行, 否则进程排入等待队列
V 操作:使 S = S + 1, 若 S <= 0, 唤醒等待队列中的一个进程


存储管理

页式存储
路径

路径

页式存储管理:页式管理是一种内存空间存储管理的技术, 页式管理分为静态页式管理和动态页式管理。分页的基本思想是把程序的逻辑空间和内存的物理空间按照同样的大小划分成若干页面, 并以页面为单位进行分配

页面置换算法

  • 先进先出 FIFO
  • 最佳置换法 OPI
  • 最近最少使用置换法 LRU

文件管理

路径

绝对路径:本地路径是指文件在硬盘上真正存在的路径
相对路径:相对路径相对路径就是相对于当前文件的路径


设备管理

数据传输控制方式:

  • 程序控制方式
  • 程序中断方式
  • DMA 方式
  • I/O 通道

2021-05-08

软件开发

软件生命周期

  • 计划时期
    • 问题定义
      确定好要解决的问题是什么
    • 可行性研究
      确定该问题是否存在一个可以解决的方案
  • 开发时期
    • 需求分析
      深入具体的了解用户的需求, 在所开发的系统要做什么这个问题上和用户想法完全一致
    • 总体设计
      确定程序由哪些模块组成以及模块之间的关系
    • 详细设计
      实现系统的具体工作, 编写详细规格说明, 程序员可以根据它们写出实际的程序代码
    • 编码
    • 测试
  • 运行时期(周期最长)
    • 维护
      通过各种必要的维护活动使系统持久的满足用户的需求。主要分为 改正性维护、适应性维护、完善性维护、预防性维护

软件开发模型

  1. 边做边改型

    没有规格说明, 也没有经过设计, 软件随着客户的需要一次又一次地不断被修改

  2. 瀑布模型
    瀑布模型

    严格按照线性方式进行, 当前活动接受上一项活动的工作结果, 实施完成所需的工作内容。当前活动的工作结果需要进行验证, 如果验证通过, 则该结果作为下一项活动的输入, 继续进行下一项活动, 否则返回修改

  3. V 模型
    V 模型

    进度并不会直线移动, 而是在实施和开发后逐渐上升

  4. 螺旋模型
    螺旋模型

    强调了其他模型所忽视的风险分析, 特别适合于大型复杂的系统。螺旋模型沿着螺线进行若干次迭代

  5. 原型化模型

    建造一个快速原型, 实现客户或未来的用户与系统的交互, 用户或客户对原型进行评价, 进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求, 开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品

  6. 演化模型

    根据用户的基本需求, 通过快速分析构造出该软件的一个初始可运行版本, 这个初始的软件通常称之为原型, 然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进, 获得原型的新版本。重复这一过程, 最终可得到令用户满意的软件产品。采用演化模型的开发过程, 实际上就是从初始的原型逐步演化成最终软件产品的过程

  7. 增量模型
    增量模型

    软件被作为一系列的增量构件来设计、实现、集成和测试, 每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成.增量模型在各个阶段并不交付一个可运行的完整产品, 而是交付满足客户需求的一个子集的可运行产品

  8. 喷泉模型
    喷泉模型

    生存期的各个阶段可以相互重叠和多次反复, 而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来, 可以落在中间, 也可以落在最底部

  9. 智能模型
    智能模型

    智能模型拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等), 每个工具都能使开发人员在高层次上定义软件的某些特性, 并把开发人员定义的这些软件自动地生成为源代码

软件测试

划分软件系统模块时应做到高内聚、低耦合

测试方式

  • 动态测试

    • 黑盒测试
      只关注程序的输入输出, 不关注运行过程

    • 白盒测试
      关注运行过程, 分为逻辑驱动测试、路径测试、结构测试

    • 灰盒测试
      于黑盒与白盒之间

  • 静态测试

    程序员自查或编译器审查代码

测试种类

  1. 验收测试
    有效性测试、软件配置审查

  2. 系统测试
    恢复测试、安全性测试、强度测试、性能测试、可靠性测试和安装测试

  3. 集成测试
    模块间的接口和通信

  4. 单元测试
    模块接口、局部数据结构、边界条件、独立的路径、错误处理

项目管理

九大领域
项目管理

时间管理
Gantt

甘特图:能清晰的描述每个任务从何时开始, 到何时结束, 以及任务之间的并行关系。但是他不能清晰的反应出各任务的依赖关系

PERT

PERT 图:不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间, 还给出了任务之间的关系
关键路径:从开始到结束得所有路径中, 所花费时间最长的一条为有向路径
松弛时间:关键路径时间-当前路径时间, 即可以延迟该任务的开始时间而不影响关键路径准时走完花费的时间

2021-05-09

知识产权

法律法规

  • 从法律角度

    • 《中华人民共和国著作权法》
    • 《计算机软件保护条例》
    • 《中华人民共和国商标法》
    • 《中华人民共和国专利法》
    • 《中华人民共和国反不正当竞争法》
  • 从考题角度

    • 保护期限
    • 知识产权人确定
    • 侵权判断
  • 知识产权

    • 著作权及邻接权
    • 专利权
    • 工业品外观设计权
    • 商标权
    • 地理标志权
    • 集成电路布图设计权

保护条例

保护期限
保护期限

权力归属
权力归属

产权人
产权人


侵权判定

  • 不侵权

    1. 个人学习、研究或欣赏
    2. 适当引用
    3. 公开演讲内容
    4. 用于教学或科学研究
    5. 复制馆藏作品
    6. 免费表演他人作品
    7. 室外公共场所艺术品临摹、绘画、摄影、录像
    8. 将汉语作品译成少数民族语言作品或盲文出版
  • 侵权

    1. 未经许可, 发表他人作品
    2. 未经合作作者许可, 将与他人合作创作的作品当作自己单独创作的作品发表
    3. 未参加创作, 在他人作品署名
    4. 歪曲、篡改他人作品
    5. 剽窃他人作品
    6. 使用他人作品, 未付报酬
    7. 未经出版社许可, 使用其出版社的图书、期刊的版式设计

2021-05-10

数据通信

通信术语

  • 信息
    信息指音讯、消息、通讯系统传输和处理的对象, 泛指人类社会传播的一切内容
  • 数据
    数据是一组关于一个或多个人或对象的定性或定量变量
  • 信号
    • 模拟信号
      模拟信号是指用连续变化的物理量表示的信息, 其信号的幅度, 或频率, 或相位随时间作连续变化, 或在一段连续的时间间隔内, 其代表信息的特征量可以在任意瞬间呈现为任意数值的信号
    • 数字信号
      数字信号指自变量是离散的、因变量也是离散的信号, 这种信号的自变量用整数表示, 因变量用有限数字中的一个数字来表示。 在计算机中, 数字信号的大小常用有限位的二进制数表示
  • 码元
    在数字通信中常用时间间隔相同的符号来表示一个二进制数字, 这样的时间间隔内的信号称为 (二进制) 码元

数据通信系统模型

数据通信系统模型

一个数字通信系统由源系统传输系统目的系统组成。源系统信源变换器组成, 信源的作用是把要传输的各种信息转化为原始电信号, 变换器的作用是把原始电信号转化为适合在信道上传输的信号。传输系统是传输信号的通路, 常用的传输设备有交换机路由器目的系统由反变换器和信宿组成, 反变换器将信号恢复成原始电信号, 再由信宿转化成各种适用的信息。信道传输时会受到各种各样的干扰, 这些干扰称为噪声, 噪声分为内部噪声外部噪声, 内部噪声是分子热运动造成的, 外部噪声为来自信道外部的干扰

失真

失真
影响失真程度的因素:1.码元传输速率、2.信号传输距离、3.噪声干扰、4.传输媒体质量

码间串扰

串间串扰:接收端收到的信号波形失去了码元之间的清晰界限的现象
信道带宽 (W):信道带宽是通信能通过的最高频率和最低频率指擦, 单位赫兹 (Hz)


奈奎斯特定理

奈奎斯特定理

在理想低通条件下, 为了避免码间串扰, 极限码元传输速率为:B = 2W, 单位波特 (Baud)
数据速率 R: R = B log₂V, 单位 bps , 其中 V = 码元种类数
奈奎斯特定理: R = 2W log₂V

重复排列: (n 数字的种类数, r 一次排列所需位数)
不重复排列:n! (阶乘)
对数函数(log):如果 aˣ = N ( a > 0 && a != 1 ), 那么数 x 叫做以 a 为底 N 的对数, 记作 x = logₐN, 读作以 a 为底 N 的对数


香农定理

香农定理

使用香农定理时, 由于信噪比的比值通常太大, 因此通过使用分贝 (dB) 数来表示:
信噪比 (dB) = 信号的平均功率(S) / 噪声的平均功率(N) =10 log₁₀(S / N)
香农定理 R = W log₂( 1 + S / N ) , 当分贝为 30 dB 时,公式可以简化为 R = 10 W


调制技术

调制技术

1
2
3
4
5
6
7
调制技术    码元种类数    比特位
ASK 2 1
FSK 2 1
PSK 2 1
4DPSK 4 2
QPSK 4 2
MQAM M

编码技术

PCM 脉冲编码调制技术
步骤

  1. 采样
    对模拟信号周期性扫描,把时间上连续的信号变成时间上离散的信号

    奈奎斯特采定律:采样频率应大于模拟信号的最高频率的两倍

  2. 量化
    将采样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示

  3. 编码
    把量化的结果转换为与之对应的二进制编码

编码类型
数字信号
数字信号

  • 非归零编码 (NRZ) :高 1 低 0 ,编码容易实现,但没有检错功能,且无法判断一个码元的开始和结束,以至于收发双方难以保持同步
  • 曼彻斯特编码:将一个码元分成两个相等的间隔,前一个间隔为低电平表示码元1;码元0则正好相反。也可以采用相反的规定。该编码的特点是在每一个码元的中间出现电平跳变,位中间的跳变即作时钟信号 (可用于同步),又作数据喜好,但它所占的频带宽度是原始的基带宽度的两倍。每一个码元都被调成两个电平,所以数据传输速率只有调制速率的 1 / 2
  • 差分曼彻斯特编码:同1异0,常用于局域网传输,其规则是:若码元为1,则前半个码元的电平与上一个码元的后半个码元的电平相同,若为0,则相反,该编码的特点是,在每个码元的中间,都有一次电平的跳转,可以实现自同步,且抗干扰性强于曼彻斯特编码
  • 归零编码 (RZ):信号电平在一个码元之内都要恢复到零的这种编码方式
  • 反向不归零编码 (NRZI):信号电平翻转表示0,信号电平不变表示1
  • 4B/5B编码:比特流中插入额外的比特以打破一连串的0或1,就是用5个比特来编码4个比特的数据,之后再传给接收方,因此称为4B/5B。编码效率为80%。只采用16种对应16种不同的4位码,其他的16种作为控制码 (帧的开始和结束,线路的转台信息等) 或保留

复用技术

多路复用技术是在发送端将多路信号进行组合(如广电前端使用的混合器),在一条专用的物理信道上实现传输,接收端再将复合信号分离出来。多路复用技术主要有两大类:频分多路复用(即频分复用)和时分多路复用(即时分复用),波分复用和统计复用本质上也属于这两种复用技术。另外还有其他复用技术,如码分复用、极化波复用和空分复用

  • 空分复用 (SDM)
    让同一个频段在不同的空间内得到重复利用,称之为空分复用

  • 频分复用 (FDM)
    将用于传输信道的总带宽划分成若干个子频带 (或称子信道) ,每一个子信道传输 1 路信号

  • 波分复用(WDM)
    光通信是由光来运载信号进行传输的方式,根据不同波长的光纤进行分配资源

  • 时分复用(TDM)
    将提供给整个信道传输信息的时间划分成若干时间片 (简称时隙) ,并将这些时隙分配给每一个信号源使用,每一路信号在自己的时隙内独占信道进行数据传输

  • 码分复用(CDM)
    靠不同的编码来区分各路原始信号的一种复用方式,主要和各种多址技术结合产生了各种接入技术,包括无线和有线接入

准同步数字系列 (PDH)
准同步数字系列

  • E 载波 (欧洲地区)
    E1: 采用同步时分复用技术将 30 个语音信道 (64K) 和 2 个控制信道 CHO、CH16 (64K) 复合在一条2 .048Mbps 的高速信道上

  • T 载波 (美国 / 日本)
    采用同步时分复用技术将 24 个语音通路复合在一条 1.544 Mbps 的高速信道上


通信方式

通信方式

  • 单工通信: 消息只能单方向传输的工作方式
  • 半双工通信: 可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行
  • 双工工通信: 允许数据同时在两个方向上传输,又称为双向同时通信,即通信的双方可以同时发送和接收数据

传输方式

  • 异步传输: 每一个字符独立形成一个帧进行传输,一个连续的字符串同样被封装成连续的独立帧进行传输,各个字符间的间隔可以是任意

  • 同步传输: 每一个数据位都是用相同的时间间隔发送,而接收时也必须以发送时的相同时间间隔接收每一位信息。不论是否传输数据,接收单元与发送单元都必须在每一个二进制位上保持同步


差错控制

在数字通信中利用编码方法对传输中产生的差错进行控制,以提高数字消息传输的准确性
模2除法, 即异或运算 (⊕), 相同为 0 ,不同为 1

码距与纠错、检错的关系

在一个码组内为了检测 e 个误码, 要求最小码距 d 应该满足 d >= e + 1
在一个码组内为了纠正 t 个误码, 要求最小码距 d 应该满足 d >= 2t + 1

码距: 在信息编码中,两个合法代码对应位上编码不同的位数称为码距,又称海明距离。而在一种编码中任意两个码字之间最少变化的二进制位数称为该数据编码的最小码距

校验码构造: 检错码 = 信息字段 + 校验字段

奇偶校验

奇校验

  • 奇校验:如果给定一组数据位中1的个数是奇数,补一个 bit 为0,使得总的1的个数是奇数
    例: 0000001, 补一个 bit 为0, 00000010

偶校验

  • 偶校验:如果一组给定数据位中1的个数是奇数,补一个 bit 为1,使得总的1的个数是偶数
    例: 0000001, 补一个 bit 为1, 00000011
海明校验

海明校验码
公式: m + k + 1 ≤ 2ᵏm + k ≤ 2ᵏ - 1

m : 信息位个数
k : 校验位个数
存放位置为 2ⁿ 位, 采用偶校验
例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
如图可知, 信息码 101101100 共 9 位, 9 + k ≤ 2ᵏ - 1 , k 最小为 4
校验码所存放位置为 2⁰ 、2¹ 、 2²、 2³ 及 1、 2、 4、 8 位
校验码的值为: 含有校验位的信息位做模 2 除运算的结果
p1 = B3 ⊕ B5 ⊕ B7 ⊕ B9 ⊕ B11 ⊕ B13
= B( 2⁰ + 2¹ ) ⊕ B( 2⁰ + 2² ) ⊕ B( 2⁰ + 2¹ + 2² ) ⊕ B( 2⁰ + 2³ ) ⊕ B( 2⁰ + 2¹ + 2³ ) ⊕ B( 2⁰ + 2² + 2³ )
= 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 0
= 1

同理
p2 = 1
p3 = 0
p4 = 0

附上校验码后
1110011001100
CRC 校验 (循环冗余校验码)

CRC公式
CRC

CRC 校验是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者存储之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化

2021-05-11

计算机网络

计算机网络

概念: 网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网

网络性能指标

网络性能指标

  1. 速率
    一般以比特率(bps)为单位,其含义是每秒钟传输的二进制数的位数

  2. 带宽
    指单位时间能通过链路的数据量。通常以 bps 来表示,即每秒可传输之位数

  3. 吞吐率
    单位时间内通过某通信信道或某个节点成功交付数据的平均速率,通常以每秒比特数 (bps) 为单位

  4. 时延
    总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延

  • 发送时延 (传输时延)
    主机或路由器传输数据帧所需要的时间
    发送时延 = 数据帧长度 / 信道带宽

  • 传播时延
    电磁波在信道中传播所需要花费的时间,电磁波传播的速度 ≈ 2/3 光速
    传播时延 = 信道长度 / 电磁波在信道上的传输速率
    卫星信号的传播延迟为 270ms

  • 处理时延
    主机或路由器收到分组时进行处理所需要的时间

  • 排队时延
    分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量

  1. 往返时间
    往返时间 = 发送耗时 + 接受耗时

  2. 利用率
    信道使用率的百分比


网络协议

网络协议

网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合
协议三大要素: 语法、语义、时序

  • 语义: 规定协议作用
  • 语法: 决定数据格式
  • 时序: 控制传输顺序

OSI 模型
封包与解包
OSI 模型层次结构

  1. 应用层 (APDU)
    应用层(Application Layer)提供为应用软件而设计的接口,以设置与另一应用软件之间的通信

  2. 表示层 (PPDU)
    表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式

  3. 会话层 (SPDU)
    会话层(Session Layer)负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接

  4. 传输层 (TPDU)
    传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息

  5. 网络层 (报文)
    网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络资料

  6. 数据链路层 (帧)
    数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成信息框(Data Frame)。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串

  7. 物理层 (比特)
    物理层(Physical Layer)在局部局域网上发送数据帧(Data Frame),它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡等


TCP / IP 体系结构

TCP/IP 体系
TCP / IP 体系结构

  1. 应用层
  • POP3 邮局协议
    端口 TCP 110

  • FTP 文件传输协议
    端口 TCP 21 (控制端口) / 20 (数据端口)

  • HTTP 超文本传输协议
    端口 TCP 80 / 443 (HTTPS)

  • Telnet 远程登录协议
    端口 TCP 23

  • SMTP 简单邮件传输协议
    端口 TCP 25

  • Samba 信息服务块

  • CIFS 通用网络文件系统

  • NFS 网络文件系统

  • DHCP 动态主机配置协议
    端口 UDP 67 / 68

  • TFTP 简单文件传送协议
    端口 UDP 25

  • SNMP 简单网络管理协议
    端口 UDP 162

  • DNS 域名系统
    端口 UDP 53

  1. 传输层
  • TCP 传输控制协议
    面向连接, 保证可靠性

  • UDP 用户数据报协议
    无连接, 不可靠

  1. 网际层
  • IP 互联网协议
  • ICMP 互联网控制消息协议
  • IGMP 因特网组管理协议
  • ARP 地址解析 IP -> MAC
  • RARP 地址解析 MAC -> IP
  1. 网络接口层
  • 以太网
  • 令牌环
  • 帧中继
  • ATM

2021-05-12

2021-05-13

2021-05-14

2021-05-15

2021-05-16

2021-05-17

2021-05-18

2021-05-19

2021-05-20

2021-05-21

2021-05-22

2021-05-23

2021-05-24

2021-05-25

2021-05-26

2021-05-27