
博客主页小谢同学的小破站✍️ 本文由小谢同学的小破站原创首发于 CSDN☕ Java学习专栏java MySQL专栏MySQL 数据结构与算法Java 数据结构与算法C语言专栏: C语言 欢迎点赞 收藏⭐ 留言发现错误欢迎指正✨ 脚踏实地持续深耕奔赴自己的目标✨– – – – – 分割线----------标题1. 认识数据链路层1.1 数据链路层的核心任务1.1.1 封装成帧1.1.2 CRC差错检测1.1.3 可靠传输机制2. 认识以太网2.1 MAC地址2.2 二层交换机工作原理2.3 ARP协议3. 高频面试题总结前言这里是小谢同学有关于数据链路层的学习记录整理数据链路层相关知识。笔记用于自我复盘巩固有错误欢迎大家指出专栏还有 Java、网络、C 语言系列笔记欢迎翻阅.1. 认识数据链路层TCP/IP五层网络模型中,从上往下依次是应用层 → 传输层 → 网络层 →数据链路层→ 物理层。网络层负责跨网络传输找目标主机依靠IP地址。数据链路层:负责同一个局域网内把数据从一台主机送到另一台主机主要是依靠MAC地址。例如:生活中的一个例子IP地址代表的是,详细的一个小区地址(xxx小区3栋xxx号),可以使用于跨市导航MAC地址代表的是,本小区里面住户的门牌号只在当前小区内送货用。1.1 数据链路层的核心任务数据链路层主要的3大核心任务:封装成帧,CRC差错检测,可靠传输机制以以太网结构为例子:封装成帧给网络层传下来的IP数据包加上帧头、帧尾组成「帧」。帧的作用物理层只能传输一串0/1比特流数据链路层必须要划定边界告诉设备哪一段是一完整帧。封装完成之后就变成了以太网数据帧,后续会交给物理层发送;帧头中关键信息:源MAC地址,目的MAC地址,这两者就相当于寄快递的寄件人与收件人通俗的话就是:寄快递,给快递包装起来,外层是纸盒子(纸盒子相当于加上的帧头与帧尾)CRC差错检测以太网使用CRC循环冗余校验什么是CRC校验冗余校验?原理:发送方会根据原始的数据计算出校验码放在帧尾一起一同发送过去。接收方拿收到的数据 CRC校验码会重新进行计算结果。结果为0 → 说明数据没有损坏结果不为0 → 说明数据出错会直接丢弃帧注意:差错检测只能检是否存在问题,而不能纠正错误,传输过程中发现错误会直接丢包,不会自动重传,重传的工作会交给上层TCP协议来进行处理可靠传输机制可靠传输字面意思上我们就能理解为:保证接收方能够接收到发送方发送的数据;3种经典的可靠传输机制:停止等待协议: 每次发送一帧数据会等待对方返回ACK,收到之后再发送下一帧,缺点就是效率比较慢后退N帧(GBN): 可以连续发送多帧,如果发送过程中出现丢包问题,就会从丢包地方重新开始传递数据选择重传: 出错只会重新传递出错那一处,并不会重复发送数据以太网本身是没有实现可靠传输的,可靠传输交给TCP来进行实现2. 认识以太网以太这个概念早期并不是计算机里面的一个术语,而是物理上设想的一种物质:1887年迈克尔逊和莫雷在美国克利夫兰做的迈克尔逊-莫雷实验否定了以太的存在以太从此退出科学领域只成为了一种哲学上的概念。后续在计算机层面上引用了以太这个名词,也就是现在的以太网以太网结构:解释:1.目的地址与源地址:都是MAC地址,对应关系属于收件人与寄件人的关系2.CRC: 校验数据是否出错,会计算出校验码结果为0 → 说明数据没有损坏结果不为0 → 说明数据出错会直接丢弃帧2.1 MAC地址MAC地址也叫物理地址是固化在网卡硬件上长度为48位用12个十六进制数字表示。一般情况下在出产时已经固定好了,绝大部分情况下MAC地址是固定的,不允许修改(MAC地址通常是唯一的),但是有些设备可以修改MAC地址;注意:MAC地址只能在同一个局域网广播域内生效不能跨局域网直接通信。这里我们可以使用一个例子:长途旅途类比数据包跨网段传输 [桂林-柳州-北海-南宁]此处的IP地址就相当于本次的起点与目的地MAC地址只负责管理 [相邻的一跳] ,数据包每次经过一台路由器,离开当前局域网之后,旧的MAC地址就会作废,路由器会重新封装一组全新的源MAC,目的MAC,直到最后一跳到达目标主机所在的局域网,目的的MAC地址才会更换成目标主机网卡的MAC地址。简单口诀IP不忘初心MAC每跳换新2.2 二层交换机工作原理简单来理解:交换机属于二层设备只认识MAC地址看不懂IP地址工作在局域网内部。可以把交换机类比成班级里面的快递收发员(代购跑腿的)交换机内部会维护一张「MAC地址‑端口映射表」代购表收到数据帧后读取帧里面的目的MAC如果映射表里存在这条记录就单播转发到对应的端口(如果有人要跑腿买零食并且写了姓名,就会将零食交给对方)如果没有查到记录则执行泛洪广播向除接收端口以外所有端口转发这条帧(如果没有则大声询问这是谁的)交换机收到任意一个进来的数据帧时就会读取帧里的源 MAC更新 MAC‑端口映射表。交换机可以隔离冲突域但是不能隔离广播域。2.3 ARP协议ARP协议建立了主机IP地址和MAC地址的映射关系.作用就是通过目标主机的IP地址查询得到它对应的MAC地址。工作流程:当主机想要发送数据时已经知道目标IP但是不知道目标MAC会在局域网发送ARP广播请求报文询问这个IP对应的MAC地址局域网内所有的主机收到请求当IP匹配成功的主机会单播返回ARP应答,如果不匹配则丢弃广播请求方收到应答之后把「IP‑MAC」映射关系保存到本地ARP缓存表后续一段时间内无需再次广播查询。ARP只适用于同一个局域网内部跨网段通信时ARP获取到的是网关路由器的MAC地址而不是远端主机MAC地址。3 高频面试总结1MAC地址能不能跨局域网通信MAC和IP地址的区别MAC地址是二层链路层地址只能在当前局域网内生效无法跨网段通信IP是三层网络层地址负责端到端的远程寻址可以跨多个局域网传输。数据包每经过一台路由器二层源MAC与目的MAC就会被重新改写但是三层源IP、目的IP全程保持不变。2简述交换机的自学习转发流程交换机维护一张MAC‑端口映射表。收到帧时会先读取源MAC更新映射表再查看目的MAC如果表中存在记录就单播转发不存在就泛洪广播。3CRC校验检测出帧出错后链路层如何处理以太网链路层检测出错误帧后会直接将帧丢弃不会进行重传重传的可靠性会交给上层TCP协议负责。4ARP协议的工作过程跨网段时ARP拿到的是谁的MACARP通过广播请求、单播应答的方式由IP查询MAC。跨网段通信时ARP获取到的是网关路由器的MAC地址。 返回目录