计算机网络(三)_数据链路层

走进科学之计算机网络-数据链路层-硬核扫盲

继续硬核学习计算机网络系列!

本文承接:

三言两语轻松计算机网络入门

走进科学之-计算机网络物理层-硬核扫盲

本文的聚焦点主要在于数据链路层间数据的传输,事实上,在数据在两个节点间的传输,应该是发送端从应用层到物理层,中间以物理再到网络层,网络层到物理层,接收端从物理层到应用层这个过程的

数据链路层涉及的基本概念

数据链路层的信道类型

数据链路层使用的信道主要有以下两种类型:

  • 点对点信道:这种信道使用一对一的点对点通信方式
  • 广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂,广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送

链路与数据链路

  • 链路(link):是一条点到点的物理线路段,中间没有任何其他的交换结点
    一条链路只是一条通路的一个组成部分。

  • 数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

    现最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件

数据链路层传送单位的是帧


图中IP数据报是指经过网络层封装的数据。

三个基本问题

封装成帧

封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧,首部和尾部的一个重要作用就是进行帧定界

试想:帧还未发送完,发送端出了问题,只能重发该帧,接收端却收到了前面的“半截子帧”,它会抛弃吗?

答案当然是会的,在帧首位都会有开始符和结束符,如果接收端没有接收到结束符,自然会认定接收到的是一个无效帧

但是,如果数据段中有一段数据与结束符是一样的呢?接收端读取到的时候,判定是一个结束符,那这个帧一样是无效的,如何做?

解决方案-字节填充法

发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)

接收端的数据链路层在将数据送往网络层之前删除插入的转义字符

如果转义字符也出现数据当中,那么应在转义字符前插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个

CRC差错检验

传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)误码率与信噪比有很大的关系

为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施

循环冗余检验CRC

在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术

在发送端,先把数据划分为组。假定每组 k 个比特。假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送

收端对收到的每一帧进行 CRC 检验
若得出的余数 R = 0,则判定这

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值