欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    计算机网络原理第三章数据链路层.ppt

    • 资源ID:6342863       资源大小:358.32KB        全文页数:96页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机网络原理第三章数据链路层.ppt

    第三章 数据链路层,数据链路层设计问题,需要完成的特定功能:为网络层提供设计良好的服务接口确定如何将物理层的比特组成成帧处理传输差错调整帧的流速,为网络层提供的服务,基本服务是将源机器中来自网络层的数据传输给目的机器的网络层一般都提供3种服务:无确认无连接服务有确认无连接服务有确认的面向连接的服务,无确认无连接服务,此服务是指源机器向目的机器发送独立的帧,而目的机器对收到的帧不作确认。事先没有建立连接,事后也不存在释放。此服务的适用范围:误码率很低的链路,例如,大多数局域网的数据链路层,有确认无连接服务,此服务不建立连接,但发送的每一帧都进行单独确认如果在某个确定的时间间隔内,帧没有到达,就必须重发此帧此服务的适用范围:无线系统之类的不可靠信道,有确认的面向连接的服务,数据链路层为网络层提供的最复杂的服务源机器和目的机器在传递任何数据之前,先建立一条连接。在这条连接上所发送的每一帧都被编上号,数据链路层保证所发送的每一帧都确实已收到。保证每帧只收到一次,而且所有的帧都是按正确顺序收到为网络层进程间提供可靠传送比特流的服务,面向连接服务传送的三个阶段,第一阶段:通过对双方的用于追踪哪个帧接收到了,哪个帧未接收到所需要的变量和计数器初始化,从而建立连接。第二阶段:进行实际的帧传输。第三阶段:断开连接,释放用于维护连接的变量、缓冲区及其他资源。,成帧,物理层所做的工作是接收一个原始的比特流,并准备把它交给目的地。不能保证这个比特流无差错。上到数据链路层后才做差错检查、纠错等工作。通常的方法是把比特流分成离散的帧,并对每帧计算出校验和。当一帧到达目的地后重新计算校验和时,如果新计算的校验和不同于帧中所包括的值,数据链路层就知道出错了,从而会采取措施处理差错。,把比特流分成帧的一种方法是:在帧之间插入时间间隔缺点:由于网络很难保证计时准确,所以在传输过程中时间间隔可能会被压缩,或者再插入其他间隔。其他的成帧方法:1、字符计数法。2、带字符填充的首尾界符法。3、带位填充的首尾标志法。4、物理层编码违例法。,字符计数法,在帧头部中使用一个字段来标明帧内字符数。面临的问题是计数值有可能由于传输差错而被“篡改”。一旦出错,无法重新找到帧边界。此方法已经很少使用。,带字符填充的首尾界符法,每一帧以ASCII字符序列DLE STX开头,以DLE EXE结束。目的机器一旦丢失帧边界,只需查找DLE STX或DLE EXE字符序列,就可找到它所在的位置。缺点:1、当DLE STX或DLE EXE出现在数据中时会干扰帧界的确定。2、完全依赖于8位字符,特别是ASCII字符。第1点的解决方法:采用字符填充,即在数据中的每个偶然遇到的DLE字符前,插入一个DLE的ASCII代码。,第2点的解决方法:采用位填充允许数据帧包含任意个数的比特,而且也允许每个字符的编码包含任意个数的比特。工作方式如下:每一帧使用一个特殊的位模式,即01111110作为开始和结束标志字节。当发送方的数据链路层在数据中遇到5个连续的1时,它自动在其后插入一个0到输出比特流中。,物理层编码违例法,只适用于那些在物理层介质的编码策略中采用冗余技术的网络。,差错控制,为了保证可靠传送,常采用的方法是向数据发送方提供有关接受方接收情况的反馈信息。典型的做法:协议要求接收方发回特殊的控制帧,作为对输入肯定或否定性的确认。若发送方收到关于某个帧的肯定确认,则它知道此帧已正确到达。若收到否定确认,则意味着发生了差错,相应的帧必须被重传。若接收方没收到帧(即发送的帧丢失)或确认帧丢失,则使用计数器来解决这个问题。,当发送方发送一帧时,通常也启动计数器。计数器计数到设定值时清0。在这个时间间隔内,要保证一帧到达对方并作相应处理后,对方的确认帧还能返回发送方。正常情况下,在计时器终止计时前,帧被正确接收并返回确认帧,计时器清为0。若所传出的帧或确认帧丢失,则计时器会发出超时信号,提醒发送方可能出现了问题,最明显的解决方法是重传此帧。,多次传送同一帧的危险:接收可能两次甚至多次收到同一帧,因而也会将同一帧多次交给网络层。防止措施:对发出的各帧编号,这样接收方就能够辨别是重复帧还是新帧。,流量控制,解决发送方的传送能力比接收方大的问题。此问题会导致的后果:即使传送过程中毫无差错,接收方也会因无力处理收到的帧而会丢失一些帧。解决方法:引入流量控制来限制发送方发出的数据流量,使之不超过接收方的能力。需要某种反馈机制使发送方知道接收方的情况。大部分流量控制方案的基本原理相同。,差错检验和纠正,通常数字传输时,差错很少发生模拟传输经常发生差错光纤干线差错率很小无线通信差错率较大两种基本的处理差错策略:纠错码检错码,纠错码,纠错码:在每一个要发送的数据块上附加足够的冗余信息,使接收方能够推导出已发出的字符应该是什么。通常,一帧包括m个数据位和r个冗余位或校验位。设整个长度为n(n=m+r)。码字:长度为n的单元。海明距离:两个码字中不同位的个数。海明距离的意义:若两个码字具有海明距离d,则需要d个位差错才能将其中一个码字转换成另一个。数据信息的可能组合:2m所有的码字的可能组合:2n,一种编码的校验和纠错能力取决于它的海明距离。为检测出d-1比特错,需要使用距离为d的编码;因为这种编码,d-1比特错决不可能将一个有效的码字改变成另一个有效码字。当接收方看见无效码字时,它就能明白发送了传输差错。为了纠正d比特错,必须用距离为2d+1的编码。这是因为有效码字的距离远到即使发生d个变化,这个发生了变化的码字仍然比任何其他码字都更接近原始码字。,奇偶校验(一个检错码例子),奇偶位的选取原则是使码字内的1的数目是偶数(或奇数)。这种代码的距离为2,因为任何单比特错都会产生奇偶位不正确的码字。,一个纠错码例子,下面代码的距离为5,即能纠正2比特错。假设码字0000000111到达后,接收方知道应该是0000011111。,在给定信息位数目m的情况下,用来纠正单比特误码的校验位数目的下界r满足下式:对2m 个有效信息中的任意一个而言,有n个与该码字距离为1的无效码字,依次将该码字中n个比特变反,即可得到。2m 个信息中的每一个都需占用n+1个位模式,共有(n+1)2m。因为位模式的总数目是2n个,所以有,海明码字内位的编号,从最左边1开始依次编号。位号为2的幂的位是r个校验位,例如,1,2,4,8等,其余为m个数据位。,已知:信息码为:0010。海明码的监督关系式为:S2=a2+a4+a5+a6S1=a1+a3+a5+a6S0=a0+a3+a4+a6求:海明码码字。解:1)由监督关系式知冗余码为a2a1a0。2)冗余码与信息码合成的海明码是:0010a2a1a0。,设S2=S1=S0=0,由监督关系式得:a2=a4+a5+a6=1a1=a3+a5+a6=0a0=a3+a4+a6=1因此,海明码码字为:0010101,已知:信息码为:“1 1 0 0 1 1 0 0”(k=8)求:海明码码字。解:1)把冗余码A、B、C、,顺序插入信息码中,得海明码 码字:“A B 1 C 1 0 0 D 1 1 0 0”码位:1 2 3 4 5 6 7 8 9 10 11 12 其中A,B,C,D分别插于2k位(k=0,1,2,3)。码位分别为1,2,4,8。2)冗余码A,B,C,D的线性码位是:(相当于监督关系式)A-1,3,5,7,9,11;B-2,3,6,7,10,11;C-4,5,6,7,12;(注 5=4+1;6=4+2;7=4+2+1;12=8+4)D-8,9,10,11,12。,3)把线性码位的值的偶校验作为冗余码的值(设冗余码初值为0):A=(0,1,1,0,1,0)=1 B=(0,1,0,0,1,0)=0C=(0,1,0,0,0)=1D=(0,1,1,0,0)=04)海明码为:“1 0 1 1 1 0 0 0 1 1 0 0,检错码,检错码:加入足够的冗余位,使接收方知道有差错发生,但不知道是什么样的差错,然后让接收方请求重传。CRC(循环冗余校验码)基本思想:将位串看成是系数为0或1的多项式一个K位的帧看作是一个K-1次多项式的系数列表,称为K-1阶多项式。多项式的算术运算采用代数域理论的规则,以2为模来完成。加法和减法等同于异或。,生成多项式G(x):当使用多项式编码时,发送方和接收方预先商定的一个多项式。生成多项式的最高位和最低位必须是1。为了计算校验和,帧对应的多项式M(x)必须比生成多项式长。在帧的尾部追加校验和,使得追加之后的帧所对应的多项式能够被生成多项式除尽。,计算校验和的算法:(1)假设G(x)的阶为r。在帧的低位端加上r个0位,所以该帧现在包含m+r位,对应多项式为xr M(x)。(2)利用模2除法,用对应于G(x)的位串去除对应于xr M(x)的位串。(3)利用模2减法,从对应于xr M(x)的位串中减去余数(总是小于等于r位)。结果就是将被传输的带校验和的帧。,已知:信息码:110011信息多项式:M(X)=X5+X4+X+1生成码:11001 生成多项式:G(X)=X4+X3+1(r=4)求:循环冗余码和码字。解:1)(X5+X4+X+1)*X4的积是 X9+X8+X5+X4 对应的码是1100110000。,2)积G(X)(按模二算法)。由计算结果知冗余码是1001,码字就是1100111001。1 0 0 0 0 1Q(X)G(x)1 1 0 0 1)1 1 0 0 1 1 0 0 0 0M(X)*Xr 1 1 0 0 1,1 0 0 0 0 1 1 0 0 1 1 0 0 1T(X)(冗余码),基本数据链路协议,假设物理层、数据链路层和网络层都是独立的进程,它们通过来回传递报文进行通信。这有助于使概念更加清晰,同时也可以强调每一层的独立性。假设机器A希望用一个可靠的、面向连接的服务,向机器B发送一个长的数据流。假定A要发送的数据总是已经准备好了,不必等待这些数据被生成出来。假定机器不会崩溃,也就是说,这些协议只处理通信错误,但不处理因为机器崩溃和重新启动而引起的问题。,当数据链路层接收一个分组时,就在分组之前加上帧头,在分组之后加上帧尾。然后传输到目的机器的数据链路层。假设有一个现成的代码库,其中库过程to_physical_layer用于发送一帧,from_physical_layer用于接收一帧。负责传输的硬件会计算校验和,并追加在尾部。,在本章例子中,数据链路层通过过程调用wait_for_event(&event)来等待帧的到来。只有当一帧到来时,该过程才返回。在实际环境中,可能会通过中断来处理,这里作了简化,忽略了并行活动的细节。,当一个帧到达接收方时,硬件会计算校验和。若有传输错误,会收到通知(event=cksum_err),若无错误,则收到通知(event=frame_arrival),利用from_physical_layer接收进来的帧并做处理。,定义的五种数据结构:见书143,新书168帧的组成:见书144,新书169认识分组和帧的关系很重要。见书144,新书170还有一些库例程,见书144,新书170,内部计时器或时钟。见书145,新书170,协议1:一种无限制的单工协议,假定数据只作单向传输,而且传送和接收的双方网络层都一直处于就绪状态。包括两个过程:发送 接收见书146147 新书171172,协议2:一个单工的停-等协议,抛弃协议1中最不现实的限制 见书147,新书172。不再假设缓冲空间无限大,单工传输。这里要处理的主要问题:如何防止发送比接收快。见书147148,新书172173,协议3:有噪声信道的单工协议,考虑会出差错的信道 见书149151新书174175,/define MAX_SEQ 1/*对协议3来说是1*/Typedef enum frame_arrival,chsum_err,timeout event_type;#include“protocol.h”Void sender3(void)seq_nr next_frame_to_send;frame s;packet buffer;event_type event;next_frame_to_send=0;from_network_layer(,Void receiver3(void)seq_nr frame_expected;frame r,s;event_type event;frame_expected=0;while(true)wait_for_event(,滑动窗口协议,在以上各协议中,数据帧只能按一个方向进行传输。在多数实际的情况下,需要双向传输数据。在协议2和协议3中,传输线路已经用于帧的双向传输了,只不过反向传输的是确认帧。在同一条传输线路上双向都能传输数据帧和确认帧是对使用两条独立的单工物理线路的改进,因为后者的反向信道带宽浪费较大。采用同一条线路时,同一方向的数据帧和确认帧混在一起,通过查看到达帧头部上的KIND字段加以区分。,捎带技术:当一个数据帧到达后,接收过程不是立即发送一个独立的控制帧,而是维持等待,直到网络层向其传送下一个分组。确认被附加到即将发送的数据帧上(使用帧头部的ACK字段)。捎带技术与专门的确认帧相比的主要优点:能较好地利用有效的信道带宽。在帧头部的ACK字段只花费几位,而一个单独的帧要有一个头部、确认以及校验和。较少的帧意味着较少的“帧到达”中断,而且根据接收过程的软件组成,可能接收方需要的缓冲区会更少。,捎带带来的复杂性:数据链路层需要等待多长时间解决方法:等待一个固定的毫秒数,若新分组很快地到来,那么确认就捎带出去,否则,若到时间段结束尚无新的分组到来,数据链路层就只发一个单独的确认帧。下面介绍的三个协议同属于一个类协议滑动窗口协议。这3个协议的区别在效率、复杂性及对缓冲区的要求。,在所有的滑动窗口协议中,每个要发出的帧都包含一个序列号,范围是从0到某个最大值。最大值通常是2n-1,因而序列号能恰好放入n位的字段中。停-等滑动窗口协议使用n=1,限制序列号为0和1,但是复杂的协议版本则使用任意值n。,发送窗口:任何时刻发送过程都保持着一组序列号,对应于允许发送的帧。这些帧在允许发送的范围内,即在窗口范围内。接收窗口:对应于一组允许接收的帧。发送窗口与接收窗口在窗口上、下限、大小等方面不必相同。窗口大小可固定,也可根据帧的发送、接收而变化。,发送方窗口中的序列号代表已发送了,但尚未确认的帧。当网络层的一个新分组到达,发送方窗口上限加1。当确认到来,发送方窗口下限加1。为防止发送方窗口内的当前帧丢失或损坏,所以发送过程中必须把所有的帧保存在内存中,以备重传。若最大的窗口大小为n时,发送过程需要n个缓冲区来保存未确认的帧。若窗口大小达到最大值,发送过程的数据链路层必须强制关闭网络层,直到有一个缓冲区空闲出来为止。,接收过程的数据链路层窗口对应着允许接收的帧。落在窗口外的帧被丢弃。当序列号等于窗口的下限的帧收到后,把它交给网络层,产生一个确认,窗口整个向前移动一个位置。不像发送方的窗口,接收方窗口总是保持初始时的大小。窗口大小为1,意味着数据链路层只能顺序地接收帧,但对于较大的窗口而言,并非如此。网络层总是按适当的次序接收数据,而不考虑数据链路层窗口的大小。,窗口为1的3位滑动窗口协议,协议4:一个1位滑动窗口协议,使用了停-等方式,因为发送过程发出一帧后,在发送下一帧之前,需要等待已发送帧的 确认。一个例子,初始时,没有帧要发送,所以发送过程窗口的上限和下限相等。,Void protocol4(void)seq_nr next_frame_to_send;seq_nr frame_expected;framer s;packet buffer;event_type event;next_frame_to_send=0;frame_expected=0;from_network_layer(,while(true)wait_for_event(,确认字段包含的帧编号同发送过程试图发送的帧编号一样,则发送过程知道存储在缓冲区中的帧已经被正确地接收,可以从网络层取下一个分组。若不一样,则继续发送同一帧。通常,两个数据链路层之一首先开始。否则,会造成特殊的状况。例如,假定A试着向B发送帧0,而B也试着向A发送帧0。假定A向B发送了一帧,但是A的超时时间间隔设置得过短。结果会导致:A也许重复地超时,发送一系列同样的帧,都是seq=0,ack=1。,当第一个有效的帧到达B时,此帧就被接收,frame_expected被置1。这样所有的重传帧都会被拒绝,这是因为B正在期望序列号为1,而不是为0的帧。由于所有重复帧ack=1,而B仍然在等待帧0的确认,B就不能从网络层取一个新的分组。若双方同时发送一个初始化分组,会造成一种特殊情况。若B在发送它的一个帧之前,等待A的第一个帧,那么次序如(a)所示。若A和B同时开始通信,他们的第一个帧交叉,数据链路层如(b)所示。,协议5:使用退后n帧的协议,上面已述协议都作了假设:一个帧到达接收方的传输时间,加上确认帧来回的传输时间可以忽略不计。有时,这种假设显然是不成立的。在有些情况下,过长的往返时间对带宽的利用效率可能有重大的影响。P156,P181此问题可看成是要求发送过程在发送另1帧之前,等待前一个确认的规则所造成的后果。,设想使用协议4通过卫星(往返传输延时500ms,发送速率50kb/s)发送1000位的帧。在T=0ms时,发送过程开始发送第一帧;在T=20ms时,此帧完全发送完毕;在T=270ms时,此帧完全到达接收方;在T=520ms时,确认帧返回到发送方。以上还只是在接收方不必等待,而且确认帧是短帧才能做到。发送方在500/520或96%的时间内处于阻塞状态。长的传输时间、高带宽和短的帧长导致效率很低。,解决方法:允许发送过程在阻塞之间发送多帧,而不是一帧。管道化 若信道的容量为b位/秒,帧的大小为1位,且往返传输时间为R秒,则传输1帧需要的时间是1/b秒。在数据帧的最后1位发出去后,确认要返回至少还要延时R/2秒。在停-等协议中,线路有1/b时间忙和R时间空闲,线路利用率是1/(1+bR)由于确认返回的延时是一个非0值,所以原则上,可以使用管道化将空闲时间利用起来。,建立在不可靠的通信信道上的管道化帧带来的问题:若位于长长的帧流中间的一帧丢失或损坏时,在发送过程尚未发现已经出错之前,大量的后继帧就会到达接收方。当一个坏帧到达接收方后,显然此帧应当丢弃。但是接收过程如何对待其后所有正确的帧?,两种处理方法:后退n帧选择性重传,后退n帧,数据链路层除了下次该交给网络层的下一帧外,拒绝接收其它任何帧。,选择性重传,由接收方的数据链路层存储坏帧之后的所有正确的帧。当发送过程意识到某个帧出错时,只是重传此坏帧,而不是所有的后继帧。,(a)对应接收窗口大小等于1时的一个差错的处理数据链路层除了下次该交给网络层的下一帧外,拒绝接收其它任何帧。若出错率高,将浪费大量带宽。(b)对应接收窗口大小大于1时的一个差错的处理在窗口中的所有帧都可能被接收,并暂存起来,直到所有的前导帧都交给了网络层。在窗口很大时,将需要大量的数据链路层内存。(a)与(b)是带宽和数据链路层缓冲区空间的折衷。,(a)的情况,即协议5,虽然不缓存出错后到达的帧,但也没有完全摆脱缓存的问题。发送过程必须保存发送过的帧,直到发送过程明确地知道这些帧已被接收过程接受。此协议有多个待确认的帧,因此在逻辑上需要多个计时器,每个等待确认的帧都需要一个计时器。各个帧时间超时是各不相关的。,在选择性重传协议中(协议6),发送过程和接收过程都维持一个可接受序列号的窗口。发送方的窗口大小从0开始,增长到某个最大值MAX_SEQ。接收方的窗口总是保持固定大小,并等于MAX_SEQ。接收方在其窗口中,为每个序列号都提供一个缓冲区。帧先必须保存在数据链路层中,而不交给网络层,直到比它小的所有帧都按次序已经交给了网络层后,此帧才递交给网络层。,帧的非顺序接收在要求帧按顺序接收的协议中会导致一些问题:,解决方法:使接收过程前移其窗口后,与原先的窗口之间没有重叠。为了保证没有重叠,最大的窗口大小至多为序列号范围的1/2。对协议6来说,窗口大小为(MAX_SEQ+1)/2。接收过程所需的缓冲区数量等于窗口的大小,而不是序列号范围。接收过程所需的计数器的数目等于缓冲区数量,而不是次序空间的大小。实际上,一个计数器对应一个缓冲区,当计数器超时,缓冲区中的内容就重传。,在协议5中,有一个隐含的假设:信道的负载很重。这样可使用捎带技术。若反向信道负载轻,确认会长时间滞留。若一个方向有很多通信量,而另一方向无通信量,那么MAX_SEQ的分组发送出去后,协议就阻塞了。,在协议6中,上述问题的解决方法:由start_ack_timer启动一个辅助计时器。若超时且无反向通信的话,发送一个单独的确认帧。用在辅助计时器上的超时要比用在计算数据帧超时的时间短。协议6使用比协议5更加有效的策略来处理差错:一旦接收过程怀疑出错,就发一个否定性确认帧NAK给发送过程。,协议的描述和验证,实际的协议,以及实现这些协议的程序通常是十分复杂的。因此,人们试图寻找一些形式化的、数学的技术来描述。有限状态机模型Petri网模型,有限状态机模型,在这个模型中,每个协议机(即发送方或接收方)在每个时刻总是处在一个特定状态,其状态是由所有变量值组成。为分析起见,可将大量状态组合在一起。例如,对协议3的接收方,可抽象出两个重要状态:等待帧0和等待帧1。其他状态可作为过渡状态。若所有变量需要的位数为n的话,则状态数有2 n个。整个系统的状态是由两个协议机和信道的所有状态的组合。信道的状态由其内容决定。例如,对协议3来说,信道有4种可能的状态:帧0、帧1从发送方到接收方、相反方向的确认帧、空信道。,有限状态机可以把协议形式化成一个四元组模型(S,M,I,T)。其中:S是进程和信道可能进入的状态集合。M是能在信道上进行交换的帧的集合。I是进程初始状态的集合。T是两两状态之间转换的集合。,用协议3作为有限状态机模型的例子。每种状态由3个字符XYZ所标识。X是0或1,对应着发送方试图发送的帧。Y是0或1,对应着接收方希望收到的帧。Z是0,1,A或空(-),对应于信道的状态。初始状态选为(000),即发送方刚发送帧0,接收方希望收到帧0,而且帧0现在正在信道上。,9种转换:转换0为信道上丢失其上的内容。转换1为信道把分组0正确地交给了接收方,接收方于是改变其状态为希望收到帧1,并且发出一个确认。此外,还对应于接收方将分组交给网络层。其他转换见P167,在正常的操作中,转换1,2,3,4依次不断地重复。,HDLC高级数据链路控制,面向位的协议使用位填充三种类型的帧:信息帧、监控帧、无序号帧,因特网中的数据链路层,因特网是由各个主机和路由器及连接它们的通信设施组成的。在单个建筑物内,广泛地使用LAN来互联,但在大多数宽阔的区域中,网络的结构是通过点到点线路建成的。点到点线路中的数据链路层协议 局域网协议,点到点线路中的数据链路层协议:点到点通信主要用在两种情况下。第一种情况:数以千计的机构有一个或多个LAN,连接一个路由器(或网桥,其功能相似)。通常,这些路由器是通过一个主干LAN互联的。典型地,所有与外界的连接都是通过一个或两个路由器来实现的,这个路由器与远处的路由器通过点到点的线路连接。,第二种情况:数百万的单台计算机通过调制解调器和拨号电话线,直接与因特网相连。通常,是用户家庭中的PC机拨号连接因特网服务提供者(Internet service provider)。有时,家用PC的功能就像基于字符的终端,登录到因特网服务提供者的分时系统中去,但在图形化的因特网服务中,则不具备这种功能。另外一种情况是家庭PC机能够拨号连接因特网服务提供者的路由器。,无论是路由器-路由器租用线路连接方式,还是拨号主机-路由器连接方式,在线路上需要一些点到点的数据链路层协议,完成成帧、差错控制等数据链路层功能。有两个这样的协议广泛地应用在因特网上,即SLIP和PPP。,串行线路IPSerial Line IP:是由Rick Adams于1984年提出的,其目的是要把Sun工作站连接到因特网上去。此协议非常简单,是在RFC1055中描述的。工作站只是在线路上发送了原始的IP分组,在其后用了特殊的标志字节(0 xC0),便于成帧。如果标志字节出现在IP分组内部,就使用一种字符填充形式。在其位置上顺序发送两个字节(0 xDB,0Xdc)。更新一些的SLIP版本进行了TCP和IP头部压缩。连续分组常常共用许多头部字段。这是通过省略相同于前一个IP分组相对应字段而进行压缩的。在RFC1144中描述了这些优化。,SLIP存在的问题:第一,它不能进行任何错误检测和纠错工作。第二,SLIP只支持IP。第三,双方都必须预先知道另一方的IP地址,在建立过程中,地址不能自动地设定。第四,SLIP没有任何形式的身份验证。第五,SLIP不是一个已通过的因特网标准。,PPP点到点协议(point-to-point protocol):为了克服SLIP的缺点,1992年制定了PPP协议,有如下三个组成部分:1、一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大接收单元MRU(MAXIMUM RECEIVE UNIT)的限制。MRU的默认值是1500字节。2、一个用来建立、配置和测试数据链路连接的链路控制协议LCP(LINK CONTROL PROTOCOL)。通信的双方可协商一些选项。在RFC1661中的定义了11种类型的LCP分组。3、有一套网络控制协议NCP(NETWORK CONTROL PROTOCOL),其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECNET(由数字设备公司推出并支持的一组协议集合)以及APPLETALK(是在苹果计算机公司在20世纪八十年代开发并不断完善的局域网络协议簇)等。,PPP的帧格式和HDLC的帧格式相似,前3个字段和最后两个字段与HDLC的格式是一样的。标志字段F仍为0X7E(符号“0X”表示它后面的字符是用十六进制数表示的。十六进制数的7E的二进制数表示是01111110)。,地址字段A通常置为0XFF(即11111111),表示所有的站都接收这个帧。因为是点对点链路,地址字段实际上并没有什么意义。控制字段C通常置为0X03(即00000011)。这表示PPP帧不使用编号。PPP不是面向比特而是面向字节的,因而所有的PPP帧的长度都是整数个字节。,PPP与HDLC不同的是多了一个2个字节的协议字段。当协议字段为0X0021时,PPP帧的信息字段就是IP数据报。若为0XC021,则信息字是PPP链路控制数据,而0X8021表示这是网络控制数据。在RFC1700中定义了PPP使用的协议字段落的代码。协议字段不同,后面的信息字段类型就不同。如:0 x0021信息字段是IP数据报0 xC021信息字段是链路控制数据LCP0 x8021信息字段是网络控制数据NCP0 xC023信息字段是安全性认证PAP0 xC025信息字段是LQR0 xC223信息字段是安全性认证CHAP,当信息字段中出现和标志字段一样的比特(0X7E)组合时,就必须采取一些措施使这种如同标志字段一样的比特组合不出现在信息字段中。当PPP用在同步传输链路时,协议规定采用硬件来完成比特填充(和HDLC的做法一样)。当PPP用在异步传输时,它就使用一种特殊的字符填充法。具体的做法是:将信息字段中出现的每一个0X7E字节转变成为2字节序列(0X7D,0X5E)。若信息字段中出现一个0X7D的字节,则将其转变成为2字节序列(0X7D,0X5D)。,若信息字段中出现ASCII码的控制字符(即数值小于0X20的字符),则在该字符前面要加入一个0X7D字节,同时将该字符的编码加以改变。例如,0X03(在控制字符中是“传输结束”ETX)就要变为0X31。这些在RFC1662中均有详细的规定。这样做的目的是防止这些表面上的ASCII码控制符(在被传输的数据中当然已不是控制符了)被错误地解释为控制符。,在RFC1661定义的PPP不使用序号和确认。因此,PPP不提供可靠传输的服务。所谓“可靠传输”是指所传送的帧“无差错”、“不丢失”和“不重复”。要做到这一点,就应当在数据链路层中使用序号和确认机制,例如,像HDLC那样。,PPP不使用序号和确认机制是出于以下的几点考虑:(1)若使用可靠的数据链路层协议(如HDLC),开销就要增大。在数据链路层出现差错的概率不大时,使用比较简单的PPP协议是比较合理的。(2)在因特网环境下,PPP的信息字段放入的数据是IP数据报。假定我们采用了能实现可靠传输但十分复杂的数据链路层协议,然而当数据帧在路由器中从数据链路层上升到网络层后,仍有可能因网络拥塞而被丢弃(IP层提供的是“尽最大努力”的交付)。因此,数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。(3)PPP协议在帧格式中有帧检验序列FCS字段。对每一个收到的帧,PPP都要使用硬件进行CRC检验。若出现有差错,则丢弃该帧(一定不能把有差错的帧交付给上一层)。端到端的差错检测最后由高层协议负责。因此,PPP协议可保证无差错接受。,局域网协议:关于局域网的标准有多种,通常以太网就有两个标准,即DIX Ethernet V2与IEEE的8023标准。由于厂商们在商业上的激烈竞争,IEEE被迫制定了几个不同的标准,如8024令牌总线网、802.5令牌环网等。,为了使数据链路层能更好地适应多种局域网标准,802委员会就将局域网的数据链路层拆成两个子层:逻辑链路控制LLC(LOGICAL LINK CONTROL)子层。媒体接入控制MAC(MEDIUM ACCESS CONTROL)子层。与接入到传输媒体有关的内容都在MAC子层,而LLC子层则与传输媒体无关。不管采用何种协议的局域网对LLC子层来说是都透明的。,20世纪90年代后,激烈竞争的局域网市场逐渐明朗。以太网在局域网市场中已取得了垄断地位,并且几乎成为了局域网的代名词。在这种情况下,逻辑链路控制子层LLC的作用已不大,因此很多厂商生产的网卡上就仅装有MAC协议而没有LLC协议。这里介绍的以太网主要都是假定数据链路层只有一个MAC层而不考虑LLC子层。这样做对以太网工作原理的讨论会更加简洁。,谢 谢!,

    注意事项

    本文(计算机网络原理第三章数据链路层.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开