网络分层包含哪几部分?分别的作用
网络分层包含哪几部分?分别的作用
五层
- 应用层 - http / ftp / dns - 报文 (应用层、表示层、会话层合并为应用层)
- 传输层 - tcp / udp - 报文段
- 网络层 - ip - 数据报
- 链路层 - 帧
- 物理层 - bit 流
七层
起初网络分层是标准的七层,也就是我们所说的 OSI 七层模型。
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 链路层
- 物理层
每层的作用
物理层
主要用来传输 0、1 信号。0、1 信号毕竟没有任何的现实意义,所有我们用另一层用来规定不同 0、1 组合的意义是什么
数据链路层
数据链路层规定一套协议,专门的给 0、1 信号进行分组,以及规定不同的组代表什么意思,从而使得双方计算机都能够进行识别,这个协议就是“以太网协议”。
但是,又有一个问题:我们要发送给对方计算机,怎么标识对方以及怎么知道对方的地址呢?
MAC 地址
作用:说白了它就是作为网络中计算机设备的唯一标识,从计算机在厂商生产出来就被十六进制的数标识为 MAC 地址。
既然我们知道了用 MAC 地址作为标识,那么怎么才能知道我们要进行通信的计算机 MAC 地址呢?
广播
广播可以帮助我们能够知道对方的 MAC 地址。
广播中还存在两种情况:一种是在同一子网络下(同一局域网下)的计算机是通过 ARP 协议获取到对方 MAC 地址的;不同自网络中(不同局域网)中是交给两个局域网的网关(路由器)去处理的。
网络层
网络层的由来是因为在数据链路层中我们说说两台计算机之间的通信是分为同一子网络和不同子网络之间,那么问题就来了,怎么判断两台计算机是否在同一子网络(局域网)中?这就是网络层要解决的问题。
IP 协议
我们通常用到的 IP 地址,就是网络层中的东西,所规定的的协议就是 IP 协议。
很多小伙伴问,IP 地址想必也是地址吧,上边都有唯一标识的 MAC 地址了,IP 地址出来是混饭吃的?
为了能够让大家更方便的理解 IP 地址和 MAC 地址,我们可以将 IP 地址抽象成一种逻辑上的地址,也就是说 MAC 地址是物理上的地址,就是定死了。IP 地址呢,是动态分配的,不是固定死的。
我们就是通过 IP 地址来判断两个计算机设备是否在同一子网络中的
既然我们通过 IP 地址来判断两个计算机是否处于同一局域网中,那么首先要知道对方的 IP 地址吧?DNS 解析想必大家都知道,可以将域名解析为 IP 地址。好了,我们知道两台计算机的 IP 地址了,怎么进行判断是否同一局域网中?
子网掩码
在设置电脑 IP 时,会碰到两个重要的参数,一个是 IP 地址,一个是子网掩码。IP 地址是互联网上每个子网或每个主机在网络上的唯一身份标签,那子网掩码是干什么用的呢?
随着互联网的发展,越来越多的网络产生,有的网络多则几百台主机,少则区区几台,这样就浪费了大量的 IP 地址,所以要划分子网。为了有序地区分和管理不同的子网,就需要使用子网掩码。
子网掩码是一种用来指明一个 IP 地址所标示的主机处于哪个子网中。子网掩码不能单独存在,它必须结合 IP 地址一起使用。子网掩码只有一个作用,就是将某个 IP 地址划分成网络地址和主机地址两部分。
子网掩码是一个 32 位地址,对于 A 类地址来说,默认的子网掩码是 255.0.0.0;对于 B 类地址来说默认的子网掩码是 255.255.0.0;对于 C 类地址来说默认的子网掩码是 255.255.255.0。
子网掩码通常有十进制和二级制两种表现形式,255.255.0.0 用二进制表示则为 1111111.11111111.00000000.00000000,其中,前面 2 个字节的 16 位“1”表示网络号,后面 2 个字节的 16 位“0”表示主机号。
当配合 IP 地址 172.20.0.4 使用时,则表示该 IP 地址是 B 类地址,172.20 是网络标识,0.4 是主机标识。也即子网掩码 AND IP 地址的部分是网络标识,子网掩码取反后 AND IP 地址的部分即为主机标识。(即:子网掩码的左边是网络位,用二进制数字“1”表示,1 的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0 的数目等于主机位的长度。)
info
例子:
IP 地址:192.168.1.199 -> 11000000.10101000.00000001.11000111
子网掩码:255.255.255.0 -> 11111111.11111111.11111111.00000000
十进制的显示形式是给人看的,二进制的显示形式是给计算机看的。。。
则这个 IP 地址的网络号就是 11000000.10101000.00000001,转换成十进制就是 192.168.1,网掩码 255.255.255.0 的 “0”的个数是右边 8 位,则这个 IP 地址的主机号就是 11000111,转换成十进制就是 199.
子网掩码有两个特殊地址,当子网掩码的主机地址全为 0 时,表示该网络地址,当子网掩码的主机地址全为 1 时,表示该网络的广播地址。
子网掩码就是用来标识同一局域网中的 IP 地址的信息的?什么信息?IP 地址是由 32 个二进制位组成的,也就是四个十进制(如:255.255.255.000
)。
子网掩码也是由 32 个二进制位组成的,但是只能用 0 或 1 来表示,如 11111111.11111111.11111111.00000000
。
传输层
好了,如果你认为计算机可以进行通信了,那么恭喜你,你已经基本知道了以上几层划分的作用,但是如果你正在一边打 LOL,一边和朋友在 QQ 聊天,突然,游戏中队友聊天信息出现在了 QQ 窗口中,咦?出现了什么情况?
其实是以上层级还是不够,出现上边的原因就是,两台计算机虽然可以通信了,但是每天计算机运行着好多的程序,谁知道你们传输的信息是属于哪些程序的,怨不得 LOL 的聊天信息跑到了 QQ 窗口中。
想必大家猜到了传输层主要用来干啥滴,是的,传输层的主要功能就是为了能够实现“端口到端口”的通信。计算机上运行的不同程序都会分配不同的端口,所以才能使得数据能够正确的传送给不同的应用程序。
UDP
加入端口号也需要一套规则,那就是 UDP 协议,但是 UDP 协议有个缺点,一旦进行通信,就不知道对方是否接收到数据了,我们再定义一套规则,让其可以和对方进行确认,那么 TCP 出现了。
TCP
我们通常说 TCP 三次握手和四次挥手,没错,这就是传输层中完成的
应用层
“喂,你发给我的是什么破数据,乱七八糟的,我 TM 能解析吗?能不能按照我的规定给我传送?“
“好的,下次不敢了”
想必大家已经猜到了应用层的协议,应用层的功能就是规定了应用程序的数据格式。我们经常用得到的电子邮件、HTTP 协议、以及 FTP 数据的格式,就是在应用层定义的。