三、传输层面试题(Transmission Layer)

传输层位于 OSI 七层模型的第四层,它的核心任务是为两个主机之间的应用层提供可靠的数据传输服务。它不仅承担了数据的端到端传输,而且还实现了诸如差错检测、数据流控制、拥塞控制等机制,是网络面试中非常关键的一层。

1. TCP 和 UDP 的区别详解及应用场景分析

概述:TCP 和 UDP 是传输层的两种协议,各有优缺点,使用场景不同。

特性TCP(Transmission Control Protocol)UDP(User Datagram Protocol)
是否连接是,面向连接(需要三次握手建立连接)否,无连接
可靠性可靠,确保数据无差错、无重复、按序到达不可靠,可能出现丢包、乱序、重复
流控制和拥塞控制有滑动窗口机制,进行流量控制和拥塞控制无此机制
传输效率较低,但保证可靠性高效,但不保证可靠性
开销较大,需要维护连接状态、确认机制等小,无连接状态,报文头较短
应用场景适合对可靠性要求高的应用,如网页浏览、文件传输、电子邮件适合对实时性要求高但可容忍丢包的应用,如视频通话、直播、在线游戏

总结

  • 如果应用需要精确的数据传输、数据完整性,选择 TCP。

  • 如果更看重时效性,且可以接受部分数据丢失,比如音视频通信,选择 UDP。

2. TCP 三次握手(Three-Way Handshake)详解

过程描述:

  1. 第一次握手:客户端发送 SYN 报文,表示请求建立连接,并发送初始序列号(seq=x)。

  2. 第二次握手:服务器收到 SYN 报文后,回复一个 SYN-ACK 报文,表示接受连接请求,发送自己的初始序列号(seq=y),并确认客户端的序列号(ack=x+1)。

  3. 第三次握手:客户端收到 SYN-ACK 报文后,发送 ACK 报文,确认服务器的序列号(ack=y+1),此时连接建立完成。

重点问题解析:

  • 为什么需要三次握手?

    • 防止失效的连接请求报文造成错误连接。

    • 需要双方都确认收发能力正常。

图示

客户端                    服务器| ———— SYN ————>          || <—— SYN+ACK ——          || ———— ACK ————>          |
连接建立完成

3. TCP 四次挥手(Four-Way Handshake)详解

过程描述:

  1. 客户端发送 FIN 报文,请求关闭连接。

  2. 服务器接收后回复 ACK,表示收到关闭请求。

  3. 服务器处理完数据后,发送 FIN 报文,表示可以关闭连接。

  4. 客户端收到后发送 ACK 报文,进入 TIME_WAIT 状态。

重点:

  • TCP 是全双工协议,必须双方都关闭连接。

  • 为什么需要 TIME_WAIT:确保最后 ACK 能到达服务器,防止老数据污染新连接。

4. TCP 状态变迁及 TIME_WAIT 深入解析

TCP 在连接和断开过程中,会经历多种状态,包括:

  • LISTEN

  • SYN_SENT

  • SYN_RECEIVED

  • ESTABLISHED

  • FIN_WAIT_1

  • FIN_WAIT_2

  • CLOSE_WAIT

  • CLOSING

  • LAST_ACK

  • TIME_WAIT

  • CLOSED

重点分析 TIME_WAIT:

  • 等待两倍最大报文寿命(MSL)时间,确保服务端已收到 ACK。

  • 防止旧连接报文影响新连接。

如何优化 TIME_WAIT 过多问题?

  • 操作系统调优(如 tcp_tw_reuse)。

  • 使用短连接或连接池。

5. TCP 的可靠性机制详解

1. 序列号与确认号(SEQ/ACK)

  • 每个 TCP 报文都有 SEQ(数据序号)与 ACK(确认号)。

  • 确保报文按顺序传输。

2. 重传机制

  • 超时重传(Timeout Retransmission)

  • 快速重传(Fast Retransmit):连续收到三个相同 ACK 时立即重传

3. 滑动窗口机制(Sliding Window)

  • 控制发送速率,实现流量控制。

  • 接收方窗口通知发送方可接收的数据量。

4. 拥塞控制机制

  • 慢启动(Slow Start)

  • 拥塞避免(Congestion Avoidance)

  • 快速重传(Fast Retransmit)

  • 快速恢复(Fast Recovery)

6. TCP 粘包与拆包问题及解决方法

出现原因:

  • 粘包:多条小数据连续发送,接收方一次性接收。

  • 拆包:一条大数据被拆分成多段接收。

解决方式:

  • 固定长度分隔

  • 特殊分隔符(如 \n)

  • 报文头部添加长度字段(常用)


四、应用层面试题(Application Layer)

应用层是 OSI 模型的第七层,直接为用户提供服务。常见的协议如 HTTP、DNS、SMTP、FTP、DHCP 等。面试中考查频率极高,尤其是 HTTP 协议相关内容。

1. HTTP 和 HTTPS 的区别(深入详解)

特性HTTPHTTPS
安全性明文传输,容易被窃听或篡改使用 TLS/SSL 加密传输,确保数据安全
数据完整性无保障使用数字签名与证书校验数据完整性
端口默认端口 80默认端口 443
握手开销无需额外握手需 TLS 握手(增加延迟)
数字证书不需要需要 CA 签发的数字证书

TLS 握手过程简述:

  1. 客户端发起请求,包含支持的加密算法等信息;

  2. 服务端返回证书和公钥;

  3. 客户端验证证书有效性,生成对称密钥并用公钥加密;

  4. 服务端用私钥解密对称密钥,之后使用该密钥进行加密通信。

2. HTTP1.0、HTTP1.1、HTTP2.0、HTTP3.0 对比

特性HTTP/1.0HTTP/1.1HTTP/2HTTP/3
连接短连接默认长连接单连接多路复用基于 UDP 的 QUIC 协议
请求数一次请求一次连接持久连接多个请求复用连接同上,更快恢复丢包
压缩头部压缩更高效
服务器推送不支持不支持支持支持

3. HTTP 状态码分类与详解

  • 1xx:信息性(如 100 Continue)

  • 2xx:成功(如 200 OK, 204 No Content)

  • 3xx:重定向(如 301 Moved Permanently, 302 Found)

  • 4xx:客户端错误(如 400 Bad Request, 403 Forbidden, 404 Not Found)

  • 5xx:服务器错误(如 500 Internal Server Error, 502 Bad Gateway)

面试技巧: 掌握常见状态码的语义与使用场景。

4. Cookie、Session、Token 与 JWT 区别

特性CookieSessionToken(如 JWT)
存储位置客户端服务端客户端(本地存储)
安全性易被窃取伪造相对安全安全,签名校验
状态性有状态有状态无状态
适用场景浏览器本地记住信息服务端保持用户会话前后端分离、移动端认证

JWT 结构: Header.Payload.Signature

  • Header:声明类型和算法

  • Payload:用户信息、权限等

  • Signature:对前两者进行签名,防篡改

5. DNS 的解析过程详解

  1. 浏览器缓存:是否解析过该域名?

  2. 系统缓存(如 /etc/hosts 文件)

  3. 本地 DNS 服务器

  4. 根域名服务器

  5. 顶级域服务器(如 .com、.cn)

  6. 权威域名服务器(提供最终 IP)

最终解析出 IP 地址返回给客户端,客户端发起请求。

面试加分点:

  • DNS 轮询负载均衡(RR)

  • DNS 缓存机制

  • CDN 与 DNS 的结合优化访问路径


本文为计算机网络面试题进阶总结,涵盖传输层与应用层的高频知识点及深入解析。适合面试前系统复习,帮助应对实际面试中可能出现的综合性网络问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90804.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90804.shtml
英文地址,请注明出处:http://en.pswp.cn/web/90804.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【RH134 问答题】第 2 章 调度未来任务

目录crontab 文件中的用户作业时间格式怎么解释&#xff1f;如果需要以当前用户身份计划周期性作业&#xff0c;在上午 8 点到晚上 9 点之间每两分钟一次输出当前日期和时间&#xff0c;该作业只能在周一到周五运行&#xff0c;周六或周日不能运行。要怎么做&#xff1f;要计划…

【ee类保研面试】通信类---信息论

25保研er&#xff0c;希望将自己的面试复习分享出来&#xff0c;供大家参考 part0—英语类 part1—通信类 part2—信号类 part3—高数类 part100—self项目准备 文章目录**面试复习总纲****Chap2: 熵、相对熵和互信息 (Entropy, Relative Entropy, and Mutual Information)****…

vue2+node+express+MongoDB项目安装启动启动

文章目录 准备环境 安装MongoDB 安装 MongoDB Compass(图形化数据库管理工具) 安装 Postman(接口测试工具) 项目结构 配置项目代理 项目启动 提交项目 生成Access Token 准备环境 默认含有node.js、npm 安装MongoDB 下载地址:https://www.mongodb.com/try/download/com…

JavaEE初阶第十二期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(十)

专栏&#xff1a;JavaEE初阶起飞计划 个人主页&#xff1a;手握风云 目录 一、多线程案例 1.1. 定时器 一、多线程案例 1.1. 定时器 定时器是软件开发的一个重要组件&#xff0c;是一种能够按照预设的时间间隔或在特定时间点执行某个任务或代码片段的机制。你可以把它想象成…

EDoF-ToF: extended depth of field time-of-flight imaging解读, OE 2021

1. 核心问题&#xff1a;iToF相机的“景深”死穴我们之前已经详细讨论过&#xff0c;iToF相机的“景深”&#xff08;有效测量范围&#xff09;受到光学散焦的严重制约。问题根源&#xff1a; 当iToF相机的镜头散焦时&#xff0c;来自场景不同深度的光信号会在传感器像素上发生…

符号引用与直接引用:概念对比与实例解析

符号引用与直接引用&#xff1a;概念对比与实例解析 符号引用和直接引用是Java虚拟机(JVM)中类加载与执行机制的核心概念&#xff0c;理解它们的区别与联系对于深入掌握Java运行原理至关重要。下面我将从定义、特性、转换过程到实际应用&#xff0c;通过具体示例全面比较这两类…

每日一讲——Podman

一、概念1、定义与定位Podman&#xff08;Pod Manager&#xff09;是符合OCI标准的容器引擎&#xff0c;用于管理容器、镜像及Pod&#xff08;多容器组&#xff09;。它无需守护进程&#xff08;Daemonless&#xff09;&#xff0c;直接通过Linux内核功能&#xff08;如命名空间…

Spring Boot DFS、HDFS、AI、PyOD、ECOD、Junit、嵌入式实战指南

Spring Boot分布式文件系统 以下是一些关于Spring Boot分布式文件系统(DFS)的实现示例和关键方法,涵盖了不同场景和技术的应用。这些示例可以帮助理解如何在Spring Boot中集成DFS(如HDFS、MinIO、FastDFS等)或模拟分布式存储。 使用Spring Boot集成HDFS 基础配置 // 配…

解决GoLand运行go程序报错:Error: Cannot find package xxx 问题

问题描述 一个简单的go程序&#xff0c;代码如下 package mainimport "fmt" func main() {// 占位符&#xff0c;和java的String.format用法一样fmt.Printf("我%d岁&#xff0c;我叫%s", 18, "yexindong") }结构如下当我想要运行时却报错 Error:…

Spring MVC设计精粹:源码级架构解析与实践指南

文章目录一、设计哲学&#xff1a;分层与解耦1. 前端控制器模式2. 分层架构设计二、核心组件源码解析1. DispatcherServlet - 九大组件初始化2. DispatcherServlet - 前端控制器&#xff08;请求处理中枢&#xff09;请求源码入口&#xff1a;FrameworkServlet#doGet()请求委托…

k8s之控制器详解

1.deployment&#xff1a;适用于无状态服务1.功能(1)创建高可用pod&#xff08;2&#xff09;滚动升级/回滚&#xff08;3&#xff09;平滑扩容和缩容2.操作命令&#xff08;1&#xff09;回滚# 回滚到上一个版本 kubectl rollout undo deployment/my-app# 回滚到特定版本&…

.NET Core中的配置系统

传统配置方式文件Web.config 进行配置。ConfigurationManager类配置。.NET配置系统中支持配置方式文件配置&#xff08;json、xml、ini等&#xff09;注册表环境变量命令行自定义配置源Json文件配置方式实现步骤&#xff1a;创建一个json文件&#xff0c;把文件设置 为“如果较…

kafka的消费者负载均衡机制

Kafka 的消费者负载均衡机制是保证消息高效消费的核心设计&#xff0c;通过将分区合理分配给消费者组内的消费者&#xff0c;实现并行处理和负载均衡。以下从核心概念、分配策略、重平衡机制等方面详细讲解。一、核心概念理解消费者负载均衡前&#xff0c;需明确三个关键概念&a…

腾讯云edges on部署pages

腾讯云edges on部署pages适用场景部署方式官方文档 适用场景 Next.js Hexo 以及用React Vue等现代前端框架构建的单页应用全栈项目开发 通过Pages Function KV等能力 实现轻量化的动态服务快速部署与迭代 通过Github等代码管理平台集成 每次代码提交时自动构建和部署网站 注…

SpringAI入门及浅实践,实战 Spring‎ AI 调用大模型、提示词工程、对话记忆、Adv‎isor 的使用

上一次写AI学习笔记已经好久之前了&#xff0c;温习温习&#xff0c;这一章讲讲关于Spring‎ AI 调用大模型、对话记忆、Adv‎isor、结构化输出、自定义对话记忆‍、Prompt 模板的相关知识点。 快速跳转到你感兴趣的地方一、提示词工程&#xff08;Prompt&#xff09;1. 基本概…

对抗攻击-知识点

文章目录自然图像往往靠近机器学习分类器学习到的决策边界&#xff08;decision boundaries&#xff09;。正交方向--改变某一个不影响其它的特征降采样&#xff08;Feature Downsampling&#xff09;通过黑盒攻击的持续挑战&#xff0c;我们才能构建真正安全可靠的智能系统DCT…

7.26 作业

一、实验要求及其拓扑图&#xff1a; 本次实验拓扑图&#xff1a; 二、实验IP地址划分&#xff1a; 1. 公网地址&#xff08;R5 作为 ISP&#xff0c;使用公网地址&#xff09;&#xff1a; R1 与 R5 之间接口&#xff1a;15.1.1.0/24&#xff0c;R1 侧为 15.1.1…

Kafka运维实战 14 - kafka消费者组消费进度(Lag)深入理解【实战】

目录什么是消费者 Lag举例说明&#xff1a;Lag 的意义&#xff1a;Lag 监控和查询kafka-consumer-groups基本语法常用命令示例1. 查看单个消费者组的详细信息&#xff08;最常用&#xff09;2. 列出所有消费者组&#xff08;只显示名称&#xff09;3. 列出所有消费者组&#xf…

设计模式(十三)结构型:代理模式详解

设计模式&#xff08;十三&#xff09;结构型&#xff1a;代理模式详解代理模式&#xff08;Proxy Pattern&#xff09;是 GoF 23 种设计模式中的结构型模式之一&#xff0c;其核心价值在于为其他对象提供一种间接访问的机制&#xff0c;以控制对原始对象的访问。它通过引入一个…

24点数学游戏(穷举法求解表达式)

摘要本毕业设计旨在利用MATLAB技术实现一个24点数学游戏&#xff0c;采用穷举法求解所有可能的表达式组合。通过全排列数字、枚举运算符及括号位置&#xff0c;结合递归回溯算法&#xff0c;系统能够高效地搜索所有可能的运算路径&#xff0c;并验证结果是否为24。实验结果表明…