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

网络是怎么样连接的--输入www.baidu.com之后网络的底层运行

网络是怎么样连接的这本书就是在讲**浏览器输入一个网址之后,到页面渲染计算机网络层和软件层面发生了什么变化。**

DNS解析

1.首先对网址进行解析,我们输入的一个http://www.baidu.com/ 如果后面不带任何的资源路径,默认访问的是跟目录下面的index.html。

这个要有了解,前端 vue 项目打包完成之后页面中都是 index.html,所以默认就访问的是 index.html

路由器转发需要根据IP地址进行转发的,IP地址比较难记住,我们用一个域名来对应IP地址。所以第一步就是域名解析,将URL域名转为IP地址,这个过程叫做DNS 解析。

DNS解析的过程包括了递归查询和迭代查询

域名服务器的层次结构

首先检查浏览器和本地缓存是否有,如果没有,发送给本地DNS服务器,就是电脑配置的DNS服务器,如果本地DNS缓存中有就直接返回,如果没有向根域名服务器发送请求、根域名向顶级域名发送请求、顶级域名向权威域名发送请求。权威域名返回对应的IP地址告诉本地DNS。最后本地DNS进行缓存。

https://blog.csdn.net/bangshao1989/article/details/121913780 DNS 解析过程

全球一共有13台,根域名服务器。

封装HTTP请求

2.生成HTTP消息。

HTTP请求消息包含了** 请求行、请求头、请求体。使用的端口默认80**,https使用的端口是443

HTTP常用的包括 get、put、post、delete请求。需要区分get请求和post请求,get请求是将参数放在请求行中的,是可以直接看到的,post请求将请求参数放在请求体中。get请求是幂等性安全的,而post请求是不安全的

TCP三次握手建立连接

3.在传输层,TCP进行三次握手连接,保证双方都有接收的能力。

这边可以往TCP三次握手、四次挥手、流量控制、拥塞控制、滑动窗口继续深挖。

包括还有一些其他的操作:

进行数据的封装,如果请求的数据块大于了MSS,就需要进行分片。

网络层

层的功能主要是转发和路由,主要的协议就是IP协议,携带源ip地址和目的ip地址。将TCP层传下来的数据封装成IP数据包。

对于IP数据包这个也需要有些了解,常用的有哪些字段,他们有什么含义。

这一层还有子网掩码的概念,和ip地址进行与操作就得到了所在网络的ip地址。

数据链路层

封装MAC地址,IP就是类似于小区,MAC地址是全球唯一的,用来确定你的具体位置。每一个网络设备在出场的时候 MAC 地址就已经固定了。

MAC 的协议类型 一般就是 IP 和 ARP

想要获得对方的MAC地址,使用的协议是ARP地址解析协议,通过给局域网的内的所有主机进行广播,如果某个主机和目的IP地址一样,那么就单播回来。将结果还需要放入到ARP缓存中去。

对于查询到的ip地址放入arp缓存中,便于下一次查询。

在windows中用arp -a,查看本地的arp缓存表。

网卡

上面的所有都完成之后就需要从网卡中出去了,

将数字信号转为电信号,在网线中进行传输。

交换机和路由器

路由器进行转发 查询路由表进行数据的转发

当找不到对应的路由表的时候选择默认路由 0.0.0.0.

整体的过程

到达服务器端

解析HTML

浏览器接收到服务器的响应后,会开始解析 HTML 文档,首先并构建 DOM 树。

浏览器从上到下解析 HTML 文档,遇到标签时创建对应的 DOM 节点,并按照层级关系构建 DOM 树。

在解析 HTML 的过程中,浏览器会遇到 CSS 文件或内联样式,并开始解析 CSS,构建 CSSOM 树。

一颗DOM树结构的结构:
https://blog.csdn.net/wei1273356078/article/details/106543967

完成解析之后 进行 TCP 四次挥手,释放连接。

参考:https://blog.csdn.net/spade_Kwo/article/details/119464901?ops_request_misc=%257B%2522request%255Fid%2522%253A%25229e069b679f997623d9f5e26f46f40c9e%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=9e069b679f997623d9f5e26f46f40c9e&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2-119464901-null-null.142v101pc_search_result_base8&utm_term=%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B&spm=1018.2226.3001.4187

TCP 四次挥手的过程图:


http://www.kler.cn/a/506389.html

相关文章:

  • 深入理解计算机系统阅读笔记-第十二章
  • 使用Go语言中的Buffer实现高性能处理字节和字符串
  • 读书笔记~管理修炼-风险性决策:学会缩小风险阈值
  • springCloudGateway+nacos自定义负载均衡-通过IP隔离开发环境
  • 人工智能任务19-基于BERT、ELMO模型对诈骗信息文本进行识别与应用
  • MATLAB学习笔记-table
  • ​HPM6700——以太网通信lwip_udpecho_freertos_socket
  • 《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • Hadoop图书数据分析系统 大屏数据展示 智能图书推荐系统(协同过滤余弦函数) 代码 数据库 全套开发工具
  • C++ 学习
  • AngularJs入门之创建最简单HelloWorld Demo应用
  • Java ee 文件操作和IO
  • python-leetcode-单词规律
  • C# OpenCV机器视觉:图片去水印
  • 自然语言处理(GloVe):原理、特点、应用、技术、相关学术分享
  • ASP.NET Core - .NET 6 以上版本的入口文件
  • Python 爬虫爬取京东商品信息 ||京东商品详情API
  • 记一次CentOS扩容boot升级内核版本
  • 告别烦恼:WiFi出现感叹号?快速恢复网络畅通指南
  • electron 如何申请 Mac 系统权限
  • 【Tortoise-ORM】 基础与数据库操作
  • 力扣-数组-228 汇总区间
  • c#-Halcon入门教程——标定
  • 【C语言】内存函数详解与模拟实现
  • 神经网络基础-价格分类案例
  • 问:webpack与vite区别