首页 > 其他 > 详细

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

时间:2020-01-10 23:55:57      阅读:172      评论:0      收藏:0      [点我收藏+]

一、课程知识

  1.互联网相关概念,网络协议基础,网络相关命令,环境配置

  2.Socket网络编程

  3.tcp协议及其原理

  4.ip协议以及源码分析

  5.dns域名解析以及dhcp服务

  

TCP/IP协议族

  要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何在它们之间传输的标准,从字面意思来看TCP/IP是TCP和IP协议的合称,但实际上TCP/IP协议是指因特网整个TCP/IP协议族。不同于ISO模型的七个分层,TCP/IP协议参考模型把所有的TCP/IP系列协议归类到四个抽象层中。

技术分享图片

 

在Internet层,解析IP地址,寻找通往目标IP的目的地的下一个路由地址。在网络接口层,则是寻找响应的硬件(MAC)地址。数据流以及网络拓扑结构如下图所示。

技术分享图片

 

 Socket相关知识

socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。

技术分享图片

 

 

TCP的三次握手

技术分享图片

 

 

第一次握手:客户端尝试连接服务器,向服务器发送syn包(同步序列编号Synchronize Sequence Numbers),syn=j,客户端进入SYN_SEND状态等待服务器确认

第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态

第三次握手:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手

定睛一看,服务器socket与客户端socket建立连接的部分其实就是大名鼎鼎的三次握手

其在socket中的三次握手

技术分享图片

 

 

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

     选择题

 

1.数据链路层采用后退 N 帧(GBN)协议,发送方已经发送了编号为 0~7 的帧。当计时器超时时,若发送方

只收到 0、2、3 号帧的确认,则发送方需要重发的帧数是__C____。
A.2
B.3
C.4
D.5
解析:考查后退 N 帧协议的工作原理。
在后退 N 帧协议中,发送方可以连续发送若干个数据帧,如果收到接收方的确认帧则可以继续发送。
若某个帧出错,接收方只是简单的丢弃该帧及其后所有的后续帧,发送方超时后需重传该数据帧及其后
续的所有数据帧。这里要注意,连续 ARQ 协议中,接收方一般采用累积确认的方式,即接收方对按序到
达的最后一个分组发送确认,因此题目中收到 3 的确认帧就代表编号为 0、1、2、3 的帧已接收,而此时
发送方未收到 1 号帧的确认只能代表确认帧在返回的过程中丢失了,而不代表 1 号帧未到达接收方。因
此需要重传的帧为编号是 4、5、6、7 的帧。
 
 
2.下列选项中,不属于网络体系结构所描述的内容是__C____。
A.网络的层次
B.每一层使用的协议
C.协议的内部实现细节
D.每一层必须完成的功能
解析:考查计算机网络体系结构的基本概念。
我们把计算机网络的各层及其协议的集合称为体系结构。因此 A、B、D 正确,而体系结构是抽象的,
它不包括各层协议及功能的具体实现细节

 

3.在学校局域网上ping 其中一个服务器 没有涉及到的网络协议是?()

A、TCP B、DNS C、ICMP D、ARP

答案:A

解析:首先我们需要dns协议,将网址转为IP地址,其次ping的原理是使用ICMP的回响机制,所以必然用到了网络层的ICMP协议,最后在到达对方局域网的时候需要使用RARP查找mac地址,在发送主机不知道自己IP的时候也会用到ARP协议,所以综上ping的过程中用到了 dns协议、ICMP协议、ARP协议、RARP协议。

4. 若主机甲与主机乙建立 TCP 连接时发送的 SYN 段中的序号为 1000,在断开连接时, 甲发送给乙的 FIN 段中的序号为 5001,则在无任何重传的情况下,甲向乙已经发送的 应用层数据的字节数为:

 A、4002 B、4001 C、4000 D、3999

答案 C

【解析】 SYN=1000,则数据传输时的起始序号为 1001,字节数 = FIN – 1001 = 4000

5. 假设下图所示网络中的本地域名服务器只提供递归查询服务,其他域名的服务器均只提 供迭代查询服务;局域网内主机访问 Internet 上各服务器的往返时间(RTT)均为 10ms, 忽略其他各种时延,若主机 H 通过超链接 http://www.abc.com/index.html,请求浏览纯 文本 Web 页 index.html,则从点击超链接开始到浏览器接收到 index.html 页面为止, 所需最短、最长时间分别是:

A、10ms,40ms B、10ms,50ms C、20ms,40ms D、20ms,50ms

技术分享图片

答案 D

【解析】 最短时间:本地域名服务器存在域名与 IP 地址的映射 主机向本地域名服务器递归查询 10s + 数据传输 10ms = 20ms 最长时间:本地域名服务器不存在映射,需要迭代查询各级域名服务器 3 次 10ms + 迭代查询 3 次 30ms + 数据传输 10ms = 50ms

 

6、DNS工作于(   )

(A)网络层

(B)传输层

(C)应用层

(D)表示层

答案:C

7,【百度文库】在实现基于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,socket基础概念。

 

8,【原创】下面哪个函数负责构造一个携带SYN标志位的TCP头并发送出去,同时还设置了计时器超时重发(  )

  A、tcp_transmit_skb

  B、inet_csk_accept

  C、tcp_v4_rcv

  D、tcp_connect

答:D,考察对Linux网络协议栈的了解。

 简答题

 

1.什么是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状态,完成三次握手。

 

2.简述交换机、集线器和路由器的区别,交换机和集线器的联系。

答:

1.集线器
集线器工作在物理层
共享带宽
半双工
广播发送
2.交换机
以太网交换机工作在数据链路层
连接局域网中的主机
相互通信的主机独占带宽
依据MAC地址转发,有目的发送
3.路由器
路由器工作在网络层
是一个多输入输出端口的专用计算机
连接不同的网络
共享带宽
依据IP地址转发,有目的发送

3.简述UDP和TCP的协议的主要特点和它们的主要差别

答:UDP
(1)无连接
(2)尽最大努力交付,不可靠
(3)无拥塞控制,效率高,适合于IP电话,实时视频等
(4)首部开销小,只有四个字段(源端口,目的端口,长度,检验和)
(5)可一对一,一对多,多对一,多对多交互
(6)面向报文
TCP
(1)面向连接的传输层协议
(2)每个TCP连接只能有两个端点,一对一
(3)可靠交付
(4)全双工通信
(5)面向字节流,“流”指流入到进程或从进程流出的字节序列,将收到的分组组织成字节流提交给上层

 

综合题

1.假设下图中的H3访问Web服务器S时,S为新建的TCP连接分配了20 KB(K=1
024)的接收缓存,最大段长MSS=1 KB,平均往返时间RTT=200 ms。H3建立连接时的初始序号
为100,且持续以MSS大小的段向S发送数据,拥塞窗口初始阈值为32 KB;S对收到的每个段进
行确认,并通告新的接收窗口。假定TCP连接建立完成后,S端的TCP接收缓存仅有数据存入而
无数据取出。请回答下列问题。
(1)在TCP连接建立过程中,H3收到的S发送过来的第二次握手TCP段的SYN和ACK标志位
的值分别是多少?确认序号是多少?
(2)H3收到的第8个确认段所通告的接收窗口是多少?此时H3的拥塞窗口变为多少?H3的发
送窗口变为多少?
(3)当H3的发送窗口等于0时,下一个待发送的数据段序号是多少?H3从发送第1个数据段到
发送窗口等于0时刻为止,平均数据传输速率是多少(忽略段的传输延时)?
(4)若H3与S之间通信已经结束,在t时刻H3请求断开该连接,则从t时刻起,S释放该连接的
最短时间是多少?

 技术分享图片

 

解析:

(1)第二次握手TCP段的SYN=1,(1分)ACK=1;(1分)确认序号是101。(1分)
(2)H3收到的第8个确认段所通告的接收窗口是12 KB;(1分)此时H3的拥塞窗口变为9 KB;
(1分)H3的发送窗口变为9 KB。(1分)
(3)当H3的发送窗口等于0时,下一个待发送段的序号是20 K+101=20×1024+101=20581;(1
分)H3从发送第1个段到发送窗口等于0时刻为止,平均数据传输速率是20 KB/(5×200 ms)=20
KB/s=20.48 kbps。(1分)
(4)从t时刻起,S释放该连接的最短时间是:1.5×200 ms=300 ms。(1分)

 

2.

某网络拓扑如下图所示,其中R为路由器,主机H1~H4的IP地址配置以及R的各接口IP地址

配置如图中所示。现有若干台以太网交换机(无VLAN功能)和路由器两类网络互连设备可供选择。

请回答下列问题:

(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的IF1,IF2,IF3接口的ip地址分别是

                 192.168.1.254 192.168.1.1 192.168.1.65

                (3)R需要提供NAT服务

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

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

原文:https://www.cnblogs.com/ustc-BlueSky/p/12178249.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!