面试复习——计网篇(非重点)

gaomingyang
36
2025-07-10

省流版:计算机保研/考研面试题——计算机网络篇_计算机网络保研面试题 - CSDN博客

1 计算机网络体系结构

1.1 OSI和TCP/IP模型各个层之间的协议和功能

  • 应用层:为应用程序提供数据传输服务,数据单位为报文。协议有HTTP、DNS、FTP、SMTP

  • 传输层:为进程提供端到端的数据传输服务,包括复用/分用、可靠数据传输、流量控制、差错控制等,数据单位为报文段。协议有TCP、UDP

  • 网络层:为主机提供数据传输服务,包括IP选址、路由选择等,数据单位为数据报。协议有IP、ICMP

  • 数据链路层:为同一链路的主机提供数据传输服务,包括封装成帧、差错控制、流量控制等,数据单位为,协议有 ARP、RARP

  • 物理层:在物理介质上传输数据比特流,尽可能屏蔽传输媒介和通信手段的差异,使数据链路层感觉不到这些差异。协议有IEEE 802

    表示层:数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题

    会话层:建立并管理会话

1f63a8e5a60bc7d3dee2a1ec75c6b33.png

1.2 计算机网络为什么要分层

  • 各层相互独立,下层为上层提供服务,上层无需知道下层如何实现,只需使用下层提供的接口,这样可以将复杂的问题分解为多个容易处理的子问题

  • 灵活性好,当某层需要修改时,只需保持接口不变,不影响其他层的使用

  • 易于实现和维护,整个系统被划分为多个独立的子系统

  • 促进标准化工作,因为每层的功能及其提供的服务可以通过协议来说明,如RFC文档

  • 分层使得计算机网络系统具有很强的可扩展性

  • 分层网络协议的设计和实现使得网络运营商、网络设备供应商和网络应用开发商能够各司其职,功能分明,有益于网络的推广

1.3 时延有哪些

  • 处理时延(processing delay):检查分组头部、差错检测、路由等处理所需的时间

  • 排队时延(queuing delay):分组在链路上等待传输时所需的时间

  • 传输时延(transmission delay):将所有分组的比特推向链路所需的时间

  • 传播时延(propagation delay):从当前链路起点到下一个路由器传播所需要的时间

1.4 计算机网络和分布式系统的异同

  • 同:

    • 分布式系统是建立在计算机网络之上的,他们在物理结构上基本相同

    • 他们都具有通信和资源共享的功能

  • 异:

    • 计算机网络是分布式系统的基础,分布式系统是计算机网络技术发展的高级阶段(应用

    • 他们的区别主要在高层软件上,分布式系统是建立在网络上的软件系统,用户不必关心网络环境中的资源分布和联网计算机的差异

2 应用层

应用层.png

2.1 网络应用模型有哪些,优缺点

  • C/S:有一个主机作为服务器,负责接受客户端的请求

    • 优点:随时提供服务、方便管理

    • 缺点:可扩展性差、服务器压力、会出现单点失效问题

  • P2P:每个主机既是客户端,又是服务器

    • 优点:减轻了服务器的压力,提高了资源利用效率可扩展性好;网络鲁棒性强,不会出现单点失效问题;去中心化

    • 缺点:消息延迟(消息是随机转发给其他节点,需多次转发才能到达)、消息重复(每个节点都 转发,会重复收到消息)、不方便管理

2.2 DNS域名解析的过程

  • 域名解析协议,将域名映射成为IP,基于UDP协议

    • 1、客户端在本地缓存中查找,如果没有找到,则将查询请求发给DNS服务器

    • 2、首先发送给本地DNS服务器,本地DNS服务器先在管辖的记录表查找,再在缓存中查找。如果找不到,则本地DNS服务器将请求发送给根域名服务器

    • 3、根域名服务器返回下一级域名服务器,再依次递归查询,得到域名对应的IP地址

2.3 为什么DNS采用分布式层次数据库

集中式的问题包括:单点故障、通信容量有限、远距离的集中式数据库查询慢、不便于维护、可扩展性差

2.4 HTTP和HTTPS

  • HTTP:超文本传输协议,定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器,基于TCP

    • HTTP的特点:无状态(不记录用户访问状态,一般用cookie记录)、可以是持久性连接(所有请求和响应经相同的TCP连接发送),也可以是非持久性连接(每个请求/响应对是经一个单独的TCP连接发送)

    • HTTPS:使用SSL协议对HTTP传输的数据进行加密,比较安全

2.5 点击一下网页会发生什么

  • DNS域名解析

  • 通过三次握手建立TCP连接

  • 客户端发起HTTP请求

  • 服务器响应请求

  • 浏览器解析HTML代码,并请求代码中的资源

  • 通过四次挥手断开TCP连接

2.6 Cookie和Session有什么区别

  • 存放位置不同:cookie存放在客户端;session存放在服务器

  • 安全性不同:cookie不安全,别人可以用本地的cookie进行非法登录

  • 数据大小限制不同:cookie的大小有限制;session没有限制

3 传输层

传输层.png

3.1 TCP和UDP的异同点

  • 同:都是传输层的协议,都是为进程间的端对端数据传输提供服务

  • 异:

    • TCP是面向连接的,需要通过三次握手建立连接,四次挥手接除连接;UDP是无连接的,即发送数据之前不需要建立连接

    • TCP是可靠数据传输,它通过超时重传、数据校验等方法来确保无差错;UDP是不可靠的,会出现丢失、重复等差错

    • TCP的资源负载比较大,UDP的资源负载比较小

    • TCP由于有流量控制、拥塞控制、超时重传等机制,传输速度比UDP

    • TCP的报文段的头部(20bytes)比UDP(8bytes)的长

3.2 三次握手和四次挥手的过程

  • 三次握手:

    • 客户端发送一个SYN报文段,发起TCP连接

    • 服务器在收到SYN后进行响应,回复一个SYN-ACK报文段

    • 客户端在收到服务器的响应后,回复一个ACK报文段,表示收到

三次握手.png

  • 四次挥手:

    • 客户端发送FIN,准备断开连接

    • 服务器在收到FIN后,回复一个ACK,进入半关闭状态

    • 待服务器没有向客户端发送的数据时,服务器发送FIN

    • 客户端收到FIN后,回复一个ACK,然后等待2MSL后关闭,服务器收到ACK后也关闭

四次挥手.png

3.3 为什么握手要三次,挥手要四次

  • 三次握手:要保证连接是双工的至少要握手3次。如果握手2次,则只能保证服务器能收到客户端的信息,而不能保证客户端能收到服务器的信息;如果握手4次,则多余了。

  • 四次挥手:还是因为连接是双工的,前两次只是保证了客户端发送的数据传输完了,服务器需要等它发送的数据也传输完,再断开连接。

3.4 为什么四次挥手时,客户端在发送ACK后需等待2MSL

因为网络是不可靠的,客户端回复给服务器的ACK可能会丢失,如果丢失的话,服务器会重新发送FIN,客户端需要等一会

MSL指一个片段在网络中最大的存活时间;2MSL:发送 + 回复所需的最大时间

3.5 TCP如何保证可靠传输

  • 校验和机制

  • 序列号:TCP将数据中的每个字节编上序号

  • 累积确认:接收方收到数据后,都会发送一个带有期待下一次接收的序号的ACK

  • 超时重传:发送方每发送一个报文段,都要设置一次计时器,如果到一定时间后还未收到ACK,则重传

    • 计时器重传间隔一般比RTT大一点,TCP采用指数加权移动平均算法估算RTT

      RTT:往返时间,即一个报文发出的时间与收到对应ACK的时间的间隔

  • 快速重传:防止超时重传周期过大,发送方如果收到连续3个冗余的ACK,则立即重传

3.6 TCP的流量控制

  • 作用:使发送方的发送速率与接收方的应用程序读取速率相匹配防止发送方发得太快

  • 实现:接收方根据自己的接收缓存大小,通过报文段头部的接收窗口rwnd字段,动态地调整发送方的发送速率

3.7 TCP拥塞控制

  • 拥塞控制:发送方根据通信的时延,估算出网络的拥塞程度,计算一个拥塞窗口cwnd,来减小发送速率,防止网络中的路由器或链路过载

    • 慢启动:TCP连接刚建立时,设置拥塞窗口为1 MSS;之后每收到一个新的ACK,拥塞窗口就加1,这样的话,每个RTT内拥塞窗口就呈指数增加;当拥塞窗口达到一个阈值时,进入拥塞避免阶段

      慢启动.png

    • 拥塞避免:每经过一个往返时延RTT,拥塞窗口就增加一个MSS,即线性增长;当出现超时(网络拥塞)时,让慢启动阈值等于当前拥塞窗口的一半,并进入慢启动阶段

    • 快速恢复:发送方收到连续3个冗余ACK时,让慢启动阈值等于当前拥塞窗口的一半,当前窗口再减半,并进入拥塞避免阶段

    • 快速重传:防止超时重传周期过大,发送方如果收到连续3个冗余的ACK,则立即重传

      快速重传.png

3.8 TCP的流量控制和拥塞控制有什么异同

  • 同:都是通过改变发送方的发送速率,以此达到控制的

  • 异:

    • 流量控制解决的是发送方和接收方速率不匹配的问题,是通过接收窗口来实现的

    • 拥塞控制解决的是避免网络负载过大的问题,是通过拥塞窗口来实现的

4 网络层

网络层.png

4.1 路由器有什么作用

  • 路由选择:根据路由协议构造出路由表,确定分组从源主机到目的主机的最佳路径

  • 分组转发:根据转发表,将分组从路由器的输入端口转移到合适的输出端口

4.2 路由算法有哪些

  • 链路状态路由算法(如OSPF算法)

  • 距离-矢量路由算法(如RIP算法)

  • 层次路由:将网络分为若干个自治系统,同一自治系统内的路由器运行相同的路由协议。每个自治系统有一些网关路由器,负责自治系统之间的路由。

    • 内部网关协议:自治系统内的路由协议,如OSPF、RIP

    • 外部网关协议:自治系统间的路由协议,如BGP

4.3 DHCP协议

  • 动态主机配置协议,即插即用,如手机带在身上,移动一定距离后,需要接入新的路由或者基站,IP地址就自动更新了

  • 协议过程:手机先播DHCP发现报文,服务器响应一个DHCP提供报文,手机再请求IP地址,最后服务器发送一个ACK,携带有分配的IP地址

4.4 ICMP协议

互联网控制报文协议,用于差错检验和网络探询,如ping

4.5 ipv6出现的动力是什么,报文头哪些字段发生了变化

  • 动机:IPv4的IP地址数量不够用了、改进报文头,加快转发速率

  • 报文头:20字节-->40字节、源地址和目的地址从32位-->128位,去除了校验和

5 数据链路层

5.1 IP地址和MAC地址的区别

  • IP地址是网络层的地址,是分层次的;MAC地址是数据链路层的地址,是平面式的

  • IP地址是逻辑地址;MAC地址是物理地址

  • IP地址不具备唯一性;MAC地址具有唯一性

  • MAC帧中封装了IP数据报

5.2 ARP协议

  • 解决的问题:在同一个局域网内,如何在已知目的接口的IP的情况下,确定其MAC地址

  • ARP是一个即插即用的协议,每个节点(主机或路由器)维护一个ARP表,存放节点的IP/MAC映射关系;假设A要给B发一个数据,则A广播一个分组,其中包含B的IP,B接收到后,IP匹配成功,向A回复其MAC地址,A将该IP/MAC映射信息记录下来。

动物装饰