计算机网络面试高频:输入域名会发生那些操作,开放性回答

在这里插入图片描述

更多大厂面试内容可见 -> http://11come.cn

计算机网络面试高频:输入域名会发生那些操作,开放性回答

输入域名之后,会发生哪些操作?

当在浏览器中输入www.baidu.com并按下回车键时,会触发一系列复杂的网络过程,包括DNS解析、TCP连接建立、HTTP请求和响应等。以下是这个过程中发生的详细步骤,分层次地说明每一个环节,

域名 www.baidu.com 其实最后还有一个点,即 www.baidu.com. ,域名级别从右到左递减,根域名为 . ,顶级域名为 .com ,二级域名为 baidu ,三级域名为 www

1、首先会经过通过 DNS 解析 将域名解析为对应的 IP 地址

在 DNS 解析之前 ,浏览器会先检查是否存在 DNS 缓存,存在则返回

如果没有,之后会检查操作系统是否存在 DNS 缓存,存在则返回(Linux 中可以通过 /ets/hosts 文件设置,可以将域名解析到任意能够访问的 IP 地址)

如果都没有,则会向本地 DNS 服务器发送域名解析请求

DNS 服务器解析过程: 首先,客户端发送一个 DNS 解析请求给【本地 DNS 服务器】,如果本地 DNS 服务器中存在域名与 IP 的映射,就直接返回

如果没有,本地 DNS 服务器会去请求【根域名服务器】解析 www.baidu.com,根域名服务器发现顶级域名为 .com ,于是将 .com 的顶级域名服务器地址返回

接下来,本地 DNS 服务器会再去请求 .com 的【顶级域名服务器】解析 www.baidu.com,顶级域名服务器会返回 baidu.com 域名服务器的地址

接下来,本地 DNS 服务器会再去请求 baidu.com 的【权威域名服务器】,该权威域名服务器就会返回 www.baidu.com 域名对应的 IP 地址

image-20240427142801983

经过 DNS 域名解析,客户端就拿到了域名对应的 IP 地址,接下来双方就可以建立 TCP 连接进行通信了

2、双方建立 TCP 连接

客户端拿到了域名对应的 IP 地址,就可以向该 IP 地址发送 TCP 连接建立的请求了,通过 三次握手 双方建立了 TCP 连接,之后就可以进行网络通信了

3、数据传输

image-20240427154833804

当客户端需要发送数据的时候,应用层会发起 HTTP 请求,接下来到了 传输层 ,HTTP 请求的数据就会被封装在 TCP报文 中,并且添加上 TCP 头信息(包含了源、目的端口号、序列号、确认号等信息)

接下来到了 网络层 ,TCP 报文会被封装在 IP 报文 中,并添加上 IP 头信息(包含了源 IP、目的 IP 等信息)

接下来到了 数据链路层 ,IP 报文会被封装在 MAC 报文 中,并添加上 MAC 头信息(包含了源 MAC、目的 MAC 等信息)

接下来到了 物理层 ,到了物理层会将数字信息转为电信号,电信号通过网线进行传输,完成数据发送的功能,这一步通过网卡来完成,即网卡收到数据包之后,将数据转为电信号通过网线发送出去,之后电信号到达了 交换机 ,交换机通过 MAC 报文 头部的 MAC 地址进行数据的转发,之后到达了 路由器 ,路由器会根据 IP 报文 头部的 IP 地址进行数据的转发

之后数据包抵达服务器,服务器对数据包进行一层一层拆分,先将 MAC 报文 的头部拿出来,判断 MAC 地址等信息是否符合,之后将 IP 报文 的头部拿出来,判断 IP 地址等信息是否符合,之后将 TCP 报文 的头部拿出来,判断序列号、端口号等信息是否符合,如果都符合就将这个数据包发送给服务端监听这个端口的应用进程,这就完成了一次请求数据的传递了

当双方数据传输完毕之后,通过 四次挥手 断开双方的 TCP 连接即可

扩展:可以再添加上 HTTPS 中的 TLS 握手阶段

如果使用 HTTPS 通信的话,在 TCP 握手建立 TCP 连接之后,还需要通过 TLS 握手来协商双方加密的 对称密钥 ,可以将 TLS 握手阶段给说一下

那么 TLS 握手的过程总共包含了 4 次通信 ,在 4 次通信之后,TLS 协议也就建立成功了,可以进行 HTTPS 通信了,TLS 握手过程中的 4 次通信如下:

1、第一次通信 ClientHello :客户端向服务端发送加密请求,主要是协商 TLS 版本、随机数(生成后续的对称密钥)

2、第二次通信 ServerHello :服务端向客户端回复,主要协商 TLS 版本、随机数(生成后续的对称密钥)、数字证书(包含公钥)

3、第三次通信 客户端回应 :取出数字证书的公钥,将用于通信的 对称密钥 通过公钥加密发送给服务端

4、第四次通信 服务端最后回应 :使用自己本地的密钥进行解密,得到用于通信的 对称密钥

通过 TLS 握手阶段,双方就可以拿到对称密钥,之后双方就可以使用这个 对称密钥 进行加密通信了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/7104.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【菜单下拉效果】基于jquery实现二级菜单下拉效果(附完整源码下载)

Js菜单下拉特效目录 🍔涉及知识🥤写在前面实现效果🍧一、涉及知识🌳二、具体实现2.1 搭建一级菜单2.2 搭建二级菜单项2.3 引入js文件2.4 构建CSS文件 🐋三、源码获取🌅 作者寄语 🍔涉及知识 ht…

VastGaussian:用于大型场景重建的巨大3D高斯函数

VastGaussian:用于大型场景重建的巨大3D高斯函数 摘要IntroductionRelated WorkPreliminariesMethod VastGaussian: Vast 3D Gaussians for Large Scene Reconstruction. 摘要 现有基于NeRF的大型场景重建方法在视觉效果和渲染速度方面往往存在限制。虽然最近的3D高斯分裂在小…

AI智体的分级:从基于规则到基于LLM

摘要: AI智体被定义为感知环境、做出决策和采取行动的人工实体。受SAE(汽车工程师学会)自动驾驶6个级别的启发,AI智体也根据效用和强度进行分类,分为以下几个级别:L0——无AI,有工具&#xff0…

【C++】stack、queue和priority_queue的模拟实现

在本篇博客中,作者将会讲解STL中的stack、queue和priority_queue的模拟实现,同时还会带大家了解一下deque这个容器。 一.什么是适配器 STL中一共有6大组件:容器,适配器,空间配置器,仿函数,迭代器…

【码银送书第十九期】《图算法:行业应用与实践》

作者:嬴图团队 01 前言 在当今工业领域,图思维方式与图数据技术的应用日益广泛,成为图数据探索、挖掘与应用的坚实基础。本文旨在分享嬴图团队在算法实践应用中的宝贵经验与深刻思考,不仅促进业界爱好者之间的交流,…

RabbitMQ 是如何做延迟消息的 ?——Java全栈知识(15)

RabbitMQ 是如何做延迟消息的 ? 1、什么是死信? 当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter): 消费者使用 basic.reject 或 basic.nack 声明消费失败,并且消息的 reque…

2.4Java全栈开发前端+后端(全栈工程师进阶之路)-前端框架VUE3-基础-Vue组件

初识Vue组件 Vue中的组件是页面中的一部分,通过层层拼装,最终形成了一个完整的组件。这也是目前前端最流行的开发方 式。下面是Vue3官方给出的一张图,通过图片能清楚的了解到什么是Vue中的组件。 图的左边是一个网页,网页分为了…

ECS弹性云服务器居然这么好用。

引言 在过去的十年里,云计算从一个前沿概念发展为企业和开发者的必备工具。传统的计算模型通常局限于单一的、物理的位置和有限的资源,而云计算则通过分布式的资源和服务,为计算能力带来了前所未有的"弹性"。 云弹性服务器——为什…

AAA、RADIUS、TACACS、Diameter协议介绍

准备软考高级时碰到的一个概念,于是搜集网络资源整理得出此文。 概述 AAA是Authentication、Authorization、Accounting的缩写简称,即认证、授权、记帐。Cisco开发的一个提供网络安全的系统。AAA协议决定哪些用户能够访问服务,以及用户能够…

精品干货 | 数据中台与数据仓库建设(免费下载)

【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 数据中台与数据仓库建设 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT/WORD原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT/WORD解决方…

PPO 学习笔记

用PPO算法求解整个神经网络在迭代过程中的梯度问题 每走一步就会得到一个新的状态,把这个状态传到网络里面,会得到一个 action,执行这个 action 又会到达一个新状态 policy 中由状态 st 生成动作 at,生成的这个 at 是由整个网络的…

什么是X电容和Y电容?

先补充个知识: 一、什么是差模信号和共模信号 差模信号:大小相等,方向相反的交流信号;双端输入时,两个信号的相位相差180度 共模信号:大小相等。方向相同。双端输入时,两个信号相同。 二、安规…

Redis探索之旅(基础)

目录 今日良言:满怀憧憬,阔步向前 一、基础命令 1.1 通用命令 1.2 五大基本类型的命令 1.2.1 String 1.2.2 Hash 1.2.3 List 1.2.4 Set 1.2.5 Zset 二、过期策略以及单线程模型 2.1 过期策略 2.2 单线程模型 2.3 Redis 效率为什么这么高 三…

cmake进阶:文件操作

一. 简介 前面几篇文章学习了 cmake的文件操作,写文件,读文件。文章如下: cmake进阶:文件操作之写文件-CSDN博客 cmake进阶:文件操作之读文件-CSDN博客 本文继续学习文件操作。主要学习 文件重命名,删…

python爬虫(一)之 抓取极氪网站汽车文章

极氪汽车文章爬虫 闲来没事,将极氪网站的汽车文章吃干抹尽,全部抓取到本地,还是有点小小的难度。不能抓取太快,太快容易被封禁IP,不过就算被封了问题也不大,大不了重启路由器,然后你的IP里面又…

文件夹加密软件哪个好?文件夹加密软件排行榜

许多人给小编说,我们公司想实现文件私自发出呈乱码状态,这说明公司逐渐认识到文件加密的重要性。 目前,加密软件已经广泛应用于企业办公、商业贸易、个人应用等多个领域,成为保护数据安全和隐私的重要手段。 为了保护企业机密&am…

OpenNJet评测,探寻云原生之美

在信息时代的大海上,云原生应用引擎如一艘航行于波涛之间的帆船,承载着创新的梦想和数字化的未来。本文将带领您登上这艘船,聚焦其中之一的OpenNJet,一同探寻其中的奥秘和精妙,领略其独特之美。 OpenNJet 内容浅析 O…

智慧工地)智慧工地标准化方案(107页)

2.2 设计思路 对于某某智慧工地管理系统的建设,绝不是对各个子系统进行简单堆砌,而是在满足各子系统功能的基础上,寻求内部各子系统之间、与外部其它智能化系统之间的完美结合。系统主要依托于智慧工地管理平台,来实现对众多子系统…

OpenNJet应用引擎——云原生时代的Web服务新选择

文章目录 OpenNJet应用引擎——云原生时代的Web服务新选择引言:数字化转型的推动力:OpenNJet应用引擎为什么选择OpenNJet? OpenNJet的核心优势1. 云原生功能增强2. 安全加固3. 代码重构与性能优化4. 动态加载机制5. 多样化的产品形态6. 易于集…

Python测试框架Pytest的参数化详解

上篇博文介绍过,Pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升。 在实际工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余。这里,我们来了解一下pytest.mark.parametrize装饰器&…