六.链路层和局域网
6.1 链路层概述
6.1.1 链路层可能提供的服务
成帧、链路接入、可靠交付、差错检测和纠正
6.1.2 链路层在何处实现
下图是一个典型的主机体系结构,链路层的主体部分是在网络适配器实现的,部分链路层是在运行于主机CPU上的软件实现的。网络适配器有时也称为网络接口卡。位于网络适配器核心的是链路层控制器,该控制器通常是一个实现了许多链路层服务(成帧、链路接入、差错检测等)的专用芯片。因此,链路层控制器的许多功能是用硬件实现的。
链路层是硬件和软件的结合体,即此处是协议栈中软件与硬件交接的地方。
6.2 差错检测和纠正技术
- 奇偶校验
- 检验和方法
- 循环冗余检测
6.3 多路访问链路和协议
点对点链路:由链路一端的单个发送方和链路另一端的单个接收方组成。许多链路层协议都是为点对点链路设计的,如点对点协议(point - to - point protocol,PPP)、高级数据链路控制(high-level data link conltrol,HDLG)就是两种这样的协议。
广播链路:它能够让多个发送和接收节点都连接到相同的、单一的、共享的广播信道上。以太网和无线局域网是广播链路层技术的例子。
多路访问问题:如何协调多个发送和接收节点对一个共享广播信道的访问,这就是多路访问问题。
注意
- 广播信道通常位于局域网中,局域网是一个地理位置上集中在一座建筑物中的网络。如一个公司、一所大学。
- 多路访问链路应该就是广播链路
这些年来,在大量的链路层技术中已经实现了几十种多路访问协议。尽管如此,我们能够将任何多路访问协议划分为 3 种类型之一:信道划分协议,随机接入协议,轮流协议。
6.3.1 信道划分协议
6.3.2 随机接入协议
6.3.3 轮流协议
6.3.4 DOCSIS:用于电缆因特网接入的链路层协议
6.4 交换局域网
6.4.1 链路层寻址和ARP
1.MAC地址
每个主机和路由器的适配器(网络接口)都具有链路层地址,而链路层交换机并不具有链路层地址。这个链路层地址有许多称呼,一般将它称之为MAC地址。
MAC地址长度为6字节,这六个字节地址通常用十六进制表示法,地址的每个字节被表示为一对十六进制数。
注意
- 没有任何二块适配器具有相同地MAC地址。
- 发送适配器想要广播帧时,只需要在该帧的目的地址字段插入一个特殊的MAC广播地址,广播地址的十六进制表示法为FF-FF-FF-FF-FF-FF。
2.地址解析协议
因为存在网络层地址(例如,因特网的 IP 地址)和链路层地址(即 MAC 地址),所以需要在它们之间进行转换。对于因特网而言、这是地址解析协议的任务。
ARP协议:ARP协议是一个地址解析协议,它能够为同一个子网中上的主机和路由器接口解析IP地址。
ARP协议解析目的IP地址的步骤
如下图所示,每台主机或路由器在其内存中具有一个ARP表,这张表包含IP地址到MAC地址的映射关系。该ARP表也包含了一个寿命值,它指示了从表中删除每个映射的时间。
现在,发送主机需要获得给定 IP 地址的目的主机的 MAC 地址
第一步:如果发送方 ARP 表具有该目的节点的表项,则直接可以获取到
第二步:如果ARP表不存在此表项,发送方用 ARP 协议来解析这个地址。首先,发送方构造一个称为 ARP 分组的特殊分组。一个ARP 分组有几个字段,包括发送和接收 IP 地址及 MAC 地址。 ARP 查询分组和响应分组都具有相同的格式。ARP 查询分组的目的是询问子网上所有其他主机和路由器,以确定对应于要解析的 IP 地址的那个 MAC 地址。
第三步:适配器其在链路层帧中封装这个ARP分组,用广播地址作为帧的目的地址,并将该帧传输进子网中。
第四步:包含该ARP查询的帧能被子网上的所有其他适配器接收到,并且每个适配器都把该帧中的ARP分组向上传递给ARP模块。这些 ARP 模块中的每个都检查它的 IP 地址是否与 ARP 分组中的目的 IP 相匹配。与之相匹配的一个给查询主机发送回一个带有所希望映射的响应 ARP 分组。然后 查询主机 222 222.222.220 能够更新它的 ARP 表,并发送它的 IP 数据报,该数据报封装在一个链路层帧中, 并且该帧的目的 MAC 就是对先前 ARP 请求进行响应的主机或路由器 MAC 地址。
一个 ARP 分组封装在链路层帧中,因而在体系结构上位于链路层之上。然而, ARP 分组具有包含链路层地址的字段,因而可认为是链路层协议,但它也包含网络层地址,因而也可认为是为网络层协议