赞
踩
实际上的数据传输需要在每个结点中通过特定的各层,但是在单独考虑数据链路层的内容时,我们只需要将数据链路层想象成水平传输的即可,数据链路层完成它自己部分的功能。数据链路层将从网络层下来的数据协议单元封装成帧,实现自己的功能。
数据链路层可以为网络层提供的服务有:
①无确认的无连接服务②有确认的无连接服务③有确认的面向连接的服务
数据链路层是解决相邻两个结点(主机、交换机、路由器)之间的数据通信问题。
数据链路就是相邻两个结点之间的物理线路(链路)加上实现通信协议的硬件和软件构成的逻辑链路。
理解:以以太网MAC帧为例,数据链路层为上层交付的协议数据单元封装成帧(添加帧头和帧尾),帧尾包含检错码FCS,当接收方可以通过FCS判断接受到的帧是否误码(差错检测)。
一、封装成帧
将网络层交付的协议数据单元,添加帧头和帧尾。数据链路层以帧为单元传输数据。
一般在帧头和帧尾添加定界符,表示帧的开始和结束。
二、差错检测
发送方会用待发送的数据和检错算法计算出检错码,放入帧尾。
接收方根据帧尾中的检错码就可以检测帧中是否有误码。
三、可靠传输
如果数据链路层提供的是不可靠服务,那么检测出差错的帧直接被丢弃。
如果提供的是可靠服务,检测出差错的帧丢弃后还能再重新收到这个帧的正确副本。
①帧头和帧尾的作用之一是帧定界。
②透明传输
也即是数据链路层可以传输任何数据内容,它自己的帧头帧尾不会对数据内容产生限制。
(1)面向字节的物理链路:
字节填充法:添加转义字符。
(2)面向比特的物理链路:
零比特填充法:五1 ,一0。
(HDLC协议)
①CRC循环冗余校验
这里的除法并不是除法,这里是进行异或运算,如果位数够就商上1,不够就商上0。
检错码只能检测错误,没有纠错功能。(计算机网络很少纠错)
可靠传输并不是仅数据链路层中有的,而且也并非需要数据链路层实现。
①停等协议
信道利用率是指,传输并确认整个需要传输的数据,真正发送数据的时间与整个过程的比值。
②回退N帧协议
发送窗口1<Wt<=2^n-1
接收窗口Wr=1
(1)累计确认
(2)超时重传:若发送方已经发送的某个帧超时,那么发送窗口内已经发送的帧要全部重传。
(3)接收方只接收窗口内的帧,对于窗口外的帧,没接收一个就发送一个最近的ACK
(4)发送方接收到已经确认的ACK,会根据具体实现来选择是否提前进行“超时重传”,即提前将已经发送的帧全部重传。
(5)移动窗口并不一定立马进行传帧。
③选择重传协议SR
发送窗口1<Wt<=2^(n-1)
接收窗口1<Wr1<=Wt
选择重传是对回退N帧协议的改进。
(1)超时重传,只重传超时的即可。<回退N帧全都重传是因为接收方只需要一个,这一个是谁呢,很难评,所以干脆全都发了算了,但是选择重传可以乱序收,只需要传超时的这个就行了>
(2)乱序接收,每接收一个就发送一个
【SR只需要管住自己的那一个就行了,我接受了我就ACK,我超时了我就重传这个。
但是回退N帧不一样,接收方只要一个,不然就不行,那么发送方一次重传全都得传。】
【窗口大小的限制,都是看是否会出现问题,比如SR中的发送窗口必须是小于等于编号数的一半,因为超过一半的话,要是这一半接收方已经接受,准备接受下次的,下次的必然会包含之前已有的编号,而此时ACK失效了,那么就超时重传,问题出现了,之前已有的编号这次又有了。】
共享信道的问题。
CSMA/CD
<半双工,共享广播信道(全双工就会碰撞所以是半双工,点对点没有这样的碰撞问题,所以是广播)>
载波监听多址接入/碰撞检测
载波监听:先听后说,先检测总线上是否有信号传输,如果有的话就不发送数据,一直等到信道空闲
多址接入:共享广播信道
碰撞检测:边听边说,在发送数据的过程中同时检测信道上是否有冲突信号,如果有则停止发送,退避一段时间后再发送。
实际上我们在发送完数据之后我们发送的数据可能会碰撞!我们通过争用期最短帧长来解决,在一个争用期时间内是可以检测出信道上是否有冲突的,如果我们所有节点的帧发送时间为一个争用期那么如果在这个时间内还没有检测到冲突我们就可以安心发送,检测到就能及时止损!
按ppt说的,他说的是如果在争用期内 没有检测到,那么一定不会发生碰撞,可以想象即使是当两个结点一起发送的时候,开始的数据会放入信道上传输,单程只需要τ的时间,那么这个过程中发生碰撞,并且2τ的时候返回来,这个时候我还在发送最后的数据!这样就在发送的时候检测到了碰撞,因此最短帧长使得只有发送的时候会有检测到碰撞。
为什么每次退避要0或满2τ呢? 因为如果没有2τ的话,很可能又碰撞,比如小于2τ的话,我发送的时间又是最短2τ,另外一个人等了没有2τ又在发,那么又会碰撞检测到,满2τ可以使得载波监听就不发了,不需要退了又退!
①争用期
②最小帧长
对于空闲总线上第一个发送数据的站点A,它发送数据到它的数据到达所有其他结点的时间是τ,在这个之间之后由于载波监听,其他结点都不会发送数据,直到A发送完成,发生碰撞的时间应该是在A到达其他结点之前也就是τ的之间之内,其他结点就发送数据,这样的话,就会发生碰撞,我来看一下这样的情况,讨论一下最短帧长的作用:
设在x时刻,其他站点发送数据,0≤x<τ,那么此时A站点的数据还在半路,与它发送的数据发生碰撞,最长最长需要τ的时间A检测到这个碰撞,那么x+τ<2τ,也就是A还没有发送完毕这个数据,所以碰撞检测成功! A退避一段时间。
对于那个发送数据的站点,它在0<τ-x≤τ的时间检测到碰撞,它也没有发送完! 退避一段时间。
至此所有情况都已经被讨论,我们发现,任何一个结点发送的数据碰撞的时候一定是它在发送的时候。
③截断二进制指数退避算法
④信道利用率
注意,交换机是数据链路层的设备,它有一个转发表,让它知道每一个接口对应都有哪些MAC地址,所以若两个主机在两个不同的交换机上发送信息的时候,他们只需要把目的MAC和源MAC记为对方即可,交换机会帮它找到接口传送。
MAC地址是以太网的MAC子层使用的地址。
使用点对点信道的数据链路层不需要地址,但是使用共享广播信道的数据链路层需要地址区分。
每一个网络适配器都有一个MAC地址,MAC地址又称物理地址。
MAC地址48bit,6个字节,前三个字节由IEEE注册管理机构分配,后三个字节由厂商字节分配(即每个厂商的前三个字节是固定的)
MAC地址分为:单播地址、多播地址、广播地址
单播即数据帧只有一个目的地,其他结点收到该帧会丢弃该帧
多播即数据帧有多个目的地,多播地址会在多个结点的多播组内存在,这样有该多播地址的结点都会接收该帧,没有的则会丢弃。
广播即所有结点都会接收该帧,广播地址为FF-FF-FF-FF-FF-FF。
<第一个字节是个奇数则为多播,比如广播地址FF 就是个奇数!~>
注意:交换机和网桥是数据链路层的部分,它们没有IP地址,路由器是网络层的部分,它有IP地址。
在考虑问题时,只需要分别按照网络层考虑即考虑IP地址,按照数据链路层考虑即MAC地址,不要一起考虑。
IP地址是区分不同网络的,路由器的每一个端口都会有一个不同的IP地址,如果他们的IP地址网络编号不同,那么就对应不同的网络,在之前的MAC地址我们说过广播帧,那么路由器就可以截断该网络中的广播帧,使其不影响其他网络。
那为什么不只需要IP地址就够了呢?IP地址既有网络编号 又有主机编号呀?
注意IP地址是可变的,就比如你这台电脑可能在北京上网,可能在湖南上网,你的IP是不一样的,而且IP地址可以共用,比如你家里的网络共享,但是对于你而言你自己是确定的,不管你在哪你这台电脑都是唯一的,所以需要MAC地址区分IP地址下,哪个才是我要找的。
在整个传播的过程中,数据帧的源IP地址和目的IP地址是不变的,但是MAC地址随着每个网络链路中的起点和终点都不一样。并且每一个链路的起点只知道终点的IP地址,但是它可以通过IP地址得到MAC地址!
ARP协议:
我们说IP地址可以找到MAC地址,两个结点之间只有IP地址是知道的,MAC地址是不知道的,如何找到呢?
实际上是用广播帧找到,写入IP地址,然后用广播帧请求对应IP地址下的MAC地址是哪个,由于是广播帧,所以只能在广播域下使用,但是路由器会让ARP协议继续下去。所以可以跨网络寻找MAC地址。
集线器相当于一根导线(多了一些功能),交换机不是。
集线器扩展的以太网,他们仍然属于同一个冲突域,但是交换机的不同接口是不同的冲突域,而路由器的不同接口是不同广播域,也就是说交换机也属于同一个广播域。但是单播的话,交换机会对不同接口进行选择传播,并且交换机存储转发的话,即使是同时传播也可以在交换机那里停下来 然后无碰撞的传播。
由于集线器相当于一个导线,存在碰撞问题所以它下面的主机之间是半双工的,而交换机不同接口下面的主机是可以全双工的。(半双工的需要使用CSMA/CD协议进行碰撞检测!)
交换机的多个端口可以并行传输。
每次收到帧,都要对源MAC地址做等记。
明确转发:如果目的MAC地址在帧交换表中,而且转发接口和输入接口不一样,那就明确转发
盲目转发:目的MAC地址不在交换表内,则除了输入接口之外的各接口都进行转发。
虚拟局域网VLAN(Virtual Local Area Network):可以将一个物理上的广播域划分成不同的广播域,那么此时他们进行广播时就可以区分开了。(这个也叫作隔离广播域)
总体来说:
交换机不能区分广播域,但是交换机可以区分冲突域,对于广播帧交换机会直接广播,除非在划分了VLAN的情况下,它会按照VLAN广播(有时会出现错误)。
IEEE 802.1Q帧。
数据链路层学习时,是学习了一个整体框架,如数据链路层的封装成帧,差错检测,透明传输,可靠传输等,但是具体数据链路层的哪个协议用的是什么方法,对上层是否可靠传输等,因协议而定!也因网络而定,比如我们最常使用的局域网是以太网,那么以太网就规定了很多标准,我们每个层就以以太网规定的标准来。
数据链路层的广域网协议:HDLC协议、PPP协议
数据链路层的局域网协议:以太网协议
<广域网和局域网就是分布范围不一样而已!广域网可以包含若干个局域网。
值得注意的是,协议是分不同层的,就比如以太网只是数据链路层的,它只能管它以下的层,比如数据链路和物理层>
局域网一般仅工作在物理层和数据链路层。
广域网包含网络层,物理层和数据链路层,不同层拥有不同的协议。
一、以太网(局域网)
以太网采用曼彻斯特编码,接入控制协议CSMA/CD
以太网最小帧长是64字节,其中最小数据载荷是46字节。
以太网的MAC协议提供的是无连接的不可靠服务。
以太网仅工作在物理层和数据链路层。
只有当以太网工作于半双工方式下才需要CSMA/CD协议,其他的可以不用!
MAC帧格式:
没有帧定界标志,但是物理层会加入前导码,前导码中有帧开始定界符,但是以太网MAC帧不需要结束定界符,因为它规定了一个帧间间隔。
二、PPP协议(广域网)
点对点PPP协议是目前使用最广泛的点对点数据链路层协议。不向上提供可靠传输服务!
①帧格式:
②透明传输的方法:
以吉大的PPT来看,PPP协议是面向字节的链路协议,采用字节填充法
③差错检测:
CRC循环冗余
①信道利用率:
我们遇到的信道利用率有两个,一个是停等协议的信道利用率,一个是CSMA/CD的信道利用率,两个的区别在于,停等协议的总时间要包括确认帧返回的时间,所以T=发送数据的时间+2*单程时间+发送确认帧的时间,而认为CSMA/CD是半双工的无确认的,则T=发送数据的时间+单程时间。
②广域网和局域网
注意HDLC和PPP协议都是广域网协议,都是用于点对点的数据链路层通信。不过HDLC除了适用于双工之外还适用于半双工,除了点对点通信之外还可以点对多点。
(1)B
(2)B
(3)D
(4)D
B.PPP协议只支持全双工,HDLC才支持半双工。
A.PPP和HDLC都是数据链路层协议。
三种转发方式:
直通式:没有缓存,输入端口检测到数据包时,只需要读取6B的目的地址,选择输出端口,直接让输入和输出端口交叉即可实现交换。
存储转发式:需要对数据包进行错误检查,检查之后才取出目的地址寻找输出端口。
无碎片式:等待达到一个最短帧长的时候。
(1)A
以太网A的通信量主要在本局域网内,更需要交换机来处理冲突问题,所以放在A中更合适。
(2)B
D.LLC层有俩“地址”,源SAP和目的SAP这都是指协议类型,
(3)B
直通式只需要读取一个目的MAC即可转发,一个目的MAC48bit。
前面的数字是传输速率单位是Mbps
传输介质是同轴电缆的:
10Base2:细缆以太网 最大长度185 m
10Base5:粗缆以太网 最大长度500m
传输介质是双绞线的:(星型拓扑,网段最大电缆长度100m)
10BaseT:双绞线以太网(twisted)
100BaseT:快速以太网 <保持最短帧长不变>
吉比特以太网:
传输介质:光纤、UTP等
以全双工和半双工两种方式工作
在半双工方式下使用 CSMA/CD 协议,全双工方式不使用 CSMA/CD 协议。
半双工方式使用载波延伸和分组突发。
载波延伸:保持最短帧长不变,争用时间增大为 512 字节。
10吉比特以太网
传输介质:only光纤
只工作在全双工方式(太快了)
(1)双绞线 BaseT!
CAA。
(2)B
10BaseT和100BaseT都只有100m,要扩大以太网就得用中继器。
(3)B
注意C的问题,以太网的广播帧不能被路由器路由啊。
(4)A
同轴电缆的两种:10Base2和10Base5,一个185m 一个500m
(5)D
AB只有半双工,C也可以半双工。
(6)C
快速以太网是100BaseT,它在10BaseT
FDM(频分多路复用):分割线路带宽来实现,适用于模拟信号。
TDM(十分多路复用):分割时间片,适用于数字信号。
同步TDM:同步时分多路复用的帧是固定大小的
异步TDM(统计TDM):动态分配时隙
WDM(波分多路复用):将输入的光信号调制到特定的频率上,然后将调制后的信号复用到一根光纤上。
CDM(码分多路复用):将一个比特间隙分为m个更短的时间间隙,对于每一个站点,我们让它的站点,码片序列的点积为0(即正交)。
对于站点A,发送比特1时,发送其码片序列,发送比特0时,发送其码片序列的反码。
若要在最终信号中提取中站点A的比特序列,那么只需要把最终信号按码片大小分割,然后与A的码片序列进行点积即可,由于发送的信号是所有站点信号的线性相加,而A的码片序列和其他站点的码片序列的点积是0,而A与自己的码片序列点积是n,与自己码片序列的反码点积是-n,我们可以再除以n(n是A中1的个数),所以可以直接得到A发送的信号是什么,若结果为1,则发送的是1,若结果是-1 则发送的是0。
(1)B
(2)B
分配时隙的是TDM,CDW并不是分配时隙。
同步TDM的时隙是固定的,异步TDM的时隙是动态分配的。
(3)D
(4)D
把码片序列当作向量,满足点积正交就可以。
(5)B
将收到的序列按码片序列长度分开,每一个都是不同码片序列的线性相加,点积即可。
(2,0,2,0):(2,0,2,0)*(1,1,1,1)/4=1
(0,-2,0,-2):(0,-2,0,-2)*(1,1,1,1)/4=-1
(0,2,0,2):(0,2,0,2)*(1,1,1,1)/4=1
所以A发送的是101
(1)流量控制限制的是发送方的数据流量
(2)在封装成帧的题目中,给出传送的字符,那么这些字符就是当做需要传送的数据,我们对其封装成帧发送,添头添尾增加定界符,然后使用透明传输方法修改帧。(无论是字符填充法还是比特填充法,都要加上首尾定界符,它们的区别只是在实现透明传输,即数据部分与定界符区分的方式不同)
题中A、B、ESC、FLAG是需要传输的数据
我们在这个数据前后添加定界符flag
即最终为01111110 01000111 11100011 11100000 01111110 01111110。
字符填充法,在数据的每个转义字符和FLAG之前加入转义字符
01111110 01000111 11100011 11100000 11100000 11100000 01111110 01111110。
比特填充法:
01111110 01000111 110100011 111000000 011111010 01111110 (前两个0别忘了填)
(3)数据链路层是有纠错功能的,比如海明码
(4)回退N帧是累计确认,其余两个没有。
(5)CSMA/CD的基本概念
(6)争用期理解
本题需要理解最小争用期的由来,最小争用期的存在使得碰撞只会发生在发送数据的过程中,如果要最短时间发现碰撞,那么甲乙应该同时发送数据,那么就会在τ的时间检测到碰撞,最长时间发现碰撞,那么甲发送了趋近于τ的时间之后,乙才发送,那么甲会在趋近于2τ的时间发生碰撞(你会发现这个过程中甲还没发送完数据,如果甲发送了>τ的时间,那么甲的数据就已经送达了,乙载波监听就会不发送数据了,不可能发生碰撞,所以这就是神奇的争用期!)
(7)C
这是因为,当负载大的时候,冲突会更严重,这样退避时间取值范围也会更多,碰撞概率也会越小。
(8)注意区别MAC帧和MAC协议的区别,
MAC协议是指 媒体接入控制 Media Access Control,
而MAC帧是用于媒体接入控制的以太网数据链路层的帧。
(9)B
(10)B
这里需要清楚
最短帧长限制了最远距离,因为最短帧长要实现传输时间≥2τ,那么最长帧长一样会满足。
①以太网最短帧长是64字节
②100Base-T 传输速率是100Mb/s
③2τ(争用期)是往返传输时延。
④前导码是物理层加入在帧之前的,不是指帧头。
那么我们有
(64*8)bit/(100Mb/s) ≥一个争用期
争用期=2*d/(200m/us)+2*1.535us
联立得d≤205m
(11)网卡中存有MAC地址和交换机一样主要功能在物理层和数据链路层。网络层就是IP地址和路由器的事了,以太网局域网也没有管到网络层的事。
(12)A
在错误率的可靠信道上,使用无连接无确认的服务对于实时通信非常适合,因为实时通信中数据的迟到比数据损坏更不好。
(13)C
别人发给它们俩其中一个人的内容,他俩都能收到,乱套了。
(x)
局域网并不只有以太网,以太网只是其中的一种。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。