网络程序设计期末试题

Note:

  • 大部分题目都是原创,如有错误请指出,谢谢!
  • 【原】:原创题目。
  • 【百度文库】:百度文库题目。
  • 【20xx·计算机联考408】:408题目
  • 【@xxx】:其他同学的题目。
  • 满分100。

一、选择题(3*10分=30)

1.以下不属于TCP/IP协议簇的协议是()【原】
A ICMP
B SMTP
C HTTP
D CONP

【答案】 D。 CONP是OSI参考模型体系中的协议,其他三个都是TCP/IP协议簇中常见的协议类型。

2.OSI参考模型中,表示层主要完成什么功能()【原】
A 通信管理
B 数据可靠传输
C 数据格式转换
D 路由选择

【答案】C。通信管理在会话层,数据可靠传输在传输层,路由选择在网络层。表示层负责设备固有数据格式和网络标准数据格式的转换。

3.以下TCP/IP协议体系中,中继器工作所在层次是()【原】

A 物理层
B 数据链路层
C 网络层
D 传输层

【答案】A。中继器对光缆传过来的信号进行波形调整和方法,它工作在物理层。

4.按接收端数量可将传输方式分为单播、任播、多播、广播,以下哪一种属于多播()【原】

A 固定电话
B 电视广播
C 电视会议
D DNS根域名解析服务

【答案】C。固定电话属于单播,一对一;电视广播属于广播,一对多,它和多播的区别在于,多播对接收对象有限制,广播无法限制接收对象;DNS根域名服务器属于任播,它和多播的区别在于,同样都是对接收对象有限制,任播只为多个接收端中的一个最优对象服务,而多播为符合条件的多个接收端服务。

5.404是网页访问常见的返回码,以下不可能导致返回404码的情况是()【原】

A 所访问的网页不存在
B 所访问的网页存在,但是被改动或删除了
C 用户输入了一个错误的URL
D 用户没有访问指定资源的权限

【答案】D。A、B、C均是可能导致返回404的原因,用户无访问权限时返回状态码为401。

6.TCP使用()进行流量控制。【百度文库】

A 三次握手
B 窗口控制
C 自动重发
D 端口机制

【答案】B。TCP使用窗口滑动机制来控制流量。

7.在实现基于TCP的网络应用程序时,服务器端正确的处理流程是()。【百度文库】
A socket() -> bind() -> listen() -> connect() -> read()/write() -> close()
B socket() -> bind() -> listen() -> read()/write() -> close()
C socket() -> bind() -> listen() -> accept() -> read()/write() -> close() 
D socket() -> connect() -> read()/write() -> close()

【答案】C,socket基础概念。

8.假设R1、R2、R3采用RIP协议交换路由信息,且均已收敛。若R3检测到网络201.1.2.0/25不可达,并向R2通告一次新的距离向量,则R2更新后,其到达该网络的距离是()【2016·计算机联考408】
A 2
B 3
C 16
D 17

【答案】因为R3检测到网络201.1.2.0/25不可达,故将到该网络的距离设置为16 (距离为16表示不可达)。当R2从R3收到路由信息时,因为R3到该网络的距离为16,则R2到该网络也不可达,但此时记录R1可达(由于RIP的特点“坏消息传的慢”, R1并没有收到R3发来的路由信息),R1到该网络的距离为2,再加上从R2到R1的1就是R2到该网络的距离3。

9.若某通信链路的数据传输速率为2400bps,采用4相位调制,则该链路的波特率是()。【2011·计算机联考408】
A 600波特
B 1200波特
C 4800波特  
D 9600波特

【答案】B。有4种相位,则一个码元需要由log24=2个bit表示,则波特率=比特率/2=1200波特。

10.若主机甲主动发起一个与主机乙的TCP连接,甲、乙选择的初始序列号分别为2018和2046,则第三次握手TCP段的确认序列号是()。【2019·计算机联考408】

A 2018
B 2019
C 2046
D 2047

【答案】D。第三次握手的TCP段由甲发出,在接收到乙发来的序号2046后,甲应该发出确认号2047。

二、判断题(3*10分=30)

11.NAT是ipv4为解决地址枯竭而开发的技术,ipv6中用不到NAT。()【原】
【答案】×。前半句正确,后半句错误。ipv6仍在延用NAT,因为除了扩充ip地址外,NAT还可以提高网络安全性。考察对NAT协议的基本认识。

12.上下层之间所遵守的约定叫接口,同一层遵守的约定叫协议。()【原】
【答案】√。同一层之间遵守协议,上下层之间通过接口提供服务和交付数据。考察基本概念。

13.在TCP/IP协议中,路由器负责对IP数据报进行分片和重组。()【原】
【答案】×。为了降低路由器任务量,提升通信速度,分片的工作从IP层提升至传输层。在传输层通过路径MTU发现技术确定IP数据报的大小,这样路由器不必做分片任务,只负责转发。只有目标主机有权对分片进行重组,路由器不能也没必要重组分片。考察对IP和TCP协议细节的理解。

14.为了提高网络的容灾能力,可以设置多个DNS服务器。()【原】
【答案】√。设置多个DNS服务器是提高网络容灾能力的手段之一。考察提升网络容灾能力的常见方法。

15.TCP客户端在完成Socket连接初始化后,调用listen()来等待服务器响应自己的连接请求。()【原】
【答案】×。这描述的是TCP服务器的处理步骤。本题考察socket通信中客户端和服务器对常见api的调用关系。

16.网桥工作在数据链路层,可以对数据帧进行存储转发,但是它不能连接速率不同的数据链路。()【原】
【答案】×。前两句正确,最后一句错误。网桥可以进行存储转发,它显然可以通过缓存来连接不同的速率的数据链路。本题考察对网桥的认识,以及对存储转发概念的理解。

17.在IP数据报的转发过程中,经过网桥或集线器后,跳数不会增加。()【原】
【答案】√。原句正确,IP网段使用路由器或网关连接到下一跳。本题考察IP数据报在网络设备中转发的实现细节。

18.在socket网络编程中,对于TCP套接字,三次握手发生在connect()函数调用时。()【原】
【答案】√。调用connect函数将激发TCP连接三次握手。本题考查对socket网络编程常见api的功能了解。

19.在绑定端口到IP地址上时,对于不同的网络协议,需要准备不同的bind()函数。()【原】
【答案】×。bind函数使用内部的多态机制实现对不同协议的封装,不需要准备不同的bind()函数。

20.在关闭TCP连接时,shutdown()函数不论描述符引用是否为0,都会激发TCP四次挥手终止连接。()【原】
【答案】√。关闭TCP连接有两个函数,一个是close,一个是shutdown。前者将描述符数值减一,如果为0,才关闭套接字。后者则不论引用计数,直接激发TCP连接终止过程。

三、简答题
21.融合了TCP/IP和OSI的五层网络协议模型一种常见的网络体系划分方法,完成以下问题:(共10分)【原】
(1)请画出五层网络协议体系层次图(5分)
【答案】:各1分
——————
| 应用层 |
——————
| 传输层 |
——————
| 网络层 |
——————
| 数据链路层 |
——————
| 物理层 |
——————
(2)请指出中继器、网卡、网桥、交换机、路由器分别工作在哪一层。(5分)
【答案】:各1分
中继器:物理层;
网卡:物理层
网桥:数据链路层
交换机:数据链路层
路由器:网络层

22.如下图,请完成TCP服务器完成一次正常socket连接的api调用过程。(15分)【原】

【答案】:每空3分

**23.I/O复用模型的关键是熟练掌握select函数,该函数的原型是 int select(int maxfd, fd_set *readset, fd_set *writeset, fd_set exceptset, const struct timeval timeout);(15分) 【@二六二六二

**(1)请详细解释select函数的参数的意义,以及执行结果。(6分) **
(2)如何利用select函数构造一个最简单的多协议服务器,同时提供TCP和UDP服务?画出进程结构图。(9分)

【答案】:
(1)maxfd参数是所以监视的描述字中最大的描述字加1。中间三个参数分别表示监视的不同条件的描述字集合。其中readset为读描述字集合,writeset为写描述字集合,execptset为异常描述字集合。Timeout参数为select函数最长睡眠时间。Select函数有三种执行情况:永远等待下去:仅在有一个或以上描述字准备好i/o才返回,为此,我们将timeout设置为空指针。等待固定时间:在有一个描述字准备好时返回,但不超过由timeout参数指定的秒数和微秒数。根本不等待,检查描述字后立即返回,这称为轮询。这种情况下,timeout必须指向结构timeval,且定时器的值必须为0。Select函数的返回值如下:如果在指定超时值到达之前有一个或多个描述字满足条件,则函数返回值大于零;如果超时时间到时,没有描述字满足条件,函数返回值为0;如果select函数阻塞过程中,发生错误,函数返回值为-1;
(2)多协议服务器可以由一个执行线程构成,该线程既可以在TCP也可以在UDP上使用异步IO来处理通信。服务器最初打开两个套接字,一个使用无连接的传输,一个使用面向连接的传输,使用异步IO等待两个套接字之一就绪。

posted @ 2020-01-09 22:04  Mr-Tiger  阅读(2974)  评论(1编辑  收藏  举报