题目
47.主机 H通过快速以太网连接 Internet,IP 地址为192.168.0.8,服务器S的IP 地址为211.68.71.80。H与S使用TCP通信时,在 H上捕获的其中5个IP分组如题47-a表所示。
题47-a表
编号:IP 分组的前 40字节内容(十六进制)
1:45 00 00 30 019b 4000 8006 lde8 cO a8 0008 d3444750
0b d9 1388 84 6b 41 c5 00 000000 7002 43 80 5db00000
2:43000030 00004000 31066e 83 d3444750 c0a80008
13880b d9 e0599fef 84 6b 41c6 7012 16d0 37e1000
3:45 000028 019c 40 00 8006 1def c0 a8 0008 d3444750
0b d9 1388 84 6b 41c6 e0 599ff0 50f04380 2b320000
4:45 00 38 01 9d 40 00 80 06 1d de c0 a80008 d3444750
0b d9 13 88 84 6b 41 c6 e0 599ff0 5018 43 80 e6550000
5:45 0000 28 68 11 40 00 3106 06 7a d344 47 50 c0a80008
1388 0b d9 e0 599ff0 84 6b 41 d6 5010 16 d0 57 d2 0000
回答下列问题。
1)题47-a表中的IP分组中,哪几个是由H发送的?哪几个完成了TCP连接建立过程?哪几个在通过快速以太网传输时进行了填充?
2)根据题47-a表中的IP分组,分析S已经收到的应用层数据字节数是多少?
3)若题47-a表中的某个IP分组在S发出时的前40字节如题47-b表所示,则该IP分组到达H时经过了多少个路由器?
(1)由于题47-a表中 1、3、4号分组的源 IP地址(第 13~16字节)均为192.168.0.8(c0a8 0008H),因此可以判定 1、3、4号分组是由 H发送的。(3分)
题47-a 表中 1号分组封装的 TCP段的 FLAG 为 02H(即 SYN=1,ACK=0),seg=846b 41c5H,2号分组封装的 TCP段的FLAG为12H(即 SYN=1,ACK=1),seg=e059 9fefH,ack=846b41c6H,3号分组封装的TCP段的 FLAG为10(即JACK=1),seg=846b 41c6H ack=e059 9ffOH,所以1、2、3号分组完成了TCP连接建立过程。(1分)
由于快速以太网数据帧有效载荷的最小长度为 46字节,表中3、5号分组的总长度为 40(28H)学节,小于46字节,其余分组总长度均大干46字节。所以3、5号分组通过快速以太网传输时进行了填充。(1分)
(2)由3号分组封装的 TCP 段可知,发送应用层数据初始序号为seq=846b 41c6H,由 5 号分组封装的TCP段可知,ack为seg=846b 41d6H,所以5号分组已经收到的应用层数据的字节数为846b 41d6H-846b 41c6H=10H=16。(2分)
【评分说明】其他正确解答,亦给2分;若解答结果不正确,但分析过程正确给 1分;其他情况酌情给分。
(3)由于S发出的IP分组的标识=6811H,所以该分组所对应的是题47-a表中的5号分组S发出的IP分组的TTL=40H=64,5号分组的TTL=31H=49,64-49=15,所以,可以推断该IP分组到达H时经过了15个路由器。(2分)
【评分说明】若解答结果不正确,但分析过程正确给 1分;其他情况酌情给分。

多做几道

41.(10 分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。假设从初始顶点到目标顶点之间存在路径,现有一种解决该问题的方法∶
①设最短路径初始时仅包含初始顶点,令当前顶点u为初始顶点;
② 选择离u最近且尚未在最短路径中的一个顶点v,加入最短路径中,修改当前顶点u=v;
③ 重复步骤②,直到u是目标顶点时为止。
请问上述方法能否求得最短路径?若该方法可行,请证明之;否则,请举例说明。
42. (5分)已知一个带有表头结点的单链表,结点结构为
Data/link
假设该链表只给出了头指针 list。在不改变链表的前提下,请设计一个尽可能高效的算法;查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的 data 域的值,并返回1∶否则,只返回0。要求∶
1)描述算法的基本设计思想。
2)描述算法的详细实现步骤。
3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用C、C++或 Java 语言实现),关键之处请给出简要注释。
43.(8分)某计算机的CPU主频为 500Mz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为 0.5MB/s,采用中断方式与主机进行数据传送,以 32 位为传输单位,对应的中断服务程序包含 18条指令,中断服务的其他开销相当于2条指令的执行时间。请回答下列问题,要求给出计算过程。
1)在中断方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?
2)当该外设的数据传输率达到5MB/s 时,改用DMA 方式传送数据。假定每次 DMA传送块大小为 5000B,且DMA预处理和后处理的总开销为 500个时钟周期,则 CPU用于该外设 I/O 的时间占整个 CPU时间的百分比是多少(假设 DMA与CPU 之间没有访存冲突)?
44.(13 分)某计算机字长为16位,采用16位定长指令字结构,部分数据通路结构如下图所示,图中所有控制信号为1时表示有效、为 0时表示无效。例如,控制信号MDRinE 为1表示允许数据从 DB打入 MDR,MDRin为1表示允许数据从内总线打入 MDR。假设 MAR 的输出一直处于使能状态。加法指令"ADD(R1),RO"的功能为(RO)+(R1))→(R1),即将R0中的数据与 R1的内容所指主存单元的数据相加,并将结果送入 R1的内容所指主存单元中保存。
下表给出了上述指令取指和译码阶段每个节拍(时钟周期)的功能和有效控制信号。请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号。
时钟:功能/有效控制信号
C1:MAR←(PC)/PCout, MARin
C2:MDR←M(MDR) PC←(PC)+1/MemR, MDRinE, PC+1
C3:IR←(MDR)/MDRout, IRin
C4:指令译码/无
45.(7分)三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。
P1每次用 produce()生成一个正整数并用 putO)送入缓冲区某一空单元中;P2每次用 getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用 geteven()从该缓冲区中取出一个偶数并用 counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义(要求用伪代码描述)。

该科目易错题

该题目相似题