avatar
文章
45
标签
1
分类
12

主页
博文
  • 分类
  • 标签
  • 归档
友链
关于笔者
ahao的休憩小屋
主页
博文
  • 分类
  • 标签
  • 归档
友链
关于笔者

ahao的休憩小屋

面经 - DNS底层用的协议
发表于2025-04-26|更新于2025-04-26|面经
DNS(Domain Name System)底层主要使用UDP(User Datagram Protocol)和TCP(Transmission Control Protocol)两种协议,具体取决于查询的场景和需求。 1.DNS主要使用UDP协议默认情况下,DNS查询使用UDP协议(端口号53)。 特点: UDP是一种无连接的协议,传输速度快,但不保证数据的可靠性和完整性。 DNS查询通常是短小的请求和响应,UDP的轻量级特性非常适合这种场景。 UDP的默认最大传输数据包大小为512字节(传统限制),但现代DNS可能支持更大的UDP包(通过EDNS0扩展) 适用场景: 大多数标准的DNS查询(如A记录、AAAA记录、CNAME等)。 快速解析域名,适合对速度要求较高的场景。 2.DNS也使用TCP协议当DNS查询的数据量超过UDP的限制(如512字节),或者需要更高的可靠性时,DNS会使用TCP协议(端口号53)。 特点: TCP是一种面向连接的协议,保证数据的可靠传输。 TCP支持更大的数据传输,适用于复杂或数据量较大的查询。 使用场景 区域传输(Zone Trans ...
深入理解Linux网络笔记-第一章内核是如何接收网络包的
发表于2025-04-15|更新于2025-04-15|深入理解Linux网络笔记|书籍阅读笔记
2.2.1 linux网络收包总览用户进程$~~~$|应用层 客户端| —–> HTTP、FTP ————-| socket|———————- Linux内核 $~~~~~~~~$| 传输层 | —–> TCP、UDP 协议栈 | 网络层 | -----> IP、ICMP以及IGMP ---------------------------------------------- 驱动 | 链路层 | -----> 网络设备驱动 | 物理层 | -----> 网卡、网线 内核和网络设备驱动通过中断方式处理。而且对于网络模块中断,由于处理过程比较复杂和耗时,如果在中断函数中完成所有处理,会导致中断处理函数(优先级过高)过度占用CPU,使得CPU无法响应其他设备,例如鼠标和键盘。 Linux中断处理函数分为上、下部分。上半部分只进行简单的 ...
深入理解Linux网络笔记-第一章绪论
发表于2025-04-15|更新于2025-04-15|深入理解Linux网络笔记|书籍阅读笔记
1.1.6 软中断和硬中断在内核的网络模块中,有两个很重要的组件,硬中断和软中断等。软中断还分成了NET_RX(R指的是Receive)和NET_TX(T指Transmit)等。RX->接受,TX->发送。 Linux上使用top等命令查看CPU开销时,展示结果中把总开销分成了us、sy、hi、si等几项。其中us是花在用户空间的CPU占比,sy是内核空间的占比,hi是硬中断消耗占比,si是软中断消耗占比。
面经 - 中断相关
发表于2025-04-12|更新于2025-04-12|面经
概念中断(Interrupt)是一种硬件或软件机制,用于在计算机系统中处理意外事件或请求。当中断发生时,CPU会暂停当前正在执行的任务,转而处理中断请求。中断可以来自硬件设备(如键盘、鼠标、硬盘等)或软件程序(如系统调用、异常处理等)。 中断的分类1. 硬件中断由外部硬件设备发起的中断。例如,键盘按键、鼠标移动、硬盘读写数据完成等。 硬件设备通过特定的中断引脚(如中断请求线IRQ)向CPU发送中断信号。 2. 软件中断由软件程序主动发起的中断。例如,系统调用(如int0x80在Linux中)或异常处理(如除零错误、非法指令等)。 软件中断通常通过特定的指令(如int指令)或异常触发机制实现。 中断处理过程当中断发生时,CPU会执行一系列操作来处理中断请求。以下是中断处理的主要步骤: 中断请求: 硬件设备或软件程序发起中断请求。硬件中断通过中断引脚发送信号,软件中断通过特定指令触发。 中断响应: CPU检测到中断信号后,会暂停当前正在执行的任务,并保存当前任务的上下文信息(如程序计数器PC、寄存器状态等)。 CPU通过中断响应信号(如INTA)告知硬件设备已收到中断请求。 中断处理 ...
面经 - CAP定理
发表于2025-04-11|更新于2025-04-11|面经
概念CAP定理(Consistency,Availabili,Partition Tolerance) 是分布式系统领域的一个重要理论。它描述了分布式系统在设计时需要在三个关键特性之间做出权衡,即一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。 CAP定理的核心内容在一个分布式系统中,以下三个特性无法同时完全满足: 一致性(Consistency): 所有节点在同一时间看到相同的数据。 当一个节点更新数据后,其他节点立即能够看到这个更新。 例如: 在分布式数据库中,所有副本的数据完全一致。 可用性(Availability): 系统在任何情况下都能响应客户端的请求。 即使部分节点失败或网络出现分区,系统仍然能够处理请求并返回结果 分区容错性(Partition Tolerance): 系统能够容忍网络分区(即节点之间的通信中断) 在分布式系统中,网络分区是不可避免的,因此分区容错性是必须满足的。 根据 CAP定理,在分布式系统中,只能同时满足其中的两个特性,而无法同时满足全部三个特性。 三种权衡组合 CP ...
面试复盘 - 腾讯云智移动客户端 一面
发表于2025-04-10|更新于2025-04-11|面试复盘
Q 那我问你一个问题qt,然后渲染图片那个组件叫什么 A 关于图片,我重新画了一下吧,当然对,重新画了一下。 分析1:QPainter:QPainter是一个基于扫描线的图形渲染引擎,可以用于绘制各种图形和文本,包括图片。它与特定设备的 QPainterDevice对象交互,将二维图形呈现到窗口上。QPainter可以与QWidget或其他显示设备(如QImage或QPrinter)配合使用,因此你可以在屏幕上轻松地呈现复杂的几何图形和文本。 Q 重新画了一下,是他肯定要从客户端或者说你的服务端里面读一张牌信息,还是说你整个牌都是自己画的。 A 整个牌是存储在本地的牌的信息,然后把那个排的信息存储到本地之后,从本地第就是拿本地的图片去做。 Q 本地的图片去做,那你本地的图片怎么去都提升了?是你本地存了各种牌64章。 A 对本地存了64张牌。 Q 本地测试做对应的是吧? A 对。 Q 有个小问题,那你本地的图片放在抽屉上,展示qt有组件可以,控件可以展示的。 A 这个不记,这个不记得。 分析2:QPainter,同上一个分析 Q QT常见的生命周期函数。 A 生命周期函数。 ...
面经 - 一致性哈希
发表于2025-04-10|更新于2025-04-10|面经
概念一致性哈希是一种用于分布式系统中的哈希算法,主要用于解决分布式缓存、负载均衡等问题,特别是在服务器节点动态增减的情况下,能够尽量减少数据的重新分配。 基本原理 普通哈希的局限性: 在传统的哈希算法中,数据通过哈希函数映射到某个服务器节点上。例如,使用取模的模式: server_id = hash(key) mod N 其中N是服务器的数量 当服务器数量N发生变化(如增加或减少服务器)时,几乎所有的数据都需要重新分配到新的服务器上,这会导致大量的数据迁移和性能问题 一致性哈希的改进: 一致性哈希通过引入一个”哈希环”来解决这个问题。所有服务器节点和数据都被映射到一个虚拟的环形空间上。 数据的存储位置由其哈希值在环上的位置决定,数据会被分配到顺时针方向最近的服务器节点。 当服务器节点增加或减少时,只有那些哈希值落在被修改节点附近的数据需要重新分配,而其他数据的存储位置保持不变。 一致性哈希的步骤 构建哈希环: 将服务器节点的标识(如IP地址或名称)通过哈希函数映射到一个0到2的32次方(或更大的范围)的环形空间上。 每个服务器节点在环上占据一个位置。 数据分配 ...
讯兔科技算法工程师-半程实习总结
发表于2025-01-26|更新于2025-01-26|经历
第一次线下实习之前有一次线上实习,主要是做PPT和整理资料,是关于一个外国实验的,跟开发没啥太大关系。所以呢,这次实习对我来说真的是第一次真正意义上的开发实习。实际参与到产品开发中,在从头开始做一个产品模块,最后还成功上线了。这对我来说是一次难得的经历,不仅让我学到了很多实用的技术,也让我对整个从零到一再到上线的流程有了更深的认识。第一次投简历是在大二的时候,面试的第一个职位是关于QT开发的。那时候完全是第一次面试,过于小白,甚至连自我介绍都没准备,结果不出所料地没通过(QAQ)。我拿到的第一个offer来自一家做数据收集的公司,可能会用到爬虫技术。但那时我因为某些原因拒绝了这个机会,现在想想还挺后悔的,因为这算是我在整个大二离实习offer最近的一次了。大三的时候我又开始投简历了,因为那段时间脱不开身去不了现场。第一波投递拿了一家不到50人的小公司的远程offer,做了大概两个月吧,主要是做MIT实验的PPT。这段经历最大的收获就是学会了Git的一些操作,像push啊、创建分支之类的,都是那时候学的。还有就是通过这个实习,我强制自己完成了几个MIT操作系统的实验,这实验我一直想做但没 ...
C++20设计模式-9-装饰器模式
发表于2024-10-05|更新于2024-10-13|C++20设计模式
9.1 预想方案123456789101112131415161718192021222324252627282930#include <iostream>#include <sstream>#include <string>struct Shape{ virtual std::string str() const = 0;};struct Circle : Shape{ float radius; explicit Circle(const float radius) : radius{radius} {} void resize(float factor) { radius *= factor; } std::string str() const override { std::ostringstream ...
C++20设计模式-8-组合模式
发表于2024-09-23|更新于2024-10-13|C++20设计模式
8.0 开篇1234567891011121314151617181920212223242526#include <generator>#include <iostream>#include <coroutine>#include <ranges>class Values{public: std::generator<int> operator()() { co_yield 1; co_yield 2; co_yield 3; }};int main(void){ Values v; for (auto i : v()) std::cout << i << ' '; return 0;} 8.1 支持数组形式的属性12345678910111213141516171819202122232425262728293031323334 ...
12345
avatar
ahao
文章
45
标签
1
分类
12
Follow Me
公告
This is my Blog
最新文章
源码阅读 - filezilla(1)2025-08-05
面经 - 设计一个兑奖系统的测试用例2025-07-31
面经 - HNSW算法2025-07-31
面经 - LSH树的索引和KD树的索引2025-07-28
面经 - Qdrant数据库2025-07-28
分类
  • C++20设计模式9
  • Qt6 C++开发指南2
  • 名词说明3
  • 数据结构1
  • 深入理解Linux网络笔记2
  • 源码阅读1
  • 经历2
  • 软件设计师考试1
标签
书籍阅读笔记
归档
  • 八月 20251
  • 七月 20256
  • 六月 20257
  • 四月 202513
  • 一月 20251
  • 十月 20241
  • 九月 20244
  • 八月 202410
网站资讯
文章数目 :
45
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By ahao
框架 Hexo|主题 Butterfly