Why?
首先说明,在下学习一个新东西的时候总会想方设法,看看我能不能用上我的右脑来记住他\它\她。
比如,有一天你对我说,明天我们去Kentucky Fried Chicken好不好?
.....我会说,please speak english.... ** 但是** 你只要说 肯德基!或者是更直观一点
我分分钟就懂了!当你说肯德基,我就会想到这个图,你给我图的时候,噢不,我已经看到炸鸡腿在给我招手了😂。
好吧 扯远了今天的主题是IP
IP(Internet Protocol) 有个骚气的中文名:网络之间互连的协议。
有的小伙伴可能从字面上还不大理解这个Protocol协议是什么鬼?
我们使用货币(毛爷爷)进行交易就可以看作买卖双方的一个协议。远古时代,我们的交易都是直接进行的。比如一只牛换一个鸡蛋,这明显不公平,或者你用钻石换了一颗鸡蛋,得到钻石的那人用钻石换了10000000个鸡蛋,又或者当时的人觉得这就是个破玻璃,又不能吃,然后那个人抱着钻石饿屎了。这是不是很混乱。
有了毛爷爷作为中间桥梁,就可以规整这样的混乱,比如一颗蛋就是一块钱,一头牛10000块。卖牛的只需要掏出一张一块的就能得到一颗鸡蛋。所有的交易都先转换成大家能识别的一个有价值的东西,在进行物品的交换。
网络中亦是如此
- 以下摘自某度某科的解释
网络互连设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传送数据的基本单元(技术上称之为“帧”)的格式不同。
- 听起来就像不同的货币无法直接交换一样
所以为了互通,有一种“世界银行”叫IP,指定美到刀为通用货币“叫“数据包”
IP协议实际上是一套由软件、程序组成的协议软件,它把各种不同“帧”统一转换成“网协数据包”格式
-
网络间传输看起来应该是酱紫滴
2.png
数据包(data packet)
- 我们接着看看这个数据包长啥样
-
一个B(字节)=8b(位)
如:数字2占一个字节用二进制表示就是这八位数字0000 0010
3.png
IP地址
- 我觉得可以形象的看做是我们每个人的银行卡卡号,我们通过它进行票票的交易。
- 在网络上也一样,IP协议给每个遵守它协议连接到网上的主机分配的一串号码,用32位二进制表示。
- 谁规定的用32位二进制表示?
按照TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。
- 如果银行给了你这样的卡号

.....
- 还好我们实际见到的IP地址是类似192.177.1.1这样的
- 1100 0000 . 1011 0001. 0000 0001. 0000 0001 👉 192.177.1.1
为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。
你可能要问?要这么多位干啥?那必须啊,我们地球人丁兴旺,现在连32位都快不够用了!
- 其实一个IP地址分为两部分
地址格式为:IP地址=网络地址+主机地址或 IP地址=网络地址+子网地址+主机地址。
网络地址是因特网协会的ICANN(the Internet Corporation for Assigned Names and Numbers)分配的,下有负责北美地区的InterNIC、负责欧洲地区的RIPENIC和负责亚太地区的APNIC 目的是为了保证网络地址的全球唯一性。主机地址是由各个网络的系统管理员分配。因此,网络地址的唯一性与网络内主机地址的唯一性确保了IP地址的全球唯一性。
- 网络地址 、主机地址
举个例子上面的这个1100 0000 . 1011 0001. 0000 0001. 0000 0001 - 我们保持最前面的1不变,然后依次改变第一个1后面的每一位这样就有2^31个不同的IP。这就可以作为网络号,表示不同地区。
- 但是,这样的一个地址表示只能连一个主机:而且我们有这么多地区吗?
- 所以我们不取那么多,比如仅用220就够了然后取其中一个保持前面的不变,后面的12位作为主机号,表示这个地区能连212-2这么多个主机,这个减去2是由于,主机号的最后四位不能全是0000或1111.