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

🌈🌈🌈🌈🌈🌈🌈🌈
欢迎关注公众号(通过文章导读关注:【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.mzph.cn/news/627007.shtml

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

相关文章

第一篇: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 进入对应的开发板

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

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

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

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

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

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

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

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

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

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

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

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

Java 开源扫雷游戏 JMine 发布新版 3.0 及介绍视频

Java 开源扫雷游戏 JMine 发布新版 3.0 及介绍视频 Java 开源扫雷游戏 JMine 是笔者开发的基于 Swing 的 Java 扫雷游戏,现已发布新版 3.0 及其介绍视频。视频请见: https://www.bilibili.com/video/BV1RK4y1z7Qz/ 老版本 JMine 1.2.5 的介绍视频请见…

【python】12.字符串和正则表达式

使用正则表达式 正则表达式相关知识 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具,换句话说正则表达式是一种工具,它定义了字符串的匹配模式(…

机器学习-线性回归

1、线性回归解决的问题 线性回归是利用被称为线性回归方程的最小平方函数对一个或者多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或者多个被称为回归系数的模型参数的线性组合。 2、一元线性回归 一元线性回归分析:找到一条直线能够最大程…

socket网络编程几大模型?看看CHAT是如何回复的?

CHAT回复:网络编程中常见的有以下几种模型: 1. 阻塞I/O模型(Blocking I/O):传统的同步I/O模型,一次只处理一个请求。 2. 非阻塞I/O模型(Non-blocking I/O):应用程序轮询…

S1-12 中断

中断 在计算机系统中,中断(Interrupt)是指某个硬件设备或软件程序发出一个信号,通知 CPU 暂停当前正在执行的任务并转而执行另一个任务。中断用于处理一些需要立即响应、优先级较高的事件,例如输入设备(例…

苹果手机怎么连接电脑?看这里,答案揭晓!

通过连接苹果手机和电脑,用户可以将手机上的照片、视频、音乐、文件等数据传输到电脑中,也可以将电脑中的文件传输到手机中。 这样可以方便地备份手机数据,也可以在电脑中编辑、处理手机中的文件。那么,苹果手机怎么连接电脑呢&a…

Promise面试题合集(问题+答案)

event loop它的执行顺序: 一开始整个脚本作为一个宏任务执行执行过程中同步代码直接执行,宏任务进入宏任务队列,微任务进入微任务队列当前宏任务执行完出队,检查微任务列表,有则依次执行,直到全部执行完执…

使用Nginx作为反向代理服务器在Linux中的最佳实践

在Linux环境下,Nginx因其高效性能、稳定性以及丰富的功能集而广泛用于作为反向代理服务器。以下是在Linux中使用Nginx作为反向代理服务器的最佳实践: 1. 安装与配置 首先,确保你的Linux发行版已经安装了Nginx。大多数Linux发行版都提供了Ng…