1、软件水平考试(中级)网络工程师下午(应用技术)试题-试卷 5及答案解析(总分:52.00,做题时间:90 分钟)一、试题一(总题数:2,分数:12.00)1.试题一()(分数:6.00)_阅读以下说明,回答问题 1和问题 2。 【说明】对小范围(不超过 100米)内的组网来说,最常见的为以集线器(Hub)为中心的对等式局域网。在网线的制作中,对线的标准有两个:EIA/TIA 568A 和 EIA/TIA T568B标准。(分数:6.00)(1).EIA/TIA 568A和 EIA/TIA T568B标准有什么本质区别?标准分 EIA/TIA 568A 和 EIA/TIA T568B的主要目的是
2、什么?(分数:2.00)_(2).(1)网卡与集线器之间连线两端各使用何种标准?(2)网卡与网卡之间连线两端各使用何种标准?(3)集线器与集线器之间连线两端各使用何种标准?(分数:2.00)_(3).制作交叉双绞线时,一端的线序如附图 1(a)所示,附图 1(b)为另一端线序,将附图 1(b)中(1)(8)处空缺的颜色名称填写在相应位置。 (分数:2.00)_二、试题二(总题数:2,分数:12.00)2.试题二()(分数:6.00)_单位分得合法 IP地址 202.112.68.40掩码为 255.255.255.248,其中,路由器的外口和 ISP之间占据了2个,若使用 202.112.68
3、.41和 202.112.68.42,掩码为 255.255.255.252。(分数:6.00)(1).可供使用的合法 IP还有多少哪些?请写出。(分数:2.00)_(2).使用内部 IP进行地址转换,若用一台主机连接内外两个网络,请说出两种不同的网络接法并进行比较?(分数:2.00)_(3).Internet上保留了哪些内部 IP可供使用?(分数:2.00)_三、试题三(总题数:2,分数:12.00)3.试题三()(分数:6.00)_阅读以下说明和交换机的配置信息,回答问题 1-3。 【说明】 某公司下设 3个部门,为了便于管理,每个部门组成一个 VLAN,公司网络结构如图 1-5所示。 【
4、交换机 Switch1的部分配置信息】 Switch 1(config)#finterfacefO/9 (分数:6.00)(1).通常 VLAN有静态和动态两种实现方式,这两种方式分别是如何实现的?各有什么特点? Switch1 采用的是哪种实现方式?(分数:2.00)_(2).在 VLAN中,STP 和 VTP是什么协议?各有什么作用?(分数:2.00)_(3).填充 VLAN信息表,如表 1-3所示。 (分数:2.00)_四、试题四(总题数:2,分数:12.00)4.试题四()(分数:6.00)_阅读以下说明,回答问题 13。 【说明】 网络解决方案如图 2-5所示,该网络原先使用的使国外
5、品牌的交换机,随着网络规模的扩大,增添了部分国产品牌的交换机,交换机 15 均是国产 10M/100Mbit/s自适应交换机,交换机 6和交换机 7是第 3层交换机。 (分数:6.00)(1).造成故障 1的原因是什么?如何解决?(分数:2.00)_(2).1将故障 2中(1)和(2)两处合适的答案填入相应的解答栏内。2故障 2如何解决?(分数:2.00)_(3).1路由器 2上采用了 NAT技术,NAT 中的动态地址翻译和 IP地址伪装有什么区别?2如图 2-6所示是路由器 2上的地址伪装表,将图 2-6中(1)(5)处空缺的信息填写在相应位置。 (分数:2.00)_五、试题五(总题数:2,
6、分数:4.00)5.试题五()(分数:2.00)_6.请阅读以下说明和 Socfon程序,将应填(n)处的字句写在对应栏内。 【说明】 网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。 以下是一个简单的客户机程序(服务器程序略),其工作过程非常简单:客户机与服务器建立连接后,接收服务器向客户机返回的一条消息。 程序中用到了两种结构 hostent与 sockaddr - in: hostent 类型的结构定义如下: struct hostent char*h_name; /主机的正式名称 char * * h_aliases; /别名
7、列表 int h_addrtype; /主机地址类型:AF_XXX Int H_length; /主机地址长度:4B(32b) char * * h_addr_list;/主机 IP地址列表 #define h_addr h_addr_list 0 sockaddr_in 类型的结构定义:sockaddr_in是通用套接字结构 sockaddr在 TCP/IP协议下的结构重定义,为 TCP/IP套接字地址结构。 Struct sockaddrin short int sin_family;/地址类型 AF_XXX,其中 AF_INET为 TCP/IP专用 unsigned short int
8、sin_port; /端口号 struct in_addr sin_addr; /Internet 地址 /端口号以及 Internet地址使用的是网络字节顺序,需要通过函数 htons转换 struct iN_addr _u32s_addr; /类型为 unsignel_long 程序中使用到了多个函数: struct hostent * gethostbyname(const char*hostname); 函数 gethostbyname查询与指定的域名地址对应的 IP地址,返回一个 hostent结构的指针,如果不成功则返回 NULL。 int_socket(int domain,in
9、t_type,int protocol); 函数 socket创建一个套接字描述符,如果失败返回-1。domain 为地址类型,type 为套接字类型,本题中为SOCK_STRBEAM;protocol 指定协议,本题中为 0。 int connect(int sockfd,struct sockaddr*servaddr,int addrlen); 函数 connect与服务器建立一个连接,成功返回 0,失败返回-1。servaddr 为远程服务器的套接字地址,包括服务器的 IP地址和端口号;addrlen 为地址的长度。 int read(int fd,char * buf,int len
10、); int write(int fd,char * buf,int len); 函数 read和 write从套接字读和写数据,成功返回数据量大小,否则返回-1。buf 指定数据缓冲区,len 指定接收或发送的数据量大小。 【Socket 程序】 /程序中引用的头文件略 #define PORT 3490 /定义端口号为 3490 int main(int argc,char*argv) int sockfd,nbytes; /套接字描述符、读入缓冲区的字节数 char buf 1024; /缓冲区 struct hostent * he; /主机信息类型 struct sockaddr_i
11、n srvaddr; /Internet套接字结构 if( (1) ) perror(“调用参数为零,请输入服务器的主机名!n”); exit(1); if( (2) ) /如果通过主机名没有获得对应的主机信息就提示用户 perror(“无法通过主机名获得主机信息!n”); exit(1); if( (3) ) /在无法创建套接字时,提示用户 perror(“无法创建套按字!n”); exit(1); bzero(/主机 IP地址列表 #define h_addr h_addr_list 0 sockaddr_in 类型的结构定义:sockaddr_in是通用套接字结构 sockaddr在 T
12、CP/IP协议下的结构重定义,为 TCP/IP套接字地址结构。 Struct sockaddrin short int sin_family;/地址类型 AF_XXX,其中 AF_INET为 TCP/IP专用 unsigned short int sin_port; /端口号 struct in_addr sin_addr; /Internet 地址 /端口号以及 Internet地址使用的是网络字节顺序,需要通过函数 htons转换 struct iN_addr _u32s_addr; /类型为 unsignel_long 程序中使用到了多个函数: struct hostent * geth
13、ostbyname(const char*hostname); 函数 gethostbyname查询与指定的域名地址对应的 IP地址,返回一个 hostent结构的指针,如果不成功则返回 NULL。 int_socket(int domain,int_type,int protocol); 函数 socket创建一个套接字描述符,如果失败返回-1。domain 为地址类型,type 为套接字类型,本题中为SOCK_STRBEAM;protocol 指定协议,本题中为 0。 int connect(int sockfd,struct sockaddr*servaddr,int addrlen);
14、 函数 connect与服务器建立一个连接,成功返回 0,失败返回-1。servaddr 为远程服务器的套接字地址,包括服务器的 IP地址和端口号;addrlen 为地址的长度。 int read(int fd,char * buf,int len); int write(int fd,char * buf,int len); 函数 read和 write从套接字读和写数据,成功返回数据量大小,否则返回-1。buf 指定数据缓冲区,len 指定接收或发送的数据量大小。 【Socket 程序】 /程序中引用的头文件略 #define PORT 3490 /定义端口号为 3490 int main
15、(int argc,char*argv) int sockfd,nbytes; /套接字描述符、读入缓冲区的字节数 char buf 1024; /缓冲区 struct hostent * he; /主机信息类型 struct sockaddr_in srvaddr; /Internet套接字结构 if( (1) ) perror(“调用参数为零,请输入服务器的主机名!n”); exit(1); if( (2) ) /如果通过主机名没有获得对应的主机信息就提示用户 perror(“无法通过主机名获得主机信息!n”); exit(1); if( (3) ) /在无法创建套接字时,提示用户 per
16、ror(“无法创建套按字!n”); exit(1); bzero(&srvaddr,sizeof(srvaddr); /置空 srvaddr srvaddr, sin_family=AF_INET; srvaddr, sin_port: (4) ;srvaddr.sin_addr: (5) ; /设置套接字结构的各项信息,其中的地址来自域名查询后的 hp变量 if(connect(sockfd, (n) ,sizeof(struct sockaddr)=-1) perror(“连接失败!n”); exit(1); /连接服务器,如果失败则提示用户 if(nbytes=read(sockfd,b
17、uf,MAXDATASIZE)=-1) perror(“读失败!n”);exit(1); /从套容接字中读出数据 buf nbytes=0; printf(“读到的内容:%s”,buf); close(sockfd); /打印数据并关闭套接字 (分数:2.00)_正确答案:(正确答案:(1) argc! =2 (2) (he=gethostbyname(argv1)=NULL (3) (sockfd=socket(AF_INET, SOCK_STREAM.0)=-1 (4) htons(PORT) (5) *(struct in_addr * )he-h_addr) (6) (struct sockaddr * ) &srvaddr)解析: