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

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

需要了解知悉计算机网络的基本知识和原理。了解计算机网络的发展、功能和组成,计算机网络的体系结构、OSI参考模型、TCP/IP模型,通信基础等。

需要有动手操作实践代码的能力。熟悉Linux Socket网络编程,追踪了解Socket API与系统调用的关系等。

二、简要总结网络协议栈

Linux下网络协议栈分析

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

 

 

三、试题

选择题

1.在OSI参考模型的物理层、数据链路层、网络层传送的数据单位分别为 (A) 

A、比特、帧、分组      B、比特、分组、帧  

C、帧、分组、比特      D、分组、比特、帧

2.计算机网络中使用最广泛的交换技术是(C ) 
A.电路交换 B.报文交换 C.分组交换 D.线路交换

3.ARP 协议的功能是(A)

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

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

C.根据域名查询 IP 地址 

D.根据 IP 地址查询域名

4.【2009年408真题】在OSI参考模型中,自下而上第一个提供端到端服务的层次是 (B)

A、数据链路层     B、传输层

C、会话层            D、应用层 

5.【2012考研真题】对地址转换协议(ARP)描述正确的是(B)
A、ARP封装在IP数据报的数据部分   B、ARP是采用广播方式发送的
C、ARP是用于IP地址到域名的转换   D、发送ARP包需要知道对方的MAC地址

简答题

6.请简述TCP建立连接的三次握手。

参考答案:

第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

 
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。  
完成三次握手,客户端与服务器开始传送数据
如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?_第2张图片

 

 7.请简要描述Socket套接字是什么。

参考答案:

传输层实现端到端的通信,因此,每一个传输层连接有两个端点。那么,传输层连接的端点是什么呢?不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。传输层连接的端点叫做套接字(socket)。根据RFC793的定义:端口号拼接到IP地址就构成了套接字。所谓套接字,实际上是一个通信端点,每个套接字都有一个套接字序号,包括主机的IP地址与一个16位的主机端口号,即形如(主机IP地址:端口号)。例如,如果IP地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23)。
总之,套接字Socket=(IP地址:端口号),套接字的表示方法是点分十进制的IP地址后面写上端口号,中间用冒号或逗号隔开。每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定。
 
8.请写出OSI参考模型的网络层次划分。
参考答案:
如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?_第3张图片

 

 

 

 

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