文章目录
- IP 协议的功能
- 1.IP 协议的路由选择
- 2.IP 协议的地址管理
- 2.1 网络号与主机号的分界
- 2.2 特殊 IP
IP 协议的功能
网络层主要做两件事:
-
地址管理
-
路由选择
网络层的代表就是 IP 协议
网络层主要是负责管理路由设备,要从两个结点之间找到一条具体的路径,要明确两个结点的地址才可以进行管理。
就好比快递系统想要建立起来,就需要先把世界上的地址能够以一定的规范定义出来。
路由选择其实也就是路径的规划。
1.IP 协议的路由选择
路由选择这个功能这里只是简单的介绍一下。
路由选择就是规划路径,相当于是使用的地图导航一下。
由于网络环境是非常复杂的,任何一个结点(路由器)都是无法感知到网络环境的全貌的。
因为一个路由器只认识它的一些邻居,或者是邻居的邻居。
如果是进行一个比较长的路径转发的时候,就比较麻烦,需要一边走,一边问。
路由选择的核心思路就是 问路,每个路由器都会保存一定的周围设备的信息。(路由表)
每次有一个 IP 数据报经过路由器,就需要匹配路由表,看看接下来怎么走。
如果路由表上有匹配的项(该路由器认识路),就直接按照要求走就可以了。
如果没有匹配的项,(路由器不认识路)会提供一个默认路径,大体方向是不会错的,会沿着这个方向继续走,继续问。
每经过一个路由器问一次,TTL 就会减少一次。如果减少到了 0 了,还没到,就说明这个包永远也到不了了。
这个地址就会没人知道,就会被丢弃了。
就比如说,我要到哪里去,但是不知道路怎么走,于是就回去问路。
当我问路的时候,就会有人告诉我具体怎么走,但是也会有人不认识路,我一边走,一边问,每一次都会更加接近目的地。
2.IP 协议的地址管理
一个 IP 地址被分成了两个部分,一个叫做 网络号,一个叫做 主机号。
- 网络号:标识网段,以保证相互连接的两个网段具有不同的标识,局域网
- 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。
例如,在一个 192.168.0.10 这样的 IP 地址中,
网络号是192.168.0 部分,主机号是10 部分。
下面举一个典型的局域网环境案例。
主机123 和 路由器都是在一个局域网里,这些局域网里的设备网络号都是 192.168.0,而主机号是不同的,
如果局域网里的主机号相同,就没法上网了。
路由器都是有两个 IP 分别属于不同的网段,换个说法也就是,路由器的功能就是把两个局域网连接到一起。
这两个相邻的局域网,网络号是不能相同的。
手机、主机4 和 光猫是处于同一个局域网里的,网络号是 192.168.1。
2.1 网络号与主机号的分界
一个 IP 地址 前面从哪到哪是网络号,后面从哪到哪是主机号,具体是怎么分界的?
这里其实涉及到了一个单独的概念,也就是 子网掩码。
打开 cmd 键入 ipconfig 查看 子网掩码。
上面得 255.255.255.0 就是我电脑的子网掩码。
网络号不一定就是 255.255.255,这是可以调整变化的。
将它变为二进制就是:
1111 1111 1111 1111 1111 1111 0000 0000 ,左边的都是 1 ,右边的都是 0 。
1 的部分就描述了 IP 有多少位是网络号。
2.2 特殊 IP
- 将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网;
- 将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有
主机发送数据包。 - 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1。
- 本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),
对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通
信。
比如说 192.168.0.255 就是一个广播地址,
使用 UDP 往这个地址上发数据报,整个局域网所有设备都能收到。
本机环回测试主要是用来测试程序是否能正常工作。
如果主机号是 1 ,比如:192.168.0.1,通常是网关 IP,但不是绝对的。