网工 风险管理

项目风险管理是在项目管理中非常重要的一部分,它旨在识别潜在的问题,评估这些问题的影响,并制定应对策略以减轻或消除这些风险对项目目标的影响。项目风险管理主要包括以下几个步骤:

  1. 风险识别
    • 识别可能影响项目目标的风险因素。
    • 通过研讨会、头脑风暴、专家访谈等方式收集信息。
    • 记录风险的来源、可能性、影响范围等。
  2. 风险分析
    • 对已识别的风险进行定性和定量分析。
    • 定性分析通常涉及评估风险的可能性和影响程度。
    • 定量分析则可能使用模拟或其他统计方法来量化风险的影响。
    • 基于分析结果,对风险进行优先级排序。
  3. 风险响应规划
    • 针对每个高优先级风险制定应对策略。
    • 应对策略可以包括避免、转移、减轻、接受等。
    • 为每种策略制定行动计划,并将其整合到项目计划中。
  4. 风险监控
    • 实施风险应对措施,并持续监控其效果。
    • 监测新的风险出现,并评估现有风险的变化。
    • 根据需要调整风险管理计划。
  5. 沟通
    • 向项目团队成员和利益相关者传达风险管理计划。
    • 定期报告风险状态和应对措施的效果。

风险管理工具和技术

在进行风险管理时,可以使用多种工具和技术来辅助:

  • 风险登记册:用于记录已识别的风险、其描述、可能的影响、责任方、应对策略等。
  • 概率和影响矩阵:用于评估风险的概率和影响等级,从而确定其优先级。
  • 决策树分析:用于评估不同风险应对策略的潜在结果和后果。
  • 敏感性分析:用于评估哪些因素对项目目标的影响最大。
  • 蒙特卡洛模拟:用于量化不确定性的影响,并预测可能的结果范围。

风险管理流程示例

下面是一个简化的风险管理流程示例:

1. 风险识别

  • 技术问题:新技术的实施可能会遇到挑战。
  • 资源限制:关键资源可能无法按时到位。
  • 市场需求变化:市场趋势可能会影响产品的需求。
  • 法规变动:新的法规可能会导致合规成本增加。

2. 风险分析

  • 使用概率和影响矩阵评估每个风险的等级。
  • 对于技术问题,可能评级为“高”可能性和“中”影响。
  • 对于资源限制,可能评级为“中”可能性和“高”影响。
  • 对于市场需求变化,可能评级为“低”可能性和“高”影响。
  • 对于法规变动,可能评级为“中”可能性和“中”影响。

3. 风险响应规划

  • 技术问题:建立技术咨询小组,提前进行技术研究和测试。
  • 资源限制:制定备选供应商清单,准备备用资源。
  • 市场需求变化:定期监测市场趋势,调整营销策略。
  • 法规变动:聘请法律顾问,确保遵守最新的法规要求。

4. 风险监控

  • 定期检查风险应对措施的有效性。
  • 跟踪风险的发展趋势。
  • 调整风险管理计划以应对新出现的风险。

5. 沟通

  • 定期向项目团队成员通报风险管理的状态。
  • 向利益相关者汇报风险管理计划的进展和成果。

结论

风险管理是一个持续的过程,需要在整个项目生命周期中不断进行。通过有效的风险管理,可以提高项目的成功率,减少不确定性和负面影响。

网工 成本管理

资源计划-成本估算-成本预算-成本控制

成本管理并不是意味减少成本

只是控制这个费用,并不是一味的要减少这样的一个成本。比如说在一个信息系统开发的过程当中。如果你能够减少测试的话,当然能够减少相关的一些费用,对不对?但如果没有测试,直接把我们的用户当做是。测试者那么很有可能会给项目带来灾难性的一个后果啊。要么是使得我们的项目成本。后面会得到更大的一个提高,要么是让咱们的项目走向失败,这样的一个边缘啊。所以成本管理它的作用就是控制费用,而并不是减少一味的减少这样的一个费用啊。

成本管理的特点

以下几点,第一个是资源计划。资源计划是确定完成什么项目,需要有什么样的一个资源?资源的数目以及什么时候会使用这些资源?那么,资源计划是实施成本估算,成本预算,成本控制的一个前提;那第二个就是成本估算了。成本估算是指一个为了完成项目各项活动所需要的资源,它的成本近似的一个估算。

成本预算和成本控制

成本预算就是把成本估算分配给单个工作任务。来制定一个成本基准计划与衡量项目的绩效啊。就是成本预算。而最后一个是成本控制,成本控制就是根据我们的成本计划来监督成本的运行情况。以及成本的偏差来防止不正确,不合适,未经批准的成本变更。最终将我们的成本偏差控制在可接收的范围之内,这是成本的控制啊。

将成本估算分配到各个活动和工作包上的过程被称为成本预算(Cost Budgeting)。

成本预算的目标是将项目的总成本估算分配给各个工作包和活动,以便可以监控和控制成本。这一过程涉及以下几个步骤:(注意管理储备不在成本基线中)

  1. 成本汇总
    • 将各个工作包的成本估算汇总起来,形成项目的总成本估算。
    • 这一步骤确保了项目成本估算的完整性。
  2. 建立成本基线
    • 将项目的总成本估算按照时间分布,建立成本基线(Cost Baseline)。
    • 成本基线是一条时间-成本曲线,代表了项目资金的计划支出。
  3. 分配预算
    • 将成本基线中的资金分配给各个工作包和活动。
    • 这意味着确定每个工作包和活动的资金上限,即预算。
  4. 应急储备
    • 确定项目的应急储备金额,并将其纳入成本基线。
    • 应急储备是为了应对预期不到的风险而预留的资金。
  5. 管理储备
    • 确定项目的管理储备金额,但这部分资金不计入成本基线。
    • 管理储备由高级管理层控制,用于未预见的重大事件。
  6. 更新项目文档
    • 更新项目管理计划和其他相关文档,以反映成本预算的结果。

成本预算完成后,项目经理就可以利用成本基线来跟踪项目的实际成本与计划成本之间的差异,并采取必要的措施来保持项目按预算进行。

在实际操作中,成本预算通常涉及到使用项目管理软件来进行规划和跟踪。项目经理还需要定期审查成本执行情况,并根据实际情况调整成本预算。

当然可以。下面我将给出一个成本预算的例子,展示如何将成本估算分配到项目的各个活动和工作包上。

例子

假设我们有一个简单的软件开发项目,该项目包含以下几个主要的工作包:

  1. 需求分析
  2. 设计
  3. 编码
  4. 测试
  5. 部署

项目总成本估算

假设项目的总成本估算是 $50,000 美元。

成本预算分配

接下来,我们将根据各个阶段的工作量和重要性,将总成本分配给各个工作包。

  1. 需求分析
    • 工作量占比:15%
    • 分配成本:50,000×1550,000×157,500
  2. 设计
    • 工作量占比:25%
    • 分配成本:50,000×2550,000×2512,500
  3. 编码
    • 工作量占比:35%
    • 分配成本:50,000×3550,000×3517,500
  4. 测试
    • 工作量占比:15%
    • 分配成本:50,000×1550,000×157,500
  5. 部署
    • 工作量占比:10%
    • 分配成本:50,000×1050,000×105,000

应急储备和管理储备

除了上述成本之外,我们还需要考虑应急储备和管理储备。

  • 应急储备
    • 设定为项目总成本的10%,即 50,000×1050,000×105,000。
    • 应急储备用于处理已知未知风险。
  • 管理储备
    • 设定为项目总成本的5%,即 50,000×550,000×52,500。
    • 管理储备用于处理未知未知风险,这部分资金不计入成本基线。

成本基线

  • 成本基线 = 项目总成本 + 应急储备 = 50,000+50,000+5,000 = $55,000。

成本预算表

现在我们可以将这些信息整理成一个成本预算表:

工作包工作量占比分配成本开始日期完成日期
需求分析15%$7,5002024-08-012024-08-15
设计25%$12,5002024-08-162024-09-05
编码35%$17,5002024-09-062024-10-05
测试15%$7,5002024-10-062024-10-20
部署10%$5,0002024-10-212024-11-05

注意事项

  • 时间安排:在这个例子中,我假设了每个阶段的开始和结束日期。在实际项目中,这些日期应该基于项目进度计划。
  • 成本监控:一旦项目开始执行,就需要定期监控实际成本与预算之间的差异,并及时调整预算或采取措施来控制成本。
  • 变更管理:如果项目范围发生变化,成本预算也需要相应调整。

网工 vlan

VLAN(Virtual Local Area Network,虚拟局域网)帧是在以太网帧的基础上增加了VLAN标签,以实现将一个物理局域网划分为多个逻辑局域网的功能。VLAN帧格式主要遵循IEEE 802.1Q标准。下面是VLAN帧的基本结构和字段解释:

1. 以太网帧头

  • 目的MAC地址 (Destination MAC Address):6字节,目标设备的MAC地址。
  • 源MAC地址 (Source MAC Address):6字节,发送设备的MAC地址。
  • 类型/长度 (Type/Length):2字节,指示帧中数据的类型或长度。对于VLAN帧,此字段的值通常是0x8100,表示接下来是802.1Q标签。

2. 802.1Q标签

  • 标签协议标识 (Tag Protocol Identifier, TPID):2字节,固定值0x8100,表示接下来是802.1Q标签。
  • 标签控制信息 (Tag Control Information, TCI):2字节,包含了优先级、CFI(Canonical Format Indicator)和VLAN ID。

3. TCI 字段详解

  • 优先级 (Priority):3位,用于定义数据帧的优先级等级(0-7),数值越大优先级越高。
  • CFI (Canonical Format Indicator):1位,用于指示MAC地址是否使用标准格式。
  • VLAN ID (VID):12位,用于标识VLAN成员身份,范围从0到4095。其中0和4095保留使用,实际可用的VLAN ID范围为1到4094。

4. 数据字段

  • 数据 (Data):46至1500字节,实际传输的数据。

5. 帧校验序列 (Frame Check Sequence, FCS)

  • FCS (Frame Check Sequence):4字节,用于校验帧的完整性。

总结

VLAN帧的格式如下:

目的MAC地址 (6 bytes)源MAC地址 (6 bytes)类型/长度 (2 bytes)TPID (2 bytes)TCI (2 bytes)数据 (46 to 1500 bytes)FCS (4 bytes)
00:00:00:00:00:0000:00:00:00:00:000x81000x8100TCIDataFCS

其中TCI字段的详细结构如下:

Priority (3 bits)CFI (1 bit)VLAN ID (12 bits)
PCVID

示例

假设一个VLAN帧如下所示:

  • 目的MAC地址:00:11:22:33:44:55
  • 源MAC地址:AA:BB:CC:DD:EE:FF
  • 类型/长度:0x8100(表明接下来是802.1Q标签)
  • TPID:0x8100
  • TCI:0x1234(优先级=1,CFI=0,VLAN ID=4660)
  • 数据:…(46至1500字节的数据)
  • FCS:…(4字节的帧校验序列)

总结

VLAN帧格式是在标准以太网帧的基础上增加了802.1Q标签,以便支持VLAN划分。这种标签包含了优先级、CFI和VLAN ID等信息,用于在网络中传递帧时确定其所属的VLAN。

vlan 接口类型

access口

trunk 口

特点是允许多个vlan 通过,并且除了缺省的VLAN (PVID)外,其他vlan 都要带标签通过Trunk端口

Hybrid 端口

即可以用于连接终端,又可以连接其他交换机,路由器设备,特点是允许一个或多个vlan帧通过,并且可以选择是带标签还是不带标签通过。华为交换机端口默认属于Hybird 口。

不同vlan 间的通信

单臂路由设置

路由器:

sys
[Huawei] sysname Router
[Router] interface GigabitEthernet 0/0/1.10 #在子接口下配置
[Router-GigabitEthernet0/0/1.10] dot1q termination vid 10 #封装为dot1q,子接口对应vlan40
[Router-GigabitEthernet0/0/1.10] ip address 10.1.1.1 255.255.255.0
[Router-GigabitEthernet0/0/1.10] arp broad enable #开启ARP广播
[Router-GigabitEthernet0/0/1.10] quit
[Router] interface GigabitEthernet 0/0/1.20
[Router-GigabitEthernet0/0/1.20] dot1q termination vid 20
[Router-GigabitEthernet0/0/1.20] ip address 20.1.1.1 255.255.255.0
[Router-GigabitEthernet0/0/1.20] arp broad enable
[Router-GigabitEthernet0/0/1.20] quit

网工 交换机性能

交换机是局域网(LAN)中的关键设备,用于连接多个设备并实现数据包的转发。交换机的性能对于网络的整体性能至关重要。以下是交换机的一些主要性能指标:

1. 包转发速率 (Forwarding Rate)

  • 定义:交换机每秒钟可以转发的数据包数量,通常以包每秒 (pps) 来表示。
  • 重要性:转发速率反映了交换机处理数据包的能力,是衡量交换机性能的重要指标之一。

2. 背板带宽 (Backplane Bandwidth)

  • 定义:交换机内部数据传输的最大带宽,通常以比特每秒 (bps) 或吉比特每秒 (Gbps) 表示。
  • 重要性:背板带宽决定了交换机内部端口间数据传输的最大速率,是衡量交换机整体吞吐量的关键指标。

3. 吞吐量 (Throughput)

  • 定义:交换机可以同时处理的数据总量,通常以比特每秒 (bps) 或吉比特每秒 (Gbps) 表示。
  • 重要性:吞吐量反映了交换机在满负载情况下的处理能力。

一、线速

线速是指理论上线缆通过最大帧数时的状态。

也就是应该这样来想这个词:
正如传输速度与吞吐量一样,表示的不是Mbps这样的速度,而是指帧通过时的状态
在线速状态下,也就是LAN交换机接收了单位时间里线路处理的最大帧数的状态下,只要能毫无延迟地处理帧,就可以说这一LAN交换机具备了充分的处理性能,这就是“支持线速”的意思
另外,LAN交换机的所有端口都以线速接收帧,并能无延迟地处理被称为“无阻塞(Nonblocking)”,之所以这样叫是因为设备内部没有等待处理的帧(没有阻塞)

二、包转发速率

包转发率是衡量端口的。

线速端口的包转发率衡量标准是以IEEE802.3中最短以太网64byte的数据包 (第二层或第三层包) 作为计算基准,其公式如下:
64+8+12 = 84(最小数据包的大小为64byte,8byte的前导符,12byte的帧间隙)
包转发率(pps) = 吞吐量 / (84byte × 8bit )
百兆以太网,一个线速端口的包转发率 = 100,000,000bps / 672bit = 0.148Mpps
千兆以太网,一个线速端口的包转发率 = 1,000,000,000bps / 672bit = 1.488Mpps
万兆以太网,一个线速端口的包转发率 = 10,000,000,000bps / 672bit = 14.88Mpps
注:一般只指单个接口的转发速率,有的厂家参数也会以“最大包转发率”指代为“吞吐量
注意区分 包转发率 和 最大包转发率

三、背板带宽

交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量,背板带宽标志了交换机总的数据交换能力
注:有的交换机厂家也叫“交换容量
计算公式:
端口数×相应端口速率×2(全双工模式)=总带宽
若→总带宽 ≤ 标称背板带宽,那么在背板带宽上是线速的
以H3C LS-5560X-34S-EI 为例:
28个千兆电口+4个万兆光口+2个40G光口,其标称的交换容量为596Gbps
(28×1G+4×10G+2×40G)×2=296Gbps≤ 596Gbps,所以其交换容量是线速的

四、吞吐量

吞吐量”写参数时可能会写作“最大包转发率”,吞吐量计算所有端口的包转发速率
第二层最大包转发率=千兆端口数量×1.488Mpps+百兆端口数量×0.1488Mpps+其余类型端口数×相应计算方法
若→第二层最大包转发率≤标称二层包转发速率,那么交换机在做第二层交换的时候可以做到线速
第三层同理
以H3C LS-5560X-34S-EI 为例:
28个千兆电口+4个万兆光口+2个40G光口,其标称的最大包转发率为221Mpps
吞吐量=28×1.488Mpps+4×14.88Mpps+2×59.52Mpps=190.464Mpps≤221Mpps,所以吞吐量是线速的

注意:Mbps和Mpps是不同的,
定义上,Mbps = Mbit/s,每秒比特数;Mpps = Mpacket/s,每秒包数
对象上,Mbps的对象是数据传输,指的是数据传输速度;Mpps的对象是设备,指的是设备的硬件性能
传输方式上,Mbps是以bps为线路单位传输;而Mpps是以数据包为线路单位传输

交换机之间的连接方式

堆叠和级联

华为堆叠技术分为 istack 和CSS

https://info.support.huawei.com/info-finder/encyclopedia/zh/%E5%A0%86%E5%8F%A0.html

堆叠是指将多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上虚拟成一台交换设备,作为一个整体参与数据转发。堆叠是目前广泛应用的一种横向虚拟化技术,具有提高可靠性、扩展端口数量、增大带宽、简化组网等作用。

https://www.cnblogs.com/Ant-Hanks/p/12878700.html

网工 差错控制编码

差错控制编码是一种用于检测和纠正数据传输过程中可能发生的错误的技术。它通过在原始数据中添加额外的冗余信息来实现这一点。差错控制编码可以分为两大类:检错编码和纠错编码。以下是几种常见的差错控制编码技术:

检错编码

  1. 奇偶校验码(Parity Check)
    • 原理:通过在数据位后面附加一个额外的位(奇偶位),使得数据位中1的总数为奇数或偶数。
    • 特点:只能检测单个位错误,不能纠正错误。
    • 应用:简单且成本低廉,用于许多存储系统和通信系统中。
  2. 循环冗余校验码(CRC, Cyclic Redundancy Check)
    • 原理:通过使用多项式除法生成一个冗余码,附加在数据后面。
    • 特点:可以检测多种类型的错误,包括多位错误。
    • 应用:广泛应用于通信系统、存储系统和网络协议中。

纠错编码

  1. 海明码(Hamming Code)
    • 原理:通过在数据位中插入额外的校验位,使得每个校验位能够检测一定数量的数据位。
    • 特点:不仅可以检测错误,还能纠正单个位的错误。
    • 应用:用于存储系统、通信系统和网络协议中。
  2. Reed-Solomon 码(RS 码)
    • 原理:基于有限域上的多项式运算,可以在数据中添加冗余信息。
    • 特点:可以检测和纠正多位错误。
    • 应用:广泛应用于数据存储、无线通信、卫星通信等领域。
  3. BCH 码(Bose-Chaudhuri-Hocquenghem 码)
    • 原理:一种特殊的线性分组码,基于有限域上的多项式运算。
    • 特点:可以检测和纠正多位错误。
    • 应用:用于数据存储和通信系统中。
  4. Turbo 码(Turbo Codes)
    • 原理:使用迭代解码算法,可以检测和纠正多位错误。
    • 特点:接近香农极限,提供非常高的编码增益。
    • 应用:广泛应用于无线通信系统,如3G、4G LTE和5G网络。
  5. 低密度奇偶校验码(LDPC, Low-Density Parity-Check Codes)
    • 原理:基于稀疏矩阵的编码方案,使用迭代解码算法。
    • 特点:接近香农极限,具有良好的性能。
    • 应用:广泛应用于无线通信、光通信和数据存储系统。

差错控制编码的应用

  • 通信系统:用于无线通信、卫星通信等。
  • 数据存储:用于硬盘驱动器、固态硬盘等。
  • 网络协议:用于TCP/IP协议栈中的CRC校验。
  • 数字媒体:用于音频和视频编码,如CD、DVD、蓝光等。

总结

  • 检错编码:用于检测错误,但不能纠正错误。
  • 纠错编码:不仅可以检测错误,还能纠正错误。
  • 应用:广泛应用于通信、存储、网络等多个领域。

差错控制编码对于确保数据的可靠传输至关重要,特别是在易受干扰的环境中。根据不同的应用场景和需求,可以选择合适的差错控制编码技术。

海明校验码(Hamming Code)是一种能够检测并纠正单个比特错误的线性分组码。它通过在原始数据位之间插入监督位(也称为校验位或冗余位)来实现这一功能。下面我将解释如何构建一个海明校验码,并给出一个具体的例子。

码距就是两个码字C1与C2之间不同的比特数。在数据中间加入几个校验码,码距均匀拉大,将数据的每个二进制位分配在几个奇偶校验组里,当某一位出错,会引起几个校验位的值发生变化。海明不等式:校验码个数为K,2的K次方个校验信息,1个校验信息用来指出”没有错误”,其余2k-1个指出错误发生在那一位,但也可能是校验位错误,所以满足m+k+1<=2k。

海明校验码的构建步骤

海明码默认使用偶校验。

奇偶校验

奇校验:一串由0和1组成的序列中1的个数如果为偶数则在前面加个1,使1的个数变成奇数,否则加0。
偶校验:一串由0和1组成的序列中1的个数如果为奇数则在前面加个1,使1的个数变成偶数,否则加0。

例:

1111 奇校验就是 11111 偶校验就是 01111
1110 奇校验就是 01110 偶校验就是 11110

确定监督位的数量

放置监督位

计算监督位的值

每个监督位负责检查一组数据位,这些位由该监督位的索引决定。比如第 1 位监督位负责检查所有奇数位;第 2 位监督位负责检查第 2 位、第 3 位、第 6 位、第 7 位等。

监督位的值由其负责的数据位的奇偶性决定。如果负责的数据位中 1 的个数为奇数,则监督位为 1;如果为偶数,则监督位为 0。

发送数据

发送包含监督位和数据位的新编码。

接收和校验

接收端使用相同的规则计算每个监督位的值,并与接收到的监督位值进行比较。

如果所有监督位都匹配,则认为没有错误。如果有不匹配的情况,可以通过监督位的组合来定位错误位的位置,并纠正错误。

示例数据

  • 假设发送的原始数据位为 101101100。

(1)可知m=9,m+k+1<=2的k次方,可知k最小值为4,所以总共要传输的数据位数为9+4=13;

(2)海明校验码放在索引号为2^n的位(n=0,1,2,…,k-1)上,本例中k=4,所以校验位的索引为第1,2,4,8位,于是在下表中把这几位空出来

索引号12345678910111213
H1H21H4011H801100

(3)列出进制转换表:

索引号8(2^34(2^2)  2(2^1) 1(2^0) 
30011
50101
60110
70111
91001
101010
111011
121100
131101

上表中,先说每一行的内容:从第二行开始,每一行的第一列代表索引号,这个索引号是除去了海明校验位之外的其他所有位。后面几列为该索引号对应的二进制表示,其位数取决于第(1)步计算得出的海明校验码的位数,比如第二行,索引号是3,十进制3对应的二进制就是0011,之所以用4位表示是因为这段信息码需要4个海明校验位。

再看列信息:第一行最右边数字1所对应的列里,出现1的,就表示可以用第H1位完成校验,出现数字0则表示不能用H1位进行校验,因此,由上表可知:

校验位H1负责校验:第3,5,7,9,11,13位(上表黄色高亮显示部分),对应位置上的值进行异或得:1⊕0⊕1⊕0⊕1⊕0=1,由于海明校验做的是偶校验,则H1=1;

校验位H2负责校验:第3,6,7,10,11位(上表蓝色高亮显示部分),对应位置上的值进行异或得:1⊕1⊕1⊕1⊕1=1;
校验位H4负责校验:第5,6,7,12,13位,对应位置上的值进行异或得:0⊕1⊕1⊕0⊕0=0;
校验位H8负责校验:第9,10,11,12,13位,对应位置上的值进行异或得:0⊕1⊕1⊕0⊕0=0。

(4)得到最终要传输的数据串为

索引号12345678910111213
1110011001100

接收端:

(1)进行校验:

若此时接收方收到的数据相比源数据,在第11位发生了错误:

索引号12345678910111213
1110011001000

接收方先按照第③步中类似的方式进行计算校验,区别在于要加上校验位自身这一位,即:

C1的值为第H1,3,5,7,9,11,13位上的值进行异或,计算结果为1(1⊕1⊕0⊕1⊕0⊕0⊕0=1)应该为0(因为默认使用偶校验1的位数为偶数) 所以有一位错误,也就是C4的结果正确。

C2的值为第H2,3,6,7,10,11位上的值进行异或,计算结果为1

C4的值为第H4,5,6,7,12,13位上的值进行异或,计算结果为0

C8的值为第H8,9,10,11,12,13位上的值进行异或,计算结果为1

(2)错误位判定:

由于海明校验采取的是偶校验,所以判断出C4监督式包含的数据位无错,错误位发生在C1,C2,C8三个监督式包含的位上。

此时的做法是:①找到C1,C2,C8这三个监督式共同包含的位;②找出共同包含的位之后,再剔除掉在C4中出现过的位(因为已经验证过C4监督式中的位是正确的);③剩下的位就是发生传输错误的位。

这三个监督式都包含第11位,同时C4监督式中没有第11位,因此出错的位就是第11位。

这样我们就完成了海明校验码的一个基本示例。请注意,海明校验码只能纠正单个比特的错误,如果同时有两个或更多的比特位出错,则无法正确地纠正。

CRC校验码

CRC(Cyclic Redundancy Check)校验的步骤可以通过一个简单的例子来说明。这里我们将使用一个常见的生成多项式 G(x) = x^3 + x^2 + 1 或者二进制表示为 1101,这将产生一个3位的CRC校验码。

假设我们要发送的数据为 11010011101100,我们来一步步地演示如何生成CRC校验码,以及如何在接收端验证数据的正确性。

发送端

  1. 初始化:
    • 数据多项式 M(x) 表示为 11010011101100
    • 生成多项式 G(x) 为 1101
  2. 添加尾部零:
    • 因为CRC校验码的长度是生成多项式的位数减1,这里是3位,所以我们在数据后面添加3个零:11010011101100000
  3. 计算CRC校验码:
    • 使用模2除法(异或运算)计算多项式 M'(x) = 11010011101100000 除以 G(x) = 1101 的余数。
    • 首先,由于 M'(x) 的最高次幂为14,而 G(x) 的最高次幂为3,所以我们从 M'(x) 的最高次幂开始,直到比 G(x) 的最高次幂低的位置。
    • 对于每一步,我们找到与 G(x) 最高位对齐的位置,然后进行异或运算。
  4. 异或运算:
    • 开始时,M'(x) 的前四位是 1101,与 G(x) 相同,所以异或的结果为 0000,移除这部分,留下 0000011101100000
    • 接下来,前四位是 0000,不需要进行异或,直接将 0000011101100000 向右移动一位,变成 000001110110000
    • 重复这个过程,直到 M'(x) 的前四位与 G(x) 对齐,进行异或,然后继续向右移动。
    • 继续这个过程,直到 M'(x) 的剩余部分比 G(x) 短。
    • 最终余数为 R(x)
  5. 添加CRC校验码:
    • 将最终余数 R(x) 附加到原始数据的末尾,形成发送数据。
练习(两百)
  1. 若信息码字为 11100011,生成多项式 G(x)=x5+x4+x+1 ,则计算出的 CRC 校验码为()。
    A. 01101
    B. 11010
    C. 001101
    D. 0011010
    ----------------------------------------
    答案
    B
    解析
    这里要做类似的除法操作
    11100011 为被除数
    G(x)=x5+x4+x+1 ,生成 110011 ,为除数
    CRC 校验码的规则下,被除数后面要添 (n-1) 个 0,n 是被除数的位数,也就是 1110001100000。
    这里的除法做的是异或操作,也就是
    00 -> 0
    11 -> 0
    10 -> 1
    01 -> 1
    【0 ⊕ 0 = 0,1 ⊕ 0 = 1,0 ⊕ 1 = 1,1 ⊕ 1 = 0(同为 0,异为 1)】

 

若信息码字为11100011,生成多项式 G(X)=X5+X4+X+1,则计算出的 CRC 校验码为 (16) 。
          (16)A.01101    B.11010    C.001101    D.0011010

    答案 : B

Index