1、计算机网络第五版课件谢希仁编著第三章数据链路层课件制作人:谢希仁课件制作人:谢希仁第 3 章 数据链路层3.1 使用点对点信道的数据链路层3.1.1 数据链路和帧3.1.2 三个基本问题3.2 点对点协议 PPP3.2.1 PPP 协议的特点3.2.2 PPP 协议的帧格式3.2.3 PPP 协议的工作状态课件制作人:谢希仁第 3 章 数据链路层(续)3.3 使用广播信道的数据链路层 3.3.1 局域网的数据链路层 3.3.2 CSMA/CD 协议3.4 使用广播信道的以太网 3.4.1 使用集线器的星形拓扑 3.4.2 以太网的信道利用率 3.4.3 以太网的 MAC 层课件制作人:谢希仁第
2、 3 章 数据链路层(续)3.5 扩展的以太网3.5.1 在物理层扩展以太网3.5.2 在数据链路层扩展以太网3.6 高速以太网 3.6.1 100BASE-T 以太网 3.6.2 吉比特以太网 3.6.3 10 吉比特以太网 3.6.4 使用高速以太网进行宽带接入3.7 其他类型的高速局域网接口课件制作人:谢希仁数据链路层数据链路层使用的信道主要有以下两种类型:n点对点信道。使用一对一的点对点通信方式。n广播信道。使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。课件制作人:谢希仁Point-to-Point cir
3、cuit 与Multipoint circuits 主机 A 链路 点对点链路点对点链路:连接两个且只连接两个结点的链路。一端只有一个发送方,另一端有一个接收方。如一个PC连接一个服务器;两个地方的电话连接。 主机 ABCD 多点链路多点链路:同一链路上,连接多个结点。从主机到A,从A到B,从B到C,从C到D,都是链路;从主机到D是电路(circuit)。课件制作人:谢希仁链路层协议提供的服务n链路层协议的功能是在一个路径(path)中,经过一个单一链路,进行结点-到-结点的网络层数据报的移动。(node-to-node job of moving a network-layer datagr
4、am over a single link in a path.n可能提供的服务: 封装成帧与链路接入把网络层数据报封装成帧(数据+header+trailer);明确信道的接入协议(点对点的链路接入协议简单,甚至不存在;多点接入问题较为复杂。) 差错控制 透明传输课件制作人:谢希仁数据链路层的简单模型局域网广域网主机 H1主机 H2路由器 R1路由器 R2路由器 R3电话网局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2从层次上来看数据的流动课件制作人:谢希仁数据链路层的
5、简单模型( 续)局域网广域网主机 H1主机 H2路由器 R1路由器 R2路由器 R3电话网局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2仅从数据链路层观察帧的流动课件制作人:谢希仁3.1 使用点对点信道的数据链路层3.1.1 数据链路和帧 n链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。n一条链路只是一条通路的一个组成部分。n数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到
6、链路上,就构成了数据链路。n现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。n一般的适配器都包括了数据链路层和物理层这两层的功能。 IP 数据报1010 0110帧取出数据链路层网络层链路结点 A结点 B物理层数据链路层结点 A结点 B帧(a)(b)发送帧接收链路IP 数据报1010 0110帧装入数据链路层传送的是帧课件制作人:谢希仁数据链路层像个数字管道 n常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。n早期的数据通信协议曾叫作通信规程(procedure)。因此在数据链路层,规程和协议是同义语。 结点结点帧帧课件制作人:谢希仁帧的
7、形成n尽管这个message可以被装在一个帧内,但为了流量和差错控制通常把报文分成更小的帧。n帧可能是固定长度的及可变长度的。固定长度的帧不用定义帧的边界(如广域网中ATM的帧);局域网中的帧是可变长度的帧,需要定义边界。n通常使用两种方法定义边界:面向字符的协议和面向位的协议。课件制作人:谢希仁Character-Oriented Protocolsn在此协议中,数据用8-bit的字符(如ASCII)携带。n其首部(通常是源、目的地址及其他控制信息)、尾部(检错冗余位)都是8位的倍数。n为把各帧分开,把8-bit的flag加到帧的开始和结尾。该标志是特殊的字符(不同协议,字符不同)。n面向字
8、符的帧的形成在数据链路层只交换文本时,很普及。n现今,传送其他数据(图形,声音,图形),该模式(特殊字符)可能是信息的一部分,接收方会误认为是帧的结尾。课件制作人:谢希仁Figure 11.1 A frame in a character-oriented protocol课件制作人:谢希仁面向字符的帧的byte-stuffingn为解决以上问题,采用byte-stuffing方法。n当帧中的数据部分有与标志位一样的字符时,加入一个特殊字节。该字节称为escape character (ESC),接收方遇到ESC字符,接收方从数据部分中取出该字符,把下一字符作为数据,而不是定界标志。n如果数据
9、中含有ESC字符,则再加上一个ESC,表明第二个ESC是数据的一部分。见下图。n面向字符协议的另一个问题是,现今大多用的是Unicode等16-bit或32-bit字符,与8-bit的相冲突。n趋势是面向位的协议。课件制作人:谢希仁Byte stuffing is the process of adding 1 extra byte whenever there is a flag or escape character in the text.Note课件制作人:谢希仁Figure 11.2 Byte stuffing and unstuffing课件制作人:谢希仁Bit-Oriented
10、Protocolsn帧的数据部分是一系列bits,表示上层来的数据(文本、图形、声音、图像等)。n大多数协议使用8-bit的模式位01111110作为定界符。见下页。n该方法的问题与面向字符的相同。当标志模式出现在数据中,也需要stuffing。nBit stuffing:如果遇到1个0和连续5个1,就在后面加1个0 。课件制作人:谢希仁Figure 11.3 A frame in a bit-oriented protocol课件制作人:谢希仁Bit stuffing is the process of adding one extra 0 whenever five consecutive
11、 1s follow a 0 in the data, so that the receiver does not mistakethe pattern 0111110 for a flag.Note课件制作人:谢希仁Figure 11.4 Bit stuffing and unstuffing课件制作人:谢希仁3.1.2 三个基本问题 (1) 封装成帧(2) 透明传输(3) 差错控制 课件制作人:谢希仁1. 封装成帧n封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。n首部和尾部的一个重要作用就是进行帧定界。 帧结束帧首部IP 数据报帧的数据
12、部分帧尾部 MTU数据链路层的帧长开始发送帧开始课件制作人:谢希仁用控制字符进行帧定界的方法举例 SOH装在帧中的数据部分帧帧开始符帧结束符发送在前EOT课件制作人:谢希仁2. 透明传输SOHEOT出现了“EOT”被接收端当作无效帧而丢弃被接收端误认为是一个帧数据部分EOT完整的帧发送在前如果数据中的某个字节的二进制代码恰好和SOH或EOT控制字符一样,则数据链路层会错误地找到帧的边界,只把部分帧手下,剩下的丢弃。以上的传输就不是透明传输,需要解决课件制作人:谢希仁解决透明传输问题n发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是
13、1B)。n字节填充(byte stuffing)或字符填充(character stuffing)接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。n如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。 课件制作人:谢希仁SOHSOHEOTSOHESCESCEOTESCSOHESCESCESCSOH原始数据EOTEOT经过字节填充后发送的数据字节填充字节填充字节填充字节填充发送在前帧开始符帧结束符用字节填充法解决透明传输的问题 SOH课件制作人:谢希仁3. 差错检测n在传输过程中可能会产生比特差错:1 可能会变成
14、0 而 0 也可能变成 1。n在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。n误码率与信噪比有很大的关系。n为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。 课件制作人:谢希仁检错原理 数据报 DEDC 数据位有差错链路 DEDCD中的位正确? 数据报YN检测到错误课件制作人:谢希仁检错原理 Data EE=f (data)Data发送方 Data EE=f (data)Compare接收方课件制作人:谢希仁Figure 10.3 The structure of encoder and decoder课件制
15、作人:谢希仁课件制作人:谢希仁Figure 10.5 Datawords and codewords in block coding课件制作人:谢希仁Figure 10.6 Process of error detection in block coding课件制作人:谢希仁Parity Checks 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 11d 个数据位Parity bit图:1位偶校验课件制作人:谢希仁Cyclic Redundancy Checkn对于k位的数据块,发送方产生一个n位的序列(帧校验序列FCS)。所产生的帧,由 k+n 位组成,能被某个预先确定的数整除
16、。n接收方把接收到的帧,用该数除,如果没有余数,则认为没有差错。nModulo 2 arithmetic:没有进位的二进制加法,等价于异或运算。n举例:n1. 假定 Message M = 1010001101 (10 bits) Pattern P = 110101 ( 6 bits) FCS R = 待计算(5 bits,R比P少1位) 2. 该数据块乘以25,得到: 101000110100000.课件制作人:谢希仁n3. 以上的积被P除,得到:课件制作人:谢希仁4. 2nM加上余数之后得到传输用的T=1010001101011105. 如果没有差错,接收方收到的T不变。收到的帧被P除,
17、得到:因为没有余数,则假定没有差错。课件制作人:谢希仁Table 10.6 A CRC code with C(7, 4)课件制作人:谢希仁Figure 10.14 CRC encoder and decoder课件制作人:谢希仁Figure 10.15 Division in CRC encoder课件制作人:谢希仁Figure 10.21 A polynomial to represent a binary word课件制作人:谢希仁循环冗余检验的原理 n在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。n在发送端,先把数据划分为组。假定每组 k 个比特。 n假设待传送的
18、一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。 课件制作人:谢希仁冗余码的计算 n用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。n得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少1 位,即 R 是 n 位。 课件制作人:谢希仁冗余码的计算举例 n现在 k = 6, M = 101001。n设 n = 3, 除数 P = 1101,n被除数是 2nM = 101001000。 n模 2 运算的结果是:
19、商 Q = 110101, 余数 R = 001。n把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2nM + R 即:101001001,共 (k + n) 位。 课件制作人:谢希仁 110101 Q (商) P (除数) 1101 101001000 2nM (被除数) 1101 1110 1101 0111 0000 1110 1101 0110 0000 1100 1101 001 R (余数),作为 FCS 循环冗余检验的原理说明 课件制作人:谢希仁帧检验序列 FCS n在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
20、n循环冗余检验 CRC 和帧检验序列 FCS并不等同。nCRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。nFCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。 课件制作人:谢希仁接收端对收到的每一帧进行 CRC 检验 n(1) 若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)。n(2) 若余数 R 0,则判定这个帧有差错,就丢弃。n但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。n只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。 课件制作人:谢希仁应当注意 n仅用循环冗
21、余检验 CRC 差错检测技术只能做到无差错接受(accept)。n“无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。n也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。n要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。 课件制作人:谢希仁3.2 点对点协议 PPP 3.2.1 PPP 协议的特点 n现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。n用户使用拨号电话线接入因特网时,一般都是使用 PPP
22、协议。 课件制作人:谢希仁用户到 ISP 的链路使用 PPP 协议 用户至因特网已向因特网管理机构申请到一批 IP 地址ISP接入网PPP 协议课件制作人:谢希仁用户拨号上网示意图PC机modemmodem路由器至因特网拨号电话线使用TCP/IP的PPP连接使用TCP/IP的客户进程modem用户住所因特网服务提供者 ISP路由器选择进程课件制作人:谢希仁1. PPP 协议应满足的需求 n简单这是首要的要求 最复杂的部分放在TCP中,其他的,如IP及链路层协议都简单。 数据链路层协议:接收方每收到一个帧,就进行CRC检验。如检验正确,就收下;反之,就丢弃这个帧。n封装成帧 PPP协议数据链路层
23、的发送方,应能接收网络层的分组,并封装在PPP链路层的帧中。接收方应能区分该帧及该帧中网络层分组的开始和结束位置。n透明性 必须保证数据传输的透明性。如果数据中碰巧出现了和帧定界符一样的比特组合,要解决(byte stuffing)。n多种网络层协议 在同一条物理链路上,点到点地同时支持多种网络层协议(如IP和IPX等)的运行。就像IP支持不同运输层协议(如TCP,UDP)在一个端到端的链接。即PPP需要一个“协议类型”字段。课件制作人:谢希仁PPP 协议应满足的需求n多种类型链路 PPP需要能够在多种类型的链路上运行。串行、并行、同步、异步、低速、高速等。n差错检测 接收方能够对收到的帧检错
24、。丢弃有差错的帧。n检测连接状态 能及时自动检测出链路是否处于正常工作状态。n最大传送单元 对每一种类型的PPP链路设置最大传送单元(数据部分的最大长度)n网络层地址协商 提供一种机制,使通信的两个网络层(如两个IP层)的实体能通过协商知道或配置彼此的网络地址。n数据压缩协商 提供一种方法,协商数据压缩算法。课件制作人:谢希仁2. PPP 协议不需要的功能n纠错 可靠传输由TCP负责;PPP协议是不可靠传输协议。n流量控制 端到端的流量控制有TCP负责。n序号 PPP不要求链路发送方以发送的顺序交付给接收方。n多点线路 PPP只支持点对点的链路通信。n半双工或单工链路 只支持全双工链路。课件制
25、作人:谢希仁3. PPP 协议的组成 n1992 年制订了 PPP 协议。经过 1993 年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准RFC 1661。 nPPP 协议有三个组成部分 n封装成帧:一个将数据封装到PPP帧 的方法,识别帧的开始和结束,检测帧中的差错。n链路控制协议 LCP (Link Control Protocol):用于对链路的初始化,维持,及撤销PPP链路。n网络控制协议 NCP (Network Control Protocol):有多个协议,每一个都对应于上层的网络层协议。在网络层数据报开始通过PPP链路传输之前,允许网络层模块自己配置。 课件
26、制作人:谢希仁3.2.2 PPP 协议的帧格式nPPP 有一个 2 个字节的协议字段。n当协议字段为 0 x0021 时,PPP 帧的信息字段就是IP 数据报。n若为 0 xC021, 则信息字段是 PPP 链路控制数据。n若为 0 x8021,则表示这是网络控制数据。 IP 数据报1211字节12不超过 1500 字节PPP 帧先发送7EFF03FACFCSF7E协议信 息 部 分首部尾部课件制作人:谢希仁011111101111111100000011protocolInfoCheck01111110FlagAddressControlFlag1111 or 2Variable lengt
27、h2 or 411.字段的意义Flag field:每个PPP帧都以一个字节的标志字段,值为01111110,开始和结束。Address field: 只有一种情况,11111111。Control field: 只有一种取值,00000011。 因为这些字段取固定的值,PPP允许发送方不发送这些地址和控制字段,可节省PPP帧中的开销。课件制作人:谢希仁Protocol: 该字段定义信息字段数据的含义:是用户数据还是其他信息。一收到一个PPP帧,则PPP的接收方将检查该帧的正确性,并把该封装的帧传送给相应的协议。nPPP 有一个 2 个字节的协议字段。n当协议字段为 0 x0021 时,PPP
28、 帧的信息字段就是IP 数据报。其他网络层协议有Appletalk(29), DECnet(27)。 n 若为 0 xC021, 则信息字段是 PPP 链路控制数据。n若为 0 x8021,则表示这是网络控制数据。Information: 包含封装的由上层协议(如IP)通过PPP链路传输的分组数据。信息字段的最大长度是1500字节。当网络首次配置时,可以改变该值。Checksum: 2字节的标准CRC。PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。 课件制作人:谢希仁透明传输问题 n当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。 n当
29、 PPP 用在异步传输时,就使用一种特殊的字符填充法。nPPP是面向字符的,因此采用字符填充,且帧长是字节的整数倍。 n但PPP也能在面向比特的线路,如HDLC上使用,采用比特填充。课件制作人:谢希仁2. 字节填充 n如果标志字段的值01111110出现在信息字段,怎么办? 透明传输:不限制上层协议发送包含标志字段的位模式,而是采用字节填充(byte stuffing)方法。 除标志字段外,如果在帧中出现01111110序列出现,则在此序列之前,加上转义字节01111101,n将信息字段中出现的每一个 0 x7E 字节转变成为 2 字节序列(0 x7D, 0 x5E)。 n若信息字段中出现一个
30、 0 x7D 的字节, 则将其转变成为 2 字节序列(0 x7D, 0 x5D)。n若信息字段中出现 ASCII 码的控制字符(即数值小于 0 x20 的字符),则在该字符前面要加入一个 0 x7D 字节,同时将该字符的编码加以改变。n在接收端进行相反的变换。课件制作人:谢希仁PPP is a byte-oriented protocol using byte stuffing with the escape byte 01111101.Note课件制作人:谢希仁3. 零比特填充 nPPP 协议用在 SONET/SDH 链路时,是使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比
31、特填充方法来实现透明传输。n在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除,0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 00 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 00 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0信息字段中出现了和标志字段 F 完全一样的 8 比特组合发送端在 5 个连 1 之后填入 0 比特再发送出去在接收端把 5 个连 1之后的 0 比特删除会被误认为是标志字段 F 发送端填入 0 比特接收端删除
32、填入的 0 比特零比特填充课件制作人:谢希仁 不提供使用序号和确认的可靠传输 nPPP 协议之所以不使用序号和确认机制是出于以下的考虑:n在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。n在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。n帧检验序列 FCS 字段可保证无差错接受。 课件制作人:谢希仁 3.2.3 PPP 协议的工作状态 n当用户拨号接入 ISP 时(通常是在屏幕上用鼠标点击一个连接按钮)路由器就能够检测到modem发出的载波信号,路由器的调制解调器对拨号做出确认,并建立一条物理连接。n
33、PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧),以便建立LCP连接。n这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。n通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。 课件制作人:谢希仁设备之间无链路链路静止链路建立鉴别网络层协议链路打开链路终止物理链路LCP 链路已鉴别的 LCP 链路已鉴别的 LCP 链路和 NCP 链路物理层连接建立LCP 配置协商鉴别成功或无需鉴别NCP 配置协商链路故
34、障或关闭请求LCP 链路终止鉴别失败LCP 配置协商失败课件制作人:谢希仁Figure 11.33 Transition phases课件制作人:谢希仁nDead. 链路没有被使用,物理层没有载波,线路静默。PPP链路从此开始,以此结束。nEstablish. 当一个结点开始通信,连接就进入此状态。双方协商一些选项(见下页ppt)(包括最大帧的大小,鉴别协议的说明,跳过PPP帧中使用地址级控制字段)。一个结点发送LCP configure-request 帧(其协议字段设置为LCP,PPP信息字段包含特定的配置请求),进行协商配置。另一方用configure-ack 帧应答(接受所有选项);
35、configure-nak 帧(理解所有的选项,但不接受),或configure-reject帧 。如果协商成功,系统进入鉴别状态(如果需要鉴别)或直接到网络层。nAuthenticate. 这个阶段是可选的;如果两个结点确定进行鉴别,它们发送几个鉴别分组。如果成功,连接就到网络阶段;否则,到终止阶段。nNetwork. 此阶段协商网络层协议。PPP规定,在网络层交换数据之前,两个结点要建立网络层约定。因为PPP支持多个网络层协议,如果一个结点在网络层同时运行多个协议,接收结点需要知道是哪个结点接收数据。nOpen. 此阶段进行数据传输。当连接进行到该阶段,开始数据分组的交换,直到一个结点想要
36、终止该连接为止。nTerminate. 在此阶段,连接终止。交换几个分组用于关闭链路。课件制作人:谢希仁n尽管PPP是一个数据链路层协议,但PPP使用一套其他的协议来建立链路、鉴别所涉及的各方、并携带网络层数据。n使用三套协议: 这些协议包括:一个LCP (link control protocol),两个Authentication Protocols (APs), 几个NCP (network control protocols)。任何时候,一个PPP分组都能在其数据段携带来自这些协议中的一个协议的数据。(见下图)Multiplexing课件制作人:谢希仁Figure 11.34 Mult
37、iplexing in PPP一个PPP分组在其数据段携带的数据来自多个协议中的一个课件制作人:谢希仁n负责链路的建立,维持,配置和终止。提供链路两端结点的协商机制,在链路建立之前,必须协商好选项(选项见后面)。 所有LCP分组(见下页)都封装在一个PPP帧的负载字段(payload field),协议字段设为十六进制的C021。 在LCP分组中,code字段定义LCP分组的类型,共11种,见下页。 ID字段:保留一个值,使请求与响应相匹配。一个结点在ID字段插入一个值,该值被拷贝到响应分组。 Length字段:定义整个LCP分组的长度。 Information字段:包含信息,如选项(opti
38、ons)等。Options被插入 到配置分组的信息字段。 可以在两个PPP结点交换LCP的echo-request帧和echo-reply帧,以检查链路的状态。 如果其中一个结点发送LCP的terminate-request帧,并得到terminate-ack LCP 响应,则链路进入dead状态。Link Control Protocol课件制作人:谢希仁FlagAddressControl0 xC021payloadFCSFlagCodeIDLengthInformationLCP分组 1 1 2 可变长封装在帧中的LCP分组LCP:0 xC021AP: 0 xC023和0 xC223NC
39、P:0 x8021和Data: 0 x0021和LCP: Link Control Protocol AP: Authentication ProtocolNCP: Network Control Protocol课件制作人:谢希仁CodePacket TypeDescription0 x01Configure-request包含提出的选项及它们的值0 x02Configure-ack接受所有提出的选项0 x03Configure-nak一些选项不接受0 x04Configure-reject一些选项不识别0 x05Terminate-request请求关闭线路0 x06Terminate-a
40、ck接受关闭请求0 x07Code-reject通知是未知代码0 x08Protocol-reject通知是未知协议0 x09Echo-request一种hello信息,检查另一方是否活跃(alive)0 x0AEcho-reply对Echo-request的响应0 x0BDiscard-request请求丢弃分组LCP分组1-4类:用于建立阶段的链路配置;5-6类:用于终止阶段的链路终止;最后5类:用于链路监控和调试。课件制作人:谢希仁双方协商的选项Common optionsOptionDefault最大接收单元(负载字段大小)1500鉴别协议None Protocol field com
41、pressionOffAddress and control field compressionOff课件制作人:谢希仁nPPP是为拨号上网链路设计的,用户身份的识别是必须的,因此Authentication 在PPP中非常重要。鉴别意味着核实需要访问资源的人的身份。PPP创建了两个鉴别协议:Password Authentication Protocol(PAP), Challenge Handshake Authentication Protocol (CHAP)。在鉴别阶段使用。 Authentication Protocols课件制作人:谢希仁PAP (Password Authent
42、ication Protocol)PAP 是一个两步骤的鉴别过程: 1. 要访问系统的用户发送鉴别标识(通常是用户名)及口令。 2. 系统核查用户名及口令的有效性,以接受或拒绝连接。下图显示了PAP使用的三个分组类型及如何交换的。课件制作人:谢希仁Code:1IDLengthUser namelengthPasswordUser nameCode:2Code:3IDIDlengthlengthusersystemUser namelengthUser namelengthUser nameUser namePasswordlengthAuthenticate-requestAuthentica
43、te-ackAuthenticate-nak1121可变长1可变长Authenticate-requestAuthenticate-ack Or Authenticate-nakFlagAddressControlC023payloadFCSFlag封装在一个PPP帧中的PAP分组课件制作人:谢希仁n上页的图:三个PAP分组,它们是如何交换的。 此时,协议字段的值是0 xC023。三个分组是authenticate-request, authenticate-ack, 和 authenticate-nak。 第一个分组,用户用来发送用户名和口令;第二个分组由系统使用来允许接入;第三个分组,由系
44、统来拒绝接入。课件制作人:谢希仁nCHAP (Challenge Handshake Authentication Protocol (CHAP) 是一个三次握手(three-way hand-shaking)的鉴别协议,提供比PAP更好的安全性。口令不在线发送。 1. 系统给用户发送一个challenge 分组,其中含有一个challenge值,通常是几个字节; 2. 用户使用一个预定义函数,利用challenge值和用户自己的password,产生一个结果。用户在响应帧中把该结果发送给系统。 3. 系统也同样如此进行。对用户的口令及challenge值使用同样的函数,产生一个结果。如果产生
45、的结果与响应帧发送的结果相同,则允许接入;否则拒绝接入。CHAP比PAP更安全。 课件制作人:谢希仁Code:1IDLengthchallengelengthChallengevalueCode:2Code:3IDIDlengthlengthusersystemresponselengthmessagechallengeresponsesuccess1121可变长可变长challenge封装在一个PPP帧中的CHAP分组ResponseSuccess or failureCode:4IDlengthmessagenameFailureresponsevaluenameFlagAddressCo
46、ntrolC223payloadFCSFlag课件制作人:谢希仁nCHAP封装在PPP帧中,其协议值为C223 。有四种CHAP分组:challenge,response,success, failure. n第一种分组由系统发送change value。第二种分组由用户返回计算结果;第三种分组允许接入系统。第四种分组拒绝接入系统。课件制作人:谢希仁nPPP能携带来自多个网络层协议的网络层数据分组,这些协议可以是Internet, OSI, Xerox, DECnet, AppleTalk,Novel 等。nPPP为每个网络层协议定义一个特定的NCP。例如:IPCP (Internet Pro
47、tocol Control Protocol)用于对携带IP数据分组进行链路配置。Xerox CP 对Xerox 协议数据分组起同样作用。nNCP分组并不携带网络层数据,它们只是为到来的数据配置链路。Network Control Protocols课件制作人:谢希仁IPCPn其中的一个NCP是IPCP (Internet Protocol Control Protocol )。n该协议配置链路,用于携带Internet中的IP分组。nIPCP分组的格式见下页。协议字段值是十六进制的8021。课件制作人:谢希仁nIPCP分组的格式Flag Address Control 0 x8021Payl
48、oadFCSFlagCodeIDLengthIPCP 信息112可变长IPCP分组封装在PPP帧中的IPCP分组课件制作人:谢希仁CodeIPCP Packet0 x01Configure-request0 x02Configure-ack0 x03Configure-nak0 x04Configure-reject0 x05Terminate-request0 x06Terminate-ack0 x07Code-rejectnIPCP定义7种分组,见下表。 IPCP分组的Code value课件制作人:谢希仁n用于其他网络层协议的其他NCP协议,如OSI网络层控制协议的协议字段值为8023;
49、Xerox HS IDP控制协议的值为8025等。课件制作人:谢希仁n在由其中一个NCP协议完成网络层配置后,用户就可以交换来自网络层的数据分组。对不同的网络层,有不同的协议字段(protocol field)。例如:如果PPP携带来自IP网络层的数据,则字段的值是0021。如果PPP携带的来自OSI 网络层的数据,则协议字段的值是0023, 等等。Flag Address Control 0 x0021PayloadFCSFlag用户数据IP 分组封装在PPP帧中的IP数据报HeaderData from the Network Layer课件制作人:谢希仁3.3 使用广播信道的数据链路层3
50、.3.1 局域网的数据链路层 n局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。 n局域网具有如下的一些主要优点:n具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。 n便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。n提高了系统的可靠性、可用性和生存性。课件制作人:谢希仁n局域网的数据速率: 10 Mb/s(标准以太网),后续的讨论主要围绕标准以太网进行。 100 Mb/s (快速以太网) 1 Gb/s (吉比特以太网) 10 Gb/s (10吉比特以太网) 局域网的传输媒体: 双绞线(局域网中的主流传输媒体