osi 七层协议的理解 ---物理层/数据链路层 --- 理论基础

osi 七层协议,知识点需要掌握程度: 了解/熟悉.

最近在研究网络的七层协议,但是这七层协议,我们重点分析其中的五层协议:

物理层/数据链路层/网络层/传输层/应用层

首先我们需要阐述的是七层协议是并不存在的,是人为的进行设计区分的。

1.局域网内的传输.

osi 七层协议的理解 ---物理层/数据链路层 --- 理论基础

上面的图是我们局域网内的传输模型.

物理层:

上图中,每个主机和路由的连接都是通过网线来完成的,网线要干的作用很简单,就是传递主机发送出去的消息,这个就是物理层的作用.

在网孔和网孔之间传递二进制数据.

数据链路层:

我们在物理层传输的数据都是一段一段的二进制的数据(先就简单理解吧,不同的传输介质传输的东西不一样,比如光缆就是传递的光缆信号,需要把二进制转化为光缆信号,类似那个猫眼,接收端收到光缆信号后也需要把光缆信号转为二进制信号)。

osi 七层协议的理解 ---物理层/数据链路层 --- 理论基础

这些数据,会通过物理层,也就是网线传递到接收方,但是接收方看到这些二进制数据,其实是很懵逼的!

哪里是数据的开始?哪里是数据的结束?,因为我们需要一层协议,帮助接收方来把这些二进制数据进行拆分,因此这就引发了我们的数据链路层的作用:

但是这些数据传递给另一台主机后,接收方也是需要解析的? 这个就是数据链路层该干的活.

数据链路层的协议是固定的: head + data的组成方式,大致如下:

osi 七层协议的理解 ---物理层/数据链路层 --- 理论基础
数据链路层传输的是MAC帧,后面我们会讲为什么是传递的是MAC帧,而不是局域网的IP,以及MAC是什么?

head固定18个字节----
源MAC地址:6个字节,MAC地址固定就是6个字节的.
目标MAC地址:6个字节
数据类型: 6个字节

data最小46个字节最大1500字节,也就是一个MAC帧最小是46+18个字节,最大是1500+18个字节

上面是数据链路层传输的协议,下面我们来讲数据链路层的实践部分:

局域网传输广播理论基础:

局域网内的数据传输靠广播,广播广播,字面意思就很清楚,广而告之.

通俗的理解:
一个子网可以理解为一个教室,子网内的主机可以理解为教室内的学生。

一个教室内的同学,比如同学A想找萌萌要昨晚他看的岛国动作片的地址,这个时候A直接喊一声(萌萌,把你昨天晚上收藏的岛国地址发给我)。

这个时候全班都能听到同学A的请求,但是只有萌萌会答复A,并回复说,地址是XXXXX。(这个动作就是广播)

上面就是广播的理论基础,那么系统怎么判断这条消息是发送给我的呢? 答案是通过MAC判断.

osi 七层协议的理解 ---物理层/数据链路层 --- 理论基础

假设我们一个局域网内有4台设备,当其中一台设广播了一条消息的时候,另外三台都会收到这条消息.

这条消息被分成了三分,通过网线(物理层)分别传输到了三台主机上,我们的网线是直接插到网卡上的网孔的,这个时候我们的网卡会提取MAC和自己的MAC进行比较,看是否一致,如果是一致,把数据接着往应用层传递,如果不是一致的话,此条消息直接丢弃.(p2p打洞就是让网卡以为这条消息是发送给我的)

所以MAC就是:
每台主机的网卡在出厂之前都会分配一个6字节的唯一标识符,前24位是像协会申请的,后24位由厂家自己分配.

所以用MAC理由就很简单了,就像多层漏抖一样,它是最近的一层。

OK,局域网内的主机要给其它用户发送消息的时候,必须首先知道对方的MAC地址,那么怎么知道的呢?

答案是ARP协议,这个协议后面进行补充说明,是借助IP进行实现的.

接下来我们进行测试,通过wireshark进行局域网的抓包分析,通过对抓到的包进行分析.