ip层的简单总结

2,112 阅读6分钟

简单介绍

在 TCP/IP 网络通信时,为了保证能正常通信,每个设备都需要配置正确的 IP 地址,否则无法实现正常的通信。

实际上,IP 地址并不是根据主机台数来配置的,而是以网卡。像服务器、路由器等设备都是有 2 个以上的网卡,也就是它们会有 2 个以上的 IP 地址。

IP 地址是由「网络标识」和「主机标识」这两个部分组成的。

因此,需要将 IP 地址分成两种意义:

  • 一个是网络号,负责标识该 IP 地址是属于哪个「子网」的。
  • 一个是主机号,负责标识同一「子网」下的不同主机。 就好比A单元101和B单元101号一样。

IP地址的划分

image.png

A、B、C 分类对应的地址范围、最大主机个数

image.png

如何计算最大主机数呢?

那就需要看主机位多少了。然后再减去2。

  • 主机号全为 1 指定某个网络下的所有主机,用于广播。
  • 主机号全为 0 指定某个网络。

广播地址干啥的

广播地址用于在同一个链路中相互连接的主机之间发送数据包

D, E类地址有什么用呢

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

多播用于什么呢

多播用于将包发送给特定组内的所有主机。

由于广播无法穿透路由,若想给其他网段发送同样的包,就可以使用可以穿透路由的多播。

IP分类的优点

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

IP地址的缺点

同一网络下没有地址层次,比如一个公司里用了 B 类地址,但是可能需要根据生产环境、测试环境、开发环境来划分地址层次,而这种 IP 分类是没有地址层次划分的功能,所以这就缺少地址的灵活性

不能很好的与现实网络匹配

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

这两个缺点,都可以在 CIDR 无分类地址解决。

无分类地址 CIDR

通过指定网络位号来分配ip地址。

表示形式 a.b.c.d/x,其中 /x 表示前 x 位属于网络号, x 的范围是 0 ~ 32,这就使得 IP 地址更加具有灵活性。

子网划分

子网划分实际上是将主机地址分为两个部分:子网网络地址和子网主机地址。

  • 未做子网划分的 ip 地址:网络地址+主机地址
  • 做子网划分后的 ip 地址:网络地址+(子网网络地址+子网主机地址)

然后根据子网网络地址来确定不同网段,然后计算出不同网段可用的地址范围。 image.png

公有 IP 地址与私有 IP 地址

私有IP地址

这些地址允许组织内部的 IT 人员自己管理、自己分配,而且可以重复。不同网段的ip地址可以重复。

公有IP地址

公有 IP 地址是有个组织统一分配的,假设你要开一个博客网站,那么你就需要去申请购买一个公有 IP,这样全世界的人才能访问。并且公有 IP 地址基本上要在整个互联网范围内保持唯一。

公有 IP 地址是由 ICANN 组织管理,叫做「互联网名称与数字地址分配机构」。

路由控制

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

路由器寻址工作中,也就是通过这样的方式来找到对应的网络号的,进而把数据包转发给对应的网络内。

在路由转化过程中,都是查找目的ip中的网络地址(这个是不会变的),来确定他在哪一个子网中。一步一步通过路由器将包转发到目的主机中。

环回地址

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

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

相关协议

ARP

因为在网络层封装好ip数据包后,通过路由器转发传到对应的链路中时,将需要mac地址进行传递数据包,所以就需要知道ip地址对应的mac地址。

那么他是如何工作的呢?

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

DHCP

我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大省去了配 IP 信息繁琐的过程。

DHCP 交互中,全程都是使用 UDP 广播通信

NAT

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

这种转化其实是没有意义的。但是他和端口配合起来,就可以缓解IPv4 地址耗尽的速度。将同一个网段下的不同ip地址转化为一个相同的ip地址,不同的端口号去访问目的服务器的志愿即可。

ICMP

ICMP 全称是 Internet Control Message Protocol,也就是互联网控制报文协议

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

IGMP

管理哪些主机被分在一组中,使得可以通过多播进行访问。这个分组就需要使用到IGMP。

IGMP 是因特网组管理协议,工作在主机(组播成员)和最后一跳路由之间。

这里我只是总结了一些我自己感觉重要的内容,具体内容请访问小林coding中的计算机网络。

再次推荐,这个对于面试来说,真的是总结的特别好。希望你们都可以关注一些小林coding的公众号。