如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?
A 课程大纲
本课程内容大纲如下:
1 互联网概述
- 1.1 课程内容简介
- 1.2 网络协议基础
- 1.3 上网浏览网页背后的网络通信过程
- 1.4 实验环境安装配置
- 1.5 网络相关命令
2 Socket网络编程
- 2.1 编译、构建和调试
- 2.2 Socket接口
- 2.3 UDP范例代码
- 2.4 TCP范例代码
3 TCP协议
- 3.1 TCP协议概述
- 3.2 Linux网络协议栈源代码简介
- 3.3 Linux系统的编译、构建和调试
- 3.4 TCP协议源代码分析
4 IP协议及路由表
- 4.1 IP协议基础
- 4.2 路由表
- 4.3 路由转发举例
- 4.4 IP协议栈源代码解析
- 4.5 路由协议简介
- 4.6 网络层数据传输路径解析
5 ARP协议及ARP缓存
- 5.1 ARP协议基础
- 5.2 ARP解析的过程
- 5.3 ARP解析在网络传输过程中的作用
- 5.4 ARP协议栈源代码解析
6 二层交换网络及转发过滤数据库
- 6.1 以太网基础
- 6.2 交换机的学习、转发和过滤数据库
- 6.3 常见二层协议
- 6.4 数据链路层在Linux网络协议栈中的一些关键代码分析
7 DNS协议及域名存储与解析
- 7.1 DNS协议基础
- 7.2 DNS域名的存储
- 7.3 DNS域名解析过程分析
8 互联网架构设计背后的渊源
- 8.1 互联网架构设计的最初动机与核心目标
- 8.2 互联网架构设计的具体目标及背后重要权衡
B 试题
【】中表示章节和题目来源
一 选择题
-
【1,408-2019】OSI参考模型的第5层(自下而上)完成的主要功能是(C)
A.差错控制
B.路由选择
C.会话管理
D.数据表示转换
-
【2,原创】在Socket API中,以下哪个函数是用于获取传入连接请求的?(D)
A.connect
B.bind
C.listen
D.accept
-
【3,原创】下面关于TCP的叙述哪个是错误的?(A)
A.TCP提供一种面向连接的、可靠的字节流服务
B.TCP的滑动窗口是面向字节的
C.TCP的三次握手是由Socket中connect和listen函数完成的
D.TCP通过使用端口号来完成进程到进程的通信
-
【4,408-2017】若将网络21.3.0.0/16划分为128个规模相同的子网,则每个子网可分配的最大IP地址个数为(C)
A.254
B.256
C.510
D.512
-
【5,原创】以下哪条描述是错误的?(B)
A.ARP协议用于将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位)
B.ARP协议从IP层收到IP数据包和next hop地址。
C.ARP协议查找IP数据包的next hop地址时,若找到且状态是RESOLVED,将从项目中提取硬件MAC地址。将分组连同硬件MAC地址一起发送到数据链路层
D.ARP缓存查询过程在Socket的connect函数中完成
-
【6,408-2015】下列关于CSMA/CD协议的叙述中,错误的是(B)
A.边发送数据,边检测是否发生冲突
B.适用于无线网络,以实现无线链路共享
C.需要根据网络跨距和数据传输速率限定最小帧长
D.当信号传播延迟趋近0时,信道利用率趋近100%
-
【7,408-2016】假设所有域名服务器均采用迭代查询方式进行域名解析。当H4访问规范域名为www.abc.xyz.com的网站时,域名服务器201.1.1.1在完成该域名解析过程中,可能发出DNS查询最少和最多次数分别是(C)
A.0,3
B.1,3
C.0,4
D.1,4
-
【8,原创】下列叙述中,错误的是(B)
A.互联网架构设计的核心目标是开发一种能够将现存不同类型的网络互连起来充分利用(复用)的有效技术。
B.互联网架构选择的方案是把状态信息保存在网络中间的分组交换节点上。在这种情况下,为了使信息不丢失,就需要把这些状态信息在传输节点之间复制。
C.定级是开展网络安全等级保护工作的“基本出发点” ,定级要素包括受侵害的客体和客体的受侵害程度。
D.网络安全等级保护工作包括定级、备案、建设整改、等级测评、监督检查五个阶段。
二 简答题
-
【2,原创】简述Socket中socket、connect、bind、listen、accept函数的功能。
参考答案:
-
socket:创建一个新的套接字
-
connect:同远程服务器建立主动连接
-
bind:为套接字指明一个端口号,然后等待连接
-
listen:面向连接的服务器使用它将一个套接字置为被动模式,并准备接收传入连接。
-
accept:获取传入连接请求,返回新的连接的套接字描述符。
-
-
【3,原创】简述TCP数据传输过程
TCP将用户数据打包(分割)成报文段;发送后启动一个定时器;另一端对收到的数据进行确认,对失序的重新排序,丢弃重复数据;TCP提供端到端的流量控制,并计算和验证一个强制性的端到端检验和。
-
【5,原创】简述ARP协议进行地址解析的过程
参考答案:
保存睡眠状态,直到从IP层收到IP数据包、下一跳地址和接口号。收到IP数据包后检查高速缓存表,查找该IP数据包的下一跳地址。
若找到且状态是已发送请求且已经应答,则从项目中提取硬件MAC地址,将分组连同硬件MAC地址一起发送到数据链路层;若状态是已发送请求但未应答,把分组放入相应的队列;若未找到,创建一个高速缓存项目,创建一个队列将分组放入队列,然后向局域网广播ARP请求。
-
【7,原创】简述DNS的递归查询过程,并且指出一般在什么情况下采用递归查询。
参考答案:
递归查询是指如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份, 向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
主机向本地域名服务器的查询一般都是采用递归查询。
三 综合
-
【5,《计算机网络》第七版,谢希仁】设某路由器建立了如下路由表:
目的网络 子网掩码 下一跳
128.96.39.0 255.255.255.128 接口m0
128.96.39.128 255.255.255.128 接口m1
128.96.40.0 255.255.255.128 R2
192.4.153.0 255.255.255.192 R3
*(默认) —— R4
现共收到5个分组,其目的地址分别为:
(1)128.96.39.10
(2)128.96.40.12
(3)128.96.40.151
(4)192.4.153.17
(5)192.4.153.90
试分别计算其下一跳。
参考答案:
(1)分组的目的站IP地址为:128.96.39.10。先与子网掩码255.255.255.128相与,得128.96.39.0,可见该分组经接口m0转发。
(2)分组的目的IP地址为:128.96.40.12。
① 与子网掩码255.255.255.128相与得128.96.40.0,不等于128.96.39.0。
② 与子网掩码255.255.255.128相与得128.96.40.0,经查路由表可知,该项分组经R2转发。
(3)分组的目的IP地址为:128.96.40.151,与子网掩码255.255.255.128相与后得128.96.40.128,与子网掩码255.255.255.192相与后得128.96.40.128,经查路由表知,该分组转发选择默认路由,经R4转发。
(4)分组的目的IP地址为:192.4.153.17。与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.0,经查路由表知,该分组经R3转发。
(5)分组的目的IP地址为:192.4.153.90,与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.64,经查路由表知,该分组转发选择默认路由,经R4转发。
-
【3,《计算机网络》第七版,谢希仁】试用例子说明为什么在运输连接建立时要使用三次握手。说明不这样做可能会出现什么情况
参考答案:3次握手完成两个重要功能,既要双方做好发送数据的准备工作(双方都知道彼此已经准备好),也要运行双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。
假定B决定给A发送一个连接请求分组,A收到了分组,并发送了确认分组,按照两次握手的协定,A认为连接已经成功建立了,可以开始发送数据分组,可是B在A的应答分组在传输中被丢失的情况下,将不知道A是否已经准备号,不知道A建议什么样的序列号,B甚至怀疑A是否收到了自己的请求连接分组,在这种情况下还未建立成功,将忽略A发送过来的任何数据,只等待连接确认分组
而A发送的分组超过之后,重复发送同样的分组,这样就形成了死锁
心之所向,素履以往