ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

八股学习笔记

八股学习笔记 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;);
返回列表