网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网

网络协议从入门到底层原理

  • 互联网(internet)
  • 为什么要学习网络协议
  • 客户端-服务器
  • 跨平台的原理(Java、C++)
  • 网络互连模型(OSI参考模型)
  • 计算机之间的通信基础
    • 计算机之间的连接方式 - 网线直连
    • 计算机之间的连接方式 - 同轴电缆(Coaxial)
    • 计算机之间的连接方式 - 集线器(Hub)
    • 计算机之间的连接方式 - 网桥(Bridge)
    • 计算机之间的连接方式 - 交换机(Switch)
    • 计算机之间的连接方式 - 路由器(Router)
  • MAC地址(40-55-82-0A-8C-6D)
    • MAC地址的表示格式(Windows、Linux)
    • MAC地址操作(`ipconfig /all`)
    • MAC地址的获取(`arp -a`)
  • IP地址(127.0.0.1)
    • IP地址的组成(网络ID + 主机ID)
    • IP地址的分类(A类、B类、C类、D类、E类)
    • 子网掩码的CIDR表示方法(192.168.1.100/24)
  • 子网划分
    • 为什么要进行子网划分?
    • 子网划分
    • 等长子网划分 - C类子网划分(2、4、8等分)
    • 等长子网划分 - A、B类子网划分
    • 子网划分实践
    • 变长子网划分
    • 思考题:双方子网掩码不同,计算对方所处网段
  • 超网 - 合并网段
    • 合并4个网段
    • 子网合并的规律
  • 判断一个网段是子网还是超网

互联网(internet)

网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第1张图片
数据是如何从一个设备传递到另一个设备的?
答:网络协议

为什么要学习网络协议

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

  • 最熟悉的网络协议:HTTP
  • 为了满足各种需求,有各式各样的网络协议(HTTPS、SMTP、MQTT、RTMP等)

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

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

客户端-服务器

网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第2张图片
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第3张图片

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

Java跨平台的原理:
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第4张图片
解释型语言跨平台的原理与 Java 类似:例如 JavaScript,甚至不需要经过编译,有浏览器即可解析。


C++跨平台的原理:使用平台相关的编译器生成对应平台的可执行文件
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第5张图片

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

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

  • 协议就是通用的标准
    如果没有一个国际通用的标准,那么各大公司按照自己的标准来,相互之间的交互就会很麻烦。比如我编写的代码在微软的服务器可以运行,但是要在苹果的服务器运行又需要重新编写…

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

实际上 OSI参考模型(7层) 更偏理论,而 TCP/IP 协议(4层) 在才是在实际中使用的协议,而为了研究和学习计算机网络,又常将之划分为 5层
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第6张图片
请求过程:不管什么协议都是经过下列的 包装 + 解包 的过程。
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第7张图片

计算机之间的通信基础

1、需要得知对方的 IP地址

2、最终是根据 MAC地址(网卡地址),输送数据到网卡,被网卡接收

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

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

需要用 交叉线(不是直通线)
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第8张图片

ARP协议的作用:已知 IP地址,通过 广播 获取 MAC地址。

为什么右边出现3个ARP包,实际上是 一次完整的发送请求,接收响应的过程
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第9张图片

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

网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第10张图片
注意:同轴电缆只要有一个地方线断了,整个线路都瘫痪了。

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

网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第11张图片
集线器相比同轴电缆唯一的优点就是:哪怕连着集线器的某一个设备中间线路出问题,不会影响到连着集线器的其他设备。

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

网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第12张图片
所谓隔绝冲突域是通过:记录设备的MAC地址在左还是在右

例如,6向7发数据包,
当6发出请求ARP广播时,网桥会记录6的MAC地址在左;
当7发出响应ARP广播时,网桥会记录7的MAC地址在左。
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第13张图片

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

网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第14张图片
若全球所有设备都用交换机连接:
1、他们必然处于同一网段,因此 IP地址可能会不够用
2、即使使用交换机,第一次发送数据包仍然需要ARP广播,耗费大量时间。
3、形成广播风暴,只要有一个设备发送ARP广播,全球设备都能收到

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

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

  1. 在同一个网段:ARP广播、通过 交换机\集线器 传递数据
  2. 不在同一个网段:通过路由器转发数据

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

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

路由器

  • 可以在不同网段之间转发数据
  • 隔绝广播域

网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第15张图片

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

每个网卡都有一个 6字节(48bit) 的 MAC地址(Media Access Control Address)

MAC地址全球唯一,固化在网卡的ROM中,由 IEEE802 标准规定

  • 前3字节:OUI(Organizationally Unique Identifier),组织唯一标识符
    由 IEEE 的注册管理机构分配给厂商
  • 后3字节:网络接口标识符
    由厂商自行分配
    在这里插入图片描述

OUI 查询:

  • http://standards-oui.ieee.org/oui.txt
  • https://mac.bmcx.com/

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地址操作(ipconfig /all

查看MAC地址:ipconfig /all

修改MAC地址:更改适配器选项-属性-配置-高级-网络地址(填写的时候需要把 减号- 去掉)
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第16张图片
注: 有时可以通过修改 MAC地址蹭网。。。。

MAC地址的获取(arp -a

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

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

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

IP地址(127.0.0.1)

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

  • 最初是 IPv4 版本,32bit(4字节),2019年11月25日,全球的IP地址已经用完
  • 后面推出了 IPv6 版本,128bit(16字节)
  • 我们在学习中讨论的都是 IPV4
    网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第17张图片

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

IP地址 由2部分组成:网络标识(网络ID)、主机标识(主机ID)

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

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

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  

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

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

该网段最多有 256*256-2 个IP地址
-2是因为: 全0代表网段,全1代表广播
网段和广播无法分配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
在这里插入图片描述
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第18张图片
网络ID

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

主机ID

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

B类地址:默认子网掩码是 255.255.0.0
在这里插入图片描述
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第19张图片
网络ID

  • 第1部分的取值范围是:128~191
  • 第2部分的取值范围是:0~255

主机ID

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

C类地址:默认子网掩码是 255.255.255.0
目前用的最多的是 C类地址!
在这里插入图片描述
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第20张图片
网络ID

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

主机ID

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

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.0
  • 123.210.100.200/16,代表子网掩码有16个1,也就是 255.255.0.0

计算工具:https://www.sojson.com/convert/subnetmask.html

子网划分

为什么要进行子网划分?

如果需要让 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地址资源?

  • 合理进行 子网划分

子网划分

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

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

子网划分器:http://www.ab126.com/web/3552.html

子网划分的步骤

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

等长子网划分 - 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 个子网:
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第21张图片
等分成 4 个子网:
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第22张图片
等分成 4 个子网的广播地址
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第23张图片
等分成 8 个子网:
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第24张图片

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

B类子网划分:
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第25张图片
A类子网划分 :
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第26张图片

子网划分实践

如此划分(,他们还是属于同一个网段,可以直接 ping 通。
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第27张图片
下面这样划分就不是一个网段了,分别属于 192.168.0.0192.168.0.128 网段,需要用路由器并设置网关才可以 ping 通。
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第28张图片

变长子网划分

网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第29张图片

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

问:下列两台计算机可以正常通信吗?
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第30张图片
答:不可以。计算机0 想要发送数据包,先判断计算机1是否和自己处于同一个网段,计算网段的方法是:IP地址 & 子网掩码,计算机0判断计算机1的网段为 192.168.10.10 & 255.255.255.0 = 192.168.10.0,而计算机0判断自身所处网段为 192.168.0.10 & 255.255.255.0 = 192.168.0.0,双方不处于同一网段,所以计算机0无法将数据包发给计算机1(不同网段的数据通信需要路由器)
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第31张图片
解决方案:利用路由器。
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第32张图片

超网 - 合并网段

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

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

  • 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) — 基本概念、MAC地址、IP地址、子网划分、超网_第33张图片

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

  • 192.168.0.255/24 是广播,不能分配给计算机。
  • 192.168.0.255/23 如下:
    在这里插入图片描述
    主机部分并不全为1,所以是可以分配给计算机使用的。

合并4个网段

子网掩码向左移动 2 位,可以合并 4 个网段
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第34张图片
将 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 网段

子网合并的规律

假设 n 是 2 的 k 次幂(k≥1),子网掩码左移 k 位能够将能够合并 n 个网段
网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第35张图片
假设 n 是 2 的 k 次幂(k≥1),如果第一个网段的网络号能被 n 整除,那么由它开始连续的 n 个网段,能通过左移 k 位子网掩码进行合并。

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

网络协议从入门到底层原理(1) — 基本概念、MAC地址、IP地址、子网划分、超网_第36张图片

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

首先看该网段的类型,是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 位,比默认,所以是子网

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

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

你可能感兴趣的:(网络协议从入门到底层原理,网络协议,交换机,网络)