blog cover

🧹 [计算机网络]

Internet
image
image

HTTP

浏览器解析URL生成HTTP请求。

image

DNS

在HTTP请求发送之前还需要查询域名对应IP

浏览器会先看自身有没有对这个域名的缓存,如果有,就直接返回,如果没有,就去问操作系统,操作系统也会去看自己的缓存,如果有,就直接返回,如果没有,再去 hosts 文件看,也没有,才会去问「本地 DNS 服务器」。

应用程序(浏览器)通过调用 Socket 库,来委托协议栈工作。协议栈通过IP协议控制网络包的发送和接收。网卡驱动负责控制网卡硬件,执行实际的收发操作。

TCP(可靠传输)

首先,源端口号目标端口号是不可少的,如果没有这两个端口号,数据就不知道应该发给哪个应用。

接下来有包的号,这个是为了解决包乱序的问题。

还有应该有的是确认号,目的是确认发出去对方是否有收到。如果没有收到就应该重新发送,直到送达,这个是为了解决丢包的问题。

接下来还有一些状态位。例如 SYN 是发起一个连接,ACK 是回复,RST 是重新连接,FIN 是结束连接等。TCP 是面向连接的,因而双方要维护连接的状态,这些带状态位的包的发送,会引起双方的状态变更。

还有一个重要的就是窗口大小。TCP 要做流量控制,通信双方各声明一个窗口(缓存大小),标识自己当前能够的处理能力,别发送的太快,撑死我,也别发的太慢,饿死我。

除了做流量控制以外,TCP还会做拥塞控制,对于真正的通路堵车不堵车,它无能为力,唯一能做的就是控制自己,也即控制发送的速度。不能改变世界,就改变自己嘛。

IP(远程定位)

TCP 模块在执行连接、收发、断开等各阶段操作时,都需要委托 IP 模块将数据封装成网络包发送给通信对象。

MAC(两点传输)

MAC 头部是以太网使用的头部,它包含了接收方和发送方的 MAC 地址等信息。用于两点之间的传输。

网卡

交换机

路由器

服务器


回答:

  • 1.解析URL。浏览器解析你输入的 URL,分解出不同的部分:协议(https)、域名(www.example.com)、路径(如 /index.html)。
  • 2.DNS查询。
  • 3.TCP连接
  • 4.SSL握手(如果是HTTPS)
  • 5.发送HTTP请求
  • 6.服务器响应。
  • 7.解析和渲染 HTML
  • 8.处理 CSS 和 JavaScript
  • 9.构建渲染树
  • 10.布局和绘制
  • 11.显示网页

  • 2024/04/12 03:37