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

Posted dextttter

tags:

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

一、选择题

1、以下的api哪个不属于linux socket api(D)

  A.accept  B.listen C.connect D.input

  解析:accept、listen和connect都属于linux socket api。

 

2、tcp的三次握手发生在哪两个api调用之间(B)

  A. accept和listen之间

  B. accept和connect之间

  C.bind和accept之间

  D. bind和listen之间

  解析:A选项accept和listen同属server socket端的api用于初始化server端socket,而三次握手发生在server和client之间,显然错误。C、D选项同理

 

3、tcp的整个三次握手过程至少涉及到ip报文首部的哪些标志位 (C)

  A.ACK 

  B.SYN 

  C.ACK和SYN 

  D.无

  解析:tcp的整个三次握手过程为:

 

  由上图的ip报文可知整个过程至少涉及ACK和SYN标志位:1.客户端发起主动连接,将ip的SYN位置1并发出。2.服务器收到连接请求将ip的ACK和SYN置1并发出,表示收到请求并同意连接。3.客户端将ip的ACK置1并发出表示收到消息。

 

4、完成路径选择功能是在OSI模型的( C )
  A、物理层      B、数据链路层      
  C、网络层      D、传输层

  解析:物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。数据链路层主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。网络层的主要功能是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。传输层的功能是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。

 

5、在子网192.168.4.0/30中,能接收目的地址为192.168.4.3的IP分组的最大主机数是(C)。
  A.0

  B.1

  C.2

  D.4
  解析:首先分析192.168.4.0/30这个网络。主机号占两位,地址范围192.168.4.0/30~ 192.168.4.3/30,即可以容纳(4-2=2)个主机。主机位为全1时,即192.168.4.3,是广播地址,因此网内所有

主机都能收到,因此选C。

 

6、TCP/IP参考模型的网络层提供的是(A)。

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

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

  C. 有连接不可靠的虚电路服务  
  D. 有连接可靠的虚电路服务
  解析:TCP/IP的网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。此外考察IP首部,如果是面向连接的,则应有用于建立连接的字段,但是没有;如果提供可靠的服务,则至

少应有序号和校验和两个字段,但是IP分组头中也没有(IP首部中只是首部校验和)。因此网络层提供的无连接不可靠的数据服务。有连接可靠的服务由传输层的TCP提供

 

二、判断题

1.如果本地域名服务无缓存,当采用递归方法解析另一网络某主机域名时,用户主机本地域名服务器发送的域名请求条数均为1条 (T)

2.ARP协议的功能是根据MAC地址查询IP地址(F)

3.在OSI参考模型中,自下而上第一个提供端到端服务的层次是传输层  (T)

4.UDP协议是 TCP/IP 体系中运输层最重要的协议之一  (T)

5.路由器的路由功能是靠查询路由表完成的  (T)

 

三、综合题

1.描述套接字编程的过程并画出该过程对应的流程图(节点为linux socket api)

 解析:  

 服务器端:

  1.加载套接字库,创建套接字(socket());

  2.绑定套接字到一个IP地址和一个端口上(bind());

  3.将套接字设置为监听模式等待连接请求(listen());

  4.请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());

  5.用返回的套接字和客户端进行通信(send()/recv());

  6.返回,等待另一连接请求;

  7.关闭套接字,关闭加载的套接字库(closesocket())。

 

 客户端:

  1.加载套接字库,创建套接字(socket());

  2.向服务器发出连接请求(connect());

  3.和服务器端进行通信(send()/recv());

  4.关闭套接字,关闭加载的套接字库(closesocket())。

 

 

 2.简述DNS的作用

 网络通信基于IP地址,所以计算机在网络上进行通讯,如访问某个网站时只能识别如“202.96.134.133”之类的IP地址,而IP地址的一长串数字不利于记忆。因此,引入了DNS域名系统协议。

 所以我们访问网站时,只需要浏览器地址栏中输入域名如www.baidu.com,就能看到所需要的页面。这是因为有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址。(言之有理即可)

 

3.请画下面的网络拓扑图中路由器R的路由表(格式为要到达的网络、下一路由器(若直接投递则写直接投递))

 

 

   

  解析:R的路由表为

  

 

 

  分析知道,上面的网络拓扑图中共有四个网络10.0.0.0,20.0.0.0,30.0.0.0和40.0.0.0。而 20.0.0.0和30.0.0.0是直接和路由器R相邻的,因此为直接交付(直接投递)。而要向去达目的网络10.0.0.0,R的下一跳路由器应为Q,故下一跳地址为20.0.0.5。同理可知道去往目的网络40.0.0.0的下一跳路由器地址为30.0.0.7。 

 

 

 

 

 

 

 

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

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

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

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

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

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

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