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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 当你打开一个网页,到底发生了什么?——计算机网络 -> 正文阅读

[网络协议]当你打开一个网页,到底发生了什么?——计算机网络

计算机网络体系结构中的各个层次都做了哪些工作呢?又用到了哪些协议呢?

首先,在OSI七层协议体系结构中,我们把计算机网络由上至下分为七个层次:应用层,表示层,会话层,运输层,网络层,数据链路层和物理层。
然而,OSI模型作为法律上的国际标准并未被使用,被广泛使用的是事实上的国际标准,著名的TCP/IP四层网络模型,从上到下分为:应用层,运输层,网际层和网络接口层。
但是我们在学习计算机网络时往往采用五层体系结构,从上至下依次为:应用层,运输层,网络层,数据链路层和物理层。

图1-1 一张图带你看懂计算机网络体系结构

1. 查找本机IP地址

如果你是一台处于局域网中的机器,你会通过DHCP(动态主机配置协议, Dynamic Host Configuration Protocol)获取其配置信息而不需要手工干预,配置信息包括(1) IP地址;(2) 子网掩码;(3) 默认路由器的IP地址;(4) 域名服务器的IP地址。在你和外界互联网进行通信时,要经过NAT(网络地址转换,Network Address Translation)来将局域网的私有IP地址转换为全球IP地址。

2. 查找目标IP地址

接下来我们需要找到目标的IP地址,这时就需要使用DNS(域名系统,Domain Name System)啦。浏览器分析指向页面的URL后,首先我们会检查DNS缓存中是否缓存了页面对应的IP地址,如果刚好缓存了,直接返回就好了。如果没有缓存,我们就必须让DNS一级一级地向上查找,直至解析出域名对应的IP地址。

3. 浏览器与服务器建立TCP连接

这时候我们就要使用著名的三次握手的方法来建立TCP连接啦。
为什么要采用三次握手呢?可以看一下我发布的另一篇文章。
TCP三次握手

4. 浏览器发出http请求

浏览器与服务器建立TCP连接后,浏览器就可以向服务器发送http请求啦。那么在这个过程中会使用哪些协议呢?我们来分析一下。

首先http协议是应用层协议,需要使用到运输层提供的服务,具体来说就是TCP协议。

而TCP属于运输层协议,又需要使用到网络层提供的服务,也就是IP协议。IP数据报在不同的AS(自治系统)中进行传送时,需要使用边界网关协议BGP来选择路由。在AS内部,使用RIP(使用UDP进行传送)和OSFP(直接用IP数据包传送)来选择路由。

IP协议继续向下使用数据链路层的服务,将IP数据包重新组成MAC帧进行传送(使用点对点协议PPP)。MAC帧传送时就需要MAC地址,于是就需要地址解析协议ARP进行IP地址到MAC地址的映射。然后数据就可以经过物理链路传输啦。

5. 服务器通过响应http请求把页面文件传送给浏览器

这个步骤使用的协议和上一个步骤是相同的。

6. 释放TCP连接

这里一定要注意,TCP是面向连接的,使用完毕一定要释放的。

7. 浏览器解释文件,并显示

这里就不重点分析啦,因为这个问题我们着重分析计算机网络。

总结

在整个过程中,我们使用的协议主要有:

  • 应用层:
    • http:定义了浏览器怎样向服务器请求文档,以及服务器怎样把文档传送给浏览器。
  • 运输层:
    • TCP:面向连接的,可靠的,面向字节流的协议。
    • UDP:无连接的,尽最大努力交付,面向报文的协议。
  • 网络层:
    • IP:提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
    • ARP:把IP地址解析为硬件地址,它解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
    • RIP:分布式的基于距离向量的路由选择协议,只适用于小型互联网。RIP按固定的时间间隔与相邻路由器交换信息,交换的信息是自己当前的路由表。
    • OSPF:分布式的链路状态协议,适用于大型互联网。OSPF只在链路状态发生变化时,才用向本自治系统中的所有路由器,用洪泛法发送与本路由器相邻的所有路由器的链路状态信息。
    • BGP:不同AS的路由器之间交换路由信息的协议,是一种路径向量路由选择协议。BGP力求寻找一条能够到达目的网络(可达)且比较好的路由(不兜圈子),而并非要寻找一条最佳路由。
    • NAT:使用网络地址转换NAT技术,可以在专用网络内部使用专用IP地址,而仅在连接到因特网的路由器使用全球IP地址。这样就大大节约了宝贵的IP地址。
  • 数据链路层:
    • PPP:在数据链路层提供的是不可靠的数据报服务。
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 10:36:22  更:2021-09-18 10:37:27 
 
开发: 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年6日历 -2024/6/27 2:09:22-

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