2024年4月17日发(作者:)

网络编程试题答案

一:选择题(共10小题,每小题3分)

1) 路由器工作在哪一层(B)

A:链路层 B:网络层 C:传输层

D:应用层

2) 一台主机要实现通过局域网与另一个局域网

通信,需要做的工作是 (C) 。

A: 配置域名服务器

B :定义一条本机指向所在网络的路由

C :定义一条本机指向所在网络网关的路由

D :定义一条本机指向目标网络网关的路由

3) 下列提法中,不属于ifconfig命令作用范围的

是 (D )。

A: 配置本地回环地址 B :配置网卡的IP

地址

C :激活网络适配器 D: 加载网卡到内

核中

4) 下面的网络协议中,面向连接的的协议是:

(A) 。

A:传输控制协议 B :用户数据报协议

C :网际协议 D: 网际控制报文协议

5) 在局域网络内的某台主机用ping命令测试网

络连接时发现网络内部的主机都可以连同,而

不能与公网连通,问题可能是(C)

A 主机IP设置有误

B 没有设置连接局域网的网关

C 局域网的网关或主机的网关设置有误

D 局域网DNS服务器设置有误

6) DHCP是动态主机配置协议的简称,其作用是

可以使网络管理员通过一台服务器来管理一

个网络系统,自动地为一个网络中的主机分配

___D______地址。

A :UDP B :MAC C: TCP D:

IP

7) 在TCP/IP模型中,应用层包含了所有的

高层协议,在下列的一些应用协议中,(B)

是能够实现本地与远程主机之间的文件传输

工作。

A telnet B FTP C: SNMP

D: NFS

8) 当我们与某远程网络连接不上时,就需要跟踪

路由查看,以便了解在网络的什么位置出现了

问题,满足该目的的命令是(C)。

A :ping B: ifconfig C :traceroute D:

netstat

9) 关于代理服务器的论述,正确的是(A)。

A :使用internet上已有的公开代理服务器,

只需配置客户端。

B :代理服务器只能代理客户端http的请求。

C :设置好的代理服务器可以被网络上任何

主机使用。

D :使用代理服务器的客户端没有自己的ip

地址。

10) 公司需要把192.168.3.0 /255.255.255

网段划分成10个子网,子网掩码应该是?

(C)

A:255.255.255.5 B

255.255.255.4

C:255.255.255.240 D

255.255.255.248

二:填空题(本题共5小题,每空1分 共10

分)

1) 网络192.168.220.0/24 定向广播

地址是(192.168.220.255),受限的广播地

址为(255.255.255.255),定向广播和受限

广播的区别(只要路由器可以转发定向广播信

息可以向其它子网广播信息,而路由器从来不

转发受限的广播信息);

2) 在tcp/ip模型中进程到进程之间通信

属于(传输)层,主机到主机属于(网络)层,

设备到设备属于(数据链路)层,程序到程序

属于(应用)层。

3) Ping命令的功能为(可以测试网络中

本机系统是否能到达 一台远程主机 ,所以常

常用于测试网络的 连通性)。

4) 进行远程登录的命令是 (telnet)

5) DNS 域名系统的作用是(主机用户名

和IP地址之间相互转化)。

三:问答题(本题共4小题,每题6分共24分)

1) 简述TCP/IP协议中各层的主要功能,各

有哪些主要协议。

答:网络接口层:实现设备与设备之间的通

网络层:实现主机与主机之间的通信

IP,ARP,RARP,ICMP

传输层:实现进程与进程之间的通信

TCP,UDP

HTTP,SMTP,DNS,SNMP,FNS,FTP

2) 什么是TCP 、UDP ?协议优缺点,应用场

合?

1:用户数据报协议UDP(User Datagram

Protocol)

UDP协议是面向无连接的用户数据报协

议,在传输数据之前不需要先建立连接。远地主

机的运输层收到UDP报文后,不需要给出任何确

认。

2:传输数据报协议TCP(Transmission

Control Protocol)

TCP 则提供面向连接的服务。在传输数据

前必须先建立连接,数据传输完毕后要释放连

应用层:实现应用程序

接。

区别:

是否面向连接:Tcp 面向连接

,udp是面向无连接

是否可靠: Tcp 可靠 ,udp

不可靠

应用场合: Tcp应用于传输大量数据

,udp用于传输少量数据

速度: Tcp的速度慢 ,

udp的速度快

是否能够广播:tcp不能 ,

udp能广播

tcp是基于连接的,速度慢,有校验等,所

以传送相同的数据,要比UDP发送的包多很多

3) 简述TCP/IP协议中三次握手的过程及涵义

第一次握手:建立连接时,客户端发送syn包

(syn=j)到服务器,并进入SYN_SEND状态,等待

服务器确认;

二次握手:服务器收到syn包,必须确认客户

的SYN(ack=j+1),同时自己也发送一个SYN包

(syn=k),即SYN+ACK包,此时服务器进入

SYN_RECV状态;

三次握手:客户端收到服务器的SYN+ACK包,

向服务器发送确认包ACK(ack=k+1),此包发送

完毕,客户端和服务器进入ESTABLISHED状态,

完成三次握手

4) 简述TCP/IP模型中,利用传输控制协议发送

数据,应用层数据从主机A发送到主机B的

整个过程。

答: 1、首先是主机A通过connect()函数发送连

接请求,主机B的accept()函数接受到请求。

此时建立了连接。

2、主机A将数据写如套接口。

3、主机B从套接口读取数据,并保存。

4、数据发送完毕后,主机A关闭套接口。

5、主机B关闭套接口。

四:程序题(共三小题,第一题16分,二三

题10分 共36分)

1) 利用setsocketopt()使用嵌套字支持广播,并编

写两个程序,其中一个发送广播数据,另一个

接收广播数据。

#include

#include

#include // bzero

#include

#include

#include

#include //

inet_ntop

#include

#include

//#define MAX 1024*1024

int main(int argc, char *argv[])

{

struct sockaddr_in srvAddr;

int socked = socket(AF_INET,

SOCK_DGRAM, 0);

unsigned short port = 8000;

char sendbuf[1024]=" ",recvbuf[1024]="";

int broadcast_en=1;

socklen_t

broadcast_len=sizeof(broadcast_en);

size_t len=sizeof(srvAddr);

bzero(&srvAddr, sizeof(srvAddr));

_family = AF_INET;

_port = htons(port);

_addr.s_addr

=inet_addr("192.168.220.255");

if(socked < 0)

{

perror("socket");

exit(1);

}

printf("UDP Server Started at port %d!n",

port);

if

( (setsockopt(socked,SOL_SOCKET,SO_BR

OADCAST,&broadcast_en,broadcast_len))<

0 )

{

perror("setsockopt");

exit(1);

}

while(1)

{

printf("输入数据:");

fgets(sendbuf,1024,stdin);

sendbuf[strlen(sendbuf)-1]='0';

sendto(socked,sendbuf,strlen(sendbuf),0

,(struct

*)&srvAddr,(socklen_t)len);

}

}

#include

#include

#include // bzero

#include

#include

#include

#include //

inet_ntop

#include

#include

sockaddr