ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

计算机网络基础:IP地址、子网掩码与子网划分实战课件

计算机网络基础:IP地址、子网掩码与子网划分实战课件 简介这份PPT课件面向计算机网络初学者、在校学生及备考网络基础知识的读者系统讲解IP地址相关核心概念帮助解决地址分类、子网划分等入门难点。资源为单个pptx文件压缩包约313KB内容以图文与示例演示为主共14页结构紧凑便于课堂讲解或自学翻阅。课件从点分十进制与二进制互转讲起逐步展开IP地址的Network ID与Host ID组成、A至E五类地址的划分依据并深入子网掩码、网络地址、广播地址与主机地址的判定方法。其中结合202.197.147网段划分四个子网的实例演示子网掩码与AND运算过程还涉及默认网关、网络前缀等延伸知识点。目前已有242人学习适合需要快速建立IP地址知识框架、理解子网划分逻辑的读者参考使用。1. 从一份 14 页课件说起IP 地址到底该怎么讲清楚带过新人的工程师大概都遇到过这种场面让人算一下192.168.10.130/26的网络地址和可用主机范围对方掏出手机搜「IP 地址计算器」输完照抄结果问他为什么是这个数答不上来。问题不在工具在于点分十进制、二进制、子网掩码这三块基础没打通。这份《计算机网络基础IP地址PPT课件》就是冲着这个断层来的14 页从二进制与十进制的互转讲起一路推到 IP 地址分类、网络地址/广播地址/主机地址的界定、子网掩码的 AND 运算最后落到一个完整的子网划分实例把202.197.147.0切成四个子网。它适合三类人准备计算机网络期末或考研 408 的在校生、刚入行需要补网络底子的运维和开发、以及要给新人做内训但懒得自己攒课件的工程师。课件本身是 PPT 格式页数不多但每一页都压着可验证的计算过程不是那种念完就忘的概念罗列。2. 二进制与十进制互转课件里那套手算方法还值不值得练2.1 为什么先啃二进制而不是直接背地址分类很多人学 IP 地址的第一反应是背「A 类 1-126、B 类 128-191、C 类 192-223」背完做题也能对但一碰到子网划分就卡壳。根子在于地址分类是二进制的产物不是十进制的规定。课件第 1 页给的例子很典型10100000转十进制按位权展开12832160。这个动作看着简单但它建立的是「每一位对应一个权值」的直觉后面算网络地址、算广播地址、判断两个 IP 是否同网段全靠这个直觉撑着。课件里用的位权表是2^7到2^0也就是 128、64、32、16、8、4、2、1。一个字节八位从高位到低位排开。二进制转十进制就是把所有为 1 的位对应的权值加起来。这个方法的边界很清楚只适用于单个字节8 位。如果给你一个 32 位地址让你整体转得先按点分十进制拆成四段每段单独转。常见做法是先把位权表默写出来再逐位对照熟练之后可以跳过默写直接心算。2.2 十进制转二进制的辗转相除法与验证习惯课件第 2 页用 302 演示了「除 2 取余、倒序排列」的方法。这个算法的逻辑是不断除以 2余数就是当前最低位的值商继续参与下一轮直到商为 1。把余数从下往上读就是二进制结果。302 的过程是302 / 2 151 余 0 ← 最低位 151 / 2 75 余 1 75 / 2 37 余 1 37 / 2 18 余 1 18 / 2 9 余 0 9 / 2 4 余 1 4 / 2 2 余 0 2 / 2 1 余 0 1 / 2 0 余 1 ← 最高位 从下往上读100101110课件紧接着做了一步验证25632842302。这一步不是多余的它是整个流程里最容易被跳过、也最不该跳过的环节。手算二进制最容易翻车的地方是位数对齐——少写一位或者多写一位结果就差一倍。验证的方法就是把结果按位权展开加回去对得上说明没算错。提示302 转出来的结果是 9 位超出了一个字节的范围。这在课件里是故意的目的是让你注意位数。实际做 IP 地址计算时每一段的结果必须补齐到 8 位不够的前面补 0。比如 62 要写成00111110不能只写111110。2.3 课件里的六道练习题我建议这样用课件第 3 页给了六道练习三道二进制转十进制10111111、10100000、01100100三道十进制转二进制200、99、158。这六道题的答案课件也给了191、160、100、11001000、01100011、10011110。我一般会把这六道题当成一个自测门槛如果能在三分钟内全部算对并且验证通过二进制这块就算过关了可以直接往后走子网掩码。如果超过五分钟或者需要反复检查建议再找一组数练到形成肌肉记忆。这里没有捷径子网划分的每一步都建立在字节级二进制运算上这块不熟后面全是玄学。一个容易被忽略的细节是补零。01100100转十进制是 100但如果你把它写成1100100七位按位权展开就变成了64324100结果碰巧一样但位数错了。位数错了在单独转换时可能不影响结果但一旦进入 AND 运算或者子网划分位数不对齐就会导致整段计算偏移。血泪经验是每次写出二进制结果后强制检查是不是 8 位。3. IP 地址结构与分类Network ID 和 Host ID 是怎么切出来的3.1 32 位地址的两段式结构课件第 4 页把 IP 地址拆成两部分Network ID网络标识码和 Host ID主机标识码。Network ID 标识设备所在的网络区域同一个网络区域内所有设备的 Network ID 相同Host ID 标识网络区域内的具体设备同一网络内每台主机的 Host ID 必须唯一。这个两段式结构是 IP 地址最核心的设计后面所有的分类、子网掩码、路由判断都是围绕「怎么切这两段」展开的。A、B、C、D、E 五类的划分依据就是 Network ID 占用的位数不同。A 类 Network ID 占 8 位Host ID 占 24 位能容纳的主机数最多B 类各占 16 位C 类 Network ID 占 24 位Host ID 占 8 位能容纳的主机数最少。D 类和 E 类不走这个结构D 类用于组播E 类保留做实验用途。课件明确说了 A、B、C 三类是 Internet 上主机可用的地址D、E 是特殊用途。这里有个新手常问的问题怎么从一个 IP 地址判断它属于哪一类看第一个字节的二进制前缀。A 类以0开头所以第一个字节范围是00000001到01111110即 1 到 126B 类以10开头范围 128 到 191C 类以110开头范围 192 到 223。注意 127 开头的是回环地址不属于 A 类可用范围。3.2 网络地址、广播地址、主机地址的边界课件第 5、6 页把三种地址讲得很清楚但初学者容易混。用一句话概括在一个网络范围内主机位全为 0 的是网络地址主机位全为 1 的是广播地址中间的是可分配给设备的主机地址。举个例子202.197.147.0/24这个网段前 24 位是网络部分后 8 位是主机部分。主机位全 0 就是202.197.147.0这是网络地址代表这个网段本身不能分配给任何设备。主机位全 1 就是202.197.147.255这是广播地址发给这个地址的数据包会被网段内所有设备收到。可用的主机地址是202.197.147.1到202.197.147.254一共 254 个。注意网络地址和广播地址各占一个所以一个/24网段的可用主机数是 254 而不是 256。这个「减 2」在算子网可用地址数时经常被漏掉尤其是划分多个子网时每个子网都要减 2。3.3 子网掩码的作用从 IP 地址里切出 Network ID课件第 7 页给子网掩码下了定义也占 32 位用来从 IP 地址中得到 Network ID 和 Host ID也可以用来将网络切割为若干个子网。这个定义里藏了两个功能一个是「识别」一个是「切割」。识别是指给定一个 IP 和掩码能算出网络地址切割是指通过延长掩码中 1 的位数把一个大的网络分成多个小的子网。子网掩码的规则很简单网络部分对应的位是 1主机部分对应的位是 0。默认情况下A 类掩码是255.0.0.0B 类是255.255.0.0C 类是255.255.255.0。但实际组网中很少用默认掩码因为那样地址浪费太严重。常见做法是根据实际需要的主机数反推掩码长度比如一个部门 50 台设备/26掩码255.255.255.192能给 62 个可用地址够用且不浪费。课件第 9 页点出了 AND 运算的作用地址和子网掩码做 AND 运算得到网络地址路由器用 AND 运算确定数据包的合理路由发送主机用 AND 运算判断目标主机是在本地网络还是需要转发到网关。这三句话把子网掩码在实际转发中的角色说透了。AND 运算的规则是「全 1 才为 1否则为 0」拿 IP 和掩码逐位做 AND主机位因为掩码是 0 所以全部归零剩下的就是网络地址。IP 地址 11001010.11000101.10010011.10000010 (202.197.147.130) 子网掩码11111111.11111111.11111111.11000000 (255.255.255.192) AND 结果11001010.11000101.10010011.10000000 (202.197.147.128)上面这个例子里202.197.147.130配/26掩码AND 之后得到202.197.147.128这就是它所在的子网网络地址。判断两台主机是否同网段就是各自和掩码做 AND比较结果是否相同。4. 子网划分实战把 202.197.147.0 切成四个子网4.1 从需求反推借位数课件第 13 页给了一个完整案例某单位的 Network ID 是202.197.147要划分出四个子网。这个需求怎么落到掩码上思路是从子网数量反推需要借多少位主机位来做子网位。四个子网需要多少位2^24所以借 2 位。原来的/24掩码是255.255.255.0借 2 位后变成/26掩码是255.255.255.192。课件里写的掩码是11111111.11111111.11111111.11000000最后两位11是借出来的子网位后面 6 个 0 是剩下的主机位。这里有个容易搞混的点借位是从主机位的高位开始借不是从低位。/24的主机位是最后 8 位借 2 位就是把最高的两位变成子网位剩下 6 位做主机位。所以每个子网有2^664个地址去掉网络地址和广播地址可用 62 个。4.2 四个子网的地址范围与课件对照课件给出的四个子网划分结果如下子网第 4 字节二进制范围第 4 字节十进制范围可用 IP 地址范围子网掩码第一子网00000001~001111101 ~ 62202.197.147.1 ~ 202.197.147.62255.255.255.192第二子网01000001~0111111065 ~ 126202.197.147.65 ~ 202.197.147.126255.255.255.192第三子网10000001~10111110129 ~ 190202.197.147.129 ~ 202.197.147.190255.255.255.192第四子网11000001~11111110193 ~ 254202.197.147.193 ~ 202.197.147.254255.255.255.192这张表值得逐行拆。第一子网的子网位是00所以第 4 字节从00000000到00111111其中000000000是网络地址0011111163是广播地址可用范围是 1 到 62。第二子网子网位是01范围0100000064到0111111112764 是网络地址127 是广播地址可用 65 到 126。第三子网子网位10范围 128 到 191可用 129 到 190。第四子网子网位11范围 192 到 255可用 193 到 254。每个子网的网络地址和广播地址都落在子网范围的边界上这是规律。网络地址是子网范围的最小值广播地址是最大值。记住这个规律算任何子网的可用范围都可以先确定子网边界再去掉首尾。4.3 用代码验证子网划分结果手算完之后我习惯用一段 Python 验证一遍避免边界算错。这段代码不依赖任何第三方库标准库的ipaddress模块就够import ipaddress # 定义网络202.197.147.0/24要切成四个子网 network ipaddress.ip_network(202.197.147.0/24) # 借 2 位新掩码长度 24 2 26 subnets list(network.subnets(prefixlen_diff2)) for i, subnet in enumerate(subnets, 1): # 网络地址 net_addr subnet.network_address # 广播地址 bcast_addr subnet.broadcast_address # 可用主机范围 hosts list(subnet.hosts()) print(f第{i}子网:) print(f 网络地址: {net_addr}) print(f 广播地址: {bcast_addr}) print(f 可用范围: {hosts[0]} ~ {hosts[-1]}) print(f 可用数量: {len(hosts)}) print(f 子网掩码: {subnet.netmask}) print()这段代码的逻辑是ip_network创建一个网络对象subnets(prefixlen_diff2)表示在原有掩码基础上多借 2 位生成四个子网。network_address和broadcast_address分别取网络地址和广播地址hosts()返回所有可用主机地址。跑出来的结果和课件表格完全一致第一子网可用 1 到 62第二子网 65 到 126以此类推。参数说明prefixlen_diff是借位数切四个子网就填 2切八个填 3切两个填 1。如果已知目标掩码长度而不是借位数可以用new_prefix参数比如subnets(new_prefix26)效果一样。hosts()返回的是一个生成器小网段可以直接转 list大网段比如/8不要转会撑爆内存。提示ipaddress模块在 Python 3.3 之后是标准库不需要额外安装。如果你用的是 Python 2 或者更早的 3.x需要装ipaddress这个第三方包但那种环境现在很少见了。5. 避坑与排查子网计算里最容易翻车的五个地方5.1 掩码写成十进制但位数对不上现象手算时把/26的掩码写成255.255.255.192但二进制展开写成11111111.11111111.11111111.10000000最后一段只有 7 个 1。原因192的二进制是11000000两个 1 六个 0。写成10000000是128对应/25而不是/26。这种错误在快速手写时很常见因为192和128长得像。解决每次写完掩码的二进制形式数一下 1 的个数应该等于掩码长度。/26就是 26 个 1/25是 25 个 1。数一遍只要几秒钟但能避免整段计算偏移。5.2 可用主机数忘记减 2现象算出/26有 64 个地址直接说可用 64 个。原因网络地址和广播地址各占一个不能分配给设备。/26的主机位是 6 位2^664减去 2 才是可用数 62。解决记住公式「可用主机数 2^主机位数 - 2」。主机位数 32 - 掩码长度。/26的主机位数是 62^6-262。这个减 2 在划分子网时每个子网都要做一次漏掉会导致地址分配超范围。5.3 子网边界算错导致地址重叠现象划分四个子网后第二子网的可用范围算成 64 到 126把网络地址 64 也算进去了。原因子网范围是01000000到0111111101000000是 64这是网络地址不能算可用。可用范围从 65 开始。解决每个子网的第一个地址是网络地址最后一个地址是广播地址可用范围是「网络地址 1」到「广播地址 - 1」。算完之后检查相邻子网之间有没有重叠第一子网结束于 62第二子网从 65 开始中间 63 和 64 分别是第一子网的广播地址和第二子网的网络地址不重叠。5.4 把 AND 运算和十进制减法搞混现象算网络地址时用 IP 的最后一个字节减去掩码的最后一个字节比如130 - 192得到负数懵了。原因AND 运算是二进制逐位运算不是十进制减法。130的二进制是10000010192的二进制是11000000AND 结果是10000000即 128。十进制减法在这里没有意义。解决养成先转二进制再做 AND 的习惯熟练之后再尝试心算。心算的技巧是看掩码的边界/26的边界在 64 的倍数上网络地址一定是 64 的整数倍0、64、128、192。130落在 128 到 191 之间所以网络地址是 128。这个技巧快但容易在边界值上出错比如128本身建议还是用二进制验证。5.5 混淆网络地址和网关地址现象配置设备时把网络地址当成网关填进去或者把网关设成广播地址。原因网络地址代表整个网段广播地址代表全网段设备两者都不能分配给单个设备。网关是网段内某个可用的主机地址通常是第一个可用地址网络地址 1。解决网关地址从可用主机范围里选常见做法是选第一个可用地址。比如202.197.147.128/26这个子网网络地址是 128广播地址是 191可用范围 129 到 190网关一般设成 129。配置前用ping确认一下这个地址没有被占用。6. 把课件变成自己的东西三个进阶用法和验证习惯课件本身是静态的14 页翻完就没了。但如果你把它当成一个练习框架可以延伸出不少东西。第一个用法是反向出题拿到一个 IP 和掩码自己算出网络地址、广播地址、可用范围然后用代码验证。我一般会随机生成一组参数手算一遍再用ipaddress模块跑一遍对不上就回去查是哪一步错了。这个习惯坚持一段时间子网计算基本不会翻车。第二个用法是把课件里的例子改参数重算。比如把202.197.147.0/24切成四个子网改成切成八个借位数从 2 变成 3掩码从/26变成/27每个子网可用主机数从 62 变成 30。自己推一遍八个子网的地址范围再和代码结果对照。这个练习能帮你建立「借位数、子网数、每子网主机数」三者之间的联动直觉。第三个用法是结合真实设备验证。课件里讲的 AND 运算和网关判断在 Linux 上可以用ip route get命令观察。比如你在一台 Linux 机器上执行# 查看去往某个 IP 的路由决策 ip route get 202.197.147.130 # 查看本机所有网卡和地址 ip addr show # 查看路由表 ip route showip route get会告诉你内核准备把包从哪个网卡发出去、下一跳是谁。如果你把本机地址配成202.197.147.129/26然后ip route get 202.197.147.130内核会判断目标在同网段直接走本地网络如果ip route get 202.197.147.200内核会判断目标不在同网段走默认网关。这个观察过程和课件里「发送主机必须确定应该将数据包直接发送到本地网络中的主机还是应将其转发到网关」那句话完全对应。最后一个习惯是关于验证的。子网计算这种事手算和代码验证必须走双轨。手算建立直觉代码兜底边界。我见过太多人手算时信心满满一上设备就发现地址配错了回头查半天才发现是某个子网的广播地址算成了可用地址。从那以后我每次划完子网都会强制走一遍「手算 → 代码验证 → 设备 ping 测试」三步一步都不省。这份课件把该讲的原理都讲了剩下的就是练。希望帮到你。本文还有配套的精品资源点击获取
返回列表