总感觉学了好多知识,有很多知识还是反复反复的学习,当面试被问到的时候却总是回答不出来,这是因为对自己的知识体系没有一个系统的认知,死记硬背很容易一下子就忘了。
很想做到一次就记住了,所以要体系的梳理一下,曾经有想利用右脑来记忆
画成漫画编程故事来记忆,但是惭愧的很,小弟既不会画漫画也不会写故事,只能先用文字的方法按图索骥的一点点的延申扩展出去。
--------------------------------------------以上废话结束
当我们通过浏览器发出请求访问一个网站的时候到底经历了什么?
比如我们在浏览器输入了一个www.baidu.com然后回车
他首先会找本地的host看是否有对域名的映射解析,比如我们自己启动的springboot项目在不改变端口的情况下输入http://localhost:8080他就会找本地的host文件把localhost转换成本地ip,127.0.0.1,为什么本地的ip都是127.0.0.1而不是0.0.0.1,
这个应是和每一段的范围0——127,的位移有关,换成二进制刚好是
01111111.00000000.00000000.00000001
刚好4段称为ipv4,所以ipv4的最大支持ip数应该是
256*256*256*256=2的32次方=4294967296 大约是42亿9千4百万左右
这些ip要给全球60亿人使用而且很多都是一人多台电脑手机这些的
2019年11月26日,全球所有43亿个IPv4地址已分配完毕,这意味着没有更多的IPv4地址可以分配给ISP和其他大型网络基础设施提供商,所以后面2011年就出现了ipv6
winds 查看ip的命令 ipconfig
Linux 为ifconfig
一般公司会同用一个局域网都是统一网段的ip,关于局域网怎么分配这些每个公司都有相应的网络工程师,当然感兴趣我们也可以稍微研究一下
网关还有,子网掩码这些都能通过ip跳表的形式找到下个ip,
当我们ping www.baidu.com 的时候可以得到百度的DNS,ip,
ping了两次发现两次的ip不同,这是因为dns解析已经做了一次分流
可以看到外网ip和内网ip是不同的,因为内网ip的存在有增加了网络的数量,延申思考,会不会有两个公司的内网ip地址是相同的?这两个ip如果要通信该如果通信?
把刚才ping出来的百度ip地址放入查询可以查出位置处于杭州比较近的南京,如果你们是别的地方可以看下ping的地址是多少这个cdn一定是最近的,怎么找到最近的cdn这个策略如何实现?
上面说了这么多网络知识还没到,本地ip是怎么和百度的这个ip建立连接的。
在这之前得先说一下网络的分层,有两种一种是5层模型,一种是7层模型,因为7层网络模型一直没怎么应用起来,所以我们用5层为例子,7层只作为了解。