数据链路层
一、数据链路层的基本问题
1、数据链路和帧
(1)数据链路层使用的信道:点对点信道(一对一通信)、广播信道(一对多通信)
(2)链路:一条无源的点对点的物理线路段。中间没有其他的任何交换节点。
(3)数据链路:链路+通信协议(用来控制数据传输)
(4)既然有通信协议,那麽肯定有用来实现协议的硬件和软件。现在一般使用适配器(网卡)来实现,适配器包括数据链路层和物理层两层的功能。
2、三个基本问题(封装成帧、透明传输、差错控制)
(1)封装成帧:就是在一段数据的前面和后面加上首部和尾部,这里的作用就是进行帧定界。
比如下图是一种使用控制字符来进行帧定界的方法:
(2)透明传输:物理层不管数据部分是什么,按照接收到的传送过去(自己的理解)
要解决这个问题:在帧定界符前面添加一个转义字符,如果遇到转义字符,那么在转义字符前面也添加一个转义字符。
(3)差错检测:在传输的过程中可能出现差错,比如传输的比特流,从1变成了0或者又从0变成了1。因此需要差错检测。进行差错检测的一种常用方法就是循环冗余检测。
举一个简单的例子,假设数据M,除数P(n位),那么在M后面添加n-1个0再用来除以P就行了,取出余数添加到M后面就是需要发送的新数据,这里的余数便是帧检验序列。
那么接收端怎么进行验证呢?
用接收到的数据再次除以P,检查R,如果R=0则无差错
除数的另外一种表示比如P=1101可以表示为P(x)=x^3+x^2+1
(4)这里需要注意两点:第一个就是CRC是循环冗余检验,是一种检错方法,但是不能检测出来具体的那一个比特出错了。第二点就是FCS是帧检验序列,也就是冗余码(计算得到的余数)。后者可以通过前者计算得到,但是也可以通过其它方法得到。
二、点对点协议(PPP协议)
1、PPP协议的特点
(1)拨号电话线接入网络或者广域网之间的路由器使用的都是PPP协议
(2)一共有三个组成部分:
-将IP数据报封装到串行链路的方法
-建立、配置和测试数据链路连接的链路控制协议LCP
-网络控制协议NCP,支持不同网络层的协议。
2、PPP协议的帧格式
(1)标志字段7E:帧定界符
(2)地址字段FF:不起作用
(3)控制字段03:不起作用
(4)协议:表示信息部分是什么数据(比如ip数据报、LCP等等)
(5)FCS:帧检验序列
3、PPP协议透明传输问题的解决
(1)异步传输-字符填充
帧定界符7E—>7D,5E
出现7D—>7D,5D
小于20的:比如03à7D,23
(2)同步传输-比特填充
由于7E=01111110中连续有6个1,所以此方法只要发现有连续五个1就填充1个0.
4、PPP协议的工作状态
(1)用户拨号,路由器的调制调解器做出确认并建立物理连接。
(2)PC机向路由器发出LCP帧,配置参数以及网络层
(3)NCP分配IP地址
(4)收回资源并释放连接。
三、广播信道的数据链路层
1、局域网的数据链路层
(1)局域网特点:为一个单位所有,站点数目有限,具有广播功能。跨越了数据链路层和物理层。
(2)以太网:采用带有冲突检测的载波监听多路访问(CSMA/CD)访问控制方法的总线Ethernet。
(3)以太网的两个标准:DIX Ethernet V2和IEEE的802.3,由于两者差别很小,一般来说可以将802.3局域网简称以太网,但是严格来说以太网应该是符合V2标准的局域网。
(4)适配器的作用:接收帧和发送帧,并且协议也是其实现的,第二章中数据链路=链路+协议,这个协议就是适配器(网卡)实现的。
2、CSMA/CD协议
最初的以太网上是没有有源器件的。
总线上的每一个计算机都能收到B发送的信息,但是由于帧首部的地址和自己的mac地址不匹配所以就丢弃。只有D收下来。
(1)为了通信的简便,以太网采用:不必先建立连接就可以直接发送数据。另外以太网不对发送的数据进行编号,也不要求对方确认。
这是因为局域网的通信质量一般都比较好。
(2)CSMA/CD—载波监听、多点接入/碰撞检测
只能双向交替通信(半双工),不能全双工
(3)争用期、碰撞窗口:端到端的往返时延
以太网取51.2us。对于10Mb/s的以太网,争用期内可以发送512bit,也就是64字节。只要这个时间内没有发生碰撞,可以认为可以继续发送。
因此64字节被称作最短有效帧长,只要小于64字节的,都被称作无效帧。
(4)帧间最小间隔:9.6us,96bit的时间。这样做的目的就是为了刚刚接受到帧的站有时间接收缓存,为下一次接收做准备。
(5)二进制指数类型退避算法
(6)工作流程
(7)以太网信道利用率
第一部分是若干争用期(执行二进制指数退避算法之后的时间)
第二部分发送成功是发送时间。
第三部分是最后一个bit到达目的站的时间,也就是单程端到端时延。
3、以太网MAC层
MAC层的地址就是物理地址、硬件地址。也就是适配器标识符。6个字节,48bit
适配器从以太网中收到帧之后会进行地址检查,如果是发往本站的就收下,不是就丢弃。
类型:表示上层使用的是什么协议,以便把帧交给上层的这个协议。比如0800是IP数据报。
最小的数据长度是46字节:最短有效帧长64字节-(6+6+2+4)=46//(减去首部和尾部)
一般来说,还会插入以下的前同步码和帧定界符(8字节)
无效的mac帧:
- 字节数不是整数
- 数据部分不在46-1500字节。
- 帧长度不在64-1518字节
- FCS帧检验序列出现差错
4、使用集线器的星形拓扑
集线器工作在物理层,而网桥和交换机工作在数据链路层,网桥和交换机会检查帧再转发,而集线器不会,会广播发送,这也就是为什么其拓展以太网的时候会降低吞吐量的原因。