【面试突击】计算机网络面试实战(下)

🌈🌈🌈🌈🌈🌈🌈🌈
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术 的推送
发送 资料 可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景、中间件系列笔记和编程高频电子书!

文章导读地址:点击查看文章导读!

感谢你的关注!

🍁🍁🍁🍁🍁🍁🍁🍁

Https 的工作原理

Http 的内容是明文传输的,铭文数据经过中间代理服务器、路由器、wifi 热点等多个物理节点,如果被劫持会导致传输内容完全暴露,因此需要对信息进行加密

Https 是一种通过计算机网络进行安全通信的传输协议,Https 经由 Http 进行通信,利用 SSL/TLS 来加密数据包,HTTPS 在内容传输的加密上使用的是 对称加密,非对称加密 只作用在证书验证阶段

Https 的信任基于预先安装在操作系统中的证书颁发机构(CA)

那么通过 Https 进行通信的流程如下:

证书验证阶段

  1. 浏览器发起 Https 请求
  2. 服务端返回 Https 证书
  3. 客户端验证证书是否合法,如果不合法则提示告警

数据传输阶段

  1. 当证书验证合法后,在本地生成随机数
  2. 通过公钥加密随机数,并把加密后的随机数传输到服务端
  3. 服务端通过私钥对随机数进行解密
  4. 服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输

具体的一些细节可以了解一下,我也发现了一篇比较好的文章,可以看一下:彻底搞懂HTTPS的加密原理

为什么要网络分层?

网络分层可以简化复杂性,提高 模块化程度 和 可维护性

分层之后,各个层次负责特定的功能,每一层不需要关心上层或下层的具体细节,如果需要修改,直接对某个层进行修改即可,不会影响到其他层,这种模块化设计可以使网络系统扩展性更强

并且在网络出现问题时,由于分层的设计,可以根据每一层的职责更容易地定位到问题所在的层次,而不需要了解整个系统

网络模型中各层都有哪些协议?

物理层和数据链路层比较偏向于底层,就不说了

网络层主要的协议有:

  • IP 协议:互联网协议(IP)是网络层的核心协议,负责将数据包从源地址传输到目的地址
  • ICMP 协议:互联网控制消息协议(ICMP)用于在网络设备之间传递控制消息,如错误报告、网络不可达、重定向等。它帮助网络设备诊断和处理网络问题
  • IGMP 协议:互联网组管理协议(IGMP)用于在主机和相邻的路由器之间建立多播组成员关系。它允许主机加入或离开多播组,以便接收特定类型的数据包
  • OSPF 协议:开放最短路径优先(OSPF)是一种内部网关协议(IGP),用于在自治系统(AS)内部的路由器之间交换路由信息,以确定最短路径

传输层主要的协议有:

  • TCP 协议:传输控制协议(TCP)提供了一种可靠的、面向连接的服务。它确保数据按顺序到达目的地,并且没有丢失或损坏
  • UDP 协议:用户数据报协议(UDP)提供了一种无连接、不可靠的服务。它比TCP更快,但不保证数据的完整性和顺序

会话层主要的协议有:

  • RPC(Remote Procedure Call):远程过程调用(RPC)允许程序在一个网络上的客户端请求另一个网络上的服务器执行特定的任务或操作
  • NCP 协议:网络控制协议(NCP)是早期网络协议,用于在客户端和服务器之间建立会话。它在现代网络中已经很少使用

表示层主要的协议有:

  • ASCII:美国信息交换标准代码(ASCII)是一种字符编码标准,用于表示文本数据
  • JPEG:联合图像专家组(JPEG)是一种用于压缩图像的格式,它提供了良好的图像质量和相对较小的文件大小
  • GIF:图形交换格式(GIF)是另一种图像格式,支持动画和透明背景

应用层:

  • FTP:文件传输协议(FTP)用于在网络上传输文件
  • Http:超文本传输协议(HTTP)用于网页的传输,是互联网上最常用的协议之一
  • SMTP:简单邮件传输协议(SMTP)用于发送电子邮件
  • SSH:安全外壳协议(SSH)提供了一种加密的网络服务,用于安全地访问远程计算机
  • DNS:域名系统(DNS)用于将人类可读的域名转换为IP地址,使得用户可以通过网址而不是IP地址来访问网站

三次握手

TCP 三次握手和四次挥手也是网络中比较常问的问题,因为两台机器之间需要通信就需要去建立 TCP 连接,建立 TCP 连接就是通过 TCP 三次握手建立的,通过四次挥手关闭 TCP 连接

TCP 三次握手和四次挥手的细节这里就不说了,之前写过一篇文章,TCP 三次握手和四次挥手

那么面试官可能会问,问什么一定要三次握手呢?

首先,简单来理解的话,通过三次握手,客户端和服务器端都可以证明自己的 接收 和 发送 能力都是正常的,之后才可以正常通信

如果非要举出一个例子,在谢希仁版《计算机网络》中是这样说的,如果 client 发送的第一个 SYN 包并没有丢失,只是在网络中滞留,以致于延误到连接释放以后的某个时间才到达 server。本来这是一个早已失效的报文,但 server 收到此失效报文后,就误认为是 client 再次发出的一个新的连接,于是向 client 发出 SYN+ACK 包,如果不采用三次握手,只要 server 发出 SYN+ACK 包,就建立连接,会导致 client 没有发出建立连接的请求,因此不会理会 server 的 SYN+ACK 包,但是 server 却以为新的连接建立好了,并一直等待 client 发送数据,导致资源被浪费

那么为什么不四次握手呢?

因为三次握手后,建立正常通信就没有问题了,没有必要再继续握手,浪费网络资源

HTTP 是基于 TCP 还是 UDP 呢?

HTTP 协议在 HTTP/1.1 和 HTTP/2 版本都是 基于 TCP 协议 的,而 HTTP/3 是 基于 UDP 协议 传输的,可以根据浏览器查看 HTTP 协议到底是哪个版本的

F12 打开控制台,右键记得选择 Protocol,h2 则代表是 HTTP/2 版本的

在这里插入图片描述

HTTP/1 、HTTP/2 和 HTTP/3 的区别如下:

  • HTTP/1(1997 年推出) 有连接无法复用、队头阻塞、协议开销大和安全因素等多个缺陷
  • HTTP/2(2015 年推出) 通过多路复用、二进制流与 Header 压缩等技术,极大地提高了性能,但是还是存在一些问题
  • HTTP/3(2022 年发布标准) 抛弃 TCP 协议,以全新的视角重新设计 HTTP。其底层支撑是 QUIC 协议,该协议基于 UDP,有 UDP 特有的优势,同时它又取了 TCP 中的精华,实现了即快又可靠的协议

虽然 HTTP/3 版本出现了,但是我们通过浏览器发现,常用的版本还是 HTTP/1.1 和 HTTP/2,为什么呢?(历史原因,比较老的系统使用的还是 1.1 和 2 版本较多,不过目前版本 3 也在逐步推广)

在这里插入图片描述

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

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

相关文章

Qt下载http文件

这是一个有问题的版本: class download_file :public QObject{Q_OBJECT; public:download_file(QString url, QString path);void sendRequest(); public slots:void requestFinished(QNetworkReply* reply); protected:QNetworkAccessManager* httpMgr; private:…

【LeetCode-53】最大子数组和(贪心动归)

LeetCode53.最大子数组和 力扣题目链接: https://leetcode.cn/problems/maximum-subarray/description/ 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,…

第一篇:node的背景及版本的检查

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 前言 Node.js 是一个基于 Chrome V8 JavaScript 引擎…

Linux第23步_安装windows下的STM32CubeProgrammer软件和安装 DFU驱动程序

STM32CubeProgrammer软件是通过USB3.0接口烧写系统软件。 STM32CubeProgrammer需要java运行环境,因此需要安装JAVA软件。 Java 运行环境版本必须是 V1.7 及以上,一定要用 64位的,和win系统一致,否则使用 STM32CubeProgrammer烧…

微信怎么申请小程序商城?一步步教你完成

随着移动互联网的发展,越来越多的企业和个人开始关注微信小程序。微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下就能打开应用。其中,小程序商城因其便捷性和实用性&#xf…

吸嘴旋转对位贴合

背景:高精度贴片机需要在上看相机视觉定位芯片,芯片准确的贴合到leadframe里面。 问题:首先相机手眼标定后,已知视觉相机给出的芯片几何中心位置A1(x1,y1),角度θ1,吸嘴几何中心的位置A2(x2&am…

Embedding:数据的奇妙之变

在深度学习的领域,Embedding是连接符号与连续的一座桥梁。它通过将高维离散数据映射到低维连续向量空间,为大模型提供了更好的处理能力。 在这一部分,我们将深入研究Embedding的基本概念、作用以及在深度学习中的广泛应用。 一、向量Embedd…

如何一台电脑操作两个adb 设备

1.首先使用 adb devies 命令 2.然后使用 adb -s 上面的返回的id号 shell 进入对应的开发板

机器学习:自然语言处理介绍

机器学习在自然语言处理(NLP)领域扮演着关键的角色,它利用算法和统计模型来处理和理解人类语言。以下是一些与机器学习和自然语言处理相关的关键概念和技术: 文本分类: 机器学习可以用于对文本进行分类,例如…

matlab/simulink风电光伏储能虚拟同步机VSG下垂控制虚拟惯量控制,光伏变压减载控制一次调频二次调频研究,储能下垂控制SOC

非无穷大系统! 第一个介绍风光储VSG算例研究。 其中风机采用虚拟惯性控制,下垂控制,网侧采用VSG虚拟同步机控制。储能下垂控制。 上述结果为整个系统的仿真波形,包括频率,pmsg永磁风机出力,储能出力&…

Python 使用类实现装饰器

一、基本原理 使用类实现装饰器的基本原理: 定义一个类,__init__ 方法用于初始化装饰器的状态, __call__ 方法用于定义在调用被装饰函数时所执行的逻辑。通过类创建一个可调用对象(类的实例),该对象在被调用时执行 _…

批量合并PDF 文件的 5 大解决方案

PDF 可以将一个、两个、三个甚至更多的记录封装在一起,以显示完整的信息和用于逻辑和交互式结构化的不同元素。由于 PDF 可以提出多层结构,因此当用户知道如何最大化这种格式时,将所有文件组织到其中非常有效。正如许多经验丰富的用户和 PDF …

中国飞行模拟器行业研究与投资前景报告(2024版)

内容简介: 国外从事飞行模拟器研究的公司主要有加拿大航空电子设备(CAE)公司和MSI公司,法国的泰雷兹公司,美国的飞安国际公司、罗克韦尔•科林斯公司、L3技术公司和红雀模拟飞行技术公司,德国Simtec六自由度运动模拟系统公司等。…

c# 人脸识别的思路

在C#中实现人脸识别,您可以使用诸如虹软ArcFace等第三方人脸识别SDK。以下是一个基于虹软ArcFace SDK的C#人脸识别示例的大致步骤: 安装与引用SDK: 首先,您需要从虹软官网下载适用于C#的ArcFace人脸识别SDK,并将其安装…

运维大模型评测基准OpsEval发布及解读

在2023年CCF国际AIOps挑战赛暨“大模型时代的AIOps”研讨会上,由清华大学、中国科学院计算机网络信息中心、南开大学、必示科技、中兴通讯、中亦科技、腾讯、华为、联想、国泰君安证券、基石数据、Zabbix中国宏时数据、日志易等多家首批社区成员单位共同发布了国内首…

基于Java SSM框架实现新生入学信息管理系统项目【项目源码+论文说明】

基于java的SSM框架实现新生入学信息管理系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认…

基于Java SSM框架实现学生寝室管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现学生寝室管理系统演示 摘要 寝室管理设计是高校为学生提供第二课堂,而我们所在学院多采用半手工管理学生寝室的方式,所以有必要开发寝室管理系统来对进行数字化管理。既可减轻学院宿舍长工作压力,比较系统地对宿舍通告…

省略文字,动态行,查看更多显示全部 组件

备注: 使用 TypeScript 和 React的函数式组件语法。此组件的目的是显示文本,如果文本内容超出了指定的行数,它将显示一个“查看更多”的按钮。当用户点击这个按钮时,将展示全部的文本内容。组件使用了自定义的钩子 useBoundingCli…

JWT相关问题及答案(2024)

1、什么是 JWT,它通常用于什么目的? JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在不同实体之间安全地传输信息。它由三个部分组成:头部(Header)、载…

微信商家转账到零钱如何开通?场景说明

商家转账到零钱是什么? 通过商家转账到零钱这个功能,如果我们系统需要对用户支付费用,比如发放佣金、提成、退款之类的,可以直接转账到用户的微信零钱。 【商家转账到零钱】是【企业付款到零钱】的升级版,2022年5月1…