如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?

网络上有很多关于计算机网络的考察题目,五花八门,良莠不齐,并且大多没有解析,题目也可能有歧义、不严谨,因此本套试题主要选择一些专业考试题库,有软件工程师考试题、网络工程师考试题、计算机专业基础综合考试题,这些考试题相对来说质量较高,有深度和广度,解析详细,能比较好的反映一个软件工程师的计算机网络知识水平。

一 选择题

1.在 TCP/IP 参考模型的网络层提供的是()。

A 无连接不可靠的数据报服务
B 无连接可靠的数据报服务
C 有连接不可靠的虚电路服务
D 有连接可靠的虚电路服务
答案:A
解析:
网络层(IP)提供无连接不可靠的数据报服务,有连接可靠的应用由运输层的 TCP 实现的。
面向连接和无连接:
面向连接的方法中,网络负责顺序发送报文分组并且以一种可靠的方法检测丢失和冲突。这种方法被“可靠的”传输服务使用。
在无连接的方法中,网络只需要将报文分组发送到接收点,检错与流控由发送方和接收方处理。这种方法被称作“最佳工作(best-effort)”或“无应答(unacknowledged)”的传输协议所使用。
 
2.ARP 协议的主要功能是()
A 根据 IP 地址查询 MAC 地址
B 根据 MAC 地址查询 IP 地址
C 根据域名查询 IP 地址
D 根据 IP 地址查询域名
答案:A
解析:

ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。

在网络通信中,主机和主机通信的数据包需要依据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源目MAC的封装。

一般情况下,上层应用程序更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装。

3.数据链路层采用后退 (GBN) 协议,发送方已经发送了编号为 0~7 的帧。当计时器超时时,若发送方只收到 号帧的确认,则发送方需要重发的帧数是()

A. 2 B. 3 C. 4 D. 5 
答案:C
解析:
在后退N帧协议中,当接收方检测到某个帧出错后,则简单地丢弃该帧及其后所有的后续帧,发送方超时后需重传该数据帧及其后续的所有帧。这里应注意,连续 ARQ 协议中,接收方一般采用累积确认的方式,即接收方对按序到达的最后一个分组发送确认,因此本题中收到3的确认帧就表示编号为 0, 1, 2,3 的帧已接收,而此时发送方未收到 号帧的确认只能代表确认帧在返回的过程中丢失了,而不代表 号帧未到达接收方。因此需要重传的帧为编号是 4, 5, 6,7的帧。
 
4.直接封装 RIP 、OSPF、BGP 报文的协议分别是()
A TCP、UDP、IP
B TCP、 IP 、 UDP
C UDP、TCP、IP
D UDP、IP、TCP
答案:D
解析:
RIP通过广播 UDP 报文交换路由信息;OSPF 是一种内部网关协议,直接采用 IP 协议;BGP 是外部网关协议,在不同自治系统间交换路由信息,需要可靠传输,故采用 TCP。
 
5.下列关于网络应用模型的叙述中,错误的是()
A. 在P2P模型中,结点之间具有对等关系
B. 在客户/服务器(C/S)模型中,客户与客户之间可以直接通信
C. 在C/S模型中,主动发起通信的是客户,被动通信的是服务器
D. 在向多用户分发一个文件时,P2P模型通常比C/S模型所需时间短
答案:C
解析:在客户/服务器(C/S)模型中,客户与客户之间不可以直接通信
 
6.

在实现基于TCP的网络应用程序时,服务器端正确的处理流程是(   ) 

  A、socket() -> bind() -> listen() -> connect() -> read()/write() -> close()

  B、socket() -> bind() -> listen() -> read()/write() -> close()

  C、socket() -> bind() -> listen() -> accept() -> read()/write() -> close() 

  D、socket() -> connect() -> read()/write() -> close() 

答案:C

7.某客户通过一个TCP连接向服务器发送数据的部分过程如图所示。客户在t0时刻第一次收到确认序列号ack_seq=100的段,并发送序列号seq=100的段,但发生丢失。若TCP支持快速重传,则客户重新发送seq=100段的时刻是()

A. t1
B. t2
C. t3
D. t4

 

 答案:C

解析:

快重传:在超时重传定时器溢出之前,接收到连续的三个重复冗余ACK(其实是收到4个同样的ACK,第一个是正常的,后三个才是冗余的),发送端便知晓哪个报文段在传输过程中丢失了,于是重发该报文段,不需要等待超时重传定时器溢出,大大提高了效率。

8.

使用校园网浏览网页时可能不会用到的协议有()

A.PPP协议    B.ARP协议    C.DNS协议    D.SMTP协议
答案:D
解析:
考察各种网络协议的使用场景。
当接入网络时可能会用到 PPP 协议,A 可能用到;而当计算机不知道某主机的 MAC
地址时,用 IP 地址查询相应的 MAC 地址时会用到 ARP 协议,B 可能用到;而当访问 Web
网站时,若 DNS 缓冲没有存储相应域名的 IP 地址,用域名查询相应的 IP 地址时要使用 DNS
协议,而 DNS 是基于 UDP 协议的,所以 C 可能用到,SMTP 只有使用邮件客户端发送邮件,
或是邮件服务器向别的邮件服务器发送邮件时才会用到,单纯的访问 Web 网页不可能用到
 
 
二 简答题
1.

端口和socket套接字的区别是什么?

答:套接字是包含端口的,因为套接字=(IP地址,端口号)。套接字是TCP连接的端点。

而另一方面,套接字socket在操作系统中也是API的一种。此时,套接字可以被看作是操作系统的抽象,也可以被看成是一个文件描述符。而端口,则是应用层服务的一种代号,它用来标识应用层的进程。

2.什么是TCP的三次握手机制?TCP的三次握手机制过程简述。

答:

含义:为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号发送给目标机,并需要这些包传送给目标机之后的确认信息。TCP总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。

三次握手:

(1)Client先产生一个初始序列号seq,SYN标志位置1,将该数据包发送给Server端,之后Client端进入SYN_SENT状态,等待Client确认。

(2)Server收到数据包后也发送自己的SYN报文作为响应,并初始化序列号seq,为了确认Client的seq,Server将Client发送的seq加1作为ACK发送给Client,Server进入SYN_RCVD状态。

(3)为了确认Server的SYN,Client将Server发送的seq加1作为ACK发送给Server。Client和Server进入ESTABLISHED状态,完成三次握手。

 

三 应用题

某网络拓扑如图所示,其中路由器内网接口、DHCP服务器、WWW服务器与主机1均采用静态IP地址配置,相关地址信息见图中标注;主机2~主机N通过DHCP服务器动态获取IP地址等配置信息。

请回答下列问题。
(1)DHCP服务器可为主机2~主机N动态分配IP地址的最大范围是什么?主机2使用DHCP协议获取IP地址的过程中,发送的封装DHCP Discover报文的IP分组的源IP地址和目的IP地址分别是什么?
(2)若主机2的ARP表为空,则该主机访问Internet时,发出的第一个以太网帧的目的M&C地址是什么?封装主机2发往Internet的IP分组的以太网帧的目的MAC地址是什么?
(3)若主机1的子网掩码和默认网关分别配置为255.255.255.0和111.123.15.2,则该主机是否能访问WWW服务器?是否能访问Internet?请说明理由。

答案:

(1)DHCP服务器可为主机2~主机N动态分配IP地址的最大范围是:111.123.15.5~111.123.15.254;主机2发送的封装DHCPDiscover报文的IP分组的源IP地址和目的IP地址分别是0.0.0.0和255.255.255.255。
(2)主机2发出的第一个以太网帧的目的MAC地址是ff-ff-ff-ff-ff-ff;封装主机2发往Internet的IP分组的以太网帧的目的MAC地址是00-al-al-al-al-al。
(3)主机1能访问WWW服务器,但不能访问Internet。由于主机1的子网掩码配置正确而默认网关IP地址被错误地配置为111.123.15.2(正确IP地址是111.123.15.1),所以主机1可以访问在同一个子网内的WWW服务器,但当主机1访问Internet时,生机1发出的IP分组会被路由到错误的默认网关(111.123.15.2),从而无法到达目的主
机。

 
posted @ 2020-01-10 12:12  巧克力味泥巴  阅读(363)  评论(0编辑  收藏  举报