当前位置: 首页 > news >正文

计网:从输入URL到网页显示期间发生了什么

1、URL包含的信息

我们输入的url中包含着一些信息:

  • http:表示的此次我们使用的什么协议
  • /www.baidu.com:表示的是我们想要访问的服务器名称,也就是域名
  • dir3/home.html:表示我们所要访问的资源

2、通过DNS解析URL获得IP

在计算机寻址中我们是通过ip进行转发的,所以在进行信息发送之前我们需要将URL转化为IP。

在DNS服务器中储存了服务器域名和IP的对应关系。

其实真实域名是www.baidu.com.在最后还有一个点。这个点代表的就是根域名服务器。

域名服务器有:

DNS解析IP过程:

  1. 客户端会先询问本地域名服务器,看它是否知道这个域名所对应的ip地址。
  2. 如果本地域名服务器不知道就会去问,本地域名服务器就问讯根域名服务器,让他告诉自己这个域名属于哪个顶级域名服务器。
  3. 拿到所对应的顶级域名服务器地址后,就会问询这个域名所对应的是哪个权威域名服务器。
  4. 拿到对应的权威域名服务器后,本地域名服务器会就直接问权威域名服务器说这个域名所对应的IP地址是什么。此时权威域名服务器就可以直接将域名所对应的IP返回给本地DNS。
  5. 此时本地DNS就将IP返回给客户端,则客户端就和目标服务器进行连接建立。

并不是每此建立连接都有这么多过程。因为有缓存这个东西。客户端会先看看浏览器有没有这个域名缓存,如果没有则会去看看操作系统有没有这个缓存,如果没有就再去hosts文件看有没有标注这个域名和IP的关系,都没有的话才会去询问本地域名服务器。

3、传输层

获取到IP后就轮到网络传输中各个层起作用的时候了,对数据进行封装和传输。

在HTTP传输数据前要先建立TCP连接,也就是TCP三次握手。这三次握手的作用就是确认客户端和服务端双方都具有接收和返送消息的能力。

当数据过长时,超过MSS长度时,TCP会对HTTP包进行拆解,并把拆解出来的部分放到单独的TCP包中。

MSS:除去 IP 和 TCP 头部之后,一个网络包所能容纳的 TCP 数据的最大长度。

在TCP包中所包含的信息:

  • 在TCP协议中,源端口号和目标端口号是必不可少的。这两个端口号用于确定数据属于哪个应用程序。

  • TCP还使用序列号来解决数据包乱序的问题。通过为每个数据包分配一个序列号,接收方可以将乱序的数据包按照正确的顺序进行重组。

  • 确认号也是TCP中的重要元素。发送方在收到确认号之前会一直重复发送数据包,直到接收方发送确认号回复。这样可以解决数据包丢失的问题。

  • 还有一些状态位也是TCP中的重要内容。例如,SYN用于建立连接,ACK用于确认接收到的数据,RST用于重新连接,FIN用于结束连接等。TCP是一种面向连接的协议,因此双方需要维护连接的状态,并通过发送带有状态位的数据包来更新状态。

  • 此外,TCP还使用窗口大小来进行流量控制。通信双方会声明自己的窗口大小,以指示自己的处理能力。通过控制发送速度,TCP可以防止发送方发送过多的数据导致接收方无法处理。

  • TCP还会做拥塞控制,在网络情况差时,TCP可以通过控制自身的发送速度来减轻网络拥塞的影响。

加上TCP头后此时网络包是:

建立网TCP包后数据包就传输到了网络层,进行转发。

4、网络层

在 IP 协议里面需要有源地址 IP 和 目标地址 IP

  • 源地址IP,即是客户端输出的 IP 地址;
  • 目标地址,即通过 DNS 域名解析得到的 Web 服务器 IP。
  • 在转发过程中通过路由表规则判断转发到哪一个网段。
  • 匹配规则就是目的地址与路由表条目中的对应掩码进行与运算,如果运算后结果与相对应的条目相同,则转发到此条目所对应的端口所对应的网段中去。
  • 一般还说路由器都有一个默认网关,如果前面具体的条目每一个对应上的,则会转发到默认网关所对应的网段中去。

我们经常使用一个Ping命令,用于判断网络是否可达,这个命令使用的就是ICMP协议,是TCP/IP协议族的一部分,它运行在IP层之上,用于传输错误信息和控制信息。

当IP层接收到一个较大的数据包,并且知道下一跳的链路层MTU小于该数据包的大小时,IP层会对数据包进行拆分。每个拆分后的片段都会有一个新的IP头部,其中包括标识符、标志位和片段偏移字段,这些信息用于在接收端重组原始数据包。

MTU(Maximum Transmission Unit,最大传输单元)是指在一个特定的网络层或链路层上可以传输的最大数据包大小(不包括头部信息)。在以太网中,标准的MTU通常是1500字节。

5、数据链路层(MAC层)

在上一层中我们通过IP路由转发,可以进行路由转发,进行远程定位,但点到点中的数据发送就需要MAC层的帮助了,当数据进入到一个网络内,此时数据包中只有目的地址的IP,但传输数据需要对方发MAC地址,此时我们就需要一个协议:ARP协议。

ARP协议通过广播请求来获取目标设备的MAC地址:

  1. 发送方广播一个ARP请求,其中包含了目标IP地址。
  2. 目标设备接收到请求后,回应其MAC地址。
  3. 发送方将目标IP地址和MAC地址对应起来,存储在本地的ARP缓存表中,并使用该MAC地址发送数据。

6、物理层

在上面的过程中数据包存放的都是一串二进制数据,二进制数据无法进行传输,所以需要将其转化为电信号,才能进行传输,完成此工作的是网卡。在网卡驱动程式获得网络包后,会将其复制到网卡中,并在其头部加上报文头和起始帧分界符,在末尾加上用于检测错误的帧校验序列。

7、服务端

当数据经过层层关卡,到达服务端后,会从协议栈自底向上逐渐拆解相对应层的协议头,最终给服务端真正的请求数据,并对其进行相应,然后通过自上向底对相应数据进行包装,最终有传输到客户端,客户端把返回回来的页面进行渲染,展示给用户。

相关文章:

计网:从输入URL到网页显示期间发生了什么

1、URL包含的信息 我们输入的url中包含着一些信息: http:表示的此次我们使用的什么协议/www.baidu.com:表示的是我们想要访问的服务器名称,也就是域名dir3/home.html:表示我们所要访问的资源 2、通过DNS解析URL获得I…...

龚宇引以为傲的“爆款制造营”,爱奇艺怕是要爽约了

文:互联网江湖 作者:刘致呈 人们经常用人红戏不红,来形容毯星,综艺上咋咋呼呼,一提都知道,可问及代表作,不好意思,这个真没有。 今年的爱奇艺,貌似也迎来了这一宿命。 …...

org.springframework.web.client.HttpClientErrorException$NotFound异常

springCloud报错信息:org.springframework.web.client.HttpClientErrorException$NotFound: 404 null第一点: 第二点:没有httpclient工具类 注入RestTmeplate类时,改类需要RestController或ResponseBody...

在开关电源转换器中充分利用碳化硅器件的性能优势

在过去的几十年中,半导体行业已经采取了许多措施来改善基于硅 MOSFET (parasitic parameters),以满足开关转换器(开关电源)设计人员的需求。行业效率標準以及市场对效率技术需求的双重作用,导致了对于可用于构建更高效…...

QObject::connect: Cannot queue arguments of type ‘QList<QString>‘

QObject::connect: Cannot queue arguments of type ‘QList’ QObject::connect: Cannot queue arguments of type QList<QString> (Make sure QList<QString> is registered using qRegisterMetaType().)使用信号和槽时&#xff0c;QList无法当做参数被传递&…...

基于K8S部署安装Jenkins

基于K8S部署安装Jenkins 1.Jenkins Kubernetes 清单文件2.Kubernetes Jenkins 部署1&#xff1a;为 Jenkins 创建 Namespace。 最好将所有DevOps工具分类为与其他应用程序分开的命名空间。2&#xff1a;创建“serviceAccount.yaml”文件并复制以下管理员服务帐户清单。1. kubec…...

24-8-4-读书笔记(十三)-《莎士比亚全集》(第一卷(续)) [英] 威廉·莎士比亚 [译]朱生豪

文章目录 《莎士比亚全集》(第一卷(续))目录阅读笔记记录总结《莎士比亚全集》(第一卷(续)) 《莎士比亚全集》朱生豪的经典译本,非常值得花时间去读一读,莎氏的巨作有其独特的韵味,与莫里哀、契诃夫、曹禺等其他国家的剧作家有其鲜明的特点,这既是源于其所处的时代…...

linux nicstat

nicstat 是一个用于监控和报告网络接口统计信息的工具。它可以提供关于网络接口的详细性能数据&#xff0c;包括传输速率、错误率、丢包率等。nicstat 对于诊断网络性能问题和优化网络配置非常有用。 安装 nicstat nicstat 可能不在所有Linux发行版的默认软件库中&#xff0c…...

程序员如何积累人脉?光靠技术不行了~

从事技术的人&#xff0c;还没被社会“塑造”前&#xff0c;总会有一个“固有思维”&#xff0c;就是这个世界大概率是“由代码和逻辑主宰的世界”&#xff0c;人脉积累并不在考虑范围内&#xff0c;而我们也常被误解为只懂得与机器对话的technician。 事实上&#xff0c;游戏…...

初识增强现实(AR)

初识增强现实&#xff08;AR&#xff09; 笔记来源&#xff1a; 1.2023年中国增强现实&#xff08;AR&#xff09;行业研究报告 2.wiki/Augmented reality 3.In-Depth Review of Augmented Reality: Tracking Technologies, Development Tools, AR Displays, Collaborative AR…...

开关电源起振是什么看了就知道

接触开关电源的朋友都知道&#xff0c;含有电源管理芯片的开关电源有输入&#xff0c;没输出时常说是不是电路没起振&#xff0c;到底这句话是什么意思呢&#xff1f;什么是“起振”先不做 的解释&#xff0c;简单打个比方&#xff0c;大家就容易懂了&#xff0c;就好像抢救心…...

Modbus_Ascii协议

设备必须要有RTU协议&#xff01;这是Modbus协议上规定的&#xff0c;且默认模式必须是RTU&#xff0c;ASCII作为选项。&#xff08;也就是说&#xff0c;一般的设备只有RTU这个协议&#xff0c;ASCII一般很少&#xff09;所以说&#xff0c;一般学习Modbus协议&#xff0c;只需…...

树莓派在功能和成本之间的 “惊人平衡 “支持了全球数字标牌的成功故事!

树莓派的“功能和成本之间的惊人平衡”支撑全球数字标牌成功故事 数字标牌已经成为一个数十亿美元的行业。Yodeck很快预测到了其中的潜力&#xff1a;他们需要硬件来支持他们可靠、具有成本效益和易于管理的服务&#xff0c;而不会影响性能。事实证明&#xff0c;树莓派 4 证明…...

C++ 学习记录

文章目录 继承重载和重写区别重载重写 参考文献 继承 继承顾名思义就是对长辈本有的东西进行获取与使用&#xff0c;即两个以及两个类以上的关系在获取与使用时会存在一些情况&#xff1a; public&#xff1a;长辈对外公开的自身所有物&#xff0c;最终都会是后代的protected&…...

C#中的TCP和UDP

TcpClient TCP客户端 UDP客户端 tcp和udp的区别 TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;是两种在网络通信中常用的传输层协议&#xff0c;它们在C#或任何其他编程语言中都具有相似的特性。下面是TCP和UDP的主要区别&#xff1a;…...

Spring中使用嵌套事务及事务保存点

嵌套事务及事务保存点 Spring中的嵌套事务与事务保存点1. 什么是嵌套事务&#xff1f;2. 为什么使用嵌套事务&#xff1f;3. 如何在Spring中使用嵌套事务&#xff1f;4. 使用事务保存点5. 总结 Spring框架提供了强大的事务管理功能&#xff0c;包括对嵌套事务的支持。在Spring中…...

SFT、RLHF、DPO、IFT —— LLM 微调的进化之路

TL;DR • SFT、RLHF 和 DPO 都是先估计 LLMs 本身的偏好&#xff0c;再与人类的偏好进行对齐&#xff1b; • SFT 只通过 LLMs 生成的下一个单词进行估计&#xff0c;而 RLHF 和 DPO 通过 LLMs 生成的完整句子进行估计&#xff0c;显然后者的估计会更准确&#xff1b; • 虽然…...

【数据结构】LinkedList与链表

目录 链表 1、链表的概念及结构 2、LinkedList的使用 2、1什么是LinkedList 2、2LinkedList的使用 3、LinkedList的遍历 4、LinkedList的模拟实现 5、ArrayList和LinkedList的区别 上篇已经熟悉了ArrayList的使用&#xff0c;ArrayList底层使用数组来存储元素。由于其底层…...

《LeetCode热题100》---<5.①普通数组篇五道>

本篇博客讲解LeetCode热题100道普通数组篇中的五道题 第一道&#xff1a;最大子数组和&#xff08;中等&#xff09; 第二道&#xff1a;合并区间&#xff08;中等&#xff09; 第一道&#xff1a;最大子数组和&#xff08;中等&#xff09; 法一&#xff1a;贪心算法 class So…...

根据id查找树形结构中匹配数据与上级所有数据

背后 在用户管理业务开发过程中&#xff0c;通常需要查询出用户管理的菜单数据和当前菜单的所有上级数据。为了方便后续的cv工作&#xff0c;我打算把这种方法记录下来&#xff0c;以备不时之需. 代码实现细节 Data public class MenuDTO {Schema(description "菜单id&qu…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...