数据链路层 | Personal Blog

数据链路层

点对点信道

数据链路层将网络层的数据封装成帧发送到链路上

封装成帧

封装成帧指在需要传输的数据两端分别添加首部和尾部

首部和尾部的作用在于界定一个帧的范围以及判断帧是否完整

每一种链路层协议都规定了所能传输的帧长度的上限

透明传输

当需要传输的数据部分中没有与首部和尾部相同的代码时,称为 透明传输

有时数据传输的过程中,我们需要传输与首部或尾部相同的数据,于是我们需要在这些代码的前面加上转义字符

差错检测

为了保证数据传输的可靠性,需要采取差错检测

循环冗余检验:将数据划分为K个比特一组,每组之后加上N位冗余码

冗余码:在每组之后加上N个0,再模2除以事先约定的除数P,得到余数作为冗余码(N为P的位数减一)

检测:每一帧除以P,若余数为0,表示无差错

差错检测可以保证接收到的帧在传输过程中没有产生差错,但并不能保证帧丢失、帧重复、帧失序的情况不出现.

点对点(PPP)协议

构成

PPP帧的首部由四个字段,尾部由两个字段构成

首部的第一个字段为标志字段F(0x7E),标志着帧的边界

首部的第二、三个字段为地址和控制字段,无意义

首部的第四个字段为协议字段:0x0021表示IP数据报;0xC021表示PPP控制协议LCP;0x8021表示网络层的控制数据

尾部的第一个字段为循环冗余测试的冗余码

尾部的第二个字段同样为标志字段F,标志帧的边界

字节填充

异步传输时采取字节填充

异步传输的转义字符为0x7D

将0x7E转变为0x7D,0x5E

将0x7D转变为0x7D,0x5D

将ASCII码的控制字符的编码进行改变,并在前面加上转义字符

零比特填充

同步传输时采取零比特填充

每5个1比特后插入一个0比特

PPP协议的工作状态

链路建立

当用户和ISP建立了物理层连接后,PPP由链路静止状态进入链路建立状态,双方通过发送LCP(链路控制协议)包对传输所需的一些配置进行确定

鉴别

双方通过LCP通信后,就进入鉴别状态,双方使用口令鉴别协议(PAP)或口令握手鉴别协议进行身份鉴别

网络层协议

若双方鉴别身份成功,则进入网络层协议状态,双方根据网络层的不同协议互相交换网络层特定的网络控制分组。网络层配置完成后,进入链路打开状态

广播信道

共享信道

动态媒体接入控制(多点接入)

随机接入: 所有的用户都可以随机发送消息,但如果有两个或更多的用户同时申请发送消息,则会发生碰撞,所有发送的消息都失效,需要额外添加解决冲突的网络协议

受控接入: 用户发送消息必须遵循一定的控制

计算机与外界局域网的连接通过通信适配器(网络接口卡)进行,当适配器接收到正确的帧时,使用中断通知计算机;适配器中装有进行缓存的存储芯片,以便在中断请求未响应时可以继续收发信息

CSMA/CD协议

CSMA(Carrier Sense Multiple Access with Collision Detection)载波监听多点接入/碰撞检测 同一时间只能有一台计算机发送数据

多点接入指总线型网络,计算机以多点接入方式连接在一根总线上

载波监听指检测信道,在发送前、发送中都必须检测信道。发送前若没有其他站发送消息(空闲),自己取得发送权。发送中检测总线上的信号电压,若发现至少有两个站同时发送数据,适配器立即停止发送,避免发生信号失真。

由于可能在某一段时间内同时有多个站发送信息,双方发送的信息可能会失效,这种情况称为以太网发送的不确定性.

争用期:指一个站保证所发送的数据帧没有发送碰撞至多经过的时间;即以太网的端到端往返时间

截断二进制指数退避:当发生碰撞后,每个站并不是等待信道空闲后立即发送数据,而是等待(退避)一个随机的时间。具体为:设重传的次数为k,每次需要重传时从[0,1,···,(2k-1)]中取出一个数r,将争用期乘以r即为本次重传的重传推迟时间 重传16次仍不成功,丢弃该帧,向高层报告

强化碰撞:发送数据的站一旦发现发生碰撞,继续发生32或64比特人为干扰信号,以通知所有用户当前发生碰撞

某些适配器可以通过编程方法识别多播地址

以太网规定帧间最小间隔为9.6微秒,以便接收方做好接收下一帧的准备

MAC帧格式

为了保证最小帧长,在数据字段长度小于46字节时,MAC子层会在数据字段的后面插入一段填充字段以补足帧长,接收方从MAC帧结尾向前数4个字节即可得到填充字节的结束位置

MAC帧的字段中没有指出数据字段的长度,所以上层协议必须写明长度

为了使接收方的时钟与发送方一致,在MAC帧前插入8字节的前同步码,前62位是0与1的交替,最后两位是连续的两个1表示帧传输的正式开始

以太网的物理扩展

集线器

集线器工作在物理层,接口只是简单地转发数据,由集线器连接的网络本质上还是使用CSMA/CD协议

集线器并不进行碰撞检测,也就是说,在同一时间一个碰撞域之内只能有一个站发送数据

交换机

交换机可以无碰撞地进行数据传输,每一个用户独占归其所有的全部资源而不受到碰撞域的限制

交换机从无到有地建立交换表,当收到发送帧后,将发送方的接口保持在交换表中一段时间

本文共2265字符