网络(三)数据链路层
第三章 数据链路层
3.1 链路层的功能
物理层使得1010能够传到对端,而使1010有意义,就是数据链路层,通过组帧的方式实现的。
链路是一条无源的点到点的物理线路,中间没有其他任何交换节点
一. 数据链路层的功能
- 链路管理,帧同步
- 流量控制,差错控制
- 数据和控制信息分开
- 透明传输和寻址
二. 组帧
-
组帧的概念
(1)封装成帧是在一段数据的前后分别添加首部和尾部。
(2)确定帧的界限:首部和尾部的作用就是帧的定界
(3)MTU是帧的数据部分的最大长度,也是IP数据报的最大传输长度(相当于快递时限制传输包裹不能超过20公斤)
-
用控制符进行帧定界
(1)用控制字符进行帧定界的方法是,在帧的开始和结尾处加上特定的字符,这个字符一般是0X7E
(2)透明传输:如果帧的数据部分出现了0X7E(SOH或EOT的字符),则要进行转义 -
透明传输的转义方法:
(1) 字符填充
因为0x7E
=0111 1110
,字符填充是在这两个字节中,填充进0xD5。变为(0x7D,0x5E)的组合。
即0111 1101 1001 1110
(2)零比特填充
因为0x7E
=0111 1110,带有连续的6个1.因此发送端发送帧数据时,每当发现有连续的5个1,立即填充一个0发送。接收端对帧中的比特流扫描,每当发现5个连续的1,就把后面的1个0删除
eg:0111 1110
变成0111 1101 0
进行传输
3.2 差错控制
- 检测编码:循环冗余校验码
- 纠错编码:汉明码
3.3 流量控制和可靠传输
一. 停止-等待协议
-
基本概念
(1)发送端A发送完帧,必须等待获得对端B对阵个帧发送确认帧,A才能继续发送下一个帧
(2)由于帧可能再传输中由于线路问题而丢失,B收不到帧从而无法发送确认帧。因此A设置一个超时重传时间。在这个时间后如果还没收到确认帧,A就重新发送该帧。超时重传时间一般设置为2\(\tau^+\)。(\(\tau\)为A到B的传输时延)
-
停止等待协议的特点
(1)在发完一个分组后,必须暂时保留已发送的分组的副本
(2)分组和确认都必须进行编号(才能知道是对哪个分组进行确认)
(3)超时重传的时间比数据在分组传输的平均往返时间2\(\tau\)更长一些
(4)ack报文丢失的结果:A向B发送数据帧,当B的ACK确认帧丢失后,A通过超时重传重传丢失的帧。这个帧实际上已经被B接收到了,如果这个帧没序号,B就无法识别这是收到的重复的帧
(5)综上所述,停止等待协议使用的确认和重传机制,可以在不可靠的传输网路上实现可靠地通信。 -
ARQ协议
(1)上面这种可靠传输协议常称为自动重传请求(ARQ--atomic repeat request)。是停止等待的一种实现
(2)ARQ表明重传请求是自动进行的,接收方不需要请求发送方重传某个出错的数据帧。
(3)停止等待协议的信道利用率:
-
流水线传输 - 连续的ARQ协议
发送方可连续发送多个分组,不必发送完一个分组就停下来等待对方确认。可以使信道利用率达到100%。一直有数据向外发送。
(1)连续的ARQ协议:
连续的ARQ协议可以连续发送多个数据帧,连续发送的个数成为发送窗口的大小。发送窗口中的帧分为2部分:已发送没确认的帧和等待发送的帧。当收到第一个发送帧的ACK帧后,窗口向后滑动一个位置。
-
累积确认
(1)接收方的累计确认是指,接收方不必对分割受到的分组逐一确认,逐一发送ACK帧,而是对按需达到的最后一个分组发送方确认帧,表示这个分组及其之前的帧已经正确收到。
(2)累计确认的优点:容易实现,即使ACK丢失也不必重传(因为后面的确认帧确认了前面的已经收到)
(3)累计确认的缺点:不能反映出接收方已经正确接受的所有分组的信息。
二. 后退N帧协议(GBN)
- GBN的基本概念
设想一种场景:加入1到5号帧,如果只有3号帧接收失败,但是要重传3,4,5号帧),发送方要把后面的3个分组重新再传一遍。这种方法就叫做Go-Back-N(回退N)。表示需要退回来重传已经发送的N个分组。
三. 选择重传协议(SR)
-
SR的基本概念
(1)当接收方发现某个帧传输出错后,气候继续达到的正确帧不能立即送给接收方得高层,需要先存放在一个缓冲区,同时要求发送方重传出错的一个帧。
(2)一旦接收到重传的帧后,就可以和缓冲区中的正确帧按照顺序递交给上层
(3)选择重传协议,使用连续ARQ发送,但不能使用累积确认。 -
滑动窗口设置
(1)发送方设置一个变量,作为发送窗口SWS(Send Window Size):表示在没收到确认帧的情况下,发送端最多能发送的帧个数。(停止等待协议中SWS=1)
接收方设置一个变量,作为接收窗口RWS(Recieve Window Size)
(2)设置滑动窗口的目的是重复使用有限的序号列。(序号需要包含在帧头部,无限增加的序号会导致帧序号字段所占位数增大。eg:2bit帧序号能表示序号0 ~ 3)
(3)发送窗口的规则:
发送窗口内的帧都是允许发送的帧,不用考虑是否收到确认。
每发送完一个帧,允许发送的帧数就减1,但是发送窗口的位置不变。
如果允许发送的帧数都发送完毕,但没有收到任何确认,则不能继续发送任何数据。
发送端没接受到一个ACK确认,发送窗口向前移动一个帧的位置。
(4)接收窗口的规则(RWS):
- 接收窗口大小RWS,表示能够接受的帧序号的上限,规定了哪些序号的帧可以接受,哪些不能。即:当收到的帧的序号落在窗口内才允许接受该数据帧。(停止等待协议中的RWS = 1)
- 为了减少开销,连续的ARQ协议还规定接收端不必每收到一个正确的数据帧就发送一个确认帧,而是连续收到几个正确帧后,才对最后一个数据帧确认。
- 有时为了减少开销,也会采用捎带确认机制(ACK帧不包含发送时间,只有在信道上传播的时间)
- 接收窗口的大小需要根据需要设定
(1)RWS=1:表示一次只能接受一个帧
(2)RWS=SWS:可以将发送端发送的帧全部接受
(3)RWS>SWS:无意义- 接收窗口的规则:
(1)只有当接收的帧序号和接受窗口的序号一致时才能接受该帧,否则丢弃该帧
(2)没收到一个序号正确的帧,接受窗口向前滑动一个位置(使可接收序号变化),同时发送ACK确认。所以接收窗口的大小,只是起到了累积确认,按序重组数据帧的作用。
(3)接受窗口滑动了,发送窗口才能滑动。
- 如何设定发送窗口(SWS)的大小:
(1)发送窗口的大小等于序号大小就一定最好吗
(i) 假设序号为0到7,发送窗口大小设置为8(与序号个数一样),接收窗口设置为1,这样好吗?答案是不好。
(ii) 假设接收方返回的1到8号确认帧丢失了,使得发送方重传1到8号帧,这是发送方发送的其实是接收方已经接收到的重复帧,但是接收方并没意识到自己收到的是重复帧。
(iii) 为了解决这个问题,只要把发送窗口大小,设置的比序号至少小1即可。
(2)\(SWS_{max}\) = 序号个数 - RWS:
保证发送窗口大小与接收窗口大小的和为n,就能保证接收方识别出重传的帧
(3)退后N帧的发送窗口最大:\(2^n -1\)
选择重传的发送窗口最大:\(2^{(n-1)}\)
3.4 介质访问
一. 介质访问控制
1、 信道划分介质访问控制
复用是通信技术的基本概念
(1)频分复用FDM
频分复用的所有用户在同样的时间使用不同的带宽资源(不同Hz的信道)
(2)时分复用TDM
(i) 时分复用是将时间划分为一段登场的复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙。
(ii) 每一个用户所占时隙周期性的出现(周期就是TDM帧的长度)
(iii)TDM信号也成等时
(v) 时分复用的所有用户在不同时间占用相同的频带宽度
(3)波分复用(WDM)
光纤通信中,每个用户占用不同的波长
(4)码分复用(CDM)
码分多址CDMA(Code Division Multiple Access)
(i) 每一个比特时间划分为m个短的间隔,成为码片。所有用户一起发送的结果就是这些码片向量的叠加
(ii) 码片序列:
每个站被指派一个唯一的m个码片序列
eg:发送比特1,则发送m个bit的码片。
发送比特0,就发送这m个bit码片的二进制反码
eg:S站的码片序列为00011011,则如果发送比特0,则发送的是11100100。而CDMA往往用-1代表0(利于后面的正交计算)。所以S站的原始码片序列为(-1 -1 -1 +1 +1 -1 +1 +1)
(iii) CDMA的特点:每个站分配的码片必须正交(使用伪随机码序列)
eg:向量S为(-1 -1 -1 +1 +1 -1 +1 +1),向量T为(-1 -1 +1 -1 +1 +1 +1 -1)。把向量S和T的各分量之带入S*T。和为0.
(v)CDMA分码,使得向量自己和自己做内积,结果是1。向量和自己的反码做内积,结果是-1.
二. 随机介质访问控制
-
ALOHA协议
(1)用户有帧即可发送。采用冲突监听与随机重发机制。这种系统是竞争系统系统
(2)帧长统一,但两帧冲突或重叠,则会被破坏,因此效率不高
(3)在泊松分布下,每个帧时间为尝试发送次数G=0.5时,信道吞吐量S=0.184
(4)只能用原信道吞吐量的18.4% -
载波监听多路访问CSMA
(1)当一个站点需要发送数据前,需要先监听总线
(2)如果总线上没有其他站点发送信号,则该站可以发送信号。如果有其他站点发送信号。则需要等待一段时间再重新监听总线,再根据总线的忙闲情况决定是否发送数据。 -
CSMA/CD协议
(1)CSMA只是监听总线是否空闲,当两个站点同时监听到总线空闲后,会同时发送数据,还是会造成冲突。
(2)CSMA/CD利用以太网广播的方式进行单播通信。即线路上的所有站点都能收到总线上的数据,但只有指定的接收方会对该信号作出回应。
(3)CSMA/CD协议用于以太网。以太网的传输特点有以下2中方式:
(i) 采用灵活的无连接工作方式。即不必先建立连接就可以发送数据
(ii)以太网对发送的帧不进行编号,也不要求对方发回确认(因为局域网的信道质量很好,产生差错的概率很低)
(4)以太网提供的服务
以太网提供的是不可靠服务,尽最大努力交付
当目的站收到有差错数据时就丢弃,其他的什么也不做、
(5)CD的意思是碰撞检测:就是边发数据边检测是否有其他站点发送信号。发生碰撞时,总线上传输的信号产生严重失真,无法恢复有用的信息。因此,使用CSMA/CD协议的以太网不能进行全双工通信,而只能进行双向交替通信(半双工通信)。每个站在发送数据后的一小段时间内,都存在遭遇碰撞的可能性。最先发送数据帧的站,最多在发送数据后的2\(\tau\)时间后,就可以知道是否发生了碰撞。
(6)以太网端到端的往返延时2\(\tau\)称为征用期或碰撞窗口
(7)当发送的时候,检测到了碰撞,则要二进制指数退避算法延时后再次发送数据
(i)重传次数k = Min[重传次数,10],设随机数r是从0到$ (2^k-1)\(中随机取出来的整数。重传所需的时延就是r倍的2\)\tau\( (ii)当重传16次仍发现冲突时,就丢弃该帧,向上层告报告 (8)以太网征用期的长度为51.2\)\mu s$
因此对于10Mbps的以太网,征用期内能发送512字节的数据帧,即64字节。即如果在发生64自节后,还没检测到冲突,则此次发送不会砸发生冲突。
(9)64字节称为最短有效帧长。
若信道长度为L,带宽为c,传播速率为D,则最短有效帧长为\(2*C*\frac{L}{D}\) -
CSMA/CA协议
(1)CSMA/CA在无线网中使用、无线网由于没有一条确定的通信线路,因此cd算法的征用期无法计算,所以不适合用CSMA/CD协议
(2)CSMA/CA协议尽量在发送时避免冲突,同时使用停止等待,一次只发送一个数据帧。
(3)CSMA/CA的流程:当检测到信道空闲,还要等待一小段时间后才能发送数据帧,为了让高优先级的帧发送
3.5 局域网
一. 以太网与IEEE 802.3
-
以太网是符合DIX Ethernet V2标准的局域网。
-
IEEE 802.3规定数据链路层分为2层:
(1)LLC逻辑链路控制层:与媒体无关,与IP层打交道
(2)MAC媒体控制接入子层 -
MAC地址
(1)共48bit的物理地址:前24位(3字节)由RA负责向厂家分配。后3字节由厂家分配
(2)MAC帧的结构:
MAC帧的数据部分长度范围是46到1500字节。
上限由MTU决定,下限由最短帧长决定。最短帧长为64字节(黄色部分+粉色的FCS部分占18个字节,加起来就是64字节)
(3)无效MAC帧:
数据字段长度不在461500字节的,有效MAC帧长不在641518字节的帧都是无效帧。 -
三种不同物理层标准
标准 线路材质 100BASE-TX 使用2对UTP5类线或屏蔽双绞线STP 100BASE-FX 使用2对光纤 100BASE-T4 使用4对UTP3类线或5类线
3.6 广域网
一. PPP协议 - 面向字节
- 全世界使用最多的点对点协议PPP
- ppp是点对点的,所以不是总线型,也就不用CSMA/CD协议。一次没有最短帧限制(不用2t的争用期),所以信息段范围是0~1500字节
- 用户拨号上网电话线介入因特网时,一般使用PPP协议。
- PPP协议由三个部分组成
(1)将IP数据报封装到串行链路的方法
(2)链路控制协议LCP
(3)网络控制协议NCP - PPP在同步线路上采用零比特填充解决透明传输(同HDLAC),在异步线路上采用字符定界确定帧边界0x7E(默认做法)
- PPP不采用帧序号和帧确认,是不可靠链路,只能进行全双工通信。只检错不纠错。
二. HDLAC - 面向比特
- 主站和从站的概念:
- 主站到从站的帧称为命令帧
从站到主站的帧称为响应帧 - 采用全双工通信,对帧编号,采用CRC校验
- HDLAC只有3种帧:信息帧,监督帧,无编号帧。
3.7 数据链路层设备
一. 网桥
-
网桥具备过滤帧的功能:
网桥收到一个帧时,并不是向所有接口发送此帧。而是先检查此帧的目的地址。然后确定将该帧转发到哪一个接口。 -
网桥内部结构
-
网桥的好处
(1)过滤通信量
(2)扩大物理范围
(3)提高可靠性
(4)可互连不同物理层,不同速率的局域网。
(5)网桥可以隔离碰撞域,可以引起广播风暴(目的地址为FFFFFF) -
网桥转发表的建立 - 自学习
(1)若A站发出的帧从接口x进入了某网桥,那么从这个接口出发沿反方向一定可以吧一个帧发送到A
(2)网桥每接收到一个帧,如果转发表中没有此项,就记下源地址和网桥接口,作为转发表的一项。如果有该站的表项,则更新表项。
(3)如果发现转发的地址和源地址在一个接口,则不予转发
(4)初始时,网桥的转发表为空,所以网桥会把帧转发到所有的接口。
(5)网桥中的转标表项有三个部分:MAC地址,转发接口,倒计时。倒计时是用来限制转发表项的生存时间的,因为联路上的机器时常更新,所以转发表也要时常更新。比如如果倒计时设为10s,则如果在10秒内没有帧发往此站,则此转发表项将删除
二. 交换机
- 交换机是有十几个接口的网桥
- 以太网交换机分为共享式和独占式。如果是共享式,每个接口的带宽为总代快的n分之1
- 交换机的性能指标 - 转发技术
(1)直通式交换:收到数据包后,只看帧的前6个字节(目的地址),然后直接转发
此种方法速度快,但是没有对帧进行校验,可能转发了无效帧
(2)存储转发式交换
存储转发技术要求交换机在接收到完整的数据报后决定如何转发。先进行校验正确性和完整性
(3)碎片隔离式
也是接收完整帧,但只校验帧长是否大于64字节, - 交换机时延:
从交换机接收到数据包开始向目的端口复制数据包之间的间隔
(1)采用直通转发的交换机有固定的时延。取决于交换机解读数据包前6字节目的地址的速率
(2)采用存储转发技术的交换机由于要接受完整的数据包,因此时延和帧长度有关
【注】:网桥不能隔离广播域。但是交换机可以通过组建虚拟局域网来隔离广播域。