计算机网络的数据链路层

1、概述

链路 是指从一个节点到相邻结点的一段物理线路(有线或无线),中间没有其他交换结点
数据链路 是基于链路。当在⼀条链路上传送数据时,除需要链路本身,还需要⼀些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

不同类型的数据链路,所用的通信协议可能不同

  • 广播信道:CSMA/CD协议
  • 点对点信道:PPP协议

计算机中的⽹络适配器(俗称⽹卡)和其相应的软件驱动程序就实现了这些协议。⼀般的⽹络适配器都包含了物理层和数据链路层这两层的功能。

2、数据链路层的三个问题

2.1、封装成帧

帧的数据部分是网络层传递下来的数据包(IP数据包,Packet)

  1. 以太网V2的MAC帧

  2. PPP帧

封装成帧 是指数据链路层给上层交付下来的协议数据单元PDU添加⼀个⾸部和⼀个尾部,使之成为帧。

帧的⾸部和尾部中包含有⼀些重要的控制信息,帧⾸部和尾部的作⽤之⼀就是帧定界,并不是每⼀种数据链路层协议的帧都包含有帧定界标志。

2.2、透明传输

透明传输是指数据链路层对上层交付下来的协议数据单元PDU没有任何限制,⾯向字节的物理链路使⽤字节填充的⽅法实现透明传输,⾯向⽐特的物理链路使⽤⽐特填充的⽅法实现透明传输。

2.3、差错检验

在帧尾部加上校验码,接收方通过校验算法,检查传输过程中有没有比特出错(0 变 1、1 变 0)。

产生原因:链路噪声、干扰、衰减,导致比特位出错

2.4、CRC循环冗余校验

数据链路层⼴泛使⽤漏检率极低的循环冗余校验检错技术。

收发双方预先约定生成多项式 G (X),发送方依据待发送数据与该多项式计算出冗余差错检测码并附加在数据后一同传输,接收方再利用同一生成多项式 G (X) 校验收到的数据和冗余码,判断传输过程是否产生误码。

  1. 发送方 CRC 操作
    收发双方预先约定同一个生成多项式 G (X);
    把待发送原始数据比特串后面,补上G (X) 最高次项个数的 0;
    用模 2 除法(异或、无借位减法),让补 0 后的数据除以生成多项式对应的比特串;
    得到的余数就是CRC 冗余码(位数固定,比 G (X) 位数少 1);
    将原始数据 + 冗余码拼接在一起,组成完整帧发送出去。
  2. 接收方 CRC 操作
    接收收到完整的数据 + CRC 冗余码比特串;
    用同样生成多项式 G (X) 对应的比特串,对接收的整体比特串做模 2 除法;
    若余数为 0:判定传输无差错,保留有效数据;
    若余数不为 0:判定传输出现比特误码,直接丢弃该帧。

3、Ethernet V2标准

为了能够检测正在发送的帧是否产⽣了冲突,以太⽹的帧⾄少要64字节

3.1、Ethernet V2帧格式

⾸部:⽬标MAC + 源MAC + ⽹络类型

以太⽹帧:⾸部 + 数据 + FCS

数据的⻓度⾄少是:64 - 6 - 6 - 2 - 4 = 46字节

3.2、以太⽹MAC帧协议

接收⽅可能收到的⽆效MAC帧包括以下⼏种:MAC帧的⻓度不是整数个字节,通过MAC帧的FCS字段的值检测出帧有误码,MAC帧的⻓度不在64 ~ 1518字节之间。
接收⽅收到⽆效的MAC帧时,就简单将其丢弃,以太⽹的数据链路层没有重传机制

4、PPP协议

4.1、概述

是数据链路层(OSI 第二层)的标准协议,用于两台设备之间的点对点(P2P)全双工链路,可承载多种网络层协议(主要是 IP),兼具封装、透明传输、差错检测、链路管理、认证与参数协商能力。

帧检验序列字段:其值是使用循环冗余校验CRC计算出来的检错码。

相关推荐
ESDWAN5 小时前
跨境网络丢包怎么定位?用MTR和Traceroute分析链路问题
网络
砺星Leetx5 小时前
工业总线选型与对接实战:PROFINET、EtherCAT、EtherNet/IP、PROFIBUS、Modbus-TCP 与 CC-Link
网络·网络协议·tcp/ip·控制器·国产拧紧系统
2401_868534785 小时前
软考网络规划设计师SSL协议知识点详解
服务器·网络
Escalating_xu6 小时前
【Linux 网络编程】手写序列化与反序列化:从 x op y 到能校验的文本协议
linux·运维·网络
POMAGTOR8 小时前
【磁吸式连接器选型工程解析:结构原理、应用场景与选型可靠性要点】
网络·嵌入式硬件
阿文和她的Key12 小时前
PHP2Shell事故四层拆解:AI找洞是小时级,披露协调还是邮件级
网络·人工智能·架构·php
QZ1665609515913 小时前
数据库监测的主动防御:实时感知,看见即掌控
网络·安全·网络安全
流浪00113 小时前
计算机网络篇8:传输层——序列化与反序列化,TCP 面向字节流的报文边界由应用层自己切
网络协议·tcp/ip·计算机网络·1024程序员节·序列化反序列化·面向字节流·面向数据包
北京中科新远科技14 小时前
高速接口兼容排查实战:OSFP、QSFP112与QSFP56如何逐层验证
linux·运维·网络
Lzg_na16 小时前
HDLC 协议详解
网络