IPv6和IPv4的表示方式
IPv6和IPv4的表示方式
在使用ip地址的时候,经常会听到IPv6和IPv4
那么他们的区别在哪里?
一开始的时候,是只有IPv4地址,IPv4地址只有32位,可以使用,使用的是二进制计数,但是在记录的时候采用十进制点分法分为四段,比如127.0.0.1,他表示的就是00001111.00000000.00000000.00000001。
如此一来,IPv4的方案可以有2^32个(也就是四十多亿个地址)不同的地址,在一开始的时候还是够用的,但是随着互联网发展至今,IPv4地址已经不能满足人们的需求了,虽然也采用过NAT的方式减缓IPv4地址的消耗,但是现在我们不得不推出一种新的记录IP地址的方式,那就是IPv6地址
插句题外话,十进制转换成二进制是很麻烦的,所以下面IPv6采用了十六进制的方式来表示。
如果我们足够细心,可以发现很多app的启动页面都是有一行小字“支持IPv6网络”。
IPv6具有128的长度,也就是说可以有2^128次方的不同的IP地址,可以满足现阶段网络发展的需求。IPv6地址采用冒号转换的十六进制
这128个二进制数字太长了,但是我们知道一个十六进制的数字可以代替四个二进制数字,所以我们用32个十六进制数字来表示一个IPv6地址,而且分为八段,每段四个数字。
比如我现在随便写一个IPv6地址,给出下面这么一行IPv6地址
0000:0000:0000:00c0:0090:0010:0000:0001(我随手打的)
这里字母对应的数字分别是a-f 对应10-15,比如a对应10,b对应11,c对应12……
这样看似乎太长了,我们可以对这段IPv6地址进行化简,化简规则是:1.每段如果前几位全是0,可以不写
2.如果连续几段都是0000,可以省略成::,但是只能出现一次
化简成::c0:90:10:0:1(这里有6个冒号,原式有7个,前三个冒号其中一个被省略了)
在我们想拓展为128个二进制数字的时候,把这每位上的数字或者字母化成对应的4个二进制数字,然后按顺序排列就好了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通