| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Web页面请求过程 -> 正文阅读 |
|
[网络协议]Web页面请求过程 |
在一台笔记本电脑的浏览器中输入一个网站网址后: 1.笔记本操作系统生成一个DHCP请求报文,封装进一个源端口号68和目的端口号67的UDP报文段,然后该UDP报文段封装在源IP地址0.0.0.0和目的IP地址255.255.255.255的数据报中; 2.DHCP请求数据报再封装在目的MAC地址FF:FF:FF:FF:FF:FF的以太网帧中,源MAC地址为笔记本MAC地址; 3.该以太网帧被以太网交换机接收,该交换机广播该帧; 4.路由器接收到该以太网帧,逐层拆解,DHCP服务器生成包含分配的IP地址、DNS服务器IP地址、默认网关路由器的IP地址、子网掩码的DHCP响应报文,仔逐层封装为源MAC地址为该路由器接口的MAC地址和目的MAC地址为笔记本的MAC地址的以太网帧; 5.将该以太网帧发送给交换机,源交换机能自学习,将该以太网帧发送给笔记本。 6.笔记本接收到该以太网帧后解析出IP地址和DNS服务器IP地址,并在其IP转发表中安装默认网关地址。 7.输入网址后,笔记本操作系统生成一个DNS查询报文,将输入的网址放入报文,逐层封装,源IP地址为分配到的IP地址,目的IP地址为接收到的DNS服务器IP地址; 8.笔记本操作系统生成一个目的IP地址为接收到的默认网关路由器IP地址的ARP查询报文,封装进目的MAC地址为FF:FF:FF:FF:FF:FF的以太网帧,发送给交换机; 9.交换机将该帧广播,最终网关路由器识别到目的IP地址,并返回一个ARP回答,包含自己的MAC地址,封装为以太网帧,再发送给交换机,交换机再发送给笔记本; 10.笔记本再将DNS查询报文封装进以太网帧中,目的MAC地址为网关路由器MAC地址,该以太网帧发送给交换机,交换机再发送到网关路由器。 11.网关路由器解析后通过转发表将该帧进行一系列转发后,DNS服务器接收到该以太网帧,DNS服务器抽取网址后在数据库中查找对应的IP地址,如果没有找到,再根据根DNS服务器、顶级域DNS服务器、权威DNS服务器依次找,最后将对应的IP地址放入DNS回答报文发送给笔记本。 12.笔记本收到该DNS回答报文抽取出IP地址。 13.笔记本通过TCP的三次握手与网址对应的IP地址建立TCP连接; 14.笔记本通过TCP套接字发送HTTP GET报文,输入的网址那边的服务器收到后回复一个HTTP响应报文,并将请求的数据放入HTTP响应体中; 15.笔记本接收到响应报文后,浏览器对页面进行解析渲染,最终呈现在浏览器上。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 3:23:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |