网络协议分析(TCP/IP)第2章数据链路层协议要求:1、了解数据链路层协议2、掌握以太网和IEEE802封装3、熟悉HDLC封装4、掌握PPP封装2.1数据链路层的定义一、设计数据链路层的原因1、在原始的物理线路上传输数据信号是有差错的。2、设计数据链路层的主要目的就是在原始的、有差错的物理传输线路的基础上,采取差错检测、差错控制与流量控制等方法,将有差错的物理线路改进成逻辑上无差错的数据链路,向网络层提供高质量的服务。3、从网络参考模型的角度看,物理层之上的各层都有改善数据传输质量的责任,数据链路层是最重要的一层。二、ISO对数据链路层的定义数据链路层:是为了提供功能上和规程上的方法,以便建立、维护和释放网络实体间的数据链路数据链路——从数据发送点到数据接收点(点到点pointtopoint)所经过的传输途径。物理链路(物理线路):是由传输介质与设备组成的。原始的物理传输线路是指没有采用高层差错控制的基本的物理传输介质与设备。数据链路(逻辑线路):在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。当采用复用技术时,一条物理链路上可以有多条数据链路。三、数据链路层的主要功能数据链路层最重要的作用就是:通过一些数据链路层协议(即链路控制规程),在不太可靠的物理链路上实现可靠的数据传输。再具体些,可将数据链路层的主要功能归纳如下:1.链路管理2.帧同步3.流量控制4.差错控制5.区分数据和控制信息6.透明传输7.寻址2.2常用的数据链路层TCP/IP支持多种不同的数据链路层协议,这取决于网络使用的硬件,如以太网、令牌环、FDDI等局域网,串行线路、X.25、帧中继FR、ATM等广域网。早期,由于各网络公司的竞争,局域网没有形成统一标准,为了将各种局域网融合,将链路层拆分成两层,逻辑链路层(LLC)和媒体接入控制(MAC)(802.3封装:SAP),90年代,以太网取得垄断地位,以太网成为局域网代名词。数据链路层仅需要MAC层,采用以太网帧格式(EthernetV2封装:ARPA)。后来为解决EthernetII与802.3帧的兼容问题推出的EthernetSNAP格式。(现在大部分的网络设备都支持这几种Ethernet的帧格式。如:cisco的路由器在设定Ethernet接口时可以指定不同的以太网的帧格式:ARPA(EthernetV2),SAP(IEEE802.3),SNAP(IEEE802.3与Ethernetv2兼容格式),Novell-Ether(1983年Novell公司推出的)。不过,由于英特网的发展,TCP/IP经常使用的以太网链路层是EthernetV2封装。)串行线路使用的HDLC,SLIP,PPPX.25使用的LAPB(HDLC子集)FR使用的LAPF(HDLC子集)ATM使用的ATM封装一、以太网数据链路层协议1、Ethernet帧格式的发展1980DEC,Intel,Xerox制订了EthernetI的标准;1982DEC,Intel,Xerox又制订了EhternetII的标准(EthernetV2);1982IEEE开始研究Ethernet的国际标准802.3;1983迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式(Novell-Ether);1985IEEE推出IEEE802.3规范(SAP);后来为解决EthernetII与802.3帧格式的兼容问题推出折衷的EthernetSNAP格式(SNAP)。2、各种不同的帧格式(1)EthernetII【RFC894】是DIX以太网联盟推出的,它由6个字节的目的MAC地址,6个字节的源MAC地址,2个字节的类型域(用于表示装在这个Frame、里面数据的类型),以上为FrameHeader,接下来是46--1500字节的数据,和4字节的帧校验)类型:0800表示数据位IP数据;0806表示ARP请求应答;0835表示RARP请求应答(2)IEEE802.3/802.2(SAP)802.3的FrameHeader和EthernetII的帧头有所不同,它把EthernetII类型域变成了长度域(与Novell-Ether相同)。其中又引入802.2协议(LLC)在802.3帧头后面添加了一个LLC首部。DSAP(DestinationServiceAccessPoint)1byte,(通常为0XAA)SSAP(SourceSAP)1byte,(通常为0XAA)Cntl一个控制域1byte。(通常为0X03)(3)EthernetSNAP【RFC1042】EthernetSNAPFrame与802.3/802.2Frame的最大区别是增加了一个5Bytes的SNAPID,其中前面3个byte通常与源mac地址的前三个bytes相同,为厂商代码!有时也可设为0。后2bytes与EthernetII的类型域相同。(SNAP封装是为了解决IEEE802.3封装与EthernetV2封装的兼容问题而提出的。)DSAP与SSAP通常为0xaa,Cntl通常为0x03,Orgcode通常为0x00类型字段与EthernetV2的含义相同。(在传输媒体上实际传输的要比以太帧多8个字节,由硬件产生,前7个为前同步码,后一个为帧开始定界符)说明:EthernetII比IEEE802.3SAP和SNAP更适合于传输大量的数据,但EthernetII缺乏对数据链路层的控制,不利于传输需要严格传输控制的数据.实际中,我们会发现,大多数应用程序的以太网数据包都是EthernetII帧的(如HTTP/Telnet/FTP/SMTP/POP3等应用),交换机之间的BPDU(一种生成树协议数据单元)是采用IEEE802.3SAP帧,VLANTrunk协议802.1Q和CiscoCDP都是采用IEEE802.3SNAP帧.二、串行线路协议1、高级数据链路控制规程HDLC1976年,ISO提出HDLC(High-levelDataLinkControl)HDLC是路由器串口的默认封装协议。(1)HDLC的适用范围计算机——计算机计算机——终端终端——终端(2)HDLC的帧结构控制域(Control):•第1位比特为0为信息帧。3-4位为发送序号,6-8为接收序号。•第1、2位为10为监控帧S、(第3、4为确定)用于连续ARQ和选择ARQ.•第1、2位为11为无编号帧。无符号帧起控制作用,•(第5位P/F为探询/终止比特)2、SLIP——SerialLineInternetProtocol1984年,RickAdams提出,RFC1055,发送原始IP包,用一个标记字节来定界,采用字符填充技术;新版本提供TCP和IP头压缩技术,RFC1144。存在的问题不提供差错校验只支持IPIP地址不能动态分配不提供认证多种版本并存,互连困难为克服SLIP的缺点,1992制定PPP协议。SLIP帧格式3、点到点协议PPP-Point-to-PointProtocol(RFC1661,RFC1662,RFC1663)与SLIP相比,PPP有很大的提高,提供差错校验、支持多种协议、允许动态分配IP地址、支持认证等。以帧为单位发送,而不是原始IP包。后面详细介绍,这里略。三、广域网协议从层次上看,广域网和局域网的区别很大,局域网使用的协议主要在数据链路层(还有少量物理层),而广域网使用的协议在网络层(存在路由选择和分组转发)。但从互联网的角度来看,广域网和局域网的地位是平等的。广域网中X.25\FR\ATM本身有数据链路层和网络层,但当他们用于支持英特网时,都可以看成IP层下面的数据链路层。1、X.25(LAPB)1byte1byte1-2bytesVariable2bytes1byteFlagAddressfieldControlfieldInformationFCSFlagLAPB帧格式如下(与HDLC类似):•X.25协议按照OSI参考模型的结构,定义了从物理层到分组层一共三层的内容。X.25网络是第一个面向连接的网络.•X.25第三层(分组层)规程描述了分组层所使用分组的格式和两个三层实体之间进行分组交换的规程;•X.25第二层(链路层)规程也叫做平衡型链路访路规程(LAPB,LinkAccessProcedure,Balanced),LAPB定义了DTE与DCE之间交互的帧的格式和规程;•X.25第一层(物理层)则定义了DTE与DCE之间进行连接时的一些物理电气特性。2、帧中继FR(LAPF)帧中继网络本身只包含物理层和数据链路层。帧中继的帧结构如图所示,它类似于HDLC的帧格式,不过没有控制字段。帧中继的帧格式中,标志字段F和帧校验序列FCS的作用与HDLC中的类似。3、ATM的协议参考模型和信元结构(1)ATM的协议参考模型ATM的协议参考模型共有三层,大体上与OSI的最低两层相当(但无法严格对应)物理媒体相关子层(PhysicalMediumDependentSublayer)TC子层传输汇聚子层(TransmissionConvergenceSublayer)ATM层的功能:•信元的复用与分用•信元的VPI/VCI转换•信元首部的产生与提取•流量控制汇聚子层CS(ConvergenceSublayer)拆装子层SAR(SegmentationAndReassembly)(2)ATM网络模型从这个图,我们可以看出,孤立观察ATM网,ATM网络就是一个广域网,不过从互联网IP层来看,整个ATM网路又好像处于数据链路层,本文将ATM网络置于互联网中,因此将ATM网看作数据链路层(3)ATM的数据格式2.3点到点协议PPP内容:PPP,LCP,IPCP,PAP,CHAP要求:1.掌握PPP的流程及报文格式2.掌握LCP的流程3.了解NCP的功能4.掌握PAP的流程和报文格式5.掌握CHAP的流程和报文格式一、PPP概述(1)应用场合ppp主要用于拨号接入Internet的场合,通过Modem与电话网连接;ADSL接入中使用的PPPOE和PPPOA;(2)PPP规定的内容帧格式及成帧方法用于建立、配置和测试链路的LCP用于建立和配置网络协议的NCP,对于IP网络,还使用IPCP(IP控制协议)此外,但ISP需要认证时,可以使用两个认证协议(PAP,CHAP)二、ppp协议流程(1)ppp通讯过程通过呼叫建立物理连接发起方回应方Configuire-requestConfigure-ACKAuthenticate-requestauthenticate-ACKConfigure-requestconfigure-ACKTerminate-requestTerminate-ACK断开物理连接配置参数帐号及口令IP地址链路不可用阶段链路建立阶段(LCP)用户认证阶段(可省略)(PAP、CHAP)网络层协议阶段(IPCP)链路终止阶段(LCP)(2)PPP链路状态Dead:初态和终态,表明物理层尚未准备好;DeadUPOPENEDSUCCESS/NONEFAILCLOSINGDOWNFAIL图1PPP链路状态转换图EstablishEstablish:使用LCP建立和配置链路;AuthenticateAuthentication:身份认证阶段;NetworkNetwork:使用相应的NCP配置网络层协议;TerminateTerminate:终止链路。三、PPP帧格式(p15)协议数据FCSF7EAFFC03F7ELinkQualityReport(链路质量报告)四、LCP1.LCP报文(用于配置、维护和终止ppp链路)(1)报文格式类型ID长度一个和多个选项(LCP定义了6中