开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第20天,点击查看活动详情
学习网络协议笔记
互联网(internet)
为什么要学习网络协议
客户端-服务器
跨平台的原理(Java、C++)
网络互连模型(OSI参考模型)
计算机之间的通信基础
计算机之间的连接方式 - 网线直连
计算机之间的连接方式 - 同轴电缆(Coaxial)
计算机之间的连接方式 - 集线器(Hub)
计算机之间的连接方式 - 网桥(Bridge)
计算机之间的连接方式 - 交换机(Switch)
计算机之间的连接方式 - 路由器(Router)
Cisco Packet Tracer软件快捷键及使用方式汇总
n:创建注释
del:删除某个组件
esc:切换到选中模式设置中勾选在逻辑工作区总是显示端口标签
一定要保证所有的连线上的标志都是绿色的,可以手动切换实时和仿真模式
端口需要勾选
开路由器需要设置网关地址
1.互联网( internet )
数据是如何从一个设备传递到另一个设备的? 答:网络协议
2.为什么要学习网络协议
互联网、移动互联网、物联网,都离不开网络协议:
- 最常用的网络协议:
HTTP协议 - 为了满足各种需求,有各式各样的网络协议(
HTTPS、SMTP、MQTT、RTMP等)【特定的场景下使用特定的协议会事半功倍,效率更高】
重点:网络协议方面的面试题目近年来要求提高了:
TCP和UDP的区别?说一下它们的报文格式?TCP的流量控制和和拥塞控制?TCP如何实现可靠性传输?- 为什么连接是
3次握手,关闭是4次挥手? 7层模型与4层模型的区别?每一层的作用是什么?- 交换机与路由器的区别?
3.客户端-服务器
端口号:类似营业厅的办事窗口(用来提供网络服务的,具有监听作用;比如客户端将请求发往服务器的 80 号端口,服务器上有一个运行着的软件始终监听 80 号端口,比如 Java 程序,会执行查询数据库等操作,最终将数据返回给客户端)。【微服务的每个服务占用一个端口,对外提供服务】
Tomcat 也是由 Java 来开发的,所以需要运行在 JVM 上。
在某个端口上跑服务器软件Tomcat,Tomcat部署开发人员的 Java代码。
4.跨平台的原理(Java、C++)
Java 跨平台的原理:
解释型语言跨平台的原理与 Java 类似:例如 JavaScript,甚至不需要经过编译,有浏览器即可解析 【字节码文件,对于操作系统而言不是可执行文件,JVM即 Java 虚拟机;通过 JVM 将字节码文件转化为机器指令 01 串执行】
C++ 跨平台的原理:使用平台相关的编译器生成对应平台的可执行文件 【跨平台,编译多次】C/C++ 编译之后可以直接生成平台对应的可执行文件,操作系统可以直接将文件加载入内存并运行。PE[Portable Exectable] 编译多次
同一个端口下面部署多个项目,例如 80 号端口下面运行着服务器软件,服务器软件里面可以同时运行多个程序,如QQ,微信,王者荣耀等。
服务器软件占用某个端口,监听端口的数据流通,返回数据也是通过这个端口将数据输出。
tomcat中就相当于访问到了Web文件夹。
5.网络互连模型(OSI参考模型)
什么是协议?为什么要有协议?
- 协议就是通用的标准。【为了统一,如同一客户端给不同的服务器发出请求,发送的内容应该是相同的】 如果没有一个国际通用的标准,那么各大公司按照自己的标准来,相互之间的交互就会很麻烦。比如我编写的代码在微软的服务器可以运行,但是要在苹果的服务器运行又需要重新编写…
- 收发双方有一个共同的标准,能够有效沟通。
为了更好地促进互联网络的研究和发展,国际标准化组织 ISO 在 1985 年制定了网络互连模型 OSI 参考模型( Open System Interconnect Reference Model ),具有 7 层结构。
实际上 OSI参考模型(7层) 更偏理论,而 TCP/IP 协议(4层) 在才是在实际中使用的协议,而为了研究和学习计算机网络,又常将之划分为 5层。
请求过程:不管什么协议都是经过下列的 包装 + 解包 的过程。
6. 计算机之间的通信基础
要想进行通信,网卡负责接收数据
1、需要得知对方的 IP地址 【首先需要知道对方的 IP 地址,根据 IP 地址解析得到 MAC 地址】
2、最终是根据 MAC地址(网卡地址),输送数据到网卡,被网卡接收 【网卡接收数据,并将数据传递给上一层】
- 如果网卡发现数据的目标
MAC地址 是 自己,就会将数据传递给上一层进行处理 【目标就是自己】 - 如果网卡发现数据的目标
MAC地址 不是 自己,就会将数据丢弃,不会传递给上一层 【目标不是自己】
6.1 计算机之间的连接方式 - 网线直连
桌面,命令提示符看能不能
ping通
192.168.1.10 和 192.168.2.11 不在同一个网段,无法直接 ping 通,需要路由器,路由器负责连接两个不同的网段。
判断是否连通有两种方式:
- 在主机的命令提示符中使用
ping命令 - 点击仿真,发包并播放观察,相当于是一步一步来的,断点调试模式。
不在同一个网段是不能直接
ping通的,而是需要路由器,路由器用来连接不同的网段。
ping的时候走的就是ICMP协议
需要用 交叉线(不是直通线)
- 相同设备之间使用的是
交叉线 - 不同设备之间使用的是
直通线
ARP 协议的作用:已知 IP 地址,通过 广播 获取 MAC 地址。(因为数据是通过网卡(MAC)来接收的,广播要在同一个网段中才能传播)【ARP是有缓存的,ping 命令实际上就是使用的 ICMP 协议,在ICMP 之前会先走 ARP 协议(广播)来获取 MAC 地址】就是广播,跟我连着的我都发送出去,广播是在同一个网段中传播的,不同的网段是隔绝广播的。
为什么下面出现 3 个 ARP 包,实际上是 一次完整的发送请求,接收响应的过程。【看当前设备:最开始在计算机 0,然后计算机 0 将数据发送给计算机 1,最后计算机 1 将数据发送给计算机 0,也就是自己的 MAC 地址】
刚开始时主机
192.168.1.20和 主机192.168.1.21不知道对方的MAC地址,因此需要通过ARP协议【广播,即计算机0相连的都发数据出去,广播是在同一个网段(使用子网掩码确定)中传播的,发广播的目的是获取对方的MAC地址】来获取MAC地址。
MAC地址是FFFF.FFFF.FFFF全1的代表这是一个广播地址,同一个网段的网卡都能接收到。
小结:
-
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 )
缺点:
- 半双工通信 : 同一时刻只能发送或者接收数据(不能同时接收, 同时发送)
-
半双工通信:同一时间只允许一方发送数据。终结电阻:吸收信号,避免又被弹回来。
-
容易冲突【给每台设备都发一遍】电缆两个方向同时又数据汇入时,会发生冲突。
-
不安全 数据不会单向走入对应的计算机,而是向所有设备发送数据【本来不是给我的,但是我也可以抓包获取数据】
-
注意:同轴电缆只要有一个地方线断了,整个线路都瘫痪了。
6.3 计算机之间的连接方式 - 集线器( Hub )
相当于同轴电缆的升级版。
集线器也需要相同网段才能够通信
集线器相比同轴电缆唯一的优点就是:哪怕连着集线器的某一个设备中间线路出问题,不会影响到连着集线器的其他设备。
缺点: 获取MAC地址的时候, 会给相同网段的所有设备都发ARP协议(造成广播风暴), 获取MAC, 通过ICMP发送数据包也会给所有的设备发送, 这样会占用带宽
集线器没有智商,没有记忆,跟它连着的都会发过去【广播发送】
计算机 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 地址。
相同设备之间都是用的交叉线进行连接,不同设备直接使用直通线进行连接。
如果有1000多台设备使用集线器连接起来,如果从一台主机发送给另外一台主机,ARP的时候给每个都发一遍,ICMP的时候又给每个都发送一遍,占用带宽。设备越多效率越低。
6.4 计算机之间的连接方式 - 网桥( Bridge )
有记忆,接口
MAC地址网桥的左边有计算机
6的MAC地址 【网桥记录左边有计算机6】网桥的右边有计算机
2的MAC地址给存下来通过
ARP协议得到MAC地址之后通过ICMP协议ping
计算机
6ping 计算机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 地址在左还是在右。【那么网桥两边的可以同时通信了】
例如,6 向 7 发数据包,
当 6 发出请求 ARP 广播时,网桥会记录 6 的 MAC 地址在左;
当 7 发出响应 ARP 广播时,网桥会记录 7 的 MAC 地址在左。
left:6的MAC地址right:2的MAC地址left:7的MAC地址
当计算机 6 再向计算机 7 发送数据包的时候,发现 7 在自己的左边,就不会让数据包过去了,数据不会去网桥的另外一边。
使用网桥之后就可以隔绝冲突域,但是网桥只有两个口
同一边的还是无法隔绝,所以交换机就来了
6.5 计算机之间的连接方式 - 交换机( Switch )
- 集线器 + 网桥 的功能 = 交换机
交换机直接连接计算机, 每个接口都记录了计算机的MAC地址(第一次还是通过广播, 交换机学习到同一网段中所有计算机的MAC地址)- 交换机会记录每个端口的
MAC地址
相当于一个多口的网桥,升级版的网桥,有好多的接口,可以学习每个接口的 MAC 地址,不是的就不发了。就是每个接口都能记住对应的 MAC 地址。
交换机有记忆功能
会学习每个接口的
MAC地址,当再次发送的时候,不会发送给地址不符合的接口
同一个网段就能广播
计算机0 ping计算机4,首先交换机广播给计算机1、2、4,计算机1、2直接丢弃,计算机4返回并且由于交换机记住了接口和计算机0MAC地址的对应关系,因此不会广播,而是直接将数据包发送给计算机0,同时交换机记录了计算机4和接口的对应关系。
进行ICMP的时候,计算机0可以通过交换机直接将数据包发送给计算机4而不会广播,因为交换机已经知道计算机4在哪了。
若全球所有设备都用交换机连接:
- 他们必然处于同一网段,因此
IP地址可能会不够用 - 即使使用交换机,第一次发送数据包仍然需要
ARP广播,耗费大量时间。 - 形成广播风暴,只要有一个设备发送
ARP广播,全球设备都能收到 【ARP找MAC地址】
6.6 计算机之间的连接方式 - 路由器( Router )
跨网段通信, 连接不同网段的计算机
交换机,集线器连接的所有设备都在同一个网段,在同一个广播域
网桥:隔绝冲突域
交换机:把不同的设备放到同一个网段
路由器:隔绝广播域(不同网段),在同一个网段中才能广播
中间必须是路由器,如果是交换机的话,两边就不通了,因为交换机必须是同一个网段的。所以中间需要使用路由器。
配置网关:
每个交换机组成的计算机通信, 相当于一个局域网。多个局域网(不同网段)之间通信使用网关, 路由器中包含了网关, 所以一般通过路由器来解决不同网段之间通信, (网关接口要和不同的局域网中的ip地址要在同一网段)
主机发数据之前,首先会判断目标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地址跟它是否在同一个网段
- 在同一个网段:ARP、通过交换机/集线器传递数据
- 不在同一个网段:通过路由器转发数据
- 主机先发送
ARP到路由器网关,确定网关MAC地址(路由器网关要和发送主机在同一网段)。- 主机发送数据给
网关,网关再决定出口是哪个网关。- 在
出口网关发送ARP,以确认接收方MAC地址。- 最后
出口网关将数据发送给接收方。网关(GateWay):如果想跨网段发送数据,就需要使用网关,左边一个网段,右边一个网段。路由器的接口有一个网关,左边的网关为左边的局域网服务(与左边同一网段),右边的网关为右边的局域网服务(与右边同一网段)。来到网关之后就具备了跨网段传输的能力。
平常生活中
192.168.0.1就是配置网关。不在同一个网段,一定需要走路由器,因此先拿到网关的mac地址。有192.168.4.1网关将数据给192.168.4.11,再来一次ARP广播获取mac地址,icmp发送数据包。
中间放一个路由器两边必须是不同的网段,如果两边是相同的网段是发不过去的。
主机在发数据之前,首先会判断目标主机的 IP 地址跟它是否在同一个网段:
- 在同一个网段:
ARP广播、通过 交换机/集线器 传递数据 - 不在同一个网段:通过路由器转发数据
- 网关(
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 标准规定。
- 前
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
修改 MAC 地址:更改适配器选项-属性-配置-高级-网络地址(填写的时候需要把 减号 - 去掉)
注: 有时可以通过修改 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地址 - 后来被
BOOTP、DHCP所取代
7.5 ICMP(Internet Control Message Protocol)
ICMP (Internet Control Message Protocol),互联网控制消息协议
IPv4中的ICMP被称作ICMPv4,IPv6中的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
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
网络ID
0不能用,127作为保留网段。- 其中
127.0.0.1是 本地环回地址(Loopback),代表本机地址 - 可以分配给主机的第1部分的取值范围是:
1~126
主机ID
- 第2、3、4部分的取值范围是:
0~255 - 每个A类网络能容纳的最大主机数是:
B类地址:默认子网掩码是 255.255.0.0
网络ID
- 第1部分的取值范围是:
128~191 - 第2部分的取值范围是:
0~255 - 网段的整体范围是
128.0~191.255
主机ID
- 第3、4部分的取值范围是:
0~255 - 每个B类网络能容纳的最大主机数是:
C类地址:默认子网掩码是 255.255.255.0
目前用的最多的是 C类地址!
网络ID
- 第1部分的取值范围是:
192~223 - 第2、3部分的取值范围都是:
0~255 - 整体范围是
192.0.0~223.255.255
主机ID
- 第4部分的取值范围是:
0~255 - 每个C类网络能容纳的最大主机数是:
D类地址:没有子网掩码,用于多播(组播)地址
以 1110 开头,多播地址
第一部分取值范围是:224~239
E类地址:以 1111 开头,保留为今后使用
第一部分取值范围是:240~255
子网掩码的CIDR表示方法(192.168.1.100/24)
CIDR (Classless Inter-Domain Routing),无类别域间路由
子网掩码的 CIDR 表示方法
192.168.1.100/24,代表子网掩码有24个1,也就是255.255.255.0123.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个、最后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 个子网:
等分成 4 个子网:
等分成 4 个子网的广播地址:
等分成 8 个子网:
9.4 等长子网划分 - A、B类子网划分
B类子网划分:
A类子网划分 :
10.172.168.20/24是在A类地址中划分出来的子网段,注意判断A类B类只看前面的网络号,后面的都是在这个基础上进行子网划分。
9.5 子网划分实践
如此划分,他们还是属于同一个网段,可以直接 ping 通。
下面这样划分就不是一个网段了,它们分别属于 192.168.0.0 和 192.168.0.128 网段,需要用路由器并设置网关才可以 ping 通。
注:经过评论区老哥提醒,下图 192.168.0.129/25 和 192.168.0.1/25 写反了。。
变长子网划分
可以计算一下网络号
思考题:双方子网掩码不同,计算对方所处网段
问:下列两台计算机可以正常通信吗?
计算机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/24、192.168.1.0/24为一个网段:192.168.0.0/23(子网掩码往左移动1位,直接减少一个1,主机位变成9个二进制位,网络位变成23位)
问:192.168.0.255/23 这个IP地址,可以分配给计算机使用么?
192.168.0.255/24是广播地址,不能分配给计算机使用。
192.168.0.255/23如下:
主机部分并不全为1(有011111111共9位),所以是可以分配给计算机使用的。192.168.1.255/23不能分配给计算机使用,因为这是一个广播IP地址。
10.1 合并4个网段
子网掩码向左移动2位,可以合并4个网段
将192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 合并为 192.168.0.0/22 网段
主机位由原来的8位变成了10位。
10.2 子网合并的规律
思考:下面的2个网段,能通过子网掩码向左移动1位进行合并么?不可以!!!
假设是的次幂(k≥1),子网掩码左移位能够将能够合并 n 个网段
假设 n 是 2 的次幂(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
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类超网)