当前位置: 首页 > news >正文

前端热门面试题目(四)——计算机网路篇

计算机网络常见面试题:
计算机网络面试(一)
计算机网络面试(二)
计算机网络速成:
计算机网络速成一
计算机网络速成二
计算机网络速成三

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 主要解决以下问题:

  1. 数据可靠性
    • 保证数据包按顺序到达。
    • 丢失的数据包可以重传。
  2. 流量控制
    • 避免发送方传输速度过快导致接收方无法处理。
  3. 拥塞控制
    • 防止网络过载。
  4. 双向通信
    • 提供面向连接的双向可靠通信。

7. TCP 和 UDP 的区别

  • 连接性

    • TCP 是面向连接的,需要建立连接(三次握手)。
    • UDP 是无连接的,不需要握手,直接发送数据。
  • 可靠性

    • TCP 提供可靠传输,数据丢失时可重传。
    • UDP 不提供保证,可能出现数据丢失。
  • 速度

    • TCP 较慢,适合需要可靠传输的场景(如文件传输、网页)。
    • UDP 较快,适合对时延敏感的场景(如实时视频、游戏)。
  • 数据传输

    • TCP 按序传输,保证数据完整性。
    • UDP 不保证数据顺序。

8. TCP 的粘包和拆包问题

  • 粘包:多条数据在传输过程中被接收方合并为一条。
  • 拆包:一条数据在传输过程中被分成多条。

原因

  1. 粘包
    • 发送方将多条数据连续发送,接收方一次性读取了多条。
    • 发送数据长度小于发送缓冲区的大小。
  2. 拆包
    • 数据过大,超过了缓冲区大小,被拆分成多次发送。

解决方法
3. 固定消息长度:预设每条消息的固定长度。
4. 分隔符:在每条消息后添加特殊的分隔符(如换行符)。
5. 消息头:消息开头加上长度字段,告知接收方本条消息的长度。

1. TCP 的三次握手

TCP 的三次握手是建立连接的过程,用来确保通信双方已经准备好,能可靠地进行数据传输。

  • 第一步:客户端发送 SYN 报文,表示请求建立连接,同时初始序列号(Seq=x)。
  • 第二步:服务器收到后,返回 SYN+ACK 报文,表示同意建立连接,同时发送自己的初始序列号(Seq=y),并确认客户端的序列号(Ack=x+1)。
  • 第三步:客户端收到后,再次发送 ACK 报文,确认服务器的序列号(Ack=y+1),连接建立成功。

三次握手的目的:

  1. 确保双方的发送能力和接收能力正常。
  2. 同步序列号,初始化双方的数据传输状态。

2. TCP 的四次挥手

TCP 的四次挥手是断开连接的过程,确保双方都能安全地释放资源。

  • 第一步:客户端发送 FIN 报文,表示不再发送数据,但还能接收数据。
  • 第二步:服务器收到后,返回 ACK 报文,表示已接收到客户端的 FIN。
  • 第三步:服务器发送 FIN 报文,表示不再发送数据。
  • 第四步:客户端收到后,返回 ACK 报文,确认断开连接。

断开连接比建立连接多两次通信,因为 TCP 是全双工通信,双方需要分别确认对方不再发送数据。


3. TCP 为什么需要 TIME WAIT 状态

  • TIME WAIT 的作用

    1. 确保最后的 ACK 报文被对方收到:如果服务器未收到 ACK,会重发 FIN。TIME WAIT 确保客户端能接收并处理这些重发的 FIN。
    2. 防止旧连接数据干扰新连接:等待足够时间,让网络中可能残留的旧数据包完全消失。
  • TIME WAIT 的持续时间
    通常是 2 倍的最大报文生存时间(2MSL)。


4. TCP 超时重传机制

  • 解决的问题
    当数据包在传输中丢失或未及时收到确认时,通过超时重传机制重新发送,确保数据可靠传输。

  • 机制流程

    1. 发送数据包后启动计时器。
    2. 若在超时时间内未收到 ACK,重新发送数据。
    3. 每次超时重传会增大等待时间(指数退避算法)。
  • 典型场景
    网络拥塞、传输路径中断等导致的确认丢失。


5. TCP 滑动窗口的作用

TCP 滑动窗口是一种流量控制机制,用于动态调整发送方能发送的最大数据量,以避免接收方或网络过载。

  • 工作原理

    1. 窗口大小由接收方设置,告知发送方当前可接收的数据量。
    2. 窗口随接收的确认数据滑动,允许发送方发送更多数据。
  • 作用

    1. 提高传输效率:允许发送方在等待 ACK 的同时继续发送数据。
    2. 避免拥塞:通过动态调整窗口大小控制发送速率。

6. TCP/IP 四层模型

TCP/IP 是网络通信协议的基础模型,共分为四层:

  1. 应用层
    • 提供应用程序间的通信接口。
    • 协议:HTTP、FTP、SMTP、DNS。
  2. 传输层
    • 提供端到端的可靠或非可靠传输。
    • 协议:TCP、UDP。
  3. 网络层
    • 负责路由和数据包的转发。
    • 协议:IP、ICMP。
  4. 链路层
    • 负责数据帧的封装和物理传输。
    • 包括以太网、Wi-Fi 等。

7. OSI 七层模型

OSI 是理论上的网络通信模型,共分为七层:

  1. 物理层
    • 传输比特流,定义硬件接口。
    • 如网线、光纤。
  2. 数据链路层
    • 负责帧的传输和差错检测。
    • 如以太网协议。
  3. 网络层
    • 负责寻址和路由选择。
    • 如 IP 协议。
  4. 传输层
    • 提供端到端通信。
    • 如 TCP、UDP。
  5. 会话层
    • 管理会话和数据同步。
  6. 表示层
    • 负责数据格式转换和加密。
  7. 应用层
    • 提供用户接口。
    • 如 HTTP、FTP。

8. Cookie、Session、Token 的区别

特性CookieSessionToken
存储位置浏览器(客户端)服务器客户端,可能会临时存储在本地
状态保持无状态(需要每次随请求发送)有状态(服务器存储会话信息)无状态(包含自身验证信息)
生命周期可持久(设定过期时间)短暂(默认关闭浏览器即失效)取决于设计,通常有过期时间
安全性较低,容易被窃取和伪造较高,数据存储在服务器端较高,加密且不依赖服务器状态
使用场景简单用户偏好、保持登录状态用户认证、状态管理分布式系统、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值淘汰策略&#xff1b;2.redis主从复制原理&#xff1b;3.redis的哨兵模式&#xff1b;4.redis集群模式。 1. 淘汰策略 设置过期时间 expire key <timeout>只能对主hash表中的键设置过期时间。 查…...

【LeetCode: 94. 二叉树的中序遍历 + 栈】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

Python系列 - MQTT协议

Python系列 - MQTT协议 资源连接 MQTT的介绍和应用场景的示例说明 一、什么是MQTT 百度关于MQTT的介绍如下&#xff1a; MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布订阅范式的消息协议。它工作在 TCP/IP协议之上&#xff0c;是为硬件性能低下的远程设…...

同时在github和gitee配置密钥

同时在github和gitee配置密钥 1. 生成不同的 SSH 密钥 为每个平台生成单独的 SSH 密钥。 # 为 GitHub 生成密钥&#xff08;默认文件路径为 ~/.ssh/github_id_rsa&#xff09; ssh-keygen -t rsa -b 4096 -C "your_github_emailexample.com" -f ~/.ssh/github_id_…...

Runway 技术浅析(六):文本到视频(Text-to-Video)

1. 核心组件与工作原理 1.1 自然语言处理&#xff08;NLP&#xff09; 1.1.1 文本解析与语义理解 文本到视频的第一步是将用户输入的自然语言文本解析为机器可理解的语义信息。Runway 使用预训练的 NLP 模型&#xff0c;如 GPT-3 和 BERT&#xff0c;这些模型通过大规模文本数…...

云计算vspere 安装过程

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

QT 实现QStackedWidget切换页面右移动画

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

Android Camera2采集并编码为H.264

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

DHCP和DNS

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

ONES 功能上新|ONES Project 甘特图再度升级

ONES Project 甘特图支持展示工作项标题、进度百分比、依赖关系延迟时间等信息。 应用场景&#xff1a; 在使用甘特图规划项目任务、编排项目计划时&#xff0c;可以对甘特图区域进行配置&#xff0c;展示工作项的工作项标题、进度百分比以及依赖关系延迟时间等维度&#xff0c…...

<工具 Claude Desktop> 配置 MCP server 连接本地 SQLite, 本机文件夹(目录) 网络驱动器 Windows 11 系统

也是在学习中... 起因&#xff1a; 抖音博客 艾克AI分享 他的视频 #143《Claude开源MCP彻底打破AI的信息孤岛》 提到: Claude开源的MCP太强了&#xff0c;视频后面是快速演示&#xff0c;反正看了好几遍也没弄明白。菜单都不一样&#xff0c;感觉用的不是同一家 Claude. 探…...

GIT的使用方法以及汉化方法

1.下载git软件&#xff0c;可以从官网下载 下载后默认安装即可。 2.找到一个文件夹&#xff0c;或者直接打开gitbash gitbash可以使用cd指令切换目录的 打开后输入 git clone https:[git仓库的网页]即可克隆仓库 就是这个地址 克隆后即可使用代码 如果忘记了命令可以使用 -…...

公因子的数目

给你两个正整数 a 和 b &#xff0c;返回 a 和 b 的 公 因子的数目。 如果 x 可以同时整除 a 和 b &#xff0c;则认为 x 是 a 和 b 的一个 公因子 。 输入&#xff1a;a 12, b 6 输出&#xff1a;4 解释&#xff1a;12 和 6 的公因子是 1、2、3、6 。 class Solution {pu…...

数据结构(三)——双向链表的介绍以及实现

前言 前面两期数据结构的文章我们介绍了顺序表和单向链表&#xff0c;那么本篇博文我们将来了解双向链表&#xff0c;作为最好用的一种链表&#xff0c;双向链表有什么特殊之处呢&#xff0c;接下来就让我们一起了解一下吧。 下面是前两篇数据结构的文章&#xff1a; 数据结…...

Webpack开发模式及处理样式资源

一、开发模式介绍 开发模式顾名思义就是我们开发代码时使用的模式。 这个模式下我们主要做两件事&#xff1a; 编译代码&#xff0c;使浏览器能识别运行 开发时我们有样式资源、字体图标、图片资源、html 资源等&#xff0c;webpack 默认都不能处理这些资源&#xff0c;所以我…...

leetcode--设计链表

707.设计链表 你可以选择使用单链表或者双链表&#xff0c;设计并实现自己的链表。 单链表中的节点应该具备两个属性&#xff1a;val 和 next 。val 是当前节点的值&#xff0c;next 是指向下一个节点的指针/引用。 如果是双向链表&#xff0c;则还需要属性 prev 以指示链表中的…...

【MySQL】:数据库操作

MySQL 数据库基础理论 2.1 数据库系统概述 介绍数据库系统的基本概念、发展历程、分类及 MySQL 在其中的地位与特点。 2.2 MySQL 数据库体系结构 解析 MySQL 的整体架构&#xff0c;包括服务器层与存储引擎层的功能与交互机制&#xff0c;重点探讨 InnoDB、MyISAM 等存…...

刷蓝桥杯历年考题(更新至15届~)

第十五届 CA组省赛 AcWing5980.训练士兵 方法一&#xff1a;树状数组:O(nlogn) self-complete /*先枚举组团&#xff0c;后分析每个士兵&#xff0c;有一个特点&#xff0c;组团费用是固定的&#xff0c;那当然是让所有士兵一块训练&#xff0c;训练完的士兵也不会有损失当还…...

AI与BI的火花:大语言模型如何重塑商业智能的未来

大家好&#xff0c;我是独孤风。 在当今这个数据驱动的时代&#xff0c;企业对于信息的需求如同对于氧气的需求一般至关重要。商业智能&#xff08;BI&#xff09;作为企业获取、分析和呈现数据的关键工具&#xff0c;正在经历一场深刻的变革&#xff0c;而这一变革的催化剂正是…...

Qt 详解QtNFC 读写模式

文章目录 Qt NFC 读写模式详解1. NFC 读写模式简介1.1 什么是 NFC 读写模式&#xff1f;主要功能&#xff1a; 1.2 常见应用场景 2. Qt NFC 读写模式原理3. 配置 QtNFC 模块4. NFC 读写操作实现4.1 NFC 标签读取代码示例功能解析 4.2 NFC 标签写入代码示例功能解析 5. 使用注意…...

增删改查文档

列表 : 列表包含 : 模糊查找 分页 列表jsp页面 : 一 :导入外部文件 (举例 : 用户点进来就可以看到菜单,这是预加载属于,使用文档就绪函数实现) 二 : body 上 ① : 文档就绪函数 ${ function() //获取条件查询的字段 //组装对象 //调用文档就绪函数 } ② : 封装ajax方…...

C语言蓝桥杯2023年省赛真题

文章目录 持续更新中...第一题题目描述输入格式输出格式样例输出提示 2 第二题题目描述 第三题题目描述输入格式输出格式样例输入样例输出 第四题题目描述输入格式输出格式样例输入样例输出提示 第四题题目描述输入格式输出格式样例输入样例输出提示 第五题题目描述输入格式输出…...

Python迭代器-大数据量的处理

一 生成器的实际使用&#xff08;大量数据的导出&#xff09; #分批导出数据然后分批写入excel import pandas as pd import openpyxl from openpyxl.utils.dataframe import dataframe_to_rowsdef execute_query(query):# 假设这是执行 SQL 查询的函数# 返回查询结果passdef …...

自动化包括态交互与感交互,而智能化包括势交互与知交互

“自动化包括态交互与感交互&#xff0c;而智能化包括势交互与知交互”交互框架将交互过程划分为不同类型&#xff0c;有助于更清晰地理解自动化和智能化的本质及其在未来agent应用中的差异与联系。 1. 自动化&#xff1a;态交互与感交互 自动化主要关注的是高效、无差错地执行…...

VideoBooth: Diffusion-based Video Generation with Image Prompts

VideoBooth: Diffusion-based Video Generation with Image Prompts 概括 文章提出了一个视频生成模型VideoBooth&#xff0c;输入一张图片和一个文本提示词&#xff0c;即可输出保持图片中物体且符合文本提示词要求的视频。 方法 粗-细两阶段设计&#xff1a;1&#xff09;…...

模拟简单的iOT工作流

没有实际接触过iOT的流程&#xff0c;应该实际使用比这个接口返回要复杂&#xff0c;只是演示~希望能参与实际的接口接入&#xff0c;而不是只展示个假数据。 启动RabbitQ 使用的是3.8.5 启动命令 RabbitMQ Service - start RabbitMQ Command Prompt rabbitmqctl start_app …...

C++学习0.2: RAII

引用&#xff1a; 【代码质量】RAII在C编程中的必要性_raii 在c中的重要性-CSDN博客 C RAII典型应用之lock_guard和unique_lock模板_raii lock-CSDN博客 前言: 常用的线程间同步/通信&#xff08;IPC&#xff09;方式有锁&#xff08;互斥锁、读写锁、自旋锁&#xff09;、…...

k8s,进一步理解Pod

比如&#xff0c;凡是调度、网络、存储&#xff0c;以及安全相关的属性&#xff0c;基本上是Pod 级别的。 这些属性的共同特征是&#xff0c;它们描述的是“机器”这个整体&#xff0c;而不是里面运行的“程序”。比如&#xff0c;配置这个“机器”的网卡&#xff08;即&#…...