成帧、链路接入、可靠交付、差错检测和纠正
下图是一个典型的主机体系结构,链路层的主体部分是在网络适配器实现的,部分链路层是在运行于主机CPU上的软件实现的。网络适配器有时也称为网络接口卡。位于网络适配器核心的是链路层控制器,该控制器通常是一个实现了许多链路层服务(成帧、链路接入、差错检测等)的专用芯片。因此,链路层控制器的许多功能是用硬件实现的。
链路层是硬件和软件的结合体,即此处是协议栈中软件与硬件交接的地方。
点对点链路:由链路一端的单个发送方和链路另一端的单个接收方组成。许多链路层协议都是为点对点链路设计的,如点对点协议(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:用于电缆因特网接入的链路层协议
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 分组具有包含链路层地址的字段,因而可认为是链路层协议,但它也包含网络层地址,因而也可认为是为网络层协议
3.发送数据报到子网以外
上图中,到子网 1 的网络地址为 111.111. 111/ 24,子网 2 的网络地址为 222.222.222/24
现在考察子网 1 上的一台主机将向子网 2 上的一台主机发送数据报。
第一步:发送主机向它的适配器传递数据报。但是,发送主机还必须向它的适配器指示一个子网中第一跳路由器的MAC地址。
第二步:在子网 1 上的路由器适配器看到该链路层帧是向它寻址的,因此把这个帧传递给路由器的网络层。
第三步:为了将该数据报从当前路由器移动到目的地,路由通过查询路由器中的转发表决定该数据报要被转发的正确接口。然后该接口把这个数据报传递给它的适配器,适配器把该数据报封装到一个新的帧中,并且将帧发送进子网。这时,该帧的目的 MAC 地址确实是最终目的地 MAC 地址。路由器又是怎样获得这个目的地 MAC 地址的呢?当然是用 ARP 获得的!
现如今,以太网使用基于交换机的星型拓扑,且几乎占领着有线局域网市场。
现代交换机是全双工的,这使得一台交换机和一个节点能够在同时向对方发送帧而没有干扰。换句话说,在基于交换机的以太局域网中,不会有碰撞,因此没有必要使用 MAC 协议了。
1.以太网帧结构
数据字段(46 ~ 1500字节):这个字段承载了 IP 数据报。以太网的最大传输单元 (MTU)是1500字节。
目的地址 (6 字节):这个字段包含目的适配器的 MAC 地址
源地址 (6 字节):这个字段包含了传输该帧到局域网上的适配器的 MAC 地址
类型字段(2字节):类型字段允许以太网复用多种网络层协议。主机能够使用除 IP 以外的其他网络层协议,而类型字段就能够指出该帧应当将载荷部分交给网络层的哪个网络层协议。
CRC (4 字节):CRC (循环冗余检测)字段的目的是使得接收适配器(适配器B)检测帧中是否引人了差错。
前同步码 (8 字节) 以太网帧以 8 字节的前同步码字段开始。该前同步码的前 7 字节的值都 10101010;最后一个字节是 10101011 。前同步码字段的前 7 字节用于“唤醒“接收适配器,并且将它们的时钟和发送方的时钟同步。前同步码第八个字节的最后两个比特(第一个出现的两个连续的 1) 警告接收适配器重要的内容就要到来了。
MAC协议就是上面的那些多路访问协议
交换机自身对子网中的主机和路由器是透明的
帧到达该交换机的任何输出接口之一的速率可能暂时会超过该接口的链路容量,因此交换机输出接口设有缓存
1 . 交换机转发和过滤
过滤:过滤是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能
转发:转发是决定一个帧应该被导向哪个接口,并把该帧移动到那些接口的交换机功能
交换机表:交换机的过滤和转发是借助于交换机表完成的。该交换机表包含某局域网上某些主机和路由器的但不必是全部的表项。交换机表中的一个表项包含:①一个 MAC 地址;②通向该 MAC 地址的交换机接口;③表项放置在表中的时间。如下图所示
交换机过滤和转发的工作过程
假定目的地址为 DD-DD-DD-DD-DD-DD 帧从交换机接口 x 到达。交换机用 MAC 地址 DD-DD- DD-DD- DD-DD 索引它的表。有三种可能的情况:
2.自学习
交换机具有令人惊奇的特性,那就是它的表是自动、动态和自治地建立的,即没有来自网络管理员或来自配置协议的任何干预。换句话说,交换机是自学习的。 这种能力是以如下方式实现的:
3.链路层交换机的性质
4.交换机和路由器比较
交换机优点
交换机缺点
路由器优点
路由器缺点
什么时候使用交换机,什么时候使用路由器呢
通常,由几百台主机组成的小网络通常有几个局域网网段。对于这些小网络,交换机就足够了,因为它们不要求 IP 地址的任何配置就能使流量局部化并增加总计吞吐量。但是在由几千台主机组成的更大网络中,通常在网络中(除了交换机之外)还包括路由器。路由器提供了更健壮的流量隔离方式和对广播风暴的控制,并在网络的主机之间使用更智能的路由。