本篇总结的是运营商在网络中扮演的角色
ip目前的问题
在目前看来,ip最大的问题是ip号不够用了,那这个问题如何解决呢?
在之前的内容中有子网掩码的概念,不得不承认子网掩码确实你在某种程度上的确延缓了ip地址不够用的问题,但是严格意义来说它并没有解决问题,ip地址依旧不够用,因为本质上这个解决方案没有增加ip地址
ip目前的几种解决方案
所以现在所采用的方案是一种动态的方案,最典型的一个例子就是如果此时电脑没有联网,它是不可以有对应的直接入网的ip的,电脑想要联网,本质上就是和有线或者是无线的路由器进行链接,那么路由器就会动态的分配一个局域网的ip,之后就允许电脑通过路由器来上网了,这个就是动态ip上网的策略,如果此时断开连接,那么就会回收这个ip,分配给下一个人使用
现在还有一个方案是ipv6的解决方案,这个方案就是把对应ip地址的位数更改为128位,这样就能从根源解决这个问题,目前在国内已经推行这样的技术了,在未来这种技术也一定会推向全球化,届时ip地址不够用的情况就大概会很大程度上解决了
私有ipVS公有ip
下面我们来讨论的内容是私有和公有ip:
ip地址目前讨论的是32位的ipv4,那么在32位的ipv4当中也并不是所有的ip都可以在全球公网中进行使用的,也有一部分是用来搭建私网的
这里补充一个概念:ip当中是只有一部分用来搭建公网的,剩下的其实都是私网,这个就和学校内部会有自己的教务系统,这个就是一个私有的网络,如下所示都是私有的网络:
10.*,前8位是网络号,共16,777,216个地址
172.16.到172.31.,前12位是网络号,共1,048,576个地址
192.168.*,前16位是网络号,共65,536个地址
平时使用的云服务器,就是直接连接到的是公网ip,而我使用的Windows私人电脑,就是私有ip,并且在使用电脑的绝大多数生涯中,使用的ip都是私有ip,对于公网ip也才是在云服务器当中才开始初步接触到公网ip,所以下面要引入本篇的一个话题,叫做运营商
运营商
抛开其他缺点,运营商在实际的网络环境中在中国扮演了一个什么样的角色?
运营商会在每家每户中拉网线,建立基础设施建设,有了网络基础设施和网线,这二者相结合才能让网民有上网的能力,同时配合国家的力量把流量费打下来,做到让网民能够上得起网
而也是因为有这样的原因,基础设施的建设是由运营商做的,所以自己在进行上网的时候,家里面接的路由器不仅连接了自己的局域网,同时也会连接到运营商的内部,那站在全球网络的角度来说,为什么会有些地区不能使用网络呢?
答案也很简单,没有入网设备,也没有基础设施,所以才会导致不能进行使用
再谈ip划分
对于世界来说,每一个ip都要进行划分,落实到国家来说,在国家的内部对于ip信息也必然是要进行划分的,对于ip的划分来说有子网掩码的划分方式等,这里提供另外一种划分方式
ip地址本质上就是32个01序列,那么现在有256个国家,那么按照前8个比特位进行国家的划分,相当于给每个国家都有了一个编号,所以世界就被近似这样进行划分了:
而在这当中,每一个国家都是有自己的国际路由器的,这个国际路由器可以理解为是相互进行链接的,他们之间都可以进行相互通信
那假设在中国,内部有若干个省,比如有山西,河南,河北等,这些省都要对于这些资源进行共享,那么每个省都有自己的国内路由器,他们之间是可以相互进行通信的
那么在每一个省中,就可以继续根据比特位进行划分,落实到每一个市中,还可以继续划分,而国际路由器又可以和国内路由器进行通信,所以这就把整个国内的路由器和全世界连接到了一起
那么假设现在,有一个美国人要给中国的某个地方进行通信,那么他拿着他的ip地址和中国人的一个ip地址就要进行通信了,他一定是先把他的目标ip地址交给了美国的国际路由器,然后美国的国际路由器直接把这个目标ip地址扔到了国际路由器群当中,然后此时中国的国际路由器一看,识别到这是中国的ip地址,然后这个ip就理所当然的进入到了中国路由器当中,之后再把这个ip抛到省当中,识别到省,再抛到市当中…最终就能落到这个人的位置当中
不过我上面这个理论是需要搭配子网掩码来使用的,不过整体思想就是这样进行不断层层递进识别的过程,所以我们说对于网络这个大的舞台来说,他是被精心设计过的
如果前面的ip地址的分配是以国家为单位进行分配的,那么具体落实到中国内部,上面所说的划分的这么一系列操作,都是由运营商来帮助我们做的,比如当前有云南的一个人想给在河北的人发一个报文,那么就会把当前云南的报文扔到省的路由器当中,在省为单位的路由器中进行传输,最后会被河北省的路由器接受到,然后再进行传输最后传输到这个人的手中
运营商的角度看ip
在我们上面所说的这么一系列过程中,看到的其实都是公网ip,但是在平时上网的时候,我们能看到的基本都是私有ip,这是为什么呢?这是否和运营商有关系呢?答案是肯定的,平时的路由器是可以构建子网的,那么这就意味着家用的路由器构建子网之后,都有对应的ip地址和子网掩码,那么当发起对于外网的请求的时候,其实是通过路由器把对应的数据包交给了运营商,然后从运营商这里进入公网,再去访问对应的公网的信息
所以假设,现在要访问一个百度的服务器,在访问百度这个服务器的时候,必然要写一个报文,报头中填写的src就是当前的主机ip,比如说是192.168.xxx.xxx,那么对应的目标ip是百度的服务器,但是不管怎么说,这样就构建好了一个对应的请求,而这个消息实际上只能转接到路由器上,然后路由器就会顺着目标主机进行转发,发现这个不在当前子网,所以就继续进行转发,然后转发到公网上,此时当前的服务器就会收到了一个请求,之后服务器就会构建一个响应,当服务器构建响应的时候,发现这个报文的来源是一个私有ip,私有ip就意味着它不应该出现在公网当中,并且私有ip很有可能是一样的,所以这个服务器的报文就不能回来了,那这该怎么解决呢?
对应必然是有解决措施的,这里再提一个概念:其实路由器可以配置两个IP地址,一个是WAN口IP,一个是LAN口IP(子网IP),路由器LAN口连接的主机,都从属于当前这个路由器的子网中,那这意味着什么?当现在要把这个报文传递出去的时候,目标报文并不会被改变,但是源ip会被替换成WAN口ip,替换之后再转交到运营商的路径,这种私有ip被不断替换的过程,就被叫做是NAT技术
这样做有什么意义?
其中一个原因是,ip地址的匮乏原因,公网ip落实到省之后再进行划分就不够了,所以就把省内的各种ip都变换成内网ip,那么从省内出来的ip才会被替换为公网ip,所以目前主流的互联网的方案就是公网+私网,这样就构建成了现在的互联网世界
换句话说就是,各个国家有各个省和市,那现在ip地址只有32位,不够用怎么办?运营商就要帮助我们构建内网ip,比如可能山西和云南的私网ip有些是一样的,但是没关系,因为这个ip出了这个限制之后,它就会变成一个公网ip就能继续进行使用了,所以国家有国家的划分,省也有省的划分,但是到了某一个地区就不可能继续进行划分了,它的ip实际上是有限的,所以就会采用的是私网的方案,因为这个私网是可以重装的