数据链路层的有什么功能?
数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其连接.媒体是长期的,连接是有生存期的.在连接生存期内,收发两端可以进行不等的一次或多次数据通信.1、数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能2、与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:telnet,HTTP,FTP,NFS,SMTP等。3、数据链路(逻辑线路):在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。从数据发送点到数据接收点(点到点 point to point)所经过的传输途径。
数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其 连接.媒体是长期的,连接是有生存期的.在连接生存期内,收发两端可以进行不等的一次或多次数据通信.每次通信都要经过建立通信联络和拆除通信联络两过程.这种建立起来的数据收发关系就叫作数据链路.而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错.数据链路的建立,拆除,对数据的检错,纠错是数据链路层的基本任务.⑴链路层的主要功能链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。链路层应具备如下功能:① 链路连接的建立,拆除,分离.② 帧定界和帧同步.链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但无论如何必须对帧进行定界.③ 顺序控制,指对帧的收发顺序的控制.④ 差错检测和恢复。还有链路标识,流量控制等等.差错检测多用方阵码校验和循环码校验来检测信道上数据的误码,而帧丢失等用序号检测.各种错误的恢复则常靠反馈重发技术来完成.⑵数据链路层的主要协议数据链路层协议是为发对等实体间保持一致而制定的,也为了顺利完成对网络层的服务。主要协议如下:a. ISO1745--1975:"数据通信系统的基本型控制规程".这是一种面向字符的标准,利用10个控制字符完成链路的建立,拆除及数据交换.对帧的收发情况及差错恢复也是靠这些字符来完成.ISO1155, ISO1177, ISO2626, ISO2629等标准的配合使用可形成多种链路控制和数据传输方式.b. ISO3309--1984:称为"HDLC 帧结构".ISO4335--1984:称为"HDLC 规程要素 ".ISO7809--1984:称为"HDLC 规程类型汇编".这3个标准都是为面向比特的数据传输控制而制定的.有人习惯上把这3个标准组合称为高级链路控制规程.c. ISO7776:称为"DTE数据链路层规程".与CCITT X.25LAB"平衡型链路访问规程"相兼容.⑶链路层产品独立的链路产品中最常见的当属网卡,网桥也是链路产品。MODEM的某些功能有人认为属于链路层,对些还有争议.数据链路层将本质上不可靠的传输媒体变成可靠的传输通路提供给网络层。在IEEE802.3情况 下,数据链路层分成了两个子层,一个是逻辑链路控制,另一个是媒体访问控制
OSI第一层,数据连路层的协议定义了单连路上如何传输数据例如802.3802.2 协议

计算机网络(3)| 数据链路层
数据链路层属于计算机网络的低层。数据链路层使用的信道主要是两种类型:(1)点对点信道。即信道使用的是一对一点对点通信方式。(2)广播信道。这种信道使用的是一对多的光播通信方式,相对复杂。在广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。首先我们应该了解一些有关点对点信道的一点基本概念。(1)数据链路。值得是当我们需要在一条线路上传送数据时,除了有一条物理线路外(链路),还必须有一些必要的通信协议来控制这些数据的传输,若把实现这些协议的硬件和软件加到链路上就构成了数据链路。(2)帧。帧指的是点对点信道的数据链路层的协议数据单元,即数据链路层把网络层交下来的数据构成帧发送到链路上以及把接收到的帧中的数据取出并上交给网络层。点对点信道的数据链路层在进行通信时的主要步骤如下:(1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。(2)结点A把封装好的帧发送给结点B的数据链路层。(3)若B接收的帧无差错,则从接收的帧中提取出IP数据报上交给上面的网络层;否则丢弃这个帧。接下来是来介绍数据链路层的三个基本问题,而这三个问题对于各种数据链路层的协议都是通用的。(1)封装成帧。指的是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧,从而能够作为数据链路层的基本单位进行数据传输。在发送帧时,是从帧的首部开始发送的。各种数据链路层协议都对帧首部和帧尾部的格式有着明确的规定,且都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU。首部和尾部的作用是进行帧定界,帧定界可以使用特殊的帧定界符,当数据在传输中出现差错时,通过帧的帧定界符就可以知道收到的数据是一个不完整的帧(即只有首部开始符而没有结束符)。(2)透明传输。从上面的介绍中知道帧的开始和结束标记使用了专门的控制字符,因此所传输的数据中任何与帧定界符相同的比特编码是不允许出现的,否则就会出现帧定界错误。当传送的帧是用文本文件组成的帧时,它的数据部分一定不会出现和帧定界符相同的字符,这样的传输就叫做透明传输。为了解决其他类型文件传输时产生的透明传输问题,就将帧定界符的前面插入一个转义字符ESC,这种方法称为字节填充。如果转义字符也出现在数据中,就在转义字符前面加上一个转义字符,当接收端收到两个转义字符时,就删除前面的那一个。(3)差错检测。在现实中,通信链路都不会是完美的,在传输比特的过程当中都是会产生差错的,1变成0或者0变成1都是可能发生的,我们把这样的错误叫做差错检测。在数据链路层中,为了保证数据传输的可靠性,减少差错出现的数量,就会采用各种差错检测措施,目前最常使用的检错技术是循环冗余校验。它的原理简单来说就是在被传输的数据M后面添加供错检测用的n为冗余码,构成一个帧数据发送出去。关于n位冗余码的得出方式与检验方式,可以 点击这里进一步了解 。对于点对点链路,点对点协议PPP是目前使用得最广泛的数据链路层协议。由于因特网的用户通常都要连接到某个ISP才能接入到因特网,PPP协议就是用户计算机和ISP进行通信所使用的数据链路层协议。在设计PPP协议时必须要考虑以下多方面的需求:(1)简单。简单的设计可使协议在实现时不容易出错,这样使得不同厂商对协议的不同实现的互操作性提高了。(2)封装成帧。PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和结束的字符),以便使接收端从收到的比特流中能准确的找出帧的开始和结束的位置。(3)透明性。PPP协议必须保证数据传输的透明性。如果说是数据中碰巧出现和帧定界符一样的比特组合时,就要采用必要的措施来解决。(4)多种网络层协议。PPP协议必须能够在同一条物理链路上同时支持多种网络层协议(IP和IPX等)的运行。(5)多种类型链路。除了要支持多种网络层的协议外,PPP还必须能够在多种链路上运行(串行与并行链路)。(6)差错检测。PPP协议必须能够对接收端收到的帧进行检测,并舍弃有差错的帧。(7)检测连接状态。必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。(8)最大传送单元。协议对每一种类型的点对点链路设置最大传送单元MTU。(9)网络层地址协商。协议必须提供一种机制使通信的两个网络层(如两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。(10)数据压缩协商。协议必须能够提供方法来协商使用数据压缩算法。但PPP协议不要求将数据压缩算法进行标准化。PPP协议主要是由三个方面组成的:(1)一个将IP数据报封装到串行链路的方法。(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)。(3)一套网络控制协议NCP(Network Control Protocol),其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet,以及AppleTalk等。最后来介绍PPP协议帧的格式:首先是各个字段的意义。首部中的地址字段A规定为0xFF,控制字段C规定为0x03,这两个字段并没有携带PPP帧的信息。首部的第一个字段和尾部的第二个字段都是标识字段F(Flag)。首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息部分字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而 0x8021表示这是网络层的控制数据。尾部中的第一个字段(2字节)是使用CRC的帧检验序列FCS。接着是关于PPP协议的差错检测的方法,主要分为字节填充和零比特填充。当是PPP异步传输时,采用的是字节填充的方法。字节填充是指当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一样的比特组合不出现在信息字段中。而当PPP协议使用的是同步传输时,就会采用零比特填充方法来实现透明传输,即只要发现有5个连续1,则立即填入一个0的方法。广播信道可以进行一对多的通信。由于局域网采用的就是广播通信,因此下面有关广播通信的讨论就是基于局域网来进行的。首先我们要知道局域网的主要特点,即网络为一个单位所拥有,且地理范围和站点数目均有限。在局域网才出现时,局域网比广域网有着较高的数据率、较低的时延和较小的误码率。局域网的优点主要有一下几个方面:(1)具有广播功能,从一个站点可方便地访问全网。(2)便于系统的扩展和逐渐地演变,各设备的位置可灵活地调整和改变。(3)提高了系统的可靠性(reliability)、可用性(availibility)、生存性(survivability)。关于局域网的分类,我们一般是对局域网按照网络拓扑进行分类:1.星状网:由于集线器的出现和双绞线大量用于局域网中,星形以太网和多级星形结构的以太网获得了非常广泛的应用。2.环形网:顾名思义,就是将各个主机像环一样串起来的拓扑结构,最典型的就是令牌环形网。3.总线网:各站直接连在总线上。总线两端的匹配电阻吸收在总线上传播的电磁波信号的能量,避免在总线上产生有害的电磁波反射。以太网主要有两个标准,即DIX Ethernet V2和IEEE 802.3标准,这两种标准的差别很小,可以不是很严格的区分它们。但是由于有关厂商的商业上的激烈竞争,导致IEEE 802委员会未能形成一个最佳的局域网标准而制定了几个不同的局域网标准,所以为了数据链路层能够更好的适应各种不同的标准,委员会就把局域网的数据链路层拆成两个子层:逻辑链路控制LLC子层和媒体接入控制MAC子层。计算机与外界局域网的连接是通过通信适配器(adapter)来进行的。适配器本来是在电脑主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡),这种接口板又称为网络接口卡NIC(Network Interface Card)或简称为网卡。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的,因此适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。由于网络上的数据率和计算机总线上的数据率并不相同,所以在适配器中必须装有对数据进行缓存的存储芯片。若在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或应当在存储器的什么位置上把局域网传送过来的数据块存储下来。适配器还要能够实现以太网协议。要注意的是,适配器在接收和发送各种帧时是不使用计算机的CPU的,所以这时计算机中的CPU可以处理其他的任务。当适配器收到有差错的帧时,就把这个帧丢弃而不必通知计算机,而当适配器收到正确的帧时,它就使用中断来通知该计算机并交付给协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。特别注意:计算机的硬件地址—MAC地址,就在适配器的ROM中。计算机的软件地址—IP地址,就在计算机的存储器中。CSMA/CD协议主要有以下3个要点:1.多点接入:指的是这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。2.载波监听:就是用电子技术检测总线上有没有其他的计算机也在发送。载波监听也称为检测信道,也就是说,为了获得发送权,不管在发送前,还是在发送中,每一个站都必须不停的检测信道。如果检测出已经有其他站在发送,则自己就暂时不发送数据,等到信道空闲时才发送数据。而在发送中检测信道是为了及时发现有没有其他站的发送和本站发送的碰撞。3.碰撞检测:也就是边发送边监听。适配器一边发送数据一边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。所谓碰撞就是信号之间产生了冲突,这时总线上传输的信号严重失真,无法从中恢复出有用的信息来。集线器的一些特点如下:(1)使用集线器的以太网在逻辑上仍然是一个总线网,各个站点共享逻辑上的总线,使用的还是CSMA/CD协议。(2)一个集线器是有多个接口。一个集线器就像一个多接口的转发器。(3)集线器工作在物理层,所以它的每一个接口仅仅是简单的转发比特。它不会进行碰撞检测,所以当两个接口同时有信号的输入,那么所有的接口都将收不到正确的帧。(4)集线器自身采用了专门的芯片来进行自适应串音回波抵消。这样可使接口转发出去的较强的信号不致对该接口收到的较弱信号产生干扰。(5)集线器一般都有少量的容错能力和网络管理能力,也就是说如果在以太网中有一个适配器出现了故障,不停地发送以太网帧,这是集线器可以检测到这个问题从而断开与故障适配器的连线。在局域网中,硬件地址又称为物理地址或者MAC地址,这种地址是用在MAC帧中的。由于6字节的地址字段可以使全世界所有的局域网适配器具有不同的地址,所以现在的局域网适配器都是使用6字节MAC地址。主要负责分配地址字段的6个字节中的前3个字节。世界上凡事要生产局域适配器的厂家都必须向IEEE购买这3个字节构成的地址号,这个地址号我们通常叫做公司标识符,而地址字段的后3个字节则由厂家自行指派,称为扩展标识符。IEEE规定地址字段的第一字节的最低位为I/G位。当I/G位为0时,地址字段表示一个单个站地址,而当I/G位为1时表示组地址,用来进行多播。所以IEEE只分配地址字段前三个字节中的23位,当I/G位分别为0和1时,一个地址块可分别生 2^24 个单个站地址和2^24个组地址。IEEE还把地址字段第1个字节的最低第二位规定为G/L位。当G/L位为0时是全球管理,来保证在全球没有相同的地址,厂商向IEEE购买的都属于全球管理。当地址段G/L位为1时是本地管理,这时用户可以任意分配网络上的地址,但是以太网几乎不会理会这个G/L位的。适配器对MAC帧是具有的过滤功能的,当适配器从网络上每收到一个MAC帧就先用硬件检查MAC帧中的目的地址。如果是发往本站的帧则收下,然后再进行其他的处理,否则就将此帧丢弃。这样做就可以不浪费主机的处理机和内存资源这里发往本站的帧包括以下三种帧:(1)单播帧:即收到的帧的MAC地址与本站的硬件地址相同。(2)广播帧:即发送给本局域网上所有站点的帧。(3)多播帧:即发送给本局域网上一部分站点的帧。常用的以太网MAC帧格式是以太网V2的MAC帧格式。如下图:可以看到以太网V2的MAC帧比较的简单,有五个字段组成。前两个字段分别为6字节长的目的地址和源地址字段。第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。下一个字段是数据字段,其长度在46到1500字节之间。最后一个字段是4字节的帧检验序列FCS(使用CRC检验)。从图中可以看出,采用以太网V2的MAC帧并没有一个结构来存储一个数据的帧长度。这是由于在曼彻斯特编码中每一个码元的正中间一定有一次电压的转换,如果当发送方在发送完一个MAC帧后就不再发送了,则发送方适配器的电压一定是不会在变化的。这样接收方就可以知道以太网帧结束的位置,在这个位置减去FCS序列的4个字节,就可以知道帧的长度了。当数据字段的长度小于42字节时,MAC子层就会在MAC帧后面加入一个整数字节来填充字段,来保证以太网的MAC帧的长度不小于64字节。当MAC帧传送给上层协议后,上层协议必须具有能够识别填充字段的功能。当上层使用的是IP协议时,其首部就有一个总长度字段,因此总长度加上填充字段的长度,就是MAC帧的数据字段的长度。从图中还可以看出,在传输MAC帧时传输媒体上实际是多发送了8个字节,这是因为当MAC帧开始接收时,由于适配器的时钟尚未与比特流达成同步,因此MAC帧的最开始的部分是无法接收的,结果就是会使整个MAC成为无用帧。所以为了接收端能够迅速的与比特流形成同步,就需要在前面插入这8个字节。这8个字节是由两个部分组成的,第一个部分是由前7个字节构成的前同步码,它的主要作用就是就是实现同步。第二个部分是帧开始界定符,它的作用就是告诉接收方MAC帧马上就要来了。需要注意的是,帧与帧之间的传输是需要一定的间隔的,否则接收端在收到了帧开始界定符后就会认为后面的都是MAC帧而会造成错误。以太网上的主机之间的距离不能太远,否则主机发送的信号经过铜线的传输就会衰减到使CSMA/CD协议无法正常工作,所以在过去常常使用工作在物理层的转发器来拓展以太网的地理覆盖范围。但是现在随着双绞线以太网成为以太网的主流类型,拓展以太网的覆盖范围已经很少使用转发器,而是使用光纤和一对光纤调制解调器来拓展主机和集线器之间的距离。光纤解调器的作用是进行电信号与光信号的转换。由于光纤带来的时延很小,并且带宽很宽,所以才用这种方法可以很容易地使主机和几公里外的集线器相连接。如果是使用多个集线器,就可以连接成覆盖更大范围的多级星形结构的以太网:使用多级星形结构的以太网不仅能够让连接在不同的以太网的计算机能够进行通信,还可以扩大以太网的地理覆盖范围。但是这样的多级结构也带来了一些缺点,首先这样的结构会增大它们的碰撞域,这样做会导致图中的某个系的两个站在通信时所传送的数据会通过所有的集线器进行转发,使得其他系的内部在这时都不能进行通信。其次如果不同的以太网采用的是不同的技术,那么就不可能用集线器将它们互相连接起来。拓展以太网的更常用的方法是在数据链路层中进行的,在开始时人们使用的是网桥。但是现在人们更常用的是以太网交换机。以太网交换机实质上是一个多接口的网桥,通常是有十几个或者更多的接口,而每一个接口都是直接与一个单台主机或者另一个以太网交换机相连。同时以太网交换机还具有并行性,即能同时连通多对接口,使多对主机能同时通信,对于相互通信的主机来说都是独占传输媒体且无碰撞的传输数据。以太网交换机的接口还有存储器,能够在输出端口繁忙时把到来的帧进行缓存,等到接口不再繁忙时再将缓存的帧发送出去。以太网交换机还是一种即插即用的设备,它的内部的地址表是通过自学习算法自动的建立起来的。以太网交换机由于使用了专用的交换结构芯片,用硬件转发,它的转发速率是要比使用软件转发的网桥快很多。如下图中带有4个接口的以太网交换机,它的4个接口各连接一台计算机,其MAC地址分别为A、B、C、D。在开始时,以太网交换机里面的交换表是空的。首先,A先向B发送一帧,从接口1进入到交换机。交换机收到帧后,先查找交换表,但是没有查到应从哪个接口转发这个帧,接着交换机把这个帧的源地址A和接口1写入交换表中,并向除接口1以外的所有接口广播这个帧。C和D因为目的地址不对会将这个帧丢弃,只有B才收下这个目的地址正确的帧。从新写入的交换表(A,1)可以得出,以后不管从哪一个接口收到帧,只要其目的地址是A,就应当把收到的帧从接口1转发出去。以此类推,只要主机A、B、C也向其他主机发送帧,以太网交换机中的交换表就会把转发到A或B或C应当经过的借口号写入到交换表中,这样交换表中的项目就齐全了,以后要转发给任何一台主机的帧,就都能够很快的在交换表中找到相应的转发接口。考虑到有时可能要在交换机的接口更换主机或者主机要更换其网络适配器,这就需要更改交换表中的项目,所以交换表中每个项目都设有一定的有效时间。但是这样的自学习有时也会在某个环路中无限制的兜圈子,如下图:假设一开始主机A通过接口交换机#1向主机B发送一帧。交换机#1收到这个帧后就向所有其他接口进行广播发送。其中一个帧的走向:离开#1的3->交换机#2的接口1->接口2->交换机#1的接口4->接口3->交换机#2的接口1......一直循环下去,白白消耗网络资源。所以为了解决这样的问题,IEEE制定了一个生成树协议STP,其要点就是不改变网络的实际拓扑,但在逻辑上切断某些链路,从而防止出现环路。虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机属于VLAN。要注意虚拟局域网其实只是局域网给用户提供的一种服务,而不是一种新型局域网。现在已经有标准定义了以太网的帧格式的扩展,以便支持虚拟局域网。虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN标记,它是用来指明发送该帧的计算机属于哪一个虚拟局域网。VLAN标记字段的长度是4字节,插入在以太网MAC帧的源地址字段和类型字段之间。VLAN标记的前两个字节总是设置为0x8100,称为IEEE802.1Q标记类型。当数据链路层检测到MAC帧的源地址字段后面的两个字节的值是0x8100时,就知道现在插入了4字节的VLAN标记。于是就接着检查后面两个字节的内容,在后面的两个字节中,前3位是用户优先级字段,接着的一位是规范格式指示符CFI,最后的12位是该虚拟局域网VLAN标识符VID,它唯一的标志了这个以台网属于哪一个VLAN。高速以太网主要是分为三种,即100BASE-T以太网、吉比特以太网和10吉比特以太网:

计算机网络第三章(数据链路层)
3.1、数据链路层概述 概述链路 是从一个结点到相邻结点的一段物理线路, 数据链路 则是在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)网络中的主机、路由器等都必须实现数据链路层局域网中的主机、交换机等都必须实现数据链路层从层次上来看数据的流动仅从数据链路层观察帧的流动主机H1 到主机H2 所经过的网络可以是多种不同类型的注意:不同的链路层可能采用不同的数据链路层协议数据链路层使用的信道数据链路层属于计算机网路的低层。 数据链路层使用的信道主要有以下两种类型:点对点信道广播信道局域网属于数据链路层局域网虽然是个网络。但我们并不把局域网放在网络层中讨论。这是因为在网络层要讨论的是多个网络互连的问题,是讨论分组怎么从一个网络,通过路由器,转发到另一个网络。而在同一个局域网中,分组怎么从一台主机传送到另一台主机,但并不经过路由器转发。从整个互联网来看, 局域网仍属于数据链路层 的范围三个重要问题数据链路层传送的协议数据单元是 帧封装成帧封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。首部和尾部的一个重要作用就是进行 帧定界 。差错控制在传输过程中可能会产生 比特差错 :1 可能会变成 0, 而 0 也可能变成 1。可靠传输接收方主机收到有误码的帧后,是不会接受该帧的,会将它丢弃如果数据链路层向其上层提供的是不可靠服务,那么丢弃就丢弃了,不会再有更多措施如果数据链路层向其上层提供的是可靠服务,那就还需要其他措施,来确保接收方主机还可以重新收到被丢弃的这个帧的正确副本以上三个问题都是使用 点对点信道的数据链路层 来举例的如果使用广播信道的数据链路层除了包含上面三个问题外,还有一些问题要解决如图所示,主机A,B,C,D,E通过一根总线进行互连,主机A要给主机C发送数据,代表帧的信号会通过总线传输到总线上的其他各主机,那么主机B,D,E如何知道所收到的帧不是发送给她们的,主机C如何知道发送的帧是发送给自己的可以用编址(地址)的来解决将帧的目的地址添加在帧中一起传输还有数据碰撞问题随着技术的发展,交换技术的成熟,在 有线(局域网)领域 使用 点对点链路 和 链路层交换机 的 交换式局域网 取代了 共享式局域网在无线局域网中仍然使用的是共享信道技术3.2、封装成帧介绍封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧帧头和帧尾中包含有重要的控制信息发送方的数据链路层将上层交付下来的协议数据单元封装成帧后,还要通过物理层,将构成帧的各比特,转换成电信号交给传输媒体,那么接收方的数据链路层如何从物理层交付的比特流中提取出一个个的帧?答:需要帧头和帧尾来做 帧定界但比不是每一种数据链路层协议的帧都包含有帧定界标志,例如下面例子前导码前同步码:作用是使接收方的时钟同步帧开始定界符:表明其后面紧跟着的就是MAC帧另外以太网还规定了帧间间隔为96比特时间,因此,MAC帧不需要帧结束定界符透明传输透明指某一个实际存在的事物看起来却好像不存在一样。透明传输是指 数据链路层对上层交付的传输数据没有任何限制 ,好像数据链路层不存在一样帧界定标志也就是个特定数据值,如果在上层交付的协议数据单元中, 恰好也包含这个特定数值,接收方就不能正确接收所以数据链路层应该对上层交付的数据有限制,其内容不能包含帧定界符的值解决透明传输问题解决方法 :面向字节的物理链路使用 字节填充 (byte stuffing) 或 字符填充 (character stuffing),面向比特的物理链路使用比特填充的方法实现透明传输发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面 插入一个转义字符“ESC” (其十六进制编码是1B)。接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。帧的数据部分长度总结3.3、差错检测介绍奇偶校验循环冗余校验CRC(Cyclic Redundancy Check)例题总结循环冗余校验 CRC 是一种检错方法,而帧校验序列 FCS 是添加在数据后面的冗余码3.4、可靠传输基本概念下面是比特差错其他传输差错分组丢失路由器输入队列快满了,主动丢弃收到的分组分组失序数据并未按照发送顺序依次到达接收端分组重复由于某些原因,有些分组在网络中滞留了,没有及时到达接收端,这可能会造成发送端对该分组的重发,重发的分组到达接收端,但一段时间后,滞留在网络的分组也到达了接收端,这就造成 分组重复 的传输差错三种可靠协议停止-等待协议SW回退N帧协议GBN选择重传协议SR这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中停止-等待协议停止-等待协议可能遇到的四个问题确认与否认超时重传确认丢失既然数据分组需要编号,确认分组是否需要编号?要。如下图所示确认迟到注意,图中最下面那个数据分组与之前序号为0的那个数据分组不是同一个数据分组注意事项停止-等待协议的信道利用率假设收发双方之间是一条直通的信道TD :是发送方发送数据分组所耗费的发送时延RTT :是收发双方之间的往返时间TA :是接收方发送确认分组所耗费的发送时延TA一般都远小于TD,可以忽略,当RTT远大于TD时,信道利用率会非常低像停止-等待协议这样通过确认和重传机制实现的可靠传输协议,常称为自动请求重传协议ARQ( A utomatic R epeat re Q uest),意思是重传的请求是自动进行,因为不需要接收方显式地请求,发送方重传某个发送的分组回退N帧协议GBN为什么用回退N帧协议在相同的时间内,使用停止-等待协议的发送方只能发送一个数据分组,而采用流水线传输的发送方,可以发送多个数据分组回退N帧协议在流水线传输的基础上,利用发送窗口来限制发送方可连续发送数据分组的个数无差错情况流程发送方将序号落在发送窗口内的0~4号数据分组,依次连续发送出去他们经过互联网传输正确到达接收方,就是没有乱序和误码,接收方按序接收它们,每接收一个,接收窗口就向前滑动一个位置,并给发送方发送针对所接收分组的确认分组,在通过互联网的传输正确到达了发送方发送方每接收一个、发送窗口就向前滑动一个位置,这样就有新的序号落入发送窗口,发送方可以将收到确认的数据分组从缓存中删除了,而接收方可以择机将已接收的数据分组交付上层处理累计确认累计确认优点:即使确认分组丢失,发送方也可能不必重传减小接收方的开销减小对网络资源的占用缺点:不能向发送方及时反映出接收方已经正确接收的数据分组信息有差错情况例如在传输数据分组时,5号数据分组出现误码,接收方通过数据分组中的检错码发现了错误于是丢弃该分组,而后续到达的这剩下四个分组与接收窗口的序号不匹配接收同样也不能接收它们,讲它们丢弃,并对之前按序接收的最后一个数据分组进行确认,发送ACK4, 每丢弃一个数据分组,就发送一个ACK4当收到重复的ACK4时,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻开始重传,具体收到几个重复确认就立刻重传,根据具体实现决定如果收到这4个重复的确认并不会触发发送立刻重传,一段时间后。超时计时器超时,也会将发送窗口内以发送过的这些数据分组全部重传若WT超过取值范围,例如WT=8,会出现什么情况?习题总结回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高选择重传协议SR具体流程请看视频习题总结3.5、点对点协议PPP点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议PPP协议是因特网工程任务组IEIF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662]数据链路层使用的一种协议,它的特点是:简单;只检测差错,而不是纠正差错;不使用序号,也不进行流量控制;可同时支持多种网络层协议PPPoE 是为宽带上网的主机使用的链路层协议帧格式必须规定特殊的字符作为帧定界符透明传输必须保证数据传输的透明性实现透明传输的方法面向字节的异步链路:字节填充法(插入“转义字符”)面向比特的同步链路:比特填充法(插入“比特0”)差错检测能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。工作状态当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。3.6、媒体接入控制(介质访问控制)——广播信道媒体接入控制(介质访问控制)使用一对多的广播通信方式Medium Access Control 翻译成媒体接入控制,有些翻译成介质访问控制局域网的数据链路层局域网最主要的 特点 是:网络为一个单位所拥有;地理范围和站点数目均有限。局域网具有如下 主要优点 :具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。提高了系统的可靠性、可用性和残存性。数据链路层的两个子层为了使数据链路层能更好地适应多种局域网标准,IEEE 802 委员会就将局域网的数据链路层拆成 两个子层 :逻辑链路控制 LLC (Logical Link Control)子层;媒体接入控制 MAC (Medium Access Control)子层。与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关。 不管采用何种协议的局域网,对 LLC 子层来说都是透明的。基本概念为什么要媒体接入控制(介质访问控制)?共享信道带来的问题若多个设备在共享信道上同时发送数据,则会造成彼此干扰,导致发送失败。随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术静态划分信道信道复用频分复用FDM (Frequency Division Multiplexing)将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。 频分复用 的所有用户在同样的时间 占用不同的带宽资源 (请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。

【网络】TCP/IP-数据链路层
本文主要从数据链路层主要功能展开,涉及到以下相关概念 首先我们看看TCP/IP网络模型中数据链路层的功能定义:透明传输,差错检测,封装成帧数据链路层进程的任务是在两个网络层进程之间提供无错误的,透明的通信1 提供差错检测机制(处理传输错误)2使用滑动窗口机制进行流量控制 (调节数据流,确保慢速的接收方不会被发送方淹没)3 向网络层提供一个定义良好的网络接口在OSI参考模型中,上层使用下层所提供的服务必须与下层交换命令,这些命令称为 服务原语 。相邻层之间的接口称为 服务访问点SAP ,对等层之间传送的数据单位称为 协议数据单元PDU以下图说明网络链路,数据传输构成,和数据链路层分层可分为 (面向字符的通信规程) 和 (面向比特的通信规程) 两类“TCP 是一个面向字节流的协议”指的是“字节就是字节”在令牌环网中,令牌环的帧格式有两种,分别是 (令牌帧) 和 (数据帧)在点-点链路中,发送信息和命令的站称为主站,接收信息和命令而发出确认信息或响应的站称为从站,兼有主、从功能可发送命令与响应的站称为复合站透明传输模式0201 工作原理以太网有两类01 经典以太网,解决多路访问问题02 交互式以太网,使用交换机连接不同的计算机。交换机中每个端口有自己独立的冲突域。采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。以太网对发送的数据帧不进行编号,也不要求对方发回确认。以太网提供的服务是不可靠的交付,即尽最大努力的交付。以太网是使用1-持续CSMA/CD 技术的总线型网络。以太网的逻辑结构是总线型结构,物理结构是星型或者拓扑星型结构。以太网属于数据链路层协议应用,规定的最短帧长 最短帧长度为64字节。为了确保最小帧长为64字节,同时维持网络直径为200m,千兆以太网采用了载波扩展和数据包分组两种技术。为什么要限制最短帧长以太网的争用期是指总线两端的两个站之间的往返传播时延,又称为碰撞窗口。以太网的端到端往返时延 2τ称为争用期,或碰撞窗口。争用期长度为 2τ,即端到端 传播时延 的两倍。经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞网桥工作在数据链路层,作用是连接不用的物理局域网形成逻辑局域网,它们通过检查数据链路层地址来转发帧。用于连接类型相似的局域网。在网桥中,帧从物理层往上传给以太网的MAC层。路由器作用于网络层,提供网络层协议转换。通过检查数据包地址,并基于数据包地址路由数据包。在网络之间存储和转发分组网关提供传输层及以上各层协议之间的转换网桥与路由器的区别1 二层设备与三层设备2 网桥连接相似的局域网,路由器连接不同的网络3 网桥不隔离广播,而路由器可以隔离广播网桥的主要任务是地址学习和帧转发以太网交换机实际上是一个多端口的网桥。节点交换机与以太网交换机都是数据链路层设备,前者使用点对点信道,后者使用广播信道。例:以太网交换机在收到一帧后先进行存储,在转发帧是,对于未知目的的帧,可以采用广播的方式转发。交换机是按照存储转发方式工作的,在收到一帧后,一定是先将它存储再进行处理,不管目的地址。在转发时,查找转发表和收到帧的源地址有无匹配的项目,有则更新,无则向除接收该帧的接口以外转发帧,即广播。以太网交换机按照自学习算法建立转发表,它通过 ARP协议 进行地址学习。ARP协议 不属于链路层 。A RP不是向网络层提供服务,它 本身就是网络层的一部分,帮 助向传输层提供服务。在数据链路层不存在IP 地址的问题。数据链路层协议是象HDLC 和PPP 这样的协议,它们把比特串从线路的一端传送到另一端。例题高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的【可靠传输】数据链路层协议。目前我们普遍使用HDLC作为数据链路控制协议。HDLC帧格式如下当我们传输数据时,要传输的不仅仅是数据的大小,还会给这些数据加上头和尾,以及一些其他的标志。比如标志位有八位,就是一个字节。所以除数据外其他的字段加在一起要占据6字节的空间。HDLC定义了三种类型的站:分别是主站,从站,复合站HDLC包括三种类型的帧,信息帧,监控帧,和无编号帧。第1位为“0”表示是信息帧,第1、2位为“10”是监控帧,“11”是无编号帧。信息帧用于传送有效信息或数据,通常简称I帧。监控帧用于监视和控制数据链路,完成信息帧的接收确认、重发请求、暂停发送请求等功能。监控帧不具有信息字段。无编号帧用于数据链路的控制,它本身不带编号,可以在任何需要的时刻发出HDLC的帧类型中用于差错控制和流量控制的帧是 A.命令帧 B.信息帧 C.无编号帧 D.监控帧答案 DATM是一种 面向分组 的技术,其分组称为信元。 ATM 信元由信元头和净荷(Payload)两部分构成。信元头中包含信元控制信息,净荷用于承载用户的数据。ATM是一种面向连接的技术,传输基于固定长度的信息信元,每个信元在他的头部带有虚电路标识符,交换设备根据此标识符演着连接建立的路径转发信元。ATM是异步传输模式的缩写,是两种交换技术的结合,电路交换和分组交换。信元和信元头长度分别是53字节和5字节在计算机网络中,数据交换的方式有:(1)线路交换。在数据传送之前需建立一条物理通路, 在线路被释放之前,该通路将一直被一对用户完全占有。(2)报文交换。报文从发送方传送到接收方采用存储转发 的方式。在传送报文时,只占用一段通路;在交换节点中需要 缓冲存储,报文需要排队。因此,这种方式不满足实时通信的 要求。(3)分组交换。此方式与报文交换类似,但报文被分成组传送,并规定了分组的最长度,到达目的地后需重新将分组组装成报文。这是网络中最广泛采用的一种交换技术。常用的差错控制方法是在数据中加入差错控制编码,在所要发送的信息位之前按照某种规则加上一定的冗余位,构成一个码字再传送。交换机可以用来分割LAN,连接不同的LAN,或者扩展LAN的覆盖范围。4B/5B编码是将数字数据转换为数字信号的编码方式。数据链路层和大多数高层都存在的一个问题是如何避免一个快速发送方用数据【淹没】一个慢速接受方。所以需要一个流量调节机制,以便让发送方知道接收方何时可以接收更多的数据。两种方式:1 基于反馈的流量控制接收方给发送方发信息2 基于速率的流量控制限制发送方传输速率数据链路层和传输层的TCP协议都会涉及到滑动窗口机制。侧重点不一样。数据链路层主要有两种: 停-等流量控制和滑动窗流量控制 。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。首先整理下滑动窗口涉及到的3个协议1 停等协议:发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,则发送方必须一直等待。2 后退N帧协议:在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。接受方发现接收到的信息帧时序有问题时,要求发送方发送最后一次正确发送后确认接收的帧之后的所有的未被确认的帧。3 选择重传协议:当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层。但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧,一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。总之海明码:如果要检测 d位错误,需要海明距为 d+1的编码方案;如果要纠正 d位错误,需要海明 距 为 2d+1的 编 码 方 案 。1.集线器本身是一个 冲突域 ,因为它不能分隔冲突域。2.交换机本身是一个 广播域 ,它分隔冲突域,即它的每一个端口都是一个冲突域。3. 路由器 分隔 广播域 ,它的每一个接口都是一个 广播域 。4.交换机和 路由器 相连的链路即是冲突域又是广播域。某用户程序采用 UDP协议进行传输,则差错控制应由 协议完成。A.数据链路层 B.网络层 C.物理层 D.应用层PPP协议是透明传输,实际上就是通常所说的透传。PPP协议使用的是一种面向字节的协议,所有的帧长度都是整数个字节,使用一种特殊的字符填充法完成数据的填充。例题为实现透明传输,PPP协议使用的填充方法是()。BA.位填充B.字符填充C.对字符数据使用字符填充,对非字符数据使用位填充D.对字符数据使用位填充,对非字符数据使用字符填充例题:PPP 帧的起始和结束标志都是 0x7e,若在信息字段中出现与此相同的字符,必须进行填充。在同步数据链路中,采用___比特填充法____方法进行填充;在异步数据链路中,采用___字符填充法____方法进行填充1 纠错,PPP协议只进行检错2流量控制 3 序号 PPP协议是不可靠的传输协议,因此不需要给帧编号。

数据链路层的有哪能些功能?作用是什么?
数据链路层是建立在屋里传输能力的基础上,以帧为单位传输数据,它的主要任务就是进行数据封装和数据链接的建立。封装的数据信息中,地址含有发送结点和接受结点的地址;控制段用来表示数格链接帧的类型;数据段包含实际要传输的数据;差错控制段用来检测传输中帧出现的错误。数据链路层可使用的协议有SLIP、PPP、X25和帧中继等。常见的集线器和低档的交换机网络设备都是工作在这个层次上,Modem之类的拨号设备也是如此。工作在这个层次上的交换机俗称“第二层交换机”。具体讲,数据链路层的功能包括:数据链路连接的建立与释放、构成数据链路数据单元、数据链路连接的分裂、定界与同步、顺序和流量控制和差错的检测和恢复等方面。
主要功能在两个网络实体之间提供数据链路连接的建立、维持和释放管理。构成数据链路数据单元(frame:数据帧或讯框),并对帧定界、同步、收发顺序的控制。传输过程中的流量控制(Flow Control),差错检测(Error Detection)和差错控制(Error control)等方面。 只提供导线的一端到另一端的数据传输。数据链路层会在 frame 尾端置放检查码(parity,sum,CRC)以检查实质内容,将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路,并对物理层的原始数据进行数据封装。数据链路层中的数据封装是指:封装的数据信息中,包含了地址段和数据段等。地址段含有点对点发送节点和接收节点的地址(如MAC),控制段用来表示数格连接帧的类型,数据段包含实际要传输的数据。 还是看下百科吧http://zh.wikipedia.org/wiki/%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82http://baike.baidu.com/view/239592.htm?fr=ala0
数据链路层的最基本的功能是向该层用户提供透明的和可靠的数据传送基本服务。透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠的传输使用户免去对丢失信息、干扰信息及顺序不正确等的担心。在物理层中这些情况都可能发生,在数据链路层中必须用纠错码来检错与纠错。数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一无差错的线路。如果您想用尽量少的词来记住数据链路层,那就是:“帧和介质访问控制”。
清晰的表现数据的情况

本文由 在线网速测试 整理编辑,转载请注明出处。