数据链路层主要用于加强物理层传输比特流,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路;
1、为网络层提供服务;
2、链路管理,即连接的建立、维持、释放(用于面向连接的服务);
3、封装成帧;
4、流量控制;
5、差错控制(帧错、位错);
数据链路 = (物理)链路 + 通信协议;
封装成帧:在帧的数据部分添加首部和尾部,首尾部作用在于帧定界;
MTU: Maximum Transfer Unit 最大传输单元,链路层协议规定的所能传输的帧的数据部分长度上限;
帧格式:
透明传输指无论什么样的比特组合的数据,都能够按照原样没有差错地通过数据链路层;
当所传送数据中的比特组合恰巧与某一控制信息完全一样时,就必须采取措施来保证接收方不会将这样的数据误认为是某种控制信息,这样才能保证透明传输;
使用字符填充实现,即在数据中出现的“SOH”和"EOT"前插入转义字符"ESC"(二进制为00011011);
误码率:一段时间内,传输错误的比特占所传输比特总数的比率;
信噪比越越高,误码率越低;
对于质量较好的有线传输链路,数据链路层仅使用CRC检验差错,并不要求其提供可靠传输的服务;
对于质量较差的无限传输链路,数据链路层协议使用确认和重传机制,向上层提供可靠传输;
使用循环冗余检验CRC实现差错检测;
步骤:
1)设每组k个比特,在数据后添加n位冗余码(初始为0);
2)得到的(k+n)位数除以双方事先商定的长度为(n+1)位的除数p;
3)除法运算:首位为1则上1,首位为0则上0,除到余数R只有n位;
4)这个余数R作为冗余码拼接到数据后发送出去;
5)接收端收到数据后一九进行CRC检验,若传输过程无差错,则得到的余数R必为0;
PPP协议用于计算机和 ISP 进行通信时使用的数据链路层协议;
PPP协议能在同一条物理链路上同时支持多种网络层协议;
PPP帧:
标志字段F (十六进制的7E)用于PPP帧的定界符;
异步传输时,采用字节填充来实现透明传输,填充的转义字符为0x7D;
同步传输时,采用0比特填充来实现透明传输,即每发现5个连续的1就立即填入1个0;
PPP协议包括两个部分:
1)链路控制协议LCP,用于向ISP传递一些将要使用的PPP参数;
2)网络控制协议NCP,ISP根据参数向新接入的用户主机分配一个临时IP地址;
高级数据链路控制(High-Level Data Link control) ,是一个在同步网上传输数据、面向比特的数据链路层协议;
一、HDLC的站
1、主站:发送命令(包括数据信息)帧、接受响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等;
2、从站:接受由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制;
3、复合站:既能发送,又能接受命令帧和响应帧,负责整个链路的控制;
二、三种数据操作方式
1、正常响应方式
2、异步平衡方式
3、异步响应方式
三、HDLC帧
四、PPP协议与 HDLC协议
HDLC、PPP只支持全双工链路;
都可以实现透明传输;
都可以实现差错检测、但不纠正差错;
区别:
PPP协议 | 面向字节 | 2 B 协议字段 | 无序号和确认机制 | 不可靠 |
---|---|---|---|---|
HDLC协议 | 面向比特 | 没有 | 有编号和确认机制 | 可靠 |
局域网的优点:
1、广播功能,从一个站点很方便地访问全网;
2、灵活、可靠;
3、由于范围小,通信延迟时间段、误码率低、可靠性较高;
用的最多的拓扑结构为星型结构;
802.3局域网即称为以太网;(802.5令牌环网、802.11无线局域网)
一、以太网特点
1、造价低廉(以太网网卡不到100块)
2、应用最广泛的局域网技术;
3、比令牌环网、ATM网便宜、简单;
4、速率达到要求:10Mb/s~10Gb/s;
二、两个标准
DIX Ethernet V2: 第一个局域网产品(以太网)规约;
IEEE 802.3:第一个IEEE的以太网标准;
二者在帧格式上有细微区别
三、以太网提供无连接、不可靠服务
无连接:事先不建立连接,没有握手过程;
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责;
以太网只实现无差错接受、不实现可靠传输;
四、逻辑上总线型,物理上星型
使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议;
五、适配器与MAC地址
适配器:主机中的一块网络接口板,又称为网络接口卡,网卡,NIC;用于计算机和外界局域网的连接;
MAC地址:每个适配器有一个全球唯一的58位二进制地址,前24位代表厂家,后24位厂家指定;
适配器与CPU并行;
六、以太网MAC帧
类型:2字节的类型字段,标志上一层使用的是什么协议,以便把收到的MAC帧数据交给上一层的这个协议;(比如 0X0800表示上层使用IP协议)
数据字段:长度在46-1500字节之间,46是由最小长度64减去18字节的首尾长度;
帧检验序列FCS:使用CRC校验;
IEEE 802标准将数据链路层分为逻辑链路层LLC子层和介质访问控制MAC子层;
1)静态信道划分:即频分复用、时分复用、码分复用等,只要分配到了信道就不会发生冲突,但代价高,不适合局域网;
2)动态媒体接入控制,多点接入:
不监听信道,不按时间槽发送,想发就发,冲突再随机重发;
改进后的时隙ALOHA协议:把时间分成若干时间片,所有用户在时间片开始时刻同步接入网络信道,冲突则要等下一个时间片开始再发送;提高吞吐量;
CSMA/CD即载波监听多点接入/碰撞检测协议;
空闲发送
边听边发
忙则停发
争用期2τ:发送端发送数据后,最多需要两倍的总线端到端往返传播时延(2τ)就能知道自己发送的数据是否发生碰撞;
协议规定了基本退避时间为争用期2τ,具体的争用期时间为51.2μs,即对于10 Mbit/s的以太网,最短帧长64字节,即 512 bit;
CSMA/CD属于半双工通信,即一个站不能同时接受和发送;
Q:如何确定碰撞后的重传时机?
截断二进制指数退避
步骤:
1)K=Min [ 重传次数,10 ]
2)从[0,1,…,2k-1]中随机取一个数,记为r,重传应推后r倍的争用期;
3)当重传16次都不能成功是,丢弃该帧,向高层报告;
CSMA/CD即载波监听多点接入/碰撞避免协议;
Q:为什么要有CSMA/CA?
A: 1、传输介质不同:CD适用于有线网,通过电压变化来检测冲突;而CA适用于无线网络,采用能量检测;2、CD无法做到全方面检测碰撞;3、隐蔽站问题:当A和C都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会导致冲突;
流程:
1、空闲发送RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据要持续发送的时间等信息;
2、忙则等待;
3、接收端收到RTS后,将响应CTS(clear to send)
4、发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据);
5、接收端收到数据后,用CRC来检验数据是否正确,正确则响应** ACK帧**;
6、发送方收到ACK则进行下一个数据帧的传送,若没有则一直重传(使用二进制退避算法)直到最大重传次数为止;