百度网络研发一面面经


面的系统部,做四层或七层的接入网关,Base北京或深圳,技术栈是C++ / DPDK / 网络 / Linux内核

百度网络研发一面面经(技术面,电话,1h)

1.网络

(1)TCP和UDP的区别?

(2)TCP三次握手和四次握手?

(3)为什么是三次握手而不是两次握手?(防止重复建立连接)

(4)Time-Wait状态太多,会有什么影响?(占用端口)

(5)Linux如何查看Time-Wait状态?(netstat -atnp)

(6)哪些内核参数可以调整TCP半连接队列?(tcp_max_syn_backlog)

(7)epoll的底层原理?(红黑树、就绪队列)

(8)epoll_wait,用户程序里面没有处理就绪数据会怎么样?(水平触发、边缘触发)

(9)网页输入域名的整个过程?(DNS流程、TCP三次握手、TLS四次握手、HTTP交互、页面渲染、TCP四次挥手)

(10)HTTP请求到了服务器,网卡收包的流程是什么?(网卡DMA拷到内存,硬件中断通知CPU,执行硬件中断处理函数,函数里面关硬件中断,产生软中断,执行软中断处理函数,函数里面启动一个进程调用poll函数轮询处理内存网络数据包,对数据包进行协议处理,最后拷贝到socket缓冲区)

(11)数据包中间经过协议栈的时候是怎么处理的?(NetFilte,允许注册hook函数,实现对经过协议栈的网络数据包进行自定义处理,参考https://zhuanlan.zhihu.com/p/81866818
(12)Linux看CPU的利用率,怎么查看?(Top、uptime)
(13)Linux,CPU的平均负载怎么理解?(用Top或uptime命令会显示load average:有三个数,分别表示1分钟、5分钟、15分钟内的平均负载。在只有一个CPU情况下,CPU最大负载为1.0,当平均负载大于1.0,表示有进程在等待,例如CPU最多能够处理100个进程,那么平均负载为1.7表示有100个进程正在处理,70个进程处于等待,参考:http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html
(14)查看网络I/O的命令?(ifstat -a)


2.代码

(1)输入两个链表,找出它们的第一个公共节点。

(2)二叉树反转非递归方式实现。
示例:

     4

   /   \

  2     7

 / \   / \

1   3 6   9

输出

     4

   /   \

  7     2

 / \   / \

9   6 3   1

(3)一个不重复的数组,[3,4,1,2,5,6],从中选取n个数,返回所有组合。


3.反问

#百度##校招##C++工程师#
全部评论
基本都问网络编程呐😳
点赞 回复
分享
发布于 2021-09-02 18:47
笔试题是什么形式啊,全是编程题吗
点赞 回复
分享
发布于 2021-09-06 21:24
小红书
校招火热招聘中
官网直投

相关推荐

5 43 评论
分享
牛客网
牛客企业服务