**
**
1. 概要:
从这章开始, 内容会多了很多, 可能有一些难以理解, 这一章从局域网来理解比较到位和合适, 本章最主要的内容是PPP协议和CDMA协议, 以及什么是MAC地址, 链路层的三个基本问题.
2. 基本名词的理解
(1)链路: 指的是一条物理链路, 用来连接相连节点的线路.
(2)数据链路: 指的是"物理链路"+"相关的通信协议".
(3)帧: 数据链路层的协议数据单元.
(4)点对点信道: 一对一的点对点通信方式.
(5)广播信道: 一对多或者一对全的通信方式.
3. 三个基本问题
(1)封装成帧: 分组交换是一个很重要的概念, 当网络层向数据链路层传送下来的IP数据包的时候, 链路层要对其进行打包, 即所谓的封装成帧. 要对其加上首部和尾部, 使其首尾部成为该帧的界定符, 首部为SOH(start of header),尾部为EOT(end of transmission).
(2)封装成帧作用: 当数据传输出现差错, 例如发送不完全的帧, 当检测到无EOT时, 就知道这个是不完整的帧, 要丢弃.
(3)透明传输: 首先了解对这个词的理解, 在链路层中表示: 透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的. (摘自百度百科). 通过百科的解释, 我们要做的是"使接收方不会将这样的数据误认为是某种控制信息"。所以我们要对界定符进行特殊处理: 可能在数据部分包含一个"EOT" , 从而可能错误以为是结束符. 然而实际并不是, 所以我们要在界定符的前面加上"ESC"转义字符, 使得真正的"EOT" 能够被正确认知.
(4)差错检测: 现实传输数据时, 可能会遇到"比特差错"的困境, 此时为了检验出错误, 我们设计出"循环冗余检验CRC" 的检验差错的方法. 在数据部分后添加"冗余码(FCS)" 来检验.
(5)summary: 此三个基本问题都是为了保证数据链路层提供"可靠传输"的服务. 何为"可靠传输"的服务, 就是我们不检验这个数据部分的可靠性, 完整性等等, 数据链路层只保证当前传输的帧是无比特差错, 且在数据链路层看来是一个完整的帧.
4. 使用点对点信道的数据链路层
(1)PPP帧的格式:
1)F的标识字段: 十六进制7E的二进制为01111110 , 表示一个帧的开始或结束, 因此F表示为一个帧的界定符.
2)A的地址字段和C的控制字段 并没有携带PPP帧的信息.
3)首部中的协议字段有3层含义, 当字段为0x0021时, 此数据包为IP数据报, 当字段为0xC021时, 此数据报为LCP数据报文, 当字段为0x8021时, 该数据报表示网络层的控制数据.
4)尾部的FCS 就是CRC的FCS.
(2)PPP协议的组成部分: 书P78页描述到:
1)一个将IP数据报封装成帧到串行链路的方法.(IP数据报就是PPP帧中的信息部分).
2)一个用来建立, 配置, 测试数据链路连接的链路控制协议(LCP)
3)一套网络控制协议(NCP), 用来支持不同网络层协议
(3)PPP数据帧的字节填充
1)当PPP使用异步传输时: 书P79页
2)当PPP使用同步传输: 书P80页
(4)PPP协议如何工作
首先链路处于静止状态, 当用户接入ISP并请求拨号时, 就建立了一条从电脑到当地ISP的物理连接. 进入链路建立状态, 此时 LCP(链路控制协议) 开始协商配置选项, 此时个人电脑发送一个LCP数据帧, 此帧包含特定的配置请求信息, 当地ISP接受LCP帧后开始进行响应(1.配置确认帧 2.配置否认帧 3.配置拒绝帧), 若鉴别成功就进入网络层协议状态. 此时PPP链路的两段的NCP(网络控制协议), 根据不同协议而设置不同的网络控制分组, 以达到即使两端的网络协议不一样,但也能使用同一个PPP协议进行通信, 当配置完成后, 就进入链路打开的状态. 当链路结束后, 其中一段执行中止请求LCP分组, 在对方收到该分组后, 转到链路终止状态.
(1)适配器的作用: 首先计算机与外界网络连接是通过适配器进行的. 适配器又可称为"网卡", 并且适配器内装有存储器(ROM)和处理器(RAM), 可对外来数据进行处理和缓存. 当安装了此适配器的驱动程序后, 该程序会告知适配器从存储器中的什么位置把多长的数据块发送到外界or从存储器中的什么位置把外界的信息存储下来. 此外, 当适配器遇到错误的帧时, 无需通知CPU 而自行丢弃该帧, 遇到正确帧再通知计算机交付给网络层. 当计算机要发信息到外界, 就将信息送达到适配器, 组装成帧后发送. 此外,适配器还标记着该计算机的硬件地址, 此地址存储在适配器的ROM中.
(2)CSMA/CD协议: 当一个主机进行广播时, 数据帧的目的地址与局域网内某一主机的适配器地址(MAC地址)匹配时, 该适配器能接收改数据帧, 但是当同一时间又有另外一个主机广播, 将会产生干扰. 所以需要载波监听多点接入检测(CSMA/CD)来解决此困扰.
(3)多点接入:说明这个是总线网路,让计算机多点接入该网络.
(4)载波监听: 不管在发送前,还是发送时, 都要检测信道.如果遇到碰撞, 就停止
(5)碰撞检测: 边发送边监听 信道上的信号. 当已经有数据正在传输, 若自己的适配器还发送或者接受, 就必须停止.
(6)争用期: 当传输一个数据所用时间为PI时, 争用期为2*PI.
(7)当一个数据帧的长度太小时, P89页 , 所以规定最小长度为64 字节. 当小于64字节,被视为无效帧而被迫中断.
(8)强化碰撞: 当遇到碰撞时, 停止发送数据并且发送32or48bit的人为干扰信号, 以便让所有主机知道发送了碰撞.
(9)重传次数:当一个数据帧遇到碰撞而发生停止传输时, 可在R倍512比特时段后(指数退避算法)继续重传, 当经过16次重传后任然失败, 则丢弃该帧, 并汇报.
(10)summary: 适配器获得分组, 并封装成帧, 发送到缓存. 此时进行信道检测. 若为空闲状态, 则发送, 若为忙, 则一直等到空余再发. 在发的同时, 也要进行信道检测, 若在争用期内无检测到碰撞, 则此帧发送成功, 若检测到碰撞, 则执行指数退避算法后,再重传, 16次重传后再失败, 就丢弃该帧.
(11)MAC层
1)MAC帧分为 单播帧, 广播帧, 多播帧.
2)MAC地址又称为硬件地址或者适配器地址.
3)MAC客户数据规定长度为46-1500字节. 加上帧的首部和尾部范围为64-1518字节.
4)MAC帧格式
前两段字节分别为源地址和目的地址, 第三个字段为 类型字段, 用来标志上一层使用什么协议,最后CRC是ECS的CRC.
6. 以太网交换机的自动学习功能
(1)例子: 有A(1)B(3)C(2)D(4)四台计算机分别接入了Z这个交换机中.
(2)运作原理: 首先A向B发帧, 因为交换表内没有信息, 所以首先将A(1)记录进交换表, 再广播除1接口以外所有的计算机. 然后B向A发帧, 在路由表找到A的地址, 所以就将B(3)存进路由表, 并发给A一个数据帧, 后来C,D主机都要向其他主机发帧, 就这样一步一步建立起来交换表, 可能过一段时间就更换设备或者接口, 所以交换表存在一段时间后句要删除并重新建立.