news 2026/5/12 10:07:24

网络常见面试题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网络常见面试题

1、TCP与UDP的区别

对比维度TCPUDP
传输方式基于数据流基于数据报
连接性需要建立连接(点对点)不需要建立连接(支持一对多)
可靠性高可靠,保证数据安全、无丢失、无差错、按序到达不保证送达,不保证内容正确
机制三次握手、四次挥手、流量控制、拥塞控制、出错重传无上述机制
边界保护无边界,存在粘包现象有边界,不会粘包
传输速率相对较慢
典型场景文件传输、网页浏览、邮件视频直播、DNS查询、VoIP

如何用 UDP 实现可靠传输

模拟的功能实现方式
保证数据顺序添加序列号,接收端按序号重组
保证数据正确增加数据签名与验签(如校验和、CRC、MD5)
保证数据送达要求接收方应答确认(ACK),并对应答做校验
丢失重传发送方启动超时重传机制,未收到 ACK 则重发

2、高可靠通信含义

指传输时数据无差错、无丢失、无失序、按时到达故障的可靠通知

3、粘包含义以及如何解决

3.1 粘包含义

维度说明
定义发送方发送的若干数据包到达接收方时粘成一包,后一包的头紧接着前一包的尾
发生位置接收方的接收缓冲区
主要原因接收方未及时读取,数据堆积在缓冲区
次要原因发送方 Nagle 算法将小包拼成大包发送
能否在传输层解决❌ 不能,只能在应用层解决
可能现象一次读取多个完整包,或读取到半个包

3.2 解决粘包问题

解决方法原理优点缺点
格式化数据(特殊分隔符)每条数据有固定的开始符和结束符简单易行需确保数据内部不包含开始/结束符
发送长度(常用)数据前4位(或其他固定长度)表示数据长度,按长度截取通用、可靠实现稍复杂

推荐方案:发送长度(头部加长度字段)

3.3 补充说明

协议是否有粘包原因
TCP✅ 有基于数据流,无边界
UDP❌ 无基于数据报,有边界保护
SCTP❌ 无基于数据报,有边界保护

4、OSI七层协议模型,并简述各层的功能

层级名称主要功能
1物理层负责传输比特流,定义物理连接的特性
2数据链路层提供可靠的数据传输,处理帧的传输和错误检测
3网络层负责数据包的路由和转发,实现不同网络之间的通信
4传输层提供端到端的数据传输,确保数据可靠传输,处理数据分段和重组
5会话层建立、管理和终止会话连接,处理会话层的控制和同步
6表示层处理数据的格式和编码,确保数据在不同系统间的兼容性
7应用层提供用户接口和网络服务,实现特定应用程序的功能

5、TCP判断异常断电

方法原理说明
超时检测设置套接字超时时间,超时未收到数据则认为连接异常使用setsockopt设置SO_RCVTIMEOSO_SNDTIMEO
心跳包机制定期发送心跳包,若多次未收到响应则判定连接断开应用层实现,如每隔 N 秒发送 Ping 包,M 次无响应则断开
TCP keepalive系统内置的保活机制,定期发送探测包通过setsockopt设置SO_KEEPALIVE及相关参数

注意:TCP 异常断电时不会发送挥手数据包,对方无法立即感知,必须依靠超时或心跳检测来判定连接状态。

6、二层交换机的工作原理

维度说明
基本作用局域网内数据转发
通信前提两台主机连接同一台交换机
转发依据MAC地址(网口映射表)
主机通信步骤① 主机A获取主机B的IP → ② 判断是否在同一局域网 → ③ 主机A发送ARP广播请求MAC → ④ 交换机转发广播给所有主机 → ⑤ 主机B回应MAC → ⑥ 主机A构建数据包发送 → ⑦ 交换机查表转发给主机B
网口映射表建立交换机根据数据包的源MAC地址进入网口自动学习
网口映射表用途根据目标MAC地址查找对应网口进行转发
网口映射表更新按周期定时更新
泛洪现象网线插拔/更换网口导致映射丢失,交换机将数据包转发给所有主机

7、简述两种并发服务器并说明其优缺点以及容易出现的问题

对比维度多进程服务器多线程服务器
并发方式每个进程独立处理客户端每个线程独立处理客户端
优点• 进程隔离性好,崩溃互不影响
• 编程模型相对简单
• 资源占用小
• 切换开销小
• 共享数据方便
缺点• 进程占用空间大
• 创建/销毁开销大
• 回收进程资源麻烦
• 线程间容易产生竞争问题
• 需要锁等同步机制
• 一个线程崩溃可能影响整个进程
容易出现的问题僵尸进程、资源泄漏死锁、数据竞争、条件竞争
对程序员要求一般较高

8、简述五种IO模型,并说明是同步操作还是异步操作

I/O 模型同步/异步关键阻塞点数据处理方式
阻塞 I/O同步整个 I/O 操作进程全程等待
非阻塞 I/O同步数据复制阶段轮询 + 等待复制
I/O 多路复用同步select / epoll 等待 + 数据复制多路监控,仍由进程复制
信号驱动 I/O同步数据复制阶段信号通知后,进程复制数据
异步 I/O异步内核完成所有操作并通知

9、路由器的工作原理

步骤操作主体动作说明关键信息变化(IP / MAC / 端口)作用/说明
主机(你的电脑)请求 DNS 服务器获取百度 IP无IP/MAC转发变化域名 → IP 解析
主机判断是否在同一网段使用子网掩码对比自己的IP和百度IP决定是否需要经过网关
主机将数据包发送给网关(路由器)目标 MAC:路由器 MAC
目标 IP:百度 IP(不变)
源 IP:主机内网 IP
数据包发往网关
路由器(网关)执行 NAT 端口映射源 IP:内网 IP →公网 IP
源端口:主机端口 →映射后端口
实现私有IP ↔ 公网IP转换
路由器查询路由表并转发给下一跳路由目标 MAC:下一跳路由器 MAC
源 MAC:当前路由器 MAC
逐跳转发到目标网络
中间路由器依次查询路由表并转发每跳更新 MAC,IP 不变数据包到达百度服务器
你的路由器接收百度回应的数据包目标 IP:路由器公网 IP
目标端口:映射后端口
目标 MAC:路由器 MAC
外网回应到达网关
你的路由器查询 NAT 端口映射表,转换回主机目标 IP:公网 IP →主机内网 IP
目标端口:映射后端口 →主机端口
目标 MAC:路由器 MAC →主机 MAC
将数据包正确送回内网主机
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 10:01:35

Cucumber 测试工具通俗讲解

一、是什么 Cucumber 是一款开源 BDD(行为驱动开发)自动化测试框架,最大特点:用普通人能看懂的自然语言写测试用例,再自动转成代码执行自动化测试。 二、核心作用 业务、测试、开发用一套用例产品 / 不懂代码的人也…

作者头像 李华
网站建设 2026/5/12 10:00:33

仿真跑得慢、步长缩到飞?你可能遇到了“刚性问题“

仿真跑得慢、步长缩到飞?你可能遇到了"刚性问题" 同样的模型,换一个求解器,速度相差 100 倍——这不是玄学,是数学。 前言:一次诡异的仿真经历 你有没有遇到过这种情况: 一个看起来并不复杂的模…

作者头像 李华
网站建设 2026/5/12 10:00:32

RapidVideOCR:解锁视频字幕智能提取的架构智慧

RapidVideOCR:解锁视频字幕智能提取的架构智慧 【免费下载链接】RapidVideOCR 🎦 Extract video hard subtitles and automatically generate corresponding srt files. 项目地址: https://gitcode.com/gh_mirrors/ra/RapidVideOCR 在数字内容爆…

作者头像 李华