链路层
链路层提供的服务
链路层的实现,其主体部分在 **网络适配器(网络接口卡)**中。网络
- 成帧(framing):讲网络层传来的数据报打封成帧,帧的结构取决于链路层协议
- 链路接入:媒体访问控制(Medium Access Control, MAC)协议规定了帧在链路上的传播规则
- 可靠交付
- 差错检测和纠正
差错检测和纠正技术
差错检测的三种技术:ide
多路访问协议
在链路网络中,点对点的传输(点对点链路)是很简单的,可是多对一的传输(被称为 广播链路),因为可能形成 碰撞(collide),如何才能协调它们?这就是被称为多路访问问题的问题。与此相应的,网络经过多路访问协议来解决这类问题。学习
协议类型
一个理想协议应该拥有的特色
- 仅有一个节点发送数据时,其吞吐量等于信道的吞吐量
- 多个节点发送数据时,其公平的共享信道的吞吐量
- 协议是分散式的,不会由于某一个节点损坏而崩溃
- 协议是简单的且成本低
#交换局域网接口
链路层寻址和ARP
链路层经过MAC地址做为链路层寻址的地址,而非网络层的IP地址,主要目的在于保证 各层独立 的原则,并且,局域网并不是只适用于IP网络和因特网。内存
地址解析协议(ARP)
由于链路层处理的是MAC地址,可是网络层(IP协议)发下来的数据报只带着IP地址,所以须要把IP地址和MAC地址进行转换,至于为何不直接用IP地址,参见上面。路由
每台主机或路由器在其内存中都维持着一个ARP表,用于记录IP地址对应MAC地址的映射同步
当一个节点想发送分组到另外一个节点(多是一台主机或路由器)时的流程:
子网内:class
- 发送方会构建的一个特殊的ARP分组,其中含有发送方的IP和MAC地址,以及目的的IP地址。
- 节点的适配器会把ARP分组封在链路层帧中,并经过指示目标MAC地址为FF-FF-FF-FF-FF-FF,进行一次广播
- 接收到广播的主机会检查本身的IP地址,若是相符就发送一个ARP响应分组,告知本身的MAC地址
- 发送方获得MAC地址,同时记录在本身的ARP表中
子网外: 目的节点由某个节点变为子网内的默认路由器,由路由器转发到网络上,最终达到目标节点的子网,执行上述步骤。原理
以太网
以太网帧结构
- 数据字段
- 目的地址
- 源地址
- 类型:指示其上层协议,用于多路复用和分解
- CRC:循环冗余检测,用于检测帧是否出现了差错
- 前同步码:用于“唤醒”接受适配器
链路层交换机
转发和过滤
经过 交换机表,交换机会作:路由器
- 转发:决定一个帧会被导向哪一个接口
- 过滤:决定一个帧是会被转发仍是被丢弃
交换机的自学习特性
原理:
- 交换机表初始为空
- 对于接受到的每一个帧,存储其:
- 一段时间没有收到某个主机的帧后,将其MAC地址从交换机表删掉
性质
- 即插即用
- 消除了多路交换时可能形成的碰撞
- 异质的链路:隔离不一样的链路,使得不一样链路能够在不一样的媒体上运行
- 管理功能