[应用相关] 36张图详解网络基础知识

[复制链接]
1299|51
 楼主| 从此不早朝 发表于 2022-7-27 15:02 | 显示全部楼层 |阅读模式
 楼主| 从此不早朝 发表于 2022-7-27 15:03 | 显示全部楼层
网络协议
我们用手机连接上网的时候,会用到许多网络协议。从手机连接 WiFi 开始,使用的是 802.11 (即 WLAN )协议,通过 WLAN 接入网络;手机自动获取网络配置,使用的是 DHCP 协议,获取配置后手机才能正常通信。这时手机已经连入局域网,可以访问局域网内的设备和资源,但还不能使用互联网应用,例如:微信、抖音等。想要访问互联网,还需要在手机的上联网络设备上实现相关协议,即在无线路由器上配置 NATPPPOE 等功能,再通过运营商提供的互联网线路把局域网接入到互联网中,手机就可以上网玩微信、刷抖音了。
5511862e0e32e59b6d.png
网络协议示意图
局域网 :小范围内的私有网络,一个家庭内的网络、一个公司内的网络、一个校园内的网络都属于局域网。
广域网:把不同地域的局域网互相连接起来的网络。运营商搭建广域网实现跨区域的网络互连。
互联网:互联全世界的网络。互联网是一个开放、互联的网络,不属于任何个人和任何机构,接入互联网后可以和互联网的任何一台主机进行通信。

简单来说,就是手机、无线路由器等设备通过多种网络协议实现通信。网络协议就是为了通信各方能够互相交流而定义的标准或规则,设备只要遵循相同的网络协议就能够实现通信。那网络协议又是谁规定的呢?ISO 制定了一个国际标准 OSI , 其中的 OSI 参考模型常被用于网络协议的制定。
9979262e0e3450d285.png
OSI 参考模型图


 楼主| 从此不早朝 发表于 2022-7-27 15:04 | 显示全部楼层
OSI 参考模型
OSI 参考模型将网络协议提供的服务分成 7 层,并定义每一层的服务内容,实现每一层服务的是协议,协议的具体内容是规则。上下层之间通过接口进行交互,同一层之间通过协议进行交互。OSI 参考模型只对各层的服务做了粗略的界定,并没有对协议进行详细的定义,但是许多协议都对应了 7 个分层的某一层。所以要了解网络,首先要了解 OSI 参考模型。
1531962e0e366e6494.png
OSI 参考模型分层功能


 楼主| 从此不早朝 发表于 2022-7-27 15:05 | 显示全部楼层
应用层
OSI参考模型的第 7 层(最高层)。应用程序和网络之间的接口,直接向用户提供服务。应用层协议有电子邮件、远程登录等协议。
7066962e0e38d8cb18.png
应用层示例图

 楼主| 从此不早朝 发表于 2022-7-27 15:05 | 显示全部楼层
表示层
OSI参考模型的第 6 层。负责数据格式的互相转换,如编码、数据格式转换和加密解密等。保证一个系统应用层发出的信息可被另一系统的应用层读出。

5296262e0e3b31c715.png
表示层示例图
 楼主| 从此不早朝 发表于 2022-7-27 15:06 | 显示全部楼层
会话层
OSI参考模型的第 5 层。主要是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。
8617662e0e3d2bc22c.png
会话层示例图
 楼主| 从此不早朝 发表于 2022-7-27 15:07 | 显示全部楼层
传输层
OSI参考模型的第 4 层。为上层协议提供通信主机间的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。只在通信主机上处理,不需要在路由器上处理。
8486262e0e3fb1f34c.png
传输层示例图
 楼主| 从此不早朝 发表于 2022-7-27 15:07 | 显示全部楼层
网络层
OSI参考模型的第 3 层。在网络上将数据传输到目的地址,主要负责寻址和路由选择。
9819562e0e42b1d5cb.png
网络层示例图
 楼主| 从此不早朝 发表于 2022-7-27 15:08 | 显示全部楼层
数据链路层
OSI参考模型的第 2 层。负责物理层面上两个互连主机间的通信传输,将由 0 、 1 组成的比特流划分成数据帧传输给对端,即数据帧的生成与接收。通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这些通过传输介质互连的设备之间进行数据处理。

网络层与数据链路层都是基于目标地址将数据发送给接收端的,但是网络层负责将整个数据发送给最终目标地址, 而数据链路层则只负责发送一个分段内的数据。
4770362e0e454bc97d.png
数据链路层示例图
 楼主| 从此不早朝 发表于 2022-7-27 15:09 | 显示全部楼层
物理层
OSI参考模型的第 1 层(最底层)。负责逻辑信号(比特流)与物理信号(电信号、光信号)之间的互相转换,通过传输介质为数据链路层提供物理连接。
1321462e0e47ed613c.png
物理层示例图
 楼主| 从此不早朝 发表于 2022-7-27 15:09 | 显示全部楼层
TCP/IP 参考模型
由于 OSI 参考模型把服务划得过于琐碎,先定义参考模型再定义协议,有点理想化。TCP/IP 模型则正好相反,通过已有的协议归纳总结出来的模型,成为业界的实际网络协议标准。

TCP/IP 是有由 IETF 建议、推进其标准化的一种协议,是 IP 、 TCP 、 HTTP 等协议的集合。TCP/IP 是为使用互联网而开发制定的协议族,所以互联网的协议就是 TCP/IP 。

先介绍下 TCP/IP 与 OSI 分层之间的对应关系,以及 TCP/IP 每层的主要协议。
8625462e0e4a7f0712.png
 楼主| 从此不早朝 发表于 2022-7-27 15:10 | 显示全部楼层
网络接入层
TCP/IP 是以 OSI 参考模型的物理层和数据链路层的功能是透明的为前提制定的,并未对这两层进行定义,所以可以把物理层和数据链路层合并称为网络接入层。网络接入层是对网络介质的管理,定义如何使用网络来传送数据。但是在通信过程中这两层起到的作用不一样,所以也有把物理层和数据链路层分别称为硬件、网络接口层。TCP/IP 分为四层或者五层都可以,只要能理解其中的原理即可。

设备之间通过物理的传输介质互连, 而互连的设备之间使用 MAC 地址实现数据传输。采用 MAC 地址,目的是为了识别连接到同一个传输介质上的设备。
 楼主| 从此不早朝 发表于 2022-7-27 15:11 | 显示全部楼层
网络层
相当于 OSI 模型中的第 3 层网络层,使用 IP 协议。IP 协议基于 IP 地址转发分包数据,作用是将数据包从源地址发送到目的地址。

TCP/IP 分层中的网络层与传输层的功能通常由操作系统提供。 路由器就是通过网络层实现转发数据包的功能。
4991762e0e4f13ca57.png
网络层
网络传输中,每个节点会根据数据的地址信息,来判断该报文应该由哪个网卡发送出去。各个地址会参考一个发出接口列表, MAC 寻址中所参考的这张表叫做 MAC 地址转发表,而 IP 寻址中所参考的叫做路由控制表。MAC 地址转发表根据自学自动生成。路由控制表则根据路由协议自动生成。MAC 地址转发表中所记录的是实际的 MAC 地址本身,而路由表中记录的 IP 地址则是集中了之后的网络号(即网络号与子网掩码)。

IP

IP 是跨越网络传送数据包,使用 IP 地址作为主机的标识,使整个互联网都能收到数据的协议。IP 协议独立于底层介质,实现从源到目的的数据转发。IP 协议不具有重发机制,属于非可靠性传输协议。

ICMP

用于在 IP 主机、路由器之间传递控制消息,用来诊断网络的健康状况。

ARP

从数据包的 IP 地址中解析出 MAC 地址的一种协议。
 楼主| 从此不早朝 发表于 2022-7-27 15:12 | 显示全部楼层
传输层
相当于 OSI 模型中的第 4 层传输层,主要功能就是让应用程序之间互相通信,通过端口号识别应用程序,使用的协议有面向连接的 TCP 协议和面向无连接的 UDP 协议。

面向连接是在发送数据之前, 在收发主机之间连接一条逻辑通信链路。好比平常打电话,输入完对方电话号码拨出之后,只有对方接通电话才能真正通话,通话结束后将电话机扣上就如同切断电源。

面向无连接不要求建立和断开连接。发送端可于任何时候自由发送数据。如同去寄信,不需要确认收件人信息是否真实存在,也不需要确认收件人是否能收到信件,只要有个寄件地址就可以寄信了。
3877362e0e5190d8e6.png
传输层
TCP

TCP 是一种面向有连接的传输层协议,能够对自己提供的连接实施控制。适用于要求可靠传输的应用,例如文件传输。

UDP

UDP 是一种面向无连接的传输层协议,不会对自己提供的连接实施控制。适用于实时应用,例如:IP电话、视频会议、直播等。
 楼主| 从此不早朝 发表于 2022-7-27 15:13 | 显示全部楼层
应用层
相当于 OSI 模型中的第 5 - 7 层的集合,不仅要实现 OSI 模型应用层的功能,还要实现会话层和表示层的功能。HTTP 、 POP3 、 TELNET 、 SSH 、 FTP 、 SNMP都是应用层协议。

TCP/IP 应用的架构绝大多数属于客户端/服务端模型。提供服务的程序叫服务端, 接受服务的程序叫客户端。客户端可以随时发送请求给服务端。
5317562e0e568d6ed3.png
应用层
HTTP

是 WWW 浏览器和服务器之间的应用层通信协议,所传输数据的主要格式是 HTML 。HTTP 定义高级命令或者方法供浏览器用来与Web服务器通信。

POP3

简单邮件传输协议,邮件客户端和邮件服务器使用。

TELNET 和 SSH

远程终端协议,用于远程管理网络设备。TELNET 是明文传输, SSH 是加密传输。

SNMP

简单网络管理协议,用于网管软件进行网络设备的监控和管理。
 楼主| 从此不早朝 发表于 2022-7-27 15:16 | 显示全部楼层
封装与解封装
通常,为协议提供的信息为包头部,所要发送的内容为数据。每个分层中,都会对所发送的数据附加一个头部,在这个头部中包含了该层必要的信息, 如发送的目标地址以及协议相关信息。在下一层的角度看,从上一分层收到的包全部都被认为是本层的数据。

数据发送前,按照参考模型从上到下,在数据经过每一层时,添加协议报文头部信息,这个过程叫封装。
4848462e0e5b4218ee.png
封装
3545462e0e5c22859a.png
解封装
经过传输层协议封装后的数据称为段,经过网络层协议封装后的数据称为包,经过数据链路层协议封装后的数据称为帧,物理层传输的数据为比特。

TCP/IP 通信中使用 MAC 地址、 IP 地址、端口号等信息作为地址标识。甚至在应用层中,可以将电子邮件地址作为网络通信的地址。
 楼主| 从此不早朝 发表于 2022-7-27 15:16 | 显示全部楼层
实际数据传输举例
实际生活中,互联网是使用的 TCP/IP 协议进行网络连接的。我们以访问网站为例,看看网络是如何进行通信的。
1346562e0e645dbe19.png
数据传输举例
 楼主| 从此不早朝 发表于 2022-7-27 15:17 | 显示全部楼层
发送数据包
访问 HTTP 网站页面时,打开浏览器,输入网址,敲下回车键就开始进行 TCP/IP 通信了。
应用程序处理
4444762e0e66f51145.png
首先,应用程序中会进行 HTML 格式编码处理,相当于 OSI 的表示层功能。编码转化后,不一定会马上发送出去,相当于会话层的功能。在请求发送的那一刻,建立 TCP 连接,然后在 TCP 连接上发送数据。接下来就是将数据发送给下一层的 TCP 进行处理。

TCP 模块处理
5074462e0e67963a0f.png
TCP 会将应用层发来的数据顺利的发送至目的地。实现可靠传输的功能,需要给数据封装 TCP 头部信息。TCP 头部信息包括源端口号和目的端口号(识别主机上应用)、序号(确认哪部分是数据)以及校验和(判断数据是否被损坏)。随后封装了 TCP 头部信息的段再发送给 IP 。

IP  模块处理
4186462e0e68aa10f2.png
IP 将 TCP 传过来的数据段当做自己的数据,并封装 IP 头部信息。IP 头部信息中包含目的 IP 地址和源 IP 地址,以及上层协议类型信息。

IP 包生成后,根据主机路由表进行数据发送。

网络接口处理
2406562e0e6948c48c.png
网络接口对传过来的 IP 包封装上以太网头部信息并进行发送处理。以太网头部信息包含目的 MAC 地址、源 MAC 地址,以及上层协议类型信息。然后将以太网数据帧通过物理层传输给接收端。发送处理中的 FCS 由硬件计算, 添加到包的最后。设置 FCS 的目的是为了判断数据包是否由于噪声而被破坏。
 楼主| 从此不早朝 发表于 2022-7-27 15:18 | 显示全部楼层
接收数据包
包的接收流程是发送流程的反向过程。
 楼主| 从此不早朝 发表于 2022-7-27 15:18 | 显示全部楼层
网络接口处理

收到以太网包后,首先查看头部信息的目的 MAC 地址是否是发给自己的包。如果不是发送给自己的包就丢弃。如果是发送给自己的包,查看上层协议类型是 IP 包,以太网帧解封装成 IP 包,传给 IP 模块进行处理。如果是无法识别的协议类型,则丢弃数据。
4161562e0e6c6a8c22.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

185

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部