面的系统部,做四层或七层的接入网关,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.反问
点赞 6
评论 2
全部评论

相关推荐

程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-01 16:13
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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