计算机网络——第4章网络层(上)

2023-11-17

目录

第 4 章 网络层(上)

基本概念

  1. 网络层要设计得尽量简单,向上层只提供简单灵活的、无连接的尽最大努力交付的数据报服务,不提供服务质量的承诺。若需要可靠的通信,就由更上层(例如运输层)完成负责

  2. 网络层逻辑上可以分为两个层次:数据层面(也称转发层面)、控制层面,数据层面转发主机之间要传送的数据,控制层面传送路由信息

  3. 路由器在数据层面转发分组时,是各自独立工作的,往往使用硬件方式,非常快(纳秒级);但是由于控制信息需要协同多个路由器进行,通常使用软件方式完成,速度比较慢(秒级)

  4. 一般来说,各路由器均集成了控制层面与数据层面。但在新兴的软件定义网络SDN中,控制层面由一个远程控制器(物理上可以是分布式的)完成,在计算完成后会直接在每个路由器中生成转发表,此时路由器中只有数据层面了,速度快、造价低

  5. 一些中间设备

    • 物理层:转发器repeater

    • 数据链路层:网桥bridge、交换机switch

    • 网络层:路由器router

    • 网络层以上:网关gateway

  6. 参与互连的计算机都使用网际协议IP,这使得可以将他们看成一个虚拟互连网络,不在一个网络上的主机通信起来就像是在同一网络上,多种异构网络可以构成同一个互联网。在这种覆盖全球的IP网上层使用TCP协议,就成为了当今的互联网

    要通信的主机之间建立一条逻辑上的虚电路连接(不建立物理连接),沿这条逻辑连接按存储转发方式传送数据报

IP地址

以下的叙述中,未特别说明处的IP地址都认为是IPv4的地址

基本概念

  1. 对于路由器,其每个端口都有一个IP地址,由于路由器是用来连接多个网络的,也就是会使用至少两个端口,即一个路由器至少会有两个不同的IP地址

  2. 用转发器或网桥连接起来的网络仍为同一网络,使用同样的网络号

IP地址结构

IPv4地址长度为32bit,以x.x.x.x的格式来表示,每个x为8bit,即每个x的十进制值为0-255,这种表示方法称为点分十进制表示。另外,IP地址可以分为网络号和主机号两部分

在任何网络段中,主机号全为0的称为网络地址、主机号全为1的称为广播地址不能分配给网络中的主机使用

五类IP地址

ABC三类IP地址
A类

A类地址的二进制第一位为0,网络号共8位也就是网络号区间为$ [0,127]$,分别为

0.0.0.0   …   0.255.255.255 1.0.0.0   …   1.255.255.255 … 127.0.0.0   …   127.255.255.255 0.0.0.0\ \dots\ 0.255.255.255\\ 1.0.0.0\ \dots\ 1.255.255.255\\ \dots\\ 127.0.0.0\ \dots\ 127.255.255.255\\ 0.0.0.0  0.255.255.2551.0.0.0  1.255.255.255127.0.0.0  127.255.255.255

其中,网络号为0的作为A类地址的网络地址,网络号为127的作为回送地址,用于网络软件测试和本地进程间的通信。也就是说,A类地址中的网络数最多为 2 7 − 2 = 126 2^7-2=126 272=126

在A类地址中,网络号为10的一般作为专用地址,给局域网中的主机使用

B类

B类地址二进制以10开头,网络号区间为 [ 128 , 191 ] [128, 191] [128,191]

128.0.0.0   …   128.255.255.255 129.0.0.0   …   129.255.255.255 … 191.0.0.0   …   191.255.255.255 128.0.0.0\ \dots\ 128.255.255.255\\ 129.0.0.0\ \dots\ 129.255.255.255\\ \dots\\ 191.0.0.0\ \dots\ 191.255.255.255\\ 128.0.0.0  128.255.255.255129.0.0.0  129.255.255.255191.0.0.0  191.255.255.255

其中,网络号为128.0的作为B类地址的网络地址,也就是说,B类地址中的网络数最多为 2 14 − 1 2^{14}-1 2141

在B类地址中,网络号172.16~172.31一般作为专用地址,给局域网中的主机使用

C类

C类地址以110开头,网络号区间为 [ 192 , 223 ] [192,223] [192,223]

192.0.0.0   …   192.255.255.255 193.0.0.0   …   193.255.255.255 … 223.0.0.0   …   223.255.255.255 192.0.0.0\ \dots\ 192.255.255.255\\ 193.0.0.0\ \dots\ 193.255.255.255\\ \dots\\ 223.0.0.0\ \dots\ 223.255.255.255\\ 192.0.0.0  192.255.255.255193.0.0.0  193.255.255.255223.0.0.0  223.255.255.255

其中,网络号为192.0.0的作为B类地址的网络地址,也就是说,B类地址中的网络数最多为 2 21 − 1 2^{21}-1 2211

在B类地址中,网络号192.168.0~192.168.255一般作为专用地址,给局域网中的主机使用

子网及子网掩码

使用子网概念的目的是为了将网络划分为多个部分供内部使用,但对于外部来说,仍像一个网络一样

子网地址的结构

子网地址是三级的地址结构,即网络号+子网号+主机号,可以应用于A、B、C三类IP地址。同一个网络中的几个子网在外部看来,仍为一个网络,即子网对外部网络透明

子网掩码

子网掩码也称为子网屏蔽码,可以用来从三级IP地址中提取出网络号。

通过子网掩码计算出本机的网络号和欲通信的目标主机的网络号比较这两个网络号,就可以知道接受方主机是否在本网络上。

如果网络号相同,表明接受方在本网络上,那么可以通过相关的协议把数据包直接发送到目标主机;如果网络号不同,表明目标主机在远程网络上,那么数据包将会发送给本网络上的路由器,由路由器将数据包发送到其他网络,直至到达目的地。

将IP地址和对应的子网掩码,做二进制“与运算”即可得到网络号。也就是说,A类地址的子网掩码为255.0.0.0(即1111111100000...000(24个0));B类地址的子网掩码为255.255.0.0;C类地址的子网掩码为255.255.255.0

另外,还可以使用/网络号长度+子网号长度的形式来表示子网掩码,例如对于子网掩码255.255.252.0也可以表示为/22

对于划分了子网的三级结构,一般为A、B、C类地址中的一种,通过三类地址前1-3bit判断是哪一种标准IP地址,再结合对应的子网掩码就可以得到子网号的部分。

需要注意的是,IP地址本身始终保持32bit的长度,并且三类标准IP地址自身的网络号长度也不改变,子网号占用的是原本主机号部分的长度

例如,对一个需要分64个子网的B类地址,结构为

二进制10开头的16bit网络号+6bit长的子网号+10bit长的主机号

共32bit长

无类域间路由技术CIDR

CIDR使用网络前缀代替标准分类的IP地址的网络号与主机号,不再使用子网的概念,也就是说IP地址是一个二级结构。这个二级结构以网络前缀 主机号的形式表示。同样的,对于掩码也可以使用斜杠形式表示。

在CIDR中,将网络前缀相同的连续IP地址组成一个 “CIDR地址块”,这个块的大小是可变的,可以将某块地址分配给包括ISP在内的各个机构。

CIDR地址块

一个CIDR地址块由块起始地址与块地址数来表示,以200.16.23.0/20为例,其起始地址为200.16.23.0,即网络前缀。这个CIDR地址块中有$ 2{32-20}=2{12} 个 地 址 , 将 这 些 地 址 分 配 给 各 个 主 机 , 也 就 是 说 能 给 个地址,将这些地址分配给各个主机,也就是说能给 2^{12}$个主机分配地址。200.16.23.0/20对应了20bit长的网络前缀+12bit长的主机号

同样的,对于CIDR来说,主机号全为1的地址为(直接)广播地址

广播地址举例

156.25.0.0/16:16bit网络前缀+16bit主机号,广播地址为156.25.255.255

156.25.0.0/28:28bit网络前缀+4bit主机号,广播地址为156.25.0.15

195.1.22.64/27:27bit网络前缀+5bit主机号,广播地址为195.1.22.95

理论上来说,掩码不一定由连续的1组成,例如掩码255.255.254.112,但这样非常难以管理,一般不使用

CIDR地址规划方法

也是通过向主机号“借位”用于网络号,达到子网划分的效果

200.16.23.0/20为例,要将该地址块均分为4个更小的地址块,需要向地址块借用2bit,分好的4个地址为:200.16.23.0/22200.16.27.0/22200.16.31.0/22200.16.35.0/22

例子中分好的4个地址的前20bit是相同的,由此说明CIDR有地址聚合与路由聚合的能力,将多个地址归并到单一的网络中(构造超网),并且在转发表中只使用一项来表示这些地址,可以减少路由表的压力

最长前缀匹配

使用CIDR进行路由聚合之后,转发表中可能会同时存在好几个可以与目的IP地址匹配的项,此时应选择具有最长网络前缀的路由表项,这就是最长前缀匹配,这样的选择可以使得转发的位置更具体

IP地址相关的解题步骤

IP地址规划方法

一般来说,网络地址规划分6步进行:判断用户对网络与主机数的需求,计算满足用户需求的基本网络地址结构,计算地址掩码,计算网络地址,计算网络广播地址,计算网络主机地址

1.判断网络与主机数的需求

即需要得到网络中最多可能使用的子网数量 N_{net}、网络中最大网段的最多主机数量 N_{host}

2.确定合适的基本网络地址结构

根据 N_{net}确定子网号段的长度 X,使得 N_{net} \le 2^X;根据 N_{host}确定主机号段的长度 Y,使得 N_{host} \le 2^Y

X+Y即为除去网络号段后的长度,据此可确定需要使用的IP地址标准

例如当 X=4,Y=6时,共需要10bit的主机号,则需要使用一块B类地址或两块C类地址

3.计算地址掩码

结合需要的子网号段长度 X确定具体的IP地址结构,确保通过掩码计算出的结果为主机号即可。

也就是说,对于具体的地址结构,开头是所选IP类别对应长度的网络号,接着是 Xbit的子网号,剩下的都给主机号使用

例如当 X=4,Y=6时,选用一块B类地址,其掩码应为255.255.240.0,即16+4个1与12个0的组合

4.计算网络地址

需要注意的是,主机号全为0或1的作特殊用途,因此每个子网中实际上最多有 2^Y-2个主机。在二进制下可以计算各个子网的网络号。最初有规定不使用第一个和最后一个子网的地址

例如若第一个网络号为128.5.0.0,则各子网的网络号为128.5.0.0128.5.16.0128.5.32.0、…、128.5.240.0

5.计算网络广播地址

每个子网的网络广播地址,为各子网的网络号加上主机号全置1,也就是下一个子网网络号减1

继上例,各子网的定向广播地址为128.5.15.255128.5.31.255128.5.63.255、…、128.5.255.255

6.计算各子网中的主机IP地址

显然,主机IP地址不能使用子网的网络地址、也不能使用子网的定向广播地址,介于这两者之间的IP地址就是可用的主机IP地址

继上例,各子网的主机IP地址范围为

128.5.0.1-128.5.15.254128.5.16.1-128.5.31.254128.5.32.1-128.5.63.254…、128.5.240.1-128.5.255.254

可变长度子网掩码VLSM地址规划方法

可变长度子网掩码VLSM(Variable Length Subnet Mask)对子网进行层次化编址,以便最有效的利用现有的地址空间。这种技术适用于网络内部不同网段需要不同大小子网的情形。

直观地来说,就是把子网继续分割为若干更小的子网

一般分为3步:根据用户需求确定子网数、计算各子网掩码、确定各子网的IP地址区间

1.确定子网数

调查实际需求,获取需要分的子网数及各子网将要添加的主机数

例子中需要分5个子网,3个子网中需要的主机数分别为25、12、10、6、2

上级分配的网络地址为192.168.10.0

2.计算子网掩码

VLSM的核心思想就是向主机号头部“借位”,使得出现更小的子网,但是对于整体来说,各个子网仍然是逐个递增的样子

分子网时,一般按主机数从大到小来分

第一个子网

25个主机,需要长为5bit的主机号,则借用主机号作为网络号的是3bit,那么该子网的网络地址为192.168.10.0/27

第二个子网

在第一个子网分完的基础上,从192.168.10.32/27开始继续分。12个主机,主机号需要4bit,网络号增加4bit,该子网的网络地址为192.168.10.32/28

第三个子网

192.168.10.48/28开始。10个主机,主机号需要4bit,网络号增加4bit,该子网的网络地址为192.168.10.48/28

第四个子网

192.168.10.64/28开始。6个主机,主机号需要3bit,网络号增加5bit,该子网的网络地址为192.168.10.64/29

第五个子网

192.168.10.72/29开始。2个主机,主机号需要2bit,网络号增加6bit,该子网的网络地址为192.168.10.72/30
VLSM规划

3.确定IP区间
子网 子网地址 广播地址 可用主机IP区间
子网1 192.168.10.0/27 192.168.10.31 192.168.10.1-192.168.10.30
子网2 192.168.10.32/28 192.168.10.47 192.168.10.33-192.168.10.46
子网3 192.168.10.48/28 192.168.10.63 192.168.10.49-192.168.10.62
子网4 192.168.10.64/29 192.168.10.71 192.168.10.65-192.168.10.70
子网5 192.168.10.72/30 192.168.10.75 192.168.10.73-192.168.10.74
CIDR地址规划方法

也是通过向主机号“借位”用于网络号,达到子网划分的效果

200.16.23.0/20为例,要将该地址块均分为4个更小的地址块,需要向地址块借用2bit,分好的4个地址为:200.16.23.0/22200.16.27.0/22200.16.31.0/22200.16.35.0/22

例子中分好的4个地址的前20bit是相同的,由此说明CIDR有地址聚合与路由聚合的能力。CIDR通常用在将多个C类地址归并到单一的网络中,并且在路由表中只使用一项来表示这些C类IP地址,可以减少路由表的压力

网际协议——IP

基本概念

  1. IP是TCP/IP体系中的两个主要协议之一

  2. 常与IP协议配套使用的其他三个协议

    • 地址解析协议ARP(Address Resolution Protocol)

    • 互联网控制报文协议ICMP(Internet Control Message Protocol)

    • 互联网组管理协议IGMP(Internet GROUP Management Protocol)

    网际层的协议

    在RFC标准中,ARP协议是放在数据链路层中的,其作用是处理IP和MAC之间的转换,与各种网络接口相关;而ICMP和IGMP使用了IP协议

  3. 不同网络之间差异是非常大的(例如在用户接入控制、管理控制方式、差错恢复方法上),需要一些中间设备将不同网络连接

    • 物理层中间设备:转发器Repeater

    • 数据链路层中间设备:网桥/桥接器Bridge

    • 网络层中间设备:路由器Router

    • 网络层以上中间设备:网关Gateway

  4. 当研究网络层时,可以将IP数据报视为在不同主机的网络层之间传送

路由转发

从2、3层看路由转发

路由器是处于第三层网络层的设备,它可以看到数据报首部包含的IP地址。在要转发数据报时,它会将IP数据报重新封装成MAC帧,修改MAC帧首部的源MAC和目的MAC地址,从而实现转发。事实上,路由器还会继续把MAC帧转变为物理层的比特流,以在物理链路上传送,上图中为了便于说明未画出物理层

以上图为例,说明整个转发过程

  1. ⭐️路由器R1左侧接口收到IP数据报后,逐项查找路由表,将数据报头部的目的IP地址IP2与各表项的子网掩码按位与,发现要到达IP2的网段,不是直连的网络,需要转发到下个路由,且下一跳地址为IP5

  2. 路由器R1查看ARP缓存表,是否存在IP5对应的表项

    若存在,则将表项中的MAC地址(HA5)作为MAC帧的目的MAC地址,将表项中指出的自身接口的MAC地址(HA4)作为MAC帧的源MAC地址,最后从该接口发出即可

    若不存在,则发起ARP请求,通过ARP协议获得相关表项

  3. ⭐️路由器R2左侧接口收到IP数据报后,同样逐项查找路由表,发现IP2对应的网段是直连的,不需要转发到下个路由了

  4. 路由器R2查看ARP缓存表,是否存在IP2对应的表项

    同样通过ARP协议相关操作,将IP数据报封装成MAC帧,源MAC地址为HA6,目的MAC地址为HA2

需要注意的是,从始至终IP数据报首部的源IP和目的IP地址都不会变化,而MAC帧中的源MAC和目的MAC地址不断变化

地址解析协议ARP

在路由转发的过程中,我们得到了一个主机/路由器的IP地址,但是实际上需要知道相应的MAC地址,才能够使用MAC对数据进行传送。ARP的功能就是通过IP地址获得对应的MAC地址

需要注意的是,ARP协议完成的IP到MAC的转换仅限于同一局域网,也就是说,若要找的IP对应的主机和源主机不在同一局域网上,就无法成功进行转换

ARP高速缓存

即ARP表,其中的表项记录着IP地址、MAC地址、生存时间、类型等信息,主机和路由器都会有ARP高速缓存

存在时间超过生存时间(一般为10~20分钟)的表项会自动从ARP表中删除

ARP分组类型
ARP请求分组

想要知道IP对应MAC的主机/路由器在本局域网内广播ARP请求。显然,请求分组中需要明确发送方的IP和MAC地址、目标方的IP地址

ARP响应(应答)分组

目标方收到广播的ARP请求分组后,发现其中的IP和自己的一样,就会向发送方单播ARP响应分组。显然,这其中包括了自己的MAC地址

ARP报文格式

ARP报文承载在数据链路层上,因此其报文是一个MAC帧,格式如下图

ARP报文格式

其中标蓝色部分的内容是ARP协议中重点关注的内容

  • 前14字节是MAC帧的首部,对于ARP来说,帧类型字段值为0x0806

    对于ARP请求分组,MAC地址为广播地址,即0xFFFF-FFFF-FFFF

  • 硬件类型:对于以太网来说,本字段值为1

  • 协议类型:发送方要映射的协议地址类型。ARP显然要映射IP为MAC地址,对于IP地址,本字段值为0x0800

  • 硬件地址长度:即MAC地址长度,为6(字节)

  • 协议地址长度:即IP地址长度(IPv4),为4(字节)

  • 操作类型:1表示ARP请求报文,2表示ARP响应报文

  • 源MAC:与帧头部中的以太网源MAC相同

  • 目的MAC:ARP请求分组中还不知道目的MAC,此时本字段全为0,即0x0000-0000-0000

❓诶,为什么IP字段只有4字节呢?IPv6怎么办?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络——第4章网络层(上) 的相关文章

  • mysql 修改utf8mb4

    右键计算机 找到服务和应用程序 找到服务 找到MYSQL56 img src https img blog csdn net 20160518101645822 watermark 2 text aHR0cDovL2Jsb2cuY3Nkbi
  • C++ 浮点数的大小比较

    C 浮点数的大小比较 一 C 的精度损失 二 浮点数比较 三 总结 一 C 的精度损失 浮点数的存储格式 符号位 指数位 尾数位 sign bit Exponent Mantissa 浮点数分为单精度float和双精度double 32位和
  • WordPress search页面出现 404

    遇到问题 在新版 6 0 2 发现 当使用 wordpress 提供的原生searchform php搜索功能时 会出现 404 报错信息 导致界面样式错乱 问题排查 从请求发现 使用原生搜索组件 发出的请求是在根路由后面直接拼接了 s x
  • TCP滑动窗口控制流量的原理

    TCP的滑动窗口机制 TCP这个协议是网络中使用的比较广泛 他是一个面向连接的可靠的传输协议 既然是一个可靠的传输协议就需要对数据进行确认 TCP协议里窗口机制有2种 一种是固定的窗口大小 一种是滑动的窗口 这个窗口大小就是我们一次传输几个
  • 浏览器识别操作系统

    前端识别操作系统 浏览器识别操作系统 软件设计模式概述 浏览器识别操作系统

随机推荐

  • thread_Timer(线程中定时器)

    package com gzhs zsd thread import java util Date import java util Timer import java util TimerTask Timer定时器运用 author 谢泽
  • java 支付宝红包接入

    1 将公钥验证升级为证书验证 会得到如下三个证书 2 配置文件相关 支付宝支付相关配置 alipayconfig appid pid app private key charset utf 8 alipay public key call
  • Ubuntu 提示 Could not get lock /var/lib/dpkg/lock-frontend.解决方法

    今天在Ubuntu上安装的达梦数据库出现了一点操作错误 进行删除后还原快照就出现了这个问题 当我进行 apt 源安装还有更新时就一直显示 Waiting for cache lock Could not get lock var lib d
  • 解决VScode代码注释异常高亮

    问题描述 VScode出现代码注释后仍然高亮的问题 或者定义的函数名或者关键词没有高亮 如下所示 正常情况 异常情况 原因分析 同时装了python的扩展和vscode for python的扩展导致 两个扩展的主题配色冲突 解决方案 卸载
  • unity之InputField的文本监听

    1 创建InputField creat gt UI gt InputField 2 基本属性界面 可以再content type属性下设置InputField的文本类型 图片中无显示 3 文本监听 创建脚本 代码如下 using Syst
  • 计算机视觉————目标检测,多尺度问题理解以及FCN(全卷积神经网络)存在的弊端,问题。

    在阅读文献中 通常会遇到一个名词 XX用来解决多尺度问题 多尺度问题是什么意思 目标检测中 我们希望对于输入图片 不管图片中某个目标或大或小 我们都需要将其识别 对于小物体 我们可以将其理解为两种方式 一种是绝对小物体 即它本身占的像素就比
  • Android.bp 语法浅析-Android10.0编译系统(八)

    Android取经之路 的源码都基于Android Q 10 0 进行分析 Android取经之路 系列文章 系统启动篇 Android系统架构Android是怎么启动的Android 10 0系统启动之init进程Android10 0系
  • mysql怎么创建出生日期表_MySQL表的创建

    第1步 设计 首先要设计一张用于我想要用途的表 例如如下用于描述个人的信息类型 姓名 性别 出生日期 地址 最喜爱的食物 下面为他来指定列和数据类型 列 类型 允许值 name varchar 40 gender char 1 M F bi
  • MyBatis之枚举类型

    枚举可以让代码变得更为优雅 B格更高 当然MyBatis也是支持枚举类型的啦 首先 MyBatis内置了Enum的TypeHandler TypeHandler Java类型 JDBC类型 EnumTypeHandler Enum VARC
  • 华为机试练习(二)二叉树遍历

    题目描述 给定一棵二叉树的前序遍历和中序遍历 求其后序遍历 输入 两个字符串 其长度n均小于等于26 第一行为前序遍历 第二行为中序遍历 二叉树中的结点名称以大写字母表示 A B C 最多26个结点 输出 输入样例可能有多组 对于每组测试样
  • NodeJs模块化

    目录 一 导入模块 二 模块暴露数据 三 注意事项 一 导入模块 在模块中使用 require 传入文件路径即可引入文件 const test require me js 案例 在func js中定义一个函数 在index js使用该函数
  • kube-flannel.yml

    flannel作为k8s的集群中常用的网络组件 其yml文件的获取 建议去github中获取 具体的获取方式如下 apiVersion policy v1beta1 kind PodSecurityPolicy metadata name
  • C#实现组合优化问题算法-背包问题(附源码)

    C 实现组合优化问题算法 背包问题 附源码 背包问题是一类经典的组合优化问题 也是NP完全问题中的一种 其基本思想是 有一个容量为V的背包和n个物品 每个物品有自己的体积和价值 在保证不超过背包容量的前提下 选择某些物品装入背包 使得背包中
  • 依赖项注入

    ASP NET Core 通过依赖关系注入 DI 生成 服务 如数据库上下文 在 Program cs 中向 DI 注册 这些服务通过构造函数参数提供给需要它们的组件 在 Controllers MoviesController cs 文件
  • rsyslogd、syslog远程传输、日志存储、转存

    一 产生本地日志 1 etc resolv conf 配置文件 local0 local7是用户自定义的日志 这里我们使用local1 添加以下 local1 www admin admin log web log 配置完需要重启 rsys
  • DNS 解析一个地址的时候会返回多个 IP 吗?

    这是一个或许对你有用的社群 一对一交流 面试小册 简历优化 求职解惑 欢迎加入 芋道快速开发平台 知识星球 下面是星球提供的部分资料 项目实战 视频 从书中学 往事上 练 互联网高频面试题 面朝简历学习 春暖花开 架构 x 系统设计 摧枯拉
  • nginx php-fpm 分别安装在不同的机器(理解nginx和php-fpm)

    先起一个ubuntu的docker docker run ti name test1 ubunt 然后安装php5 fpm apt get install php5 fpm 配置fpm 允许从其他机器访问 listen 9000 默认是12
  • 树实现客户端红点系统

    树实现客户端红点系统 红点系统总览 demo 设计 代码设 引用 https zhuanlan zhihu com p 85978429 红点系统总览 如上图所示 规划红点系统的时候 我们将整个系统分为独立的三个部分 结构层 驱动层和表现层
  • C++ 循环练习第2题:输出一个整数序列中与指定数字相同的数的个数。输入包含2行:第1行为n和m,表示整数序列的长度n<=100和指定的数字;第2行为n个整数,整数之间以一个空格分开。输出为n个数中与

    C 循环练习第2题 输出一个整数序列中与指定数字相同的数的个数 输入包含2行 第1行为n和m 表示整数序列的长度n lt 100和指定的数字 第2行为n个整数 整数之间以一个空格分开 输出为n个数中与m相同的数的个数 1 题目 2 循环解决
  • 计算机网络——第4章网络层(上)

    目录 第 4 章 网络层 上 基本概念 IP地址 基本概念 IP地址结构 ABC三类IP地址 A类 B类 C类 子网地址的结构 子网掩码 无类域间路由技术CIDR CIDR地址块 CIDR地址规划方法 最长前缀匹配 IP地址相关的解题步骤