百度网络研发一面面经


面的系统部,做四层或七层的接入网关,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-06 21:24
基本都问网络编程呐😳
点赞 回复 分享
发布于 2021-09-02 18:47

相关推荐

程序员牛肉:1.大头肯定是院校问题,这个没啥说的。 2.虽然有实习,但是实习的内容太水了,在公司待了七个月的时间,看起来就只做了jwt和接入redis。爬取新闻,数据导入。这几个需求值得你做七个月吗?这不就是三四个月的工作量吗?我要是面试官的话真心会认为你能力不太行。所以既然有实习了,一定要好好写,像是Swagger这种东西是真没必要写上去,就拉一个包的事情。 3.我个人觉得话,在校生不要把自己当社招看,除非你的项目是特别牛逼,特别有名的含金量,否则不要写这种密密麻麻的一串子工作职责。你的项目只有一个作用,就是供面试官从中来抽取八股对你进行拷打。 但是你现在这个看不来什么技术点,可以改一下,详细表述一下你用什么技术实现了什么功能,在实现这个功能的过程中,你解决了什么难题。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
5
50
分享

创作者周榜

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