网络协议01:基本概念、MAC地址、IP地址、子网划分、超网

729 阅读28分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第20天,点击查看活动详情

学习网络协议笔记

互联网(internet)
为什么要学习网络协议
客户端-服务器
跨平台的原理(Java、C++)
网络互连模型(OSI参考模型)
计算机之间的通信基础
计算机之间的连接方式 - 网线直连
计算机之间的连接方式 - 同轴电缆(Coaxial)
计算机之间的连接方式 - 集线器(Hub)
计算机之间的连接方式 - 网桥(Bridge)
计算机之间的连接方式 - 交换机(Switch)
计算机之间的连接方式 - 路由器(Router)

Cisco Packet Tracer 软件快捷键及使用方式汇总

n:创建注释

del:删除某个组件

esc:切换到选中模式

设置中勾选在逻辑工作区总是显示端口标签

一定要保证所有的连线上的标志都是绿色的,可以手动切换实时和仿真模式

端口需要勾选

路由器需要设置网关地址

1.互联网( internet

image-20210318131935210

数据是如何从一个设备传递到另一个设备的? 答:网络协议

2.为什么要学习网络协议

互联网、移动互联网、物联网,都离不开网络协议:

  • 最常用的网络协议:HTTP 协议
  • 为了满足各种需求,有各式各样的网络协议HTTPSSMTPMQTTRTMP 等)【特定的场景下使用特定的协议会事半功倍,效率更高】

重点:网络协议方面的面试题目近年来要求提高了:

  • TCPUDP 的区别?说一下它们的报文格式
  • TCP流量控制和和拥塞控制TCP 如何实现可靠性传输
  • 为什么连接3 次握手关闭4 次挥手
  • 7 层模型与 4 层模型的区别?每一层的作用是什么?
  • 交换机路由器的区别?

3.客户端-服务器

image-20210318133044631

端口号:类似营业厅的办事窗口(用来提供网络服务的,具有监听作用;比如客户端将请求发往服务器的 80 号端口,服务器上有一个运行着的软件始终监听 80 号端口,比如 Java 程序,会执行查询数据库等操作,最终将数据返回给客户端)。【微服务的每个服务占用一个端口,对外提供服务】

Tomcat 也是由 Java 来开发的,所以需要运行在 JVM 上。

在某个端口上跑服务器软件TomcatTomcat部署开发人员的 Java代码。

image-20210318140558820

4.跨平台的原理(Java、C++)

Java 跨平台的原理:

解释型语言跨平台的原理与 Java 类似:例如 JavaScript,甚至不需要经过编译,有浏览器即可解析字节码文件,对于操作系统而言不是可执行文件,JVMJava 虚拟机;通过 JVM 将字节码文件转化为机器指令 01 串执行】

image-20210318134640533

C++ 跨平台的原理:使用平台相关的编译器生成对应平台可执行文件 【跨平台,编译多次】C/C++ 编译之后可以直接生成平台对应的可执行文件,操作系统可以直接将文件加载入内存并运行。PE[Portable Exectable] 编译多次

image-20210318133559203

同一个端口下面部署多个项目,例如 80 号端口下面运行着服务器软件,服务器软件里面可以同时运行多个程序,如QQ,微信,王者荣耀等。

image-20210318142012846

服务器软件占用某个端口,监听端口的数据流通,返回数据也是通过这个端口将数据输出。

tomcat中就相当于访问到了Web文件夹。

5.网络互连模型(OSI参考模型)

什么是协议?为什么要有协议?

  • 协议就是通用的标准。【为了统一,如同一客户端给不同的服务器发出请求,发送的内容应该是相同的】 如果没有一个国际通用的标准,那么各大公司按照自己的标准来,相互之间的交互就会很麻烦。比如我编写的代码在微软的服务器可以运行,但是要在苹果的服务器运行又需要重新编写…
  • 收发双方有一个共同的标准,能够有效沟通。

为了更好地促进互联网络的研究和发展,国际标准化组织 ISO1985 年制定了网络互连模型 OSI 参考模型( Open System Interconnect Reference Model ),具有 7 层结构。

实际上 OSI参考模型(7层) 更偏理论,而 TCP/IP 协议(4层) 在才是在实际中使用的协议,而为了研究和学习计算机网络,又常将之划分为 5层

image-20210318144109528

请求过程:不管什么协议都是经过下列的 包装 + 解包 的过程。

image-20210318144317255

6. 计算机之间的通信基础

要想进行通信,网卡负责接收数据

1、需要得知对方的 IP地址 【首先需要知道对方的 IP 地址,根据 IP 地址解析得到 MAC 地址】

2、最终是根据 MAC地址(网卡地址),输送数据到网卡,被网卡接收 【网卡接收数据,并将数据传递给上一层】

  • 如果网卡发现数据的目标 MAC 地址 自己,就会将数据传递给上一层进行处理 【目标就是自己】
  • 如果网卡发现数据的目标 MAC 地址 不是 自己,就会将数据丢弃,不会传递给上一层 【目标不是自己】

6.1 计算机之间的连接方式 - 网线直连

桌面,命令提示符看能不能 ping

192.168.1.10192.168.2.11 不在同一个网段,无法直接 ping 通,需要路由器,路由器负责连接两个不同的网段。

判断是否连通有两种方式:

  1. 在主机的命令提示符中使用 ping 命令
  2. 点击仿真,发包并播放观察,相当于是一步一步来的,断点调试模式。

不在同一个网段是不能直接 ping 通的,而是需要路由器,路由器用来连接不同的网段

ping 的时候走的就是 ICMP 协议

需要用 交叉线(不是直通线)

  • 相同设备之间使用的是 交叉线
  • 不同设备之间使用的是 直通线

image-20210318153306503

image-20220201155623462

ARP 协议的作用:已知 IP 地址,通过 广播 获取 MAC 地址。(因为数据是通过网卡(MAC)来接收的,广播要在同一个网段中才能传播)【ARP是有缓存的,ping 命令实际上就是使用的 ICMP 协议,在ICMP 之前会先走 ARP 协议(广播)来获取 MAC 地址】就是广播,跟我连着的我都发送出去,广播是在同一个网段中传播的,不同的网段是隔绝广播的。

为什么下面出现 3ARP 包,实际上是 一次完整的发送请求,接收响应的过程。【看当前设备:最开始在计算机 0,然后计算机 0 将数据发送给计算机 1,最后计算机 1 将数据发送给计算机 0,也就是自己的 MAC 地址】

image-20220201161046717

image-20220201161407614

刚开始时主机 192.168.1.20 和 主机 192.168.1.21 不知道对方的 MAC 地址,因此需要通过 ARP 协议【广播,即计算机 0 相连的都发数据出去,广播是在同一个网段(使用子网掩码确定)中传播的,发广播的目的是获取对方的 MAC 地址】来获取 MAC 地址。

MAC 地址是 FFFF.FFFF.FFFF1 的代表这是一个广播地址,同一个网段的网卡都能接收到。

image-20210318160442238

小结:

  • ping 命令使用的是 ICMP协议,前提是需要知道对方的 IP地址,最终是根据 MAC地址 输送数据到 网卡,被 网卡 接收。

  • 当不知道对方 MAC地址 时,使用 ARP协议,进行 广播

  • 广播 只在同一个 网段 中传播,目的是获取 MAC地址,给所有连接设备发 广播,询问对应 IP地址 下的 MAC地址

  • ARP协议 的广播中,目标 MAC地址FFFF.FFFF.FFFF。即 16 进制MAC地址,换算二进制全是 1

  • 全是 1 的MAC地址,代表广播,表示在同一个网段的所有连接设备都能接收 (ping通)。

  • ARP协议是有缓存的,当下次再ping的时候,就不需要重新去获取MAC地址了,而是直接执行ICMP协议。

6.2 计算机之间的连接方式 - 同轴电缆( Coaxial )

缺点:

  • 半双工通信 : 同一时刻只能发送或者接收数据(不能同时接收, 同时发送)

image-20210318161458055

  • 半双工通信:同一时间只允许一方发送数据。终结电阻:吸收信号,避免又被弹回来。

  • 容易冲突【给每台设备都发一遍】电缆两个方向同时又数据汇入时,会发生冲突。

  • 不安全 数据不会单向走入对应的计算机,而是向所有设备发送数据【本来不是给我的,但是我也可以抓包获取数据】

  • 注意:同轴电缆只要有一个地方线断了,整个线路都瘫痪了。

6.3 计算机之间的连接方式 - 集线器( Hub )

相当于同轴电缆的升级版。

集线器也需要相同网段才能够通信

image-20210318161920085

集线器相比同轴电缆唯一的优点就是:哪怕连着集线器的某一个设备中间线路出问题,不会影响到连着集线器的其他设备。

  • 缺点: 获取MAC地址的时候, 会给相同网段的所有设备都发ARP协议(造成广播风暴), 获取MAC, 通过ICMP发送数据包也会给所有的设备发送, 这样会占用 带宽

集线器没有智商,没有记忆,跟它连着的都会发过去【广播发送】

image-20210318162236222

集线器-16437047422751.gif

image-20220201163827135

计算机 0 ( 192.168.1.10 ) 想要发送数据给计算机 2 ( 192.168.1.12 ),集线器会将数据进行广播,即将数据同时发给计算机 1 和计算机 2,计算机 1 发现 IP 地址不匹配(表现为出现一个红色的叉),计算机 2 发现 IP 地址匹配,将 MAC 地址发送给集线器,集线器收到之后将计算机 2 的 MAC 地址数据同时发送给计算机 0 和计算机 1【还是一个广播】,计算机 1 收到后发现 IP 地址不匹配,直接丢弃。计算机 0 成功获取计算机 2 的 MAC 地址,ARP 协议执行完成,下面开始进行真正的发包阶段。

ping ICMP 这次发送的时候包含目标的 MAC 地址,但是由于集线器没有智商(没有之前的记录),因此还是广播发送,计算机 1 收到发现 MAC 地址不匹配,直接丢弃。计算机 2 收到发现 MAC 地址匹配,进行相关操作后将数据发送给集线器,集线器还是会将数据同时发送给计算机 0 和计算机 1,计算机 1 收到后直接丢弃。计算机0收到返回的数据。

可以看出集线器对于每次数据交换都是使用的广播,这样造成了极大的浪费。

arp -a 可以查看当前计算机缓存的 MAC 地址。

image-20210318163155811

跨集线器-16437071591192.gif

image-20220201172037399

相同设备之间都是用的交叉线进行连接,不同设备直接使用直通线进行连接。

如果有1000多台设备使用集线器连接起来,如果从一台主机发送给另外一台主机,ARP的时候给每个都发一遍,ICMP的时候又给每个都发送一遍,占用带宽。设备越多效率越低。

6.4 计算机之间的连接方式 - 网桥( Bridge

有记忆,接口 MAC 地址

网桥的左边有计算机 6MAC 地址 【网桥记录左边有计算机 6

网桥的右边有计算机 2MAC 地址给存下来

通过 ARP 协议得到 MAC 地址之后通过 ICMP 协议 ping

image-20210318164128060

计算机6 ping 计算机 7的全过程分析:

首先是ARP协议:

计算机6ARP先到集线器1,集线器1同时给计算机7、计算机8和网桥,网桥记录计算机6在自己的左边(因为发送的包里面有源MAC地址),然后发送给集线器0,集线器0广播给计算机1、2、3,IP地址不匹配都直接丢弃,同理计算机8也直接丢弃,计算机7匹配成功发送数据包给集线器1,集线器1广播发送给计算机6,计算机8和网桥,由于这次数据传输的目的地址是计算机6,而网桥已经知道了计算机6在自己的左边,因此不会让数据继续发往右边。 同时由于发送数据里面有源MAC地址,因此网桥也知道了自己的左边有计算机7的MAC地址。

下一次继续发的时候知道了计算机6和计算机7都在网桥的左边,因此不会发到网桥的另一边。【即ARP阶段可以判断出计算机6和计算机7都在网桥的左边,ICMP的时候数据包都会被隔离在左边】

STP 生成树协议 Spainning Tree DTP协议?

所谓隔绝冲突域是通过:记录设备的 MAC 地址在左还是在右。【那么网桥两边的可以同时通信了】

例如,67 发数据包, 当 6 发出请求 ARP 广播时,网桥会记录 6MAC 地址在左; 当 7 发出响应 ARP 广播时,网桥会记录 7MAC 地址在左。

  • left6MAC 地址
  • right2MAC 地址
  • left7MAC 地址

当计算机 6 再向计算机 7 发送数据包的时候,发现 7 在自己的左边,就不会让数据包过去了,数据不会去网桥的另外一边。

image-20210318164039698

image-20220201174434134

网桥-16437091150733.gif

使用网桥之后就可以隔绝冲突域,但是网桥只有两个口

同一边的还是无法隔绝,所以交换机就来了

6.5 计算机之间的连接方式 - 交换机( Switch

  • 集线器 + 网桥 的功能 = 交换机
  • 交换机直接连接计算机, 每个接口都记录了计算机的MAC地址 (第一次还是通过广播, 交换机学习到同一网段中所有计算机的MAC地址)
  • 交换机会记录每个端口的MAC地址

相当于一个多口的网桥,升级版的网桥,有好多的接口,可以学习每个接口的 MAC 地址,不是的就不发了。就是每个接口都能记住对应的 MAC 地址。

交换机有记忆功能

image-20210318165601762

会学习每个接口的 MAC 地址,当再次发送的时候,不会发送给地址不符合的接口

image-20210318165118886

同一个网段就能广播

计算机0 ping计算机4,首先交换机广播给计算机1、2、4,计算机1、2直接丢弃,计算机4返回并且由于交换机记住了接口和计算机0MAC地址的对应关系,因此不会广播,而是直接将数据包发送给计算机0,同时交换机记录了计算机4和接口的对应关系。

进行ICMP的时候,计算机0可以通过交换机直接将数据包发送给计算机4而不会广播,因为交换机已经知道计算机4在哪了。

若全球所有设备都用交换机连接:

  1. 他们必然处于同一网段,因此 IP 地址可能会不够用
  2. 即使使用交换机,第一次发送数据包仍然需要 ARP 广播,耗费大量时间。
  3. 形成广播风暴,只要有一个设备发送 ARP 广播,全球设备都能收到 【ARPMAC 地址】

6.6 计算机之间的连接方式 - 路由器( Router

跨网段通信, 连接不同网段的计算机

image-20210318173749391

交换机,集线器连接的所有设备都在同一个网段,在同一个广播域

网桥:隔绝冲突域

交换机:把不同的设备放到同一个网段

路由器:隔绝广播域(不同网段),在同一个网段中才能广播

image-20210318172614885

中间必须是路由器,如果是交换机的话,两边就不通了,因为交换机必须是同一个网段的。所以中间需要使用路由器。

配置网关:

每个交换机组成的计算机通信, 相当于一个局域网。多个局域网(不同网段)之间通信使用网关, 路由器中包含了网关, 所以一般通过路由器来解决不同网段之间通信, (网关接口要和不同的局域网中的ip地址要在同一网段)

image-20210620195552045

主机发数据之前,首先会判断目标IP地址跟我是否在同一个网段

上图流程 : 比如 192.168.3.10 给 192.168.4.11 发数据, 因为此时是不同网段所以通信要使用路由器

  • 同一网段通信, 3.10首先发送到交换机1, 通过ARP广播, 会广播到3.11, 但是不会通过路由器(因为路由器会根据目标ip来判断)
  • 不同网段通信, 3.10发送到交换机1, 通过ARP广播, 广播到路由器的4.1网关端口, 然后该网关再发送给交换机2, 通过ARP广播来获取4.11的MAC地址; 然后进行数据的传输

主机发数据之前,首先会判断目标主机的IP地址跟它是否在同一个网段

  1. 在同一个网段:ARP、通过交换机/集线器传递数据
  2. 不在同一个网段:通过路由器转发数据
    1. 主机先发送ARP到路由器网关,确定网关MAC地址(路由器网关要和发送主机在同一网段)。
    2. 主机发送数据给网关网关再决定出口是哪个网关
    3. 出口网关发送ARP,以确认接收方MAC地址
    4. 最后出口网关将数据发送给接收方。

网关(GateWay):如果想跨网段发送数据,就需要使用网关,左边一个网段,右边一个网段。路由器的接口有一个网关,左边的网关为左边的局域网服务(与左边同一网段),右边的网关为右边的局域网服务(与右边同一网段)。来到网关之后就具备了跨网段传输的能力。

平常生活中 192.168.0.1 就是配置网关。

不在同一个网段,一定需要走路由器,因此先拿到网关的mac地址。有192.168.4.1网关将数据给192.168.4.11,再来一次ARP广播获取mac地址,icmp发送数据包。

中间放一个路由器两边必须是不同的网段,如果两边是相同的网段是发不过去的。

主机在发数据之前,首先会判断目标主机的 IP 地址跟它是否在同一个网段:

  1. 在同一个网段ARP 广播、通过 交换机/集线器 传递数据
  2. 不在同一个网段:通过路由器转发数据
  3. 网关( Gateway) 【有 MAC 地址和 IP 地址】

网线直连、同轴电缆、集线器、网桥、交换机

  • 连接的设备必须在同一网段
  • 连接的设备处在同一广播域

路由器

  • 可以在不同网段之间转发数据
  • 隔绝广播域 【广播只会在自己的局域网里面发】

计算机2往计算机5发送的时候首先发网关 ARP 协议

总结

  • 网线直连, 同轴电缆, 集线器, 网桥, 交换机
    • 连接的设备必须在同一网段
    • 连接的设备处在同一广播域
  • 路由器
    • 可以在不同网段之间转发数据
    • 隔绝广播域
      • 不同网段之间的广播是发不过去的
  • 主机发数据之前, 首先会判断目标主机的ip地址跟它是否在同一个网段
    • 在同一个网段: ARP
    • 不在同一个网段: 通过路由器转发数据

7. MAC 地址(40-55-82-0A-8C-6D)

ipconfig /all 进行查看

每个网卡都有一个 6字节(48bit)MAC 地址 ( Media Access Control Address)。MAC 地址全球唯一,固化在网卡的 ROM 中,由 IEEE802 标准规定。

image-20210318175903347

  • 3 字节:OUI (Organizationally Unique Identifier)组织唯一标识符IEEE 的注册管理机构分配给厂商,标识哪个厂商生产的。
  • 3 字节:网络接口标识符 由厂商自行分配

OUI 查询:可以根据 OUI 查询出对应的厂商

7.1 MAC地址的表示格式(Windows、Linux)

  • Windows 40-55-82-0A-8C-6D
  • Linux、Android、Mac、iOS(类Unix操作系统) 40:55:82:0A:8C:6D
  • Packet Tracer 4055.820A.8C6D
  • 注:当 48 位全为 1 时,代表广播地址FF-FF-FF-FF-FF-FF 此时表示没有目标 MAC 地址

7.2 MAC地址操作(ipconfig /all

查看 MAC 地址:ipconfig /all

image-20220202110834890

修改 MAC 地址:更改适配器选项-属性-配置-高级-网络地址(填写的时候需要把 减号 - 去掉)

image-20210318180834999

注: 有时可以通过修改 MAC 地址蹭网。

7.3 MAC地址的获取( arp -a

当不知道对方主机的 MAC 地址时,可以通过发送 ARP 广播获取对方的 MAC 地址

  • 获取成功后,会缓存 IP 地址、MAC 地址的映射信息,俗称:ARP缓存
  • 通过 ARP 广播获取的 MAC 地址,属于 动态(dynamic)缓存 【通过某种协议动态学习到的】 存储时间比较短(默认是2分钟),过期就自动删除

arp -a [主机地址]:查看 ARP 缓存 arp -a 就是查看所有的 arp -d [主机地址]:删除 ARP 缓存 arp -d 就是删除全部的 arp -s 主机地址 MAC地址:增加一条缓存信息(这是静态缓存,存储时间较久,不同系统的存储时间不同)

7.4 ARP(Address Resolution Protocol

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

  • 作用:通过 IP 地址 获取 MAC 地址

7.4.2 RARP (Reverse Address Resolution Protocol),逆地址解析协议

  • 使用与 ARP 相同的报头结构
  • 作用与 ARP 相反,用于MAC 地址转换为 IP 地址
  • 后来被 BOOTPDHCP 所取代

7.5 ICMP(Internet Control Message Protocol)

ICMP (Internet Control Message Protocol)互联网控制消息协议

  • IPv4 中的 ICMP 被称作 ICMPv4IPv6 中的 ICMP 则被称作 ICMPv6
  • 通常用于返回错误信息。比如 TTL 值过期、目的不可达
  • ICMP 的错误消息总是包括了源数据并返回给发送者

8. IP地址(127.0.0.1)

IP 地址 ( Internet Protocol Address ):互联网上的每一个主机都有一个 IP 地址

  • 最初是 IPv4 版本,32bit(4字节),2019年11月25日,全球的IP地址已经用完
  • 后面推出了 IPv6 版本,128bit(16字节)
  • 我们在学习中讨论的都是 IPV4

image-20210318181522688

IP地址的组成(网络ID + 主机ID)

IP地址 由2部分组成:网络标识(网络ID【在哪一个网段】)、主机标识(主机ID)

  • 通过子网掩码subnet mask )可以得知 网络ID主机ID

主机所在的网段 = 子网掩码 & IP地址

前面有多少个1就表示前面保留多少位数,后面有多少0表示全部不保留

例如:

IP地址:192.168.1.10
子网掩码:255.255.255.0

	1100 0000 . 1010 1000 . 0000 0001 . 0000 1010
&	1111 1111 . 1111 1111 . 1111 1111 . 0000 0000
----------------------------------------------------
	1100 0000 . 1010 1000 . 0000 0001 . 0000 0000

网段:192.168.1.0(注意0结尾的一般都表示网段,网关一般都是1)

网段是由子网掩码计算得出,只有 IP 地址无法得知网段。

IP地址:130.168.1.10
子网掩码:255.255.0.0
网段:130.168.0.0

该网段最多有 256*256-2 个IP地址
-2是因为: 全0用来表达一个网段,全1代表广播IP地址
网段和广播无法分配IP地址。

计算机和其他计算机通信前,会先判断目标主机和自己是否在同一网段:

  • 同一网段:不需要由路由器进行转发
  • 不同网段:交由路由器进行转发

IP地址的分类(A类、B类、C类、D类、E类)

注:判断 IP地址 的类别只要看第一部分即可。

只有 A\B\C 类地址才能分配给主机

  • 主机 ID全0,表示主机所在的网段,如 192.168.1.0
  • 主机 ID全1,表示主机所在网段的全部主机(广播),如 192.168.1.255 可以尝试用 ping 给某个网段的全部主机发数据

A类地址:默认子网掩码是 255.0.0.0

image-20210318182615173

image-20210318183852753

网络ID

  • 0 不能用,127 作为保留网段。
  • 其中 127.0.0.1本地环回地址Loopback ),代表本机地址
  • 可以分配给主机的第1部分的取值范围是:1~126

主机ID

  • 第2、3、4部分的取值范围是:0~255
  • 每个A类网络能容纳的最大主机数是:2562562562=2242=16777214256*256*256–2 = 2^{24}–2 = 16777214

B类地址:默认子网掩码是 255.255.0.0

image-20210318182731326

image-20210318184559131

网络ID

  • 第1部分的取值范围是:128~191
  • 第2部分的取值范围是:0~255
  • 网段的整体范围是 128.0~191.255

主机ID

  • 第3、4部分的取值范围是:0~255
  • 每个B类网络能容纳的最大主机数是:2562562=2162=65534256*256-2 = 2^{16}-2 = 65534

C类地址:默认子网掩码是 255.255.255.0

目前用的最多的是 C类地址!

image-20210318182821811

网络ID

  • 第1部分的取值范围是:192~223
  • 第2、3部分的取值范围都是:0~255
  • 整体范围是 192.0.0~223.255.255

主机ID

  • 第4部分的取值范围是:0~255
  • 每个C类网络能容纳的最大主机数是:2562=254256-2 = 254

D类地址:没有子网掩码,用于多播(组播)地址

以 1110 开头,多播地址

image-20210318185210378

第一部分取值范围是:224~239

E类地址:以 1111 开头,保留为今后使用

第一部分取值范围是:240~255

image-20220202124304402

子网掩码的CIDR表示方法(192.168.1.100/24)

CIDR (Classless Inter-Domain Routing),无类别域间路由

子网掩码的 CIDR 表示方法

  • 192.168.1.100/24,代表子网掩码有24个1,也就是 255.255.255.0
  • 123.210.100.200/16,代表子网掩码有16个1,也就是 255.255.0.0

计算工具:www.sojson.com/convert/sub…

9. 子网划分

9.1 为什么要进行子网划分?

如果需要让 200 台主机在同一个网段内,可以分配一个 C类网段,比如 192.168.1.0/24

  • 254 个可用IP地址:192.168.1.1 ~ 192.168.1.254
  • 多出 54空闲IP 地址,这种情况并不算浪费资源

如果需要让 500 台主机在同一个网段内,那就分配一个 B类网段,比如 191.100.0.0/16

  • 65534 个可用 IP 地址:191.100.0.1 ~ 191.100.255.254
  • 多出 65034空闲IP 地址,这种情况属于极大的浪费资源

如何尽量避免浪费IP地址资源?

  • 合理进行 子网划分

9.2 子网划分

子网划分:借用主机位作子网位,划分出多个子网

  • 等长子网划分:将一个网段等分成多个子网,每个子网的可用 IP 地址数量一样
  • 变长子网划分:每个子网的可用 IP 地址数量可以是不一样

子网划分器:www.ab126.com/web/3552.ht…

子网划分的步骤

  1. 确定子网的子网掩码长度
  2. 确定子网中1最后 1主机可用的 IP 地址

9.3 等长子网划分 - C类子网划分(2、4、8等分)

例:

本来有一个C类网段: 192.168.0.0/24

划分成两个子网后:

A子网: 192.168.0.0/25 子网掩码: 255.255.255.128
可用IP地址: 192.168.0.1 ~ 192.168.0.126 共 126 个

B子网: 192.168.0.128/25 子网掩码: 255.255.255.128
可用IP地址: 192.168.0.129 ~ 192.168.0.254 共 126 个

等分成 2 个子网:

image-20210318193002482

等分成 4 个子网:

image-20210318193437962

等分成 4 个子网的广播地址:

image-20210318193601926

等分成 8 个子网:

image-20210318193720341

9.4 等长子网划分 - A、B类子网划分

B类子网划分:

image-20210318193749403

A类子网划分 :

image-20210318193823493

10.172.168.20/24 是在 A 类地址中划分出来的子网段,注意判断A类B类只看前面的网络号,后面的都是在这个基础上进行子网划分。

9.5 子网划分实践

如此划分,他们还是属于同一个网段,可以直接 ping 通。

在这里插入图片描述

下面这样划分就不是一个网段了,它们分别属于 192.168.0.0192.168.0.128 网段,需要用路由器并设置网关才可以 ping 通。

注:经过评论区老哥提醒,下图 192.168.0.129/25192.168.0.1/25 写反了。。

在这里插入图片描述

变长子网划分

在这里插入图片描述

可以计算一下网络号

思考题:双方子网掩码不同,计算对方所处网段

问:下列两台计算机可以正常通信吗?

image-20220202171926478

计算机0 ping计算机1的时候知道自己的ip地址,子网掩码,以及计算机1的ip地址,所以是根据这些信息来判断自己和计算机1是否在同一个网段中。也即计算自己的网段和计算机1在计算机0的子网掩码条件下的网段地址。

答:不可以。计算机0 想要发送数据包,先判断计算机1是否和自己处于同一个网段,计算网段的方法是:IP地址 & 子网掩码,计算机0判断计算机1的网段为 192.168.10.10 & 255.255.255.0 = 192.168.10.0【计算机0拿自己的子网掩码与计算机1的ip地址相与判断是否位于同一个网段】,而计算机0判断自身所处网段为 192.168.0.10 & 255.255.255.0 = 192.168.0.0,双方不处于同一网段,所以计算机0无法将数据包发给计算机1(不同网段的数据通信需要路由器)

但是同理计算可得计算机1可以将数据发送给计算机0,因为计算机0与上计算机1的子网掩码:192.168.0.10 & 255.255.0.0 = 192.168.0.0 与计算机1的网段是相同的。

在这里插入图片描述

计算机0所处的网段:192.168.0.10 & 255.255.255.0 = 192.168.0.0/24,计算机1所处的网段:192.168.10.10 & 255.255.0.0 = 192.168.0.0/16

解决方案:利用路由器。

在这里插入图片描述

10 超网 - 合并网段

超网:跟子网反过来,它是将多个连续的网段合并成一个更大的网段

需求:原本有200台计 算机使用 192.168.0.0/24 网段,现在希望增加200台设备到同一个网段[400台同一个网段,不够了]

200台在192.168.0.0/24网段,200台在192.168.1.0/24网段 合并192.168.0.0/24192.168.1.0/24为一个网段:192.168.0.0/23(子网掩码往左移动1位,直接减少一个1,主机位变成9个二进制位,网络位变成23位)

image-20210626163327584

问:192.168.0.255/23 这个IP地址,可以分配给计算机使用么?

192.168.0.255/24是广播地址,不能分配给计算机使用。 192.168.0.255/23如下:

image-20210626163414404

主机部分并不全为1(有011111111共9位),所以是可以分配给计算机使用的。192.168.1.255/23不能分配给计算机使用,因为这是一个广播IP地址。

10.1 合并4个网段

image-20210626163541157

子网掩码向左移动2位,可以合并4个网段

192.168.0.0/24192.168.1.0/24192.168.2.0/24192.168.3.0/24 合并为 192.168.0.0/22 网段

主机位由原来的8位变成了10位。

10.2 子网合并的规律

思考:下面的2个网段,能通过子网掩码向左移动1位进行合并么?不可以!!!

image-20220202184639486

假设nn22kk次幂(k≥1),子网掩码左移kk位能够将能够合并 n 个网段

image-20210626173221667

假设 n 是 2 的kk次幂(k≥1),如果第一个网段的网络号能被 n 整除,那么由它开始连续的 n 个网段,能通过左移 k 位子网掩码进行合并。

第一个网段的网络号以二进制 0 结尾,那么由它开始连续的 2 个网段,能通过左移1位子网掩码进行合并 第一个网段的网络号以二进制 00 结尾,那么由它开始连续的 4 个网段,能通过左移2位子网掩码进行合并 第一个网段的网络号以二进制 000 结尾,那么由它开始连续的 8 个网段,能通过左移3位子网掩码进行合并

192.168.0.0/24   192.168.00000000.0
192.168.1.0/24   192.168.00000001.0
192.168.2.0/24   192.168.00000010.0
192.168.3.0/24   192.168.00000011.0

image-20220202190114717

在这里插入图片描述

11. 判断一个网段是子网还是超网

192.168.10.10/22  (C类,进行了合并,超网)
191.168.10.10/18  (B类,z)

首先看该网段的类型,是A类网络、B类网络、C类网络?

  • A类子网掩码的位数是8(255.0.0.0)

  • B类子网掩码的位数是16(255.255.0.0)

  • C类子网掩码的位数是24(255.255.255.0)

如果该网段的子网掩码位数比默认子网掩码,就是子网 如果该网段的子网掩码位数比默认子网掩码,则是超网

例如: 判断 25.100.0.0/16 是子网还是超网:

  • 根据 25 判断出这是个 A 类网络,默认子网掩码 8 位
  • 由于该网段子网掩码 16 位,比默认多,所以是子网(A类子网)

判断 200.100.0.0/16 是子网还是超网:

  • 根据 200 判断出这是个 C 类网络,默认子网掩码 24 位
  • 由于该网段子网掩码 16 位,比默认少,所以是超网(C类超网)