首先我先介绍一下什么是OSI
OSI是ISO(国际标准化组织)在网络通信中创建的开放系统互连模型,为开放式互连信息系统提供了一种功能结构的框架。它分为七个层次,从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
今天我介绍的是数据链路层的主要功能
数据链路层的功能
- 数据链路的建立,维护与拆除
- 帧包装,帧传输,帧同步
- 帧的差错恢复
- 流量控制
以太网
什么是以太网:
- 我们平常使用的局域网就是以太网
- 以太网工作在数据链路层
以太网需要注意的三个事项:规则 地址 格式
以太网的规则
- CSMA/CD--带冲突检测的载波监听多路访问
- 以太网采用CSMA/CD避免信号的冲突
- 工作原理
- 发送前先监听信道是否空闲,若空闲则立即发送数据
- 在发送时,边发边继续监听
- 若监听到冲突,则立即停止发送
- 等待一段随机时间(称为退避)以后,再重新尝试
以太网MAC地址
- 以太网地址用来识别一个以太网上的某个单独的设备或一组设备
- Mac地址长度共48位(6个字节),供应商标识为24位(3个字节),唯一编号为24位(3个字节)
- Mac地址第八位如果是数字0代表的是单播地址,如果是数字1代表的是组播地址,48位全为1时是广播地址(网卡的编号为二进制)
- Mac地址长度一般用16进制表示,例如: 00-50-56-C0-00-08(每一段16进制数代表2进制的8位)广播的Mac地址用16进制表示为:FF-FF-FF-FF-FF-FF
以太网帧格式
- 前导码(7字节)-- 帧启始定界符(1字节)-- 目的地址(6字节或48位即Mac地址)-- 源地址(6字节或48位即Mac地址)-- 类型/长度(2字节)-- 数据(46-1500字节)-- 帧校验序列(4字节)
帧的长度范围为:64--1518(数据加包装不包含前导码和帧启始定界符)
数据链路层的两个子层
- 介质访问控制(MAC)子层
- 将上层交下来的数据封装成帧进行发送(接收时进行相反的过程,将帧拆卸)
- 实现和维护介质访问控制协议,例如CSMA/CD
- 比特差错检测
- MAC帧的寻址,即MAC帧由哪个站(源站)发出,被哪个站/哪些站接收(目的站)
- 逻辑链路控制(LLC)子层
- 建立和释放数据链路层的逻辑链接
- 提供与上层的接口
- 给帧加上序号
以太网命名方法
- N-信号-物理介质
- N:以兆位为单位的数据速率,如10,100,1000
- 信号:基带还是宽带
- 物理介质:标识介质类型
例如:100BASE-TX
100 数据速率为100M
BESE基带,即物理介质为以太网专用
TX UTP或STP
TF 光纤
基带:以太网专用的设备叫基带
宽带:多功能使用的叫宽带
数据链路层的物理设备交换机
什么是交换机:
- 交换机是用来连接局域网的主要设备
- 交换机能够根据以太网帧中目标地址智能的转发数据,因此交换机工作在数据链路层
- 交换机分割冲突域,实现全双工通信
交换机的工作原理
- 初始状态(最初的交换机是空白的,对任何电脑的MAC地址都一无所知)
- MAC地址学习
- 广播未知数据帧
- 接收方回应
- 交换机实现单播通信
- 学习
- MAC地址表示交换机通过学习接收的数据帧的源MAC地址来形成的
- 广播
- 如果目标地址在MAC地址表中没有,交换机就想出接收到该数据帧的端口外的其他所有端口广播该数据帧
- 转发
- 交换机根据MAC地址表单播转发数据帧
- 更新
- 交换机MAC地址表的老化(无应答)时间是300秒
- 交换机如果发现一个镇的入端口和MAC地址表中源MAC地址的所在端口不同,交换机将MAC地址重新学习到新的端口
MAC地址表
- MAC地址表是交换机所自带的列表,记录着交换机上的每个端口所对应的MAC地址,初始时MAC地址表是空白的,MAC地址表是通过通信过程中交换机所学习过来的
单工,半双工与全双工
- 单工
- 只有一个信道,传输方向只能是单向的 例如:BB机
- 半双工
- 只有一个信道,在同一时刻,只能是单向传输 例如:对讲机
- 全双工
- 双信道,同时可以有双向数据传输 例如:电话
冲突与冲突域
- 如果冲突过多,则传输效率就会降低
分割冲突域
- 为了提高传输效率,分割冲突域
- 交换机背板交换矩阵结构
- 交换机的每个端口访问另一个端口时,都有一条专有的线路,不会产生冲突
广播域
- 广播域指接收同样广播消息的节点和几何,如:在该集合中的任何一个节点传输一个广播帧,则所有其他能收到这个帧的节点都被认为是该广播帧的一部分
- 交换机分割冲突域,但是部分割广播域,即交换机的所有端口属于同一个广播域
交换机内部交换方式
- 存储转发
- 是计算机网络领域应用最为广泛的方式
- 对进入交换机的数据包进行错误检测
- 支持不同速度的端口间的转换
- 在数据处理时延时大
- 快速转发
- 延迟非常小,交换非常快
- 不能提供错误检测能力
- 由于没有缓存,不能将具有不同速率的输入/输出端口直接接通,而且容易丢包
- 分段过滤
- 检查数据包的长度是否够64个字节,如果小于64字节,实名是假包,则丢弃该包;如果大于64字节,则发送该包
- 不提供数据校验。它的数据处理速度比存储转发方式快,但比直通式慢。