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

Posted 陈二狗灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?相关的知识,希望对你有一定的参考价值。

网络知识总结


理论知识结构


 

  在出试题之前,根据本课程的学习及之前的网络知识学习总结计算机网络协议栈:

  计算机网络有两种分层模型,即OSI模型和TCP/IP模型,OSI有7层,TCP/IP则将网络分为4层,OSI模型是规定的标准,而现在TCP/IP模型是事实上的网络标准,所以我们结合两者,一般都说TCP/IP 5层模型,下面给一张图来说明:

 

  关于计算机网络理论知识的学习,一般都是围绕着TCP/IP 5层模型来学习各层上的协议,比如重要的TCP协议、IP协议,下面再上一张图清楚的展示TCP/IP模型上的各层主要的网络协议:

 

 

   下面一张图显示TCP/IP各层上的协议数据单元的结构:

  

 

 以上便是计算机网络主要的理论知识结构,下面将结合linux操作系统从系统级更加深入的理解网络协议栈。

深入理解Socket


  linux系统提供了一系列的关于网络协议栈系统调用接口,现在用表格总结下:

 

 

   本课程的实验通过基于linux 5.0.1的源代码,编译构建了一个可以运行TCP socket通信程序的Menu OS系统,在此基础上使用Linux下提供的强大的调试工具GDB来从系统及协议源码层面上跟踪分析网络协议栈,让我们更加深入理解了网络协议的工作原理和linux 系统调用机制。接下来将使用图形的形式展示linux下的网络协议栈:

1、linux协议栈概括图

 

 2、数据接收过程

 

 3、ip流走向图

 

 4、网络数据交换模型

 

 5、各socket函数调用过程

 

 6、数据发送过程

 

 

  参考  https://wenku.baidu.com/view/da22d886cf84b9d529ea7a02.html

 7、linux的系统调用机制

32位系统调用:

64位系统调用:

 

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


 

本人认为需要从4点来看:

1、掌握基本的计算机网络理论知识,即TCP/IP 5层模型及各层主要协议;

2、掌握网络实用命令、Socket编程,理解系统调用机制,学会使用linux下的实用工具,例如gdb;

3、具有发现问题,解决问题的能力,保持对网络的好奇心,能够主动思考,借助互联网查阅各种文献来帮助解决自己的问题;

4、需要关注最新的网络技术,查询RFC文档和最新的关于网络的论文,让自己跟上时代的节拍。

 

计算机网络知识技能水平试题

 


 

 本试卷还是以考察计算机网络理论知识为主,socket调用为辅,结合TCP/IP 5层模型,根据重要度分别以各层角度考察对各层主要协议的掌握情况。



一、选择题(每题3分,共30分)

1、物理层的通信单位是()。(原创)

    A.帧  B.比特  C.数据报  D.报文

答案:B ,考察对物理层基本知识的理解

2、以太网的最小帧长为()。(原创)

    A.64B  B.32B  C.128B  D.16B

答案:A,考察CSMA/CD协议

3、IPv4的地址长度为()。(原创)

    A.128位  B.64位  C.32位  D.16位

答案:C,考察对IP地址的认识

4、TCP/IP参考模型的网络层提供的是()。(2011年408真题)

  A. 无连接不可靠的数据报服务  B. 无连接可靠的数据报服务

  C. 有连接不可靠的虚电路服务  D. 有连接可靠的虚电路服务

答案:A,考察对IP层的基本认识

 5、下列关于CSMA/CD协议的叙述中,错误的是(B)。(2015年408真题)

  A.边发送数据,边检测是否发生冲突

  B.适用于无线网络,以实现无线链路共享

  C.需要根据网络跨距和数据传输速率限定最小帧长

  D.当信号传播延迟趋近0时,信道利用率趋近100%

答案:B,考察数据链路层的CSMA/CD协议

6、ARP 协议的功能是() 。 (2012考研408真题)

  A.根据 IP 地址查询 MAC 地址 

  B.根据 MAC 地址查询 IP 地址

  C.根据域名查询 IP 地址 

  D.根据 IP 地址查询域名

答案:A,考察地址转换协议ARP的功能

7、FTP客户和服务器间传递FTP命令时,使用的连接是()。(2009年408真题)  
  A.建立在TCP之上的控制连接  B. 建立在TCP之上的数据连接  
  C. 建立在UDP之上的控制连接  D. 建立在UDP之上的数据连接

答案:A,考察对应用层协议的理解

8、若主机甲主动发起一个与主机乙的TCP连接,甲、乙选择的初始序列号分别为 2018 和 2046,则第三次握手 TCP 段的确认序列号是()。(2019年408)
  A.  2018
  B.  2019
  C.  2046
  D.  2047

答案:D,考察对TCP三次握手过程的理解

9、计算机网络中使用最广泛的交换技术是( )。 (网课“计算机网络”测试题)
  A.电路交换   B.报文交换   C.分组交换   D.线路交换
答案:C,最常用的TCP/IP协议数据传输形式为分组

10、ping指令所使用的网络协议为()。(原创)

  A.IP  B.TCP  C.ICMP  D.IGMP

答案:C,考察ping指令工作原理

二、填空题(每题4分,共20分)

1、TCP/IP协议分为4层,分别是____、____、____、____。(原创)

答案:网络接口层、网际层、运输层、应用层,考察对计算机网络分层的理解

2、IP层提供______的服务。(原创)

答案:无连接,考察对IP服务的理解

3、表示本地主机的IP的地址为______。(原创)

答案:127.0.0.1,考察IP地址

4、数据交换技术有电路交换、______和   ______。(原创)

答案:报文交换、分组交换,考察数据交换的基本知识

5、TCP使用______完成连接建立过程。(原创)

答案:三次握手,考察TCP的连接建立

三、简答题(每题15分,共30分)

1、简述TCP连接建立的三次握手过程。(原创)

答案:第一次握手,客户端发送一个SYN报文段(报文中SYN标志置为1),第二次握手,服务端发送SYN+ACK报文段,第三次握手,客户端发送ACK报文段。

如图:

 

  本题主要考察对TCP连接建立的三次握手过程的掌握。

 2、简述IPv4分类编制机制。

答案:IP地址分为5类,即A B C D E,各类地结构如下图:

  本题主要考察对IP分类编制机制的了解。

 

四、(20分)某网络拓扑如下图所示,其中R为路由器,主机H1~H4的IP地址配置以及R的各接口IP地址配置如图中所示。现有若干台以太网交换机(无VLAN功能)和路由器两类网络互连设备可供选择。(2019年408真题第47题)

 请回答下列问题:

(1) 设备1、设备2和设备3分别应选择什么类型网络设备?

(2) 设备1、设备2和设备3中,哪几个设备的接口需要配置IP地址?并为对应的接口配置正确的IP地址。

(3) 为确保主机H1~H4能够访问Internet,R需要提供什么服务?

(4) 若主机H3发送一个目的地址为192.168.1.127的IP数据报,网络中哪几个主机会接收该数据报?

答案:

(1)设备1:路由器,设备2:以太网交换机,设备3:以太网交换机

答案解析:以太网交换机工作在局域网,只分配一个网络号,用于连接多台局域网主机;路由器用来将多个网络互连,每个接口的网络号不同。

(2)设备1的接口需要配置IP地址;设备1的IFl、IF2和IF3接口的IP地址分别是:192.168.1.254、192.168.1.1和192.168.1.65。

答案解析:路由器需要配置IP地址,交换机只用来交换数据,无需具有IP地址,设备1的IF1接口与路由器R的192.168.1.253/30相连,由于主机号全0或全1都为特殊地址,只剩下192.168.1.254可选,因而IF1分配IP地址为192.168.1.254,IF2和IF3比较简单,由与其相连的主机的默认网关决定。

 

(3)R需要提供NAT服务

答案解析:NAT为网络地址转换技术,提供专用地址和全球地址之间的相互映射,主机H1~H4的网络地址为内部地址,要想访问外部网络,需要使用NAT将内部地址转换为全球地址。

 

(4)主机H4会接收该数据报。

答案解析:主机H1、H2的IP地址都不是192.168.1.127,H3发出的数据报会在局域网中传播,因而H4会收到该数据报。

本大题节选自2019年考研408网络真题,主要考察网路通信设备、IP地址通信。

 

以上是关于如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

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