0 offer的爱奇艺C++面经,凉凉
大概面了50分钟,问的问题太多,只挑些说吧,第一次写面经,可能有些混乱。
由于简历上写了抓包分析程序,所以先问我用过tcpdump没,我说用过,保存下来给wireshark具体分析。于是就开始一个个问协议了……
问ARP,然后问我访问百度时需不需要知道对方MAC地址,我说需要,然后卡在了IP传输的问题上,刚才搜了下,大概考点是为什么同时需要MAC地址和IP地址,因为我说先到局域网路由器,再一个个路由器传送知道百度服务器,然后对方问我既然目的IP是服务器IP,怎么会传达到路由器呢?于是我改口说目的IP会设为路由器IP(空气突然安静了起来……)。
ICMP,我就只答了差错传输,比如ping超时就会产生,至于是谁发出的ICMP包,我一时脑热说是对端……然后发现都连不上对端怎么发过来啊😂后来我改口说路由器发过来的。问我IGMP,我干脆说忘了,当时只是照着网上教程产生IGMP包。问我DHCP,我就只简单说下是服务器分配IP的,本来想背出来工作流程的(几周前准备过),然而背到一半忘了,尴尬。
到这里我已经凉凉了,简历上写的协议都没掌握,然而我只是想说我做了个超低配版wireshark啊🙄
接下来问我MTU,我说了分片顺带扯下TCP前两次握手的MSS选项,以及路径MTU。结果问我路径MTU怎么发现的,我……瞎**脑补了一通,说路由器寻址后,互相通知各段的MTU然后取最小值,引来面试官的一句疑问“通知?”又是一阵尴尬。
问语言。问静态库和动态库,我现学现用把CSAPP第七章讲了下,但是这个时候我已经心态崩了,感觉没表达好。问static关键字,我也是把这一章的内容讲了下,本质都是全局的,只不过只能用特定方式访问(文件内or函数内or类访问)。问我STL容器熟悉哪些,我说个人用得多的就vector/map/unordered_map,然后又是老生常谈的红黑树和哈希表。在说到哈希表以空间换时间时,对方问我为什么,我又一时紧张去答冲突的处理方式,顿觉瞎扯了,立刻说了装载因子,顺便举了个简单的hash例子,然后说哈希表内有很多是空的。问我C 对面向对象的支持,谈到虚函数时问了底层实现,也是老生常谈的虚表那一套了。
问Linux,怎么查看磁盘占用率/CPU占用率,后者答错了,应该是top命令,因为之前面腾讯时考过lsof没答出来,结果记混了(本来用得少就只能强记orz,不像netstat,写程序时还会看下)。问我怎么查看进程的状态,有哪几种,一时懵了只想起僵尸进程的状态,后来想起来了stopped/running,顺带说了下bg和fg命令。
哦还问了socket编程,又是老生常谈的TCP流式传输怎么处理,以及叫我讲下监听多个客户端的代码。没问epoll和select/poll的区别,大概就是要我说出几个socket函数名。还问了IPC,简单说了下就完了,发现好多面经里都没要求IPC的细节,即使没写过IPC代码,看下面经或简单记下APUE的概念总结就没问题。只是之前腾讯提前批时被问过使用共享内存的流程以及Unix域套接字的存在意义(相对网络套接字而言)。
差不多记得这些了,嗯,远程面试居然又不让我写代码。数据结构和算法也没问(STL不算的话)。主要前面问崩了,后面紧张得语无伦次,总想着法多表现下自己(即使答非所问),又怕一下说嗨了被打断,不敢自信地回答重点然后等他深入问。
最后问了下爱奇艺的业务,面试官表示进去后会随机分配,可能做业务也可能做底层,由于是视频网站,所以做编解码比较多,一般是基于UDP设计应用层协议,问我有没有兴趣做算法,我说我比较偏工程向。我问他有没有socket练手项目可以推荐,他说可以做视频会议服务器,就像牛客网的视频面试一样,扯了些RTP协议什么的。
总结下来就是计算机网络的网络层/链路层完全没复习的锅,因为看了很多后台C 面经都没问到,只是之前上过课有个印象,抓包分析我也只详细看了TCP UDP IP的头部,而且都是很久之前的了。
大概春招到此为止了,0 offer泡在360备胎池里,还是缺项目,平时花时间做了太多无关的东西了,为了凑数都把之前花了2个多月速成的安卓App写进去了,当然显然没人问。#C++工程师#
由于简历上写了抓包分析程序,所以先问我用过tcpdump没,我说用过,保存下来给wireshark具体分析。于是就开始一个个问协议了……
问ARP,然后问我访问百度时需不需要知道对方MAC地址,我说需要,然后卡在了IP传输的问题上,刚才搜了下,大概考点是为什么同时需要MAC地址和IP地址,因为我说先到局域网路由器,再一个个路由器传送知道百度服务器,然后对方问我既然目的IP是服务器IP,怎么会传达到路由器呢?于是我改口说目的IP会设为路由器IP(空气突然安静了起来……)。
ICMP,我就只答了差错传输,比如ping超时就会产生,至于是谁发出的ICMP包,我一时脑热说是对端……然后发现都连不上对端怎么发过来啊😂后来我改口说路由器发过来的。问我IGMP,我干脆说忘了,当时只是照着网上教程产生IGMP包。问我DHCP,我就只简单说下是服务器分配IP的,本来想背出来工作流程的(几周前准备过),然而背到一半忘了,尴尬。
到这里我已经凉凉了,简历上写的协议都没掌握,然而我只是想说我做了个超低配版wireshark啊🙄
接下来问我MTU,我说了分片顺带扯下TCP前两次握手的MSS选项,以及路径MTU。结果问我路径MTU怎么发现的,我……瞎**脑补了一通,说路由器寻址后,互相通知各段的MTU然后取最小值,引来面试官的一句疑问“通知?”又是一阵尴尬。
问语言。问静态库和动态库,我现学现用把CSAPP第七章讲了下,但是这个时候我已经心态崩了,感觉没表达好。问static关键字,我也是把这一章的内容讲了下,本质都是全局的,只不过只能用特定方式访问(文件内or函数内or类访问)。问我STL容器熟悉哪些,我说个人用得多的就vector/map/unordered_map,然后又是老生常谈的红黑树和哈希表。在说到哈希表以空间换时间时,对方问我为什么,我又一时紧张去答冲突的处理方式,顿觉瞎扯了,立刻说了装载因子,顺便举了个简单的hash例子,然后说哈希表内有很多是空的。问我C 对面向对象的支持,谈到虚函数时问了底层实现,也是老生常谈的虚表那一套了。
问Linux,怎么查看磁盘占用率/CPU占用率,后者答错了,应该是top命令,因为之前面腾讯时考过lsof没答出来,结果记混了(本来用得少就只能强记orz,不像netstat,写程序时还会看下)。问我怎么查看进程的状态,有哪几种,一时懵了只想起僵尸进程的状态,后来想起来了stopped/running,顺带说了下bg和fg命令。
哦还问了socket编程,又是老生常谈的TCP流式传输怎么处理,以及叫我讲下监听多个客户端的代码。没问epoll和select/poll的区别,大概就是要我说出几个socket函数名。还问了IPC,简单说了下就完了,发现好多面经里都没要求IPC的细节,即使没写过IPC代码,看下面经或简单记下APUE的概念总结就没问题。只是之前腾讯提前批时被问过使用共享内存的流程以及Unix域套接字的存在意义(相对网络套接字而言)。
差不多记得这些了,嗯,远程面试居然又不让我写代码。数据结构和算法也没问(STL不算的话)。主要前面问崩了,后面紧张得语无伦次,总想着法多表现下自己(即使答非所问),又怕一下说嗨了被打断,不敢自信地回答重点然后等他深入问。
最后问了下爱奇艺的业务,面试官表示进去后会随机分配,可能做业务也可能做底层,由于是视频网站,所以做编解码比较多,一般是基于UDP设计应用层协议,问我有没有兴趣做算法,我说我比较偏工程向。我问他有没有socket练手项目可以推荐,他说可以做视频会议服务器,就像牛客网的视频面试一样,扯了些RTP协议什么的。
总结下来就是计算机网络的网络层/链路层完全没复习的锅,因为看了很多后台C 面经都没问到,只是之前上过课有个印象,抓包分析我也只详细看了TCP UDP IP的头部,而且都是很久之前的了。
大概春招到此为止了,0 offer泡在360备胎池里,还是缺项目,平时花时间做了太多无关的东西了,为了凑数都把之前花了2个多月速成的安卓App写进去了,当然显然没人问。#C++工程师#