网络原理5——从输入网址到显示,期间发生了什么

本文详细阐述了从输入URL到数据传输的整个过程,包括HTTP请求生成、DNS域名解析、TCP三次握手、IP传输、MAC寻址及数据封装,最后到达Web服务器的步骤。涉及关键技术和协议,如HTTP、TCP/IP、DNS、ARP等,揭示了互联网通信的基础机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.HTTP——对URL进行解析,生成HTTP请求信息

作为浏览器,获得一个网址,要做的第一步就是解析这个URL第二步是生成HTTP请求报文发送给web服务器。
先看一下URL的组成:
在这里插入图片描述

最前面是访问的协议,现在一般是HTTPS
然后两杠之后,就是对应的web服务器域名
再之后就是,你要的文件,在服务器上哪条目录里(如果没有蓝色部分,则代表访问默认文件,也就是 /index.html 或者 /default.html )

解析完了,浏览器就能确定web服务器的域名和对应的文件位置和文件名。
然后根据这些信息来生成HTTP请求报文,这个请求报文可以是GET请求,也可以是POST请求。

2.DNS域名解析——查询Web服务器域名的IP地址

仔细看第一点里,解析完URL,生成好了请求报文后面还有一句发送给Web服务器,所以问题自然而然的带来了,我只有一个域名,怎么知道IP地址,怎么知道往哪儿发?
DNS我们在IP相关技术中说过了
IP详解

回顾一下,主要是首先,域名本身分层
根域名服务器
顶级域名服务器
权威域名服务器

然后,开始域名解析:
我们说域名解析之前,先检查自己浏览器缓存,再看操作系统缓存,再看本机DNS解析文件,如果三者都没有,则开始递归查询:
找本地DNS服务器,让他代劳帮你查。
然后本地DNS开始迭代查询:
先问大哥,根服务器,皮球踢给了二哥
再问二哥顶级域名服务器,皮球踢给了三哥
然后三哥权威域名服务器是最小的哥了,得干活儿,他把具体地址给本地DNS。
最后本地DNS完成迭代,递归把IP地址传回给客户端。

至此,报文知道目的地在哪了,接下来的问题是怎么发出去

3.协议栈——传输工作

DNS获取到IP之后,就可把HTTPS的传输报文的工作交给下层的协议栈完成。

4.TCP——三次握手,数据分片,封装

HTTP基于TCP协议完成可靠传输
TCP详解我们之前也说过了:
添加链接描述

(注:HTTP3基于UDP和TSL1.3也可完成类似TCP的功能,所以不一定要依靠TCP,只是现在3还没普及)

所以TCP这一步在这里,主要完成三次握手,建立连接

  • 完成三次握手,建立连接
  • 数据分片(超过MSS)
  • 加TCP头部,主要是源端口和目的端口,以及TCP自带seq和ack等。

5.IP——封装

IP层收到TCP传下来的数据包,将之封装成网络包发送给对象。

(如果发送方有多个端口IP,就查询自己的路由表,看与哪个匹配就从哪个端口IP发出去)
知道去哪儿了之后IP层封装的时候就可以给数据加上IP头部的源地址IP和目的地址IP

6.1MAC——ARP寻址,封装

在数据链路层封装的时候需要MAC头部:发送方MAC地址和接收方MAC地址,以完成点对点传输

所以我们要通过ARP协议来获取接收方的MAC地址
先查ARP缓存,没查到就广播发送ARP查询请求,同一子网上的匹配到自己的IP就回复ARP应答包含自己的MAC地址。

6.2.MAC网卡——封装(报头帧起始分界符,结尾帧校验序列),数字信号转化为电信号

因为我们的数据帧要从2进制转换为电信号才能发出去,所以网卡主要负责将数字信息转化为电信息

网卡驱动程序获取IP模块的包之后,将其复制到网卡缓存中,然后在开头加上报头以及起始帧分节符,在结尾加上帧校验序列FCS

最后,经过网卡的包转化成了电信号,通过网线就发出去了。

6.3MAC交换机——校验,查MAC表尽力转发

当数据到达一个二层转发设备交换机时,通过网线接口,交换机模块接收,将电信号转化成数字信号。

校验FCS,由于交换机端口和网卡不一样,不具有MAC地址,只负责转发,查询MAC地址表转发至某一端口。
(如果没有查到/MAC地址是广播地址,就发到除了源端口以外所有端口,所以我称之为尽力转发,不是直接丢包

7.路由器——校验FCS和拆MAC头,查表路由,看网关,ARP,封装MAC头,交换机

作为三层网络设备。不同于交换机,路由器的每个端口都有MAC地址和IP地址这和计算机的网卡一致

接收的问题:
路由器先把电信号转化成数字信号,然后校验FCS,如果没问题则检查接收方MAC,看是否发给自己,不是则直接丢包

然后就是查表路由了:
这里每一跳都需要IP路由,查询路由表,找到与目的IP地址最长匹配的路径发出去。
详情见IP详解,添加链接描述

查到对应的条目我们注意:
如果网关是一个IP地址,说明还没到,要路由器继续转发
如果网关为空,则已经到目的IP地址了

如果没有到目的地,就是ARP查MAC,封装MAC头,然后交给下层交换机送走。直到到达目的IP地址。

8.web服务器接收

拆快递就行,一层层的把头部去掉,直到获取对方发过来的HTTP数据。由此回复数据,当客户端再次收到快递的时候,就可以通过浏览器处理HTTP的数据从而显示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值