两种信道
点对点信道和广播信道
两种链路
物理链路与数据链路
数据链路层要解决的三个基本问题
封装成帧、透明传输、差错检测
字符填充和比特填充方法
为解决透明传输问题,就需要将控制字符与一般的字符区分开来,于是产生了字符填充方式与比特填充方式两种:
- 字符填充方式:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”,在接收端的数据链路层在把数据送往网络层之前删除这个转义字符,这就是字符填充方式。
- 零比特填充方式:在发送端,只要发现有5个连续的1,则立即在其后填入 1个0,接收端对帧中的比特流进行扫描,每当发现5个连续的1,就删除其后的1个0.
CRC计算
1、在发送端,先把数据划分为组。假定待传送某组数据M,其长度为k 位,在M的后面再添加差错检测用的n位冗余码一起发送。
- 冗余码的生成(计算过程)
- 将M左移n位,右边填零,变成(k+n)位。这相当于在M后面添加n个0
- 用左移后的数除以(n+1)位除数P(模二除法),得到商Q,及n位余数R
- 将 n 位余数R 作为冗余码,拼接在数据 M 后面,发送出去
- 在接收端将收到的数据进行模二除法,若得到的余数为0,则表示收到的+ 数据没有发生错误,否则数据在传输中输错,丢弃该数据。
数据链路层可以检测什么差错,不能解决什么差错
数据链路层能够检测数据在传输过程中产生的比特差错,但是不能纠错。无法解决帧重发、帧丢失、帧乱序的问题。
PPP帧格式
- 1个字节的标志字段F=0x7E,作为帧定界符解决了封装成帧的问题
- 1个字节的地址字段A 必须为 0xFF,目前没什么作用
- 1个字节的控制字段C 常置为 0x03,目前没什么作用
PPP如何解决三个基本问题的
在数据链路层需要解决三个问题,封装成帧、透明传输、差错检测,PPP协议的解决办法如下:
- 对于封装成帧:
- 在帧格式中添加帧首与帧尾两部分,用于帧的开始与结束的定界
- 对于透明传输:
- 当 PPP 用在异步传输链路时,使用软件进行特定字符填充
- 当 PPP 用在同步传输链路时,采用硬件进行零比特填充
- 对于差错检测:
- 使用CRC循环冗余校验码进行差错检测
PPP的三个组成部分、工作过程
PPP为点对点的数据链路层协议,除了解决上述三个问题的PPT协议,还有用于建立、配置、测试、数据链路层的链路控制协议LCP,以及一套网络控制协议NCP.
- 工作过程如下:
- 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立物理链路
- 通过一系列LCP 分组(封装成PPP 帧),协商PPP链路层参数,如:是否省略不用的地址和控制字段、鉴别协议、最大帧长等,建立LCP链路
- 通过LCP 分组(封装成PPP 帧),进行用户身份鉴别
- 通过一系列NCP 分组(封装成PPP 帧),配置PPP网络层参数,如:使用何种网络层协议、是否压缩TCP 及IP 首部、给新接入的 PC 机分配临时 IP 地址,建立完整的数据链路,为网络层提供本层服务
- 此时数据链路层的配置完毕,可投入使用,当数据链路层取消链接时会进行如下操作
- 通过NCP 分组释放网络控制链路,收回原来分配出去的 IP 地址
- 通过LCP 分组释放链路控制链路
- 释放物理连接
图解可表示为:
以太网帧格式
以太网协议如何解决三个基本问题
- 封装成帧:
- 按照帧格式将数据组织为帧
- 透明传输:透明传输过程是由物理层完成,具体如下:
- 在发送帧前添加帧同步码与帧开始定界符
- 在收到数据空闲时表示帧结束
- 差错检测:
- 使用CRC循环冗余校验码检错
CSMA/CD协议作过程
- 准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道。
- 检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
- 在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
- 发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到(1)。
- 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待r倍512比特时间后,返回到步骤(2),继续检测信道。但若重传达16次仍不能成功,则停止重传而向.上报错。
- 以太网每发送完一帧,一定要把已发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要在推迟一段时间后再把这个暂时保留的帧重传一次。
以太网的帧长度、链路长度受到哪些因素的制约、如何制约
为了保证发送数据的碰撞检测及其在发送期中能够检测到是否发生了碰撞限制了帧的长度、链路长度。具体分析如下:
发送时间
传播时间
在发送中为了检测到是否发生了碰撞,所以发送时长应该大于争用期(两倍的时延),即:
在通常情况下传输速度是固定的,不参与讨论。结合上式就存在如下结论:
- 在带宽一定的条件下,帧的长度收到链路长度限制,链路长度越长,最短帧长也就越长;
- 在链路长度一定的条件下,带宽越大,最短帧长也就越长;
- 在最短帧长一定的条件下,带宽越大,链路长度越短。
信道利用率:
如何在物理层、数据链路层和逻辑层面对以太网进行扩展
- 在物理层对以太网扩展可以使用集线器、光调制解调器进行扩展;
- 在数据链路层能够使用网桥、交换机进行扩展;
- 利用以太网交换机可以很方便地实现虚拟局域网 VLAN。
以太网交换机的工作原理、自学习过程
- 转发帧
- 交换机要转发帧之前,查找交换表,看其中有无与所收帧目的地址匹配的项目
- 如没有,则向所有其他接口转发(进入的接口除外)
- 如有,则按交换表中给出的接口进行转发
- 自学习
- 交换机收到一帧后,先查找交换表,看其中有无与所收帧的源地址匹配的项目
- 如没有,就在交换表中增加一个项目(源地址、进入的接口和有效时间)
- 如有,则把原有的项目进行更新(进入的接口或有效时间)
要发送数据为1101011011, 生成多项式为P(X)=X4+X+1,求余数。若传输过程中最后一个1变成了0,接收端能否发现?
接收端能够发现。使用CRC循环冗余校验码需要经历如下步骤:计算冗余码、发送数据、接收并检验数据。详细过程如下:
- 计算冗余码:
- 由生成多项式得到除数为10011,将发送数据左移4位,并做模二除法,得到发送数据为:11010110111110
- 发送数据11010110111110
- 在传输过程中最后一个1变成了0,也就是接收端接收到数据为11010110111100
- 由生成多项式得到除数为10011,将发送数据左移4位,并做模二除法,得到发送数据为:11010110111110
- 数据校验
- 对接收到的数据进行模二除法得到余数为0010,不为0, 表示数据在传输过程中出错,
- 对接收到的数据进行模二除法得到余数为0010,不为0, 表示数据在传输过程中出错,
要发送数据为101110,生成多项式为P(X)=X3+1,求余数。
余数为011,计算过程如下:
假定1km长的CSMA/CD网络的数据率为1Gb/s, 设信号在网络上的传输速率为200000km/s,求能使用此协议的最短帧长。
在极限的条件下,发送时间等于时延,即:
计算得到最短帧长为:
或1250字节.
使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100。问这个站需等待多长时间后才能再次发送数据?如果是100Mb/s的以太网呢?
以太网,发送64字节 ,需要 .要保证在发完一帧后不可能出现冲突,就要保证 ,取争用期长度为 ,等待时间为
以太网,发送64字节 ,需要 要保证在发完一帧后不可能出现冲突,就要保证 ,取争用期长度为 ,等待时间为
有10个站连接到以太网,计算以下情况每个站能得到的带宽
-
10个站接到一个10Mb/s以太网集线器
-
10个站接到一个100Mb/s以太网集线器
-
10个站接到一个10Mb/s以太网交换机
- 集线器在中每一个站能得到的数据是总数据的1/N, 10个站接到一个10Mb/s以太网,集线器每个站点得到带宽1Mb/s;
- 10个站接到一个100Mb/s以太网集线器,集线器每个站点得到带宽
- 10Mb/s.交换机在通信时独占信道,每个站点的带宽都是10Mb/s
结合下图与表,描述一下交换的机的自学习过程。
动作 | 交换机的状态 | 向那些接口转发帧 | 说明 |
---|---|---|---|
A发送帧给D | 1-A | 2、3、4、5、6 | |
D发送帧给A | 1-A, 4-D | 1 | |
E发送帧给A | 1-A,4-D,5-E | 1 | |
A发送帧给E | 1-A,4-D,5-E | 5 |
工作过程:
- 交换机收到一帧后,先查找交换表,看其中有无与所收帧的源地址匹配的项目
- 如没有,就在交换表中增加一个项目(源地址、进入的接口和有效时间)
- 如有,则把原有的项目进行更新(进入的接口或有效时间)