数据链路层基本功能:负责通过一条链路从一个结点,向物理链路直接相连的相邻结点传送帧(点对点和广播信道)。物理层解决了相邻结点透明传输的问题,但是传输错误问题,谁接收的问题,传输结束问题还有待解决。
一、基本术语
- 链路:结点间的物理通道。是一条无源的点到点的物理线路段(双绞线、光纤等),中间没有任何其它交换结点。一条链路只是一条通路的一个组成部分。
- 数据链路:是结点间的逻辑通道。除了物理线路以外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路:数据链路=链路+协议
- 结点:主机、路由器
- 协议:为进行网络中的数据交换而建立的规则(数据的格式及有关的同步问题),标准或约定
- 链路中通信双方的信道使用形式不同,会相应有不同的控制协议
- 帧:链路层协议数据单元,封装网络层的数据报
二、数据链路层
1.概述
- A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
- A把封装好的帧发送给B的数据链路层
- B的数据链路层收到的帧无差错,从帧中取出IP数据报交给网络层,否则丢弃这个帧
- 数据链路层不必考虑物理层如何实现比特传输的细节,甚至还可以更简单的想象好像是沿着两个数据链路层之间的水平方向把帧直接发送给对方
2.三个基本功能
功能概述:
- 在物理层的基础上向网络层提供服务
- 加强物理层传送原始比特的功能
- 对网络层表现为一条无差错的链路
- 将可能出错的物理连接变为逻辑上无差错的数据链路
封装成帧
把若干比特打包成帧,便于检错和判断帧开始与帧结束
- 封装成帧:就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。首部和尾部的一个重要作用就是进行帧定界(确定帧的界限)。
MTU(最大传送单元):规定了所能传送的帧的数据部分长度上限 - 封装成帧的方法:当数据是由可打印的ASCLL码组成的文本文件时,帧定界可以使用特殊的帧定界符。控制字符SOH放在一帧的最前面,表示帧的首部开始,控制字符EOT放在一帧的末尾,表示帧的结束。
但是,如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误的“找到帧的边界”,导致错误。这个时候,就需要用到透明传输。 成帧的标识可作为数据传输
透明传输
- 透明传输:在数据链路层透明传送数据表示无论发送什么样的比特组合的数据,这些数据都能按照原样没有差错的通过这个数据链路层。为了达成这个目的,可以采用字符填充的方法。
- 字符填充
- 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”
- 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符
- 如果转义字符也出现在数据当中,那么应该在转义字符前面插入一个转义字符“ESC”,当接收端连续收到两个连续的两个转义字符时,就删除其中前面的一个。
差错检测
检查帧的传输是否有比特错误
- 差错检测:在传输过程中可能会产生比特差错
- 1可能会变成0,0也可能会变成1
- 在一段时间内,传输错误的比特所占传输比特总数的比率称为误码率(BER)。误码率与信噪比有很大的关系。
- 为了保证数据传输的可靠性,在传输数据时,必须采用各种差错检验措施,如循环冗余校验。
- 循环冗余检验:在发送端,先把数据划分为组,假定每组k个比特。假设待传送的一组数据M=101001(现在k=6)。我们在M的后面再添加供差错检测用的n位冗余码(共k+n位)一起发送。
- n位冗余码的计算:
- 用二进制的模2运算进行2n乘M的运算,这相当于在M后面添加n个0
- 得到(k+n)位的数除以事先选好的长度为(n+1)位的除数P,得出商是Q而余数是R,余数R比除数P少一位,即R是n位
- 将余数R作为冗余码拼接在数据M后发送出去
这种为了检错而添加的冗余码常称为帧检验序列(FCS),FCS可以用CRC方法得出,但CRC方法并不是得到FCS的唯一方法 - 多项式表示CRC方法
- 注意:仅用CRC差错检测技术只能做到无差错接受
- 无差错接受:凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错;凡是接收端数据链路层接受的帧都没有传输差错(有差错的帧就丢弃不接受)
- 可靠传输:要做到可靠传输还要加上序号,确认和重传机制
三、点对点协议(PPP协议)
点对点链路,使用最广泛的就是PPP协议
PPP协议基本要求
- 简单:数据链路层的帧不需要纠错,不需要序号,也不需要流量控制;简单协议在实现时不容易出错,提高了不同厂商对协议的不同实现的互操作性;不支持多点接入,不支持半双工式或单工通信;PPP非常简单,每收到一个帧,进行CRC检验,如果CRC检验正确,就收下这个帧,反之,就丢弃这个帧,其它什么也不做
- 封装成帧:必须规定特殊的字符作为帧定界符
- 透明性:必须保证数据传输的透明性
- 多种网络层协议:支持多种网络层协议(IP/IPX)
- 多种类型链路:能够在多种类型的链路上运行
- 差错检测:对收到的帧进行检测,并丢弃有差错的帧
- 检测连接状态:能够及时自动检测出链路是否处于正常工作状态
- 最大传送单元:必须对每一种类型的点对点链路设置最大传送单元(MUT)的标准默认值,促进各种实现之间的互操作性
- 网络层地址协商:必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址
- 数据压缩协商 必须提供一种方法来协商使用数据压缩算法
PPP协议的组成
- 一种将IP数据报封装到串行链路(同步串行/异步串行)的方法
- **链路控制协议(LCP)**用来建立、配置和测试链路,其最重要的功能之一是身份验证(PAP,CHAP)
- **网络控制协议(NCP)**支持不同的网络层协议(IP、OSI的网络层、AppleTalk等)
PPP帧格式(语法、语义)
ppp是面向字节的,所有的PPP帧的长度都是整数字节 1字节=8位 ,,,,0x打头代表以16进制数表示 ,,,,地址字段通常不起作用
透明传输问题
- PPP同步传输
**同步传输(零比特填充法):**面向比特的传输,同步传输的单位是帧,同步传输在数据中提取同步信息(帧定界比特组合);同步传输收发双时钟统一、字符间传输同步无间隔 在发送端,只要发现有5个连续1,则立即填入一个0 接收端对帧中的比特流进行扫描,每当发现5个连续1时,就把这5个连续1后的一个0删除 - PPP异步传输(字节填充法):面向字节的传输,异步传输的单位是字符,异步传输通过字符起止的开始和停止码进行同步,线路空闲时携带着代表比特1的信号,传输开始位使信号变为0,数据传输结束,停止为使信号重新变为1;异步传输效率低,高速链路开销大
可靠传输问题
- PPPxi在数据链路层出现差错的概率不大时,使用比较简单的PPP协议较为合理
- 在因特网环境下,PPP协议的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能保证网络层的传输也是可靠的
- 帧检验序列(FCS)字段可保证无差错接收
PPP协议的工作状态(同步)
ISP(因特网服务供应商)
- 当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
- PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)这些分组及其响应选择一些PPP参数,并进行网络层配置,NCP给新接入的PC机分配一个临时的IP地址,使PC机成为因特网上的一个主机
- 通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接
可见,PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容
四、广播信道
广播信道使用一对多的广播通信方式,通信过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送,控制协议相对复杂
局域网
- 局域网的优点
- 具有广播功能:从一个站点可以很方便的访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源
- 便于系统的扩展和逐渐的演变,各设备的位置可以灵活调整和改变
- 提高了系统的可靠性、可用性和生存性
- 局域网的特点
- 网络为一个单位所拥有
- 地理范围和站点数目均有限
- 局域网拓扑结构
- 媒体共享技术
若多个媒体同时在共享的广播信道上发送数据,则会彼此干扰,导致发送失败
- 静态划分信道(代价高,不适合局域网):频分,时分,波分,码分复用
- 动态媒体接入控制(多点接入):随机接入(以太网);受控接入(分散控制的令牌环局域网和集中控制的多点线路探询)
- 通信适配器(也称作网络接口卡NIC或网卡):可以进行串行/并行转换;对数据进行缓存;在计算机的操作系统中安装设备驱动程序;实现以太网协议;实现了数据链路和物理层的功能
以太网
早期的以太网将许多计算机都连接到一根总线上,因此不必建立连接就可以发送数据。为了实现一对一通信,将接收站的硬件地址写入帧首部中的目的地址字段中,仅当数据帧中目的地址与适配器的硬件地址一致时,才能接收这个数据帧。缺点:若多个设备在共享的信道上同时发送数据,则会造成彼此干扰,导致发送失败
以太网采用广播方式发送
- 总线上的每一个工作的计算机都能检测到B发送的数据信号:
- 由于只有计算机D的地址与数据帧首部写入的地址一致,因此只有D才接受这个数据
- 其他所有的计算机(A/C/E)都检测到不是发送给他们的数据帧,因此就丢弃这个数据帧而不能够接收下来
- 在具有广播特性的总线上实现了一对一通信
为了实现一对一通信,将接收站的硬件地址写入帧首部中的目的地址字段中:仅当数据帧中的目的地址与适配器的硬件地址一致时,才能接受这个数据帧
以太网采取了两种措施
- 以太网不必先连接就可以直接发送数据:对发送的数据帧不进行编号,也不要求对方发回确认;以太网提供的服务是尽最大努力的交付,即不可靠的交付(当目的站收到有差错的数据帧时就丢弃此帧,其它什么也不做。差错的纠正由高层来决定;如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当做一个新的数据帧来发送)
- 以太网发送的数据都使用曼彻斯特编码:缺点是每秒传送的码元数加倍了
CSMA/CD协议(载波监听多点接入/碰撞检测协议)
- 载波监听(CS):是指每一个站在发送数据之前要先检测(使用电子技术检测总线上的信号)一下信道上是否有其它计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。在发送数据中也要不断检测
- 多点接入(MA):表示许多计算机以多点接入的方式连接在一根总线上
- 碰撞检测(CD):计算机边发送数据边检测信道上的信号电压大小,判断发送的数据是否与其它站发送的数据产生了冲突。每一个正在发送数据的站,一旦发现总线上出现了碰撞,适配器就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送
- 为什么要进行碰撞检测:电磁波在总线上的传播速率是有限的(200m/μs),当某个站监听到总线是空闲时,也可能总线并非真正是空闲的
- 争用期:最早发送数据帧的站,在发送数据帧后至多经过时间2τ就可知道发送的数据帧是否遭受了碰撞;以太网的端到端往返时延2τ称为争用期,或碰撞窗口;经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞(具体的争用时间51.2μs)
- 二进制指数类型退避算法:发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据
- 基本退避时间取为争用期2τ
- 从整数集合 [0,1,…(2k-1)] 中随机的取出一个数,记为r。重传所需要的时延就是r倍的基本退避时间
- 参数k按照下面的公式计算k=Min[重传次数,10]
- 当k≤10时,参数k等于重传次数
- 当重传达16次仍不成功时即丢弃该帧,并向高层报告
- 加上中继器等处理时延,取争用期51.2μs,10Mbit/s以太网,在争用期内可发送512bit,即64字节。以太网在发送数据时,若前64字节没有发生冲突,则后续的数据就不会发生冲突,因此以太网最小有效帧长为64字节,长度小于64字节的都是由于冲突而异常终止的无效帧。
- 发生碰撞后,发送端需强化碰撞:立即停止发送数据,再继续发送若干it额的认为干扰信号,让所有用户都知道现在已经发生了碰撞;B也能检测到冲突并立即停止发送数据帧,接着就发送干扰信号
使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双相交替通信(半双工通信);每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性;这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率
- 信道利用率
- 假定发送帧所需时间T0,且检测到碰撞后不发送干扰信号,帧长为L(bit),数据发送速率为C(bit/s),则T0=L/C(s)
- 定义α=τ/T0,为提高利用率,以太网的参数α的值应当尽可能小些,所以以太网的长度受到限制(τ尽可能小),以太网的帧长不能太短(T0的值尽可能大)
- 只有参数α远小于1才能得到尽可能高的极限信道利用率
以太网的MAC层
在局域网中,硬件地址又称为物理地址或MAC地址,如果连接在局域网上的主机或路由器安装有多个适配器,那么这样的主机或路由器就有多个“地址”,这种48位地址被固化在适配器的ROM,它也可以被看做是是某种接口的标识符 以太网MAC地址共6个字节(48bit):前三个字节由IEEE注册管理机构RA负责向厂家分配MAC地址的前三个字节,称为组织唯一标识符;后三个字节,由厂家自己指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址
- MAC帧的格式
- 无效的帧
- 帧的长度不是整个字节
- 用收到的帧检验序列FCS查出有错
- 数据字段的长度不在46~1500字节之间
- 有效的MAC帧长度为64~1518字节之间
- 对于检查出的无效MAC就简单的丢弃,以太网不负责重传丢弃的帧,可靠传输由高层负责
- 帧间间隔
- 帧间最小间隔为9.6μs,相当于96bit的发送时间。一个站在检测到总线开始空闲后,还要等待9。6μs才能再次发送数据
扩展以太网
- 在物理层上扩展以太网
很容易使主机和几公里以外的集线器相连 碰撞域:物理层的概念,指任何一台设备发送数据,其他设备再次发送数据会与之产生冲突,这些设备的集合,称之为碰撞域或冲突域 优点:是原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信;扩大了以太网覆盖式地理范围 缺点:碰撞域增大了,但总的吞吐量没有升高;如果不同的碰撞域使用不同的数据率,那么就不能用集线器将他们互连起来 - 在数据链路层扩展以太网
网桥工作在数据链路层;他根据MAC帧的目的地址对收到的帧进行转发和过滤;隔离碰撞域
- 交换机就是多端口的网桥,每个j接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工翻书;以太网交换机具有并行性,相互通信的主机都独占传输媒体,无碰撞的传输数据,每一个端口和连接到端口的主机构成了一个碰撞域
- 网桥收到一个帧时,不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定改将帧转发到哪一个接口,或把它丢弃
优点:用户独享带宽,增加了容量
- 以太网交换机的交换方式
- 存储转发方式:把整个数据先缓存,再进行处理
- 直通方式:接收数据帧是同时立即按数据帧的目的MAC地址决定该帧的转发接口(但是不检查直接转发可能会转发无效帧)
- 以太网自学习
- 交换机收到一帧后先进行学习。查找交换表中与收到帧的源地址有无相匹配的项目:
- 如没有,就在交换表中增加一个项目(源地址、进入的接口和有效时间)
- 如有,则把原有的项目进行更新兵转发帧,同时查找交换表中与收到帧的目的地址有无相配的项目:
- 如没有,则向所有其他接口(进入的接口除外)转发
- 如有,则按交换表中给出的接口进行转发
- 若交换表中给出的接口就是该帧进入交换机的接口,则应丢弃这个帧(因为这时不需要交换机进行转发)
|