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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 浏览器输入一个网址到显示一个页面,会发生哪些事? -> 正文阅读

[网络协议]浏览器输入一个网址到显示一个页面,会发生哪些事?

计算机网络是计算机专业的基础课程,本文通过这样一个问题来简单总结TCP/IP 四层模型的一些知识。?

目录

1.url解析(应用层)

2.DNS域名解析(应用层)

3.建立TCP/UDP连接(传输层)

4.IP远程定位(网络层)

5.点对点通信(网络接口层 or 链路层)

6.信号转换并发送(网络接口层 or 链路层)

1.url解析(应用层)

浏览器首先解析用户输入的url,将用户输入的url封装成一个请求体。

一个URL具有丰富的信息,举例:http://www.xxx.com/aaa/bbb/ccc

(1) http:表示访问的数据的协议

(2)www.xxx.com:访问的服务器名称

(3)aaa/bbb/ccc:访问的数据源的路径名(如果没有默认访问主页面,如index.html等等)

总结:我想通过http协议,访问www.xxx.com服务器下路径为aaa/bbb/ccc的数据(文件)。

确认以上内容后,浏览器便可以将我们的请求信息组装成http请求报文

报文主要包含三个部分:

请求(状态)行:

这里定义了请求/响应的一些元信息:如请求的方法,路径,响应的状态

消息头:

这里定义了消息的一些元信息:如消息的编码格式,内容形式等等一些基本信息

消息体:

这里面存放的就是消息的真实具体内容。报文的大致结构如下图所示:

2.DNS域名解析(应用层)

通过浏览器解析完URL之后,需要操作系统将消息发生给对应的服务器,操作系统识别不了域名,只识别ip地址,即在发送之前,需要先明确www.xxx.com对应的ip是多少。而完成这个工作的过程称为DNS域名解析。

这可以类比成打电话,需要先知道对方的号码,我们一般会查询电话篇或者通讯录找到对方的号码,而DNS服务器就可以理解为网络钟的通讯录,其中记录了域名(对方)与IP(电话号码)的对应关系。

3.建立TCP/UDP连接(传输层)

HTTP消息和对应的IP地址都明确后,我们需要与服务器建立连接,这个时候就要交给传输层的TCP/UDP。

HTTP基于TCP协议进行传输的,传输层TCP协议将Http消息体封装,在其加上头部文件,其结构如下:

TCP是可靠的数据传输方式,主要体现在以下几个方面

1.每个TCP报文都有自己的序号,在发送到服务端,可以有效防止乱序问题。

2.每个TCP报文有确认号,用于确认发出去的数据对方是否收到。如果没有收到,则会进行重传,可以有效防止丢包问题。

3.TCP有自己的流量控制策略:双方都会说明自己处理数据的能力(窗口大小),可以防止通信双方发送过大或者过小的数据。

4.TCP有自己的拥塞控制策略。动态控制自己的发送速度,防止自己发送过快,对方处理不过来,出现拥塞问题。

5.TCP在传输数据前,需要进行三次握手来建立连接,保证连接的可靠性

TCP三次握手的基本流程:(这里不详细展开)

step1:服务器主动监听某个端口,处于listen状态

step2:客户端主动发起连接SYN。(第一次握手)

step3:服务器端收到发起的连接,返回SYN和ACK。(第二次握手)

step4:客户端收到服务端发送的SYN和ACK,发送确认ACK的ACK。(第三次握手)

step5:服务端收到确认ACK的ACK后,连接成功建立?

4.IP远程定位(网络层)

TCP 模块在将数据封装好之后,需要委托 IP 模块将数据封装成网络包,网络包一样有自己的头文件,其中最重要的就是源ip地址和目标ip地址。

注意,IP头部中的协议指的是上一层的的协议。

5.点对点通信(网络接口层 or 链路层)

生成了 IP 头部之后,网络包在 IP 头部的前面加上MAC头部,MAC头部中主要信息见下图

注意,MAC头部中的协议指的是上一层的的协议。

到这里,我们可以宏观看一下数据包的结构:

6.信号转换并发送(网络接口层 or 链路层)

以上生成的数据都是数字信息,是没有办法直接传送给目标的,因为网线不能传输数字信息,需要借助网卡将数字信息转换为电信号并发送出去,最后借助路由器将信息发送出去。

同理,在解析过程中,则是一层一层的将数据包拆开,服务器从而可以获取我们所发送的信息内容。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:47:24  更:2022-04-04 12:50:29 
 
开发: 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 4:41:39-

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