《网络程序设计》期末总复习-最新版-苏大

上传人:go****e 文档编号:134481408 上传时间:2020-06-05 格式:DOC 页数:21 大小:2.68MB
返回 下载 相关 举报
《网络程序设计》期末总复习-最新版-苏大_第1页
第1页 / 共21页
《网络程序设计》期末总复习-最新版-苏大_第2页
第2页 / 共21页
《网络程序设计》期末总复习-最新版-苏大_第3页
第3页 / 共21页
《网络程序设计》期末总复习-最新版-苏大_第4页
第4页 / 共21页
《网络程序设计》期末总复习-最新版-苏大_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《《网络程序设计》期末总复习-最新版-苏大》由会员分享,可在线阅读,更多相关《《网络程序设计》期末总复习-最新版-苏大(21页珍藏版)》请在金锄头文库上搜索。

1、前言:陆老师:“附件中为经修改、增添内容后的最新网络程序设计总复习题,请转发全班同学,以复习这个为准,考试也已这个为准。另外,考试的读程序部分,要求能读懂Linux Berkeley Socket编写的程序、Windows Winsock编写的程序,其中Windows MFC程序要求能读懂书上的对话框界面的Talkc程序中的各个类的程序编写,也请转告各位同学。祝你们全班都能考个好成绩。陆建德,即日”第一章 网络编程基础1. 实现网间进程通信必须解决哪些问题?答:(1)网间进程的标识问题; (2)如何与网络协议栈连接的问题; (3)协议的识别问题; (4)不同的通信服务的问题2. 说明TCP/I

2、P中,端口的概念和端口的分配机制。答:端口是TCP/IP协议族中,应用层进程与传输层协议实体间的通信接口。TCP/IP协议采用了全局分配(静态分配)和本地分配(动态分配)相结合的分配方法。 对于TCP,或者UDP,将它们的全部65535个端口号分为保留端口号和自由端口号两部分。保留端口的范围是01023,又称为众所周知的端口或熟知端口(well-known port),其余的端口号,1024-65535,称为自由端口号,采用本地分配,又称为动态分配的方法。 总之,TCP或UDP端口的分配规则是:端口0:不使用,或者作为特殊的使用;端口1-255:保留给特定的服务,TCP和UDP均规定,小于25

3、6的端口号才能分配给网上著名的服务;端口256-1023:保留给其他的服务,如路由;端口1024-4999:可以用作任意客户的端口;端口5000-65535:可以用作用户的服务器端口。 3. 什么是网络应用进程的网络地址?说明三元组和五元组的概念。答:(传输层协议,主机的IP地址,传输层的端口号)标识了因特网中,进程间通信的一个端点,也把它称为网络应用进程的网络地址。 (传输层协议,主机的IP地址,传输层的端口号),这样一个三元组,叫做一个半相关(half-association)。 (传输层协议,本地机IP地址,本地机传输层端口,远地机IP地址,远地机传输层端口),这样一个五元组称为一个全相

4、关(association)。即两个协议相同的半相关才能组合成一个合适的全相关,或完全指定一对网间通信的进程。4. 举例说明面向消息的协议与基于流动协议有什么不同。答:例如甲向乙发送三个消息,分别是:128、64和32字节。 面向消息的协议中,如果接受缓冲区是256字节,足以接收3条消息,且这三条消息全部达到。乙仍然需要发送3条读取消息。分别返回128、64、32字节,而不用一次读取来调用者单个数据包。 基于流的消息协议中,在接收端乙的堆栈把所有进来的消息数据包聚集在一起,放入堆栈,等待应用进程读取。进程发送读取命令,指定了进程接收缓冲区,如果进程缓冲区有256字节,系统马上返回全部224字节

5、。 5说明C/S模式的概念、工作过程和特点。 答:C/S模式即客户机/服务器模式,是应用程序最常用的通信模式。 服务器的工作过程是:(1)打开一通信通道,并告知服务器所在的主机,它愿意在某一公认的地址上接收客户请求。(2)等待客户的请求到达该端口。(3)服务器接收到服务请求,处理该请求并发送应答信号。为了能并发地接收多个客户的服务请求,要激活一个新进程或新线程来处理这个客户请求(如UNIX系统中用fork、exec)。服务完成后,关闭此新进程与客户的通信链路,并终止。(4)返回第二步,等待并处理另一客户请求。(5)在特定的情况下,关闭服务器。 客户端的工作过程:(1)打开一通信通道,并连接到服

6、务器所在主机的特定监听端口。(2)向服务器发送请求报文,等待并接收应答;继续提出请求,与服务器的会话按照应用协议进行。(3)请求结束后,关闭通信通道并终止。特点:(1)客户和服务器都是软件进程,C/S模式是网络上通过进程通信建立分布式应用的常用模型。(2)非对称性:服务器通过网络提供服务,客户通过网络使用服务,这种不对称性体现在软件结构和工作过程上。(3)对等性:客户和服务器必有一套共识的约定,必与以某种应用层协议相联,并且协议必须在通信的两端实现。(4)服务器的被动性:服务器必须先行启动,时刻监听,及时服务,只要有客户请求,就立即处理并响应,回传信息。但决不主动提供服务。(5)客户机的主动性

7、:客户机可以随时提出请求,通过网络得到服务,也可以关机走人,一次请求与服务的过程是由客户机首先激发的。(6)一对多:一个服务器可以为多个客户机服务,客户机也可以打开多个窗口,连接多个服务器。(7)分布性与共享性:资源在服务器端组织与存储,通过网络分散在多个客户端使用。第二章 UNIX套接字编程接口1. 实现套接字编程接口的两种方式是什么?答:一种是在操作系统的内核中增加相应的软件来实现,一种是通过开发操作系统之外的函数库来实现。UNIX使用前者,Windows使用后者。 2套接字通信与UNIX操作系统的输入/输出的关系是什么?答: (p.29) Unix操作系统对文件和所有其他的I/O设备采用

8、一种统一的操作模式,就是“打开-读-写-关闭”的I/O模式,套接字编程接口也被纳入Unix操作系统的传统输入输出概念的范畴。在Unix的实现中,套接字是完全与其它I/O集成在一起的。操作系统和应用程序都将套接字编程接口也看做一种I/O机制,体现在: (1)操作的过程类似,套接字沿用了大多数I/O所使用的“打开-读-写-关闭”模式,先创建套接字,然后使用它,最后将它删除; (2)操作方法类似,使用描述符,先申请生成一个套接字,系统返回一个描述符,在调用有关套接字进行网络数据传输时,就将这个描述符作为参数; (3)使用的过程的名字也类似,如接收网络数据与发送网络数据用read和write过程。3.

9、 什么是套接字?说明套接字特点。答:套接字是应用程序通过网络协议栈进行通信交互的接口。套接字特点是:(1)通信域。套接字通常只和同一域中的套接字交换数据。如果数据交换要穿越域的边界,就一定要执行某种解释程序。(2)套接字有三种类型:流式、数据报和原始套接字。(3)套接字由应用层创建,并为其服务,而后被释放。(4)使用确定的IP地址和传输层端口号。4. 说明主机字节顺序和网络字节顺序的概念。答:不同计算机中,存放多字节值的顺序不同,有的先低后高,有的先高后低。具体计算机中的多字节数据的存储顺序称为主机字节顺序。 在网络协议中,对多字节数据在网络协议报头中的存储顺序称为网络字节顺序。在设计网络应用

10、程序时,应注意两种字节顺序的转换:在网络应用程序发送时,应将主机字节顺序的IP地址和端口号分别用htonl()和htons()转换为网络字节顺序,设置到网络协议报头的对应字段中。在网络应用程序接收时,应将网络协议报头对应字段中的网络字节顺序的IP地址和端口号分别用ntohl()和ntohs()转换为主机字节顺序,赋值到本机变量和内存中。 5数据报套接字的编程基本步骤答:数据报也即无连接套接字有两种模式: (1)对等模式:(2)C/S模式:6. 原始套接字的编程基本步骤 原始套接字编程步骤如下:(1)采用恰当的协议标志,创建原始套接字句柄;(2)根据需要设置套接字的选项;(3)调用connect

11、和bind函数来绑定对方和本地地址;(4)发送数据包、接收数据包;(5)用完后,关闭套接字。7. 服务器端和客户机端操作流式套接口的工作过程。 见下图。8. 利用Unix操作系统的fork()系统调用,写出编制多进程并发执行服务器程序的基本编程框架。在服务器程序中用fork()创建子进程,对于每一个客户端,用一个专门的进程为它服务,通过进程的并发执行,来实现对多个客户机的并发访问,基本的编程框架如下:第三章 Windows环境的网络编程1. WinSock规范与Berkeley套接口的区别是什么?答:(a)套接口数据类型和该类型的错误返回值(b) select() 函数和FD_*宏。在Wins

12、ock中,使用select()函数时,应用程序应坚持用FD_XXX宏来设置,初始化,清除和检查fd_set结构。 (c)错误代码的获得 在Winsock中,错误代码可以使用WSAGetLastError()调用得到。(d)指针:所有应用程序与Windows Sockets使用的指针都必须是FAR指针。(e)重命名的函数: close()改变为closesocket(),ioctl()改变为ioctlsocket() (f)Winsock支持的最大套接口数目 在WINSOCK.H中缺省值是64,在编译时由常量FD_SETSIZE决定。(g)头文件: 原来Berkeley套接字的多个头文件现在被包

13、含在Winsock的一个头文件中:对Windows Sockets1.1的应用程序,只需简单地包含winsock.h就足够了,对Windows Sockets2.x的应用程序,只需简单地包含winsock2.h就行了。(h)Winsock规范对于原始套接口的支持。(i)Winsock规范对于原始套接口和消息驱动机制的支持。体现在异步选择机制、异步请求函数、阻塞处理方法、错误处理、启动和终止等方面。 2. WinSock的注册和注销的过程答:注册过程:在WinSock程序的开始处,要调用WSAStartup ,其格式: int WSAStartup( WORD wVersionRequested

14、, LPWSADATA lpWSAData ); 其中,wVersionRequested:指定要使用的WinSock的最高版本号, lpWSAData: 用来返回WinSockAPI实现细节的WSAData结构变量指针。注销过程:WinSock应用程序结束前,必须调用WSACleanup()函数,其格式为: int WSACleanup ( void ); 以解除与Winsock.DLL库的绑定,释放Winsock实现分配给应用程序的系统资源,中止对Windows Sockets DLL的使用。3. 简要说明Unix/Linux操作系统和Windows操作系统对套接字网络编程接口的两种实现方

15、式,这两种实现方式的差别体现在网络编程时有什么不同?答: 要想实现套接字编程接口,可以采用两种实现方式:一种是Unix/Linux的方法,在操作系统的内核中增加相应的软件来实现,在BSD Unix及起源于它的操作系统中,套接字函数是操作系统本身的功能调用,是操作系统内核的一部分。另一种是Windows的方法,通过开发操作系统之外的winsock函数库来实现,其中每个函数具有与Unix套接字函数相同的名字与参数,这样,套接字库就能向没有本机套接字的计算机上的应用程序提供套接字编程接口。 这两种套接字实现方式的差别使得后者(Windows操作系统)需要在编的程序开始语句中先要装载并初始化winsock动态链接库(使用WSAStartup函数),在程序结束前需要卸载和注销winsock动态链接库(使用WSACleanup函数)。而前者(Unix操作系统)则完全不需要这两个函数做初始化和卸载注销工作。4. 画框图说明同步套接字的send函数的执行流程。 注意:buf是用户进程的发送缓冲区,而SYS

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号