我写的Hello World是如何被你看见的

我轻轻的拿出我的MacBook Pro,打开****博客,本来想写 “都是你的错,轻易爱上我”,但这时候彷佛有个声音在我耳边响起“放开她,让我来!你写的一点都不程序猿!!”,我想说 “我是工程师,哼!我写Hello World好啦!”

消息处理

我不太熟练的打开MacBook Pro电脑,我的macOS Catalina系统期待和我互动以表亲热,为了满足她我就轻轻的敲打着键盘,系统检测到我在键盘设备上敲打,释放完按键后系统立马检测我敲打的是哪个键,生怕得不到我的宠爱。系统把我敲打的按键转换成虚拟键代码消息然后存储到系统FIFO消息队列中。系统发现我在Chrome浏览器中的****编辑中敲打着,就把键盘消息分发Chrome浏览器,Chrome又把消息传递给****博客这个进程的消息队列,进程发现有键盘消息,为了讨好我把虚拟键代码转换成文字立马显示在****的编辑器上。

我写的Hello World是如何被你看见的

域名解析

我看到了我辛辛苦苦敲打的Hello World!还不尽兴,我想让更多的人看到,我就点击了【发布博客】按钮,然后我发现****博客做了一个POST请求,请求地址是:https://blog-console-api.****.net/v1/xxx,返回结果提示我发布成功。那我的Hello World!经历了什么呢?有没有虐待她呢?blog-console-api.****.net的IP是什么?在哪里呢?

我写的Hello World是如何被你看见的

ping一下,发现blog-console-api.****.net的IP地址是39.96.132.69,那39.96.132.69在哪里呢?

我写的Hello World是如何被你看见的

哦,whois一下我知道了blog-console-api.****.net大致在北京,并且在阿里云机房。从域名到IP地址的确认,都是通过查找DNS来完成的,或者从缓存找,或者从域名注册服务商那里找。

 

无线路由器

那我的Hello World是怎么去北京的呢?不会是坐飞机吧?机票也不便宜啊!而且我是用的MacBook Pro哎,没有网线,她是怎么传输出去的呢?原来,我身边有个无线路由器,它把有线信号转化成无线信号,在无线路由电磁波(信号)覆盖的范围内都可以采用Wi-Fi连接方式进行联网。数据通信分2种:有线通信和无线通信。有线的我们理解,看得见摸得着,比如说网线。无线怎么通信呢?原来无线是是通过你看不见的电磁波通讯的。无线路由器会不停的向周围发送广播,包含SSID和WIFI的其它基本信息,终端设备只要打开WIFI开关,就能够发现该WIFI热点。连接WIFI热点时,对于开启密码认证的,还要密码报文交互认证过程,通过认证了的才能够接入WIFI热点,然后由无线路由器动态分配一个IP地址,终端设备得到这个IP地址后,就可以上网了。

我写的Hello World是如何被你看见的

 

OSI 7层模型和TCP/IP 4层模型

OSI(open system interconnection Reference Model 开放式系统互联参考模型) 和TCP/IP 模型的对应关系和协议对比

我写的Hello World是如何被你看见的

数据的传递过程如图:

我写的Hello World是如何被你看见的


主要功能

我写的Hello World是如何被你看见的

信息怎么发送出的

首先,我的MacBook Pro已经和****服务器组网了,只不过是通过Wi-Fi到形式组到网,这样我们才能访问到。

我们发送Hello World消息,一路下行,传递到笔记本的物理层网卡,因为MacBook Pro的网卡通过无线电波和路由器的物理层连接,消息沿着路由器的物理层一路上行,来到了路由器的网络层,此时,路由器的网络层作出路由转发的决策,选定出去的接口,然后从那一个接口的数据链路层,然后是物理层上出去,沿着网线,就到了下一个路由器(有可能是运营商的),接着重复上述过程,最后到达****的服务器上,沿着协议栈向上依次处理,最终提交成功。

Tips:

路由器工作在网络层,指的是他处理的是网络层相关的事情,并不代表他没有别的层次。

物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么。


 

参考文章:

OSI 7层模型和TCP/IP 4层模型

路由器和交换机的区别