链路层概述

网络层的数据最终需要被封装到链路层的链路层帧中进行传输。本篇将介绍链路层的主要功能,并以以太网为例子,具体介绍了实际网络中使用的链路层协议。

1. 概述与基础

我们将运行链路层协议的设备均称为结点(node),连接结点间的通信信道称为链路(link)。链路层所提供的服务就是将数据通过通信链路从一个结点传输到相邻结点。具体地,链路层协议提供下列服务:

  1. 成帧(framing)- 将网络层数据封装成 链路层帧。
  2. 链路接入- 媒体访问控制协议(medium access control, MAC - 网卡的mac 地址就是这个)规定了帧在链路上的传输规则,在多路访问时,提供重要的数据传输协调服务。
  3. 可靠交付- 可靠交付服务不是必须的,经常用于易于产生高差错率的链路上,例如无线链路。
  4. 差错检测和纠正- 通常使用硬件实现。

链路层协议通常在网络适配器(network adapter)或称为 网络接口卡(Network Interface Card, NIC)中实现(也就是说链路层协议大多是硬件实现的)。

1.1 差错检测

差错检测和纠正是链路层的一项重要工作,通常通过在原始数据后添加一段辅助字段- 差错检测和纠正比特(Error-Detection and correction, EDC)来增强数据D。常用的差错检测及纠错方法有:奇偶校验;检验和;循环冗余检测编码(使用最多,Cyclic Redundancy Check, CRC, 也叫 多项式编码Polynomial code)。

1.2 多路访问链路和协议

在计算机网络中,有两种类型的网络链路:点对点链路(point-to-point link)和广播链路(broadcast link)。

在广播链路中,使用 多路访问协议(multiple access protocol)来协调多个发送和接收结点对一个共享广播信道的访问。共有三种类型的多路访问协议:信道划分协议(channel partitioning protocol);随机接入协议(random access protocol); 轮流协议(taking-turns protocol)。

信道划分协议的原理是不同的结点间通信使用不同的信道,根据信道种类的不同,可以分为 时分多路复用(TDM);频分多路复用(FDM);码分多址(CDMA-code division multiple access)。

随机接入协议:传输结点总是可以以信道的全部速率进行发送,常用的随机接入协议包括:ALOHA协议;载波侦听多路访问协议(CSMA-以太网基于此)。

轮流协议:可以在M个结点活跃时,每个结点以总吞吐量的M分之一进行传输。包括:轮询协议(polling protocol);令牌传递协议(token-passing protocol)。

2. 交换局域网-以太网

以太网是使用最为广泛的局域网协议。我们首先介绍一些建立以太网的基础设施,然后对以太网的运作流程进行简介。

2.1 链路层寻址与 ARP

链路层中的网络结点(硬件上是网卡,路由器等)都会拥有一个 MAC 地址(注意链路层交换机是没有MAC地址的 )。链路层中,使用 MAC 地址来确定链路层帧的传输。

MAC 地址为6字节,通常用16进制数表示:xx-xx-xx-xx-xx-xx。任何设备的 MAC地址都是唯一的,且不会改变(实际上,也可以改变,通常前24位可以确定生产商)。

因特网中,使用 地址解析协议(address resolution protocol- ARP)来确定对应IP地址设备的MAC地址。

具体地,ARP协议报文作为链路层帧的数据部分,在网络中传输,网卡以 MAC 广播地址(FF-FF-FF-FF-FF-FF)广播这个查询信息。在同一个局域网中,ARP协议可以直接解析IP地址对应的MAC地址,而对于目的设备在不同局域网中时,则会先通过 ARP协议获取网关路由器的MAC地址,再由网关路由器直接与其他局域网的主机或网关路由器进行通信。

2.2 链路层交换机

交换机的任务是接收入链路层帧并将它们转发到出链路。具体地,它会过滤掉不需要转发到其他接口的帧 并且将需要转发的帧转发到对应接口上。交换机主要通过 交换机表 来实现过滤和转发功能。

交换机表记录接口及对应的 MAC地址(还会包括记录添加的时间)。

交换机是即插即用的设备(plug-and-play device), 可以通过自学习机制自动更新交换机表中的项。

出于安全等考虑,交换机需要具有流量隔离功能;而层级式的交换机设置会导致一定程度的资源浪费。通过使用支持虚拟局域网(Virtual local network- VLAN)的交换机,可以解决上述问题。

2.3 以太网协议

以太网(Ethernet)是广泛使用局域网协议。早期以太网是以总线形式配置的广播局域网,后变为使用集线器(hub-物理层设备,仅实现信号放大)的星形拓扑进行局域网组网。21世纪以来,以太网演变为了 以交换机为中心的星形拓扑网络。

以太网的帧结构如下:

先导的8个字节主要用于进行时钟同步,从而将传输波特率调整一致。

通过 MAC地址,可以经由路由器直接找到对应的目的网卡地址。2 Byte 的长度字段用于注明使用的网络层协议,即起到沟通链路层和网络层的作用。

2.4 数据中心网络

了解一下~ 随着移动互联网的不断普及,以及网络速度的不断提升,对于数据中心的要求在不断提高。对于数据中心来说,它们使用专用的数据中心网络(类似一个大的局域网),数据中心中的主机彼此互联并最终连至因特网。

通常,在数据中心中,主机称为 blade(刀片),一般包括 CPU、内存和磁盘存储。主机被堆叠放置在机架上,每个机架一般堆放20-40个blade。每个机架顶部放置一台交换机,称为机架顶部交换机(TOR交换机,top of rack)。一个典型的数据中心网络如下:

当请求数据中心的一个服务时,请求首先抵达 负载均衡器(laod balancer), 再由它通过负载均衡算法将对应的应用交给对应的主机处理。它不仅可以使系统中主机的负荷均衡,还能起到隔离用户和主机,保障安全的作用。

数据中心的网络结构包括传统的 路由器和交换机等级结构(hierarchy of router and switch),以及较新的全连拓扑结构(fully connected topology)和 模块化数据中心(modular data center- MDC- 将数据中心模块化,放置到12米的船运集装箱内)。

3. 小结

至此,网络的主要基础设施学习完毕,通过一个实例来复习一下。思考A同学访问 baidu.com 的过程:

  1. 加入网络:DHCP协议获取分配的IP地址等信息(DHCP-UDP-IP);
  2. 查询 baidu.com 的 IP地址:ARP协议 获取网关路由器MAC地址 以使得 从链路层角度能够连接至DNS服务器(DNS在校园网外); DNS-UDP-IP, 向DNS服务器请求获取访问域名的 IP;
  3. 访问最终网站:HTTP-TCP-IP。