合肥学院网络协议编程期末试卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
一.选择题
1.Internet中的主要通信协议是( D )
A.HTML
B.HTTP
C.ARPA
D.TCP/IP
2.OSI参考模型将网络通信的工作划分为7个层次,不属于OSI参考模型的层次是( B )
A.网络层 B.通信层 C.会话层 D.物理层
3. ping命令使用的协议为(D)
A. TCP
B. UDP
C. ARP
D.ICMP
4. Telnet使用(A)端口来建立连接
A. TCP端口23
B. UDP端口23
C. ARP端口25
D.ICMP端口25
5.在Visual C++中,通常使用WinSock2.2实现网络通信的功能,则需要引用头文件为( B)
A.Winsock.h
B.winsock2.h
C.winsock22.h
D.winsock2.2.h
6.将u_long类型的主机字节顺序格式IP地址转换为TCP/IP网络字节顺序格式的函数是( A)
A.htoml
B.htons
C.ntohl D.ntohs
7.下面不属于Socket编程模式的是(D )
A.Select模型 B.WSAAsyncSelect模型
C.WSAEventSelect模型 D.完成例程模型
8.下面模型使用线程池处理异步I/O请求的是(D )
A.Select模型
B.WSAAsyncSelect模型
C.WSAEventSelect模型
D.完成例程模型
9.在ioctlsocket()函数中使用(A )参数,并将argp参数设置为非0值,可以将Socket设置为非阻塞模式。
A.FIONBIO B.FIONREAD
C.SIOCATMARK D.FIONONBLOCK
10.在执行select()函数时如果出现错误则返回(D )
A.0 B.-1
C.NULL D.SOCKET_ERROR
二.填空题
1.TCP/IP协议簇中包含网络接口层、网络层、传输层和应用层。
2. FTP用于建立控制连接的端口为 21 ;当需要传输文件数据时,客户端程序将连接服务器的端口 20 。
3.根据基于的底层协议不同,Socket开发接口可以提供__面向连接___和_ 无连接__两种服务方式。
4.在计算机中使用无符号长整型数(unsigned long)来存储和表示IP地址,而且分为__网络字节顺序__和_主机字节顺序__两种格式。
5.在Visual C++中使用结构体__ in_addr __来保存网络字节顺序格式的IP地址。
6.Socket编程可以分为___阻塞__和___非阻塞__两种开发模式。
7.默认情况下,最多可以管理的Socket数量为__1024_个。
8.在select()函数中使用___ fd_set__结构体来管理多个Socket。
9.在WSAAsyncSelect模型中,应用程序可以在一个Socket上接收以_ Windows消息__为基础的网络事件通知。
10. 两个主机使用TCP进行通信可以分为3个阶段,即建立连接阶,数据传输阶段和断开连接释放资源阶段。
三、简单题
1、简述TCP和UDP的区别。
UDP是一种不可靠的协议,在传送数据时,源主机和目的主机之间不建立连接。而TCP协议为了确保数据传输的准确和安全可靠,集成了各种安全保障功能,这在实际执行过程中会占用大量的系统开销。因此,UDP具有TCP无法比拟的速度优势。
相对于可靠性而言,基于UDP的应用更注意性能。与TCP相比,
UDP更适合发送数据量比较少、但对响应速度要求比较高的情况。2、简述FTP的两种连接模式。
答:FTP支持两种运行模式,即主动模式和被动模式,它们的区别在于控制如何打开第2个连接。
1.主动模式:在主动模式下,客户端向服务器发送自己用于数据连接的IP地址和端口号,然后由服务器程序打开数据连接。
2.被动模式:当客户端在防火墙后面或者无法接收TCP连接时,通常建议采用被动模式。在被动模式下,服务器向客户端发送自己用于数据连接的IP地址和端口号,则客户端打开数据连接。
3、简述winpcap提供的主要功能及典型的应用。
主要功能:捕获网络原始数据包;根据用户定义的规则过滤数据包;发送用户构造的数据包到网络中;统计网络流量;保存捕获的数据包。典型应用:网络协议分析器;网络监听器;网络流量记录;网络流量产生器;用户级的网桥和路由器;网络入侵检测系统;网络扫描器;网络安全工具。
4、简述流式Socket和数据报式Socket的区别。
表5.1 流式套接字和数据报式套接字的区别
5、简述socket提供三种类型的套接字。
1.流式套接字提供面向连接的、可靠的数据传输服务,可以无差错地发送和接收数据。
2.数据包套接字提供了一种无连接、不可靠的双向数据传输服务。
3.原始套接字该接口允许对较低层协议,如IP、ICMP直接访问。
四、编程题
通常我们使用winsock2.2来进行网络编程。请补全下面代码以及添加注释。
#include "stdafx.h"
#include
#include "(1)"
#pragma comment(lib, "(2)")
//完整的服务端程序
int main(int argc, char* argv[])
{
const int BUF_SIZE = 64;
WSADATA wsd; //WSADATA变量
SOCKET sServer; //服务器套接字
SOCKET sClient; //客户端套接字
SOCKADDR_IN addrServ;; //服务器地址
char buf[BUF_SIZE]; //接收数据缓冲区