HCIA-数据链路层
2024-10-19 06:27:30
数据链路层
- 1、数据的差错检测 |FCS|
- 2、组帧|解帧 |数据帧帧头
帧尾| - 3、标识身份 |MAC地址|
- 以太网络标准数据链路层的标准
- 数据链路层不仅仅只有以太网
地域来进行分类
- 局域网:小型地域 5KM之内|以太网标准|
- 城域网:以城市为单位的
- 广域网:范围较大
从全局的角度考虑 |HDLC|PPP|
局域网
以太网标准
- 1、定义传输介质的标准
- 2、定义了数据链路层数据封装<传输>的标准
数据封装|原始数据之上打上几层新的能够实现通信以及其他作用的封装|
- 分组交换
报头:不同的层级打上不同的封装 - 数据段<segment>:传输层报头+上层PDU
- 数据包<packet>:网络层报头+上层PDU
- 数据帧<frame>:数据链路层报头+上层PDU+数据链路层帧尾
- 发起方:数据封装的过程
- 接收方:数据解封装的过程
方向不是一成不变
根据不同的数据变化的。 - PDU:protocol data unity :协议数据单元:具体的应用数据 Data:上层的具体应用数据
- Ethernet Ⅱ:数据通信
- 802.3:一些协议之中 STP IS-IS
- 规律
- 1.1位表达不了
进位表达 - 2.进位的同时
原来的位要置为0
二进制:0 1 |一共是2个数| 满2进1
十进制:0 1 2 3 4 5 6 7 8 9 --->123<10进制> |一共是10个数|满10进1
十六进制:0 1 2 3 4 5 6 7 8 9 A<10> B<11> C<12> D<13> E<14> F<15> |16个数|满16进1
- 二进制:0=0 1=1
- 10 ===>代表就是2 ---> 当二进制的数在倒数第二位置为1 时
代表2 - 11 ===>代表就是3---->2+1=3
- 16进制每一位都是代表不同的取值--- 任何数的0次方=1
- 16的次方
- ———————————————
16进制如何转10进制:从16进制的最后一位开始以16的次方开始每一位的乘法,最后结果每一位相加。
- 0x0600====0+1536+0+0=1536
- 0*16的0次方=0*1=0
- 0*16的1次方=0*16=0
- 6*16的2次方=6*16^2= 1536
- 0*16的3次方=0*4096=0
- 0X05DC
- C:12*16^0=12*1=12
- D:13*16^1=13*16=208
- 5:5*16^2=5*256=1280
- 0:0
- 1280+208+12=1500
————————————————
IEEE 二
- ≤1500 ====802.3 STP|IS-IS|
- ≥1536 ====Ethernet 2 数据
- TYPE:类型 <0x=16进制> 最重要--->进位
向前进位
1、标识上层的协议
不同的组合代表上层不同的协议:0x 0800-->ipv4 0x86dd-->IPv6 0x0806-->ARP
2、区分究竟是Ethernet2帧还是802.3帧
- 数据发送之前-->进行CRC算法:全世界都知道 算法公开
- FCS:帧校验序列 <CRC>存在于帧尾:数据帧最后
- 差错检测:发出之前将算出的结果填充到FCS中 接收时根据CRC同样计算出一个结果,与数据中的FCS进行比对,如果相同,则可以继续处理,如果不同,则丢弃
- |差错检测任何地方都进行:发出时
计算结果填充到FCS 接受时
同样进行计算
然后比对| - 谁发谁填充
谁收谁检查
数据0101 信号<2进制比特流> - 1+1=2 <加法>
- 2+1=3 <加法>
———————————————————————————————————
协议:对协议某些链路进行控制:802.3 STP:思科|华为 标准的协议
- OSI一个概念
- 私有协议:上层协议
数据链路--->以太网标准:E2|802.3| - 厂商定义了私有的私有协议
并且使用了802.3的封装,必须定义SNAP字段。 - LLC:逻辑链路控制 <将链路从逻辑意义上控制>
- DSAP:目标服务访问点
上层的协议 - SSAP:源目标访问点
上层的协议 - Control:控制
链路逻辑的状态信息<从逻辑意义上进行通断控制> - S<sub>NAP:子网络服务协议:私有开发的协议才会出现<前提条件:802.3>
- org_code:机构代码:只有私有的协议
厂商才会定义 - type:私有协议的类型
——————————————————————————————————
- 二进制 0 1 0 1 一位二进制:bit<比特>
- Byte<字节> 1B<字节>=8b<比特>
- 0000 0000 8个bit 1个字节 32bit = 4字节
- E2:在E2这个数据链层协议中,上层数据
最小46 最大1500 封装大小为18个字节 - 802.3:数据链路层封装额外多了8个字节
所以需要上层数据承载的大小进行了8字节的缩减。 - —————————————————————————————————
- 1536---type类型取值的时候大于1536<10进制> 0x0600[86dd-->IPV6 0806-->ARP 0800-->IPV4]
- ——————————————————————————————————
- 1500---1536-->没有定义 IETF
- ——————————————————————————————————
MAC -->物理地址 2部分 OUI地址
- 前24bit<OUI:组织唯一标识符>
- 后24bit<厂商自定义>
- 出场自带
直接烧录进网卡 - 1.工作在这条连路上
区分该链路上的不同的设备节点 6个字节=48个比特 - 2.数据的传输方式 -->在这一条链路上的概念
- 这样一个链路的范围:广播域
:在一个范围内能够传递广播的信息 - ——————————————————
规律
1.1位表达不了
进位表达
2.进位的同时
原来的位要置为0
- ——————————————————
- MAC地址抓包的时候-->16进制
- 概念讲的是第8bit -->2进制
- 1个16进制数= 4位2进制数 |
- A -->二进制是几 16进制 -->4位二进制中下功夫
- 1 -->1
- 10->2
- 11->3
- 100->4
- 101->5
- 110->6
- 111->7
- 1000->8
- 最后一位:1
- 倒数第二:2
- 倒数第三:4
- 倒数第四:8
- 16进制-->最后一位开始16的0次方
- 2进制-->最后一位开始2的0次方
- 8<2^3> 4<2^2> 2<2^1> 1<2^0>
- 1 1 1 1 = 8+4+2+1=15 4位最高代表15 --> F
- ——————————————————
数据链路层区分单播组播广播数据帧?
- 单播:QQ聊天
私聊
单对单
点对点 1对1 - 第8位一定是0
- 组播:QQ群聊
规定一个范围
范围内的才可以收到 [德语
法语] - 第8位一定是1 其他可选
- 广播:点对所有
第8位一定是1 其他也一定是1 - ——————————————————
十六进制如何变为2进制?
- 0000 0001:1000 0000:1100 0010 ………………
- 组播:第8位为1 其他任意
- 1111 1111:1111 1111:1111 1111:1111:1111:1111 1111:1111:1111
- F F F F F F F F F F F F
- FF:FF:FF:FF:FF:FF--->广播帧
- ——————————————————
数据封装解封装在数据链路层的行为:
- 组帧:
- 1、收到上层数据后
此时填充源目MAC 以及TYPE<标识上层>和FCS<校验> - 解帧:
- 1、先查看目的MAC是否自己可以接收[单播=是自己
广播=接收
组播=加组] - 2、执行FCS校验
校验通过则进行第三步 - 3、看Type交由上层的协议处理
- ——————————————————
总结:
网络设备如何确定以太网数据帧的上层协议:
IEEE 2:type
IEEE 802.3:DSAP\SNAP_type
最新文章
- 资源描述结构(Resource Description Framework,RDF)
- C#、ASP.NET获取当前应用程序的绝对路径,获取程序工作路径 (转帖)
- Python 2x ->; 3.x
- Python学习路程day3
- hdu1050 Moving Tables
- CPU/寄存器/内存
- ";NetworkError: 500 Internal Server Error - http://develop.console.aliyun.sinopec.com/ots/ots_queryOtsList.action?state=0";
- http请求的组成部分
- 转载-常用API接口签名验证参考
- 自定义cell相关注意事项
- sql基础之DDL(Data Definition Languages)
- 转换成maven时报错
- CentOS上javaweb开发环境搭建
- 如何添加“在这里打开PowerShell”到Windows中的上下文菜单
- AI-2048 注释
- Linux基础入门-环境变量与文件查找
- 【Java】【THINK】
- DevExpress ASP.NET v18.2新功能详解(二)
- java 调用process
- python 简明教程 【转】
热门文章
- CosId 1.1.0 发布,通用、灵活、高性能的分布式 ID 生成器
- 41.1、shell编程案例
- 使用VS调试时出现 :provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接 解决方案
- 创建Maven项目骨架并使用
- 连接mysql数据库实现增删改查(一)
- XML:使用cxf调用WebService接口时报错:编码GBK的不可映射字符(设置UTF-8字符集)
- php laravel5.5使用rabbitmq消息队列
- netcore3.1 + vue (前后端分离) ElementUI多文件带参数上传
- Dapper的基本使用 [转]
- 「AGC035C」 Skolem XOR Tree