前端热门面试题目(四)——计算机网路篇
计算机网络常见面试题:
计算机网络面试(一)
计算机网络面试(二)
计算机网络速成:
计算机网络速成一
计算机网络速成二
计算机网络速成三
2. HTTP 1.0 和 2.0 的区别
-
连接复用:
- HTTP/1.0 使用短连接(默认每个请求创建一个 TCP 连接)。
- HTTP/2.0 支持多路复用,一个 TCP 连接可以并发处理多个请求和响应。
-
头部压缩:
- HTTP/1.0 没有对请求头压缩。
- HTTP/2.0 使用 HPACK 算法对头部信息进行压缩,减少网络带宽占用。
-
二进制分帧:
- HTTP/1.0 使用纯文本协议传输数据。
- HTTP/2.0 使用二进制格式传输,数据分为帧(Frame),使传输更高效。
-
服务器推送:
- HTTP/1.0 不支持服务器推送。
- HTTP/2.0 允许服务器主动推送资源到客户端,减少等待时间。
3. TCP 连接是什么
TCP(传输控制协议,Transmission Control Protocol)是一种面向连接的、可靠的传输协议。TCP 连接是指通过三次握手建立的通信链路,用于保证数据的有序传输和完整性。
- 核心特点:
- 可靠传输:确保数据包按序到达且无丢失。
- 双向通信:通信双方可以同时发送和接收数据。
- 面向连接:需要在通信开始前建立连接(三次握手),并在结束时释放连接(四次挥手)。
TCP 主要用于需要高可靠性的应用场景,如文件传输、电子邮件、网页浏览等。
4. HTTP 2.0 和 3.0 的区别
-
传输层协议:
- HTTP/2.0 基于 TCP。
- HTTP/3.0 基于 QUIC(一种基于 UDP 的协议),提高了传输速度和效率。
-
连接管理:
- HTTP/2.0 使用 TCP,多路复用解决了大部分队头阻塞问题,但仍受 TCP 队头阻塞的影响。
- HTTP/3.0 通过 QUIC 协议完全避免了队头阻塞问题。
-
传输速度:
- HTTP/2.0 的建立连接过程包括 TCP 握手和 TLS 握手,延迟较高。
- HTTP/3.0 将加密(TLS)集成到 QUIC,减少了连接建立的延迟。
-
数据恢复:
- HTTP/2.0 中丢失一个数据包会影响整个 TCP 流。
- HTTP/3.0 的每个流独立处理丢包问题,不影响其他流。
5. HTTP 和 HTTPS 的区别
-
协议层次:
- HTTP 是超文本传输协议,默认端口 80。
- HTTPS 是在 HTTP 之上加入了 SSL/TLS 协议,用于加密通信,默认端口 443。
-
安全性:
- HTTP 的数据是明文传输,容易被窃听、篡改。
- HTTPS 对数据进行加密,提供身份验证和完整性,防止窃听和篡改。
-
性能影响:
- HTTPS 需要进行加密解密,会增加一些计算开销。
- 现代优化手段(如 TLS 1.3)使得性能影响微乎其微。
6. TCP 是用来解决什么问题
TCP 主要解决以下问题:
- 数据可靠性:
- 保证数据包按顺序到达。
- 丢失的数据包可以重传。
- 流量控制:
- 避免发送方传输速度过快导致接收方无法处理。
- 拥塞控制:
- 防止网络过载。
- 双向通信:
- 提供面向连接的双向可靠通信。
7. TCP 和 UDP 的区别
-
连接性:
- TCP 是面向连接的,需要建立连接(三次握手)。
- UDP 是无连接的,不需要握手,直接发送数据。
-
可靠性:
- TCP 提供可靠传输,数据丢失时可重传。
- UDP 不提供保证,可能出现数据丢失。
-
速度:
- TCP 较慢,适合需要可靠传输的场景(如文件传输、网页)。
- UDP 较快,适合对时延敏感的场景(如实时视频、游戏)。
-
数据传输:
- TCP 按序传输,保证数据完整性。
- UDP 不保证数据顺序。
8. TCP 的粘包和拆包问题
- 粘包:多条数据在传输过程中被接收方合并为一条。
- 拆包:一条数据在传输过程中被分成多条。
原因:
- 粘包:
- 发送方将多条数据连续发送,接收方一次性读取了多条。
- 发送数据长度小于发送缓冲区的大小。
- 拆包:
- 数据过大,超过了缓冲区大小,被拆分成多次发送。
解决方法:
3. 固定消息长度:预设每条消息的固定长度。
4. 分隔符:在每条消息后添加特殊的分隔符(如换行符)。
5. 消息头:消息开头加上长度字段,告知接收方本条消息的长度。
1. TCP 的三次握手
TCP 的三次握手是建立连接的过程,用来确保通信双方已经准备好,能可靠地进行数据传输。
- 第一步:客户端发送 SYN 报文,表示请求建立连接,同时初始序列号(Seq=x)。
- 第二步:服务器收到后,返回 SYN+ACK 报文,表示同意建立连接,同时发送自己的初始序列号(Seq=y),并确认客户端的序列号(Ack=x+1)。
- 第三步:客户端收到后,再次发送 ACK 报文,确认服务器的序列号(Ack=y+1),连接建立成功。
三次握手的目的:
- 确保双方的发送能力和接收能力正常。
- 同步序列号,初始化双方的数据传输状态。
2. TCP 的四次挥手
TCP 的四次挥手是断开连接的过程,确保双方都能安全地释放资源。
- 第一步:客户端发送 FIN 报文,表示不再发送数据,但还能接收数据。
- 第二步:服务器收到后,返回 ACK 报文,表示已接收到客户端的 FIN。
- 第三步:服务器发送 FIN 报文,表示不再发送数据。
- 第四步:客户端收到后,返回 ACK 报文,确认断开连接。
断开连接比建立连接多两次通信,因为 TCP 是全双工通信,双方需要分别确认对方不再发送数据。
3. TCP 为什么需要 TIME WAIT 状态
-
TIME WAIT 的作用:
- 确保最后的 ACK 报文被对方收到:如果服务器未收到 ACK,会重发 FIN。TIME WAIT 确保客户端能接收并处理这些重发的 FIN。
- 防止旧连接数据干扰新连接:等待足够时间,让网络中可能残留的旧数据包完全消失。
-
TIME WAIT 的持续时间:
通常是 2 倍的最大报文生存时间(2MSL)。
4. TCP 超时重传机制
-
解决的问题:
当数据包在传输中丢失或未及时收到确认时,通过超时重传机制重新发送,确保数据可靠传输。 -
机制流程:
- 发送数据包后启动计时器。
- 若在超时时间内未收到 ACK,重新发送数据。
- 每次超时重传会增大等待时间(指数退避算法)。
-
典型场景:
网络拥塞、传输路径中断等导致的确认丢失。
5. TCP 滑动窗口的作用
TCP 滑动窗口是一种流量控制机制,用于动态调整发送方能发送的最大数据量,以避免接收方或网络过载。
-
工作原理:
- 窗口大小由接收方设置,告知发送方当前可接收的数据量。
- 窗口随接收的确认数据滑动,允许发送方发送更多数据。
-
作用:
- 提高传输效率:允许发送方在等待 ACK 的同时继续发送数据。
- 避免拥塞:通过动态调整窗口大小控制发送速率。
6. TCP/IP 四层模型
TCP/IP 是网络通信协议的基础模型,共分为四层:
- 应用层:
- 提供应用程序间的通信接口。
- 协议:HTTP、FTP、SMTP、DNS。
- 传输层:
- 提供端到端的可靠或非可靠传输。
- 协议:TCP、UDP。
- 网络层:
- 负责路由和数据包的转发。
- 协议:IP、ICMP。
- 链路层:
- 负责数据帧的封装和物理传输。
- 包括以太网、Wi-Fi 等。
7. OSI 七层模型
OSI 是理论上的网络通信模型,共分为七层:
- 物理层:
- 传输比特流,定义硬件接口。
- 如网线、光纤。
- 数据链路层:
- 负责帧的传输和差错检测。
- 如以太网协议。
- 网络层:
- 负责寻址和路由选择。
- 如 IP 协议。
- 传输层:
- 提供端到端通信。
- 如 TCP、UDP。
- 会话层:
- 管理会话和数据同步。
- 表示层:
- 负责数据格式转换和加密。
- 应用层:
- 提供用户接口。
- 如 HTTP、FTP。
8. Cookie、Session、Token 的区别
特性 | Cookie | Session | Token |
---|---|---|---|
存储位置 | 浏览器(客户端) | 服务器 | 客户端,可能会临时存储在本地 |
状态保持 | 无状态(需要每次随请求发送) | 有状态(服务器存储会话信息) | 无状态(包含自身验证信息) |
生命周期 | 可持久(设定过期时间) | 短暂(默认关闭浏览器即失效) | 取决于设计,通常有过期时间 |
安全性 | 较低,容易被窃取和伪造 | 较高,数据存储在服务器端 | 较高,加密且不依赖服务器状态 |
使用场景 | 简单用户偏好、保持登录状态 | 用户认证、状态管理 | 分布式系统、API 调用 |
- Cookie:客户端存储数据,常用于保存用户偏好或会话信息。
- Session:服务器存储会话状态,客户端用 Cookie 或其他方式传递会话 ID。
- Token:自包含的加密数据,客户端携带 Token 即可完成身份验证,无需依赖服务器存储会话状态。
相关文章:
前端热门面试题目(四)——计算机网路篇
计算机网络常见面试题: 计算机网络面试(一) 计算机网络面试(二) 计算机网络速成: 计算机网络速成一 计算机网络速成二 计算机网络速成三 2. HTTP 1.0 和 2.0 的区别 连接复用: HTTP/1.0 使用短连…...
kubenetes流水线实施清单
整体实施方案概述 创建命名空间(Namespace):创建一个专用于 CI/CD 的命名空间 cicd。配置 Secrets: Git SSH 密钥(分别为 Maven 和 npm 项目)Docker Registry 凭证(Kaniko)SMTP 凭证…...

Redis4——持久化与集群
Redis4——持久化与集群 本文讲述了1.redis在内存占用达到限制后的key值淘汰策略;2.redis主从复制原理;3.redis的哨兵模式;4.redis集群模式。 1. 淘汰策略 设置过期时间 expire key <timeout>只能对主hash表中的键设置过期时间。 查…...

【LeetCode: 94. 二叉树的中序遍历 + 栈】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...

Python系列 - MQTT协议
Python系列 - MQTT协议 资源连接 MQTT的介绍和应用场景的示例说明 一、什么是MQTT 百度关于MQTT的介绍如下: MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布订阅范式的消息协议。它工作在 TCP/IP协议之上,是为硬件性能低下的远程设…...
同时在github和gitee配置密钥
同时在github和gitee配置密钥 1. 生成不同的 SSH 密钥 为每个平台生成单独的 SSH 密钥。 # 为 GitHub 生成密钥(默认文件路径为 ~/.ssh/github_id_rsa) ssh-keygen -t rsa -b 4096 -C "your_github_emailexample.com" -f ~/.ssh/github_id_…...
Runway 技术浅析(六):文本到视频(Text-to-Video)
1. 核心组件与工作原理 1.1 自然语言处理(NLP) 1.1.1 文本解析与语义理解 文本到视频的第一步是将用户输入的自然语言文本解析为机器可理解的语义信息。Runway 使用预训练的 NLP 模型,如 GPT-3 和 BERT,这些模型通过大规模文本数…...

云计算vspere 安装过程
1 材料的准备 1 安装虚拟机 vmware workstation 2 安装esxi 主机 3 在esxi 主机上安装windows 2018 dns 服务器 4 在虚拟机上安装windows 2018 服务器 6 安装vcenter 5 登入界面测试 这里讲一下,由于部署vspere 需要在windows 2012 服务器上部…...

QT 实现QStackedWidget切换页面右移动画
1.实现效果 以下是一个QStackedWidget,放了两个QPushButton在上面,点击切换不同的界面。 为了方便查看动画特效,设置了每个界面的背景图片。 2.实现思路 首先截取当前界面的图片,渲染到一个QLabel上,然后设置QPropertyAnimation动画,动画的作用对象就是这个QLabel,不断…...

Android Camera2采集并编码为H.264
前言 本篇博文主要讲述的是基于Android原生MediaCodec通过Camera2 API进行图像数据采集并编码为H.264的实现过程,如果对此感兴趣的不妨驻足观看,也欢迎大家大家对本文中描述不当或者不正确的地方进行指正。如果对于Camera2预览还不熟悉的可以观看博主上…...

DHCP和DNS
DHCP(动态主机配置协议)和DNS(域名系统)是计算机网络中两个重要的协议,它们在网络的管理和使用中发挥着关键作用。 DHCP(动态主机配置协议) 基本功能 自动分配IP地址:DHCP允许网…...

ONES 功能上新|ONES Project 甘特图再度升级
ONES Project 甘特图支持展示工作项标题、进度百分比、依赖关系延迟时间等信息。 应用场景: 在使用甘特图规划项目任务、编排项目计划时,可以对甘特图区域进行配置,展示工作项的工作项标题、进度百分比以及依赖关系延迟时间等维度,…...

<工具 Claude Desktop> 配置 MCP server 连接本地 SQLite, 本机文件夹(目录) 网络驱动器 Windows 11 系统
也是在学习中... 起因: 抖音博客 艾克AI分享 他的视频 #143《Claude开源MCP彻底打破AI的信息孤岛》 提到: Claude开源的MCP太强了,视频后面是快速演示,反正看了好几遍也没弄明白。菜单都不一样,感觉用的不是同一家 Claude. 探…...

GIT的使用方法以及汉化方法
1.下载git软件,可以从官网下载 下载后默认安装即可。 2.找到一个文件夹,或者直接打开gitbash gitbash可以使用cd指令切换目录的 打开后输入 git clone https:[git仓库的网页]即可克隆仓库 就是这个地址 克隆后即可使用代码 如果忘记了命令可以使用 -…...
公因子的数目
给你两个正整数 a 和 b ,返回 a 和 b 的 公 因子的数目。 如果 x 可以同时整除 a 和 b ,则认为 x 是 a 和 b 的一个 公因子 。 输入:a 12, b 6 输出:4 解释:12 和 6 的公因子是 1、2、3、6 。 class Solution {pu…...
数据结构(三)——双向链表的介绍以及实现
前言 前面两期数据结构的文章我们介绍了顺序表和单向链表,那么本篇博文我们将来了解双向链表,作为最好用的一种链表,双向链表有什么特殊之处呢,接下来就让我们一起了解一下吧。 下面是前两篇数据结构的文章: 数据结…...

Webpack开发模式及处理样式资源
一、开发模式介绍 开发模式顾名思义就是我们开发代码时使用的模式。 这个模式下我们主要做两件事: 编译代码,使浏览器能识别运行 开发时我们有样式资源、字体图标、图片资源、html 资源等,webpack 默认都不能处理这些资源,所以我…...
leetcode--设计链表
707.设计链表 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表中的…...
【MySQL】:数据库操作
MySQL 数据库基础理论 2.1 数据库系统概述 介绍数据库系统的基本概念、发展历程、分类及 MySQL 在其中的地位与特点。 2.2 MySQL 数据库体系结构 解析 MySQL 的整体架构,包括服务器层与存储引擎层的功能与交互机制,重点探讨 InnoDB、MyISAM 等存…...
刷蓝桥杯历年考题(更新至15届~)
第十五届 CA组省赛 AcWing5980.训练士兵 方法一:树状数组:O(nlogn) self-complete /*先枚举组团,后分析每个士兵,有一个特点,组团费用是固定的,那当然是让所有士兵一块训练,训练完的士兵也不会有损失当还…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...