网络层主要提供寻址,路由的功能。而 IP 协议就是为了实现该功能而设计的。
IP 协议
IP 协议的特性
- 工作在网络层
- 面向无连接的协议
- 具有单独处理包的能力
- 分层的地址
- 不可靠,尽力而为的传送
- 独立的介质(不关心物理层的实现)
- 多版本:IPV4 / IPV6
A 为发送方,B 为接受方
面向连接:A 先和 B 沟通,是否可以接受数据。
面向无连接:无论 B 是否能接受协议,都会发送给 B.
IP 协议的功能
查找 IP 地址,并根据地址转发数据。
需要注意的是,在第一个路由器接受到的数据包大小超过 MTU 时,会将数据包拆分,之后在其他路由器上继续传递,然后在终端上进行重新组装。
IP 地址
每一个设备必须都有一个唯一的地址,并且该地址由两部分组成 网络地址 和 主机地址。对应可以理解成网络位表示一个大致的局域,而主机位表示该区域下具体的设备。举个现实的例子,在发送快递时,网络位表示的就是中国北京,而主机位表示的是具体哪个区,比如朝阳区等等更细致的信息。
IP 地址的分类:
A 类
0xxxxxxx (0-126) | xxxxxxxx | xxxxxxxx | xxxxxxxx |
---|---|---|---|
网络位 | 主机位 | 主机位 | 主机位 |
B 类
10xxxxxx (128 - 191) | xxxxxxxx | xxxxxxxx | xxxxxxxx |
---|---|---|---|
网络位 | 网络位 | 主机位 | 主机位 |
C 类
110xxxxx (192 - 223) | xxxxxxxx | xxxxxxxx | xxxxxxxx |
---|---|---|---|
网络位 | 网络位 | 网络位 | 主机位 |
组播地址:
1110xxxx (224-239) | xxxxxxxx | xxxxxxxx | xxxxxxxx |
---|---|---|---|
无要求 | 无要求 | 无要求 | 无要求 |
保留地址(目的是科研等):
1111 xxxx(240-254)
不能给主机使用的地址,特殊 IP 地址
网络号 | 主机号 | 含义 |
---|---|---|
全 0 | 主机号 ID | 本网络上的某个主机 |
网络号 ID | 全 1 | 定向广播地址,向网络号内的范围发送广播 |
网络号 ID | 全 0 | 某个网络的网络号/网络地址,用于表示范围 |
全 1 | 全 1 | 本地网络的广播地址, 接受范围是所有 IP |
全 0 | 全 0 | 本网络上的某个主机 |
公有地址:绝大多数的 A,B,C 三类地址是公有地址。
私有地址:不需要申请直接使用,可作为公司的内网地址
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
公有地址是运营商拥有的IP地址。
私有地址是不属于公有地址的,除本机环回口地址外的地址。
私有地址不可以访问公有地址。
子网掩码
子网掩码是一个 32 比特的数字,与 IP 地址一一对应,用来标识 IP 地址中哪些是网络位,哪些是主机位。
具体的方法:子网掩码中的 1 对应 IP 地址中的网络号和子网号,子网掩码中的 0 对应 IP 地址中的主机号
子网划分:借用主机位当成网络位去划分
为什么要进行子网划分:
- 安全性难以保证(通过路由器隔离广播)
- 浪费 IP 地址(通过路由器的端口自定义网络空间)
- 大量的广播帧浪费资源
交换机所连接的网络在同一网段。
冲突域:交换机的每一个端口同时只能选择接受或者发生数据,对应接口之间叫冲突域。
广播域:交换机收到广播帧或者未知的单播帧时会泛洪,广播给对应的所有接口。但广播帧不会过路由器,也就是跨网段。
例一: 某公司有四个部门,分别是 A,B,C,D,每个部门需要 20 个 IP 地址,该公司申请了一个 C 类地址块, 192.168.1.0/24,请给出合理的子网划分方案
按照主机位数划分:一共四个部分,每个部分最多 20 台主机
2^n - 2 >= 20, n = 5
原来的主机位为 8 位,改变后的网络只需要 5 位,所以剩下的 3 位为子网络位,划分后的 8 个网络为:
11000000.10101000.00000001.000|00000:192.168.1.0/27
11000000.10101000.00000001.001|00000:192.168.1.32/27
11000000.10101000.00000001.010|00000:192.168.1.64/27
11000000.10101000.00000001.011|00000:192.168.1.96/27
11000000.10101000.00000001.100|00000:192.168.1.128/27
11000000.10101000.00000001.101|00000:192.168.1.160/27
11000000.10101000.00000001.110|00000:192.168.1.192/27
11000000.10101000.00000001.111|00000:192.168.1.224/27
对于第一个网络来说:
网络地址为: 192.168.1.0/27
可用地址为: 192.168.1.1/27 ~ 192.168.1.30/27
广播地址为: 192.168.1.31/27
例二:某公司,A,B,C,D 四个部门,A 部门需要 100 个 IP 地址,B 部门需要 50 个 IP 地址,C 和 D 部门需要 25 个 IP 地址,现在公司申请了一个 C 类地址块,192.168.2.0/24.请给出合理的子网划分方案?
C 类地址一共能划分 126 主机 > 100 + 50 + 25 + 25, 可以划分
原网络如下:
192.168.2.0/24
11000000.10101000.00000010.00000000
11111111.11111111.11111111.00000000
第一次划分:
根据主机数量进行划分:A 需要 100 个 IP,2^n-2>100 ,n=7,划分后的网络如下:
11000000.10101000.00000010.0|0000000
11111111.11111111.11111111.1|0000000
剩下一个主机位,使该主机位成为新的子网络位
11000000.10101000.00000010.0|0000000:192.168.2.0/25
11000000.10101000.00000010.1|0000000:192.168.2.128/25
拿出第一个网络分给 A,剩下的网络 192.168.2.128/25,继续分配
第二次划分:
B 需要 50 个网络,2^n-2>50 ,n=6,划分后的网络如下:
11000000.10101000.00000010.10|000000
11111111.11111111.11111111.11|000000
又剩下一个主机位,使该主机位成为新的子网络位
11000000.10101000.00000010.10|000000:192.168.2.128/26
11000000.10101000.00000010.11|000000:192.168.2.192/26
拿出第一个网络分给 B,剩下的网络 192.168.2.192/26
,继续分配
第三次划分:
B 需要 25 个网络,2^n-2>25 ,n=5,划分后的网络如下:
11000000.10101000.00000010.110|00000
11000000.10101000.00000010.111|00000
又剩下一个主机位,使该主机位成为新的子网络位
11000000.10101000.00000010.110|00000:192.168.2.192/27
11000000.10101000.00000010.111|00000:192.168.2.224/27
将剩下的两个网络分给 C 和 D
例三:跨网段的划分
![子网划分](C:/Users/yuwzhang/Desktop/New folder (3)/bazingayi.github.io-pick_old_articles/assets/img/15105534808200.jpg)
首先确定共需要 8 个网络。每台路由器之间为一个网络(主机数为 2),共 4 个。右边的路由器单独又有一个网络,主机数为 50
然后根据主机数量划分,50 个 IP 地址,2^n-2>50 ,n=6。需要的网络主机位为 6
待划分的网络为:
172.16.32.0/20
10101100.00010000.0010|0000.00000000
11111111.11111111.1111|0000.00000000
由于需要 6 个主机位,所以从原网络中的 12 个主机位中使用 6 个当主机位,剩下的 6 个位置位网络位
10101100.00010000.00100000.00|000000
11111111.11111111.11111111.11|000000
划分后的新网络为:
10101100.00010000.00100000.00|000000:172.16.32.0/26
10101100.00010000.00100000.01|000000:172.16.32.64/26
10101100.00010000.00100000.10|000000:172.16.32.128/26
10101100.00010000.00100000.11|000000:172.16.32.192/26
10101100.00010000.00100001.00|000000:172.16.33.0/26
10101100.00010000.00100001.01|000000:172.16.33.64/26
10101100.00010000.00100001.10|000000:172.16.33.128/26
.....................................................
.....................................................
10101100.00010000.00101111.11|000000:172.16.47.192/26
划分后的网络总数为 2^6 = 64 个网络,每个网络中有 2^6 -2 = 62 个IP
然后从 64 个网络中拿出 4 个给需要 50 台主机的网络,然后再拿出一个网络需要 2 个主机 的 4 个网络
从 64 个网络中拿出一个网络:
10101100.00010000.00100001.00|000000:172.16.33.0/26
该网络有 6 个主机位,而现在每个网络中需要 2 个主机位,2^n-2>=2 ,n=2 所以主机位为 2,新的子网络位为 4
再次划分出的网络为:
10101100.00010000.00100001.000000|00:172.16.33.0/30
10101100.00010000.00100001.000001|00:172.16.33.4/30
10101100.00010000.00100001.000010|00:172.16.33.8/30
10101100.00010000.00100001.000011|00:172.16.33.12/30
10101100.00010000.00100001.000100|00:172.16.33.16/30
.....................................................
.....................................................
10101100.00010000.00100001.001111|00:172.16.33.60/30
共需要 4 个网络,从划分从 16 个网络中取出 4 个
最后余下 59 个 网络,每个网络中有 62 可用的 IP
和 12 个网络,每个网络中有 2 个可用的 IP