目录
- 一、使用点对点信道的数据链路层
- 1.1数据链路和帧
- 1.1.1数据链路
- 1.1.2帧
- 1.2三个基本问题
- 1.2.1封装成帧
- 1.2.2透明传输
- 1.2.3差错检验
- 1.1数据链路和帧
- 二、点对点协议PPP
- 2.1PPP协议的特点
- 2.2PPP协议的帧格式
- 2.2.1字段
- 2.2.2字节填充
- 2.2.3零比特填充
- 2.3PPP协议的工作状态
- 三、使用广播信道的数据链路层
- 3.2CSMA/CD协议
- 3.2.1时延
- 3.2.2要点
- 3.3集线器
- 3.4以太网的信道利用率
- 3.5以太网的MAC层
- 3.5.1MAC层的硬件地址
- 3.5.2MAC帧的格式
- 3.2CSMA/CD协议
- 四、扩展以太网
- 4.1在物理层扩展以太网
- 4.2在数据链路层扩展以太网
- 4.2.1以太网交换机的特点
- 4.2.2以太网交换机的自学习功能
- 4.3虚拟局域网
本章重点
1、数据链路层的点对点信道和广播信道的特点,以及他们使用的协议(PPP协议,CSMA/CD协议)的特点
2、数据链路层的三个基本问题:封装成帧,透明传输,差错检验
3、以太网MAC层的硬件地址
4、适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合
数据链路层属于计算机网络的低层,主要使用以下两种类型信道:
- 点对点信道:一对一的点对点通信方式
- 广播信道:一对多的广播通信方式,需要专用的共享信道协议协调数据发送
数据进入路由器后要先从物理层上升到网络层,在转发表中找到下一跳的地址后,再下到物理层转发出去
数据从主机H1传送到主机H2需要在路径中的各结点的协议栈向上和向下流动多次
从数据链路层看,H1到H2的通信可看成由若干段不同的链路层通信组成,这几段不同的链路层可能采用不同的数据链路层协议
一、使用点对点信道的数据链路层
1.1数据链路和帧
1.1.1数据链路
链路
:从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。链路只是一条路径的组成部分
数据链路
:在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议控制这些数据的传输,把实现这些协议的硬件和软件加到这些链路上就构成了数据链路。常用的方法是使用网络适配器,一般的适配器包括了数据链路层和物理层这两层的功能
1.1.2帧
帧:点对点信道的数据链路层的协议数据单元
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层
互联网中,网络层协议数据单元就是IP数据报(或称数据报、分组或包)
点对点信道的数据链路层在进行通信时的主要步骤
- 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
- 结点A把封装好的帧发送给结点B的数据链路层
- 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取除IP数据报上交给网络层,否则丢弃这个帧
1.2三个基本问题
封装成帧,透明传输,差错检验
1.2.1封装成帧
定义:在一段数据的前后分别添加首部和尾部,构成一个帧
接收端可根据首部和尾部的标记判断帧的开始和结束
所有在因特网上传送的数据都以分组
为传送单位
网络层的IP数据报传送到数据链路层成为帧的数据部分,而帧长等于数据部分的长度加上帧首部和帧尾部的长度
为提高帧的传输效率,帧的数据部分长度应尽可能大于首部和尾部的长度,但是每一种链路层协议都规定了帧的数据部分的长度上限——最大传送单元MTU
当数据是由可打印的ASCII码组成的文本文件时,可使用特殊的帧定界符,如帧开始符SOH、帧结束符EOT
1.2.2透明传输
定义:无论什么样的比特组合的数据,都能按照原样没有差错地通过数据链路层
解决方法:字节填充
发送端的数据链路层在数据中出现控制字符"SOH"或"EOT"的前面插入转义字符"ESC",接收端的数据链路层在将数据送到网络层之前删除这个转义字符
1.2.3差错检验
比特差错:比特在传输过程中1可能变成0,0可能变成1
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率,它与信噪比有很大关系,并随着信噪比的增大而减小
目前再数据链路层广泛使用循环冗余检验CRC检错技术 ,但它只能做到对帧的无差错接受,即“凡是接收端数据链路层接受的帧均无差错”,但是出现帧丢失、帧重复、帧失序的问题时束手无措
“无比特差错”和“无传输差错”并不是同样的概念。数据链路层使用CRC检验能够实现无比特差错的传输,但这不是可靠传输
通信质量良好的有线传输链路,若传输数据时出现差错且需要进行改正,由上层协议完成
通信质量较差的有线传输链路,数据链路层通过确认和重传机制向上提供可靠传输服务
二、点对点协议PPP
2.1PPP协议的特点
PPP协议是用户计算机和ISP进行通信时使用的数据链路层协议
组成
- 一个将IP数据报封装到串行链路的方法
- 一个用来建立、配置和测试数据链路连接的链路控制协议LCP
- 一套网络控制协议NCP
2.2PPP协议的帧格式
2.2.1字段
首部的第一个字段和尾部的第二个字段是标志字段F,表示帧的开始或结束,此标志字段是PPP帧的定界符。连续两帧之间只需一个标志字段,若有连续两个标志字段表示这是一个空帧
首部的地址字段A和控制字段C不携带PPP帧的信息
首部的第四个字段是协议字段
尾部的第一个字段是使用CRC的帧检验序列FCS
2.2.2字节填充
条件:PPP使用异步传输(逐个字符传送)
填充方法
- 把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)
- 若信息字段中出现一个0x7D字节,转变成2字节序列(0x7D,0x5D)
- 若信息字段中出现ASCII码的控制字符,则在其前面加入一个0x7D字节,同时改变字符编码
2.2.3零比特填充
条件:PPP使用同步传输(一连串比特连续传送)
具体做法
- 在发送端扫描整个信息字段,只要有5个连续1,则立即填入一个0(确保信息字段中不会出现6个连续1)
- 接收端收到帧后,找到标志字段确定帧边界,用硬件扫描比特流,每发现5个连续1,就把后面的0删除,还原信息
2.3PPP协议的工作状态
PPP链路的起止和终止状态永远是链路静止,这时用户个人电脑和ISP的路由器之间不存在物理层的连接
PPP协议已不是纯粹的数据链路层协议,它还包含了物理层和网络层的内容
三、使用广播信道的数据链路层
局域网使用的是广播信道
3.1局域网的数据链路层
局域网最主要特点:网络为一个单位所拥有,地理位置和站点数目均有限
双绞线已成为局域网中的主流传输媒体,但数据率很高时往往使用光纤作为传输媒体
局域网工作的层次跨越了数据链路层和物理层
共享信道的两种技术实现:
- 静态划分信道,包括频分复用、时分复用、波分复用、码分复用等,不适合于局域网使用
- 动态媒体接入控制,特点是信道并非在用户通信时固定分配给用户,分以下两类
- 随机接入:所有用户可随机发送信息,但必须有解决碰撞的协议
- 受控接入:用户发送信息必须服从一定的控制,典型代表是轮询
适配器的作用
计算机与外界局域网的连接通过通信适配器进行
通信适配器上装有处理器和存储器
适配器和局域网之间的通信通过电缆或双绞线以串行传输方式进行,和计算机之间的通信通过计算机主板上的I/O总线以并行传输方式进行
适配器功能
- 进行数据串行传输和并行传输的转换
- 对数据进行缓存
- 在计算机的操作系统安装设备驱动程序
- 实现以太网协议
适配器实现的功能包含了数据链路层及物理层的功能
计算机的硬件地址在适配器的ROM中,软件地址——IP地址在计算机的存储器中
- 适配器接受和发送各种帧时不使用计算机的CPU,CPU可以处理其他任务
- 当适配器收到有差错的帧时就把它直接丢弃而不必通知计算机
- 当适配器收到正确的帧时通过中断通知计算机,并交付协议栈中的网络层
- 当计算机要发送IP数据报时,由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网
3.2CSMA/CD协议
局域网上的计算机常称“主机”、“工作站”、“站点”、“站”
以太网采取两种措施简便通信
1、采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据
适配器对发送的数据帧不进行编号,不要求对方发回确认
以太网提供的服务是尽最大努力的交付,即不可靠的交付,对有差错的帧是否需要重传由高层决定
若丢失的数据重新传递给以太网进行重传,以太网并不知道它是重传帧,而是当作信道数据帧来发送
2、以太网发送的数据都使用曼彻斯特编码的信号
曼彻斯特编码保证了在每一个码元的正中间出现一次电压的转换,而接收端利用这种转换把位同步信号提取出来
3.2.1时延
电磁波在1km电缆的传播时间约5微秒
记单程端到端传播时延为 t,则H1主机发送数据后,最迟经过最多两倍的总线端到端的传播时延才能知道自己发送的数据是否发生碰撞
以太网的端到端往返时间2t称为争用期,一个站发送完数据后,经过争用期还没有检测到碰撞才能肯定此次发送不会发生碰撞
3.2.2要点
适配器每发送一个新的帧就要执行一次CSMA/CD算法
凡长度小于64字节的帧都是由于冲突而异常终止的无效帧,应当立即丢弃
强化碰撞
当发送数据的站一旦发现产生碰撞,除了立即停止发送数据外,还要继续发送32比特或48比特的人为干扰信号,以便让所有用户知道发生碰撞
发生碰撞使A浪费时间Tb+Tj,可整个信道被占用的时间还要增加一个单程端到端的传播时延 t,因此总线被占用时间为Tb+Tj+t
以太网规定了帧间最小间隔为96比特时间,目的是使刚刚收到数据帧的站的接收缓存来得及清理,做好接受下一帧的准备,因此以太网不需要帧结束定界符,也不需要字符填充保证透明传输
CSMA/CD协议具体执行
- 准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部组成以太网帧,放入适配器缓存。发送之前必须先检测信道
- 检测信道:若检测到信道忙,则应不停检测,直到信道空闲。若检测到信道空闲,并在96比特时间内信道保持空闲,则发送该帧
- 在发送过程中仍要不停检测信道,这里有两种可能:
1)发送成功:争用期内一直未检测到碰撞。发送完毕后直接回到步骤 1
2)发送失败:争用期内检测到碰撞。立即停止发送数据,按规定发送人为干扰信号;适配器执行指数退避算法,等待 r 倍512比特时间后返回步骤2,继续检测信道。若重传16次仍失败则停止重传而向上报错
以太网每发送完一帧,一定要把已发送的帧暂时保存。若争用期内检测到碰撞,就要在推迟一段时间后再把这个暂时保留的帧重传
3.3集线器
使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的仍是CSMA/CD协议
集线器有许多接口,像一个多接口的转发器,但不能缓存帧
集线器工作在物理层,它的每个接口仅仅简单地转发比特,不进行碰撞检测
3.4以太网的信道利用率
以太网中定义了参数 a,是以太网单程端到端时延与帧的发送时间To之比,a = t / To
参数 a越大,争用期所占比例越大,信道利用率越低
数据率一定时,以太网的连线长度受到限制,同时以太网的帧长不能太短
3.5以太网的MAC层
3.5.1MAC层的硬件地址
局域网中,硬件地址又称物理地址或MAC地址
名字指出我们要寻找的资源,地址指出那个资源在何处,路由告诉我们如何到达该处
局域网上的某台主机的“地址”无法告诉我们这台主机在哪里,严格的讲,局域网的“地址”应当是每个站的“名字”或标识符
当路由器通过适配器连接局域网时,适配器的硬件地址就用来标志路由器的某个接口。如果路由器同时连接到两个网络,它就需要两个适配器的两个硬件地址
发往某个站的帧包括三种
- 单播帧(一对一):收到帧的MAC地址与本站的硬件地址相同
- 多播帧(一对多):发送给本局域网所有站点的帧
- 广播帧(一对全体):发送给本局域网部分站点的帧
所有适配器都能识别单播和广播地址,只有目的地址才能使用广播地址和多播地址
3.5.2MAC帧的格式
类型字段用来标志上一层使用了什么协议,以便把收到的MAC帧的数据上交给上一层的该协议
传输媒体实际传送的比MAC帧多8个字节
- 前7个字节是前同步码,使接收端的适配器在接受MAC帧时能迅速调整时钟频率至和发送端时钟同步,即“实现位同步”
- 后1个字节是帧开始定界符
当数据字段的长度小于46字节时,MAC子层就会数据字段的后面加入一个整数字节的填充字段
以太网不负责重传丢弃的帧
四、扩展以太网
4.1在物理层扩展以太网
使用集线器扩展
使用多个集线器可连成更大的、多级星形结构的以太网
例如,一个学院的三个系各有一个 10BASE-T 以太网,可通过一个主干集线器把各系的以太网连接起来,成为一个更大的以太网
4.2在数据链路层扩展以太网
网桥对收到的帧根据其MAC帧的目的地址进行转发和过滤
4.2.1以太网交换机的特点
以太网交换机实质上是一个多接口的网桥,每个接口都直接与一个单台主机或另一个以太网交换机相连,且一般工作在全双工方式
以太网交换机具有并行性,可同时连接多对接口,使多对主机能同时通信。相互通信的主机都是独占传输媒体,无碰撞的传输数据
以太网交换机的接口有存储器,能在输出端口繁忙时缓存收到的帧
以太网交换机是即插即用设备,内部的帧交换表通过自学习算法自动地逐渐建立起来
有的以太网交换机采用直通交换方式,即接受帧的同时立即按数据帧的MAC地址决定转发接口,缺点是不检查差错就直接转发帧,有可能把一些无效帧转发给其他站
- 对于普通 10 Mbit/s 的共享式以太网,若共有 N 个用户,则每个用户占有的平均带宽只有总带宽 (10 Mbit/s)的 N 分之一
- 使用以太网交换机时,虽然在每个接口到主机的带宽还是 10 Mbit/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有 N 个接口的交换机的总容量为 N * 10 Mbit/s
4.2.2以太网交换机的自学习功能
- A 先向 B 发送一帧,从接口 1 进入到交换机
- 交换机收到帧后,先查找交换表,没有查到应从哪个接口转发这个帧
- 交换机把这个帧的源地址 A 和接口 1 写入交换表中,并向除接口1以外的所有的接口广播这个帧
- C 和 D 将丢弃这个帧,因为目的地址不对。只 B 才收下这个目的地址正确的帧。这也称为过滤
- 从新写入交换表的项目 (A, 1) 可以看出,以后不管从哪一个接口收到帧,只要其目的地址是A,就应当把收到的帧从接口1转发出去B 通过接口 3 向 A 发送一帧
- 交换机查找交换表,发现交换表中的 MAC 地址有 A。表明要发送给A的帧(即目的地址为 A 的帧)应从接口1转发。于是就把这个帧传送到接口 1 转发给 A。显然,现在已经没有必要再广播收到的帧
- 交换表这时新增加的项目 (B, 3),表明今后如有发送给 B 的帧,就应当从接口 3 转发出去
- 经过一段时间后,只要主机 C和 D也向其他主机发送帧,以太网交换机中的交换表就会把转发到 C或 D应当经过的接口号(2 或 4)写入到交换表中
考虑到可能有时要在交换机的接口更换主机,或者主机要更换其网络适配器,这就需要更改交换表中的项目。为此,在交换表中每个项目都设有一定的有效时间。过期的项目就自动被删除
4.3虚拟局域网
虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组
当B1向工作组内成员发送数据时,计算机B2和B3将会收到广播信息,但计算机A1,A2和C1都不会收到
这样,虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息(即“广播风暴”)而引起性能恶化
虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN 标记,用来指明发送该帧的计算机属于哪一个虚拟局域网