八股学习笔记

1.如果一次 RPC 请求应用数据过长,TCP 和 IP 层会怎么处理?

如果报文长度超过 MSS TCP 会对数据分段 分别封装发送,如果在 ip 层超过 MTU 也好对数据包进行分包发送,在接收端 TCP 根据头部的序号进行重新合并。

2.交换空间和虚拟地址的概念

交换空间说硬盘上的交换区或者交换文件,通常虚拟地址说每个进程独有的地址空间,中实际访问过程中会通过虚拟地址到物理地址的变换去访问,虚拟技术使得进程的地址空间大于物理内存时正常运行,交换空间作为虚拟技术的后备硬盘。

3.如果 TCP 连接的对端进程退出,机器掉电或者网络不通分别会发生什么。

如果进程正常退出发生 FIN,客户端收到且读完缓冲区的数据之后会读到 0,就知道对端关闭连接,如果进程是异常退出,服务端收到 TCP 报文会检查连接不存在,发生 RST,然后对端根据错误码知道连接断开。

如果机器掉电或者网络不通,可以通过 TCP 的 keepalive 确认连接,也可以在应用层采用心跳机制,使用 ping 去测试连接性,然后根据结果去判断,如果连接断开可以重连,丢弃连接等步骤。

手撕一个具有容量的消息队列

首先是要有 mutex

其次是 unique_lock 要有自动锁

condition variable 使用 notify_full.wait(lock,\&(return dq.size()〈cap;});

相关推荐
蒸蒸yyyyzwd6 天前
秋招学习笔记 day109
笔记·八股
蒸蒸yyyyzwd10 天前
后端学习笔记三个知识
笔记·八股
蒸蒸yyyyzwd10 天前
学习笔记 复盘
笔记·八股
香蕉大香蕉(06敬畏市场)11 天前
MySQL 单点详解(09)
java·数据库·mysql·面试·八股·大厂实习
香蕉大香蕉(06敬畏市场)12 天前
MySQL 单点详解(07)
java·数据库·mysql·ai·博客·八股
香蕉大香蕉(06敬畏市场)12 天前
MySQL 单点详解(08)
java·数据库·mysql·面试·八股
香蕉大香蕉(06敬畏市场)13 天前
MySQL 单点详解(03)
java·数据库·mysql·面试·八股·大厂实习
蒸蒸yyyyzwd13 天前
学习笔记day92
笔记·八股
香蕉大香蕉(06敬畏市场)15 天前
高频八股 · JVM(8)
java·jvm·面试·八股·大厂实习
蒸蒸yyyyzwd16 天前
kafka、redis、mysql不熟悉问题总结
笔记·八股