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

在这里插入图片描述

更多大厂面试内容可见 -> 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.mfbz.cn/a/580139.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MMSeg搭建自己的网络

配置结构 首先,我们知道MMSeg矿机的配置文件很多,主要结构如下图所示。 在configs/_base_下是模型配置、数据集配置、以及一些其他的常规配置和运行配置,四类。 configs/all_config目录下存放,即是将四种配置聚合在一起的一个总…

互联网的下个风口可能是供应链和B2B行业的创新

6年前我写过一篇文章叫做《所有B2B从业者都会遇到的9个问题》,这篇文章也同步发布在了我的知乎以及CSDN博客上面。几个平台陆续有读者通过私信和留言向我咨询一些问题,刚好这2年我对B2B又有了一些新的思考,于是就针对前些年的那篇文章做一些补…

ubuntu22.04安装TensorRT(过程记录)

重要说明:此贴经过多次修改。第一次安装的的为trt8.6.1版本。第二次安装的10.0.0.6版本。有些地方可能没改过来,比如链接向导,我懒得改了,但是流程是对的。 cuda和cudnn版本对应关系 tensorRT历史发行版本 CUDA历史发行版本 cudn…

【Linux】make 和 makefile

进度条 #pragma once#include <stdio.h>#define NUM 102 #define BODY #define TOP 100 #define RIGHT >extern void processbar(int rate);#include "processBar.h" #include <string.h> #include <unistd.h>const char lable[] "|/-\…

【限时免费】Adobe全家桶免费领取 一键安装,永久使用 全家桶大礼包破解直装版 2020-2024 设计师御用超全软件 值得收藏

一次购买&#xff0c;终生使用&#xff01;正版永久激活&#xff0c;免费一键安装&#xff0c;赠送学习视频教程&#xff0c;支持远程安装&#xff0c;安装失败&#xff0c;立即退款。无需付费&#xff0c;直接免费送&#xff01; Adobe全家桶&#xff08;Adobe Creative Clou…

【Canvas与艺术】绘制美国星条旗

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>使用HTML5/Canvas绘制美国星条旗</title><style type"…

舌头分割YOLOV8-SEG

舌头分割&#xff0c;基于YOLOV8-SEG&#xff0c;训练得到PT模型&#xff0c;然后转换成ONNX&#xff0c;OPENCV的DNN调用&#xff0c;从而摆脱YOLO依赖&#xff0c;支持C,PYTHON,ANDROID开发 舌头分割YOLOV8-SEG

Gromacs——教程学习(1)

分子动力学模拟&#xff08;Molecular Dynamics&#xff09;全流程 所有的xvg格式文件&#xff0c;都可以使用大神编写的python DuIvyTools脚本可视化&#xff0c;很方便&#xff0c;只要你的电脑配置了python或者anaconda或者miniconda pip install DuIvyToolsdit xvg_show -…

Blender面操作

1.细分Subdivide -选择一个面 -右键&#xff0c;细分 -微调&#xff0c;设置切割次数 2.删除 -选择一个或多个面&#xff0c;按X键 -选择要删除的是面&#xff0c;线还是点 3.挤出面Extrude -选择一个面 -Extrude工具 -拖拽手柄&#xff0c;向外挤出 -微调&#xff…

构建中小型企业网络-单臂路由

1.给IP地址配置好对应的IP和网关 2.配置交换机 3.路由配置 在交换机ge0/0/1中配置端口为trunk是可以允许多个vlan通过的&#xff0c;但路由器是不能够配置vlan&#xff0c;而交换机和路由器间连接的只有一根线&#xff0c;一个端口又只能配置一个ip地址&#xff0c;只有一个ip地…

内网穿透及公网解析说明

内网穿透释义&#xff1a; 自己在本地搭建服务器时&#xff0c;本地网络有多种环境&#xff0c;如没有公网IP、没有路由映射权限、网络被NAT转发等情况。在需要外网访问内网服务器资源时&#xff0c;就需要用到内网穿透。内网穿透&#xff0c;即内网映射&#xff0c;内网IP地址…

vue3中使用animate.css

在vue3中使用animate.css 20240428_093614 引入&#xff1a;npm install animate.css --save main.js注册&#xff1a;import ‘animate.css/animate.min.css’ 注意&#xff1a;import ‘animate.css’ 不适合在vue3项目 使用&#xff1a;class“animate__animated 动画名称”…

艾宾浩斯记忆曲线记忆法,艾宾浩斯遗忘曲线计划表

一、资料前言 本套遗忘曲线复习计划表&#xff0c;大小59.22M&#xff0c;1个压缩文件。 二、资料目录 00 艾宾浩斯视频介绍 01 艾宾浩斯表格&#xff08;智能电子版&#xff09; 02 艾宾浩斯表格&#xff08;可编辑可打印&#xff09; 03 日周月计划表 04 一些好用的表…

通过中缀表达式转后缀表达式计算复杂表达式

栈操作与表达式解析&#xff1a;从基础到实践 在计算机科学中&#xff0c;栈是一种常用的数据结构&#xff0c;它遵循后进先出&#xff08;LIFO&#xff09;的原则。本文将通过一系列函数的实现&#xff0c;探讨栈在括号匹配、中缀表达式转换为后缀表达式以及后缀表达式求值中…

终端安全管理软件哪个好?

终端安全管理软件是保障企业信息安全的重要工具。 它们能够有效地防范恶意软件、黑客攻击和其他安全威胁&#xff0c;并提供多方面的终端设备安全保护措施。 终端安全软件的功能和保护机制各不相同&#xff0c;这就需要企业根据自身的需求和情况来进行评估和选择。 下面总结了…

自动化测试

自动化测试 1、quit() 和 close()的区别2、窗口切换3、截图操作 1、quit() 和 close()的区别 1、quit() 是关闭整个浏览器&#xff1b;而close() 是关闭当前的页面&#xff1b; 2、quit() 操作会清空缓存&#xff1b;close() 不会清空缓存&#xff1b; 2、窗口切换 private …

Python 语音识别系列-实战学习-语音识别特征提取

Python 语音识别系列-实战学习-语音识别特征提取 前言1.预加重、分帧和加窗2.提取特征3.可视化特征4.总结 前言 语音识别特征提取是语音处理中的一个重要环节&#xff0c;其主要任务是将连续的时域语音信号转换为连续的特征向量&#xff0c;以便于后续的语音识别和语音处理任务…

【leetcode】快慢指针相关题目总结

141. 环形链表 判断链表是否有环&#xff1a;如果链表中存在环&#xff0c;则在链表上不断前进的指针会一直在环里绕圈子&#xff0c;且不能知道链表是否有环。使用快慢指针&#xff0c;当链表中存在环时&#xff0c;两个指针最终会在环中相遇。 /*** Definition for singly-…

Java动态代理的实现方式

Java动态代理的实现方式 什么是动态代理&#xff1f; 动态代理是一种编程模式&#xff0c;它允许在运行时创建代理对象&#xff0c;以实现对目标对象的方法进行增强&#xff0c;代理对象同名方法内可以执行原有逻辑的同时嵌入执行其他增强逻辑或者其他对象方法。 动态代理的…

【软考】设计模式之策略模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 优缺点5.1 优点5.2 缺点 6. 适用性 1. 说明 1.定义一系列的算法&#xff0c;把它们一个个封装起来&#xff0c;并且使它们可以相互替换。2.此模式使得算法可以独立于使用它们的客户而变化。3.策略模式&#xff08;Strategy Pattern…
最新文章