:::tips
- 网络层用来处理在网络上流动的数据报,网络层规定在互联网中如何到达目标计算机网络
该层依赖于 IP ,IP 的核心功能为: 地址和路由 - 数据链路层用来处理如何到达目标计算机网络中的指定计算机
该层依赖于 MAC 地址
:::
功能介绍
网络层功能:
- IP 寻址
- 选路
- 封装打包
- 分片
数据链路层功能:
- 逻辑链路控制
- 封装帧
- MAC 寻址
- 差错检测与处理
- 定义物理层标准
IPv4 分类地址
在数据链路层中我们一般通过 MAC 地址来识别不同的节点,而在 IP 层我们也要有一个类似的地址标识,这就是 IP 地址。 32 位 IP 地址(IPv4 地址的点分十进制表示)分为网络位和地址位,这样做可以减少路由器中路由表记录的数目,有了网络地址,就可以限定拥有相同网络地址的终端都在同一个范围内,那么路由表只需要维护一条这个网络地址的方向,就可以找到相应的这些终端了。 当互联网规律很小时,类别信息被编码进 IP 地址:IP 地址类别 | 首字节 | 网络号 Bit 数 | 主机号 Bit 数 | 理论地址范围 | 预期用途 |
---|---|---|---|---|---|
A 类地址 | 0xxx xxxx | 8 | 24 | 1.0.0.0 ~ 126.255.255.255 | 特大网络的单播传输 |
127.0.0.0 ~127.255.255.255 | 环回地址 | ||||
B 类地址 | 10xx xxxx | 16 | 16 | 128.0.0.0 ~ 191.255.255.255 | 数千台中大型网络的单播传输 |
C 类地址 | 110x xxxx | 24 | 8 | 192.0.0.0 ~ 223.255.255.255 | 250 台主机以下小型网络的单播传输 |
D 类地址 | 1110 xxxx | n/a | n/a | 224.0.0.0 ~ 239.255.255.255 | IP 多播 |
E 类地址 | 1111 xxxx | n/a | n/a | 240.0.0.0 ~ 255.255.255.255 | 预留实验用 |
:::info 保留 IP 地址:
- 第一个 IP 地址,比如在 192.168.1.0/24 网络中 192.168.1.0 来作为这个网络网络地址
- 最后一个 IP :比如在 192.168.1.0/24 网络中 192.168.1.255 来作为这个网络的广播地址
子网掩码:
- 网络部分使用 1 标识,主机部分使用 0 标识
- 将网络掩码和目标 IP 地址相与,就可以判断出目标是否在自己的 LAN 中,如果不在找默认网关
:::
126.252.236.124 # IP 地址
255.255.255. 0 # 网络掩码
126.252.236. 0 # 相与结果
|-| |--------| ---> 主机部分
|-| ---------------> 网络部分
通常来说我们上网的 IP 地址属于私有 IP 地址,这类 IP 具有不可路由的特性。
地址类别 | 地址范围 | 网段个数 |
---|---|---|
A | 10.0.0.0 ~ 10.255.255.255 | 1 |
B | 172.16.0.0 ~ 172.31.255.255 | 16 |
C | 192.168.0.0 ~ 192.168.255.255 | 256 |
CIDR 子网掩码
无类别域间路由(Classless Inter-Domain Routing,CIDR)是一个用于给用户分配 IP 地址以及在互联网上有效地路由 IP 数据包的对 IP 地址进行归类的方法。 表示方法:A.B.C.D/N(N 的范围 [0, 32])MAC 地址
- 链路层地址 MAC(Media Access Control Address) - 实现本地网络设备间的直接传输
- 网络层地址 IP(Internet Protocol address) - 实现大型网络间的传输
# Window
ipconfig / all
# Linux
ifconfig
IPv6
网际协议第 6 版(英语:Internet Protocol version 6,缩写:IPv6)是网际协议的最新版本,用作互联网的协议。用它来取代 IPv4 主要是为了解决 IPv4 地址枯竭问题,同时它也在其他方面对于 IPv4 有许多改进。 IPv6 目的:- 更大的地址空间:128 位长度
- 更好的地址空间管理
- 消除 NAT 等寻址技术
- 更简易的 IP 配置管理
- 优秀的选路设计
- 更好的多播支持
- 安全性
- 移动性
格式
IPv6 二进位制下为 128 位长度,以 16 位为一组,每组以冒号 : 隔开,可以分为 8 组,每组以 4 位十六进制方式表示。 例如:2001:0db8:86a3:08d3:1319:8a2e:0370:7344 是一个合法的 IPv6 地址。 类似于 IPv4 的点分十进制,同样也存在点分十六进制的写法,将 8 组 4 位十六进制地址的冒号去除后,每位以点号 . 分组。 例如:2001:0db8:85a3:08d3:1319:8a2e:0370:7344 则记为 2.0.0.1.0.d.b.8.8.5.a.3.0.8.d.3.1.3.1.9.8.a.2.e.0.3.7.0.7.3.4.4,其倒序写法用于 ip6.arpa 子域名记录 IPv6 地址与域名的映射。 同时 IPv6 在某些条件下可以省略:- 每项数字前导的 0 可以省略,省略后前导数字仍是 0 则继续,例如下组 IPv6 是等价的。
2001:0DB8:02de:0000:0000:0000:0000:0e13
2001:DB8:2de:0000:0000:0000:0000:e13
2001:DB8:2de:000:000:000:000:e13
2001:DB8:2de:00:00:00:00:e13
2001:DB8:2de:0:0:0:0:e13
- 可以用双冒号 :: 表示一组 0 或多组连续的 0,但只能出现一次:
- 如果四组数字都是零,可以被省略。遵照以上省略规则,下面这两组 IPv6 都是相等的。
2001:DB8:2de:0:0:0:0:e13
2001:DB8:2de::e13
2001:0DB8:0000:0000:0000:0000:1428:57ab
2001:0DB8:0000:0000:0000::1428:57ab
2001:0DB8:0:0:0:0:1428:57ab
2001:0DB8:0::0:1428:57ab
2001:0DB8::1428:57ab
- 2001::25de::cade 是非法的,因为双冒号出现了两次。它有可能是下种情形之一,造成无法推断。
如果这个地址实际上是 IPv4 的地址,后 32 位可以用 10 进制数表示;因此 ::ffff:192.168.89.9 相等于 ::ffff:c0a8:5909。 另外,::ffff:1.2.3.4 格式叫做 IPv4 映射地址。 IPv4 位址可以很容易的转化为 IPv6 格式。举例来说,如果 IPv4 的一个地址为 135.75.43.52(十六进制为 0x874B2B34),它可以被转化为 0000:0000:0000:0000:0000:FFFF:874B:2B34 或者 ::FFFF:874B:2B34。同时,还可以使用混合符号(IPv4-compatible address),则地址可以为 ::ffff:135.75.43.52
2001:0000:0000:0000:0000:25de:0000:cade
2001:0000:0000:0000:25de:0000:0000:cade
2001:0000:0000:25de:0000:0000:0000:cade
2001:0000:25de:0000:0000:0000:0000:cade