IP(Internet Protocol,互联网协议)是一种用于在网络中传输数据的协议,网络层的主要作用是:实现主机与主机之间的通信,也叫点对点(end to end)通信。
- IP地址的基础知识
IP地址是用来唯一标识计算机或网络设备在互联网上的位置。IPv4(Internet Protocol version 4)和IPv6(Internet Protocol version 6)是两个主要的IP地址版本。
IPv4地址:IPv4地址由32位二进制数字组成,通常以点分十进制形式表示,如192.168.0.1。IPv4地址空间有限,共有约42亿个可用地址。
IPv6地址:IPv6地址由128位二进制数字组成,通常以冒号分隔的八组十六进制数表示,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6地址空间巨大,提供了约340万亿亿亿亿(3.4×10^38)个可用地址。
- IP地址的分类
IP 地址分类成了 5 种类型,分别是 A 类、B 类、C 类、D 类、E 类。
其中对于 A、B、C 类主要分为两个部分,分别是网络号和主机号。
类别 |
IP地址范围 |
最大主机数 |
A |
0.0.0.0~127.255.255.255 |
16777214 |
B |
128.0.0.0~191. 255.255.255 |
65534 |
C |
192.0.0.0~223. 255.255.255 |
254 |
在 IP 地址中,有两个 IP 是特殊的,分别是主机号全为 1 和 全为 0 地址。
主机号全为 1 指定某个网络下的所有主机,用于广播
主机号全为 0 指定某个网络
而 D 类和 E 类地址是没有主机号的,所以不可用于主机 IP,D 类常被用于多播,E 类是预留的分类,暂时未使用。
类别 |
IP地址范围 |
用途 |
D |
224.0.0.0~239.255.255.255 |
IP多播 |
E |
240.0.0.0~255. 255.255.255 |
预留 |
多播用于将包发送给特定组内的所有主机。由于广播无法穿透路由,若想给其他网段发送同样的包,就可以使用可以穿透路由的多播。
使用IP分类的优点为选路简单。
- 无分类地址CIDR
因为IP分类不能很好的与现实网络匹配,缺少灵活性,所以后续提出了无分类地址CIDR.
32 比特的 IP 地址被划分为两部分,前面是网络号,后面是主机号。表示形式 a.b.c.d/x,其中 /x 表示前 x 位属于网络号, x 的范围是 0 ~ 32,这就使得 IP 地址更加具有灵活性。
还有另一种划分网络号与主机号形式,那就是子网掩码,掩码的意思就是掩盖掉主机号,剩余的就是网络号。
子网掩码是用来划分IP地址的网络地址部分和主机地址部分的辅助参数。它与IP地址结合使用,将网络划分为多个子网,以提供更灵活的网络管理和资源分配。
子网划分实际上是将主机地址分为两个部分:子网网络地址和子网主机地址。
- 公有 IP 地址与私有 IP 地址
公网IP是指能够直接在互联网上访问的IP地址,用于连接到公共网络。私有IP是指在一个局域网内的内部网络使用的IP地址,不直接暴露在互联网上。
- IP地址与路由
IP地址的网络地址这一部分是用于进行路由控制。IP地址用于确定数据包的源和目标位置,路由协议则用于确定数据包在网络中的传输路径。路由器根据目标IP地址来决定向哪个方向转发数据包,从而实现数据在互联网中的传输。
- Localhost 127.0.0.1不会流向网络
- IP分片和重组
由于每种数据链路的最大传输单元 MTU 都是不相同的,当数据包大小超过网络传输的最大限制时,IP协议会将数据包进行分片,并在目标主机上进行重组,以确保数据能够正确传输。在分片传输中,一旦某个分片丢失,则会造成整个 IP 数据报作废,所以 TCP 引入了 MSS 也就是在 TCP 层进行分片不由 IP 层分片,那么对于 UDP 我们尽量不要发送一个大于 MTU 的数据报文。