(1)介绍自己、项目(大概30分钟),追着问,问的很细
(2)什么是SNMP协议,工作流程,底下是基于什么的(UDP),为什么用UDP不用TCP
(3)TFTP协议,它和FTP协议的区别,为什么用TFTP协议,做TFTP有没有考虑握手、重传等等
(4)驱动的中断优化,DMA的交互,以及软中断和硬中断(这我答的实时和非实时,估计不对,软中断是指令产生,硬中断是硬件产生)
(5)TCP的四次握手和为什么设置TIME_WAIT
(6)ARP协议的工作流程
(7)知道Epoll和Select模型?
(8)如果TCP传输100M的数据,那么怎么计算传输速度(我说的主要看时延,在带宽满足的情况下,其实还应该有窗口)
(9)TCP的拥塞算法有哪些,具体讲讲
(10)我问的:
1.我应该往哪方面学:我们做的是底层协议,多了解一下网络上层,以及网络的虚拟化等等
2.技术栈:C++/go,做网络虚拟化,包括虚拟网卡还有边缘计算等
二、阿里云二面—后端开发
(1)笔试(本来要做,但是他忘记准备java的题目,只有C的,我说怕C的链表我写出来有问题,所以推迟到下周,只有笔试(还是慌))
(2)说说你最近的项目,聊聊优点(这次没怎么细问,大概聊了聊,本来我想拉长战线,这面试官喜欢言简意赅,然后就只是简单问了问)
(3)了解多线程嘛?说说两者区别,如果从1到1亿里找质数,那单线程还是多线程好?
(4)说说堆和栈的区别,能说说栈和堆怎么实现的嘛?
(面试官好像是C++的,我一开始没说内存的动态申请和释放,最后他提醒我,我又说了一遍,问我栈为什么是自动分配的而不是手动,这个我真不会了,其实是因为C是编译型语言,在编译器会把方法内的局部变量、方法信息、操作数等直接分配对应的空间)
(5)TCP三次握手
(6)TCP和UDP的区别(我忘记说了最关键的可靠和非可靠,他提醒了一下)
(7)TCP如何保证可靠传输(面试宝典的答案感觉不太行,他好像希望你从两者的最原始状态开始说,从分块、序号、拥塞、流控、重传)
(8)Jvm了解吗?,JVM如何进行垃圾回收(从标记,到分代收集讲了一遍)
(9)垃圾回收怎么标记的,有什么算法?
(10)Java和C同时运行一个从1到100排序的程序哪个快?(应该是想问Java的半编译和半解释,C是编译型)
(11)你们是不是做过笔试了?他不确认是否要再做一遍,所以安排了
(12)最近有其他公司面试嘛?有offer吗?(这不是HR问的嘛,为什么这就问我了)
三、阿里云三面—后端开发(30分钟,这个真的好快,面试官人很好)
(1)1分钟介绍一下你自己
(2)项目,问我们的网络实际场景,能和商用交换机一起使用吗?
(3)实际设计的协议和自定义协议(讲了TFTP,本来想讲TTLV,时间比较紧),遇到的难题(讲了Redis)
(4)Java里用到设计模式(说了单例和工厂),常用的数据结构(讲了ArrayList的底层原理和扩容)
(5)多线程用吗,一般单线程你如何创建(说了ThreadPoolExcutor里的SingleThreadPool),线程同步一般怎么做(说用的信号量,如果实在处理不了的才用Synchronized重锁)
(6)最近在学什么?(之前刚好知道他们是做的dpdk,自己查了一下,问我是只看了原理还是看了实现和场景,我只看了原理,给他讲了负载均衡和一致性哈希,感觉他是真的在试探你,一致性哈希的时候说到如果圆环有10个服务器,平分怎么办,最后我说了虚节点,他就说那我知道了你应该是真的看过)
(7)反问
最后—许愿,牛客最灵了,HR面刚面完,求阿里收了我吧
全部评论
(4) 回帖