键入网址到网页显示,期间发生了什么?
输入网址到网页显示,这个过程到底发生了什么,我相信这是初学者很想了解地方。明白这个过程,才能将所学的计算机网络的知识串连起来,而不是孤零零的去学一个点。
首先,让我们来了解一下五层模型。
五层模型
- 应用层:HTTP、DNS、Web socket
- 传输层:TCP、UDP
- 网络层:IP、路由器
- 数据链路层:网桥、交换机
- 物理层:中继器、集线器、网线
怎么区分数据链路层和物理层?
物理层负责物理介质上传输原始的比特流(0、1),不关心内容,只把比特流发出去。
数据链路层负责讲原始的比特流组织成帧,并在同一个局域网内实现可靠传输。
例如交换机,根据MAC地址转发帧,一旦数据需要跨局域网,就需要“路由”了,超出数据链路层的能力。
现在,让我们来看输入网址到网页显示的过程
1. 解析URL生成HTTP请求
浏览器对URL进行解析,生成HTTP请求
URL包括域名和资源文件的路径名
URL是什么?
全称:Uniform Resource Locator,统一资源定位符。
简单来说,就是网页的“地址”,用来告诉浏览器“去哪里找这个资源”
它告诉浏览器:用什么协议、连接哪台服务器、找哪个文件、带什么参数
2. DNS 域名解析得到目的IP
浏览器在生产HTTP请求后,需要委托操作系统将消息发送给Web服务器。
委托操作系统发送消息时,必须提供给对象的IP地址。
即:域名 -> IP
DNS解析流程

递归查询比较常用
5. 添加MAC头部实现以太网传输
MAC 包头里需要发送方 MAC 地址 和 接收方目标 MAC 地址,用于两点之间的传输。
发送方的MAC地是在网卡生产时写入到 ROM 里的,将这个值读取出来写入到MAC头部;
通过ARP协议在以太网中以广播的形式获得目标MAC地址。
ARP是什么?
ARP(Address Resolution Protocol,地址解析协议)的主要功能是将网络层的IP地址解析为数据链路层的MAC地址,以实现局域网内的设备
通信。尽管其功能涉及数据链路层的MAC地址,但根据协议层级划分,它属于网络层

