网络编程期末考试带答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、计算机网络:是指将地理位置不同且具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
2、协议分层具有概念化和结构化的优点,每一层都建立在它的下层之上,使用它的下层提供的服务,下层对它的上层隐藏服务实现的细节。
3、一个机器上的第n层与另一个机器上的第n层交流,所使用的规则和协定合起来被称为第n层协议。这里的协议,是指通信双方关于如何进行通信的一种约定,每个协议属于某个层次。特定系统所使用的一组协议被称为协议栈。
4、OSI/RM(Open System Interconnection/Reference Model,开放系统互连参考模型)将计算机网络通信定义为一个七层框架模型。
OSI模型中各个层的功能:
5、TCP/IP参考模型
6、TCP(传输控制协议),TCP提供端到端的质量保证的数据传输,该层负责数据的分组、质量控制和超时重发等,对于应用层来说,就可以忽略这些工作。
7、UDP(用户数据报协议),UDP则只负责简单地把数据报从一端发送到另一端。
在TCP/IP中,网络应用程序使用两个信息来唯一标识一个特定的应用程序:IP地址和端口号。
8、TCP/ UDP协议簇的应用层协议包括finger(用户信息协议)、文件传输协议(FTP)、超文
TCP/IP协议族TCP/IP模型OSI模型
本传输协议(HTTP)、Telent(远程终端协议)、简单邮件传输协议(SMTP)、因特网中继聊天(IRC)、网络新闻传输协议(NNTP)。
9、网络应用程序使用两个信息来唯一标识一个特定的应用程序:IP地址和端口号。
10、每个IP地址被分割成前缀和后缀两部分
11、网络地址转换(Network Address Translation,NAT):是接入广域网(WAN)的一种技术,能够将私有(保留)地址转化为合法的IP地址,它被广泛应用于各种Internet接入方式和各种类型的网络中。NAT不仅完美地解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
12、NAT的实现方式有三种:即静态转换、动态转换和端口多路复用。
13、基于NDIS的网络编程
网络驱动程序接口规范(Network Driver Interface Specification,NDIS):是一个较为成熟的驱动接口标准,它包含局域网网卡驱动程序标准、广域网网卡驱动程序标准以及存在于协议和网络之间的中间驱动程序标准。它为网络驱动抽象了网络硬件,指定了分层网络驱动间的标准接口,因此,它为上层驱动(如网络传输)抽象了管理硬件的下层驱动。同时NDIS也维护了网络驱动的状态信息和参数,这包括到函数的指针、句柄等。
NDIS在网络编程中占据着重要的地位,许多编程方法都是基于NDIS实现的。
第二章
1、网络程序通信模型:是网络应用程序设计的基础,决定了网络功能在每个通信节点的部署。
2、在计算机网络环境中,运行于协议栈之上并借助协议栈实现通信的网络应用程序,为用户提供了使用网络的简单界面,主要承担三个方面的功能:
1)实现通信能力
在协议簇的不同层次上选择特定通信服务,调用相应的接口函数实现数据传输功能。比如在文件传输应用中,使用客户/服务器模型,选择TCP协议完成数据传输。
2)处理程序逻辑
根据程序功能,对网络交换的数据进行加工处理,从而满足用户的种种需求。以文件传输为例,网络应用程序应具备对文件的访问权限管理、断点续传等维护功能。
3)提供用户交互界面
接受用户的操作指示,将操作指示转换为机器可识别的命令进行处理,并将处理结果显示于用户界面。在文件传输应用中,需提供文件下载选项、文件传输进度的实时显示等界面指示功能。
3、在网络应用进程通信时,最主要的进程间交互的模型是客户/服务器(Client/Server,C/S)模型。
4、在客户/服务器模型中,客户和服务器分别是两个独立的应用程序,即计算机软件。
(1)客户(Client),请求的主动方,向服务器发出服务请求,接收服务器返回的应答。
(2)服务器(Server),请求的被动方,开放服务,等待请求,收到请求后,提供服务,做出响应。
(3)用户(User),使用计算机的人。
5、客户/服务器模型最重要的特点:是非对等相互作用,即客户与服务器处于不平等的地位
6、客户/服务器模型相互作用的简单过程如图2-2所示:
7、首先服务器要先启动,并根据客户请求提供相应的服务,服务器的工作过程如下:
1)打开一个通信通道,告知服务器进程所在主机将要在某一公认的端口(通常是RFC文档中分配的知名端口或双方协商的端口)上接收客户请求。
2)等待客户的请求到达该端口。
3)服务器接收到服务请求,处理该请求并发送应答。
4)返回第2步,等待并处理另一个客户的请求。
5)当特定条件满足时,关闭服务器。
客户采取的是主动请求方式,其工作过程如下:
1)打开一个通信通道,告知客户进程所在主机将要向某一公认的端口(通常是RFC文档中分配的知名端口或双方协商的端口)上请求服务。
2)向服务器发送请求报文,等待并接收应答,然后继续提出请求。
3)请求结束后,关闭通信通道并终止进程。
8、服务器应具备处理以下问题的能力:
·鉴别——验证客户的身份;
·授权——确定某个给定的客户是否被允许访问服务器所提供的服务;
·数据安全——确保数据不被无意泄露或损坏;
·保密——防止对有关个人的信息进行未授权的访问;
·保护——确保网络应用程序不能滥用系统资源。
9、对于网络应用程序的设计,首要的决定是在传输层选择一种传输服务:无连接服务或面向连接服务。
10、使用TCP的服务器是面向连接的服务器。
11、使用UDP的服务器是无连接的服务器。
12、循环服务器通过在单线程内设置循环控制实现对多个客户请求的逐一响应。
13、将并发服务器引入的主要原因是需要给多个客户提供快速响应时间。并发性可以在以下几种情况下缩短响应时间:
(1)构造响应要求有相当的I/O时间。允许服务器并发地计算响应,意味着即使机器只有一个CPU,它也可以部分重叠地使用处理器和外设,这样当处理器忙于计算一个响应时,I/O 设备可以将数据传送到存储器中,而这可能是其他响应所需要的,这使得服务器避免了无谓的I/0等待。
(2)每个请求需要的响应处理时间变化很大。时间分片允许单个处理器处理那些只要求少量处理的请求,而不必等待处理完那些需要长处理时间的请求,这保证了服务器提供服务的公平性。