IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网页请求过程 Webpage Request (不包含TCP握手) -> 正文阅读

[网络协议]网页请求过程 Webpage Request (不包含TCP握手)

前言:

网络七层协议(通常简化为5类)

层数功能应用
第七层内容层如:网页,视频,博客…
第五到七层应用层如:http,邮件,文件传输,直播…
第四层传输层TCP堵塞控制,UDP
第三层网络层IP地址,路由
第一二层物理层,连接层以太网,Wi-Fi,DSL…

1. 输入网页地址前:

在浏览器输入网址前,电脑在连接进互联网时会通过DHCP协议,向服务器请求得到自己的IP地址。

在整个过程起始前,假设电脑首次连接到网络,还没有自己的IP和MAC地址等。此时:

  • 需要获取电脑自己的IP地址,第一跳路由器地址,DNS服务器地址。通过DHCP协议实现。
  • 从应用层的DHCP请求在UDP(第四层)被封装,在IP(第三层)被封装,再到802.3以太网(第一二层)被封装。
  • 由于不知道任何地址,以太网以广播形式(broadcast,终点地址为:FFFFFFFFFFFF)在LAN中传播,最终被运行DHCP服务器的路由器接收。
  • 请求会从底层(以太网,IP)解复用(demuxed)到DHCP层,从而DHCP拿到负载/实质信息(payload)。
  • DHCP 服务器制定包含客户端 IP 地址、第一跳路由器 IP 地址、DNS 服务器名称和 IP 地址的 DHCP 确认字符ACK。
  • 虽然DHCP服务器把刚制定的客户端IP地址设为终点地址,但是客户端还不知道自己的IP地址。使用同样的方法,broadcast,在客户端解复用。此时交换机(switch)也了解到了LAN中新电脑的信息。(switch learning)
  • DHCP客户端接收到DHCP的确认字符ACK,包含自己的IP地址等。

具体DHCP工作步骤参考:https://blog.51cto.com/u_15073468/2795167

现在,客户端有了自己的IP地址,知道了DNS服务器的名字和地址,也知道了第一跳路由器的IP地址。

2. ARP(在DNS和HTTP前)

  • 在发送http请求前,需要链接如www.google.com的IP地址:DNS
  • DNS在应用层被创建,在UDP层被封装,在IP层被封装。在header添加出发点的IP地址和终点的IP地址。在以太层被封装。添加了出发点的MAC地址,但是由于现在只是知道第一跳路由器的IP地址,还不知道他的MAC地址。为了能够传到第一跳路由器,需要路由器端口的MAC地址:ARP协议。
  • ARP请求是以广播形式发送的。已知IP地址的路由器接收到后,会回复一个包含有MAC地址的ARP协议(以太层)。

3. DNS

  • 此时客户端就知道了第一跳路由器的MAC地址。所以可以发送带有DNS请求的帧了(frame->packets)
  • 接下来,包含DNS请求的IP数据报(datagram)通过局域网交换机(LAN switch)从客户端传到了第一跳的路由器。
  • 然后,IP数据报从本地网络传输到了DNS服务器的网络,然后路由到了DNS服务器。
  • 解复用到DNS服务器
  • DNS服务器向客户端回复www.google.com的IP地址。

4. 携带HTTP的TCP连接

  • 在发送HTTP请求前,客户端需要向网页服务器打开TCP socket
  • TCP SYN 报文段(第一次握手)路由到网页服务器
  • 网页服务器回复TCP SYNACK(第二次握手)
  • TCP再次发送ACK(第三次握手),TCP 连接建立。

5. HTTP请求/回复

  • HTTP请求发送到TCP socket
  • 包含HTTP请求的IP数据报路由到www.google.com
  • 网页服务器回复HTTP请求。(包含网页页面)
  • 包含HTTP回复的IP数据报路由回客户端。

关于TCP三次握手四次挥手,参考:
https://blog.csdn.net/qzcsu/article/details/72861891

此博客仅用于自我学习的记录,如有不当请指正。12/04/2021
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:35:32  更:2021-12-06 15:36:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/6 7:53:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码