IP协议如何进行地址管理?

如今,IP协议有两个版本,分别是IPv4IPv6 ,IPv4是目前主要应用的版本。IPv4的IP地址是以4个字节的数字来表示的,比如 127.0.0.1。因此,IPv4所能表示IP地址的个数是2^32次方,也就是42亿多个,看起来这么多个地址好像还够用。但在如今这个科技发达的时代,所需要的IP地址已经远远超过42亿多个了。既然如此,目前应用的主流IP协议仍是IPv4,那么IPv4是如何管理地址,从而处理 地址不够用的问题呢?

IPv4的地址管理有两种方式:动态分配IP 和 NAT地址转换。

1. 动态分配IP地址

动态分配IP,就是 当某一个设备不再接入网络的时候 ,就将当前设备使用的IP地址动态分配给其它要上网的设备。因此,同一个MAC地址的设备,每次接入互联网的时候,所分配到的IP地址可能是不相同的。

动态分配IP这种方式,提高了IP地址的利用率,但没有增加IP地址的数量,只能暂时缓解地址不够用的情况,不能有力缓解IP地址不够用的问题。

2.NAT地址转换

IP地址分为两大类:公网IP 和 内网IP

一般 "10.*.*.* " 或 "172.16.*.* " --- "172.31.*.* " 或 "192.168.*.*" 这些格式的IP 都是 内网IP,其它的就都是公网IP。

同一个局域网中,每个设备的内网IP不能重复;不同局域网的两个设备的内网IP可以相同。公网IP是唯一的,不能重复。

同一个局域网 (一个公司,一个学校,一个小区都可以是一个局域网),共用一个公网IP即可,一个局域网中可能有成千上万个设备,这些设备共用这一个公网IP就可以了,因为公网IP是唯一的。这样一来,就能节省一定的IP地址。

2.1 NAT地址转换的方式

运营商路由器 会将发起请求的主机的内网IP替换成公网IP,在一些情况下,也会替换源端口号,再将请求发给目的服务器,过程如下图:

(1)如果在一同一个局域网中,有一台主机 发出了请求,运营商路由器将主机的IP替换成公网IP。当运营商路由器收到服务器的响应后,它会根据自己的映射表,查到IP的替换信息,将响应报文返回给主机。

(2)如果在同一个局域网中,有多个主机向服务器发起服务请求,如下图:

运营商路由器收到主机A和主句B发出的服务请求后,会将主机A和主机B的IP都替换成 公网IP ,因为内网IP不能在广域网上使用。

运营商路由器会将主机的IP替换信息,源端口号记录在 映射表中。 当运营商路由器收到服务器的响应报文时,它就可以查看映射表 (根据响应报文的 目的端口号查到要响应的主机),从而将相应的响应报文发送给相应的主机。

(3)如果同一局域网的两台主机,发出的是相同的服务请求 ,也就是源端口都相同时 ,运营商路由器不仅会将主机IP替换成公网IP,也会将两台主机的源端口替换成两个不同的端口,并记录在映射表中。当收到服务器响应报文时,再查看映射表,从而能够区分要响应的主机。

NAT机制是一个**"纯软件"**方式,只要路由器中有NAT,则路由器就可以进行NAT地址转换了。由于NAT机制,内网IP可以主动访问外网IP,但外网IP无法主动访问内网IP,因为服务器收到的源IP是公网IP,这也在一定程度上保障了我们设备的安全。

如今,IPv4就是通过动态分配 + NAT地址转换 两种方式的结合,来缓解地址不够用的问题。真正能从根本上解决地址不够用的方法,还得是使用IPv6。

相关推荐
汤愈韬4 分钟前
EVPN协议概述
网络
不像程序员的程序媛9 小时前
系统cpu内存负载资源分析
运维·服务器·数据库
kk的vmware虚拟机安装ubuntu11 小时前
鱼皮 yu-rpc:从 0 到 1 手写 RPC 框架的实践教程
网络·网络协议·其他·rpc
ShineWinsu12 小时前
对于Linux:网络基础的解析
linux·网络·面试·udp·笔试·ip·tcp
耍酷的魔镜12 小时前
谈谈如何使用Netty开发实现高性能的RPC服务器
服务器·网络协议·rpc
程序员在囧途14 小时前
likeadmin-api API 中转站怎么做统一报价?从 /pricing、/user/balance 到 task_id 回执的落地方法
运维·服务器·数据库·likeadmin-api·api中转站·token计费
cookies_s_s14 小时前
C++ 字符串动态创建对象 -- 工厂模式、自动注册、模板递归动态调用
服务器·开发语言·c++
想你依然心痛15 小时前
Linux用户空间与内核空间通信:netlink、ioctl、mmap 零拷贝与性能对比
linux·运维·服务器
程序员在囧途15 小时前
likeadmin-api API 算力超市怎么做供应商切换?统一鉴权、task_id 和 callback_url 才能稳交付
java·服务器·数据库·开放api·likeadmin-api·api算力超市
wenzhangli715 小时前
oodAgent 4.0 Skills分布式调度 — 从Code Agent实战看自主维护的Agent网络
运维·网络·人工智能·自动化