- Published on
计算机基础之数据链路层
- Authors
- Name
- noodles
- 每个人的花期不同,不必在乎别人比你提前拥有
简介
通过对运输层和网络层的基础知识的学习,了解到他们分别提供了基于主机进程间的通信和主机间的通信,这都基于数据链路层实现的上述功能,下面通过对数据链路层的学习来了解数据是如何通过相应的数据链路来实现传输和交付的
基础
1 在通信路径上连接相邻通信节点的通信信道称为链路。链路层协议将网络层的数据报封装成链路层帧来实现数据在链路节点间的移动。 2 链路层主要提供的服务有数据报的成帧,链路的接入(无线链路,有线链路),可靠交付,差错检测和纠正.链路层的功能主要在网络适配器(NIC)上来实现相应的功能 3 链路层通信通过MAC地址(LAN地址或者物理地址)来实现,所以一个通信的具体过程会涉及到三种地址:
- 主机名
- IP地址
- MAC地址
地址解析协议(ARP)
ARP的作用和寻址过程
ARP提供的是同一个子网和路由器的网络层地址到MAC地址的转换.主机会在内存中维护一个ARP表,这个表保存着一定时间内该子网内主机IP地址和MAC地址的映射.当目的主机的IP地址在ARP表中时,发送主机通过封装链路层帧目的MAC地址为保存的目的MAC地址将数据推送进数据链路层.当ARP表中没有响应的条目的时候,发送主机通过MAC广播地址发送APR广播分组,这样子网内所有的主机都会处理该分组,符合该IP地址的主机会发送ARP响应分组,将自己的MAC地址通知给请求发并且更新请求方的ARP表
以太网
以太网基础
以太网是基于之前的各种协议实现的一种局域网技术,它提供给网络层无连接服务.
以太网帧结构

- 前同步码 主要用于在发送方和接收方进行时钟的同步
- 目的MAC地址 当接受方收到对应的链路层帧的时候,当该帧的目的MAC地址是本机的MAC或者是广播地址的时候,数据字段的内容就是向上传递给网络层进行处理
- 源地址 发送方的MAC地址
- 类型字段 用于与上一层的某协议相结合
- 数据 网络层数据报
- CRC 循环冗余检测用于接受方检测是否存在差错
交换机
链路层交换机主要提供转发和过滤的功能.过滤是指决定一个帧是否被转发到某个接口还是将其废弃的功能.转发指一个帧具体应该被转向那个接口.
交换机的转发过程
交换机通过自学习的特性定期的维护自身的交换机表.表的条目分别是MAC地址,接口,时间.当交换机收到一个帧的时候,会根据该帧的目的地址做出不同的行为
- 如果交换表中没有该MAC地址的时候,交换机就会向它所有的端口转发该帧
- 当交换机接受到该帧的端口MAC地址和目的地址相同的时候,丢弃该帧.
- 当交换机表中存在相应的条目的时候,将该帧转发到相应的端口
web页面请求的详细过程
可以结合前两篇来理解这个过程(DHCP HTTP UDP CIDR IP MAC(ARP)) 里面涉及的编制 寻址 传输等相关协议
思考
- 网络协议虽然是分层的,但实际的实现上层与层之前的界限并没有那么清晰,不能割裂的去学习网络协议模型,要从整体上理解网络协议的整体过程
- 在具体功能的实现上,例如数据链路层通过MAC地址进行通信而不是依赖网络层的IP地址,这样就能使数据链路层与其他种数据格式对接,增加独立性
- 层与层之前的功能不具有强依赖关系,例如数据链路层是能够通过CRC循环冗余检测来实现差错检测和恢复的,网络层自己实现了本身的差错检测,在实现一个大型的系统的时候,功能到底是依赖于上层还是自己去维护(稳定性)都是值得考虑的点