# 以太网交互基础 主要在数据链路层中进行 1977年提出具有冲突检测的多点通信系统 ### CSMA/CD CSMA/CD即载波侦听多路访问/冲突检测,是广播型信道中采用一种随机访问技术的竞争型访问方法,具有多目标地址的特点。它处于一种总线型局域网结构,其物理拓扑结构正逐步向星型发展。CSMA/CD采用分布式控制方法,所有结点之间不存在控制与被控制的关系。 ## 以太网 是一种建立在CSMA/CD(载波侦听多路访问/冲突检测)机制上的广播型网络 ## 冲突域 在共享式网络中数据通信产生的冲突点的集合称为冲突域、 ## 冲突域造成的问题 数据损坏,数据碰撞,数据丢失,严重时影响数据正常通信 ## 共享式网络 使用HUB集线器连接终端设备组成的网络 ## 交换式网络 使用交换机链接终端设备组成的网络 ## HUB集线器的特点 所有接口都处于同一冲突域 ## 交换机 每个接口都处于不同的冲突域 ## 交换机的作用 隔离冲突域 ## 解决冲突域的办法 部署交换机 ### 避免冲突域的办法(不能完全避免) CSMA/CD(载波侦听多路访问/冲突检测,侦听的最小规格为64B) CSMA/CD的解决方式:等所有的数据发送完了,再发送自己的数据 #### CSMA/CD发送方式(工作原理) ①先听后发:先侦听网络中是否有设备存在通信,若不存在,则发送。 ②边发边听:发送数据的时候侦听网络中是否有设备存在通信(防止有些终端不支持CSMA/CD的机制)。 ③冲突停发:产生冲突后停止发送 ④随机延迟后发:维护一个随机的计时器(0~10S的随机值)计时器超时后再发送。 ### CSMA/CD存在的问题 延迟较高 ## 广播域 广播报文所能访问的范围就是一个广播域 ## 以太网卡工作模式: ### 单工 只能接收数据,不能发送数据 ### 双工 半双工:可以接收和发送数据,但不能同时进行 全双工:可以接收和发送数据,并且可以同时进行 自协商模式:通信双方协商出最优的工作模式,设备出产默认的工作模式为自协商模式 ## 以太网帧结构 IEEE国际电子电气工程师协会 ### 数据链路层的协议 Ethernet(以太网协议 PPP(点到点协议) IEEE802.3 HDLC(高级数据链路控制协议) ### 结构 帧头:根据不同的数据链路层协议,其表示的帧头中的参数不致 DATA:IP头+段头+DATA数据 帧尾:FCS:验证/校验数据帧是否完整 #### Ethernet-ll帧结构 优点:大,能够承载更多的数据 帧头:D.MAC S.MAC Type D.MAC:目的MAC地址,去往目的地址的下一跳设备的MAC地址 S.MAC:源MAC地址,始发设备自身的MAC地址 Type:类型,作用(标识上层协议类型) type=0x0806 --->ARP协议 type=0x0800 --->ipV4协议 type=0x8000 --->ISIS协议 DATA: IP头+段头+DATA数据 帧尾:FCS:验证/校验数据帧是否完整 #### IEEE802.3帧结构 优点:小,传输速率、接收效率更快,常用于特殊协议的封装 帧头:D.MAC S.MAC length LLC SNAP D.MAC:目的MAC地址,去往目的地址的下一跳设备的MAC地址 S.MAC:源MAC地址,始发设备自身的MAC地址 length:长度字段,用来标识数据帧的长度 LLC: 逻辑链路控制,用于数据链路层通信协商 源服务站点 目的服务站点 控制字段:控制协商的建立、管理以及断开 SNAP: 组织机构代码:固定取值,无意义 type:类型,作用(标识上层协议类型) DATA:IP头+段头+DATA数据 帧尾:FCS:验证/校验数据帧是否完整 如何区分数据帧: 1、根据数据帧中帧头的参数来判断 2、根据type/length的值来判断 type/length>=1536 --->eternet-ll帧 type/length<=1500 --->IEEE802.3帧 MTU:最大传输单元,缺省值为1500B(字节) ethernet-ll帧: 数据部分最大1500B,常用于数据通信,优点:携带数据量大 IEEE802.3帧: 数据部分最大1492B,常用于特殊协议的封装(ISIS、STP、MSTP)携带数据量小,处理快! PS:在数据链路层数据转发是基于目的MAC地址进行转发的 若数据帧的长度若小于64B,CSMA/CD无法进行侦听 ## MAC地址 以太网地址/物理地址/硬件地址 共48bit(6B),通常采用冒分16进制表示 ### MAC地址由两部分组成 前24bit:由IEEE中的OUI给厂商分配 后24bit:由制造商自行给自己所生产的设备进行分配 同一厂商生产的设备的MAC地址前24bit一致,后24bit不一致并且全球唯一 ## 数据帧的发送方式 (MAC地址的分类) 1、单播:一对一,单播发送的数据帧的目的MAC地址为真实设备的MAC地址 单播发送的数据帧的目的MAC地址的第一个字节第八比特位为0 如果收到数据帧的目的MAC地址为自身的MAC地址,则接收并处理 2、组播:一对多(组),组播发送数据帧的目的数据地址为组播MAC地址 组播发送的数据帧的目的MAC地址的第一字节第八比特位为1 如果收到数据帧的目的MAC地址为自身所在组的MAC地址则接收并处理 3、广播:一对所有,广播发送的数据帧的目的MAC地址为广播MAC地址 广播发送的数据帧的目的MAC地址48bit位都为1 如果收到数据帧的目的MAC地址为广播MAC地址则设备都需要接收并处理 ## 数据链路层对数据帧的处理方式 (解封装过程) 1、收到数据帧后,通过FCS,校验数据帧是否完整 若完整则接收并进行第二步,若不完整则丢弃 2、拆帧头,查看帧头中的目的MAC地址 目的MAC地址为单播: 若目的MAC地址为自身,则接收并进行第三步,若不是自组则丢弃 目的MAC地址为组播: 若是自身所在组,则接收并进行第三步,若不是自身所在组则丢弃 目的MAC地址为广播: 接收并进行第三步 3、查看帧头中的type字段,找到对应的上层协议类型 将数据帧的帧头和帧尾去掉,在交由相应的上层协议处理 4、拆IP头查看IP头部中的目的IP地址 若目的IP地址为自身,则接收并进行下一步 中转:(若目的IP地址不是自身,则查看路由表看是否有去往该目的IP地址的路由 如果有则重新封装,将数据根据路由表项进行转发) 若目的IP地址不是自身 ,则丢弃 5、查看protocol字段,找到对应的上层协议类型,并将数据交由其处理 6、拆段头:查看段头中的目的端口号,找到对应的上层应用程序,并将数据交由目的端口号所对应的应用程序处理 最后修改:2021 年 08 月 20 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏
1 条评论
看的我热血沸腾啊https://www.jiwenlaw.com/