OSI模型
网络工程师必背
OSI(Open System Interconnection Reference Model)
基本概念
用范围形容网络
- 局域网:LAN
- 广域网:WAN
以太网:一个网络的封装协议,不是一种类型或范围
局域网当中使用的是以太网协议(IEEE 802、Ethernet2),广域网中使用的是PPP协议或HDLC(高级数据链路控制)
OSI模型
由于人们认为每一层都需要研究且过于冗杂,例如5、6、7层和网络的关系不大,在实际应用中效率不高,于是缩小到了TCP/IP四层模型:
网络接口层:数据链路层和物理层合并
应用层:会话层、表示层和应用层合并
有的人说TCP/IP五层模型也没有问题,就是把网络接口层分开了,分层物理层和数据链路层
数据封装
在应用层发送了一个数据:你吃了吗
在应用层这个数据就是PDU(协议数据单元)
说白了数据封装就是给数据添加头部,而在哪一层添加的头部就叫哪一层的头部,例如经过传输层之后加上了传输层头部或四层头部,然后这个PDU经过传输层的封装之后就变成了segment,也就是数据段
同理经过网络层之后又进行了一次封装,封装后的数据称为packet,也就是数据包
而到了数据链路层就不一样了,不只是在头部添加,还会在尾部添加,分别称为数据链路层的头部和尾部,而这个封装后的数据叫做数据帧(frame),所以添加的内容亦可以称为帧头和帧尾
最后数据帧被转换成bit流转发出去,也就是只有数据帧才能转换成比特流传输
上面的图是华为的图,也许不是那么的直观,下面可以看看思科的图:
数据解封装
根据上面封装的流程,反过来把头部拆掉就是一个解封装的过程,最后得到一个原始数据:你吃了吗
帧格式
从图中可以看到,帧格式分为两种:Ethernet_II、IEEE802.3
其中相同的帧尾FCS是一种检测机制,用来检测这个数据帧是否完整,防止在数据传输的过程中缺失内容
Ethernet_II
帧头:D.MAC|S.MAC|Type
也就是目的MAC地址和源MAC地址
而type指的是协议类型,规定上层协议是什么
type:
0x0800→IPV4
0x0806→ARP
帧尾:FCS
802.3
length:data部分包含的字节数
LLC
逻辑链路控制
由dsap、ssap、control组成
SNAP:空的,由orgcode和type组成,这里的type就定义了上层协议
802.3类型的数据帧很少碰见,现在的话都是以太网数据帧比较常见
数据帧传输
以太网的mac地址
oui指的是产商代码
mac地址的长度:48bit
在以太网协议下面才有mac地址,在以太网协议下才需要研究mac地址,例如ppp协议就没有mac地址
帧发送的方式
和数据帧中封装的目的mac地址有关(用目的mac地址区分)
单播
一对一的发送,私聊
mac地址48bit的最前8bit中,第八位如果是0的话就是单播
广播
发的信息所有人都能收到,你在我的范围内,我只要发送了,你就得接受
目的mac地址全部位置上都是f的话就是广播帧
组播
发送的对象是一个群组,不像广播是全部,只在一个组内发送,其他人收不到
目的mac地址的第八位是1,就是组播帧