计算机网络 数据链路层,计算机网络:数据链路层

互联网是指很多异构的网络由路由器联系起来的一个大网络。在研究这个大网络之前,我们要庖丁解牛,先研究其局部和单元。最小的网络单元就是局域网,局域网是一个单位所拥有,且地理范围和站点数量都很有限。

局域网内的计算机通信不需要路由器,所以不会用到网络层的协议,而是依赖数据链路层。

2dc5e94c6b49?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

上图说明了数据链路层在整个互联网体系中的位置。数据链路层的信道分为两种:

点对点信道:一对一通信

广播信道:一对多的广播通信(使用共享信道协议)

数据链路层的协议数据单元是帧。数据链路层把网络层交下来的数据构成帧,发到链路上,以及把接收到的帧中的数据取出来,交给网络层。

在点到点信道的数据链路层协议上,可以采用简化的三层模型。无论是主机和主机,主机和路由器,或者两个路由器之间,我们都可以看成结点和结点之间的通信。

2dc5e94c6b49?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

数据链路层不必考虑物理层是如何实现比特传输的细节,我们甚至可以简单设想,节点A沿着数据链路层的水平方向把帧输出给结点B。

数据链路层的协议有多个,但有三个共性问题。

封装成帧

2dc5e94c6b49?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

从上图可以得出以下结论:

帧 = 帧首部 + 数据部分 + 帧尾部。

首部和尾部是控制信息,由数据链路层封装而成。

数据部分存在上限——最大传输单元MTU。可以推断,通信中传输数据必须考虑大小。

帧的首部标志着帧的开始,尾部标志着帧的结束。通过这些控制信息,我们能保证收到一个完整的帧。比如ASCII中的不可打印字符当作首部和尾部。

透明传输

利用转义字符(ESC,十六进制编码0x1B)来解决帧的数据部分包含控制字符的问题

2dc5e94c6b49?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

差错检验

信道往往不是理想的,所以通信会带来误差。常用误码率来衡量传输误差。误码率BER(bit error rate)等于错误的比特占全部比特的百分比。

那么我们怎么知道所接受到的帧有没有错误比特呢?这就需要校验机制,目前数据链路层广泛采用循环冗余校验CRC((Cyclic Redundancy Check)。其原理是在帧的数据部分后面加上冗余码(FCS),接受方利用冗余码校验数据部分。具体细节请参考《计算机网络》。

综上,封装成帧和透明传输保证收到完整的帧,差错检验保证收到正确的帧。这三种机制能保证帧的无差错传输,但不能保证可靠传输(发送什么就接收到什么)。造成不可靠传输的原因有两类:

1. 帧中的比特错误

2. 帧重复,帧丢失,帧失序

数据链路层的帧的三种机制只能消除第一种错误,至于第二种则需要确认和重传机制。在早期互联网中,数据链路层曾经保证可靠传输,但随着光纤技术的发展,误码率大大下降,数据链路层就采用了简单的不可靠传输协议,把可靠运输的实现放在了运输层中。实践证明,这样可以提高通信效率。

最后,我们可以看到,计算机网络本质是通信问题,里面包含了很多通信元素:完整,误差,校验,重复,丢失,失序,可靠传输等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值