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

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

 

1.计算机网络基本知识

集线器、路由器、光纤、同轴电缆等硬件设备的基本了解;
TCP/IP网络的五个层次;
TCP/IP协议栈的初始化,网络数据收发的具体过程;
ARP、DNS、L2交换网络的基本了解;

2.代码作业能力

熟悉Linux Socket网络编程;
追踪了解Socket API与系统调用的关系;
能够阅读并分析涉及网络数据收发过程的函数源代码;

3.学习能力

善于阅读源代码与技术文档;
善于搜索并学习他人经验;

 

二、Linux下网络协议栈分析

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

 

3.Linux Socket

socket 位于应用层,它为网络应用编程提供API。通过Linux Socket,网络应用程序得以访问内核空间的协议栈,从而形成通信。同时,Linux系统中一切皆文件,Socket也是文件的一部分,调用Socket API进行数据收发时控制的是收发缓冲区的文件描述符。Linux Socket API的定义在./net/socket.c中。以下是UDP Socket与TCP Socket处理过程
如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?_第2张图片如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?_第3张图片

 

三、计算机网络知识水平与编程能力测试


一、选择题(5小题,每小题4分,共20分)

1.计算机网络中使用最广泛的交换技术是( ) 【网课“计算机网络”测试题】
A.电路交换 B.报文交换 C.分组交换 D.线路交换
答案:C,最常用的TCP/IP协议数据传输形式为分组
 
2.关于TCP/IP的IP层协议描述不正确的是( ) 【网课“计算机网络”测试题】
A、是点到点的协议 B、不能保证IP报文的可靠传送
C、是无连接的数据报传输机制 D、每一个IP数据包都需要对方应答
答案:A,IP协议为面向无连接
 
3.对地址转换协议(ARP)描述正确的是( )【2012考研真题】
A、ARP封装在IP数据报的数据部分 B、ARP是采用广播方式发送的
C、ARP是用于IP地址到域名的转换 D、发送ARP包需要知道对方的MAC地址
答案:B,主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址。不需要提前知道MAC地址。
 
4.在TCP/IP体系结构中,直接为ICMP提供服务的协议是( ) 【2012考研真题】
A.PPP B.IP C.UDP D.TCP
答案:C, ICMP报文包含在IP数据报内。
 
5.以下关于API与系统调用之间关系描述不正确的是( ) 【原创】
A. API可能直接提供⽤户态的服务
B. ⼀个单独的API可能调⽤⼏个系统调⽤
C. 每个API都调用了系统调用
D. 不同的API可能调⽤了同⼀个系统调⽤
答案:C, API可能不调用系统调用

 

二、填空题(20分,主要来自百度文库)

1. 常用的物理层设备有中继器和   集线器    ,数据链路层设备有网桥和  交换机 。

解析:考察各层次常用设备。

2. 数据交换技术有电路交换、报文交换和  分组交换 ,而后一种包含数据报和   虚电路  两种实现方式。

解析:考察数据交换技术。

3. 外部网关协议有BGP,内部网关协议有   RIP  和  OSPF 。

解析:考察路由协议。

4. 从IPv4到IPv6过渡的两种策略是  隧道技术 和 双协议栈技术  。

解析:记忆题。

5. 传输层提供   TCP 和  UDP 两种服务。

解析:送分题。

三、综合题(60分)

1.【2009年408考研T47】某网络拓扑如下图所示,路由器 R1 通过接口 E1、E2分别连接局域网 1、局域网 2,通过接口 L0连接路由器 R2,并通过路由器 R2 连接域名服务器与互联网。R1 的 L0 接口的 IP 地址是 202.118.2.1;R2的 L0接口的 IP 地址是 202.118.2.2,L1 接口的 IP 地址是 130.11.120.1,E0接口的 IP 地址是 202.118.3.1;域名服务器的 IP 地址是 202.118.3.2。

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

 

 ⑴ 将 IP 地址空间 202.118.1.0/24 划分为 2 个子网,分别分配给局域网 1、局域网 2,每个局域网需分配的IP 地址数不少于 120个。请给出子网划分结果,说明理由或给出必要的计算过程。

⑵ 请给出 R1 的路由表,使其明确包括到局域网 1 的路由、局域网 2的路由、域名服务器的主机路由和互联网的路由。
⑶ 请采用路由聚合技术,给出 R2 到局域网 1和局域网 2的路由。

 解析:

⑴ CIDR 中的子网号可以全 0 或全 1,但主机号不能全 0 或全 1。因此若将 IP 地址空间 202.118.1.0/24 划分为 2 个子网,且每个局域网需分配的 IP 地址个数不少于 120 个,子网号至少要占用一位。由 2 6 -2<120<2 7 -2 可知,主机号至少要占用 7 位。由于源 IP 地址空间的网络前缀为 24 位,因此 主机号位数+子网号位数=8 。
综上可得主机号位数为 7,子网号位数为 1。
因此子网的划分结果为:子网 1:202.118.1.0/25,子网 2:202.118.1.128/25。
地址分配方案:子网 1 分配给局域网 1,子网 2 分配给局域网 2,或子网 1 分配给局域网 2,子网 2 分配给局域网 1。
⑵ 由于局域网 1 和局域网 2 分别与路由器 R1 的 E1、E2 接口直接相连,因此在 R1 的路由表中,目的网络为局域网 1 的转发路径是直接通过接口 E1 转发,目的网络为局域网 2 的转发路径是直接通过接口 E1 转发。由于局域网 1、2 的网络前缀均为 25 位,因此它们的子网掩码均为 255.255.255.128。根据题意,R1 专门为域名服务器设定了一个特定的路由表项,因此该路由表项中的子网掩码应为255.255.255.255。对应的下一跳转发地址是 202.118.2.2,转发接口是 L0。根据题意,到互联网的路由实质上相当于一个默认路由,默认路由一般写作 0/0,即目的地址为 0.0.0.0,子网掩码为 0.0.0.0。对应的下一跳转发地址是 202.118.2.2,转发接口是 L0。
综上可得到路由器 R1 的路由表为:

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

  ⑶ 局域网 1 和局域网 2 的地址可以聚合为 202.118.1.0/24,而对于路由器 R2 来说,通往局域网 1 和 2 的转发路径都是从 L0 接口转发,因此采用路由聚合技术后,路由器 R2 到局域网 1 和局域网 2 的路由为:

 

2.【2011年408考研T47】某主机的 MAC 地址为 00-15-C5-C1-5E-28,IP 地址为 10.2.128.100(私有地址)。题 47-a 图是网络拓扑,题 47-b 图是该主机进行 Web 请求的 1 个以太网数据帧前 80 个字节的十六进制及 ASCII 码内容。

             图 47-a 图 网络拓扑

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

 请参考图中的数据回答以下问题。

(1)Web 服务器的 IP 地址是什么?该主机的默认网关的 MAC 地址是什么?
(2)该主机在构造题 47-b 图的数据帧时,使用什么协议确定目的 MAC 地址?封装该协议请求报文的以太网帧的目的 MAC 地址是什么?
(3)假设 HTTP/1.1 协议以持续的非流水线方式工作,一次请求-响应时间为 RTT,rfc.html 页面引用了 5 个 JPEG 小图像,则从发出题 47-b 图中的 Web 请求开始到浏览器收到全部内容为止,需要多少个 RTT?
(4)该帧所封装的 IP 分组经过路由器 R 转发时,需修改 IP 分组头中的哪些字段?
注:以太网数据帧结构和 IP 分组头结构分别如题 47-c 图、题 47-d 图所示。

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

 解析:

(1)64.170.98.32   00-21-27-21-51-ee
以太网帧头部 6+6+2=14 字节,IP 数据报首部目的 IP 地址字段前有 4*4=16 字节,从以太网数据帧第一字节开始数 14+16=30 字节,得目的 IP 地址 40 aa 62 20(十六进制),转换为十进制得 64.170.98.32。以太网帧的前六字节 00-21-27-21-51-ee 是目的 MAC 地址,本题中即为主机的默认网关 10.2.128.1 端口的 MAC 地址。
(2)ARP   FF-FF-FF-FF-FF-FF
ARP 协议解决 IP 地址到 MAC 地址的映射问题。主机的 ARP 进程在本以太网以广播的形式发送 ARP 请求分组,在以太网上广播时,以太网帧的目的地址为全 1,即 FF-FF
-FF-FF-FF-FF。
(3)6
HTTP/1.1 协议以持续的非流水线方式工作时,服务器在发送响应后仍然在一段时间内保持这段连接,客户机在收到前一个响应后才能发送下一个请求。第一个 RTT 用于请求 web页面,客户机收到第一个请求的响应后(还有五个请求未发送),每访问一次对象就用去一个RTT。故共 1+5=6 个 RTT 后浏览器收到全部内容。
(4)源 IP 地址 0a 02 80 64 改为 65 0c 7b 0f,生存时间(TTL)减 1,校验和字段重新计算
私有地址和 Internet 上的主机通信时,须有 NAT 路由器进行网络地址转换,把 IP 数据报的源 IP 地址(本题为私有地址 10.2.128.100)转换为 NAT 路由器的一个全球 IP 地址(本题为 101.12.123.15)。因此,源 IP 地址字段 0a 02 80 64 变为 65 0c 7b 0f。IP 数据报每经过一个路由器,生存时间 TTL 值就减 1,并重新计算首部校验和。若 IP 分组的长度超过输出链路的 MTU,则总长度字段、标志字段、片偏移字段也要发生变化。
 

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

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

                 题47图

请回答下列问题。
(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),从而无法到达目的主
机。

你可能感兴趣的:(如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?)