五、网络综合篇
(1)搜索baidu,会用到计算机网络中的什么层?每层是干什么的?
1. 浏览器要将URL解析为IP地址,解析域名就要用到DNS协议,首先主机会查询DNS的缓存,如果没有就给本地DNS发送查询请求。
DNS查询分为两种方式:一种是递归查询,一种是迭代查询
如果是迭代查询:本地的DNS服务器,向根域名服务器发送查询请求,然后依次类推知道查询到该域名的IP地址。
DNS服务器是基于UDP的,因此会用到UDP协议。
2. 得到IP地址后,浏览器就要与服务器建立一个http连接。因此要用到HTTP协议。
HTTP生成一个get请求报文,将该报文传给TCP层处理,所以还会用到TCP协议。
如果采用HTTPS还会使用HTTPS协议先对数据进行加密。
3. TCP层如果有需要先将HTTP数据包分片,分片依据路径MTU和MSS。
TCP的数据包然后会发送给IP层,用到IP协议。
4. IP层通过路由选择,一跳一跳发送到目的地址。
当然在一个网段内的寻址是通过以太网协议实现(也可以是其他物理层协议,如PPP、SLIP)
以太网协议需要知道目的IP的物理地址,有需要ARP协议。
(2)键入网址到网页显示,期间发生了什么?
1. 解析URL获取目的IP地址,查找DNS缓存
(1)先查找【浏览器的DNS缓存】,看是否存放目标网络的IP地址
(2)如果找不到,则浏览器将对操作系统发起系统调用,查询【操作系统本地缓存】
(3)如果找不到,则浏览器会查询与之相连的【路由器缓存】
(4)如果找不到,则浏览器会检查ISP【本地通信服务商】缓存
上面都没找到,则发起DNS查询:
浏览器要将URL解析为IP地址,解析域名就要用到DNS协议,首先主机会查询DNS的缓存,如果没有就给本地DNS发送查询请求。
DNS查询分为两种方式:一种是递归查询,一种是迭代查询
如果是迭代查询:本地的DNS服务器,向跟域名服务器发送查询请求,然后依次类推知道查询到该域名的IP地址。
DNS服务器是基于UDP的,因此会用到UDP协议
2. 生成HTTP请求消息
3. 委托操作系统将HTTP请求消息发给Web服务器
在发送之前,需要查询服务器域名对应的IP地址,因为委托操作系统发送消息时,必须提供通信对象的IP地址
4. DNS服务器查询到IP地址
5. 通过DNS获取到IP后,就可以把HTTP的传出工作交给操作系统中的协议栈
6. TCP传输
7. IP远程定位
8. MAC两点传输
9. 出口:网卡
将数字信息转换成电信号
控制网卡需要网卡驱动程序,网卡驱动从IP模块获取到包之后,会将其复制到网卡内的缓存区中,接着会在其开头加上报头和起始帧分解符,在末尾加上用于检查错误的帧校验序列。
10. 交换机
首先,电信号达到网线接口,交换机里面的模块进行接收,接下来交换机里的模块将电信号转换成数字信号
交换机根据MAC地址表查询MAC地址,然后将信号发送到相应的端口
11. 路由器
1. DNS解析:浏览器查询DNS,获取域名对应的IP地址:具体过程包括浏览器搜索自身的 DNS缓存、搜索操作系统的 DNS缓存、读取本地的Host文件和向本地DNS服务器进行查询等。对于向本地DNS服务器进行查询,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析(此解析具有权威性);如果要查询的域名不由本地 DNS 服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个 IP 地址映射,完成域名解析(此解析不具有权威性)。如果本地域名服务器并未缓存该网址映射关系,那么将根据其设置发起递归查询或者迭代查询;
2. TCP 连接:浏览器获得域名对应的 IP 地址以后,浏览器向服务器请求建立链接,发起三次握手;
3. 发送HTTP请求:TCP连接建立起来后,浏览器向服务器发送HTTP请求;
4. 服务器处理请求并返回HTTP报文:服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;
5. 浏览器解析渲染页面:浏览器解析并渲染视图,若遇到对 js 文件、css 文件及图片等静态资源的引用,则重复上述步骤并向服务器请求这些资源;浏览器根据其请求到的资源、数据渲染页面,最终向用户呈现一个完整的页面
6. 连接结束
在浏览器地址键入RUL,按下回车之后会经历以下流程:
1、浏览器要将URL解析为IP地址,解析域名就要用到DNS协议,首先主机会查询DNS的缓存,如果没有就给本地DNS发送查询请求。
查询缓存步骤:
(1)先查找【浏览器的DNS缓存】,看是否存放目标网络的IP地址
(2)如果找不到,则浏览器将对操作系统发起系统调用,查询【操作系统本地缓存】
(3)如果找不到,则浏览器会查询与之相连的【路由器缓存】
(4)如果找不到,则浏览器会检查ISP【本地通信服务商】缓存
上面都没找到,则发起DNS查询:
DNS查询分为两种方式:一种是递归查询,一种是迭代查询
如果是迭代查询:本地的DNS服务器,向根域名服务器发送查询请求,然后依次类推知道查询到该域名的IP地址。
2、解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接
3、浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次挥手的第三个报文的数据发送给服务器。
4、服务器对浏览器请求作出响应,并把对应的HTML文本发给浏览器
5、释放TCP连接
6、浏览器显示HTML文本内容
|