计算机网络体系之混合模型之数据链路层

数据链路层可以简单理解为传送数据的链路加上实现控制数据传输的通信协议的软件和硬件。在谈论数据链路层的功能的时候,我们通常在两个对等的数据链路层的节点假想一条数据通道,而数据通道上传输的数据单位是帧。而我们知道数据链路层的下层物理层的传输的数据单位是比特,那么数据链路层的一个问题就是如何把比特组成帧。为了区分帧的开始和结束,那么又涉及到另外一个问题就是帧定界。

总的概括数据链路层的主要功能如下:

(1)链路管理:即链路的建立、维持和释放。当两个节点需要进行通信,数据发送方要知道接收方是否准备好了,为此就要事先约定好一些规则,然后正式通信前交换一些必要的信息。

(2帧定界(帧同步):数据链路层数据的传输单位是帧,那么数据必须是一帧一帧的传送,收方应当能从收到的比特流中准确地区分一帧的开始和结束在什么地方。

(3)流量控制:发方发送数据的速率必须使收方来得及接收,当接不住的时候通过一些反馈机制及时控制发方发送数据的速率。

(4)差错控制:由于向前纠错(自动把差错改正)开销较大不适合计算机通信,故采用差错检测,检测到差错就丢弃出错的帧。接下来有两种选择,不做处理由高层处理,或者通过相关机制由数据链路层负责重传。

(5)区分数据和控制信息:通常数据和控制信息位于同一帧中,应当有一种机制可以使收方能够区分两者。

(6)透明传输:当所传数据中的比特组合恰巧与控制信息相同,必须有转义机制让收方不会将这种比特组合的数据信息误认为是某种控制信息。

(7)寻址:帧带有源址和目的地址,保证信息送达正确的地方。

具有最简单的流量控制机制的数据链路层协议---停止等待协议

停止等待协议由两个机制保证,确认机制和超时机制。接收方每正确收到发送方发的一帧,回一个ACK,放送方收到ACK后才会发送新的一帧。为了防止帧丢失或者ACK丢失造成的死锁现象,采用了计时器,如果发送方在一定时间内没有收到ACK,发送方就重传上一帧。此处为了解决重复帧的问题,引入序列号,即增加额外的开销用来区分不同的帧。另外捎带提一下的是,数据链路层广泛采用CRC(循环冗余检验)的检错技术检错。正是由于数据链路层的停止等待协议采用了有效的检错重传的机制,所以可以说数据链路层对上面网络层提供了可靠传输的服务。

发送端对出错的数据帧进行的重传是自动进行的,这种差错控制机制简称ARQ(自动重传请求)。

连续ARQ协议

连续ARQ协议的要点在于发送一个数据帧后,不是停下来等待确认帧而是可以连续发送若干个数据帧。但连续ARQ协议存在两个问题,一个是当未确认的数据帧太多时,只要一个数据帧出错,就可能要有很多数据帧需要重传,这必然就要增大开销。另一个问题是,为了对所发送出去的大量数据帧进行编号,每个数据帧的发送序号也要占用较多的比特数,这样又增加了新的开销。

滑动窗口协议

在连续ARQ协议中,应当将已发送但未确认的数据帧的数目加以限制,即设定所谓的发送窗口和接收窗口。

面向比特的链路控制规程HDLC

HDLC的帧结构,数据链路层的数据传送是以帧为单位的,一个帧的结构具有固定的格式。信息字段的长度没有具体的规定,数据链路层在信息字段的首尾加上各24比特的控制信息,构成一个完整的帧。其中开头结尾放上一个字节的特殊标记作为帧的边界,这个特殊标记叫做标志字段F(6个连续的1加上两头各一个0共8比特)。为了避免歧义,信息字段采用零填充法保证不出现6个连续的1,即每五个连续的1后插入一个0,接收方每发现五个连续的1就删去后面的0,从而还原信息。开始标志后面是8比特的地址信息,然后是8比特的控制信息。结束标志之前是16比特的帧检验序列(FCS)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值