前面介绍过TCP/IP协议各层的数据格式,其中网络协议的数据单元是IP数据报,而链路层的工作就是把网络层传送下来的IP数据报封装为帧发送到链路上,以及把接收的帧的数据传送给网络层。
为达到这一目的,数据链路必须具备一系列相应的功能,主要有:
1、将数据封装为帧,帧是数据链路层的传送单位;
2、控制帧的传输,包括处理传输差错,调节发送速率与接收方相匹配;
3、在两个网络实体之间提供数据链路通路的建立、维持和释放的管理;
数据帧的结构如下图所示:
帧的差错控制:
反馈重发:
接收方通过对差错编码(奇偶校验码或 CRC 码)的检查,可以判定一帧在传输过程中是否发生了差错。一旦发现差错,一般可以采用反馈重发的方法来纠正。这就要求接受方收完一帧后,向发送方反馈一个接收是否正确的信息,
使发送方据此做出是否需要重新发送的决定。发送方仅当收到接收方已正确接收的反馈信号后才能认为该帧已经正确发送完毕,否则需要重发直至正确为止。
计时器:
如果某一帧发送出现问题,一直不能发送成功,为了避免传输过程停滞不前,通常引入 计时器(Timer) 来限定接收方发回反馈消息的时间间隔。当发送方发送一帧的同时也启动计时器,若在限定时间间隔内未能收到接收方的反馈信息,
即计时器超时(Timeout),则可认为传出的帧以出错或丢失,就要重新发送。
序号:
由于同一帧数据可能被重复发送多次,就可能引起接收方多次收到同一帧并将其递交给网络层的情况。为了防止这种情况,可以采用对发送的帧编号的方法,即赋予每帧一个序号,从而使接收方能从该序号来区分是新发送来的帧还是重发的帧,
以此来确定要不要将接收到的帧递交给网络层
流量控制:
由于收发双方各自使用的设备工作速率和缓冲存储空间的差异,可能出现发送方的发送能力大于接收方接收能力的现象,此时若不对发送方的发送速率做适当的限制,前面来不及接收的帧将被后面不断发送来的帧“淹没”,从而造成帧的丢失而出错。
由此可见,流量控制实际上是对发送方数据流量的控制,使其发送速率不超过接收方的速率。所以需要一些规则使得发送方知道在什么情况下可以接着发送下一帧,而在什么情况下必须暂停发送,以等待收到某种反馈信息后再继续发送。这就是流量控制。
以太网协议:
PPP协议:
PPP是为了同等单元之间传输数据设计的链路层协议。这种链路提供双工操作,并按照顺序传递数据。设计的目的主要是通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案,
PPP为在点对点连接上传输多协议数据包提供了一个标准方式。PPP最初设计是为了两个对等节点之间的IP流量传输提供一种封装协议。在TCP/IP协议集中它是一种用来同步调制连接的数据链路层协议。
MTU:
为了提供足够快的响应时间,以太网和IEEE802.3对数据帧长度都有限制,最大值分别为1500字节和1492字节,链路层的这个特性称为MTU,即最大传输单元。
当网络层传下来一个IP数据报,并且其长度比链路层的MTU大时,那么链路层就需要对数据报进行分片,使每一片小于MTU,MTU分为接口MTU和路径MTU;
接口 MTU 是所指定的接口所允许发送的最大数据长度;路径 MTU 指两台通信主机路径中最小的 MTU 值。路径 MTU 是不对称的,它在两个方向上不一定一致。