腾讯QQ后台开发部门一面面经

  1. TCP 和 UDP 区别(答案烂大街了,略)
  1. UDP 和 TCP 的数据包有最大长度限制吗?

    ——UDP包分为包头和正文, 包头共有64位(8字节),分别是16位源端口,16位目的端口,16位UDP包长度和16位校验和.因此UDP包正文的 最大长度是2^16 - 1=65535字节.【以太网帧的数据区最大长度为1500字节】

  1. TCP 分段 和 IP 分段,UDP 会分段吗

    ——TCP分段的原因是MSS,IP分片的原因是MTU,由于一直有MSS<=MTU,很明显,分段后的每一段TCP报文段再加上IP首部后的长度不可能超过MTU,因此也就不需要在网络层进行IP分片了。因此TCP报文段很少会发生IP分片的情况。

    由于UDP数据报不会自己进行分段,因此当长度超过了MTU时,会在网络层进行IP分片。同样,ICMP(在网络层中)同样会出现IP分片情况。

    总结:UDP不会分段,就由IP来分。TCP会分段,当然就不用IP来分了!https://www.jianshu.com/p/f9a5b07d99a2)

  1. TCP TIME_WAIT 状态

    ——通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT 状态。

    如下图:客户端主动关闭连接时,会发送最后一个 ack 后,然后会进入TIME_WAIT状态,再停留 2 个 MSL 时间,进入 CLOSED 状态。

    img

    【为什么叫 FIN 包呢?因为是 finish 的 abbr】

    MSL:maximum segment lifetime (最大分节生命期),这是一个 IP 数据包能在互联网上生存的最长时间,超过这个时间 IP 数据包将在网络中消失 。MSL 在 RFC 1122上建议是2分钟,而源自berkeley的TCP实现传统上使用30秒。

    TIME_WAIT:状态维持时间,是两个 MSL 时间长度,也就是在 1-4 分钟。Windows 操作系统就是 4 分钟。

  1. 为什么建立连接协议是三次握手,而关闭连接却是四次握手?

    这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。

【建议:看看 TCP 的各个状态,参考 https://www.cnblogs.com/softidea/p/5741192.html】

  1. TCP 的半连接队列是什么?

    ——https://www.cnblogs.com/sidesky/p/6844228.html

  1. C++中的容器了解多少 —— https://blog.csdn.net/tju_fengbo/article/details/81978595

  2. C++ vector 是在头还是尾插入的?如果 C++ 要删除一个列表中的元素,会影响头指针还是尾指针

  3. C++ 中重载、重写的区别

  4. C++ 进程内存空间分布

  5. C++ 中指针和引用的区别

    对于指针来说,它是一个地址,这个地址是一个数值,那么就意味这个数值可以为0(空指针),也可以为其他,即指针可以不指向任何东西。

    对于引用来说,引用被称为变量的别名。一定是“某个存在物体”的别名,所以引用不能为空,即不能存在空引用。在声明引用的同时就要对它初始化,并且,引用一经声明,就不可以再和其它对象绑定在一起了。

    在底层,引用变量由指针按照指针常量的方式实现。

  1. mysql 怎样保障数据一致性
  1. 对于一个基本有序的数组进行排序用什么最快?

    —— 插入排序?求指正

  1. 红黑树中已经有n个数据,寻找某个key是否存在的时间复杂度为 logN (是一种平衡二叉树)。
  1. 进程间通信(IPC:Inter-Process Communication)的几种方式

    —— 管道、信号量(semophore)、消息队列、信号(signal)、共享内存、套接字

  1. Linux 对 IPC 的管理的命令

    ——https://www.cnblogs.com/wt645631686/p/9151029.html

  2. socket 编程的 epoll、select、poll 什么意思?

    ——https://blog.csdn.net/jyy305/article/details/73012706https://blog.csdn.net/wk_bjut_edu_cn/article/details/80669310

附:无意间看到的文章

  1. 看到一个讲排序的 blog ,动图很可
  2. topK 、BFPRT、KMP
  3. QQ 是怎么实现通信的
#面经##腾讯##校招##C++工程师#
全部评论
UDP最大64k,在网络层会拆成1500?
2 回复 分享
发布于 2020-08-12 00:50
msq,太强了,不愧是逍遥子接班人
1 回复 分享
发布于 2020-08-16 19:22
msq带带我
1 回复 分享
发布于 2020-08-12 10:34
老哥准备去腾讯了吗
点赞 回复 分享
发布于 2020-09-27 10:55
你好,请问第二题UDP包字节限制可以有这么大吗,mac层只能1500字节,运输层怎么比他还多
点赞 回复 分享
发布于 2020-08-23 12:23
msq tql!
点赞 回复 分享
发布于 2020-08-16 14:22
见过最几把贴心的面试帖
点赞 回复 分享
发布于 2020-08-14 11:45
你太强了。我今天也面试了这个部门,被问到怀疑人生。
点赞 回复 分享
发布于 2020-08-12 21:22
msq tql
点赞 回复 分享
发布于 2020-08-12 16:38
快手试试不
点赞 回复 分享
发布于 2020-08-12 16:33
阿里投了没,要内推吗
点赞 回复 分享
发布于 2020-08-12 12:50
腾讯qq有java岗位吗
点赞 回复 分享
发布于 2020-08-12 11:08
厉害厉害
点赞 回复 分享
发布于 2020-08-12 10:35
点赞 回复 分享
发布于 2020-08-12 10:06
msq带带我 
点赞 回复 分享
发布于 2020-08-12 09:15
思琪棒棒哒
点赞 回复 分享
发布于 2020-08-12 08:22
马思琪无敌!!
点赞 回复 分享
发布于 2020-08-12 00:41
基本有序数组排序那个应该就是插入排序😂lz太强了
点赞 回复 分享
发布于 2020-08-11 23:38
项目没有怎么问吗
点赞 回复 分享
发布于 2020-08-11 22:19
马思琪带带我
点赞 回复 分享
发布于 2020-08-11 21:43

相关推荐

04-01 08:53
已编辑
门头沟学院 Java
1.&nbsp;面试官介绍:QQ&nbsp;-&nbsp;频道业务,社区产品,后台开发&nbsp;&amp;&amp;&nbsp;AI&nbsp;开发;闲聊&nbsp;QQ&nbsp;产品发展史2.&nbsp;自我介绍3.&nbsp;Redisson&nbsp;分布式锁底层实现,对比红锁4.&nbsp;锁误删什么情况会发生、怎么解决锁误删5.&nbsp;锁续约怎么实现,底层原理6.&nbsp;AI&nbsp;推荐后台采用&nbsp;WebSocket&nbsp;实时推送怎么实现的,为什么采用&nbsp;WebSocket,为什么不采用长&nbsp;HTTP&nbsp;连接或其他的&nbsp;RPC?7.&nbsp;WebSocket&nbsp;和普通&nbsp;HTTP&nbsp;的区别,从原理角度考虑8.&nbsp;OAuth2&nbsp;的原理,以及对比&nbsp;JWT、Session&nbsp;的区别9.&nbsp;重定向是&nbsp;304&nbsp;吗?为什么不是&nbsp;401?10.&nbsp;访问一个网站&nbsp;404&nbsp;了,怎么定位这个问题?11.&nbsp;一个&nbsp;HTTP&nbsp;请求,怎么走到前端的?12.&nbsp;通过&nbsp;goroutine&nbsp;和&nbsp;recover&nbsp;实现异步操作日志是怎么实现的?为什么这样实现?13.&nbsp;如果使用&nbsp;Kafka&nbsp;异步操作写库,写的时机是什么时候?是这些操作完了再写还是先写再操作?14.&nbsp;异步不能保证审计不丢失,怎么处理?15.&nbsp;怎么保证消息不丢失?16.&nbsp;先写&nbsp;Kafka,再执行业务操作,还是先执行业务再写&nbsp;Kafka&nbsp;?17.&nbsp;如果写&nbsp;MQ&nbsp;失败,会不会堵塞业务,此时怎么处理?怎么保证服务高可用,同时保证审计的完整性?18.&nbsp;审计的ID放在哪里?失败了怎么处理?给出一个方案能保证正常审计,包括写&nbsp;Kafka&nbsp;失败了怎么办?写完&nbsp;Kafka&nbsp;后续执行失败了怎么办?19.&nbsp;定位审计是一个强约束还是非强约束,若是关键路径则不能绕过它,它失败则后续都失败,若不是强约束则不能作为审计,所以怎么样才能做到审计?20.&nbsp;怎么保证审计日志写库的强一致性也保证业务的正常流程?假设用&nbsp;MQ&nbsp;而&nbsp;MQ&nbsp;挂了怎么办?因为写&nbsp;MQ&nbsp;也可能存在一定的失败,若&nbsp;MQ&nbsp;挂了业务也就挂了,这种极端情况怎么处理?全程无手撕,项目深挖+场景深挖,挖到不会为止许愿二面
查看19道真题和解析
点赞 评论 收藏
分享
评论
35
312
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务