计算机网络知识复习

news2024/12/29 9:53:14

目录

TCP/IP协议群做了哪些事情?

TCP协议为什么是3次握手,4次挥手?

如果网络延迟是30ms,那么Ping(基于UDP的)一个网站需要多少ms?

如果请求一个HTTP协议的网站,TTFB至少ms?

CDN更换图片?

一次DNS查询最快和最慢差距有多大?

HTTP长连接什么时候断开?

请简述什么是Restful?

强制缓存和协商缓存的区别?

正向代理和反向代理有什么区别?

什么是https中间人攻击?

Base64上传和blob上传用哪个更好?

解决跨域的手段?

移动端通常你关注哪些前端指标?(web-vitals)

移动端网络性能优化策略


TCP/IP协议群做了哪些事情?

  1. 报文拆分(传输设备一次传不了太多东西,所以拆分)
  2. 增加协议头(给每个拆分后的封包增加协议头)
  3. 数据传输
  4. 路由和寻址(发出~收到,要经过很多路由,很多服务器,每到一个中转站都要封包和寻址计算下一个中转站去哪里)
  5. 数据重组

TCP协议为什么是3次握手,4次挥手?

双向通信,握手挥手都是4次通信,只是连接(握手)时把服务端和回应,同步请求合并发送了。

1.要保证程序的可靠性,就是你发一条消息,它回应你一下他收到这个消息了

创建连接时,因为是刚开始建立连接,不存在进行中的传输,所以服务端可以:回应收到客户端的消息,同步请求合并。这2步合并了

2.挥手的时候是4次,因为在结束连接时,可能存在正在进行的传输,接收者要等进行中的响应数据结束,才能发起fin断开请求,所以接收到发起者的断开请求,回应接收到了,不能和接收者发起断开请求一起发给发起者。所以就是4次挥手

如果网络延迟是30ms,那么Ping(基于UDP的)一个网站需要多少ms?

RTT(Round  Trip Time)双程时间,60ms*2 + 30ms,要计2次

不是RTT,60ms + 30ms,因为Ping一个网站不需要握手,用30ms请求,30ms收到第一个bit(UDP)

如果请求一个HTTP协议的网站,TTFB至少ms?

TTFB(Time To First Bit)第一个Bit回来

(TCP)3次握手 30ms*3 顺便打个招呼Hello

server Hello/公钥证书 30ms

协商秘钥一个来回 30ms * 2 服务端携带1bit

总计180ms,如果延迟是30ms 就加上30ms

CDN更换图片?

一定要换名字,换版本都不一定靠谱

建议以图片内容生成hash值作为图片名字

一次DNS查询最快和最慢差距有多大?

最快就是本机有DNS缓存。

 

计算机操作是(纳秒级别的)

光速是(10纳秒)

最慢,就要经历下面这些步骤了

  1. 本机 (微秒)
  2. 局域网 (毫秒)
  3. 本地网络服务提供商 (300ms)
  4. 国家级(世界级)网络服务提供商(ROOT)目录
  5. Name Server(目录)命名服务器 www.baidu
  6. 权威服务器 (秒级)

HTTP长连接什么时候断开?

计时,超时断开连接,客户端和服务端协商超时时间,维护一个长连接,

2个请求超过超时时间,就会断开

http2.0请求头部比较大,不是二进制请求,传输效率低,keep-alive用来做IM用着没有web socket好

请简述什么是Restful?

状态表示(Represent)

业务状态 (State)

改变状态的方法(Transfer)

上面3个组在一起就是Restful(状态表示方法)

PUT 是 幂等 同样数据提交多少次都是一个数据

POST 非幂等

PUT /order

POST /order

PUT /order/12

强制缓存和协商缓存的区别?

都是缓存。

缓存地方

  • 端:app,小程序
  • 路由、网关

强制缓存:缓存多少时间是确定的,过期之前,不会再请求数据(更快)

协商缓存:每次都请求数据,会对比标记tag(摘要)是否变更,没变就返回空数据,变了就返回新数据(更灵活)(例:全国城市地区,用协商缓存)减少传输数据

正向代理和反向代理有什么区别?

(正向)代理:游戏代理、上网用的代理

特点:用户明确的知道我在用代理服务器。要购买使用。要启动客户端,选则节点(代理节点)数据发送给节点,节点帮我请求数据。

反向代理:用户不知道遇到了代理(负载均衡)

什么是https中间人攻击?

 核心是:它先要想办法,让你自己装上非法的根证书,

 

Base64上传和blob上传用哪个更好?

看具体场景

0~5kb Base64上传也可以,特点是用4个字节解释原本的3个字节,包会变大一些。

超过5kb的建议直接用blob二进制上传。

解决跨域的手段?

websocket跨不跨域?都跨协议了,http->websocket

移动端通常你关注哪些前端指标?(web-vitals)

移动端网络性能优化策略

  • 代理(什么都可以解决,有性能损失,链路变长了。)
  • Jsonp(<script>不标准)
  • CORS(常见,Option几分钟的强制缓存)
  • iframe页面通信:postMessage
  • FCP(第一次绘制内容【白屏时间长短】)
  • TTI(用户可以操作页面内容)
  • 跳出率(用户进来什么都没操作就离开了)
  • CPU占用(前端程序写的性能好不好)
  • HTTP缓存(静态资源设置合理缓存)
  • CDN(资源分发)
  • 预加载webview
  • server push(一次请求html,可以带着js,css)一个文件可以节省百毫秒
  • 离线包
  • 压缩
  • service worker(fetch->js/css,它可以劫持,把本地缓存给他;js更新,它会提前缓存下来,你一刷新,就给你这个缓存js)

 

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

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

相关文章

WeakMap 与 WeakSet

WeakSet WeakSet 结构与 Set 类似&#xff0c;也是不重复的值的集合。 成员都是数组和类似数组的对象&#xff0c;WeakSet 的成员只能是对象&#xff0c;而不能是其他类型的值。 若调用 add() 方法时传入了非数组和类似数组的对象的参数&#xff0c;就会抛出错误。 const b …

Linux进程间通信 - 信号(signal) 与 管道(pipe) 与 消息队列

什么是进程间通信&#xff0c;就是进程与进程之间进行通信&#xff0c;互相发送消息&#xff1b;可以通过 信号 或者 管道 或者 消息队列 或者 信号量 去通信&#xff01; 目录 一、信号 1. 信号简介 2. 都有那些信号&#xff1f; 3. 注册信号的函数 1). signal 2). sig…

十一、通过六个因素对织物起球等级进行预测

一、需求分析 根据之前做训练的模型&#xff0c;对不同等级的标准样卡进行测试 测试样本有48张&#xff0c;其中包括起球个数、起球总面积、起球最大面积、起球平均面积、对比度、光学体积六个指标&#xff0c;最终确定出织物的等级 数据集fiber.csv大致结构如下&#xff1a; …

微服务保护 笔记分享【黑马笔记】

微服务保护 1.初识Sentinel 1.1.雪崩问题及解决方案 1.1.1.雪崩问题 微服务中&#xff0c;服务间调用关系错综复杂&#xff0c;一个微服务往往依赖于多个其它微服务。 如图&#xff0c;如果服务提供者I发生了故障&#xff0c;当前的应用的部分业务因为依赖于服务I&#xff…

Notion——构建个人知识库

前言 使用Notion快三年了&#xff0c;它All in one的理念在使用以后确实深有体会&#xff0c;一直想找一个契机将这个软件分享给大家&#xff0c;这款笔记软件在网上已经有很多的教程了&#xff0c;所以在这里我主要想分享框架这方面给大家&#xff0c;特别对于学生党、准研究生…

【Java笔试强训 12】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;二进制插…

深圳雷龙SD NAND的存储应用方案

前言: 很感谢深圳雷龙发展有限公司为博主提供的两片SD NAND的存储芯片&#xff0c;在这里博主记录一下自己的使用过程以及部分设计。 深入了解该产品&#xff1a; 拿到这个产品之后&#xff0c;我大致了解了下两款芯片的性能。CSNP4GCR01-AMW是一种基于NAND闪存和SD控制器的4G…

paddle 52 在paddleseg中实现cutmix数据增强方式

CutMix是一种极其有效的数据增强方式,尤其是在遥感影像语义分割中。这主要是因为遥感影像标注成本较大,在实际业务中通常都是采用局部标注的方式进行标注,如下图所示仅对标注成本较小的区域进行标注,而对标注成本较大的地方进行忽略。这使得标签数据中各种类别边界较少(例…

【Python零基础学习入门篇③】——第三节:Python的字符串类型

⬇️⬇️⬇️⬇️⬇️⬇️ ⭐⭐⭐Hello&#xff0c;大家好呀我是陈童学哦&#xff0c;一个普通大一在校生&#xff0c;请大家多多关照呀嘿嘿&#x1f601;&#x1f60a;&#x1f618; &#x1f31f;&#x1f31f;&#x1f31f;技术这条路固然很艰辛&#xff0c;但既已选择&…

VS+Qt+C++银行排队叫号系统

程序示例精选 VSQtC银行排队叫号系统 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQtC银行排队叫号系统>>编写代码&#xff0c;带用户登录&#xff0c;管理员登录&#xff…

Mysql当中Json相关的函数详解

目录 一、前言二、创建JSON文本的函数2.1.JSON_ARRAY&#xff08;转换json数组&#xff09;2.2.JSON_OBJECT&#xff08;转换json对象&#xff09;2.3.JSON_QUOTE&#xff08;转义字符串&#xff09; 三、搜索JSON文本的函数3.1.JSON_CONTAINS&#xff08;json当中是否包含指定…

thinkphp6结合layui增删改查综合案列

文章目录 技术栈实现代码实现数据库 本案例适合新手&#xff0c;特别是杠刚入门thinkphp和layui&#xff0c;但又不是特别熟悉这类 主要实现登录退出功能&#xff0c;用户模块的增删改查功能&#xff0c;分页功能是layui表单自带功能 效果图 左侧的菜单栏我没有写对应的页面&am…

学习记录:2023.4.28

2023.4.28 实习学习记录 Vue1、SVG学习&#xff1a;2、watch监听&#xff1a;3、< g>标签&#xff1a; Vue 1、SVG学习&#xff1a; 百度百科&#xff1a;SVG是可缩放矢量图形&#xff0c;是基于可扩展标记语言(标准通用标记语言的子集)&#xff0c;用于描述二维矢量图…

二、C++、STL标准模板库和泛型编程 ——适配器、补充(侯捷)

侯捷 C八部曲笔记汇总 - - - 持续更新 ! ! ! 一、C 面向对象高级开发 1、C面向对象高级编程(上) 2、C面向对象高级编程(下) 二、STL 标准库和泛型编程 1、分配器、序列式容器 2、关联式容器 3、迭代器、 算法、仿函数 4、适配器、补充 三、C 设计模式 四、C 新标准 五、C 内存管…

时序预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络时间序列预测

时序预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络时间序列预测 目录 时序预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络时间序列预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 基本介绍 MATLAB实现BO-CNN-LSTM贝叶斯优…

c++标准模板(STL)(std::array)(四)

定义于头文件 <array> template< class T, std::size_t N > struct array;(C11 起) std::array 是封装固定大小数组的容器。 此容器是一个聚合类型&#xff0c;其语义等同于保有一个 C 风格数组 T[N] 作为其唯一非静态数据成员的结构体。不同于 C 风格数…

MySQL 高可用实战

文章目录 前言实现思路环境准备一、实现MySQL高可用1.1 修改配置文件1.2 MySQL监控脚本1.4 重启keepalived1.5 查看虚拟ip 二、高可用验证2.1 模拟宕机2.2 查看虚拟ip2.3 连接MySQL2.4 恢复主机2.5 查看虚拟ip 总结 前言 请各大网友尊重本人原创知识分享&#xff0c;谨记本人博…

基于脉搏波的疾病诊断:准确率接近100%的未来前景?

脉搏波分析作为一种无创诊断方法&#xff0c;在糖尿病诊断领域具有巨大潜力。某些研究表明&#xff0c;基于脉搏波的诊断方法在准确性方面可能优于传统血糖检测方法。然而&#xff0c;在将这种方法应用于临床之前&#xff0c;我们需要关注其稳定性、易用性、成本效益等因素。 首…

老胡的周刊(第089期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 MOSS[2] 来自复旦大学的开源工具增强型会话语…

翻译: 迁移学习和微调 Transfer learning fine-tuning

1. 介绍 迁移学习包括获取在一个问题上学到的特征&#xff0c;并将它们用于一个新的类似问题。例如&#xff0c;已经学会识别浣熊的模型的特征可能有助于启动旨在识别狸猫的模型。 迁移学习通常用于您的数据集数据太少而无法从头开始训练全尺寸模型的任务。 在深度学习的背景…