资源描述
(完整word版)电子科技大学网络编程试卷及答案(A)
电子科技大学2010 -2011学年第 2学期期 末 考试 A 卷
课程名称:__ 计算机网络编程 考试形式: 闭卷 考试日期: 2011年 月 日
考试时长:120分钟
课程成绩构成:平时 5 %, 期中 5 %, 实验 40 %, 期末 50 %
本试卷试题由____3 _部分构成,共__7__页。
题号
一
二
三
四
五
六
七
八
九
十
合计
得分
得 分
一、 填空题(共20分,共 10题,每空1分)
1. 物理地址(MAC)存在于_____________层,IP地址存在于_____________层,可以将IP地址分为_______和主机号。
2. 要实现网络服务的可靠性需要提供:_______、超时、重传和_______。
3. 发起对等通信的应用程序称为_______,等待接收客户通信请求的程序称为_______。
4. 在TCP/IP使用中,__________________的模式占有主导地位,其动机来源于_______________问题。
5. 一个进程包含一段___________和至少一个___________。
6. 在UNIX系统中创建新进程,需要调用系统函数_______。
7. TCP/IP协议定义的端点地址包括_______和_______。
8. 不保存任何状态信息的服务器称为________________服务器,反之则称为______________服务器。
9. _______是指真正的或表面的同时计算,一个单处理机多用户的计算机可以通过_______机制实现表面的同时计算,而在多处理机下可以实现真正的同时计算。
10. TCP提供面向_______的服务,而UDP提供_______的服务。
得 分
二、判断题(共20分,共 10题,每题2 分)
1. 有些场合下只能使用UDP协议进行网络通信 ( )
2. 服务器使用并发处理可以完全防止死锁 ( )
3. 发起对等通信的应用程序为服务器 ( )
4. TCP/IP标准规定了通信双方在什么时间以及用什么方式交互 ( )
5. 客户程序可以将服务器的IP地址或域名说明为常量 ( )
6. TCP提供流量控制和拥塞控制 ( )
7. 并发的、面向连接的服务器可以有n个不同的进程 ( )
8. 只能在TCP通信时使用connect系统调用 ( )
9. TCP/IP地址族可以表示为PF_INET ( )
10. 面向连接的服务易于编程。 ( )
三.问答题(三——六):
得 分
三、请给出并发的面向连接服务器(多进程)设计算法,图示出进程结构,并说明这种类型的服务器的优缺点。( 共15分)
得 分
四、试分析面向连接的服务器和无连接的服务器各自的优缺点。
( 共10分)
得 分
五、将一组大程序分解为一系列的子程序/过程的好处是什么?试分析,在客户程序的设计实现时,为什么为什么要先抽象为connectTCP(machine, service)和connectUDP(machine, service)两个模块,而这两个模块又具有共同的底层模块connectsock?( 共15分)
得 分
六、在I/O复用模型的关键是熟练掌握select函数,该函数的原型是
int select(int maxfd, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout);
1、 请详细解释select函数的参数的意义,以及执行结果。(10分)
2、 如何利用select函数构造一个最简单的多协议服务器,同时提供TCP和UDP服务?画出进程结构图。(10分)
电子科技大学2010 -2011学年第 2学期期 末 考试 A 卷
答案及评分细则
课程名称:__ 计算机网络编程 考试形式: 闭卷 考试日期: 2011年 月 日
考试时长:120分钟
课程成绩构成:平时 5 %, 期中 5 %, 实验 40 %, 期末 50 %
一、填空题
1、数据链路、网络层、网络号
2、检错、序号
3、客户、服务器
4、客户/服务器、通信汇聚点
5、地址空间、执行的线程
6、fork
7、IP地址,端口号
8、无状态、有状态
9、并发、分时
10、连接、无连接
二、判断题
√×××√√××√×
三、并发的面向连接的服务器的设计算法如下
面向连接的服务器在多个连接之间实现并发(不是在各个请求之间)
① 主1、创建套接字并将其绑定到所提供服务的熟知地址上。让该套接字保持为面向连接(1分)
② 主2、将该端口设置为被动模式(1分)
③ 主3、反复调用accept以便接收来自客户的下一个连接请求,并创建新的从线程或者进程来处理响应(1分)
④ 从1、由主线程传递来的连接请求开始(1分)
⑤ 从2、用该连接与客户进行交互;读取请求并发回响应(1分)
⑥ 从3、关闭连接并退出(1分)
进程结构:(5分)
优点:一个时刻可以处理多个请求,性能好
缺点:实现复杂,难以构建和设计
(答到关键点给3分,能展开说给4分)
四、
1. 面向连接的服务的优点(3分):
易于编程
自动处理分组丢失,分组失序
自动验证数据差错,处理连接状态
面向连接的服务的缺点(3分):
① 对每个连接都有一个单独的套接字,耗费更多的资源
② 在空闲的连接上不发送任何分组
③ 始终运行的服务器会因为客户的崩溃,导致无用套接字的过多而耗尽资源
2. 无连接服务器优点:没有资源耗尽问题(2分)
缺点(2分):需要自己完成可靠通信问题,必要时,需要一种自适应重传的复杂技术,需要程序员具有相当的专业知识。对于可靠通信的场合,尽量使用tcp
五、
一个模块化的程序比一个等价的单个程序容易理解、排错和修改。(1分)如果程序员认真的设计了过程,还可以在其他程序中重新使用这些过程。(1分)。另外,仔细选择过程可以使程序更容易移植。(1分)
过程通过将细节隐藏起来,提高了程序员所用语言的级别。(1分)
构造客户和服务器的时候,使用网络服务的程序包括了一大堆枯燥的细节,(如端点地址等)使用过程来隐藏细节将减少出错的机会。(1分)
使用过程(以及它所提供的较高级的的操作)可以避免重复,使用者可以在许多程序中使用他们,不需要再考虑实现的细节。(1分),
如能回答:多数代码需要分配套接字、绑定地址并构成网络连接,这些重复出现因而可以重用;TCP/IP网络是异种网互联,代码需要运行在不同机器的体系结构上,因而便于移植,可加1-2分。
抽象:客户端应用程序请求服务只能通过传输层,(1分)而传输层有两种协议TCP和UDP,因此抽象的时候可分为两种情况。(1分)
参数抽象如下:连接需要指明服务器的IP地址和服务类型(端口号)(1分)
客户端采用TCP和UDP共同的步骤都是获得套接字ID,因此可以考虑将获得套接字ID的过程合并,仅仅采用参数来标明到底采用何种传输层协议。(2分)同时仍然需要传递的参数为服务器的IP地址和服务类型(端口号),所以将底层共用一个过程connectsock。(2分)
六、
maxfd参数是所以监视的描述字中最大的描述字加1。中间三个参数分别表示监视的不同条件的描述字集合(2分)。其中readset为读描述字集合,writeset为写描述字集合,execptset为异常描述字集合。Timeout参数为select函数最长睡眠时间。(3分)
Select函数有三种执行情况(5分,每点1分):
l 永远等待下去:仅在有一个或以上描述字准备好i/o才返回,为此,我们将timeout设置为空指针。
l 等待固定时间:在有一个描述字准备好时返回,但不超过由timeout参数指定的秒数和微秒数。
l 根本不等待,检查描述字后立即返回,这称为轮询。这种情况下,timeout必须指向结构timeval,且定时器的值必须为0。
Select函数的返回值如下:
l 如果在指定超时值到达之前有一个或多个描述字满足条件,则函数返回值大于零;
l 如果超时时间到时,没有描述字满足条件,函数返回值为0;
l 如果select函数阻塞过程中,发生错误,函数返回值为-1;
多协议服务器可以由一个执行线程构成,该线程既可以在TCP也可以在UDP上使用异步IO来处理通信。(答出该点可得3分)服务器最初打开两个套接字,一个使用无连接的传输,一个使用面向连接的传输,使用异步IO等待两个套接字之一就绪。(答出该点可给3分,能详细描述过程酌情加分至5分,能图示出进程结构可给满分)
第 11 页 共 11页
展开阅读全文