网络协议笔记-数据链路层
【数据链路层的基本概念】
- 数据链路层中数据传输的单位是帧(frame)
- 链路是一条无源的点到点的物理线路段。
- 数据链路除了物理线路外,还必须有通信协议来控制这些数据的传输,若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 常见的方法是使用适配器(即网卡),来实现这些协议的硬件和软件
【数据链路层的主要目的】
- 为IP模块发送和接收IP数据报
- 为ARP模块发送ARP请求和接收ARP应答
- 为RARP发送RARP请求和接收RARP应答
【数据链路层主要功能】
- 链路管理:链路的建立、维持和释放
- 帧定界:帧同步,成帧
- 流量控制:使收方来得及接收
- 差错控制:前向纠错,差错检测
- 将数据和控制信息区分开:帧内区分,区分帧内的数据部分和控制部分
- 透明传输:能传输所有数据,不管上层协议传送的是视频文字还是图片,在数据链路层都是把数据按照一定的规则组装成标准的数据帧
- 寻址:保证每一帧能送到正确的目的站,帧中有目的地址
【数据链路层的简化模型】
七个分层之间相当于是黑盒,所以不管各自内部的实现,两个对等的链路层的传输过程可以看下图的模型
【简单的等待停止协议】
发送方:1,从主机取一个数据帧;2,将数据帧发送到数据链路层的发送缓存;3,将发送缓存中的数据帧发送出去;4,等待;5,若收到接收方发过来的确认信息,则继续1操作
接收方:1,等待;2,若收到发送结点发送过来的数据帧,则将其放入数据链路层的接收缓存;3,将接收缓存中的数据帧上交主机;4,向发送结点发一信息,表示已将数据帧上交主机;5,转到1操作。
重复帧问题:
每一个数据帧带上不同发送序号,发送一个新的数据帧就把它的发送序号加一,接收方收到发送重复的帧则丢弃,若是正常的帧,则需要向发送方发送确认帧。
超时重传机制,一定时间内未收到确认进行重传
数据帧的检错:循环冗余检测
【数据链路层的HDLC协议】
面向比特的规程SDLC(Synchronous Data Link Control)
【PPP协议的工作原理】
目前使用最多的数据链路层协议是PPP(Point-to-Point Protocol),在使用拨号电话线接入因特网时,一般都是使用PPP协议。
由三个部分组成
- 将IP数据报封装到串行链路的方法。IP数据报搜到最大接收单元MRU(Maximum Receive Unit)限制,MRU的默认值是1500,PPP既支持数据为8位和无奇偶检验的异步模式,还支持面向比特的同步连接
- 链路控制协议LCP(Link Control Protocol)。建立、配置和测试数据链路连接。它允许通过通信双方进行协商,以确定不同的选项。
- 针对不同网络层协议的网络控制协议NCP(Network Control Protocol)体系。
- 标志字段F为0x7E
- 地址字段A只置为0xFF,地址字段实际上并不起作用。
- 控制字段C通常置为0x33,表示PPP帧不使用编号
- PPP是面向字节的,所有的PPP帧的长度都是整数字节
2个字节的协议字段:0x0021表示信息字段是IP数据报;0xC021表示信息字段是PPP链路控制数据;0x8021表示信息字段是网络控制数据
ppp协议不使用序号和确认的可靠传输,原因:
- 数据链路层出差错的概率不大,使用简单的PPP协议较为合理
- 在因特网环境下,PPP的信息字段放入的数据是IP数据报,数据链路层的考考传输并不能保证网络层的传输也是可靠的。
- 帧检验序列FCS字段可保证无差错接受
PPP协议的工作状态:
- 当用户拨号接入ISP(分层服务提供者:Layered Service Provider)时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
- PC机向路由器发送一系列的LCP(链路控制协议Link Control Protocol)分组(封装成多个PPP帧)
- 这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP给新接入的PC机分配一个临时IP地址,是PC机成为因特网上的一个主机
- 通信完毕时,NCP(网络控制协议 Network Control Protocol)释放网络层连接,收回原来分配出去的IP地址,接着LCP释放数据链路层连接,最后释放的是物理层的连接。