【山外笔记】第03章:数据链路层
本文打印版文件下载地址:
本章最重要的内容是:
(1)数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP协议以及CSMA/CD协议)的特点。
(2)数据链路层的三个基本问题:封装成帧、透明传输和差错检测。
(3)以太网MAC层的硬件地址。
(4)适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合。
一、使用点对点信道的数据链路层
1.1 数据链路层简介
1、数据链路层使用的信道主要类型:
(1)点对点信道:使用一对一的点对点通信方式。
(2)广播信道:使用一对多的广播通信方式,广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
2、两台主机通过互联网进行通信时数据链路层所处的地位
(1)用户主机H1通过电话线上网,中间经过三个路由器(R1,R2和R3)连接到远程主机H2。
(2)从协议的层次上看,数据的流动是主机H1和H2都有完整的五层协议栈,但路由器在转发分组时使用的协议栈只有下面的三层。
(3)数据进入路由器后要先从物理层上到网络层,在转发表中找到下一跳的地址后,再下到物理层转发出去。因此,数据从主机H1传送到主机H2需要在路径中的各结点的协议栈向上和向下流动多次。
(4)当主机H1向主机H2发送数据时,可以想象数据就是在数据链路层从左向右沿水平方向传送的,即通过以下这样的链路:H1的链路层→R1的链路层→R2的链路层→R3的链路层→H2的链路层。
(4)从数据链路层来看,H1到H2的通信可以看成由四段不同的链路层通信组成,即:H1→R1,R1→R2,R2→R3和R3→H2。这四段不同的链路层可能采用不同的数据链路层协议。
1.2 数据链路和帧
1、链路和数据链路的区别
(1)链路(link)是从一个结点到相邻结点的一段物理线路(有线/无线),中间没有任何其他的交换结点。
(2)数据链路(data link)是指一条物理线路和通信协议以及实现这些协议的硬件和软件。
(3)实现通信协议最常用的方法是使用网络适配器(既有硬件,也包括软件),一般的适配器都包括了数据链路层和物理层这两层的功能。
(4)早期的数据通信协议曾叫做通信规程(procedure),在数据链路层,规程和协议是同义语。
(5)另一种说法:把链路分为物理链路和逻辑链路。物理链路就是上面所说的链路,而逻辑链路就是上面的数据链路,是物理链路加上必要的通信协议。
2、数据帧
(1)帧是点对点信道的数据链路层的协议数据单元。
(1)数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层,网络层协议数据单元就是IP数据报(或简称为数据报、分组或包)。
(3)在点对点信道的数据链路层协议上,链路上的通信可以采用三层模型,即每个结点只有下三层—网络层、数据链路层和物理层。
3、点对点信道的数据链路层在进行通信时的主要步骤:
(1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
(2)结点A把封装好的帧发送给结点B的数据链路层。
(3)若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则丢弃这个帧。
1.3 三个基本问题
数据链路层协议有三个基本问题是共同的:封装成帧、透明传输和差错检测。
1、封装成帧
(1)封装成帧(framing)就是在一段数据的前后分别添加首部和尾部构成一个帧。
(2)接收端接收到物理层上交的比特流后,根据首部和尾部的标记,从比特流中识别帧的开始和结束。
(3)帧是数据链路层的数据传送单元,一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。
(4)帧的数据部分:从网络层传送到数据链路层的IP数据报。
(5)帧的首部和尾部:在发送帧时从帧首部开始发送的。
-
① 帧的首部和尾部能够进行帧定界,即确定帧的界限,并且包括了许多必要的控制信息。
-
② 各种数据链路层协议都对帧首部和帧尾部的格式有明确的规定。
-
③ 每一种链路层协议都规定了所能传送的帧的数据部分长度上限—最大传送单元MTU(Maximum Transfer Unit)。
-
④ 帧定界:使用特殊的帧定界符,控制字符SOH和控制字符EOT。
-
❶ 控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始。
-
❷ 控制字符EOT(End Of Transmission)放在一帧的最后面,表示帧的结束。
-
❸ SOH和EOT都是控制字符的名称,十六进制编码是01和04,二进制是00000001和00000100。
-
❹ SOH(或EOT)并不是S,O,H(或E,O,T)三个字符。
-
❺ 帧定界符的作用:发送端发送帧时中断重发。接收端接收帧时有首部开始符SOH才开始接收,没有帧结束符EOT的不完整帧必须丢弃。完整的帧必须有明确的帧定界符(SOH和EOT)。
-
2、透明传输
(1)透明传输:传送的帧中数据部分不会出现SOH或EOT帧定界控制字符。
① 透明:表示某一个实际存在的事物看起来却好像不存在一样。
② 透明传输:表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过数据链路层传输。
(2)传输的帧中不能出现和帧定界控制字符SOH或EOT一样的比特编码,否则会出现帧定界的错误。
(3)如果传输的帧中出现和帧结束符EOT一样的比特编码,数据链路层会错误地找到帧的边界,剩下的数据会被接收端当作无效帧丢弃。
(4)透明传输问题的解决方法:字节填充(byte stuffing)或字符填充(character stuffing)
-
① 发送端的数据链路层在中出现控制字符SOH或EOT的前面插入一个转义字符ESC。
-
② 接收端的数据链路层在把帧的数据部分送往网络层之前删除插入的转义字符ESC。
-
③ 如果转义字符也出现在数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。
-
④ 当接收端收到连续的两个转义字符时,就删除其中前面的一个。
-
⑤ ESC的十六进制编码是1B,二进制是00011011。
3、差错检测(error detection)
(1)比特差错:比特在传输过程中可能会产生差错,1会变成0, 0变成1,是传输差错的一种。
(2)误码率BER(Bit Error Rate):在一段时间内传输错误的比特占所传输比特总数的比率称。
(3)误码率与信噪比有很大的关系。信噪比越高,误码率就越小。
(4)目前在数据链路层广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)的检错技术。
(5)循环冗余检验的工作原理
-
① 在发送端,先把数据划分为组,假定每组k个比特。CRC运算就是在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去,一共发送(k+n)位。
-
② 在接收端把接收到的数据以帧为单位进行CRC检验:把收到的每一个帧都除以同样的除数P(模2运算),然后检查得到的余数R。
-
③ 在接收端对收到的每一帧经过CRC检验后,有以下两种情况:
-
❶ 若得出的余数R=0,则判定这个帧没有差错,就接受(accept)。
-
❷ 若余数R≠0,则判定这个帧有差错,但无法确定哪里出现了差错,就丢弃。
-
(6)n位冗余码的得出方法:
-
① 用二进制的模2运算进行2n乘M的运算,相当于在M后面添加n个0。
-
② 用得到的(k+n)位的数除以收发双方事先商定的长度为(n+1)位的除数P,得出商是Q而余数是R(n位,比P少一位)。余数R作为冗余码拼接在数据M的后面发送出去。这种为了进行检错而添加的冗余码常称为帧检验序列FCS(Frame Check Sequence)。
(7)CRC的特点
-
① CRC是一种检错方法,而FCS是添加在数据后面的冗余码。
-
② 在发送的数据后面增加n位的冗余码,虽然增大了数据传输的开销,但却可以进行差错检测。
-
③ 在数据链路层,发送端帧检验序列FCS的生成和接收端的CRC检验都是用硬件完成的。
-
④ 如果在数据链路层进行差错检验,就必须把数据划分为帧,每一帧都加上冗余码,一帧接一帧地传送,然后在接收方逐帧进行差错检验。
(8)传输差错的分类:一类是比特差错,另一类是没有出现比特差错,但出现了帧丢失、帧重复或帧失序。
(9)OSI的观点:让数据链路层向上提供可靠传输。CRC检错的基础上,增加了帧编号、确认和重传机制。
二、点对点协议PPP
2.1 点对点协议PPP协议的特点(Point-to-Point Protocol)
PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议。
1、PPP协议应满足的需求
(1)简单:作为首要的需求。
数据链路层的协议非常简单:接收方每收到一个帧,就进行CRC检验。如CRC检验正确,就收下这个帧;反之,就丢弃这个帧,其他什么也不做。
(2)封装成帧
PPP协议必须规定特殊的字符作为帧定界符,即标志一个帧的开始和结束的字符,以便使接收端从收到的比特流中能准确地找出帧的开始和结束位置。
(3)透明性:PPP协议必须保证数据传输的透明性。
(4)多种网络层协议:PPP协议必须能够在在同一条物理链路上同时支持多种网络层协议的运行。
(5)多种类型链路:PPP必须能够在多种类型的链路上运行。
-
① PPPoE:PPP over Ethernet,是在以太网上运行的PPP,即把PPP帧再封装在以太网帧中。
-
② PPPoE是为宽带上网的主机使用的链路层协议。
(6)差错检测:PPP协议必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
(7)检测连接状态:PPP协议必须具有一种机制能够及时自动检测出链路是否处于正常工作状态。
(8)最大传送单元
-
① PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值。
-
② MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。
-
③ 如果高层协议发送的分组过长并超过MTU的数值,PPP就要丢弃这样的帧,并返回差错。
(9)网络层地址协商:PPP协议必须提供一种机制使通信的两个网络层的实体能够知道彼此的网络层地址。
(10)数据压缩协商:PPP协议必须提供一种方法来协商使用数据压缩算法。
2、PPP协议的特点
(1)PPP协议不需要进行纠错,不需要设置序号,也不需要进行流量控制。
(2)PPP协议不支持多点线路,而只支持点对点的链路通信。
(3)PPP协议只支持全双工链路。
3、PPP协议的组成
(1)一个将IP数据报封装到串行链路的方法:PPP既支持异步链路,也支持面向比特的同步链路。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)。
(3)一套网络控制协议NCP(Network Control Protocol):其中的每一个协议支持不同的网络层协议。
2.2 PPP协议的帧格式
1、PPP协议各字段的意义
(1)PPP帧的首部和尾部分别为四个字段和两个字段。
(2)首部的第一个字段和尾部的第二个字段都是标志字段F,规定为0x7E(01111110)。
-
① 标志字段F(Flag)表示一个帧的开始或结束,是PPP帧的定界符。
-
② 连续两帧之间只需要用一个标志字段。
-
③ 如果出现连续两个标志字段,就表示这是一个空帧,应当丢弃。
(3)首部中的地址字段A规定为0xFF(即11111111),控制字段C规定为0x03(即00000011)。
(4)PPP首部的第四个字段是2字节的协议字段。
-
① 当协议字段为0x0021时,PPP帧的信息字段是IP数据报。
-
② 当协议字段为0xC021时,PPP帧的信息字段是PPP链路控制协议LCP的数据。
-
③ 当协议字段为0x8021时,PPP帧的信息字段是网络层的控制数据。
(5)信息字段的长度是可变的,不超过1500字节。
(6)尾部中的第一个字段(2字节)是使用CRC的帧检验序列FCS。
2、字节填充
当PPP使用异步传输时,在发送端把转义符定义为0x7D(即01111101),并使用字节填充:
(1)把信息字段中出现的每一个0x7E字节转变成为2字节序列(0x7D,0x5E)。
(2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把0x7D转变成为2字节序列(0x7D,0x5D)。
(3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。
(4)信息字段在发送端进行了字节填充,在链路上传送的信息字节数就超过了原来的信息字节数。但接收端在收到数据后再进行与发送端字节填充相反的变换,就可以正确地恢复出原来的信息。
3、零比特填充
(1)PPP协议用在SONET/SDH链路时,使用同步传输(比特帧传输)而不是异步传输(字符传输)。
(2)PPP协议采用零比特填充方法来实现透明传输。
(3)零比特填充的具体做法是:
① 在发送端,先扫描整个信息字段(通常用硬件实现,但也可用软件实现,只是会慢些)。
② 只要发现有5个连续1,则立即填入一个0,保证在信息字段中不会出现6个连续1。
③ 接收端收到一个帧时,先找到标志字段F确定一个帧的边界,再用硬件对其中的比特流进行扫描。
④ 每当发现5个连续1时,就把这5个连续1后的一个0删除,还原成原来的信息比特流。
2.3 PPP协议的工作状态
1、PPP协议的工作流程
(1)当用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接。
(2)用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧)建立LCP连接。
(3)进行网络层配置,网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址。
(4)当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址,然后LCP释放数据链路层连接,最后释放物理层的连接。
2、PPP协议的工作状态
从设备之间无链路开始,到先建立物理链路,再建立链路控制协议LCP链路。经过鉴别后再建立网络控制协议NCP链路,然后才能交换数据。
(1)PPP链路的起始和终止状态永远是“链路静止”(Link Dead)状态,这时在用户个人电脑和ISP的路由器之间并不存在物理层的连接。
(2)用户个人电脑通过调制解调器呼叫路由器,路由器检测到调制解调器发出的载波信号,双方建立了物理层连接,PPP进入“链路建立”(Link Establish)状态,其目的是建立链路层的LCP连接。
(3)“链路建立”(Link Establish)状态
-
① LCP开始协商一些配置选项,即发送LCP的配置请求帧(Configure-Request),该帧中协议字段置为LCP对应的代码,而信息字段包含特定的配置请求。
-
② 链路的另一端可以发送以下几种响应中的一种:
-
❶ 配置确认帧(Configure-Ack):所有选项都接受。
-
❷ 配置否认帧(Configure-Nak):所有选项都理解但不能接受。
-
❸ 配置拒绝帧(Configure-Reject):选项有的无法识别或不能接受,需要协商。
-
-
③ LCP配置选项包括链路上的最大帧长、所使用的鉴别协议(authentication protocol)的规约,以及不使用PPP帧中的地址和控制字段。
-
④ 协商结束后双方就建立了LCP链路,接着就进入“鉴别”(Authenticate)状态。
(4)“鉴别”状态
-
① 鉴别状态下只允许传送LCP协议的分组、鉴别协议的分组以及监测链路质量的分组。
-
② 鉴别协议包括令鉴别协议PAP和更加复杂的口令握手鉴别协议CHAP。
-
③ 若鉴别身份失败,则转到“链路终止”(Link Terminate)状态。
-
④ 若鉴别成功,则进入“网络层协议”(Network-Layer Protocol)状态。
(5)“网络层协议”状态
-
① PPP链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。
-
② PPP协议两端的网络层可以运行不同的网络层协议,但可使用同一个PPP协议进行通信。
-
③ 当网络层配置完毕后,链路就进入可进行数据通信的“链路打开”(Link Open)状态。
(6)“链路打开”状态
-
① 链路的两个PPP端点可以彼此向对方发送分组。
-
② 两个PPP端点还可发送回送请求LCP分组(Echo-Request)和回送回答LCP分组(Echo-Reply),以检查链路的状态。
-
③ 数据传输结束后,可以由链路的一端发出终止请求LCP分组(Terminate-Request)请求终止链路连接,在收到对方发来的终止确认LCP分组(Terminate-Ack)后,转到“链路终止”状态。
-
④ 如果链路出现故障,也会从“链路打开”状态转到“链路终止”状态。
-
⑤ 当调制解调器的载波停止后,则回到“链路静止”状态。
三、使用广播信道的数据链路层
3.1 局域网的数据链路层
1、局域网最主要的特点是:
(1)网络为一个单位所拥有,且地理范围和站点数目均有限。
(2)局域网比广域网具有较高的数据率、较低的时延和较小的误码率。
2、局域网主要的优点:
(1)具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
(2)便于系统的扩展和逐渐演变,各设备的位置可灵活调整和改变。
(3)提高了系统的可靠性(reliability)、可用性(availability)和生存性(survivability)。
3、局域网分类:按网络拓扑分为星形网、环形网、总线网。
4、共享信道共享通信媒体资源的方法:
(1)静态划分信道:频分复用、时分复用、波分复用和码分复用等。
-
① 用户只要分配到了信道就不会和其他用户发生冲突。
-
② 这种划分信道的方法代价较高,不适合于局域网使用。
(2)动态媒体接入控制:又称为多点接入(multiple access)
-
① 多点接入的特点是信道并非在用户通信时固定分配给用户。这里又分为以下两类:
-
② 多点接入分为随机接入和受控接入两种。
-
❶ 随机接入:特点是所有的用户可随机地发送信息。但如果多个用户在同一时刻发送信息,会产生碰撞(即发生了冲突),使得这些用户的发送都失败。因此,必须有解决碰撞的网络协议。
-
❷ 受控接入:特点是用户不能随机地发送信息而必须服从一定的控制。这类的典型代表有分散控制的令牌环局域网和集中控制的多点线路探询(polling),或称为轮询。
-
5、以太网的两个标准
(1)以太网是美国施乐(Xerox)公司的PARC研究中心于1975年研制成功的。
-
① 初期的以太网是一种基带总线局域网,当时的数据率为2.94Mbit/s。
-
② 以太网用无源电缆作为总线来传送数据帧,并以表示传播电磁波的以太(Ether)来命名。
-
③ DIX Ethernet V2规约是世界上第一个局域网产品的规约。
(2)第一个IEEE的以太网标准IEEE 802.3,数据率为10Mbit/s,常把802.3局域网简称为“以太网”。
-
① IEEE 802委员会未能形成一个统一的、“最佳的”局域网标准。
-
② IEEE 802委员会制定了几个不同的局域网标准,如802.4令牌总线网、802.5令牌环网等。
-
③ IEEE 802委员会把局域网的数据链路层拆成两个子层:逻辑链路控制LLC(Logical Link Control)子层和媒体接入控制MAC(Medium Access Control)子层。
-
❶ 与接入到传输媒体有关的内容都放在MAC子层,而LLC子层则与传输媒体无关。
-
❷ 不管采用何种传输媒体和MAC子层的局域网对LLC子层来说都是透明的。
-
(3)TCP/IP体系经常使用的局域网只剩下DIX Ethernet V2而不是IEEE 802.3标准中的局域网。
(4)很多厂商生产的适配器上就仅装有MAC协议而没有LLC协议。
6、适配器的作用
(1)计算机通过通信适配器(adapter)与外界局域网进行连接。
(2)适配器是在主机箱内插入的一块网络接口板,又称网络接口卡NIC或简称为“网卡”。
(3)通信适配器上面装有处理器和存储器(包括RAM和ROM)。
-
① 在适配器中必须装有对数据进行缓存的存储芯片。
-
② 计算机的硬件地址就在适配器的ROM中,而计算机的软件地址(IP地址)在计算机的存储器中。
(4)适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。
-
① 适配器和局域网之间的通信通过电缆或双绞线以串行传输方式进行。
-
② 适配器和计算机之间的通信通过计算机主板上的I/O总线以并行传输方式进行。
(5)计算机的操作系统必须安装管理适配器的设备驱动程序,适配器还要能够实现以太网协议。
(6)适配器在接收和发送各种帧时,不使用计算机的CPU。
-
① 当适配器收到有差错的帧时,就把这个帧直接丢弃而不必通知计算机。
-
② 当适配器收到正确的帧时,就使用中断来通知该计算机,并交付协议栈中的网络层。
-
③ 当计算机要发送IP数据报时,由协议栈把IP数据报向下交给适配器组装成帧后发送到局域网。
3.2 CSMA/CD协议
1、总线的特点
(1)广播通信:当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据。
(2)一对一通信:
-
① 在发送数据帧时,在帧的首部写明接收站的地址。
-
② 仅当数据帧中的目的地址与适配器ROM中存放的硬件地址一致时,该适配器才能接收这个数据帧。
-
③ 适配器对不是发送给自己的数据帧就丢弃。
2、以太网采取的通信措施:
(1)采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。
-
① 适配器对发送的数据帧不进行编号,也不要求对方发回确认。
-
② 以太网提供的服务是尽最大努力的交付,即不可靠的交付。
-
❶ 当目的站收到有差错的数据帧时,就把帧丢弃,其他什么也不做。
-
❷ 对有差错帧是否需要重传则由高层来决定。
-
❸ 对于重传的数据帧,以太网并不知道是重传帧,而是当作新的数据帧来发送。
-
-
③ 总线上只要有一台计算机在发送数据,总线的传输资源就被占用。即在同一时间只能允许一台计算机发送数据,否则各计算机之间就会互相干扰,使得所发送数据被破坏。
-
④ 以太网采用最简单的随机接入,但使用CSMA/CD协议用来减少冲突发生的概率。CSMA/CD是载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection)。
(2)以太网发送的数据都使用曼彻斯特(Manchester)编码的信号。
-
① 二进制基带数字信号通常就是高、低电压交替出现的信号。
-
② 当出现一长串的连1或连0时,接收端就无法从收到的比特流中提取位同步(即比特同步)信号。
-
③ 曼彻斯特编码的缺点:所占的频带宽度比原始的基带信号增加一倍,即每秒传送的码元数加倍了。
-
④ 曼彻斯特编码的编码方法是把每一个码元再分成两个相等的间隔。即在每一个码元的正中间出现一次电压的转换,码元1电压“前高后低”,码元0“前低后高”,也可采用相反的约定。
3、CSMA/CD协议简介
(1)“多点接入”:说明是总线型网络,许多计算机以多点接入的方式连接在一根总线上。
(2)CSMA/CD协议的实质是“载波监听”和“碰撞检测”。
(3)载波监听就是检测信道,用电子技术检测总线上有没有其他计算机在发送数据。
-
① 不管在发送前,还是在发送中,每个站都必须不停地检测信道。
-
② 在发送前检测信道,是为了获得发送权。
-
③ 如果检测出已经有其他站在发送,自己就暂时不发送数据,必须要等到信道变为空闲时才能发送。
-
④ 在发送中检测信道,是为了及时发现有没有其他站的发送和本站发送的碰撞,称为碰撞检测。
(4)碰撞检测就是边发送边监听,即适配器边发送数据边检测信道上的信号电压的变化情况,判断自己在发送数据时其他站是否也在发送数据。也称为冲突检测。
(5)碰撞就是发生了冲突,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
(6)使用CSMA/CD协议时,一个站不可能同时进行发送和接收,必须边发送边监听信道。因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。
(7)以太网不能保证某一时间之内一定能够把自己的数据帧成功地发送出去,称为发送的不确定性。
(8)以太网的端到端往返时间,即两倍的传播时延称为争用期(contention period),又称为碰撞窗口。
(9)以太网使用截断二进制指数退避算法来确定碰撞后重传的时机,让发生碰撞的站在停止发送数据后,不是等待信道变为空闲后就立即再发送数据,而是推迟(这叫做退避)一个随机的时间。若连续多次发生冲突,就表明可能有较多的站参与争用信道,重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
(10)适配器每发送一个新的帧,就要执行一次CSMA/CD算法。适配器对过去发生过的碰撞并无记忆功能。
(11)以太网在发送数据时,如果在争用期没有发生碰撞,那么后续发送的数据就一定不会发生冲突。如果发生碰撞,就一定是在发送的前64字节之内。
4、CSMA/CD协议的要点
(1)准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道。
(2)检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
(3)在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
-
① 发送成功:在争用期内一直未检测到碰撞,这个帧发送成功。
-
② 发送失败:在争用期内检测到碰撞,就立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待r倍512比特时间后,继续检测信道。但若重传达16次仍不能成功,则停止重传而向上报错。
(4)以太网每发送完一帧,一定要把已发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要在推迟一段时间后再把这个暂时保留的帧重传一次。
3.3 使用集线器的星形拓扑
1、传统以太网
(1)传统以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备集线器(hub)。
(2)双绞线以太网总是和使用了大规模集成电路芯片的集线器配合使用的。
(3)每个站需要用两对无屏蔽双绞线(放在一根电缆内),分别用于发送和接收。
(4)双绞线的两端使用RJ-45插头。
(5)星形以太网10BASE-T的标准802.3i。10代表10Mbit/s的数据率,BASE表示连接线上的信号是基带信号,T代表双绞线。
(6)10BASE-T以太网的通信距离稍短,每个站到集线器的距离不超过100m。
(7)IEEE 802.3标准可使用光纤作为传输媒体,标准是10BASE-F系列,F代表光纤,主要用作集线器之间的远程连接。
2、集线器的特点:
(1)从表面上看,使用集线器的局域网在物理上是一个星形网,但整个系统仍像传统以太网那样运行。
-
① 使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,还是使用CSMA/CD协议。
-
② 网络中的各站必须竞争对传输媒体的控制,并且在同一时刻至多只允许一个站发送数据。
(2)一个集线器有许多接口,每个接口通过RJ-45插头用两对双绞线与计算机上的适配器相连。
(3)集线器工作在物理层,每个接口仅仅简单地转发比特,即收到1就转发1,收到0就转发0,不进行碰撞检测。若两个接口同时有信号输入(即发生碰撞),那么所有的接口都将收不到正确的帧。
(4)集线器采用了专门的芯片,进行自适应串音回波抵消。
(5)集线器一般都有少量的容错能力和网络管理功能。
3、集线器的发展
(1)堆叠式集线器(stackable):由4-8个集线器堆叠起来使用。
(2)模块化的机箱式智能集线器:
-
① 集线器上全部的网络功能都以模块方式实现。
-
② 各模块均可进行热插拔,出故障时不断电即可更换或增加新模块。
-
③ 集线器上的指示灯还可显示网络上的故障情况,方便网络的管理。
3.4 以太网的信道利用率
据统计,以太网的利用率达到30%时就已经处于重载的情况,很多的网络容量被网上的碰撞消耗掉了。
3.5 以太网的MAC层
1、MAC层的硬件地址
(1)在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中)。
(2)“名字指出我们所要寻找的那个资源,地址指出那个资源在何处,路由告诉我们如何到达该处。”
(3)IEEE 802标准为局域网规定了一种48位的全球地址,称为EUI-48。
-
① EUI表示扩展的唯一标识符(Extended Unique Identifier)。
-
② EUI-48是局域网中每台计算机固化在适配器ROM中的地址。
-
③ MAC地址实际上就是适配器地址或适配器标识符EUI-48。
-
④ EUI-48的使用范围并不局限于局域网的硬件地址,而是可以用于软件接口。
-
⑤ 如果连接在局域网上的主机或路由器安装有多个适配器,那么就有多个“地址”。
(4)IEEE 802标准规定MAC地址字段可采用6字节(48位)或2字节(16位)这两种中的一种。
-
① 现在的局域网适配器实际上使用的都是6字节MAC地址。
-
② 前三个字节(即高位24位)由IEEE的注册管理机构RA(Registration Authority)出售,生产局域② 网适配器的厂家购买,是组织唯一标识符OUI,通常也叫做公司标识符(company_id)。
-
❶ 地址字段的第一字节的最低位为I/G位(Individual/Group)。
-
❷ 当I/G位为0时,地址字段表示一个单个站地址。为1时表示组地址,用来进行多播。
-
-
③ 地址字段中的后三个字节(即低位24位)则由厂家自行指派,称为扩展标识符(extended identifier),只要保证生产出的适配器没有重复地址即可。
-
④ 一个地址块可以生成224个不同的地址。
(5)路由器如果同时连接到两个网络上,那么它就需要两个适配器和两个硬件地址。
-
① 当路由器通过适配器连接到局域网时,适配器上的硬件地址就用来标志路由器的某个接口。
-
② 适配器具有过滤功能。适配器从网络上每收到一个MAC帧就先用硬件检查MAC帧中的目的地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。
-
③ 发往本站的帧包括以下三种帧:
-
❶ 单播(unicast)帧(一对一),即收到的帧的MAC地址与本站的硬件地址相同。
-
❷ 广播(broadcast)帧(一对全体),即发送给本局域网上所有站点的帧(全1地址)。
-
❸ 多播(multicast)帧(一对多),即发送给本局域网上一部分站点的帧。
-
-
④ 以太网适配器可设置为一种特殊的工作方式,即混杂方式(promiscuous mode)。工作在混杂方式的适配器只要“听到”有帧在以太网上传输就都悄悄地接收下来,而不管这些帧是发往哪个站。
2、MAC帧的格式
(1)常用的以太网MAC帧格式有两种标准,一种是DIX Ethernet V2标准(即以太网V2标准),另一种是IEEE的802.3标准。使用最多的是以太网V2的MAC帧格式。
(2)以太网V2的MAC帧由五个字段组成。
-
① 前两个字段分别为6字节长的目的地址和源地址字段。
-
② 第三个字段是2字节的类型字段,用来标志上一层使用的协议。
-
③ 第四个字段是数据字段,其长度在46到1500字节之间。
-
④ 最后一个字段是4字节的帧检验序列FCS(使用CRC检验)。
(3)从MAC子层向下传到物理层时还要在帧的前面插入8字节(由硬件生成),由两个字段构成。
-
① 第一个字段是7个字节的前同步码(1和0交替码),作用是使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率,使它和发送端的时钟同步,也就是“实现位同步”,即实现比特同步。
-
② 第二个字段是帧开始定界符,定义为10101011。它的前六位的作用和前同步码一样,最后的两个连续的1是告诉接收端适配器注意接收MAC帧的信息。
-
③ MAC帧的FCS字段的检验范围不包括前同步码和帧开始定界符。
-
④ 在使用SONET/SDH进行同步传输时则不需要用前同步码。
(4)IEEE 802.3标准规定的无效MAC帧:
-
① 帧的长度不是整数个字节;
-
② 用收到的帧检验序列FCS查出有差错;
-
③ 收到的帧的MAC客户数据字段的长度不在4-1500字节之间。
(5)以太网上传送数据以帧为单位传送,各帧之间必须有一定的间隙。
-
① 接收端只要找到帧开始定界符,其后面的连续到达的比特流就都属于同一个MAC帧。
-
② 以太网不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输。
-
③ 对于检查出的无效MAC帧就简单地丢弃。以太网不负责重传丢弃的帧。
四、扩展的以太网
4.1 在物理层扩展以太网
1、扩展主机和集线器之间的距离的方法
(1)使用光纤(通常是一对光纤)和一对光纤调制解调器。
(2)光纤调制解调器的作用就是进行电信号和光信号的转换。
2、多级结构的集线器以太网
(1)多级结构的集线器以太网:使用多个集线器连接成覆盖更大范围的多级星形结构的以太网。
(2)多级结构的集线器以太网的好处:
-
① 不同域的以太网上的计算机能够进行跨域通信。
-
② 扩大了以太网覆盖的地理范围。
(3)多级结构的集线器以太网的缺点。
-
① 每一个域的10BASE-T以太网是一个独立的碰撞域(collision domain,又称为冲突域),即在任一时刻,在每一个碰撞域中只能有一个站在发送数据。
-
② 如果不同的域使用不同的以太网技术(如数据率不同),那么就不可能用集线器将它们互连起来。集线器基本上是个多接口(即多端口)的转发器,并不能把帧进行缓存。
4.2 在数据链路层扩展以太网
扩展以太网常用的方法是在数据链路层进行。
1、网桥(bridge)
(1)网桥对收到的帧根据其MAC帧的目的地址进行转发和过滤。当网桥收到一个帧时,根据帧中的目的MAC地址,查找网桥中的地址表,然后确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
(2)网桥只能一次分析和转发一个帧)
2、以太网交换机的特点(switching hub)
(1)交换式集线器常称为以太网交换机或第二层交换机(L2switch),工作在数据链路层。
(2)以太网交换机实质上就是一个多接口的网桥,通常都有十几个或更多的接口。
(3)以太网交换机的每个接口都直接与一个单台主机或另一个以太网交换机相连。
(4)以太网交换机一般都工作在全双工方式。
(5)以太网交换机还具有并行性,即能同时连通多对接口,使多对主机能同时通信,相互通信的主机都是独占传输媒体,无碰撞地传输数据。
(6)以太网交换机的接口还有存储器,能在输出端口繁忙时把到来的帧进行缓存。
(7)以太网交换机是一种即插即用设备,其内部的帧交换表(又称地址表)是通过自学习算法自动建立的。
(8)以太网交换机由于使用了专用的交换结构芯片,用硬件转发,其转发速率要比网桥快很多。
(9)交换机的最大优点是交换机的总容量是交换机所有接口容量之和。
(10)以太网交换机的转发方式:
-
① 大部分以太网交换机对收到的帧采用存储转发方式进行转发。
-
② 也有一些交换机采用直通(cut-through)的交换方式。
-
❶ 接收数据帧的同时立即按数据帧的目的MAC地址决定该帧的转发接口,提高了帧的转发速度。
-
❷ 直通交换的一个缺点是不检查差错就直接将帧转发出去,有可能会转发无效帧。
-
2、以太网交换机的自学习功能
(1)假定在图3-25中的以太网交换机有4个接口,各连接一台计算机,其MAC地址分别是A,B,C和D。在一开始,以太网交换机里面的交换表是空的(图3-25(a))。
(2)A先向B发送一帧,从接口1进入到交换机。交换机收到帧后,先查找交换表,找不到目的地址为B的项目,没有查到应从哪个接口转发这个帧。
(3)交换机把这个帧的源地址A和接口1写入交换表中,并向除接口1以外的所有接口广播这个帧。
(4)C和D将丢弃这个帧,因为目的地址不对。只B才收下这个目的地址正确的帧。这也称为过滤。
(5)假定接下来B通过接口3向A发送一帧。交换机查找交换表,发现交换表中的MAC地址有A。就把目的地址为A的帧应从接口1转发给A。交换表这时新增加的项目(B,3),表明今后如有发送给B的帧,就应当从接口3转发出去。
(6)在交换表中每个项目都设有一定的有效时间,过期的项目会自动被删除。
(7)以太网交换机的这种自学习方法使得以太网交换机能够即插即用,不必人工进行配置,非常方便。
(8)为了增加网络的可靠性,在使用以太网交换机组网时,往往会增加一些冗余的链路。在这种情况下,自学习的过程就可能导致以太网帧在网络的某个环路中无限制地兜圈子。
(9)为了解决以太网帧在网络的某个环路中无限制地兜圈子问题,IEEE的802.1D标准制定了一个生成树协议STP(Spanning Tree Protocol),其要点就是不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。
3、从总线以太网到星形以太网
(1)传统的电话网是星形结构,其中心就是电话交换机。
(2)早期的以太网就采用无源的总线结构。总线以太网使用CSMA/CD协议,以半双工方式工作。
(3)随着大规模集成电路以及专用芯片的发展,采用以太网交换机的星形结构又成为以太网的首选拓扑。以太网交换机不使用共享总线,没有碰撞问题,因此不使用CSMA/CD协议,而是以全双工方式工作。
4.3 虚拟局域网VLAN(Virtual LAN)
1、虚拟局域网VLAN的定义:
(1)虚拟局域网VLAN是由一些具有某些共同的需求局域网网段构成的与物理位置无关的逻辑组。
(2)每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个VLAN。
(3)虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
(4)在虚拟局域网上的每一个站都可以收到同一个虚拟局域网上的其他成员所发出的广播。
(5)虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN标记(tag),用来指明发送该帧的计算机属于哪一个虚拟局域网。插入VLAN标记得出的帧称为802.1Q帧。
-
① VLAN标记字段的长度是4字节,插入在以太网MAC帧的源地址字段和类型字段之间。
-
② VLAN标记的前两个字节设置为0x8100(二进制1000000100000000),称为IEEE 802.1Q标记类型。
-
③ VLAN标记的后两个字节中,前3位是用户优先级字段,接着的一位是规范格式指示符CFI,最后的12位是该虚拟局域网VLAN标识符VID(VLAN ID),它唯一地标志了这个以太网帧属于哪一个VLAN。
-
④ 用于VLAN的以太网帧的首部增加了4个字节,以太网的最大帧长从1518字节变为1522字节。
五、高速以太网
5.1 100BASE-T以太网
1、快速以太网(Fast Ethernet)
(1)100BASE-T是在双绞线上传送100M bit/s基带信号的星形拓扑以太网,仍使用IEEE 802.3的CSMA/CD协议,又称为快速以太网(Fast Ethernet)。
(2)100BASE-T的适配器有很强的自适应性,能够自动识别10Mb it/s和100M bit/s。
(3)100BASE-T的快速以太网的正式标准IEEE 802.3u。
(4)快速以太网使用的MAC帧格式仍然是IEEE 802.3标准规定的帧格式。
(5)现在10/100Mbit/s以太网都使用无屏蔽双绞线布线。
(6)在100Mb it/s的以太网中采用的方法是保持最短帧长不变,对于铜缆100M bit/s以太网,一个网段的最大长度是100m,其最短帧长仍为64字节,即512比特。因此100Mbit/s以太网的争用期是5.12µs,帧间最小间隔现在是0.96µs,都是10Mbit/s以太网的1/10。
2、100Mbit/s以太网的物理层标准
(1)100BASE-TX和100BASE-FX合在一起称为100BASE-X。
(2)100BASE-T4使用4对UTP 3类线或5类线时, 3对线用于传送数据, 1对线用作碰撞检测的接收信道。
5.2 吉比特以太网
1、吉比特以太网的标准IEEE 802.3z的特点:
(1)允许在1Gbit/s下以全双工和半双工两种方式工作。
(2)使用IEEE 802.3协议规定的帧格式。
(3)在半双工方式下使用CSMA/CD协议,而在全双工方式不使用CSMA/CD协议。
(4)与10BASE-T和100BASE-T技术向后兼容。
2、吉比特以太网
(1)吉比特以太网可用作现有网络的主干网,也可在高带宽的应用场合中用来连接计算机和服务器。
(2)吉比特以太网的物理层使用两种成熟的技术:一种来自现有的以太网,另一种则是美国国家标准协会ANSI制定的光纤通道FC(Fibre Channel)。
(3)吉比特以太网工作在半双工方式时,就必须进行碰撞检测。
(4)吉比特以太网一个网段的最大长度为100m,采用了载波延伸(carriere xtension)的办法使最短帧长仍为64字节,同时将争用期增大为512字节。当发送的MAC帧长不足512字节时,就用一些特殊字符填充在帧的后面,使MAC帧的发送长度增大到512字节,这对有效载荷并无影响。接收端在收到以太网的MAC帧后,要把所填充的特殊字符删除后才向高层交付。
(4)吉比特以太网增加了一种功能称为分组突发(packet bursting):就是当很多短帧要发送时,第一个短帧要采用上面所说的载波延伸的方法进行填充。但随后的一些短帧则可一个接一个地发送,它们之间只需留有必要的帧间最小间隔即可。这样就形成一串分组的突发,直到达到1500字节或稍多一些为止。
(5)吉比特以太网工作在全双工方式时,即通信双方同时发送和接收数据,不使用载波延伸和分组突发。
3、吉比特以太网物理层标准
(1)1000BASE-X的标准是IEEE 802.3z,包括1000BASE-SX、1000BASE-LX和1000BASE-CX。
(2)1000BASE-T的标准是IEEE 802.3ab。
5.3 10吉比特以太网(10GE)和更快的以太网
1、10吉比特以太网
(1)10GE的帧格式与10Mbit/s,100M bit/s和1G bit/s以太网的帧格式完全相同,并保留了802.3标准规定的以太网最小帧长和最大帧长。
(2)10GE只工作在全双工方式,不存在争用问题,也不使用CSMA/CD协议,不再受必须进行碰撞检测的限制。
2、10GE的物理层标准
(1)10GBASE-SR、10GBASE-LR和10GBASE-ER的标准是IEEE 802.3ae。
(2)10GBASE-CX4的标准是IEEE 802.3ak。
(3)10GBASE-T的标准是IEEE 802.3an。
3、40GE/100GE以太网
(1)40吉比特以太网和100吉比特以太网40GE/100GE的标准是IEEE 802.3ba-2010和802.3bm-2015。
(2)40GE/100GE只工作在全双工的传输方式,不使用CSMA/CD协议,并且仍然保持了以太网的帧格式以及802.3标准规定的以太网最小和最大帧长。
(3)100GE在使用单模光纤传输时,仍然可以达到40km的传输距离,但需要波分复用。
(4)40GE/100GE的出现,使以太网的工作范围从局域网扩大到城域网和广域网,从而实现了端到端的以太网传输。
4、以太网的特点:根据以太网从10Mbit/s到10Gbit/s甚至到100Gbit/s的演进
(1)可扩展的(速率从10Mbit/s到100Gbit/s)。
(2)灵活的(多种媒体、全/半双工、共享/交换)。
(3)易于安装。
(4)稳健性好。
5.4 使用以太网进行宽带接入
1、以太网的宽带接入技术
(1)IEEE成立了802.3EFM工作组,专门研究高速以太网的宽带接入技术问题。
(2)以太网接入的一个重要特点是可以提供双向的宽带通信,并且可以根据用户对带宽的需求灵活地进行带宽升级。
(3)当城域网和广域网都采用吉比特以太网或10吉比特以太网时,采用以太网接入可以实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率且降低了传输的成本。
(4)如果网络运营商要利用以太网接入到互联网,就必须解决这个问题:以太网的帧格式标准中,在地址字段部分并没有用户名字段,也没有让用户键入密码来鉴别用户身份的过程。
(5)解决方法:把数据链路层的两个成功的协议结合起来,即把PPP协议中的PPP帧再封装到以太网中来传输。即PPPoE(PPP over Ethernet),意思是“在以太网上运行PPP”。现在的光纤宽带接入FTTx都要使用PPPoE的方式进行接入。
2、光纤到大楼FTTB的方案:
(1)在每个大楼的楼口安装一个光网络单元ONU(实际上就是一个以太网交换机).
(2)根据用户所申请的带宽,用5类线接到用户家中。
(3)如果大楼里上网的用户很多,那么还可以在每一个楼层再安装一个100Mbit/s的以太网交换机。
(4)各大楼的以太网交换机通过光缆汇接到光结点汇接点,光汇接点通过城域网连接到互联网的主干网。