理解网络分层模型

#简介:本文仅简要,通俗地介绍网络分层模型,帮助初学者对这个抽象的概念进行理解

#参考文章:https://juejin.cn/post/6844903934159519757

https://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

一,为什么要对网络层次进行划分

计算机与计算机之间需要进行通信,而我们知道计算机之间的连线只能传送0,1信号。这样就出现了众多问题:

  • 0,1信号的意义是什么
  • 两个计算机之间怎么进行识别
  • 怎么才能知道对方的地址
  • 不同计算机应用程序怎么知道是给自己传递的数据
  • 不同的通信数据格式怎么来规定

我们就需要定义一套通信规则,然而仅仅用一套规则完成上述功能便显得过于繁冗。

我们决定采用分层划分的结构。不同层完成不同的功能,同时实现层与层之间的改动而不相互影响。

二,如何分层

image-20230107095723901

计算机网络体系结构分为3种:OSI体系结构(七层),TCP/IP体系结构(四层),五层体系结构。

  • OSI体系结构: 概念清楚,理论也比较完整,但是它既复杂又不实用。
  • TCP/IP体系结构:TCP/IP是一个四层体系结构,得到了广泛的运用。
  • 五层体系结构:为了方便学习,折中OSI体系结构和TCP/IP体系结构,综合二者的优点,这样既简洁,又能将概念讲清楚。

所以这里我们以五层协议,从下向上(因为每一层都需要下面一层的支持),进行介绍。

三,每一层的作用

1,物理层

用物理手段(光缆、电缆、双绞线、无线电波等)将电脑连接起来,主要用来传输0,1信号。

image-20230107102616786

2,数据链路层

我们在数据链路层规定一套协议,专门的给0,1信号进行分组,以及规定不同的组代表什么意思,从而双方计算机都能够进行识别。这个协议就是以太网协议

在可以理解0,1的涵义之后,我们就面临了下面的问题:

①如何标识对方计算机?->MAC地址

以太网规定,连入网络的所有设备,都必须具有”网卡”接口。数据包必须是从一块网卡,传送到另一块网卡。

网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。

它作为网络中计算机设备的唯一标识,从计算机在厂商生产出来就被十六进制的数标识为MAC地址。

image-20230107105830004

②如何知道对方的地址? ->广播

广播:可以帮助我们能够知道对方的 MAC 地址。广播中存在两种情况:

  • 在同一子网络下(同一局域网下)的计算机是通过 ARP 协议获取到对方 MAC地址的。
  • 不同自网络中(不同局域网)中是交给两个局域网的网关(路由器)去处理的。

image-20230107105721500

3,网络层

它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络(局域网)中。这套地址就叫做”网络地址”,简称”网址”。

规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址

首先区分一下IP 地址和 MAC 地址:两种地址之间没有任何联系。我们可以将 IP 地址抽象成一种逻辑上的地址,MAC 地址是物理上的地址,就是定死了。而IP 地址,是动态分配的,不是固定死的。

image-20230107105758247

IP协议的作用主要有两个:

  • 为每一台计算机分配IP地址

  • 确定哪些地址在同一个子网络。

①如何获取IP地址?

DNS 解析,可以将域名解析为 IP 地址。

②如何根据IP地址进行判断?

子网掩码就是用来标识同一局域网中的 IP 地址的信息的。

IP 地址是由 32 个二进制位组成的,也就是四个十进制(如:255.255.255.000)。

子网掩码也是由 32 个二进制位组成的,但是只能用 0 或 1 来表示,如11111111.11111111.11111111.00000000。

有 1 的部分表示网络部分,有 0 表示主机部分。两台计算机的 IP 地址分别和子网掩码进行一种运算(AND 运算),如果结果相同,两台计算机就在同一局域网中,否则就不在同一局域网中。

4,传输层

传输层的主要功能就是为了能够实现“端口到端口”的通信。计算机上运行的不同程序都会分配不同的端口,所以才能使得数据能够正确的传送给不同的应用程序。

UDP 协议

加入端口号也需要一套规则,那就是 UDP 协议,但是 UDP协议有个缺点,一旦进行通信,就不知道对方是否接收到数据了,我们再定义一套规则,让其可以和对方进行确认,那么 TCP 出现了。

TCP 协议

我们通常说 TCP 三次握手和四次挥手,就是传输层中完成的。TCP协议是个可靠的协议,能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。

5,应用层

应用层的功能就是规定了应用程序的数据格式。例如:电子邮件、HTTP协议、以及FTP数据的格式等。