IP基础知识

发布时间 2023-11-07 16:21:51作者: 桂洛克船长

一.IP基本认识

​ IP在TCP/IP模型中处于第三层,也就是网络层

​ 网络层的主要作用:实现主机与主机之间的通信,也叫点对点通信

IP 的作用

网络层与数据链路层有什么关系?

​ 在上面我们知道IP的作用是主机之间通信用的。而MAC的作用则是直连的两个设备之间通信,而IP则负责在没有直连的两个网络之间进行通信传输。简单来说就是网络层确定最终的目标地址,链路层则是在中间交换用的,详情见详解路由跳表。

二.IP地址主要内容

​ IP地址(IPv4)由32位正整数表示,为了方便记忆采用了点分十进制的标记方式,也就是将 32 位 IP 地址以每 8 位为组,共分为 4 组,每组以「.」隔开,再将每组转换成十进制。那么,IP地址的最大值就是2的32次方,也就是4294967296,最大允许 43 亿台计算机连接到网络。实际上,IP 地址并不是根据主机台数来配置的,而是以网卡。像服务器、路由器等设备都是有 2 个以上的网卡,也就是它们会有 2 个以上的 IP 地址。

IP地址的分类

​ IP 地址分类成了 5 种类型,分别是 A 类、B 类、C 类、D 类、E 类。

IP 地址分类

​ 上图中黄色部分为分类号,用以区分 IP 地址类别。

什么是A、B、C类地址?

​ 其中对于 A、B、C 类主要分为两个部分,分别是网络号和主机号

img

​ 计算结果都要减2,因为要减去0.0.0.0 和 1.1.1.1

  • 主机号全为 1 指定某个网络下的所有主机,用于广播
  • 主机号全为 0 指定某个网络
什么是D、E类地址?

​ 而 D 类和 E 类地址是没有主机号的,所以不可用于主机 IP,D 类常被用于多播,E 类是预留的分类,暂时未使用。

img

广播与多播

  • 广播地址用于在同一个链路中相互连接的主机之间发送数据包
  • 多播用于将包发送给特定组内的所有主机。

IP分类的优点?

​ 不管是路由器还是主机解析到一个 IP 地址时候,我们判断其 IP 地址的首位是否为 0,为 0 则为 A 类地址,那么就能很快的找出网络地址和主机地址。

IP 分类判断

​ 第几位是0就是ABCD推。第一位,A,二,B.......

IP分类的缺点

缺点一:

同一网络下没有地址层次缺少地址的灵活性

缺点二:

​ A、B、C类有个尴尬处境,就是不能很好的与现实网络匹配

  • C 类地址能包含的最大主机数量实在太少了,只有 254 个,估计一个网吧都不够用。
  • 而 B 类地址能包含的最大主机数量又太多了,6 万多台机器放在一个网络下面,一般的企业基本达不到这个规模,闲着的地址就是浪费。

公有IP地址和私有IP地址

​ 在 A、B、C 分类地址,实际上有分公有 IP 地址和私有 IP 地址。

img

IP地址与路由

​ IP地址的网络地址这一部分是用于进行路由控制。

​ 路由控制表中记录着网络地址与下一步应该发送至路由器的地址。在主机和路由器上都会有各自的路由器控制表。

​ 在发送 IP 包时,首先要确定 IP 包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。如图:

IP 地址与路由控制

  1. 主机 A 要发送一个 IP 包,其源地址是 10.1.1.30 和目标地址是 10.1.2.10,由于没有在主机 A 的路由表找到与目标地址 10.1.2.10 相同的网络地址,于是包被转发到默认路由(路由器 1
  2. 路由器 1 收到 IP 包后,也在路由器 1 的路由表匹配与目标地址相同的网络地址记录,发现匹配到了,于是就把 IP 数据包转发到了 10.1.0.2 这台路由器 2
  3. 路由器 2 收到后,同样对比自身的路由表,发现匹配到了,于是把 IP 包从路由器 210.1.2.1 这个接口出去,最终经过交换机把 IP 数据包转发到了目标主机

环回地址不会流向网络

​ 环回地址是在同一台计算机上的程序之间进行网络通信时所使用的一个默认地址。

​ 计算机使用一个特殊的 IP 地址 127.0.0.1 作为环回地址。与该地址具有相同意义的是一个叫做 localhost 的主机名。使用这个 IP 或主机名时,数据包不会流向网络。

拓展区别:
  1. 127.0.0.1:
    • 127.0.0.1是IPv4下的本地回环地址,通常用于本地主机进行自我测试和通信。当计算机尝试连接到127.0.0.1时,实际上是在与本地计算机进行通信,数据不会通过网络接口传输,而是在本机内部进行循环处理。
  2. 0.0.0.0:
    • 在网络编程中,0.0.0.0通常表示通配地址或未指定地址,它不是真正的可分配IP地址,而是用于指示当前主机的所有IP地址或绑定所有网络接口。当服务监听0.0.0.0时,表示该服务将接受来自任何网络接口的连接。
  3. localhost:
    • localhost是一个主机名,通常映射到IP地址127.0.0.1。这个主机名通常被用于在本地主机上访问自身所提供的服务。在大多数操作系统中,localhost会被映射到IPv6地址::1,以支持IPv6协议。

IP 协议相关技术

1.DNS

​ 详情翻阅前几篇文章。

2. ARP

​ 简单地说,ARP 是借助 ARP 请求与 ARP 响应两种类型的包确定 MAC 地址的。

ARP 广播

  • 主机会通过广播发送 ARP 请求,这个包中包含了想要知道的 MAC 地址的主机 IP 地址。
  • 当同个链路中的所有设备收到 ARP 请求时,会去拆开 ARP 请求包里的内容,如果 ARP 请求包中的目标 IP 地址与自己的 IP 地址一致,那么这个设备就将自己的 MAC 地址塞入 ARP 响应包返回给主机。

3.RARP

​ ARP 协议是已知 IP 地址求 MAC 地址,那 RARP 协议正好相反,它是已知 MAC 地址求 IP 地址

4.NAT

​ 简单的来说 NAT 就是同个公司、家庭、教室内的主机对外部通信时,把私有 IP 地址转换成公有 IP 地址。

NAPT

​ 图中有两个客户端 192.168.1.10 和 192.168.1.11 同时与服务器 183.232.231.172 进行通信,并且这两个客户端的本地端口都是 1025。

​ 此时,两个私有 IP 地址都转换 IP 地址为公有地址 120.229.175.121,但是以不同的端口号作为区分。

​ 于是,生成一个 NAPT 路由器的转换表,就可以正确地转换地址跟端口的组合,令客户端 A、B 能同时与服务器之间进行通信。

NAT缺点:

​ 由于 NAT/NAPT 都依赖于自己的转换表,因此会有以下的问题:

  • 外部无法主动与 NAT 内部服务器建立连接,因为 NAPT 转换表没有转换记录。
  • 转换表的生成与转换操作都会产生性能开销。
  • 通信过程中,如果 NAT 路由器重启了,所有的 TCP 连接都将被重置。
解决办法:

​ 第一种就是改用 IPv6。

​ 第二种 NAT 穿透技术,NAT 穿透技术拥有这样的功能,它能够让网络应用程序主动发现自己位于 NAT 设备之后,并且会主动获得 NAT 设备的公有 IP,并为自己建立端口映射条目,注意这些都是 NAT设备后的应用程序自动完成的。就是客户端主动从 NAT 设备获取公有 IP 地址,然后自己建立端口映射条目,然后用这个条目对外通信,就不需要 NAT 设备来进行转换了。

5.ICMP

ICMP 主要的功能包括:确认 IP 包是否成功送达目标地址、报告发送过程中 IP 包被废弃的原因和改善网络设置等。

​ 在 IP 通信中如果某个 IP 包因为某种原因未能达到目标地址,那么这个具体的原因将由 ICMP 负责通知

ICMP 目标不可达消息