计算机网络常见面试题及解答
以下是计算机网络中常见的面试题及解答,按主题分类:
---
## **一、基础概念**
### **1. OSI 七层模型和 TCP/IP 模型的区别是什么?**
**答:**
- **OSI 七层模型:**
- 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
- **TCP/IP 模型:**
- 应用层、传输层、网络层、网络接口层。
- 区别:
- OSI 模型更具理论性,分为七层。
- TCP/IP 模型基于实际协议实现,简化为四层。
---
### **2. TCP 和 UDP 的区别?**
**答:**
- **TCP:**
- 面向连接,提供可靠数据传输(确认机制、重传机制)。
- 应用:HTTP、HTTPS、FTP。
- **UDP:**
- 无连接,数据传输速度快,无确认机制。
- 应用:DNS、视频流、实时通信。
---
### **3. 三次握手和四次挥手的过程是什么?**
**答:**
- **三次握手:**
1. 客户端发送 SYN 报文(SYN=1, seq=x)。
2. 服务端回复 SYN+ACK 报文(SYN=1, ACK=1, seq=y, ack=x+1)。
3. 客户端发送 ACK 报文(ACK=1, seq=x+1, ack=y+1)。
- **四次挥手:**
1. 客户端发送 FIN 报文,进入 FIN-WAIT-1 状态。
2. 服务端回复 ACK 报文,进入 CLOSE-WAIT 状态。
3. 服务端发送 FIN 报文,进入 LAST-ACK 状态。
4. 客户端回复 ACK 报文,进入 TIME-WAIT 状态,最后关闭。
---
### **4. HTTP 和 HTTPS 的区别?**
**答:**
- HTTP 是明文传输,HTTPS 使用 SSL/TLS 加密。
- HTTPS 默认端口为 443,HTTP 为 80。
- HTTPS 提供数据完整性、机密性和身份认证。
---
### **5. 什么是 IP 地址?**
**答:**
- IP 地址是网络设备的唯一标识,由 **IPv4** 和 **IPv6** 两种形式。
- **IPv4**:32 位,分为 A/B/C/D/E 类地址。
- **IPv6**:128 位,更大地址空间,支持更多设备。
---
## **二、协议相关**
### **6. ARP 和 RARP 的作用是什么?**
**答:**
- **ARP (Address Resolution Protocol)**:
- 根据 IP 地址获取对应的 MAC 地址。
- **RARP (Reverse Address Resolution Protocol)**:
- 根据 MAC 地址获取对应的 IP 地址(现已被 DHCP 替代)。
---
### **7. 什么是子网掩码?如何划分子网?**
**答:**
- **子网掩码:**
- 用于区分网络部分和主机部分,例如 255.255.255.0 表示前 24 位为网络地址。
- **划分子网:**
- 通过调整子网掩码的网络位数(CIDR)来划分多个小子网。
---
### **8. DNS 解析的流程是什么?**
**答:**
1. 浏览器检查缓存。
2. 操作系统查询本地缓存(如 hosts 文件)。
3. 查询本地 DNS 服务器。
4. 本地 DNS 服务器递归查询根域名服务器。
5. 根服务器指向顶级域名服务器(TLD)。
6. TLD 指向权威域名服务器,返回 IP。
---
### **9. HTTP 状态码的含义?**
**答:**
- **1xx:信息性响应**,如 101 Switching Protocols。
- **2xx:成功**,如 200 OK。
- **3xx:重定向**,如 301 Moved Permanently, 302 Found。
- **4xx:客户端错误**,如 404 Not Found, 403 Forbidden。
- **5xx:服务器错误**,如 500 Internal Server Error, 502 Bad Gateway。
---
## **三、性能优化**
### **10. 什么是 CDN?有什么作用?**
**答:**
- **CDN (Content Delivery Network)** 是一组分布在不同地理位置的服务器网络。
- **作用:**
- 缓存静态资源,降低服务器负载。
- 加速内容分发,减少延迟。
- 提高用户访问的可靠性。
---
### **11. 什么是负载均衡?有几种实现方式?**
**答:**
- **负载均衡:** 分发网络流量到多个服务器以提高可用性。
- **实现方式:**
- **DNS 负载均衡**:通过解析不同 IP。
- **反向代理**:Nginx/HAProxy。
- **硬件负载均衡**:F5。
- **应用层负载均衡**:通过应用逻辑分发。
---
## **四、网络安全**
### **12. 什么是 CSRF 和 XSS?如何防御?**
**答:**
- **CSRF(跨站请求伪造):** 利用用户身份发送恶意请求。
- **防御:** 使用 CSRF Token,验证 Referer。
- **XSS(跨站脚本攻击):** 向网站注入恶意脚本。
- **防御:** 输入过滤和输出转义。
---
### **13. 什么是对称加密和非对称加密?**
**答:**
- **对称加密:**
- 使用相同密钥加解密,速度快。
- 如:AES、DES。
- **非对称加密:**
- 使用公钥和私钥,加密和解密用不同密钥。
- 如:RSA、ECC。
---
### **14. 什么是防火墙?有几种类型?**
**答:**
- **防火墙:** 保护网络免受未经授权的访问。
- **类型:**
- 包过滤防火墙。
- 应用层防火墙。
- 状态检测防火墙。
- 下一代防火墙(NGFW)。
---
如果需要针对某个具体方向深入学习,可以进一步扩展相关内容!
相关文章:
计算机网络常见面试题及解答
以下是计算机网络中常见的面试题及解答,按主题分类: --- ## **一、基础概念** ### **1. OSI 七层模型和 TCP/IP 模型的区别是什么?** **答:** - **OSI 七层模型:** - 应用层、表示层、会话层、传输层、网络层、数…...
举例说明AI模型怎么聚类,最后神经网络怎么保存
举例说明怎么聚类,最后神经网络怎么保存 目录 举例说明怎么聚类,最后神经网络怎么保存K - Means聚类算法实现神经元特征聚类划分成不同专家的原理和过程 特征提取: 首先,需要从神经元中提取有代表性的特征。例如,对于一个多层感知机(MLP)中的神经元,其权重向量可以作为特…...
HarmonyOS NEXT应用开发实战(一):边学边玩,从零开发一款影视APP
引言 学习一项技能,最好也最快的办法就是动手实战。通过自己给自己找项目练习,不仅能够激发兴趣,还能从开发实战中不断总结经验。这种学习方法是最为高效的。今天,我们将通过开发一款名为“爱影家”的影视APP,来学习H…...
STM32G0B1 can Error_Handler 解决方法
问题现象 MCU上电,发送0x13帧数据固定进入 Error_Handler 硬件介绍 MCU :STM32G0B1 can:NSI1042 tx 接TX RX 接RX 折腾了一下午,无解,问题依旧; 对比测试 STM32G431 手头有块G431 官方评估版CAN 模块; 同样的…...
使用 `llama_index` 构建智能问答系统:多种文档切片方法的评估
使用 llama_index 构建智能问答系统:多种文档切片方法的评估 代码优化与解析1. **代码结构优化**2. **日志管理**3. **环境变量管理**4. **模型初始化**5. **提示模板更新**6. **问答函数优化**7. **索引构建与查询引擎**8. **节点解析器测试** 总结 在现代自然语言…...
【大模型】7 天 AI 大模型学习
7 天 AI 大模型学习 Day 2 今天是 7 天AI 大模型学习的第二天 😄,今天我将会学习 Transformer 、Encoder-based and Decoder-Based LLMs 等 。如果有感兴趣的,就和我一起开始吧 ~ 课程链接 :2025年快速吃透AI大模型&am…...
软件工程大复习之(四)——面向对象与UML
4.1 面向对象概述 面向对象(OO)是一种编程范式,它将数据和处理数据的方法封装在对象中。面向对象的主要概念包括: 对象:实例化的数据和方法的集合。类:对象的蓝图或模板。封装:隐藏对象的内部…...
【Linux】shell命令
目录 shell的基本命令 shell - 贝壳 外在保护工具 用户、shell、内核、硬件之间的关系 解析器的分类: shell命令格式 history -历史记录查询 修改环境变量的值: shell中的特殊字符 通配符 管道 | 输入输出重定向 命令置换符 shell的基本命…...
ValuesRAG:以检索增强情境学习强化文化对齐
随着大型语言模型(LLMs)的迅猛发展,其在各个领域展现出强大的能力。然而,训练数据中西方中心主义的倾向,使得 LLMs 在文化价值观一致性方面面临严峻挑战,这一问题在跨文化场景中尤为突出,可能导…...
【机器学习篇】交通革命:机器学习如何引领未来的道路创新
嘿,你知道吗?机器学习正在交通领域掀起一场革命啦!它将如何引领未来道路创新呢 本文有精彩的 C 代码演示、实用的图片解释,还有超多干货,保证让你大开眼界,点赞收藏关注, 开启一场奇妙的探索之…...
DeepSeek-V3 通俗详解:从诞生到优势,以及与 GPT-4o 的对比
1. DeepSeek 的前世今生 1.1 什么是 DeepSeek? DeepSeek 是一家专注于人工智能技术研发的公司,致力于打造高性能、低成本的 AI 模型。它的目标是让 AI 技术更加普惠,让更多人能够用上强大的 AI 工具。 1.2 DeepSeek-V3 的诞生 DeepSeek-V…...
把vue项目或者vue组件发布成npm包或者打包成lib库文件本地使用
将vue项目发布成npm库文件,第三方通过npm依赖安装使用;使用最近公司接了一个项目,这个项目需要集成到第三方页面,在第三方页面点击项目名称,页面变成我们的项目页面;要求以npm库文件提供给他们;…...
【STC库函数】Compare比较器的使用
如果我们需要比较两个点的电压,当A点高于B点的时候我们做一个操作,当B点高于A点的时候做另一个操作。 我们除了加一个运放或者比较器,还可以直接使用STC内部的一个比较器。 正极输入端可以是P37、P50、P51,或者从ADC的十六个通道…...
单片机-独立按键矩阵按键实验
1、按键介绍 按键管脚两端距离长的表示默认是导通状态,距离短的默认是断开状态, 如果按键按下,初始导通状态变为断开,初始断开状态变为导通 我们开发板是采用软件消抖,一般来说一个简单的按键消抖就是先读取按键的状…...
若要把普通表转成分区表,就需要先新建分区表,然后把普通表中的数据导入新建分区表。 具体怎么导入?
将普通表转换为分区表并导入数据是一个常见的数据库管理任务。以下是详细的步骤和示例,帮助你在 GaussDB 中完成这一过程: 1. 创建分区表 首先,你需要创建一个新的分区表,定义好分区键和分区策略。假设你有一个普通表 orders&am…...
XXX公司面试真题
一、一面问题 1.线程池的主要参数 核心线程数最大线程数空闲线程存活时间存活时间单位任务队列线程工厂拒绝策略允许核心线程超时 2. 线程的状态 新建状态就绪状态运行状态阻塞状态死亡状态 补充:线程阻塞的原因 线程调用sleep()方法进入睡眠状态 线程得到一个…...
第一节:电路连接【51单片机+A4988+步进电机教程】
摘要:本节介绍如何搭建一个51单片机A4988步进电机控制电路,所用材料均为常见的模块,简单高效的方式搭建起硬件环境 一、硬件清单 ①51单片机最小控制模块 ②开关电源 ③A4988模块转接座 ④二相四线步进电机 ⑤电线若干 二、接线 三、A49…...
机器学习算法深度解析:以支持向量机(SVM)为例的实践应用
机器学习算法深度解析:以支持向量机(SVM)为例的实践应用 在当今的数据驱动时代,机器学习作为人工智能的核心分支,正以前所未有的速度改变着我们的生活与工作方式。从图像识别到自然语言处理,从金融预测到医…...
解决Postman一直在转圈加载无法打开问题的方法
在使用Postman这款强大的API测试工具时,有时可能会遇到程序长时间加载而无法正常使用的情况。面对这样的问题,可以尝试以下几种解决办法: 方法一:直接运行Postman可执行文件 定位到Postman的安装目录 如果您不确定Postman的具体安…...
利用 LangChain 构建对话式 AI 应用
随着人工智能技术的快速发展,对话式 AI 已成为现代应用的核心部分。在构建智能客服、虚拟助手以及交互式学习平台时,一个强大且灵活的框架显得尤为重要。本文将深度解析 LangChain 这一框架的功能及实际使用,帮助开发者快速上手。 什么是 La…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
【java面试】微服务篇
【java面试】微服务篇 一、总体框架二、Springcloud(一)Springcloud五大组件(二)服务注册和发现1、Eureka2、Nacos (三)负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
