IP地址详解
Posted zkccnb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IP地址详解相关的知识,希望对你有一定的参考价值。
IP地址详解
接下来我们来看看网络层是怎么工作的,可以说网络层是整个计算机网络的心脏,起到了主要的抽象和转发报文作用。网络层最主要的协议就是IP协议,它是整个网络层的中心。除了IP协议,还有很多协议为更好的服务IP协议而工作。
不过在介绍IP协议之前,我们必须先了解IP协议是如何对网络环境进行抽象的。这种抽象就是IP地址。
一、IP地址的定义
1. IP地址的意义
网络设备指处在网络层工作互联的设备,包括网络层交换机(路由器)和各种形式的主机。IP协议为连接互联网的每一个网络设备分配一个IP地址。而IP协议的终极目的就在于将数据包从一个IP地址发送到另一个IP地址。
需要注意的是,IP地址实际上并不是为一个网络设备直接编址,其编址对象是网卡(网络驱动器),有些网络设备可能会有多个网卡(路由器、服务器等),那么它们就会有多个IP地址。
2. IPv4的结构
IPv4地址用32位二进制串来表示一台网络设备。为了方便人类记忆,常用“点分十进制”形式来表示IPv4地址:
图1 IPv4地址表示形式
不难看出,IPv4最多支持编址2^32≈43亿
个网络设备的同时接入。这个数量在计算机网络创立之初肯定绰绰有余的,但是随着互联网行业的迅猛发展,这个数量也越来越不够用了。
解决方法有两种:
- NAT协议:用路由器的
一个IP+若干端口号
来映射多个网络设备,就可以起到复用IP的效果了。 - 迁移至IPv6:简单粗暴,直接弄成128位的。。
3. IPv6的结构
上面说到,IPv4不够用了,本质原因是因为IPv4只有32位,位数太少了。。
所以IPv6直接使用了128位编址,可以为地球上的每一粒沙子编址。。除了位数多了以外,IPv6还有其他优点:
- 不需DHCP协议,可以自动分配地址。
- IPv6协议简化了首部结构,减轻了网络分组交换的负荷。
- IPv6还对通信的安全性进行考虑,可以防止IP地址被伪造或线路窃听。
由于IPv6太长了,点分十进制可能不太适合。。所以IPv6采用8组16进制串来表示:
图2 IPv6的表示
二、IP地址的管理
1. 地址分类策略
1.1 地址分类方式:
计算机网络投入使用早期,还没有那么多的网络设备。所以人们设计了地址分类策略来管理这些IP地址:
图3 IP地址的分类
其中ABC类网直接用于为各局域网的网络设备分配地址,D类网用于组播,E类网待用。
有了网络分类,那么查找一个IP地址就相对容易了:先根据地址头n位确定它是哪一类网,可以转发到该类网的路由器;再由此路由器继续向下解析网络号分析其具体属于哪一个网络,可以转发到该网络的路由器;最后再由此路由器分析其主机号,将其转发至网内主机。
你可以想象邮局邮寄包裹的过程:邮寄一个省外的包裹,先需要知道它要发往哪个省,将其交给对方的省邮局;再由省邮局去分析它属于哪个城市,交给对方市邮局。。。以此类推,分而治之地运送包裹。
1.2 ABC类网
图4 ABC类网络的公网地址范围
由于ABC类网的网络号与主机号划分,使得这三类网络有着数量不同的网路和最大支持主机:
- A类网最多支持有7位网络号(27个网络),24位主机号(224-2个主机)
- B类网最多支持14位网络号(214个网络),24位主机号(216-2个主机)
- C类网最多支持21位网络号(221个网络),24位主机号(28-2个主机)
为什么主机数要减2呢??
因为在每个网络中,有2个IP地址不能被分配到具体主机,留作他用:
- **主机号全0:**指定某个网络本身(地址为主机号全0时,不指定当前网络的任一台主机,而代之发往此网络)
- **主机号全1:**指定某网络的所有主机(当地址为全1时,数据包将发往此网络的所有主机,用于广播)
另外,广播又分为2种:本地广播和异地广播。也很好理解,前者指发往本网络的广播地址;而后者指发往其他网络的广播地址。
1.3 网络分类策略的优缺点
这样做的优点很明显:
可以快速地确定一个IP属于哪个类网,并将其交付类网路由器,进行分治转发;而不是茫然地在43亿的IP地址中胡乱查找。。
但随着网络设备越来越多,网络分类策略的缺点也显现出来:
- ABC类网的划分方式没有层次,如果有机构还需要在自己的C类网中继续划分若干子网是做不到的。
- 不能很好地解决现实的需求,ABC类网提供的主机数量很不灵活,要是有一个企业需要1000个IP地址,那岂不是得说:“给我来4个C类网!”
正是分类策略具有这两条缺点,无分类策略发展起来了。在今天,二者相结合共同构成了网络层IP地址的抽象。
2. 无分类策略
2.1 无分类策略的地址划分
无分类策略的实现是CIDR协议(Classless Inter Domain Routing,无类别域间路由)。
无分类策略方案中,32位的IP地址被使用者按需任意划分为两部分;同样,前面是网络号,后面是主机号。
但你自己划分的时候是爽了,可是如果所有人都随意划分,那路由器心态崩了啊。。怎么找目标的网络进行分治转发呢?
这就需要网络在划分IP地址的同时,标注自己是在哪一位上划分的:
图5 无分类策略的地址划分
对人类来说,这种策略下的IP可以采用a.b.c.d/n
的形式表示,其中n表示前n位为网络号。
对于机器来说,更快的方式是采用子网掩码,子网掩码的网络位均为1,其余位为0。因此,将子网掩码与IP地址相与,即可得到IP地址的网络号。
2.2 与地址分类策略的兼容
由于分类策略已经使用了很长时间,很难直接推倒之前的ABCDE类网划分。而可行的做法是将两种分类策略融合在一起工作,而这就是我们今天使用IP地址的策略:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jz8dZGff-1630663187437)(D:\\资料\\CSDN博文\\计算机网络\\网络层\\ip地址-6.jpg)]
图6 分类策略与无分类策略的兼容
可以看到,在IP地址的前部,仍保留了ABC类网络的网络号;不同的是,使用子网掩码多覆盖了若干位,作为一个灵活的子网。如此就把两种策略兼容起来一起工作了。如图6的网络地址,就是C类网“192.168.1”的一个子网。
3. 私网地址与公网地址
至此,我们描述的都是公网IP的构成。但互联网世界的IP地址不都是公网IP!每个设备都直接持有一个私网IP,而又间接地持有一个公网IP。
此话怎讲?私网IP仅在端设备所处的局域网内有效,在局域网外的互联网世界里这个地址就是个“笑话”。就好比,你家的门牌号是“3单元101”,仅在你所处的楼内有效;如果出了这栋楼还说“我家在3单元101”,那谁也不知道你住在哪。。
所以有很多初学者写网络服务器程序时(比如说我哈哈哈。。)想要让并非局域网的用户也可以连接到自己的服务器,然后发现对方怎么也找不到自己服务器IP地址。。。这就是因为你给对方的IP是一个私网IP,在公网根本没有任何效用。那么怎么做才能让外网访问到自己的服务器呢?这就需要路由器内网穿透的知识了。。如果你的目的知识验证自己的服务器的功能逻辑是否工作正常,那么在局域网里进行验证就可以了。
ABC类网除了维护一段公网IP,还维护各自的私网IP:
图7 ABC类网维护的公网IP段和私网IP段
可以看到,私网IP段比公网IP段少了不少。。这也很好理解,私网IP只在局域网内有效,所以IP地址数量只要保证足够此网内部的主机数量即可。
一般来说,家用路由器分配给我们的私网地址是“192.168.x.x”,这是因为家用局域网一般都是某个C类网下的一个子网,所以分配私网地址时就采用了C类网地址段。
另外一个问题,既然每个设备都持有一个公网IP和私网IP,那么就需要一种算法将二者进行一个转换,或者分配私网IP。这就是NAT协议的工作内容了。
总结
本文重点介绍了IP地址的相关知识,具体阐述了网络分类策略和无分类策略的IP划分方式,最后还简单讨论了公网IP和私网IP。
以上是关于IP地址详解的主要内容,如果未能解决你的问题,请参考以下文章