-
分类:
-
点对点信道:一对一
-
广播信道:一对多,必须要有专用的共享信道协议来协调
-
3.1 数据链路层的几个共同问题
3.1.1 数据链路和帧
1. 链路与数据链路的关系
数据链路=链路+协议
目前常用的方法:网络适配器——网卡(既有软件也有硬件)来实现协议,一般的适配器都包括数据链路层和物理层
2.帧
- 定义:数据链路层的协议数据单元——帧
3.工作过程
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。
4.点到点信道的步骤:
-
封装成帧:节点A的数据链路层把网络节点交下来的IP数据报添加首部和尾部封装成帧
-
透明传输:节点A把封装好的帧发送给节点B的数据链路层
-
差错检测:若节点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层,否则丢弃这个帧
3.1.2 三个基本问题
封装成帧、透明传输和差错检测
1.封装成帧
- 最大传送单元MTU:数据部分长度上限
- 控制字符SOH(01H):放在帧的最前面,表示帧的首部开始;另一个控制字符EOT(04H):放在帧的尾部,表示帧的结束
2.透明传输
-
透明定义:表示某一个实际存在的事物看起来却好像不存在一样
-
具体方法:(字节填充、字符填充)
-
发送端:发送端的数据链路层在数据中出现控制字符"SOH"或"EOT"的前面插入一个转义字符"ESC"(1BH)
-
接收端:接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符
-
3.差错检测
-
误码率BER:在一段时间内,传输错误的比特占所有传输比特总数的比特率
-
循环冗余检验CRC:
-
目的:为了保证数据传输的可靠性
-
方式:
-
在发送端,把数据划分为组。假定每组k个比特
-
在数据M的后面添加供差错检测用的n位冗余码,然后一块发出,一共发出**(k+n)**位
-
在接收端,把接收到的数据以帧为单位进行CRC检验:把收到的每一个帧都除以同样的除数P(模2运算),然后检查得到的余数R
-
R=0,不一定没有差错,R!=0必定有差错
-
-
冗余码(帧检验序列FCS)的获取:
-
用二进制的模2运算进行2^n乘数据M的运算,即在M后面加n个0
-
得到(k+n)为被除数后,除以接收双方确定好的(n+1)位的除数
-
得出商Q和余数R,然后冗余码即为R
-
多项式P(X)为生成多项式:常用的有CRC-16、CRC-CCITT、CRC-32
-
-
注意点:
-
发送端帧检验序列FCS的生成和接收端的CRC检验都是由硬件完成的——迅速
-
数据链路层若仅仅使用循环冗余检验CRC差错检测技术,则只能做到对帧的无差错接受
-
-
-
传输差错分类:
-
比特差错:比特在传输过程中可能会产生差错
-
传输差错:帧丢失、帧重复或帧失序
- 为了解决这个问题,在CRC的基础上增加了帧编号、确认和重传机制
-
3.2 点对点协议PPP
3.2.1 PPP协议的特点
PPP协议就是用户计算机和ISP进行通信时所用的数据链路层协议
PPP协议的组成
-
一个将IP数据报封装到串行链路的方法(串行适合远距离)
-
一个用来建立、配置和测试数据链路连接的链路控制协议LCP,最重要的功能:身份验证(PAP)
-
一套网络控制协议NCP
3.2.2 PPP协议的帧格式
1.各字段的意义
协议——信息字段
序号 | 协议 | 信息字段 |
---|---|---|
1 | 0x0021 | IP数据报 |
2 | 0xC021 | PPP链路控制协议LCP的数据 |
3 | 0x8021 | 网络层的控制数据 |
2.字节填充
-
目的:为了解决信息字段中出现和标志字段一样的比特(0x7E)组合。当PPP使用异步传输时,它把转义字符为0x7D,并使用字节填充
-
方法:
-
把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)
-
若信息字段中出现一个0x7D的字节,则把0x7D转变为2字节序列(0x7D,0x5D)
-
若信息字段中出现ASCii码的控制字符(即数字小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时要将该字符的编码加以改变
-
3.零比特填充
-
使用条件:PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送给)而不是异步传输(逐个字符地传送)
-
方式:只要发现有5个连续1,则立即填入一个0
3.2.3 PPP协议的工作状态
1.初始化
-
当用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接。
-
用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接。
-
分组及其响应选择了将要使用的一些PPP参数
-
进行网络配置,网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址
-
用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。LCP释放数据链路层连接,最后释放的是物理层的连接
3.3 使用广播信道的数据链路层
3.3.1 局域网的数据链路层
1.局域网最主要的特点:
网络为一个单元所拥有,且地理范围和站点数目均有限
2.优点:
-
具有广播功能,从一个站点可很方便地可以访问全网
-
便于系统的扩展和逐渐演变,各设备的位置可灵活调整和改变
-
提高了系统的可靠性、可靠性和生存性
3.分类:(按照网路拓扑)
-
星形网——集线器
-
环形网
-
总线网
4.数据链路层的两个子层
-
逻辑链路控制LLC
-
媒体接入控制MAC
5.适配器的作用
-
计算机与外界局域网的连接是通过适配器
-
网络接口卡NIC——网卡
-
重要功能:(包含了数据链路层及物理层这两个层次的功能)
-
进行数据串行传输和并行传输的转换
-
对数据进行缓存
-
把管理该适配器的设备驱动程序安装在计算机
-
实现以太网协议
-
3.3.2 CSMA/CD协议(载波监听多点接入/碰撞检测)
1.总线方法:
- 特点:当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据,一对一,简单又可靠
- 方法:仅当数据帧中的目的地址与适配器ROM中存放的硬件地址一致时,该适配器才能接收这个数据帧。
2.以太网的两种措施
-
灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。适配器对发送的数据帧不进行编号,也不要求对方发会确认
-
曼彻斯特编码
3.CSMA/CD协议的要点
-
准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道
-
检测信道:若检测到信道忙,则继续不停地检测,一直等待信道转为空闲
-
在发送过程中仍不停地检测信道,及网络适配器要边发送边监听
-
发送成功:争用期内未检测到碰撞,就认为发送成功
-
发送失败:在争用期内检测到碰撞。立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法
-
4.相关计算
-
在局域网的分析中,常把总线上的单程端到端的传播时延记为τ
-
最迟要经过多长时间才知道自己发送的数据和其他站发送的数据有没有发生碰撞?
最多是两倍的总线端到端的传播时延(2τ),或总线的端到端往返传播时延
-
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发送碰撞
5.以太网使用截断二进制指数退避算法来确定碰撞后重传的时机
-
具体做法:发送碰撞的站在停止发送数据后,不是等待信道变为空闲后就立即再发送数据,而是退避一个随机的时间。生成了最小退避时间的站将最先获发送权。
-
具体的规定:
-
基本的退避时间为争用期2τ,具体争用时间为51.2us。也可以直接用比特作为争用期的单位,512比特——凡长度小于64字节的帧都是由于冲突而异常中止的无效帧
-
从离散的整数集合[0,1...,(2^k-1)]中随机取出一个数,记为r。重传应推后的时间就是r倍的争用期。
k=Min[重传次数,10]
-
当重传达16次仍不能成功时,则丢弃该帧,并向高层报告
-
6.强化碰撞
- 做法:当发送数据的站一旦发现发生了碰撞,除立即停止发送数据外,还要再继续发送32bit或48bit的人为干扰信号,以便让所有用户都知道现在已经发送了碰撞
3.3.3 使用集线器的星形拓扑
1.星形拓扑的组成
中心为集线器,每个站需要用两对无屏蔽双绞线(放在一根电缆内),分别用于发送和接收
2.集线器的特点:
-
使用集线器的以太网在逻辑上仍时一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议
-
一个集线器有许多端口,因此集线器很像一个多端口的转发器
-
集线器的工作在物理层,只负责简单地转发比特,不进行碰撞检测
-
采用了专门的芯片,进行自适应串音回波抵消,使得端口转发出去的较强信号不致对该端口接收到的较弱信号产生干扰
3.3.4 以太网的信道利用率
由图可知:要提高以太网的信道利用率,就需要减小τ与T0之比。所以定义了参数a=τ/T0
当a——>0时,表示只要一发送碰撞,就立即可以检测出来,并立即停止发送
理想状态下:
Smax=T0/(T0+τ)=1/(1+τ)
3.3.5 以太网的MAC层
1.MAC层的硬件地址
在局域网中,硬件地址又称物理地址或MAC地址
在标识系统中,地址就是某个系统的一个非常重要的标识符。IEEE802标准为局域网规定了一种48位的全球地址——局域网上的每一台计算机中**固化在适配器的ROM中的地址