您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 数据链路层协议的分析与应用
数据链路层协议的分析与应用第一章网络协议概述协议就是指一套规则和协定。规定计算机间交换的消息格式和含义的协定就被称之为通信协议,或计算机网络协议。为什么我们要引入通信协议这个概念呢?原因是基本的通信硬件是能够从一点到另一点传送位串的机制。但是,如果光使用纯硬件来进行通信的话,那就好象是用0和1在进行编程一样,非常的不方便。所以为了方便编程人员,联网的计算机使用了复杂的软件,为应用程序提供方便的高层接口。这种软件自动处理大部分的底层通讯细节的问题,使应用程序间的通信变的很容易。因此,大多数的应用程序都要依靠网络软件来通信,并不直接与网络硬件打交道。协议的设计者并不是设计一个单一的,庞大的协议来为所有可能的通信规定完整的细节,而是把通信问题进一步划分为多个子问题,然后再为每个子问题设计各自的协议。为了确保通信系统的有效和高效就必须仔细地划分各个协议。并且确保这些协议之间能够协同工作。这里就提出了协议族的概念。为了能让协议之间更好的协同工作。就必须有一个总体设计规划,而不能孤立地开发每个协议,而是要将协议设计和开发成完整的,协同的集合即协议族。网络协议一般分为不同层次进行开发,每一层负责不同的通信功能。TCP/IP不是仅仅指TCP协议或IP协议,它是一个协议族,即是一组不同层次上的多个协议的一个组合。TCP/IP通常被认为是一个四层协议系统,如下图所示。每一层负责不同的功能:1)链路层,有时也称作数据链路层或网络接口层,它一般包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。2)网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。应用层链路层网络层传输层3)运输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面,UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。这两种运输层协议分别在不同的应用程序中有不同的用途4)应用层负责处理特定的应用程序细节。在TCP/IP协议族中有很多协议如下图:TCP和UDP是两种最为著名的运输层协议,二者都使用IP作为网络层协议。虽然TCP使用不可靠的IP服务,但它却提供一种可靠的运输层服务。与TCP不同的是,UDP是不可靠的,它不能保证数据报能安全无误地到达最终目的。IP是网络层上的主要协议,同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。在上图中,我们给出了一个直接访问IP的应用程序。这是很少见的,但也是可能的(一些较老的选路协议就是以这种方式来实现的。当然新的运输层协议也有可能使用这种方式)IP层用它来与其他主机或路由器交换错误报文和其他重要信息。ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。上图中的链路就是指沿着通信路径连接相邻节点的通信信道。因此为了将一个数据报从源主机传输到目的主机,数据报必须通过沿端到端路径上的每段独立的链路传输。通过特定的链路,传输节点将此数据报封装在链路层帧(帧是指链路层协议交换的数据单元)中,并将该帧传输到链路上;接受节点接收该帧并取出数据报。当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如下图所示。TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCPsegment)。IP传给网络接口层的数据单元称作IP数据报(IPdatagram)。通过以太网传输的比特流称作帧(Frame)。以太网数据传输是通过广播实现的,将要发送的数据包发往连接在一起的所有主机,包中包含着应该接收数据包主机的正确地址,只有与数据包中目标地址一致的那台主机才能接收。但是,当主机工作监听模式下,无论数据包中的目标地址是什么,只要经过自己网络接口,主机都将接收。数据包接受过程当网络中的两台主机通信的时候,源主机将写有目的的主机地址的数据包发向目的主机。TCP/IP协议中数据包从IP层交给数据链路层,而网络接口是不会识别IP地址的,因此在网络接口数据包又增加了一部分以太帧头的信息。在帧头中有两个域,分别为只有网络接口才能识别的源主机和目的主机的物理地址,这是一个与IP地址相对应的48位的MAC地址。当数据帧到达一台主机的网络接口时,正常情况下,网络接口读入数据帧,如果数据帧中携带的物理地址是自己的或者是广播地址,则将数据帧交给上层协议软件,也就是IP层,否则就将这个帧丢弃。对于每一个到达网络接口的数据帧,都要进行这个过程。然而,当主机工作在监听模式下,所有的数据帧都将被交给上层协议软件处理。链路层协议用来在独立的链路上移动数据报。链路层协议定义了在链路两端的节点之间交互的分组格式,以及当发送和接收分组时这些节点采取的动作。每个链路层帧通常封装了一个网络层的数据报。例如在发送和接收帧时,链路层协议所采取的动作包括差错检测,重传,流量控制和随机访问。链路层协议包括以太网,802.11无线LAN(也被称为Wi-fi),令牌环和PPP:在很多场合下,ATM也能视为链路层协议。例如,一个链路上层协议可能提供,也可能不提供可靠的交付。因此,网络层必须能够在各段链路层提供异构服务的情况下,完成它的端到端的工作。虽然网络层的任务是端到端地将传输层报文从源主机传送到目的主机,而链路层协议的任务是节点到节点地将网络层的数据报传送路径中的单段链路。链路层的一个重要特点就是数据报在路径的不同链路上可能由不同链路层协议处理。例如,数据报在第一段链路上可能由以太网处理,在最后一段链路上可能由PPP处理,在中间的所有链路上由广域链路层协议处理。需要注意的是,不同的链路层协议提供的服务可能是不同的。数据链路层协议提供的服务主要有:1.成帧。几乎所有的链路层协议都在网络层数据报在链路上传输之前,用链路层帧将其封装。2.链路访问。媒体访问控制协议定义了帧在链路上传输的规则。3.可靠交付。当链路层协议提供可靠的传输服务时,它可以保证将每个网络层的数据报无差错地通过链路层。4.流量控制。链路每一个端点具有有限容量的帧缓冲。5.差错检测。当帧中的一个比特作为1传输时,接收方节点可能错误地判断是零,反之也是。6.差错纠正。差错纠正和差错检测类似,区别在于接收方不仅能检测是否帧中引入了差错,而且能够准确地判断帧中的差错出现在哪里(并因此纠正这些差错)。7.全双工和半双工。采用全双工传输时,链路两端的节点可以同时传输分组。采用半双工传输时,一个节点不能同时传输和接收。如上所述,链路层提供的许多服务和传输层提供的服务是非常相似的。例如,链路层和传输层都能提供可靠交付。尽管在这两层用于提供可靠交付的机制相似,这两个可靠交付服务是不同的。传输层协议在端到端的基础上为两个进程之间提供了可靠的交付;可靠的链路层协议在一条链路相连的两个节点之间提供可靠的交付服务。同样地,链路层和传输层协议都能提供流量控制和差错检测;此外,传输层协议中的流量控制是在端到端的基础上提供的,而链路层上的协议是在节点对相邻节点基础上提供的。数据链路层的协议可分异步协议和同步协议两类。在TCP/IP协议族中,链路层主要有三个目的:(1)为IP模块发送和接收IP数据报(2)为ARP模块发送ARP请求和接收ARP应答;(3)为RARP发送RARP请求和接收RARP应答。TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网、令牌环网、FDDI(光纤分布式数据接口)及RS-232串行线路等。网络链路有点对点链路和广播链路。点对点链路由链路一端的单个发送方和链路另一端的单个接收方组成。许多链路层协议都是基于点对点链路设计的;PPP(点对点协议)就是这种协议之一。第二种类型的链路是广播链路(broadcastlink),它能够有多个发送和接收节点连接到相同的,单一的,共享的广播信道。这里用“广播”是因为当任何一个节点传输一帧时,该信道广播该帧,从而每个其他节点都可以收到一个拷贝。以太网和无线LAN就是广播链路层技术的例子。以太网是一种有线局域网技术。局域网是一种将小区域内的各种通信设备互连在一起的通信网络。通信网络由一定数量的设备互联而成,为网络中的两个相连设备提供它们之间的数据传输的途径。这些设备常被称为网络结点(Node),而在局域网技术中又经常被称为站点,它可能是一台计算机,通过一种硬件设备比如网卡连接到局域网中,在这些计算机上可以运行网络应用程序,通过局域网这个通信网来进行通信实现资源共享,这个时候人们也把该计算机称为主机(Host)。局域网技术有令牌环网,FDDI,ATM和以太网等。局域网的基本特点有1)高数据传输率(10~1000Mbps)2)短距离(0.1~10km)3)低出错率(10-8~10-11)局域网拓扑结构有1)星型结构2)环型结构3)总线型结构4)树型结构。如下图星型环型总线型树型传输介质有1)双绞线2)基带同轴电缆3)光纤4)无线数据链路层协议交换的数据单元称为帧。以太网是属于数据链路层的技术,因此有以太网帧的结构如下图所示:以太网这个术语通常是指由DEC,Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法,是第一个广泛使用的高速LAN(局域网)。它要比令牌环,FDDI和ATM容易实现且价格便宜的前同步码目的地址源地址类型数据CRC多。几年后,IEEE802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络;此三种帧的通用部分由802.2标准来定义,也就是我们所熟悉的802网络共有的逻辑链路控制(LLC)。EthernetII和IEEE802.3的帧格式分别如下:EthernetII帧格式:4byte|8byte6byte|6byte|2byte|46~1500byte|IEEE802.3一般帧格式前序帧起始定界符目的地址源地址长度数据FCS7byte1byte2/6byte2/6byte2byte46~1500byte4byteEthernetII和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节的类型,而后者定义的是2字节的长度;所幸的是,后者定义的有效长度值与前者定义的有效类型值无一相同,这样就容易区分两种帧格式了。一、前序字段前序字段由8个(EthernetII)或7个(IEEE802.3)字节的交替出现的1和0组成,设置该字段的目的是指示帧的开始并便于网络中的所有接收器均能与到达帧同步,另外,该字段本身(在EthernetII中)或与帧起始定界符一起(在IEEE802.3中)能保证各帧之间用于错误检测和恢复操作的时间间隔不小于9.6毫秒。二、帧起始定界符字段该字段仅在IEEE802.3标准中有效,它可以被看作前序字段的延续。实际上,该字段的组成方式继续使用前序字段中的格式,这个一个字节的字段的前6个比特位置由交替出现的1和0构成。该字段的最后两个比特位置是11,这两位中断了同步模式并提醒接收后面跟随的是帧数据。当控制器将接收帧送入其缓冲器时,前序字段和帧起始定界符字段均被去除。
本文标题:数据链路层协议的分析与应用
链接地址:https://www.777doc.com/doc-3168875 .html