IPv4 大家都不陌生, 就是我们平常使用的32位网络地址. 但是, 因为可能在其发展初期, 并没有考虑的十分全面, 故而其存在一些缺陷:
mac地址到IP地址的映射, 所以这中间就给了攻击者可乘之机.其他方面倒都可以通过技术来解决, 但是地址不够的问题已经愈发严重, 尤其是这个万物互联的时代. 所以, IPv6的提出主要是为了解决地址数量的问题.
不要问我IPv1 IPv2 IPv3 IPv5都哪去了, 估计是都腹死胎中了, 还没来得及推广就被 pass 了.
那IPv4我们已经比较熟悉了, IPv6是什么呢? 难道只是简单的进行地址的扩充吗? 我也很好奇.
IPv6协议最显而易见的变动, 就是其地址长度增加到了128位. 可容纳约 3.4*10^38, 数不过来了, 反正很多就是了. 据说给地球上每一粒沙子都分配一个地址都绰绰有余.
既然是这么大的数字, 在用原来的地址表示方式就不合适了, IPv6的地址的书写一般使用16进制, 每16位分为一组并用冒号隔开, 共8段. 大概就长这样:
F00A:1234:7759:1239:EFAC:B976:9923:2946
这么长度数字, 为了能够少写一些, 有些约定的规则.
允许压缩0
某一组前面的0可以省略不写. 既:
8 => 000880 => 0080若出现连续的0, 可以用一对冒号表示
F00A:0:0:0:EFAC:B976:9923:2946 可以表示成 F00A::EFAC:B976:9923:2946
也就意味着两个冒号中间全是0. 但是, 注意, 一个地址不能出现两对双冒号, 否则会造成意思不清晰, 不知道应该对应的补多少组0 .
IPv4的网络地址通过子网掩码来标识. 有时也使用/10这种形式. IPv6使用后者表示网络地址.
IPv4地址不是分了 A,B,C,D,E 五类地址嘛(虽然实际使用中感觉并没有区分 ABC). 那么IPv6有它自己的分类么?
既点到点通信使用的, 用来标识通信的对象. 就相当于IPv4的公网地址. 其地址为:
mac地址填充组成单播地址规定前三位必须是001.
用来与同一个网络中的主机进行通信. 不会被路由的. 本地链路地址与单播地址是同时存在的.
用来标识一组主机. 以FF开头. 将一个数据包发送给多个目标地址.
现象: 为了提高访问速度, 一些比较大的公司都会在全国各地设置多个机房, 在对域名进行解析的时候, DNS服务器会将域名对应的IP按照由远及近的顺序返回给你, 这样就可以优先连接距离较近的服务器. 但是有些时候, 可能DNS服务器判断的也没有那么精准.
任播地址: IPv6协议提供了一个任播地址, 就是说你在全国各地设置的服务器使用同一个IPv6地址, 然后有沿途的路由器来进行选择, 将数据包送到较近的服务器那里. 再下载文件, 再也不用选择网通还是电信线路了, 丢给路由器决定吧.
这这这, 现象就是这么个现象, 具体是如何做到的呢? 我十分好奇的去查了资料, 越查越糊涂, 没搞懂...
::1 其作用就相当于IPv4中的127.0.0.1.
随着网络层的IP协议升级, 与IP协议配套的就一起升级了. 其中一些协议就是换汤不换药, 就是添加了对IPv6的支持, 其本质和IPv4时代一毛一样.
ICMPv6取代. 在原基础上做了些内容扩充ND取代(邻居发现协议). 原来深受其害的ARP 欺骗, 我以为在v6版本能得到改善, 然而并没有从根本解决. 不过现在的解决方案倒是与HTTPS有些相似.DHCPv6取代. 分配网络号.MLD取代(多播侦听器发现协议)我原以为IPv6会在现有基础上有很大的改变, 但是发现整套的方案基本不变, 不过每个对应的协议升级都做了一些相应的改进与扩充. 而工作在网络层的IP协议升级, 下面的物理层以及上面的传输层不需要做出任何改变, 这就是面向接口编程的优秀之处, 可以局部升级而不会对上下造成影响, 否则协议升级想都不要想了.
不过再一想, 以后买服务器, 有公网 IP 就不用在多掏钱了, 嘿嘿, 毕竟标配嘛.
出于对IPv6的好奇, 简单看了一下升级后的IP协议, 并没有特别深入的了解各个协议工作机制, 此致
原文:https://www.cnblogs.com/hujingnb/p/13972795.html