按下回车的那一刻发生了什么?
DNS域名解析
当输入一个地址浏览器要做的第一步请求当然是域名解析,将请求的域名解析成IP。域名解析是需要去访问域名服务器,询问域名服务器你所要访问的域名IP是多少,这里域名服务器可以配置本地的,也可以直接请求顶级域名服务器。解析过程如下:
这里的本地域名可以是指本机的dns缓存,也可以配置的dns域名服务器。具体配置可以在网络链接中选择以太网卡,右键属性,IPv4设置里面设置。
运用层封装
浏览器的运用层用的是http和https协议。http协议引用百度百科里的一句解释:
超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。
https协议是http协议的加强版,在运用层和传输层之间加一层保密协议ssl。所以这里只介绍http协议。
http协议请求分为请求头和请求体,响应分为响应头和响应体。
请求头主要包括:请求方式(GET、POST)、目的地址、遵循的协议。
请求体主要包括请求的参数和数据。
响应头和响应体和请求类似。
传输层
运用层将数据封装好之后会把数据交给下一层传输层处理,在处理层眼里不需要管上层用的什么协议,只需要将运用层协议统一当做报文体就行了。
传输层主要是TCP/UDP协议,但浏览器访问是面向链接的,所以只介绍TCP协议。TCP协议最经典的就是要经历三次握手:
四次分手:
网络层
传输层将数据封装好之后直接把数据丢给网络层,网络层采用的是IP协议,它要做的事情就多了,需要寻找目的地址在哪,需要根据动态路由协议寻找下一跳地址。以下网络路由拓扑图:
动态路由具体算法我会在下一节详细介绍,敬请期待,一定要持续关注哟。
数据链路层
数据链路层主要功能是帧编码和纠错控制,数据链路层拿到网络层给的数据之后,主要作用就是保证数据的完整性传输和接收。
这一层有一个最重要的点,就是ARP协议,将IP地址转换成MAC地址,有了MAC地址就可以进行端到端的落实到物理层面的通信了。
物理层
物理层就是将数据链路层拿到的数据流转换成电气特性了,转换成方波信号发送出去,后面的就是通信方面的知识了,主要就是将数据链路层的比特流按照每一比特转换成方波信号,然后经过调频发射出去,接受方在调制解调将信号还原成方波信号。
原路返回
当物理层接受到数据之后再按照顺序向上原路返回。如图所示:
本篇只介绍了从网络层面发生的事情。讲述了数据流的层层流转,不足之处请多多指教。
更多关于计算机的干货内容请关注公众号:“计算机基础爱好者”
谢谢