1计算机网络第三讲数据链路层与以太网(包括第四版的3、4章)2本讲要求1.理解数据链路层解决的基本问题2.掌握数据帧的基本原理和方法3.掌握出错处理的几种方式4.理解MAC子层的基本问题5.掌握CSMA/CD协议6.掌握以太网及有关的协议3数据链路层的简单模型(1)局域网广域网主机H1主机H2路由器R1路由器R2路由器R3电话网局域网主机H1向H2发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2从层次上来看数据的流动4局域网广域网主机H1主机H2路由器R1路由器R2路由器R3电话网局域网主机H1向H2发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2仅从数据链路层观察帧的流动数据在四段链路上进行传输。数据链路层的简单模型(2)四段可能采用不同的链路协议,但都能实现比特流的传输。5区分链路与数据链路•链路(link):是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。•数据链路(datalink):链路+协议–最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件–一般的适配器都包括了数据链路层和物理层这两层的功能。6数据链路层关心基本问题如何利用物理层的0-1比特流传输能力在相邻机器间进行数据传输?相邻机器之间数据传输有哪几种形式?总线形式广播信道一对一形式点对点信道如何保证不同形式下数据正确传输?7脉络点对点信道基本问题广播信道基本问题广播信道的例子:以太网无线局域网8点到点信道有哪些基本问题?1.帧格式2.透明传输3.出错处理点到点协议计算机网络3.数据链路层:点到点信道9数据链路层结点A结点B帧(b)发送帧接收链路IP数据报1010……0110帧取出数据链路层网络层链路结点A结点B物理层(a)IP数据报1010……0110帧装入数据链路层传送的是帧数据链路层像个比特流数字管道10如何把数据封装成帧?•封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。•为什么要加入首部和尾部?帧结束帧首部IP数据报帧的数据部分帧尾部最大传送单元MTU数据链路层的帧长开始发送帧开始计算机网络3.数据链路层:数据封装11为什么需要加入首部和尾部?①字符计数法②字符填充法③零比特填充计算机网络3.数据链路层:数据封装为了区分不同帧,术语称为帧定界。如何实现帧定界?原理:在头部中的一个域指定该帧中的字符数。5个字符5个字符8个字符8个字符512345678901234568790123第一帧8第二帧第三帧第四帧8字符计数可能出现的问题:出错后的帧无法同步。计算机网络3.数据链路层:数据封装1字符计数法512345678901234568790123第一帧8第二帧8计数?很难区分计数的字符和数据字符7132字符填充法(1)原理:使用特殊的字符作为帧的开始和结束标志新的问题:如果数据中出现了SOH/EOT怎么办?AEOTBSOHEOT计算机网络3.数据链路层:数据封装SOH装在帧中的数据部分帧帧开始符(ASCII)帧结束符发送在前EOT14□解决:转义字节技术填充“ESC”ESCSamewithflagSOHAEOTBEOT新问题:数据中包含了ESC怎么办?AEOTBSOHEOT计算机网络3.数据链路层:数据封装2字符填充法(2)15□转义字节技术data“ESC”填充“ESC”ESCSOHAESCBEOTSOHAESCBEOT接收方收到第一个ESC,表示后面的是需要转义的字符计算机网络3.数据链路层:数据封装2字符填充法(3)16SOHSOHEOTSOHESCEOTSOHESCSOH原始数据EOTEOT经过字节填充后发送的数据发送在前帧开始符帧结束符ESC字符填充ESC字符填充ESC字符填充ESC字符填充SOH计算机网络3.数据链路层:数据封装字符填充法(4)□发送端17SOHSOHEOTSOHESCEOTSOHESCSOHEOTEOT收到经过字符填充后的数据发送在前原始数据帧开始符帧结束符ESC删除填充ESC删除填充ESC删除填充ESC删除填充SOH计算机网络3.数据链路层:数据封装字符填充法(5)□接收端实现ASCII码透明传输!18□字符填充法存在什么问题?◇必须紧紧依赖于8位字符模式◇不是所有的字符都是8位字符模式,如UNICODE使用16位字符计算机网络3.数据链路层:数据封装2字符填充法(6)如何解决?非8位字符模式,需要转换为8位字符模式才能顺利传输。□由此可见此方法普遍适应性不强。193零比特填充法原理:帧开始和结束都有一个特殊的位模式01111110问题:当传输数据中有01111110如何处理?解决办法:碰到连续5个连续的位“1”的时候,自动填充一位01234561234567812345601111110010111111110111011111100111111001011111011101110111111012345678最常用的帧定界手段。通常由硬件实现!计算机网络3.数据链路层:数据封装实现比特流的透明传输!20◆定义—什么是通信错误?凡是接收到的数据和发送的数据不一致□不一致:错误数据*、丢失数据、数据乱序(先看看解决错误数据的基本措施,丢失和乱序问题在后面章协议中介绍)计算机网络3.数据链路层:出错处理出错处理(差错控制)◆差错控制需要解决的问题1)识别差错2)保证接收方不丢帧、不乱序的收到正确帧出错处理(2)计算机网络3.数据链路层:出错处理◆出错处理的基本措施包括三种:□纠错(错误纠正):就是将不一致的数据恢复到一致。一般用于单向信道(无确认)□检错(错误发现)+重传:检查数据中是否存在不一致一般用于双向信道(有确认)□不作为(不管式容错)22如何检错?□原理:在发送的数据中包含冗余信息,以便接收者可以推断出数据中是否发生了错误。□方案1:奇偶检错方案——检测单个错误□方案2:循环冗余校验方案CRC计算机网络3.数据链路层:出错处理23000001010011100101110111数据位校验位01101001发送方110010数据位校验位01000101数据位校验位01接收方error奇偶校验(ParityCheck)计算机网络3.数据链路层:出错处理检错原理:在数据后面加上一个奇偶位。对于偶校验而言:如果数据中的“1”的位为偶数,则填0,如果是奇数,则填1。只能检测1位数据错误24•CRC检验能够实现无比特差错的传输。—以非常接近于1的概率检测出这些帧在传输过程中是否出现比特错误•但CRC无法保证“可靠传输”(即发送什么就收到什么),对于帧丢失、重复、乱序等问题,就必须再加上确认和重传机制(依赖于协议)。CRC:循环冗余校验计算机网络3.数据链路层:出错处理CRC既能够检错,还能纠错。25点到点通信协议•点到点通信的主要协议有两种:•HDLC(HighlevelDataLinkControl)–实现可靠传输–协议复杂,现在基本不用•PPP(Point-to-PointProtocol)–使用得最多的数据链路层协议计算机网络3.数据链路层:点对点协议——协调链路层传输双方的行为。26用户到ISP的链路使用PPP协议用户至因特网已向因特网管理机构申请到一批IP地址ISP接入网PPP协议计算机网络3.数据链路层:点对点协议PPPoE(PPPoverEthernet)宽带上网主机使用的数据链路层协议27PPP协议功能?•简单—首要需求•封装成帧•透明传输•多种网络层协议•多种类型链路•差错检测•检测连接状态•设置最大传送单元(MTU)•与网络层地址协商–动态获得IP地址•数据压缩协商计算机网络3.数据链路层:点对点协议28PPP协议不需要的功能•纠错•流量控制•序号•多点线路–只支持点到点链路•半双工或单工链路–只支持全双工链路计算机网络3.数据链路层:点对点协议29PPP协议的组成[RFC1661]三部分:一个方法+两个协议◆链路控制协议LCP启动线路、测试线路、协商PPP参数◆网络控制协议NCP协商网络层选项一个方法IP数据报封装--帧格式问题计算机网络3.数据链路层:点对点协议30PPP帧结构1211字节12不超过1500字节PPP帧先发送7EFF03FACFCSF7E协议信息部分首部尾部IP数据报•协议字段若为0x0021时,PPP帧的信息字段就是IP数据若为0xC021,则信息字段是链路控制数据(LCP)。若为0x8021,则表示这是网络控制数据(NCP)。计算机网络3.数据链路层:点对点协议31应用PPP连接互连网的典型过程物理连接呼叫建立物理连接LCP建立连接协商PPP参数NCP建立连接,网络层配置,如IP地址等网络数据传输断开释放物理连接释放LCP连接NCP释放网络层连接,如收回IP地址通信完毕计算机网络3.数据链路层:点对点协议链路静止链路建立密码鉴别网络层协议链路打开链路终止物理层链路层网络层物理层连接建立LCP配置协商鉴别成功或无需鉴别NCP配置协商链路故障或关闭请求LCP链路终止鉴别失败LCP配置协商失败PPP协议状态图33PPP是一种跨层实现的协议NetworklayerDataLinkLayerPhysicallayerNCPLCPMEDIAIPIPXPPP计算机网络3.数据链路层:点对点协议34广播信道基本问题(1)计算机网络3.数据链路层:广播信道——以局域网的广播信道为例讨论局域网(LAN)是一种地理范围和站点数目均有限的计算机网络,是在各种机构、组织、公司、单位最常见的计算机网络形式。下面从局域网的结构、模型和特点等方面简要介绍一下。35局域网简介(拓扑结构)总线网集线器星形网干线耦合器环形网计算机网络3.数据链路层:局域网36局域网层次模型(1)•局域网层次模型包括物理层和数据链路层数据链路层物理层媒体访问子层MAC逻辑链路控制子层LLC计算机网络3.数据链路层:局域网IEEE802局域网标准37逻辑链路层LLC功能:–执行通常的数据链路功能:建立和释放数据链路层的逻辑连接;提供与高层的接口;差错控制;给帧加序号–使数据链路层能更好地适应多种局域网标准–与传输媒体无关IEEE802标准媒体访问层MAC功能:–处理与接入到传输媒体有关的内容:–将上层交来的数据封装成帧进行发送;–实现和维护MAC协议;–比特差错检测;寻址计算机网络3.数据链路层:局域网38•不同的局域网有不同的物理层和MAC子层•局域网有共同的LLC子层802.10可互操作的局域网安全802.2逻辑链路控制子层802.3CSMA/CD802.4令牌总线802.5令牌环802.6城域网802.9语音与数据综合局域网802.11无线局域网802.1体系结构与网络互联IEEE802标准计算机网络3.数据链路层:局域网现在很多厂商生产的网卡上就仅装有MAC协议而没有LLC协议,为了兼容局域网的事实标准以太网。39计算机网络3.数据链路层:广播信道•局域网的主要特点:–高数据率、低差错率–不用穿越公共设施–能进行广播或多播•局域网的主要优点:–共享性好–扩展性好–可靠性好–可用性好–生存性好局域网模型总结40广播信道基本问题(2)广播信道有哪些问题?寻址(以太网中讲解)帧格式透明传输差错检测计算机网络3.数据链路层:广播信道——以局域网为例讨论信道分配问题41广播信道核心问题关键问题:当存在多方竞争使用信道的时候,如何确定谁可以用?解决问题的基本思路:(1)静态信道分配方案(FDM、TDM)(2)动态信道分配方案(竞争机制)计算机网络3.数据链路层:信道分配42静态信道分配方案效率分析主要问题FDM浪费带宽,效率低下!TDM对于每一个用户来说,平均等待时间是原来的N倍!!◆结论传统的信道分配方法不适应突发性流量情况,需要寻求新的方法——动态信道分配方法计算机网络3.数据链路层:信道分配43动态信道分配方案(1)◆动态信道分配方案必须解决的基本问