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

面试计算机网络八股文十问十答第八期

面试计算机网络八股文十问十答第八期

作者:程序员小白条,个人博客

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!

⭐点赞⭐收藏⭐不迷路!⭐

1) TCP到底是什么连接?

TCP(Transmission Control Protocol)是一种在计算机网络中常用的传输层协议,它提供了可靠的、面向连接的数据传输服务。TCP连接是一种面向连接的通信方式,它通过三次握手来建立连接,确保数据的可靠性和有序性。TCP连接是全双工的,意味着数据可以在两个方向上同时传输,而且在通信结束时需要进行四次挥手来关闭连接。

2) HTTP 1.0 和 2.0 有什么区别?

HTTP 1.0 和 HTTP 1.1 的主要区别在于性能和功能上的改进。HTTP 1.1 对持久连接(Keep-Alive)的支持,以及对请求管道(Pipeline)的支持,使得在一个连接上可以发送多个请求,从而减少了建立和关闭连接的开销,提高了性能。而 HTTP 2.0 则在 HTTP 1.x 的基础上引入了多路复用(Multiplexing)、头部压缩(Header Compression)、服务器推送(Server Push)等新特性,进一步提高了性能和效率。

3) HTTP 2.0 和 3.0 有什么区别?

HTTP 3.0 是基于 UDP 协议的 QUIC 协议上的 HTTP 协议,而 HTTP 2.0 是基于 TCP 协议的。HTTP 3.0 使用了 QUIC 协议来解决 TCP 在传输层面上的一些问题,如连接的建立和重传等,从而进一步提高了性能。HTTP 3.0 与 HTTP 2.0 相比,最大的区别在于传输层协议的不同,以及使用了更快的连接建立和传输方式,从而在高延迟和丢包率较高的网络环境下表现更好。

4) HTTP 和 HTTPS 有什么区别?

HTTP(HyperText Transfer Protocol)是一种用于传输超文本数据的协议,它是基于 TCP 协议的。HTTP 是明文传输的,数据在传输过程中不加密,因此存在被窃听和篡改的风险。而 HTTPS(HyperText Transfer Protocol Secure)是在 HTTP 的基础上加入了 SSL/TLS 加密机制,通过使用 SSL/TLS 协议对数据进行加密,从而保证了传输过程的安全性。HTTPS 使用了公钥加密和私钥解密的方式,确保了数据的机密性、完整性和可信度。

5) TCP 是用来解决什么问题?

TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,它主要解决了网络传输中的可靠性和有序性问题。TCP 提供了数据包的重传机制、数据包的排序和流量控制等功能,确保了数据的完整性、顺序性和可靠性。TCP 还通过拥塞控制算法来避免网络拥塞,从而提高了网络的性能和稳定性。

6) TCP 和 UDP 有什么区别?

TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)是两种不同的传输层协议,它们在功能和特性上有很大的区别:

  • 连接性:TCP 是面向连接的,通过三次握手建立连接,而 UDP 是无连接的,每个数据包都是独立的,不需要建立连接。
  • 可靠性:TCP 提供可靠的数据传输服务,通过重传机制和确认机制来确保数据的可靠性和有序性;而 UDP 不保证数据的可靠性,数据包可能会丢失、重复或者乱序。
  • 流量控制:TCP 提供了流量控制功能,通过滑动窗口机制来调节发送方的发送速率,防止数据包的丢失和网络拥塞;而 UDP 没有流量控制功能,发送方发送的数据包速率不受限制。
  • 应用场景:TCP 适用于要求可靠传输、数据量较大、对时序要求严格的应用,如网页浏览、文件下载等;而 UDP 适用于实时性要求高、数据量较小、对实时性要求高的应用,如实时音视频传输、在线游戏等。

7) 为什么要 TCP,IP 层实现控制不行么?

TCP和IP层位于网络协议栈的不同层次,各自负责不同的功能:

  • IP(Internet Protocol)层:负责在网络中传输数据包,并通过 IP 地址来标识网络中的设备。IP 层是一种无连接、不可靠的传输协议,它只负责将数据包从源地址传输到目的地址,并不关心数据包的可靠性和顺序性。
  • TCP(Transmission Control Protocol)层:位于传输层,负责在应用程序之间建立可靠的连接,保证数据的可靠性、有序性和流量控制。TCP 提供了连接的建立、数据的传输、数据的重传、数据的排序、流量的控制等功能,能够适应复杂的网络环境和应用需求。

虽然IP层也可以进行一些简单的控制,但是它不提供连接的建立和管理、数据的可靠性保证以及流量的控制等功能,因此无法满足许多应用对于可靠性和有序性的需求。而TCP层提供了这些功能,能够更好地满足应用的需求,因此在实际应用中通常选择使用TCP协议。

8) TCP 的粘包和拆包能说说吗?

TCP的粘包和拆包是由于TCP是面向流的协议,在发送数据时并不保证数据包的边界,因此可能出现多个发送的数据包被合并成一个或者一个发送的数据包被拆分成多个的情况,这就是粘包和拆包问题。

  • 粘包(Packet Sticking):多个发送的数据包被合并成一个的情况。这可能发生在发送方连续发送多个小数据包时,TCP 在发送端会尽可能地将数据合并成一个更大的数据包进行发送,以提高网络的利用率。
  • 拆包(Packet Splitting):一个发送的数据包被拆分成多个的情况。这可能发生在发送方发送一个大数据包时,TCP 在传输过程中将大数据包拆分成多个小数据包进行传输,然后在接收端进行重新组装。

解决粘包和拆包问题的常用方法包括消息边界标记、消息长度标记、固定长度消息等。

9) 说说 TCP 的三次握手?

TCP的三次握手是建立TCP连接时的一种协商过程,用于确保通信双方的收发能力和可靠性。三次握手的过程如下:

  1. 客户端发送SYN(同步)请求:客户端发送一个特殊的TCP数据包,其中设置SYN标志位为1,并选择一个初始的序列号(ISN)。
  2. 服务器回应SYN-ACK(同步-确认):服务器接收到客户端的SYN请求后,如果同意建立连接,就会发送一个ACK确认包作为应答,并且也设置SYN标志位为1,同时选择自己的初始序列号。
  3. 客户端发送ACK(确认):客户端收到服务器的SYN-ACK后,发送一个ACK确认包,表示连接建立成功。

通过这样的三次握手,客户端和服务器双方都确认了彼此的收发能力和初始序列号,建立了可靠的连接。

10) 初始序列号 ISN 怎么取值的?

初始序列号(Initial Sequence Number,ISN)是在TCP连接建立时由每一端生成的一个随机数,用于标识每个数据包的顺序。ISN的取值通常由以下几个因素决定:

  • 时间戳:ISN的一部分可以是当前的时间戳,这样可以确保每次生成的ISN都是唯一的。
  • 随机数:ISN的另一部分可以是随机数,以增加ISN的随机性,防止恶意攻击者对ISN进行猜测。
  • 其他因素:ISN的取值还可能受到操作系统、TCP实现和网络环境等因素的影响。

由于ISN是一个32位的数值,因此理论上可以有2^32个不同的取值,通常情况下ISN的取值会比较大,以减小被猜测的可能性。

开源项目地址:https://gitee.com/falle22222n-leaves/vue_-book-manage-system

前后端总计已经 1300+ Star,2W+ 访问!

⭐点赞⭐收藏⭐不迷路!⭐

相关文章:

面试计算机网络八股文十问十答第八期

面试计算机网络八股文十问十答第八期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1) TCP到底是什么连接? …...

0605-JavaSE-单例模式-饿懒汉模式

​​​​​​​ 不能放在方法里面(因为每个线程调用都会在方法里面实例化一个locker对象,但不属于同一个对象),然后要用static修饰成静态变量才会起到效果 //单例设计模式 //饿汉模式:在加载类的时候就已经开始创建 /…...

TCP和UDP区别

TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)都是Internet协议套件中的传输层协议,但它们在工作方式、特性和适用场景上有显著区别&#xff…...

[Shell编程学习路线]——编制第一个shell脚本入门篇

🏡作者主页:点击! 🛠️Shell编程专栏:点击! ⏰️创作时间:2024年6月12日10点23分 🀄️文章质量:93分 目录 ——前言—— 💥常用的几种shell Bash Sh …...

python数据处理分析库(一)

目录 一、NumPy 二、Pandas 三、Matplotlib and Seaborn 一、NumPy 场景:处理大规模数组和矩阵运算,可以用于科学计算、数据预处理简单示例: import numpy as npdata np.array([1, 2, 3, 4, 5]) mean np.mean(data) std_dev np.std(da…...

使用Transformer进行抄袭检测

动机 在许多行业中,尤其是在学术界,抄袭是一个重大问题。随着互联网和开放信息的兴起,这种现象甚至变得更加严重,任何人都可以通过点击访问特定主题的任何信息。 基于这一观察,研究人员一直在尝试使用不同的文本分析…...

基于深度学习的电池健康状态预测(Python)

电池的故障预测和健康管理PHM是为了保障设备或系统的稳定运行,提供参考的电池健康管理信息,从而提醒决策者及时更换电源设备。不难发现,PHM的核心问题就是确定电池的健康状态,并预测电池剩余使用寿命。但是锂电池的退化过程影响因…...

【吊打面试官系列-Mysql面试题】MySQL 如何优化 DISTINCT?

大家好,我是锋哥。今天分享关于 【MySQL 如何优化 DISTINCT?】面试题,希望对大家有帮助; MySQL 如何优化 DISTINCT? DISTINCT 在所有列上转换为 GROUP BY,并与 ORDER BY 子句结合使用。 SELECT DISTINCT t…...

企业IT运维管理体系-总体规划

企业IT运维管理体系-总体规划 企业IT运维管理体系的总体规划通过科学的调研、分析、设计和建设,提升管理成熟度、增强服务能力、实现技术创新和优化资源配置。重点在于建立组织保障体系、制定运维制度、构建运维平台和完善度量指标。通过明确运维治理模式和外包管理…...

RabbitMQ-Stream(高级详解)

文章目录 什么是流何时使用 RabbitMQ Stream?在 RabbitMQ 中使用流的其他方式基本使用Offset参数chunk Stream 插件服务端消息偏移量追踪示例 示例应用程序RabbitMQ 流 Java API概述环境创建具有所有默认值的环境使用 URI 创建环境创建具有多个 URI 的环境 启用 TLS…...

Web前端图片并排显示的艺术与技巧

Web前端图片并排显示的艺术与技巧 在Web前端开发中,图片并排显示是一种常见的布局需求。然而,实现这一目标并非易事,需要掌握一定的技巧和艺术。本文将从四个方面、五个方面、六个方面和七个方面深入探讨Web前端图片并排显示的奥秘。 四个方…...

豆瓣电影信息爬虫【2024年6月】教程

豆瓣电影信息爬虫【2024年6月】教程,赋完整代码 在本教程中,我们将使用以下技术栈来构建一个爬虫,用于爬取豆瓣电影列表页面的信息: 完整代码放到最后 ; 完整代码放到最后 ; 完整代码放到最后 ;…...

Flutter- AutomaticKeepAliveClientMixin 实现Widget保持活跃状态

前言 在 Flutter 中,AutomaticKeepAliveClientMixin 是一个 mixin,用于给 State 类添加能力,使得当它的内容滚动出屏幕时仍能保持其状态,这对于 TabBarView 或者滚动列表中使用 PageView 时非常有用,因为这些情况下你…...

《计算机组成原理》期末复习题节选

第三章–存储系统 3.1 存储器性能指标 核心公式: 存储容量存储字数*字长 ,存储字数表示存储器的地址空间的大小,字长表示一次存取操作的数据量.数据传输率数据宽度/存储周期 1、设机器字长为32位,一个容量为16MB的存储器&…...

NSSCTF中的popchains、level-up、 What is Web、 Interesting_http、 BabyUpload

目录 [NISACTF 2022]popchains [NISACTF 2022]level-up [HNCTF 2022 Week1]What is Web [HNCTF 2022 Week1]Interesting_http [GXYCTF 2019]BabyUpload 今日总结&#xff1a; [NISACTF 2022]popchains 审计可以构造pop链的代码 <php class Road_is_Long{public $…...

量产维护 | 芯片失效问题解决方案:从根源找到答案

芯片失效分析是指对电子设备中的故障芯片进行检测、诊断和修复的过程。芯片作为电子设备的核心部件,其性能和可靠性直接影响整个设备的性能和稳定性。 随着半导体技术的迅速发展,芯片在各个领域广泛应用,如通信、计算机、汽车电子和航空航天等。 因此,对芯片故障原因进行…...

Linux忘记密码的解决方法

1、进入GRUB页面&#xff0c;选择对应的内核按下‘e’键&#xff1b; 2、进入内核修改信息界面&#xff0c;找到Linux这一行&#xff0c;在这一行的末尾加上 init/bin/sh 按下ctrlx进入单用户模式 3、进入单用户后&#xff0c;重新挂载根目录&#xff0c;使其可写&#xff1…...

数据结构(DS)学习笔记(二):数据类型与抽象数据类型

参考教材&#xff1a;数据结构C语言版&#xff08;严蔚敏&#xff0c;杨伟民编著&#xff09; 工具&#xff1a;XMind、幕布、公式编译器 正在备考&#xff0c;结合自身空闲时间&#xff0c;不定时更新&#xff0c;会在里面加入一些真题帮助理解数据结构 目录 1.1数据…...

【C++进阶】模板与仿函数:C++编程中的泛型与函数式编程思想

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;栈和队列相关知识 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀模板进阶 &#x1f9e9;<&…...

华安保险:核心系统分布式升级,提升保费规模处理能力2-3倍 | OceanBase企业案例

在3月20日的2024 OceanBase数据库城市行的活动中&#xff0c;安保险信息科技部总经理王在平发表了以“保险行业核心业务系统分布式架构实践”为主题的演讲。本文为该演讲的精彩回顾。 早在2019年&#xff0c;华安保险便开始与OceanBase接触&#xff0c;并着手进行数据库的升级…...

从CANoe实战出发:深度解析UDS网络层诊断中的流控帧(FC)与时间参数STmin

从CANoe实战解析UDS流控帧&#xff1a;FC与STmin参数调优指南 在汽车电子测试领域&#xff0c;UDS诊断协议的网络层流控机制直接影响着ECU通信的可靠性与效率。当测试工程师在CANoe环境中模拟诊断会话时&#xff0c;经常会遇到因流控帧参数配置不当导致的报文丢失、响应超时等问…...

5分钟Git指南

Git——一个版本控制系统 了解Git当你建立了一个Git版本库&#xff0c;那么存放.git&#xff08;也就是版本库&#xff09;的文件夹就被称为工作区&#xff0c;.git内部有一个暂存区&#xff0c;一个叫做master的分支&#xff0c;一个HEAD指针能够指向分支中不同版本的文件&…...

POTS与VoIP技术演进:从电路交换到分组交换的可靠性之争与实战指南

1. 项目概述&#xff1a;当技术演进遭遇“顽固”的用户体验作为一名在通信行业摸爬滚打了十几年的工程师&#xff0c;我最近读到一篇2015年的老文章&#xff0c;标题挺有意思&#xff0c;叫《给POTS&#xff08;普通老式电话服务&#xff09;的心脏钉上木桩&#xff1f;》。作者…...

终极指南:如何一键下载网易云音乐无损FLAC格式歌曲

终极指南&#xff1a;如何一键下载网易云音乐无损FLAC格式歌曲 【免费下载链接】NeteaseCloudMusicFlac 根据网易云音乐的歌单, 下载flac无损音乐到本地.。 项目地址: https://gitcode.com/gh_mirrors/nete/NeteaseCloudMusicFlac 你是否曾为无法下载网易云音乐的无损音…...

Go项目安全左移实践:集成Security-Shield实现自动化漏洞与密钥检测

1. 项目概述与核心价值 在当今的软件开发与运维实践中&#xff0c;应用安全已经从“附加题”变成了“必答题”。无论是个人开发者的小型项目&#xff0c;还是企业级的复杂系统&#xff0c;都面临着来自网络的各种潜在威胁。然而&#xff0c;安全工具的引入往往伴随着陡峭的学习…...

告别SSH命令行:用VSCode的Log Viewer插件实时监控Linux syslog日志(附C程序测试)

告别终端监控&#xff1a;在VSCode中实现Linux系统日志可视化追踪 每次调试服务器应用时&#xff0c;你是否也厌倦了在SSH终端和代码编辑器之间反复切换&#xff1f;那些不断滚动的tail -f输出窗口不仅占用宝贵屏幕空间&#xff0c;还让问题排查变成了一场视觉追踪游戏。对于现…...

AI搜索优化效果哪家好

传统行业获客越来越难&#xff0c;价格战打得头破血流&#xff0c;这是过去三年我听得最多的抱怨。但就在上个月&#xff0c;我用一个完全不同的方法&#xff0c;让公司的获客成本从单次300元降到了不到30元。秘密就在AI搜索优化&#xff0c;而这30天的实测&#xff0c;让我对市…...

基于大语言模型的银行对账单自动化分析与财务预测实战

1. 项目概述&#xff1a;当大语言模型遇上个人财务分析最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“AI银行对账单文档自动化与个人财务分析预测”。光看这个标题&#xff0c;就能感觉到一股浓浓的“技术赋能生活”的味道。简单来说&#xff0c;这个项目想干的事儿&am…...

UWB-IMU、UWB定位对比研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

流处理优化:提高实时数据处理性能

流处理优化&#xff1a;提高实时数据处理性能 一、流处理优化概述 1.1 流处理优化的定义 流处理优化是指通过优化流处理系统的性能、吞吐量和延迟&#xff0c;提高实时数据处理能力的过程。它涉及优化数据处理管道、资源配置和算法实现。 1.2 流处理优化的价值 低延迟&#xff…...