卡卷网
当前位置:卡卷网 / 每日看点 / 正文

IP 地址是什么,有什么用,求通俗易懂答案。?

作者:卡卷网发布时间:2025-02-28 20:33浏览数量:51次评论数量:0次

顾名思义,IP地址就是一个地址,IP包裹投递(Delivery)地址

目的IP地址 = IP包裹的收件人地址

有收件人地址,就会有寄件人地址,怎么表示呢?

源IP地址 = IP包裹的寄件人地址

IP包裹,英文名称为IP Packet

这里的IP又是什么呢?

IP = Internet Protocol

Internet(互联网),IP包裹(Packet)可以在Internet(互联网)快递平台上实现自动投递(Delivery)。

收件人地址(目的IP)在哪里,这是Internet(互联网)职责所在,他们知道目的IP具体在哪里。读者如果有兴趣,可以简单写一下。

运营商,每条线路/端口分配的IP地址(PPPoE/DHCP)是多少记录下来,通过BGP路由协议告诉自己的邻居(其他运营商),BGP邻居再告诉自己的邻居,通过这样的扩散方式,比如1.1.1.1就完成了扩散。这句话的潜台词是,如果互联网出现目的IP = 1.1.1.1 的IP包裹,互联网是知道如何到达目的地,即原始扩散1.1.1.1的BGP路由器,以及对应的线路/端口。

一个小问题,如果每一个IP地址都像1.1.1.1这样扩散,互联网有40亿+IP地址,每个BGP路由器有40亿+ 个IP地址条目,按照保存一个条目100字节算,需要耗费40亿 *100 = 4000亿字节 = 400G byte,这远远超出80、90年代路由器的内存容量。

怎么办?

如果1.1.1.0、1.1.1.1、1.1.1.2、…1.1.1.255 一共256个连续的IP地址都属于某个运营商,它们有一个共同的前缀1.1.1,这个前缀一共3个Byte,即24 bit位,如果用1.1.1/24来代表以上的256个IP地址,是不是一个good idea?

好是好,如果1.1.1用0补齐成4byte,对于32 bit位计算的计算机就很友好了。补齐的样子是这样的:

1.1.1.0/24

可以将IP地址路由表缩小到1/256。

可是缩减规模还是不够,最初的互联网只接受前缀长度 ≤ 19 的IP地址前缀。

比如

1.1.0.0/19

代表前缀 = 00000001 00000001 000/19

剩余的后缀长度 = 32 -19 = 13,后缀可以是0,也可以是1。

第一个IP = 00000001 00000001 0000000 00000000 (二进制)= 1.1.0.0(十进制)

最后一个IP = 00000001 00000001 00011111 11111111(二进制)= 1.1.31.255(十进制)

一共2^13 = 8192个IP地址。

缩减规模 = 1/8192

有的大企业,拥有17.0.0.0/8 整个号段,只需要这一条路由,即可代表所有前缀为17的1600万 + IP地址。

随着路由器内存容量越来越大,BGP路由器对前缀长度限制越来越松,从最初的19,先放松到21,再放松到22。意味着互联网路由表越来越大,从最初的几万条,到2015年的60几万条,截止2024.2.13号,大约941238条。

BGP routing table entries examined: 941238

现实的问题来了,电脑/手机也要有全球94万+ 路由表条目吗?

没有必要。

可是电脑/手机依赖于路由表来寻找目的地的,没有全球路由表,怎么办呢?

很简单,用0.0.0.0/0这一条即可代表互联网所有的IP地址。

凡是在本地查找没有合适的匹配,最后都会匹配0.0.0.0/0,并delvery给它指示的线路/端口(运营商)。

通过前缀归纳的方式可以缩减路由表规模,但是也带来了很多不便。

Cloudflare,一家CDN加速厂商,收购了1.1.1.1这一个IP地址。希望将1.1.1.1在全球N多运营商通过BGP扩散出去。运营商犯难了,因为这是一条1.1.1.1/32路由,前缀32显然不小于等于22的要求。

但是规则是死的,人是活的,只要砸钱运营商可以通告/32路由。

Cloudflare可以使用1.1.1.1来实现泛播Anycast

通常一个IP地址代表唯一一个目的地,这个就是最通用、使用最多的单播Unicast

使用Anycast的好处是,同一个IP地址可以在多个物理地点(BGP)扩散,用户访问1.1.1.1,就会被deliver到物理距离最近的1.1.1.1,响应延迟小,从而实现加速访问。

为何私有IP地址?

电话号码长度没有硬性的限制,如果号码不够用了,只要从6位变成7位,甚至8位,丝毫没有影响。

实在扩展不了,也可以使用分机号,比如010-60001000-888,888就是分机号,前面的一串数字是全球可路由号,通过2次拨号888即可使用,无非麻烦一点。

可是IP地址就不一样了,它是定长的32 bit位。长度无法扩展,也没有办法使用分机号。

但是全球可路由的IP地址不够用,必须开辟几个地址块,谁都可以自由使用的IP地址块。针对用户共开辟3块,称之为私有IP地址。

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

代表的含义上文已经详细阐述。

如果任由这些IP地址进入互联网,返程的时候就出问题了,因为大家都可以使用,会有冲突。

怎么办?

需要在这些进入互联网的I P包裹,它们的私有源IP,替换成网关的全球可路由IP地址,返程的时候再替换成原始的私有IP即可。

这个技术就是网络地址转换(NAT)

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码