720 likes | 908 Views
第4章 数据链路层. 本章教学内容: 4.1 数据链路层的基本概念 4.2 三个基本问题 4.3 点对点协议 PPP 4. 4 HDLC 协议. 第3章 数据链路层. 本章重点 数据链路层的基本功能 差错控制 基本数据链路层协议 高级数据链路层控制规程 HDLC. 第4章 数据链路层. 思考题: 数据链路层位于 OSI/RM 的第几层?它的主要功能是什么? 物理层完成数据的比特流传输,那么链路层如何将比特流封装成帧的? 物理介质在传输数据时是否会产生误码现象?如何发现和解决误码问题? 当发送方和接收方数据速率不一致时,如何同步与协调?.
E N D
第4章 数据链路层 本章教学内容: • 4.1 数据链路层的基本概念 • 4.2 三个基本问题 • 4.3点对点协议PPP • 4.4HDLC协议 计算机工程学院 伍俊明
第3章 数据链路层 本章重点 • 数据链路层的基本功能 • 差错控制 • 基本数据链路层协议 • 高级数据链路层控制规程HDLC 计算机工程学院 伍俊明
第4章 数据链路层 思考题: • 数据链路层位于OSI/RM的第几层?它的主要功能是什么? • 物理层完成数据的比特流传输,那么链路层如何将比特流封装成帧的? • 物理介质在传输数据时是否会产生误码现象?如何发现和解决误码问题? • 当发送方和接收方数据速率不一致时,如何同步与协调? 计算机工程学院 伍俊明
H1 H2 应用层 应用层 R1 R2 R3 运输层 运输层 网络层 网络层 网络层 网络层 网络层 链路层 链路层 链路层 链路层 链路层 物理层 物理层 物理层 物理层 物理层 4.1 数据链路层的基本概念 • 4.1.1 数据链路层的简单模型 • 主机H1向主机H2发送数据的过程 路由器R1 路由器R3 主机H1 路由器R2 主机H2 局域网 广域网 电话网 局域网 从层次上来看数据的流动 计算机工程学院 伍俊明
4.1 数据链路层的基本概念 主机H1向H2发送数据 路由器R1 路由器R3 主机H1 路由器R2 主机H2 局域网 广域网 电话网 局域网 仅从数据链路层观察帧的流动 H1 H2 应用层 应用层 R1 R2 R3 运输层 运输层 帧 帧 帧 帧 网络层 网络层 网络层 网络层 网络层 链路层 链路层 链路层 链路层 链路层 物理层 物理层 物理层 物理层 物理层 计算机工程学院 伍俊明
4.1 数据链路层的基本概念 • 数据链路层的通信模型 结点 结点 帧 帧 计算机工程学院 伍俊明
4.1 数据链路层的基本概念 • 数据链路层的通信模型 (1)结点A的数据链路层把网络层交下来的IP数据报封装成帧。 (2)结点A把封装好的帧发送给结点B的数据链路层。 (3)若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层;否则丢弃这个帧。 计算机工程学院 伍俊明
应 用 层 应 用 层 传 输 层 传 输 层 网 络 层 网 络 层 保证数据流的顺序 数据链路层 数据链路层 物 理 层 物 理 层 比特流 4.1 数据链路层的基本概念 • 为网络层提供服务 计算机工程学院 伍俊明
4.1 数据链路层的基本概念 4.1.2 链路和数据链路 • 链路:从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。 • 数据链路:当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。 • 若把实现这些协议的硬件和软件加到链路上,就构成了数据链路——物理链路+网络适配器。 • 网络适配器:用来实现这些协议的硬件和软件,一般都包括了数据链路层和物理层两层的功能。 计算机工程学院 伍俊明
4.2 三个基本问题 • 数据链路层的三个基本问题 • 帧定界:数据链路层的发送方应当让接收方的数据链路层知道,所发送的帧是从什么地方开始到从什么地方结束。 • 透明传输:数据链路层传送的数据的比特组合必须是不受限制的。数据链路层协议不能禁止传送某种特殊的比特组合。 • 差错检测:数据链路层必须有差错检测功能 计算机工程学院 伍俊明
IP 数据报 帧开始 帧结束 IP 数据报 帧首部 帧的数据部分 帧尾部 帧首部 帧的数据部分 帧尾部 MTU ≤ 数据链路层的帧长 从这里开始发送 4.2 三个基本问题 4.2.1 帧定界 • 帧定界 (framing) 就是确定帧的界限。每一种链路层协议都规定了帧的数据部分的长度上限——最大传送单元MTU (Maximum Transfer Unit)。 计算机工程学院 伍俊明
帧开始符 帧结束符 装在帧中的数据部分 SOH EOT SOH EOT 装在帧中的数据部分 帧 发送在前 4.2 三个基本问题 • 用控制字符进行帧定界 SOH(01H):Start Of Header EOT(04H):End Of Transmission 计算机工程学院 伍俊明
字符计数 5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3 无差错 帧1# 帧2# 帧3# 帧4# 5 1 2 3 4 7 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3 有差错 一个字符计数 帧1# 帧2# 4.2 三个基本问题 • 帧定界的方法 • 字符计数法:在帧头中用一个域来表示整个帧的字符个数。缺点:若计数出错,对本帧和后面的帧有影响。 计算机工程学院 伍俊明
4.2 三个基本问题 • 帧定界的方法 • 带字符填充的首尾字符定界法 • 起始字符 DLE STX,结束字符DLE ETX • 字符填充:发送方在每个DLE字符数据前插入一个DLE • 缺点:局限于8位字符和ASCII字符传送。 发送数据 A DLE B DLE DLE STX A DLE B DLE ETX 填充数据 填充的DLE 接收数据 DLE STX A DLE B DLE ETX 计算机工程学院 伍俊明
(a) 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 原始数据 线上数据 (b) 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 填充的位 接收后数据 (c) 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 4.2 三个基本问题 • 带位填充的首尾标记定界法 • 帧的起始和结束都用一个特殊的位串“01111110” • 位填充:成帧时,数据中每连续5个1后插入1个0 计算机工程学院 伍俊明
4.2 三个基本问题 4.2.2 透明传输 • 数据中出现“SOH”和“EOT”怎么办?—转义 • 字节插入法: “ESC”叫做转义符 (escape character) 计算机工程学院 伍俊明
SOH SOH 4.2 三个基本问题 • 用字节插入法解决透明传输问题举例 帧开始符 帧结束符 原始数据 ESC EOT ESC SOH EOT EOT 字节插入 y z x z ESC EOT ESC ESC ESC EOT 经过字节插入后发送的数据 发送 在前 计算机工程学院 伍俊明
4.2 三个基本问题 4.2.3 差错检测 • 误码率:在一定的时间内,传输错误的比特占所传输的比特总数的比率称为误码率BER (Bit Error Rate) • 为进行检测错误常添加冗余码,构成帧检验序列FCS(Frame Check Sequence)。 • 差错处理的两种策略 • 使用纠错码:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错误。 • 使用检错码:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,但不能判断哪里有错。——循环冗余检验码CRC 计算机工程学院 伍俊明
4.2 三个基本问题 • 循环冗余码CRC应用举例 • 原始数据:1101011011(m=10, M(x)) • 生成多项式:10011,即G(x) = x4 + x + 1(r=4) • 以2为模的除法: 求余数[11010110110000/ 10011]= 1110 • 发送帧11010110111110(以2为模的减法) • 接收方检测: 余数[ 11010110111110/ 10011] = 0——正确! 加r=4个0 计算机工程学院 伍俊明
1100001010 除数G(x)10011 11010110110000 被除数M(x) Xr 10011 10011 10011 10110 10011 10100 10011 余数 1110 4.2 三个基本问题 • CRC码的计算与发送序列 发送序列:11010110111110 计算机工程学院 伍俊明
1100001010 10011 11010110111110 10011 10011 10101 10111 10011 10011 10011 0 除数G(x) 被除数T(x) 余数 4.2 三个基本问题 • 接收方检测所收到的数据正确性 正确! 计算机工程学院 伍俊明
4.2 三个基本问题 • 接收方检测到余数为0,不一定没有出现差错!因为存在某种非常特殊的比特差错组合,非常碰巧地使余数R=0。 • 国际标准中的G(x) • CRC-12=x12+x11+x3+x2+x1+1 • CRC16= x16+x15+x2+1 • CRC-CCITT=x16+x12+x5+1 • CRC-32=X32+X26+X23+X22+X16+X12 +X11+X10+X8+X7+X5+X4+X2+X+1 计算机工程学院 伍俊明
4.2 三个基本问题 • CRC只能实现无差错接受,不能使数据链路层变成具有“可靠传输”的功能。 • OSI强调必须把数据链路层做成是可靠传输的。因此,在CRC检错的基础上,增加了确认和重传机制。——在高质量通信系统中效率降低! • 因特网上,如果在数据链路层传输数据时出现了差错,并且需要进行改正的话,改正差错的任务就由运输层的TCP协议来完成。实践证明,这样做可以使整个通信效率大大提高。 计算机工程学院 伍俊明
补充1:基本链路层协议——停止等待协议 • 自动重复请求(ARQ)是应用最广泛的一种差错控制技术,它包括对无错接收的PDU的肯定确认和对未确认的PDU的自动重传。 • ARQ是以下列条件为前提的: • 一个单独的发送端向一个单独的接收端发送信息 • 接收端能够向发送端返回确认。 • 信息帧和确认帧都包含检错码。 • 发生了错误的信息帧和确认帧将被忽略和丢弃。 • ARQ主要有三个标准的版本。 • 停止等待式ARQ • 连续ARQ • 选择重传ARQ 计算机工程学院 伍俊明
主机B 主机A AP1 AP1 缓存 帧 帧 缓存 数据链路 补充1:基本链路层协议——停止等待协议 一、 完全理想化的数据通信——无需停等 • 无限制的单工通信 • 两个主机通信时,发送方进程将应用数据从高层逐层向下传,接收方从低层逐层向上传。 • 发送方和接收方分别有一个发送缓存和接收缓存。 • 完全理想化的数据传输,有两个假设 • 链路永远不会出错; • 接收方的缓存无限大 高层 数据链路层 计算机工程学院 伍俊明
0 1 2 3 ACK ACK ACK 0 1 2 3 接收方 补充1:基本链路层协议——停止等待协议 二、具有简单流量控制的数据链路层协议 • 条件假设: • 链路永远不会出错; • 接收方的缓存是有限的 • 流量控制:为了使接收方的接收缓存在任何情况下都不会溢出,发送方每发一个帧就暂停下来,等待接收方接收完毕并传来确认帧后再发送下一帧。——接收方控制发送方的数据流是网络中流量控制有一个基本方法。 发送方 计算机工程学院 伍俊明
从高层取数据,形成数据帧 将数据帧送到链路层的发送缓存 将发送缓存中的数据帧发送出去 确认帧 已到 确认帧未到 接收方的确认帧到达否? 补充1:基本链路层协议——停止等待协议 • 发送方进程 计算机工程学院 伍俊明
等待发送方发送过来的数据帧 无 有数据帧到达否? 有 将数据帧送到链路层的接收缓存 向发送方发出确认帧 补充1:基本链路层协议——停止等待协议 • 接收方进程 计算机工程学院 伍俊明
补充1:基本链路层协议——停止等待协议 三、实用的停止等待协议 • 实际假设: • 接收方的接收缓存是有限的 • 传输信道存在噪音,可能会产生误码 • 流量控制:发送方每发送一个数据帧后就暂停,并等待接收方发来的确认帧ACK。 • 差错控制: • 如果数据传输过程中可能产生差错,接收方会因此发来否认帧NAK,因此发送方在未收到确认帧之前需保存所有已发送的数据帧。 • 接收方每收到一个数据帧时需进行差错检验,如无错则发送一个确认帧ACK;如发现有错则发送一个否认帧NAK,通知发送方重新发送。 计算机工程学院 伍俊明
Data 0 丢失 Data 0 出错 Data 0 Data 0 ACK NAK ACK Tout Tout 丢失 Data 0 Data 0 Data 1 Data 0 ACK ACK ACK ACK 时间 数据帧丢失 确认帧丢失 正常情况 数据帧出错 补充1:基本链路层协议——停止等待协议 • 数据帧在链路上传输的几种情形 计算机工程学院 伍俊明
补充1:基本链路层协议——停止等待协议 • 新问题: • 如通信线路质量太差,或受到严重干扰,数据帧会出错,确认帧也会出错,或数据帧可能会丢失,怎么办?——超时重传。超时值时间略大于从发完数据帧到收到确认帧所需的平均时间。 • 若确认帧丢失,发送方在超时时限内未收到确认帧,将会重发数据帧,接收方就会收到两个相同的数据帧,出现重复帧现象,怎么办?——给帧加上编号以进行区分。 计算机工程学院 伍俊明
补充1:基本链路层协议——停止等待协议 • 算法 • 发送方每次仅将当前信息帧作为待确认帧保留在缓冲存储器中; • 当发送方开始发送信息帧时,随即启动计时器; • 当接收方收到无差错信息帧后,即向发送方返回一个确认帧; • 当接收方检测到一个含有差错的信息帧时,便舍弃该帧,并向发送方返回一个否认帧; • 若发送方在规定时间内收到确认帧,即将计时器清零,继而开始下一帧的发送; • 若发送方在规定时间内未收到确认帧,(即计时器超时),则应重发存于缓冲器中的侍确认信息帧。 计算机工程学院 伍俊明
补充1:基本链路层协议——停止等待协议 • 差错控制需要解决的问题 • 保证不丢帧 • 保证不乱序 • 差错控制手段 • 接收方回送确认控制帧 • 用计时器确定帧丢失情况 • 用帧的编号识别重复帧情况 • 差错出现的特点:随机,连续突发(burst)——CRC 计算机工程学院 伍俊明
补充1:基本链路层协议——停止等待协议 • 简单单工协议比较 • 协议1完成数据链路层协议的基本功能 • 发送方将网络层的分组封装成帧,交物理层发送; • 接收方从物理层的接收帧抽取分组,交网络层。 • 协议2增添流量控制功能 • 发送方收到确认帧后才允许发送下一帧; • 接收方收到数据帧后回送确认帧。 • 协议3增添检错重传功能 • 发送方定义帧序列号,启动计时器,超时重传 • 接收方定义帧序列号期望值,将匹配帧交网络层 计算机工程学院 伍俊明
tT 补充1:基本链路层协议——停止等待协议 • 数据帧和确认帧的发送时间关系 A B 数据帧的 发送时间 传播时延 tp tf DATA 两个成功发送的 数据帧之间的 最小时间间隔 处理时间 tpr tout 确认帧发送时间 ta ACK 设置的 重传时间 传播时延tp 处理时间 tpr DATA 时间 tout = tp + tpr+ ta + tp + tpr 计算机工程学院 伍俊明
补充1:基本链路层协议——停止等待协议 • 重传时间 • 重传时间的作用是:数据帧发送完毕后若经过了这样长的时间还没有收到确认帧,就重传这个数据帧。 • 为方便起见,我们设重传时间为 tout = tp + tpr+ ta + tp + tpr • 设上式右端的处理时间 tpr和确认帧的发送时间 ta都远小于传播时延 tp,因此可将重传时间取为两倍的传播时延,即 tout = 2tp 计算机工程学院 伍俊明
补充1:基本链路层协议——停止等待协议 • 简单单工协议比较 • 协议1完成数据链路层协议的基本功能 • 发送方将网络层的分组封装成帧,交物理层发送; • 接收方从物理层的接收帧抽取分组,交网络层。 • 协议2增添流量控制功能 • 发送方收到确认帧后才允许发送下一帧; • 接收方收到数据帧后回送确认帧。 • 协议3增添检错重传功能 • 发送方定义帧序列号,启动计时器,超时重传 • 接收方定义帧序列号期望值,将匹配帧交网络层 计算机工程学院 伍俊明
补充2:连续ARQ协议——滑动窗口协议 • 滑动窗口协议对停止等待协议的改进: • 单工全双工:数据双向传输的需求(AB) • 停止等待协议:两条单工信道:反向传输流量小,浪费 • 滑动窗口协议:一条双工信道实现数据的双向传输 • 发送方式 • 停止等待协议:发送一帧,等待确认,再发送下一帧,效率低 • 滑动窗口协议:一次连续发送多个数据帧 • 确认方式捎带确认 • 停止等待协议:AB,B回送确认帧(AB),造成控制帧的流量 • 滑动窗口协议:AB,B将确认信息写入它将向A发送帧的ACK字段,在BA中夹带确认信息A B 计算机工程学院 伍俊明
补充2:连续ARQ协议——滑动窗口协议 一、连续ARQ协议 • 连续ARQ协议的工作原理 • 发送方可以连续发送若干个数据帧,无需停下来等待确认帧就可发送下一帧。 • 被发送出去尚未被确认的帧可能会因为出错或丢失而要求重发,因此,发送方要有较大的发送缓冲区保留这些帧的副本。 • 为了区分不同的帧,每个帧都有一个唯一的n位的序号,从0到某个最大值2n– 1 • 当发送方收到对某数据帧的确认帧后便可从缓冲区中删除之,接着可以发送新的数据帧。 • 发送方一次可发送的最大数据帧的数目称为发送窗口。发送窗口保持着一个序号表,对应于发送方允许连续发送的帧。 • 接收方只按序地接收数据帧,并对接收的每个数据帧进行差错检测。如果发现错误,立即反馈发送方要求重发。 计算机工程学院 伍俊明
重传 DATA5 重传 DATA3 DATA5 DATA4 DATA3 重传 DATA2 DATA1 DATA0 重传 DATA4 DATA2 ACK4 ACK3 ACK2 ACK2 ACK1 ACK2 ACK2 补充2:连续ARQ协议——滑动窗口协议 • 连续 ARQ 协议的工作原理 B A ACK1 确认 DATA0 送交主机 超 时 重 传 时 间 ACK2 确认 DATA1 ?? DATA2 出错,丢弃 tout DATA3 不按序,丢弃,重传 ACK2 DATA4 不按序,丢弃,重传 ACK2 DATA5 不按序,丢弃,重传 ACK2 ACK3 确认 DATA2 ACK4 确认 DATA3 送交主机 … 计算机工程学院 伍俊明
主机B 送主机 送主机 丢弃 0 1 2 3 4 5 2 3 4 5 6 补充2:连续ARQ协议——滑动窗口协议 • 连续ARQ中的“Go-Back-N差错处理” 时间 重传 Tout 主机A 0 1 2 3 4 5 2 3 4 5 6 Data ACK2 ACK2 ACK2 ACK2 ACK2 ACK5 ACK1 ACK3 ACK4 出错 计算机工程学院 伍俊明
时间 重传 Tout 发送方 0 1 2 3 4 5 2 6 7 8 9 Data ACK7 ACK8 ACK1 ACK2 ACK6 出错 0 1 2 3 4 5 2 6 7 8 9 接收方 送高层 暂存不提交 将2~5帧依次提交高层 补充2:连续ARQ协议——滑动窗口协议 • 连续ARQ中的“选择重传”差错处理方案——只对编号最高的正确的帧确认 计算机工程学院 伍俊明
补充2:连续ARQ协议——滑动窗口协议 二、 滑动窗口协议 • 连续ARQ协议要解决的两个问题 • 当未被确认的数据帧的数目太多,只要有一帧出错,就可能很多的帧都需重传,这就会白费时间,增加开销 • 为对所发出的帧进行编号,每个帧的发送序号也占用一定的比特数,增加不必要的开销 • 解决方案——设置发送窗口和接收窗口 • 发送窗口用来对发送方进行流量控制,发送窗口的大小WT代表在没有收到对方确认的情况下发送方最多可以发送的帧的数目 • 接收窗口用来控制可以接收哪些帧而不可以接收哪些帧。接收方只有在收到的帧的发送序号在其接收窗口内是才允许收下。接收方允许接收的最大帧的数目称为接收窗口的大小WR。 计算机工程学院 伍俊明
发送窗口 WT=5 WT (a) 0 1 2 3 4 5 6 7 0 1 2 允许发送 5 个帧 不允许发送这些帧 WT (b) 2 4 0 1 3 5 6 7 0 1 2 还允许发送 4 个帧 不允许发送这些帧 已发送 WT (c) 0 1 2 3 4 5 6 7 0 1 2 已发送 不允许发送这些帧 WT (d) 0 1 2 3 4 5 6 7 0 1 2 还允许发送 3 个帧 不允许发送这些帧 已发送 已发送 并已收到确认 补充2:连续ARQ协议——滑动窗口协议 计算机工程学院 伍俊明
补充2:连续ARQ协议——滑动窗口协议 • 接收端设置接收窗口 • 在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。 • 若接收到的数据帧落在接收窗口之外,则一律将其丢弃。 • 在连续 ARQ 协议中,接收窗口的大小 WR = 1。 • 只有当收到的帧的序号与接收窗口一致时才能接收该帧。否则,就丢弃它。 • 每收到一个序号正确的帧,接收窗口就向前(即向右方)滑动一个帧的位置。同时发送对该帧的确认。 计算机工程学院 伍俊明
WR (b) 0 1 2 3 4 5 6 7 0 1 2 已收到 不允许接收这些帧 准备接收 1 号帧 WR (c) 0 1 2 3 4 5 6 7 0 1 2 不允许接收这些帧 已收到 准备接收 4 号帧 补充2:连续ARQ协议——滑动窗口协议 WR (a) 0 1 2 3 4 5 6 7 0 1 2 不允许接收这些帧 准备接收 0 号帧 计算机工程学院 伍俊明
补充2:连续ARQ协议——滑动窗口协议 • 滑动窗口协议的得名:收发双方的窗口都是有规律地向前滑动,因此称之为滑动窗口协议。 • 停止等待协议:发送窗口和接收窗口大小都为1; • 退后N帧:发送窗口大于1,接收窗口等于1; • 选择重传协议:发送窗口和接收窗口都大于1 • 退后N帧协议 • 发送方连续发送至发送窗口满 • 接收窗口为1,对丢弃帧不确认 • 发送方超时重传,从未被确认帧开始 • 选择重传协议 • 接收窗口存储差错帧后继的所有正确帧 • 发送方只重传差错帧;接收方接收到正确的重传帧后,按正确顺序将分组提交网络层 计算机工程学院 伍俊明
补充2:连续ARQ协议——滑动窗口协议 • 窗口大小的设置 • 如PDU中序号字段为n位,则窗口大小应为2n-1,这是由差错控制及确认的相互作用决定的 • 发送窗口大小 < 序号个数(MaxSeq + 1= 2n ); • 考虑MaxSeq = 7的情况 1 发送方发送帧 0 ~ 7; 2 序号为 7 的帧的确认被捎带回发送方; 3 发送方发送另外 8 个帧,序号为 0 ~ 7; 4 另一个对帧 7 的捎带确认返回。 问题:第二次发送的 8 个帧成功了还是丢失了? • 可以证明:当接收窗口为1时,WT≤ 2n-1,连续ARQ才能正确运行;对选择重传ARQ协议,接收窗口不应大于发送窗口,WR≤ 2n/2。当接收窗口取最大值时,WT=WR= 2n/2 计算机工程学院 伍俊明
4.3 点对点协议PPP 4.3.1 PPP协议的特点 • 对于点对点的链路,点对点协议PPP (Point-to-Point Protocol) 是目前使用得最广泛的数据链路层协议。 计算机工程学院 伍俊明
4.3 点对点协议PPP 1、PPP协议应满足的需求 • 简单——不易出错,互操作性提高 • 封装成帧 • 透明性 • 多种网络层协议(IP、IPX等) • 多种类型链路 • 差错检测:能够对接收方收到的帧进行检测,并立即丢弃有差错的帧。 • 连接的活跃度:及时检测出一条链路是否正常 • 最大传送单元:至少1500字节 • 网络层地址协商 • 数据压缩协商 计算机工程学院 伍俊明