计算机网络--数据链路层

数据链路层的主要作用

封装成帧:将网络层传输的数据加上头部和尾部封装成帧。

透明传输:为了解决传输数据中可能包含有与帧头部或尾部的界定符相同的数据,可以在界定符之前加上一些特殊的字符作为帧界定符,以区分帧的结束与开始。

差错控制:ORC循环冗余校验

数据链路层的可靠传输协议---停止等待协议ARQ

差错重传:发送方向接收方传输一个数据,接收方会对数据进行差错检测(OCR),如果检测出错,那么就会返回一个NAC标志,此时,发送方在收到该标志后,知道数据传输失败,就会再次传输该数据直到传输成功为止。

超时重传:数据帧丢失:如果发送方发送的数据丢失,接收方迟迟没有收到数据不能够及时的给出发送方确认帧(ACK),这是为了避免发送方一直无限等待陷入死锁,发送方每发送一个数据都会启动一个计时器,如果在规定时间内没有收到确认帧,就会重传之前发送的这一帧数据。直到接收方接收到这一数据。

确认帧丢失: 接收方正确接收了数据,但是确认帧丢失了,虽然说发送方迟迟收不到确认帧也会有超时重传,但问题是接收方已经接受到该数据了,如果重传会导致重复接收。这是我们可以为每一个发送的数据带上不同的序号,根据序号来确认,当接收方收到重复帧时应该将重复帧丢弃同时给发送方发送确认帧。

因为以上重传机制都是由计算机自动完成的,因此称为自动重传请求ARQ

信道利用率低,因为发送发在等待接收方确认的过程中信道一直是空闲的。

连续ARQ

边发送边等到接受确认帧:发送方可以连续发送多个分组,不必等到接收方接受之后再发送下一个分组。

帧编号: 由于连续发送需要连续编号,确认帧也需要编号。

接收端出现又差错的帧之后的处理:可以选择向发送端发送否认帧,也可以不响应。

接收端只进行按序接受,如果前面序号的帧出错或丢失了,那么后面的帧只能被接受方丢弃。所以当接收方因为前面的某一帧发生超时重传,那么除了需要重传当前的这一帧数据之外还需要将超时之前所有没确认的帧进行重传,称为回退N。

接收方采用累计确认的方式:也就是为了减少开销,接收方不需要为每一个接受帧都发送一个确认,只需要对按需到达的最后一个分组进行确认,这样就表示到这个分组为止的所有分组都已经正确接受。

滑动窗口机制

发送方在在等待确认的过程中并不能无限制的发送数据,因为一旦有数据帧出错需要回退重传的数据帧过多也会增加开销。并且为了给发出去的数据进行编号也需要占用较多的比特位进而增加更多的传输开销。因此,引入了滑动窗口机制,对发送发已经发的数据但还没有确认的数据帧数据的数量进行限制

在发送方和接收方分别设置的可以移动的发送窗口和接收方窗口。通过窗口设置可以对已经确认的帧的序号进行循环利用,同时加入适当的控制机制来避免二义性。

发送窗口的作用是对发送窗口的流量进行控制,只有在发送窗口内的帧才能被连续发送出去。例如在连续ARQ中,我们假设发送数据为0-7,发送窗口大小为5,那么刚开始时只有0-4号帧可以发送出去,之后在没有收到任何确认的时候滑动窗口保持不动,发送方也停止发送。当收到0号帧的确认之后滑动窗口向前移动一个号,此时第5帧的数据落到滑动窗口内可以发送出去,锁着后续确认帧陆续被接受,发送窗口逐渐向前移动,更多的数据帧被发送出去。

接受窗口的作用时为了确定哪些帧可以被接受,接受帧只有在收到发送序号等于接受窗口内数据帧的序号时才能被接受,否作一律丢弃,在连续ARQ协议中接受窗口的大小为1.当收到0号帧时滑动窗口向前移动一位准备接受1号帧同时发送对0号帧的确认。随着数据帧被按序接受,接收窗口逐渐向前移动。

当发送窗口和接受窗口的大小都为1时就是停止等待协议。为了提高信道利用率,我们可以只对出错和丢失的数据帧进行重传,这个时候需要加大接收窗口的大小,先收下那些发送序号不连续但在接受窗口内的帧,等到所有窗口的帧都到达后再一起提交。这也就是选择重传ARQ。这样可以避免重传已经接受的帧,但需要设置相当容量的缓冲区。

点对点协议:PPP协议(只支持全双工链路)

PPP是一个不可靠的第二层数据链路层协议,PPP的设计是为了同时使用多种网络层协议。主要是用来通过拨号或专线方bai式建立点对点连接发送数据。

ppp协议满足的要求

1.协议要简单             2.封装成帧                 3.透明性传输:当用在异步传输时,使用一种特殊的字符填充法;当用在同步传输链路时,采用硬件来完成零比特填充。

4 要能够在同一条物理链路上同时支持多种网络层协议的运行

5.多种类型的链路上运行,比如串/并行,低/高速、同/异步

异步传输,通常以字符为传输单位,每个字符都要附加一个起始位和停止位,以标记一个字符的开始和结束,并以此实现数据传输同步。所谓异步传输,是指(传输中)字符与字符之间的时间间隔是可以变化的。优点是简单、可靠,适用于面型字符的、对速度要求不严格的通信场合,缺点是通信开销大,每传输一个字符就要附加2~3位,通信效率低下;

同步传输,是以数据块为传输单位。在每个数据块的头部附加一个特殊的字符或比特序列,标记数据块,再在末尾附加一个校验序列,用于对数据传输进行差错控制;所谓同步,就是说发送方发出数据后,等待接收方回应以后才发下一个数据包的通信方式。

6. 差错检测:必须能够对接受方收到的数据进行检测并丢掉有差错的帧,以防止差错帧继续在网络中传输造成资源浪费。

7. 检测链接状态。要能够及时的检测出链路是否正常工作。

8.必须对每一种传输链路设置最大传输单元MTU的默认值

9.网络层地址协商:必须提供一种机制使得网络的两个网络层实体能够通过协商知道或者配置彼此的网络层地址。NCP协议主要包括IPCP、IPXCP等,但我们在实际当中最常遇见的也只有IPCP协议。

IPCP控制协议

IPCP控制协议主要是负责完成IP网络层协议通信所需配置参数的选项协商,负责建立,使能和中止IP模块。IPCP在运行的过程当中,主要是完成点对点通信设备的两端动态的协商IP地址。IPCP包在PPP没有达到网络层协议阶段以前不能进行交换,如果有IPCP包在到达此阶段前到达会被抛弃。

IPCP到底需要协商一些什么参数呢?最重要的是下面两项:

  • 一是关于IP报文的压缩方式,也就是协商双方在传递IP报文的时候,IP报文是采用标准的、非压缩形式的报文格式呢,还是采用压缩形式的报文格式;
  • 二是关于接口的IP地址,因为PPP没有ARP协议,本地怎么知道对端接口IP地址是不是合法的,怎么知道对端是不是和本地的接口IP地址冲突呢?所以希望协商双方的接口IP地址合法性,代替了ARP协议功能。

IPCP控制协议协商有两种方式:静态和动态:

静态协商,也即不协商。点对点的通信设备两端在PPP协商之前已配置好自身IP地址,所以不用在Network阶段协商IP地址,而双方唯一要做的就是告诉对方自身的IP地址,并且对方是否承认我的IP地址合法。在IPCP控制协议完成整个配置的过程时,最理想的情况将会看到如图所示的四种报文,而无其它报文再被发送。

静态协商过程


在静态协商时,发送方和接收方都同时发送Config-Request报文,其中option中只含有该接口IP地址,当对端收到该报文后,会发送一个Config-Ack报文,且Config-Ack中带着对方的IP地址,这个目的是告诉对端:"单播IP地址,且和我没有冲突,请放心使用",其实和ARP功能一样。 刚进入网络层协议阶段时, IPCP的状态机是initial的,但当完成了上述的整个过程后, IPCP的状态机改变为Opened,双方也就可以开始网络层数据网的传送了

 

动态协商 也即是一端配置为动态获取IP地址;另一端通过手动方式配置IP地址,且允许给对端分配IP地址,类似DHCP分配地址给对方

动态协商IP地址过程


1、Client没有配置IP地址,所以在IPCP的Config-Request报文的IP地址配置参数配置选项中的IP地址填充全0(也即是0.0.0.0);
2、当Server收到这个Config-Request报文时,收到Client配置请求报文后会检测IP地址的内容,如果发现为全0,则认为对端的这个IP地址是我要分配给对方IP地址,并将希望分配给对方的IP地址填充到Config-Nak报文内,这样就回应一个Config-Nak报文。
3、Client收到Config-Nak报文后,就会有自己的IP地址,重新发送一个Config-Request报文,这个报文中的IP地址配置选项为Server在Config-Nak报文中所提供的。静态分配的IP地址,对client路由器而言,会在该接口上产生一条到对端接口的32位主机路由
4、Server收到后,只需发送一个Config-Ack报文,告诉Client,就表示接收方的IP地址配置完成。

10, 数据压缩协商:  要协商提供用来协商数据压缩算法的办法

不需要满足的要求:1.纠错功能:只检错不纠错。2.流量控制3.不需要对帧编号 4.不需要支持多点线路5. 不需要支持半双工或单工链路。

ppp协议的三个组成部分:

一个将IP数据报封装到串行链路的方法

一个用来建立配置和测试的链路控制协议LCP(Link conrol protocal)

一套用来支持不同网络层协议的网络控制协议NCP.

LCP主要作用于数据链路层中,而NCP介于网络层和数据链路层之间起作用。

ppp协议的工作过程:用户通过向ISP拨号接入Internet的过程。

一次完整的PPP会话过程包括四个阶段: 链路建立阶段、确定链路质量阶段、网络层控制协议阶段和链路终止阶段

第一阶段:建立链路(LCP)
第二阶段:验证(PAP/CHAP)
第三阶段:网络控制协议(NCP)
第四阶段:终止PPP链路(LCP)

  • (1) 链路建立阶段:PPP通信双方用链路控制协议交换配置信息,一旦配置信息交换成功,链路即宣告建立。配置信息通常都使用默认值,只有不依赖于网络控制协议的配置选项才在此时由链路控制协议配置。值得注意的是,在链路建立的过程中,任何非链路控制协议的包都会被没有任何通告地丢弃。
  • (2) 链路质量确定阶段:也称为链路认证阶段。链路控制协议负责测试链路的质量是否能承载网络层的协议。在这个阶段中,链路质量测试是PPP协议提供的一个可选项,也可不执行。同时,如果用户选择了验证协议,验证的过程将在这个阶段完成。PPP支持两种验证协议:密码验证协议(PAP)和握手鉴权协议(CHAP)。

PAP(密码验证协议),是一种两次握手验证协议,在网络上采用明文方式传输用户名和口令。

①被验证方主动发起验证请求,将本端的用户名和口令发送给验证方;

②验证方通过查看被验证方用户名和口令是否存在、匹配,来发送接收报文或者拒绝报文;

CHAP(挑战握手验证协议),是一种三次握手验证协议,只在网络上传输用户名,而用户口令不再网络上传播。

①验证方主动发起挑战,发送内容是被验证方的用户名;

②被验证方如果匹配到该用户名,就会将该用户名与口令用MD5算法生成一个Hash值,发送给验证方;

③验证方用本地数据库中的该用户名和口令用MD5算法生成Hash值,来匹配被验证方发送的Hash值,如果匹配成功,则认证成功;如果匹配失败,则认证失败;

  • (3) 网络层控制协议阶段:NCP子层,当LCP将链路建立好了之后,PPP根据不同用户的需要,配置不同上层协议。使用相应的网络层控制协议配置网络层的协议,如:IP、IPX等。

  • (4) 链路终止阶段:链路控制协议用交换链路终止包的方法终止链路。引起链路终止的原因很多:载波丢失、认证失败、链路质量失败、空闲周期定时器期满或管理员关闭链路等。

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值