理解网络分层模型
理解网络分层模型
#简介:本文仅简要,通俗地介绍网络分层模型,帮助初学者对这个抽象的概念进行理解
#参考文章:https://juejin.cn/post/6844903934159519757
https://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html
一,为什么要对网络层次进行划分
计算机与计算机之间需要进行通信,而我们知道计算机之间的连线只能传送0,1信号。这样就出现了众多问题:
- 0,1信号的意义是什么
- 两个计算机之间怎么进行识别
- 怎么才能知道对方的地址
- 不同计算机应用程序怎么知道是给自己传递的数据
- 不同的通信数据格式怎么来规定
- …
我们就需要定义一套通信规则,然而仅仅用一套规则完成上述功能便显得过于繁冗。
我们决定采用分层划分的结构。不同层完成不同的功能,同时实现层与层之间的改动而不相互影响。
二,如何分层
计算机网络体系结构分为3种:OSI体系结构(七层),TCP/IP体系结构(四层),五层体系结构。
- OSI体系结构: 概念清楚,理论也比较完整,但是它既复杂又不实用。
- TCP/IP体系结构:TCP/IP是一个四层体系结构,得到了广泛的运用。
- 五层体系结构:为了方便学习,折中OSI体系结构和TCP/IP体系结构,综合二者的优点,这样既简洁,又能将概念讲清楚。
所以这里我们以五层协议,从下向上(因为每一层都需要下面一层的支持),进行介绍。
三,每一层的作用
1,物理层
用物理手段(光缆、电缆、双绞线、无线电波等)将电脑连接起来,主要用来传输0,1信号。
2,数据链路层
我们在数据链路层规定一套协议,专门的给0,1信号进行分组,以及规定不同的组代表什么意思,从而双方计算机都能够进行识别。这个协议就是以太网协议。
在可以理解0,1的涵义之后,我们就面临了下面的问题:
①如何标识对方计算机?->MAC地址
以太网规定,连入网络的所有设备,都必须具有”网卡”接口。数据包必须是从一块网卡,传送到另一块网卡。
网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。
它作为网络中计算机设备的唯一标识,从计算机在厂商生产出来就被十六进制的数标识为MAC地址。
②如何知道对方的地址? ->广播
广播:可以帮助我们能够知道对方的 MAC 地址。广播中存在两种情况:
- 在同一子网络下(同一局域网下)的计算机是通过 ARP 协议获取到对方 MAC地址的。
- 不同自网络中(不同局域网)中是交给两个局域网的网关(路由器)去处理的。
3,网络层
它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络(局域网)中。这套地址就叫做”网络地址”,简称”网址”。
规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。
首先区分一下IP 地址和 MAC 地址:两种地址之间没有任何联系。我们可以将 IP 地址抽象成一种逻辑上的地址,MAC 地址是物理上的地址,就是定死了。而IP 地址,是动态分配的,不是固定死的。
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数据的格式等。