首页 > 其他分享 >键入网址到网页显示

键入网址到网页显示

时间:2024-06-23 22:58:27浏览次数:16  
标签:网页 IP MAC 键入 网址 地址 DNS 服务器 数据包

解析URL,生成HTTP请求

浏览器对键入的URL进行解析,生成一个HTTP请求

查询服务器域名对应的IP地址

对域名进行DNS解析

解析流程

  1. 浏览器检查自身的DNS缓存记录,查看是否有该域名对应的IP地址。
  2. 当浏览器缓存中无域名对应IP 则会自动检查用户计算机系统 Hosts 文件 DNS 缓存是否有该域名对应 IP。
  3. 当浏览器及系统缓存中均无域名对应 IP 则进入路由器缓存中检查。
  4. 当仍是找不到域名对应IP地址,客户端会发出一个DNS请求给本地DNS服务器。如果缓存表格能找到域名对应的IP则直接返回。如果没有,本地DNS服务器向根DNS服务器发起域名解析请求,。
  5. 根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到顶级DNS服务器继续查询,并给出顶级DNS服务器的地址。
  6. 本地DNS服务器收到继续向顶级DNS服务器发出请求,顶级DNS服务器也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的权威DNS服务器的地址。
  7. 本地DNS服务器向权威DNS服务器的发出请求,权威 DNS 服务器查询后将对应的 IP 地址 告诉本地 DNS服务器。
  8. 本地DNS服务器把IP地址返回给用户电脑,并把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

查询方式

实际上,DNS解析是一个包含迭代查询和递归查询的过程。
● 递归查询指的是查询请求发出后,域名服务器代为向下一级域名服务器发出请求,最后向用户返回查询的最终结果。使用递归查询,用户只需要发出一次查询请求。
● 迭代查询指的是查询请求后,域名服务器返回单次查询的结果。下一级的查询由用户自己请求。使用迭代查询,用户需要发出多次的查询请求。

一般我们向本地 DNS 服务器发送请求的方式就是递归查询,因为我们只需要发出一次请求,然后本地 DNS 服务器返回给我 们最终的请求结果。而本地 DNS 服务器向其他域名服务器请求的过程是迭代查询的过程,因为每一次域名服务器只返回单次 查询的结果,下一级的查询由本地 DNS 服务器自己进行。

传输层

HTTP 是基于 TCP 协议传输的。在 HTTP 传输数据之前,首先需要 建立TCP连接。建立好连接后,传输层会为HTTP数据包加上TCP头部,装上源端口号和目的端口号等信息。目的端口号是为了在数据包到达目的计算机时让其了解需要将数据包交给什么应用层协议进行处理,源端口号是为了让目标计算机想要返回数据的时候,知道给源计算机的哪个应用层协议发送。

如果 HTTP 请求消息比较长,超过了 MSS 的长度,这时 传输层需要把 HTTP 的数据拆解成一块块的数据发送,而不是一次性发送所有数据。

  • MTU:一个网络包的最大长度,以太网中一般为 1500 字节。
  • MSS:除去 IP 和 TCP 头部之后,一个网络包所能容纳的 TCP 数据的最大长度。

数据会被以 MSS 的长度为单位进行拆分,拆分出来的每一块数据都会被放进单独的网络包中。也就是在每个被拆分的数据加上 TCP 头信息,然后交给网络层来发送数据。

网络层

进入网络层,网络层会为其加上IP头部,包括源IP信息和目的IP地址

  • 源地址IP,即是客户端输出的 IP 地址;
  • 目标地址,即通过 DNS 域名解析得到的 Web 服务器 IP。

数据链路层

IP 模块在生成 IP 头部之后,会在它前面再加上 MAC 头部。MAC 头部是以太网使用的头部,它包含了接收方和发送方的 MAC 地址等信息。

接收方的MAC地址并不是目标计算机的MAC地址,而是数据报的下一跳的MAC地址,即网关地址,第一个转发的路由器的端口MAC地址。

查询路由表是否存在对应的目标网络,获得其网关地址,从ARP表获取MAC地址,或者发送ARP请求获取MAC地址。

接收方MAC地址是路由器端口的MAC地址,而不是交换机的端口地址。交换机不会验证接收方MAC地址,也就是帧经过交换机 源MAC地址和目标MAC地址都不会发生变化。交换机只负责转发交换,如果存在对应的MAC地址缓存,就从对应的端口转发出去,如果不存在缓存,就从所有端口转发出去。

物理层

从数据链路层到物理层,数据会被转为01比特流。利用网卡将数据通过二进制流写入到网线或者光纤设备中

交换机

数据包首先会发送到交换机中。交换机工作在数据链路层,是一个二层网络设备,它主要用于局域网(LAN)中的数据转发和数据帧交换,能够通过学习目标设备的MAC地址来进行数据包的转发,实现网络中各个设备之间的快速通信。

交换机在运行时会构建一个称为“MAC地址表”的数据结构,记录了每个设备的MAC地址和对应的接口。当交换机接收到一个数据包时,它会查找目标MAC地址在MAC地址表中的位置,如果找到匹配的目标MAC地址,则将数据包直接发送到相应的接口,而无需广播到所有端口。

如果MAC地址表中没有找到目标地址,交换机会执行“广播”操作,将数据包发送到所有连接的设备,以便让目标设备回应,并在MAC地址表中添加对应的条目,以后就可以直接转发了。

MAC地址表

交换机是基于以太网设计的,俗称二层网络设备,它的端口不具有 MAC 地址。

路由器是基于 IP 设计的,俗称三层网络设备,路由器的各个端口都具有 MAC 地址和 IP 地址;

路由器

路由器子网是由多个交换机构成的局域网。交换机只会通过MAC地址缓存将数据包转发给对应的端口,如果没有对应的缓存,就转发给所有的端口。

解析流程

当路由器接收到一个数据包后,路由器首先会检查数据包的接收方MAC地址是否等于路由器端口的MAC地址,如果等于就接收,如果不等于就抛弃。

路由器去除头部的MAC包装,暴露出IP地址信息,取出目标IP地址,然后查看路由表

将记录中的子网掩码与目标IP地址进行&运算,如果等于记录中的目标网络,说明存在当前路由器可以到达目标IP地址,就通过记录中对应的端口转发出去,同时存在多个符合的路由,就按照最长掩码匹配原则,选择掩码中1最多的路由进行转发。

这个时候,路由表会将目标IP地址的MAC地址当作目的MAC地址,将路由器转发端口对应的MAC地址当作源MAC地址,然后通过端口将MAC帧发送到 路由器端口对应的子网中。

服务器

目标计算机最终会收到数据包。

服务器接收到这个比特流,把比特流转换成帧格式,然后将数据包从下层往上层拆封:

1、 首先是数据链路层,目标计算机会将MAC包装信息去除,取出接收方MAC地址,查看是否和自己的MAC地址一致,如果不一致,就抛弃。

2、 接着是网络层,将IP包装信息去除,取出目标IP地址,查看是否与自己的IP地址一致,如果不一致,就抛弃。

3、 接着是运输层,会取出目标端口号,通过端口号获取对应的进程,将数据包交给对应的进程。比如HTTP数据包的目标端口号是80,就会交给HTTP进程,HTTP会执行相应的业务逻辑,然后将HTTP请求封装成数据包通过源IP地址发送给源计算机。

标签:网页,IP,MAC,键入,网址,地址,DNS,服务器,数据包
From: https://blog.csdn.net/qq_66478305/article/details/139872101

相关文章

  • 制作一个简单HTML电影网页设计(HTML+CSS)
    HTML实例网页代码,本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。文章目录一、网页介绍一、网页效果二、代码展示1.HTML......
  • 纯CSS制作3D动态相册【流星雨3D旋转相册】HTML+CSS+JavaScriptHTML5七夕情人节表白网
    这是程序员表白系列中的100款网站表白之一,旨在让任何人都能使用并创建自己的表白网站给心爱的人看。此波共有100个表白网站,可以任意修改和使用,很多人会希望向心爱的男孩女孩告白,生性腼腆的人即使那个TA站在眼前都不敢向前表白。说不出口的话就用短视频告诉TA吧~制作一个表......
  • Web网页端IM产品RainbowChat-Web的v7.0版已发布
    一、关于RainbowChat-WebRainbowChat-Web是一套Web网页端IM系统,是RainbowChat的姊妹系统(RainbowChat是一套基于开源IM聊天框架 MobileIMSDK (Github地址) 的产品级移动端IM系统)。► 详细介绍:http://www.52im.net/thread-2483-1-1.html► 版本记录:http://www.52im.net/th......
  • 313.带购物车功能的服装商城网页 大学生期末大作业 Web前端网页制作 html5+css+js
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有Web前端网页制作的各行各业的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......
  • Vite-Wechat网页聊天室|vite5.x+vue3+pinia+element-plus仿微信客户端
    基于Vue3+Pinia+ElementPlus仿微信网页聊天模板Vite5-Vue3-Wechat。vite-wechat使用最新前端技术vite5+vue3+vue-router@4+pinia+element-plus搭建网页端仿微信界面聊天系统。包含了聊天、通讯录、朋友圈、短视频、我的等功能模块。支持收缩侧边栏、背景壁纸换肤、锁屏、最大化等......
  • 前端网页开发学习(HTML+CSS+JS)有这一篇就够!
    目录HTML教程▐ 概述▐ 基础语法▐ 文本标签▐ 列表标签 ▐ 表格标签▐ 表单标签CSS教程▐概述▐基础语法▐选择器▐修饰文本▐修饰背景▐透明度▐伪类▐盒子模型▐ 浮动▐ 定位JavaScript教程▐概述▐ 基础语法▐函数▐事件▐......
  • Hbuilder创建项目,制作html网页第六天
    纹理切换更换图片中显示的内容,可以让元素中的内容产生变化元素与纹理varfeiji =newPIXI.Sprite.fromImage("img/plane1.png")feiji是图片元素, "img/plane.png"是纹理创建纹理vart1=newPIXI.Texture.fromImage("img/plane07.png")创建图片并添加纹理1、添加图片......
  • 从 GitHub 自动化部署到网页性能优化
    前提一切都和速度有关,手动部署慢,网页加载慢。首先解决部署问题。代码是托管在Github上的,那么使用GithubActions是一种自然的选择。但是上一次使用GitHubActions已经是一年前了,现在除了知道这东西的存在其他基本都忘了。第二,当前网页打开速度太慢(15s+),当然服务器配置......
  • 海贼王 动漫 网页设计 html源码 大作业
    ......
  • vue实现的商品列表网页
    效果如下:   vue实现的商品列表网页 , 图片在vue项目的Public文件夹里的imgs中 <template><divclass="common-layout"><!--el-container:外层容器。当子元素中包含<el-header>或<el-footer>时,全部子元素会垂直上下排列,否则会水平左右排列。-->......