栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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的数据从而显示。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/335510.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号