计算机网络笔记
第三章 : 数据链路层
3.1数据链路层问题
数据链路层地位
- 网络中的主机,路由器都必须实现数据链路层
- 局域网的主机,交换机等都必须实现数据链路层
注意:不同链路层可能采用不同协议
数据链路层信道类型
点对点
一对一的通信方式
广播信道
一对多 必须使用专用的共享信道协议
3.1.1数据链路和帧
- 链路
- 一条无源的点到点的物理线路段,中间没有任何其他的交换节点
- 一条链路只是一条通路的一个组成部分
- 物理链路
- 数据链路
- 把实现控制数据的协议的硬件和软件加到链路上,构成了数据链路
- 逻辑链路
- 典型实现:适配器(网卡)
- 一般的适配器都包含了数据链路层和物理层这两层的功能
- 帧
- 为什么需要数据链路层
- 物理层解决了节点透明传输bits的问题
- 物理层没有解决的问题
- 传输错误的问题
- 谁接收的问题
- 传输结束问题
3.1.2 三个基本问题
封装成帧
- 在一段数据的前后分别添加首部和尾部,构成一个帧
- 首部和尾部一个重要作用就是帧定界(确定帧的界限)
透明传输
- 字节填充
差错控制
传输的过程中可能会因为各种原因导致一个或多个比特错误
循环冗余检验(crc)
CRC校验的原理
多项式表示
对如下二进制bit字符串:
可以将其表示为一个虚拟变量 (x) 的多项式方程 (二进制加权形式):
- 例:字符串 (1100101) 可以表示为:
- 这样做的目的是,方便之后进行数学编码和对二进制数据串的操作 (如:模二运算)。
模二多项式除法
通常一个多项式B(x)除以另一个多项式G(x)会产生一个商多项式Q(x)和一个余数多项式R(x):
由于 模二减法=模二加法,上式可重写为:
3.2点对点协议 ppp
3.2.1ppp协议特点
协议应满足的需求
协议的组成
一个将ip封装到串行链路的方法
- 一个链路控制协议(lcp) 用于建立、配置和测试链路
- 一套网络网络控制协议(ncp) 每个协议支持不同的网络层协议
3.2.2ppp帧格式
各字段的意义
- 首部的第一个字段和尾部的第二个字段都是标志字段F(flag)规定为0x7E
- 首部中第二个字段为地址字段A规定为0xFF
- 首部第三个字段为控制字段c规定为0x03
- 首部第四个字段为两个字节的协议字段
- 尾部第一个字段为两个字节用于crc检测的帧检测序列fcs
字节填充(异步传输)
- 将原始数据中出现的控制字符、帧定界符替换
- 在数据前填充一个字节作为转义 后一个字节编码改变
- 控制字符+0x20 定界符7->5 eg: 0x7D -> 0x5D
零比特填充(同步传输)
- 如果发送端发现五个1相连 在后面添加一个0
- 同理接收端发现五个1相连 删除后面的一个0
3.2.3ppp协议工作过程
连接建立
用户拨号接入isp后建立一条用户电脑和isp的物理连接
个人电脑向isp发送一系列链路控制协议lcp分组建立lcp连接
然后网络层网络控制协议ncp给新接入的用户分配一个临时的ip
连接释放
- ncp释放网络层连接
- 收回分配的IP地址
- lcp断开连接释放物理链路层连接
- 最后释放物理层连接
计算机网络笔记
http://example.com/2024/06/07/我的计算机网络/