IP

IP

Shrink

先从名称上来说, IPV4、IPV6中的IP(Internet Protocol)是网络协议的意思,V4、V6是版本号。所以IPV4、IPV6分别表示网络协议第四版、网络协议第六版。

互联网的根本目的就是将不同的计算机连接起来,使不同计算机之间可以相互交换数据。

为了达到这个目的,首先你需要有物理层的连通,无论你是通过电缆、光缆、还是网线WiFi等等,你首先需要将这些计算机物理上连接起来。

但仅仅是物理上连接起来,不同计算机之间仍然是不能交换数据的。

打比方说,你要把快递寄送给远方的朋友,首先你们两个所在地之间要能够通过物理手段到达,比如说有公路、有铁路、有航线等等等。但仅仅是光有公路铁路这些还是不够的,你还是不能把快递送给远房的朋友,你还需要邮政系统。

邮政系统首先需要建立一系列的邮政站点,一部分站点直接与顾客交流,直接收件送件,另一部分站点负责将快递在前一类站点之间传递。这些站点在网络中被称为路由,直接与终端用户通信的路由叫边缘路由,只负责在路由与路由之间转发的叫核心路由。但有了邮件站点(路由)想要寄快递还是不够的,你还需要协议。

所谓协议通俗一点的讲就是规范化的操作流程,某种场景下某种情况该如何处理。网络协议可以相当于邮政系统的工作流程。


话题还是回到寄快递,你现在有三包茶叶,要寄给咩咩,你有哪些工作要做。

首先,你需要把这三包茶叶打成一个快递包裹,直接送茶叶是很不靠谱的。然后你需要填一个快递单,上面写上自己的姓名、联系电话、地址、邮编,咩咩的姓名、电话、地址、邮编,这些信息都是快递必不可少的。没有对方的地址,鬼知道你要把快递你给谁。没有自己的地址,万一在寄件途中出了什么差错(比方说对方地址上没有这个人)怎么把包裹退给你。

上述对应对网络协议,茶叶包成包裹,就是根据OSI七层模型对数据进行打包。至于快递单,就可以进入正题了。

网络的目的是让不同计算机之间相互交流数据,你可以把它理解成计算机之间的物流系统。寄快递要填快递单,计算机相互发送数据当然也要填快递单,这个快递单便是网络协议的一部分。

首先是地址,寄快递肯定不能没有地址,你在快递单上填写的地址肯定不能乱填,想怎么填就怎么填,都是有格式要求的。

所谓IP地址,就是一台计算机在网络空间中的地址,这个地址有确定的格式,ipv4这个地址的长度是32位二进制数,ipv6是128位二进制数。你也许会问,那我一台电脑连上互联网,我怎么知道我自己的地址是什么?对于这个问题,有专门的分配机构(ICANN)给不同国家国家分配IP地址,也有专门的网络配置协议(如DHCP)保证你的设备一连上网就知道自己的IP地址。

说到IP地址,就不得不提公网IP与内网IP的区别,以及NAT。前面说了IP地址就是计算机在网络空间的地址,就设计目的来说每台联网的计算机都应该有全世界唯一的IP地址,一个IP地址背后就是一台联网的计算机,反之亦然。最开始设计IP协议时,设想的很好,ipv4有40多亿个地址,肯定够全世界的计算机用,肯定能保证每台联网的计算机都有唯一的一个IP地址。但哪成想得到,现在联网设备这么多,40多亿个地址根本不够用,如果一个设备一个IP地址的话,40多亿个地址早就分完了,而且前面也说了,一个设备想要联网就必须要有一个IP地址,怎么解决这个矛盾,于是就有了NAT。

NAT (Network address translation)全名叫网络地址转换,通俗一点讲,我们建立了一个邮政系统,预留了40多亿个地址,本来打算给全世界每一个人都分配一个全世界独一无二的地址,你要给张三寄快递,直接写张三的地址就可以,这个快递肯定会准准的送到张三家。但是现在地球人口增长了有70多亿了,40多亿个地址如果每个人都分一个肯定是不够分,但寄快递不能不填地址呀!这该怎么办?合租呀!我们几个人用一个地址不就可以了吗?以后别人给我寄信,原来写的是某国某省某地区某街道张三家 张三收,现在我和王二、李四,三个人租了一个邮局,别人给我们寄信就写某国某省某地区某街道某邮局 张三收,邮局收到信了看一下收件人是谁,如果是张三的话,就把信转给我,是李四的就转给李四,这样一来需要的IP地址不就少很多了吗?40多亿个地址也就够分了。但现在还是有问题,虽然收信没问题,但寄信怎么办,之前规定死了,寄信必须要填32位的IP地址,现在我和别人合租了,没有专属于自己的IP了,那我该怎么办呢?对于这个问题,解决办法是:你不是没有自己的IP吗,我这个邮局给你们三个人每个人分一个内部编号,张三:A,李四:B,王二:C,这个内部编号的格式和IPV4地址的格式一样的也是32位,你们以后向外寄信,寄信人地址这栏就填这个内部编号好了,你的信也不要直接交给邮递员了,你寄信人地址写的是内部编号,人家不认的,想要寄信,把信放在邮局就可以了,然后邮局的工作人员会把你寄信栏上的内部编号改成邮局的地址,然后做好标识,标明这封信是你李四寄的,然后帮你把这封信交给快递员。这个机制就叫做NAT。所谓公网IP就是一开始全世界唯一的地址,也是现在这个邮局的地址。所谓内网IP就是我这个邮局给你下发的内部编号。所谓网络地址转换就是内网IP与公网IP在转交信件(路由)过程中的双向改写。

说了这么多,你总算是把包裹交给邮递员了,邮递员把你的包裹装箱,运到分拣站(边缘路由),然后运给下一个站点(核心路由),然后这个站点应该把你的包裹交给下一个站点,但是现在现在有飞往美国的飞机、也有飞往中国的飞机、还有好多个其他地方的飞机,我要把你的包裹送上哪一个飞机呢?我这个站点看了看地址,然后把包裹送到飞往中国的飞机。根据你写的地址决定数据包传输的线路,如何决定!这就是路由协议。

然后你这个包裹又经历了若干邮政站点(路由)然后终于到了咩咩的手中。

整个过程大概就是这样。

洛洛打的比方感觉有一点让人糊涂,我就用一些例子解释一下一些网络方面的术语。

Report Page