IP协议知识点总结

时间:2024-11-07 21:26:13

IP协议主要分为三个
1. 地址管理
每个网络上的设备, 要能分配一个唯一的地址

2. 路由选择
小A 给小B 发消息, 具体应该走什么路线

3. 地址管理
在这里插入图片描述
IP 地址. 本质上是一个 32 位的整数
通常将, 32 位的整数使用点分十进制来表示, 如 192.168.1.1
一共可以表示 42 亿 9 千万个地址

但是目前这些 IP 地址并不够用

如何解决 IP 不够用的问题呢???

1. 动态分配 IP 地址

设备上网才分配, 不上网就不分配 -> 这样就可以剩下一大批的 IP 地址

但是并没有增加 IP 地址的数量, 只能一定程度上缓解, 并不能彻底解决问题

2. NAT 机制

将所有的 IP 地址分成两大类

  • 内网 IP:10.*       172.16.*       172.31.*       192.168.*
  • 外网 IP : 剩下的 IP

  • 内网 IP: 可以重复出现 (在不同的局域网中)
  • 外网 IP: 必须是唯一

  • 内网设备如果要访问外网的话, 会给他分配一个外网 IP
  • 这个外网 IP 不是这个设备独占的, 而是内网中的所有设备都共用这一个外网 IP

小栗子

比如我上网买个衣服
收货地址 : 福建省, 福州市, xxxx大学
而一个大学有上万人, 每个人都填这个大学, 这个大学地址是唯一的, 但是代表的人不是唯一
大学里的人就是内网, 里面的人都用同一个外网的 IP


简单模拟一下内网访问外网
在这里插入图片描述
在之后, 当服务器发送响应数据报的时候, 路由器本身知道替换, 所以将数据报各自发给我和小a 的主机

由于 NAT 机制, 导致电脑处在内网中, 无法被外部直接访问


两个误区

  1. 不是所有的数据通过路由器转发, 就一定会触发 NAT 功能
  2. 只要求外网的 IP 必须唯一, 但是内网的 IP 在不同的局域网里是允许重复的 (同一个局域网内不允许重复)

在 NAT 的背景下如何进行通信???

  • 外网设备 -> 外网设备, 不需要任何的 NAT, 就可以直接通信
  • 内网设备 -> 其他的内网设备, 不允许 ×
  • 外网设备 -> 内网设备, 不允许 ×
  • 内网设备 -> 外网设备, 对应的内网设备的路由器, 触发 NAT 机制, 进行 IP 替换, 此时会将这个数据报的源 IP 替换成路由器的 IP

通过 动态分配 + NAT ==> 解决 IP 地址不够用的问题


补充

DHCP是路由器自动给你的设备分配一个局域网内唯一一个 IP


IPv6

IPv4 是使用传统的 IP 协议, 使用 4 个字节, 32 位来表示 IP 地址
IPv6 是新的 IP协议, 使用 16个字节, 128 位来表示 IP 地址


IP 地址的组成

IP 地址分为两个部分, 网络号和主机号

  • 网络号:标识网段,保证相互连接的两个网段具有不同的标识 -> 标识一个局域网
  • 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号 -> 标识一个局域网内部的主机

一个路由器中, 有两个 IP 地址, 分别是在不同的局域网里
路由器的作用 -> 把两个局域网连起来
WAN:用于连接外部网络, 通常连接到互联网, 属于广域网接口
LAN:用于连接内网设备, 提供本地网络的连接, 属于局域网接口

在这里插入图片描述
在这里插入图片描述
比如以上我画的拓扑图, 其中路由器就是把两个局域网连接到了一起,
此时这两个局域网就被称作 " 相邻 " 的局域网, 这两个局域网的网络号是不可以重复的


IP 地址的划分

1. (ABCDE)划分

在这里插入图片描述

这种早已不再使用, 只有教科书中会考, 所以了解即可

2. 子网掩码

如图是我的电脑的 IP 地址 以及子网掩码
在这里插入图片描述
IP 地址的前 24 位都是网络号, 因为都是 1 , 剩下的八位是主机号


特殊的 IP 地址

假设子网掩码是 255.255.255.0

  • 主机号为 0 的 IP       192.168.0.0 局域网内不应该存在某个主机的主机号为 0

  • 主机号全为1       192.168.0.255 是广播地址, 向这个地址发送 UDP 数据报, 此时这个数据报就会被转发给整个局域网的所有主机

  • IP 为 127 开头的比如 127.* 称作环回 IP 127.0.0.1 (是最常用的) 其他如127.1.1.1 也都是环回 IP , 环回 IP 有很多个

  • 主机号为 1 的比如图上的 192.168.3.1 一般作为网关 IP (指的是大部分情况下, 并不是强制的)


路由选择

比如你要从 A -> B 其中有很多的路线, 具体路线应该如何走, 这就是路由选择需要做的事情

由于网络环境非常复杂, 某一个路由器无法将网络环境全部记录下来

路由器只能记录周围的情况 (也就是只知道附近的路由器是谁)
路由器内部使用 路由表 这种数据结构来记录周围邻居的信息

实际的转发过程, 类似像问路一样, 不断接近最终目标

在这里插入图片描述

如图, IP 数据报在转发的过程中, 就是不断问路的过程

  • 由于每个路由器只认识自己周围的情况, 很可能想去的地方, 其实并不知道 (目的 IP 在路由表中, 没有匹配的结果)

  • 如果在自己的表中找不到, 此时就会给你指出一条默认的路径, (路由表中的 “下一条表项” ) ==> 把 IP 数据报指引向更上级的路由器(越上级的路由器就知道越多的内容)

以上是路由选择转发的过程**(简化版)**

其中细节部分还有 路由表是如何生成的, 路由表如何进行匹配 …(具体不多阐述)