网资酷

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 103|回复: 2

计算机网络/系统面试题集

[复制链接]

4

主题

8

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2022-12-11 16:37:25 | 显示全部楼层 |阅读模式
计算机网络
一、基本理论
1. 什么是网络,什么是计算机网络
1)网络:网络是将多个节点通过特定的介质联系起来的一种关系,如铁路网、交通网、人际关系网。网络可以是具体的,也可以是抽象的。
2)计算机网络:以计算设备作为节点,通信线路作为介质的网络。
2. 计算机网络有什么功能
1)实现数据与信息的传输 2)实现资源共享 3)实现资源高效配置,打破时空限制
3. 网络按照大小可以如何分类
可以分为局域网、城域网、广域网
4. 网络性能衡量指标有哪些
1)带宽:通信信道支持的最高数据频率(Mb/s, kb/s, Gb/s)
2)传输速率:每秒传输多少个bit数据
3)吞吐量:单位时间内通过某个网络的数据量
4)时延


  • 传输时延:发送数据时候,到完成发送
  • 传播时延:电磁波、电信号传输需花费的时间
  • 处理时延:网络数据交换节点存储、转发所必需的处理时间
  • 排队时延:网络节点队列分组、排队所经历的时间
5. 什么是服务器、客户端
客户端:请求服务的一方
服务器:提供服务的一方
6. 什么是网络通信协议
网络通信协议是数据组织、编码、传输、校验、解码的规则,用来保证网络通信过程数据正确传输,以及通信双方对信息的正确理解。
7. 什么是OSI/ISO七层参考模型,写出每层名称及其作用
ISO(国际标准化组织)
OSI(开放系统互联模型)
OSI/ISO七层参考模型是国际标准化组织提出的网络通信参考模型,将网络通信分为七个层次(步骤),每一层及其作用是:


  • 应用层 : 提供用户服务,具体功能有程序体现
  • 表示层 : 数据的压缩优化和加密
  • 会话层 : 建立应用连接,选择合适的传输服务
  • 传输层 : 提供传输服务,进行流量控制(进程到进程通信)
  • 网络层 : 路由选择,网络互连(负责主机到主机通信,路由、分段)
  • 数据链路层 : 进行数据交换,控制具体消息收发,链路连接(相邻主机通信)
  • 物理层 : 提供物理硬件传输,网卡,接口设置,传输介质(定义机械、电气、电磁等物理标准)
8. OSI七层参考模型的优缺点有哪些
1)优点


  • 建立了统一的网络工作流程
  • 每个层次功能清晰,各司其职
  • 降低了耦合度,方便了开发流程
2)缺点


  • 分层过细
  • 只定义了框架模型,没有实现
9. 列举TCP/IP模型包含的层次
应用层、传输层、网络层、数据接口层
10. 什么是数据封装、解封
封装:每个层次接收上层传递的数据,加入本层的控制信息,传递给下一层 解封:每个层次接收下层传来的数据,读取并去掉控制信息,将数据送给上一层处理
11. 在网络通信中,数据包如何进行路径选择
1)网络节点分配一个IP地址(全世界独一无二的) 2)数据包中,包含了数据的源地址、目标地址 3)根据路由设备中路由表记录的路径信息,将数据投递给下一站,循环直至数据送达对方
12. IPv4地址表示方式
IPv4使用32bits来表示一个IP地址,如:


10101100 00101000 01000110 11111000

为了方便阅读,将IP地址每8bits作为一组,转换成10进制数字,每个数字间加一个点,这种表示方式叫点分十进制表示法,上面的二进制地址表示为十进制点分表示法为:






172.40.70.248

13. 有哪些特殊IP地址


  • 127.0.0.1:本机测试IP
  • 0.0.0.0:本机自动获取能够使用的网卡IP
  • 192.168.1.0:表达一个网段
  • 192.168.1.1:表示网关地址
  • 192.168.1.255:广播地址
14. 什么是端口号,端口号的范围是什么

1)定义。端口号是一个16bit大小的整数,是网络地址的一部分,用于区分主机上不同的网络应用,工作与传输层。
2)端口号的范围是1~65535,其中1~255为众所周知的公共程序端口;256~1023 为系统应用端口;1024及以上为自定义端口。
15. ping命令的作用是什么

测试主机与另一台主机的联通性。
16. IP层有哪些主要协议,作用是什么

1)IP协议:路由、分段
2)ICMP协议:侦测网络故障
3)ARP/RARP协议:地址解析(IP解析为物理地址)和逆向地址解析(将物理地址解析为IP地址)
17. 传输层主要有哪些协议,特点是什么

1)传输层主要协议有TCP和UDP协议
2)特点

  • TCP:面向连接;可靠传输;传输效率较低;适合与大量、可靠性要求较高的数据传输;
  • UDP:面向非连接;不可靠传输;传输效率较高;适合少量、可靠性要求不高的数据传输。
18. 描述三次握手过程

1)客户端向服务端发起连接请求 2)服务端收到客户端请求报文(消息序列号),回复消息表示可以连接 3)客户端收到服务端回复,再从发送报文最终建立连接
19. 描述四次挥手的过程

1)主动方发送报文提出断开连接 2)被动方接收到断开请求,立即返回消息表示开始准备断开 3)被动方处理消息完毕,完成断开准备,再次发送报文表示可以断开 4)主动方收到断开指令,发送报文最终确认断开
20. 什么是socket,作用是什么

socket是用于网络计算机通信的一种接口,利用socket在系统软件级实现数据收发处理。它最早由加州大学伯克利分校开发,是目前互联网通信的基础、标准。要实现在多台计算机之间进行通信,必须使用socket。
21. 什么是流式套接字

1)面向连接、可靠传输、数据无差错的收发序列 2)提供流量控制功能 3)数据被看做字节流,长度无限制,多个数据包的数据持续流入
22. accept函数的作用是什么

accept函数阻塞并等待客户端连接请求,如果有新的连接,该函数才返回,返回值为一个新的socket(用于数据通信)和客户端地址。
23. 流式套接字为什么会产生粘包问题,如何解决

1)流失套接字数据被看做字节流,没有固定长度,多个数据包的数据持续流入,当后一个包的数据紧接着前一个包的数据,就产生了粘包。
2)解决方法

  • 给数据包头部、尾部增加特殊标记,用来表示开头、结尾
  • 在每个数据包头部加一个长度标记
24. 什么是广播

一点发送,该网段内所有的节点都接收的通信方式称为广播。
25. 广播地址如何计算

当主机地址全为1时,即为该网段的广播地址。例如:






IP地址: 192.168.1.3

掩码:255.255.255.0

IP地址二进制表示:11000000 10101000 00000001 00000011

网络地址:11000000 10101000 00000001 00000000

广播地址:11000000 10101000 00000001 11111111
广播十进制点分表示:192.168.1.255

26. 应用层有哪些常用协议


  • 域名系统(Domain Name System,DNS):用于实现网络设备名字到IP地址映射的网络服务;
  • 文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能;
  • 简单邮件传送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能;
  • 超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现WWW服务;
  • 简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备;
  • 远程登录协议(Telnet):用于实现远程登录功能;
  • DHCP:动态IP地址分配。
27. 如果一个数据包,接收地址填写错误,会出现什么现象
每个数据包都有一个对应的TTL值,每经过一次路由转发,该值会减少1,减少到0时,该数据包就不再被转发下去,直接向原地址返回一个数据不可达的错误。
28. 什么是阻塞I/O和非阻塞I/O
1)阻塞I/O:在发出某个函数(或系统调用)后,因为某种条件没有达成,要等到操作系统内核返回操作结果,才继续执行后面的代码,如果操作系统不返回结果,则一直等待;
2)非阻塞I/O:当用户进程发出I/O操作时,如果kernel中的数据还没有准备好,那么它并不会阻塞,而是立刻返回一个error。从用户进程角度讲,并不需要等待,而是马上就得到了一个结果。可以通过程序控制,需要进行下一次I/O操作,直到操作成功为止。
29. 什么是I/O多路复用
I/O多路复用是指一个进程与多个I/O之间进行通信,一个进程可以监视多个描述符,一旦某个描述符就绪(IO可以进行读写),则程进行相应的读写,从而实现单个程序处理多个网络连接I/O。I/O多路复用能提高程序效率,避免单个I/O阻塞造成其它I/O无法使用的情况。
30. Python实现I/O多路复用有几种方式,各自特点是什么
1)select方式。利用select调用,程序监控多个IO描述符。select方式开销较大,效率较低,而且支持的文件描述符数量较小,默认是1024;
2)poll方式。poll方式与select类似,管理多个文件描述符进行轮询,然后根据文件描述符的状态进行处理。poll没有最大数量限制;
3)epoll方式。epoll是Linux内核为处理大批量文件描述符而作了改进的poll,能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,效率较高,I/O数量无最大数限制。
31. 什么是epoll水平触发、边沿触发模式
1)水平触发:当被监控的文件描述符上有可读写事件发生时,epoll会通知处理程序去读写。水平出发模式中,如果没有把数据一次性全部读写完(如读写缓冲区太小),那么下次调用epoll时还会通知,如果你一直不去读写,它会一直通知;
2)边沿触发:当被监控的文件描述符上有可读写事件发生时,epoll_wait只通知一次,直到该文件描述符上出现第二次可读写事件才会重新发出通知。

并发编程
一、基础知识
1. 什么是并发执行和并行执行
1)并发:一段时间内几个程序都在运行,但一个时刻点只有一个程序在处理机上运行 2)并行:利用计算机多核资源,多个任务同时执行
2. 什么是进程,进程有什么特点
1)进程的定义


  • 进程是正在运行的程序,或一个程序一次运行过程
  • 有独立的地址空间,操作系统通过进程管理
  • 进程是操作系统分配资源的基本单位
2)进程的特点


  • 动态性:动态性是进程最基本的特征,是程序执行的过程,由创建而产生,由调度而执行,得不到资源而暂停,由撤销而终止;
  • 并发性:是进程、OS重要的特征。多个进程实体同存于内存中,能在同一段时间内同时运行;
  • 独立性:进程是独立运行的一个基本单位,即独立获得资源、独立调度的单位;
  • 异步性:进程各自按照自己独立的、不可预知的速度执行(异步性),OS采取各种措施,保证各程序间正常协调执行。
3. 什么是进程控制块
进程控制块是系统中的一个内存区域,存放操作系统用于描述进程情况及控制程序运行所需的全部信息。包括:


  • 进程标识信息:进程Id,进程名称;
  • 进程调度信息:进程状态、优先级、进程关系;
  • 进程控制信息:资源清单,信号量,互斥量(处于两个状态之一的变量);锁信息,虚拟地址;
  • 处理机信息:通用寄存器(CPU中用于计算、保存数据),执行计数器。
4. 进程有哪些状态,如何进行转换的
1)进程状态包括:


  • 就绪:获得了处理机之外的一切资源,等待处理机执行
  • 运行:正在处理机上执行
  • 阻塞:又称挂起/等待,等待某个事件(IO操作),此时获得处理机也无法执行
2)进程状态转换


  • 就绪-->运行:调度
  • 运行-->阻塞:等待某个事件发生,IO请求
  • 阻塞-->就绪:等待的事件已经发生
  • 运行-->就绪:时间片使用完
  • 阻塞 不能直接 转换到 运行态;就绪 不能直接 转换到 阻塞状态
5. fork函数的作用是什么
fork函数用来创建进程,该函数调用一次,会产生两次返回(父进程和子进程各一次),返回值0表示代表执行子进程中;返回值大于0表示父进程中,该返回值为子进程ID;返回值-1表示调用失败。
6. 进程间通信有哪些方式
1)管道(pipe)。管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 2)命名管道(FIFO)。有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 3)消息队列(Message Queue)。消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。 4)共享存储(Shared  Memory)。共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC  方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。 5)信号量(Semaphore)。信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。 6)套接字Socket:套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
7. 什么是线程
线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
8. 线程的特点是什么
1)轻量级实体。线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证独立运行的资源。
2)独立调度和分派的基本单位。在多线程OS中,线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位。由于线程很“轻”,故线程的切换非常迅速且开销小(在同一进程中的)。 3)可并发执行。在一个进程中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行;同样,不同进程中的线程也能并发执行,充分利用和发挥了处理机与外围设备并行工作的能力。 4)共享进程资源。在同一进程中的各个线程,都可以共享该进程所拥有的资源,这首先表现在:所有线程都具有相同的地址空间(进程的地址空间),,还可以访问进程所拥有的已打开文件、定时器、信号量机构等。由于同一个进程内的线程共享内存和文件,所以线程之间互相通信不必调用内核。
9. 进程和线程有什么区别
1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。 2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。 3)调度和切换:线程上下文切换比进程上下文切换要快得多。 4)在多线程OS中,进程不是一个可执行的实体。 5)进程创建、销毁、调度开销比线程更大。
回复

使用道具 举报

1

主题

4

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2025-5-31 05:17:04 | 显示全部楼层
发发呆,回回帖,工作结束~
回复

使用道具 举报

3

主题

8

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2025-6-21 11:05:41 | 显示全部楼层
回个帖子,下班咯~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网资酷

GMT+8, 2025-7-9 13:59 , Processed in 0.086751 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表