数据链路层的三个基本问题
运行在链路层的协议有多种,但是三个基本问题是共同,这三个基本问题是 封装成帧、透明传输和差错检测。
封装成帧
封装成帧的概念就是在数据链路层的传输协议中加入帧首部和帧尾部,方便链路层区分帧界限。为什么一定要封装成帧,这是因为一旦帧在传输过程中出现差错,链路层就可以通过帧首部和尾部进行判断,丢弃出错的帧。
透明传输
由于帧界定符是一些特殊的ascii码组合成的,在传输的数据中可能出现与界定符一样的数据,透明传输的意思就是要避免出现这样的数据,对于数据中的界定符采取转义的方式重合编码,接收方再根据同样的规则进行解码,从而完成正确的数据传输。
差错检测
差错检测就是检测一帧数据中是否在传输过程中出现了差错,如果出现差错就丢弃(数据链路层不做可靠性保证,由上层协议完成错误重发)。差错检测是使用的循环冗余校验CRC技术。
PPP协议
点对点协议(Point-to-Point Protocal)是目前应用最广泛的链路层协议。PPP协议的特点:
- 简单 PPP协议提供不可靠的数据服务,不提供纠错、不需要序号、不需要流量控制等功能。
- 封装成帧
- 透明性
- 支持多种网络层协议 如IP、IPX等协议。
- 支持多种链路类型 如串行、并行、同步和非同步等等。
- 差错检测
- 检测链接状态
- 最大传输单元
- 支持网络地址协商
- 支持数据压缩协商
PPP协议不支持多点线路,只支持全双工通信。
PPP协议帧格式
PPP协议的帧格式如下:
1 |
|
PPP协议带有身份认证功能,用户接入互联网用的基本都是PPP协议。
PPP协议的六个阶段:
- 链路不可用阶段: 初始阶段
- 链路建立阶段: LCP协商,(协商认证方式等)
- 验证阶段: PAP/CHAP验证
- 网络层协议阶段:**NCP协商
- PPP会话维持阶段: 维持PPP会话, 定时发送Echo Request报文,并等待Echo Reply报文
- 网络终止阶段: 终止PPP会话,回到链路不可用阶段
以太网协议
经过多年的发展,现在局域网基本等于以太网的同义词,大多数局域网使用的协议都是以太网协议。
CSMA/CD协议
局域网发展早期,使用的是总线模式的局域网,特点是所有的计算机都在同一个总线上,只有当总线空闲时才能发送数据。这样就需要一个协议来协商多个计算机之间的发言冲突问题,这就是CSMA/CD协议:载波监听多点接入/冲突检测。
由于以太网发送数据都是使用曼彻斯特编码的信号,因此以太网协议不需要界定符的尾部,因为一旦主机不再发送信号,以太网中的高低电平转换就消失了,这个特点就可以作为帧的尾部。
根据CSMA/CD协议,可以推算出要想检测到传输过程中的碰撞,数据的最小长度为64字节。以太网的MTU为64-1500
MAC帧格式
MAC帧格式如下:
1 | 类型字段 (2个字节):用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议 |
PPPoE
以太网虽然应用广泛,但是却不带有身份认证功能,有人想到了把PPP协议移植到以太网中,因此有了我们接入互联网常见的PPPoE协议。
PPPoE的帧是封装在mac帧中的,格式如下: