计算机网络的数据链路层

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计算出来的检错码。

相关推荐
平凡シンプル2 分钟前
TCP UDP 网络通信插件 SL-Uniplugin-Tcp-Udp
网络·学习·uniapp·记录
小程序设计4 分钟前
Easy-Shop商城小程序漏洞挖掘与防护研究
网络·安全
万联WANFLOW23 分钟前
TikTok Shop上线“Sell Across EU”,欧洲社交电商迎来生态重构
网络·业界资讯
liulilittle1 小时前
为什么采用全局管理缓存及状态:麻将客户端状态管理
服务器·网络·游戏·客户端·异步·mahjong·麻将
酣大智2 小时前
OSPF引入的直连路由在 ospf 路由表中看不到
网络·ospf
2601_966377132 小时前
等保2.0最新标准新增安全数据处理要求后怎么办?等保一体机数据安全模块来助力
运维·网络·安全·等保一体机
BullSmall2 小时前
window系统上报Cannot assign requested address
网络·功能测试
杨云龙UP2 小时前
MySQL Host is blocked because of many connection errors 导致 JDBC 连接失败排查与解决
linux·运维·网络·数据库·sql·mysql·登录失败
执念WRD2 小时前
Fastjson 1.2.83 RCE 漏洞利用
网络·安全·网络安全
xixiaoyunya2 小时前
局域网多电脑文件互备:从传统痛点到自动化方案的技术路径
网络·安全