有多少个昨天

是为了圈住今天一个愿

 

今天曲婉婷 - Everything In The World (白金庆功版)

 

学员寄语

 

春招我面试了YY的网络岗、阿里网络岗、网易的SDN虚拟云开发岗、最后是腾讯的网络技术岗,一路走路觉得挺不容易的。感谢杰哥一路指导,一边和好友吐槽失业的问题。还好最后到拿到了不错的offer,本来还想继续刷offer的,算了,好累啊,还是探究SDN有趣一些,不能浪费时间了。

 

这几场面试,就好像是一场大考,压力不下于高考,有种脱胎换骨的感觉,面试的内容挺有趣的,这次写出来了,当作回忆吧,挺有趣的~

 

希望对大家有所帮助。

 

----余树仪 拼客学院第17期CCIE学员

 

 

这是一篇很长很长很长的面经

干货太满,建议收藏观看!

 

 

网易篇

 

一面基本上把我在大学里所会的,所掌握的都挖出来了,掌握程度怎样都展示出来,对我的能力做了一个很全面的技能清单。之前面试也不知道怎么准备,基本上是裸考的,记住就记住,复习的内容太多,索性不复习了~~

 

对于二面,面试官真的是有研究的。然后我们就思想碰撞了,我只是表达我的理解而已,都是课堂里养成的臭习惯……不管老师是教授还是啥,不管有没有人来听课,老师讲错,或者是跟自己理解的不一样,直接就上台就原理分析老师和自己理解的矛盾。。我们班里基本上都是这么干的。虽然是我们错的概率居多,但老师们并不反对我们啊。。我觉得这才是大学的课堂。然后,貌似,忘了我在面试。我觉得当时我就是在进行一次学术交流,我虽然不同意你的观点,但我尊重你的思考。就是这种心态……真的忘了在面试。学习sdn这么久了,第一次遇到可以面对面交流的。平常都是自己撸实验,看文档和网友交流,感觉真的不一样,就想把自己思考的东西输出……

 

不管能不能通过网易的考核,我都很感谢三位面试官给我的学习上的提示、引导。

 

一面:

 

之前就听杰哥说过,现场画拓扑的,就没听说过现场写算法的。。并不是很想做纯码农哇,他们有问我网络的,也有问代码的,之后nosql-sql一块问,问两次,让我比较两种数据库的使用,让我解释nosql快的原因,sql的table和nosql的list有什么区别?

 

还有的就是python装饰器的解释、另外的就是多线程、多进程的理解;之后就linux,你如何查dns?我说用ifconfig你如何配置地址?(ifconfig 【ip】 up你如何查看端口占用?tcpdump你如何查看进程?ps -ef如何杀进程kill -9为啥的是-9?

 

之后就是写算法,折半查找算法,我用python写出来之后,分析思路、复杂度,比较冒泡,堆排序,快排的复杂度。

 

之后就是子网划分,192.168.10.0/24分四个,现场写sql的建表命令。分析一下wget、curl两条命令的不同;如何为不同的用户、用户组给予权限?这个我寒假的时候学过了啊,很久没用忘了。。。。

chmod +x有什么意义?

谈谈你的专业;

 

之后就是c,c++,c#,java的一些特性发问。

说一下cisco的acl是如何配置的?

ospf的area 0可以不要吗?

应用层的常用的协议端口号,dns,http,https,dtp,smtp等;

解释一下tcp/udp的不同;

解释tcp面向连接、面向过程的特点;

滑动窗口机制的实现;

 

对了,那个子网划分的时候,192.168.10.255的广播效果和192.168.10.63有什么不同我就说,按照卷一的解释,前者是全网广播,后者只是在该子网内广播,至于说怎么验证,我没做过

 

 

还有!tls和ssh有什么不同,玩ssh的时候是怎么做的ubuntu16会自动开启防火墙需要先关闭和主机防火墙关闭,之后ifconfig看地址,通过xshell简历ssh连接,ubuntu14直接查看地址即可

讲一下ospf;

分析arp;

我Py爬虫课的设计思路;

专利的设计思路;

划分vlan作用;

解释TCP滑动窗口机制的实现,拥塞避免的过程,目的是啥,门限值是如何确定的。

 

二面:

 

面试官:你怎么理解SDN?

我:sdn全称software defined networking,中文译为软件定义网络,我的理解是软件即所谓的编程实现,定义是我对自己网络的理解后下的规则,网络则是对传统网络的升级优化。

 

面试官:你画一下sdn的常见的简单拓扑。

我:就是一个控制器,几台交换机,表示东西向接口、南北向接口)

 

面试官:你给我讲讲openflow。

我:openflow到现在一共有9个版本,我用的更多的是1.0和1.3版本,1.0主要就是六个匹配项标签,1.3引入了vlan以及另外的一些细致控制属性,我还没深入学习每个属性项,但我知道这些是用来做精确匹配的。


面试官:呵呵,你可以去看看openflow官网的文档的。
我:我看得是图解openflow。

 

面试官:Openflow是哪一层的?我当时是怎么了,直接说openflow是物理层的,之后完了长达20分钟的辩论炸开~

面试官:你怎么觉得openflow是物理层的?
我:因为需要承载流量呀。


面试官:好,那PC1 ping PC2需要经历那些步骤?
我:首先PC1发出arp请求,之后交换机查看tcam表,没有相关信息,于是向控制器openflow 发出echo请求,如果有PC2的地址,则下发流表,否则下发error信息令交换机丢弃数据包。


面试官:那你说说openflow有多少种状态?

我:Echo,error,还有一个忘了~~


面试官:那他们如何建立连接的啊?
我:通过tcp三次握手控制器和交换机建立连接之后,控制器下发流表。


面试官:既然是控制器下发流表。那openflow承载什么角色?
我:噢,我说错了,openflow是控制层和物理层之间的。


面试官:好,那你说说sdn是为了解决什么问题?
我:sdn提出的是时候就是为了解决网络硬件升级瓶颈的问题)

 

面试官:你的简历中的探究思路是怎样的?

我:利用openflow可编程的特点,我们专业主打学习的协议就是RFID的协议,我想通过定义一个转换集,奖rfid协议融合进openflow里面,进行转发。

 

面试官:你对onf和opendaylight怎么看?

我:onf是以openflow作为南向接口的正统SDN实践,而opendaylight则是传统路由大厂像cisco,vmware通过重新定义sdn,使用restapi作为北向接口,兼容openflow与自己开发的通信协议作为南向接口。

 

面试官:你画一下你python爬虫的流程图吧。

我:画图之后分析时间复杂度,以及设计动机,代码实践的思想。

 

面试官:噢,对了,你怎么理解ospf?

我:网易真的很喜欢ospf~~ospf全称是open shortest path frist,建立的过程中有七个状态……


面试官:ok,你讲讲ospf在sdn中的应用。
我:哎,面试官,你的这个想法挺有趣,请问白壳交换机顶破天也就是二层设备的去智能化,可以跑ospf?ospf毕竟是网络层的协议啊!


面试官:嘿嘿,你不懂了吧,你管他白壳还是黑壳,现在的交换机基本上都可以跑ospf,你定义好协议内容即可。
我:好的,面试官请问,ospf是部署在交换机上还是控制器集群中?【此时此刻,我只想呼唤杰哥助攻,what the fuck!!!】


面试官:你看哈,ospf可以支持存储全网的拓扑结构,这样的优势,可以很方便的形成一层overlay,你说部署在哪里,好下一个问题:说说,你专利的设计是怎么完成的?

我:palapalal用概率论、专业基础课程RFID技术等等啊,数学建啊,palapalal解释一通。

 

面试官:你做过园区网络吧,先画一下园区网设计的架构吧

我:就是画接入层、汇聚层、核心层交换机以及划分vlan。


面试官:流量怎么区分的?

我:通过划分vlan,区分出来自住宅的流量以及来自公司的业务流量等等。


面试官:讲讲交换机中access和trunk有什么区别?

我:通过trunk需要打标签。

 

面试官:哎,你玩过java,使用过hibernate,你当时是扮演什么样的角色?为甚选择hibernate?

我:我当时是负责移动端后台的开发工作,只是从web端后台移植到移动端,通过mina这个框架达后台,使用hibernate,是由于数据量太大,腼腆接近一亿条写入,选用hibernate是为了保证高并发时的写入正常进行。

 

面试官:你听说过vrf吧,你讲讲vrf

我:这个还是打标签的过程(事实上我忘了~)

来来讲一下nvf?

我:就是云计算的实现呀~

 

面试官:来讨论一下arp,pc1的ip 172.16.1.21/32 gw 172.16.1.1/24,pc2 ip 172.16.2.21/32 gw 172.16.2.1/24。现在pc1 ping pc2,arp包怎么走?

我:PC1发送arp request包,pc2 会回复 arp reply。


面试官:你详细说说arp包是怎么走的?
我:pc1发现目的地址不在哦同一个网段,于是改为流向网关,gw1发现pc2的ip地址也不再同一个网段,于是发送给gw2,之后有gw2流向pc2,arp reply则反过来。


面试官:那么arp request的ip 和mac是什么内容?

我:ip是172.16.1.21,mac是全f。

 

面试官:你有什么问题问我吗?

我:请问面试官,你对SDN辅助与云计算的实践有什么看法?我自己是认为像行走的两只脚,由于有sdn的存在解放网络设备的性能,可以极大的提高云计算的服务质量,你觉得呢?


面试官:其实SDN就是一种设计模式,你应该听说过overlay,这个概念很早就有了啊,云计算是具体实践。

我:可是我们之前所接触的mpls就是一种overlay,由于频繁的标签操作并不能很好的提高服务质量啊,另外我们可以通过对控制器做集群,让他们带有HA属性啊。


面试官:高可用是必须的,现在的任何产品都是必须带HA的,你对sdn的学习时间不够长,还要学习很多东西。
我:好的,谢谢。

 


腾讯篇

 

 

由于有之前网易的面试经历。觉得腾讯的面试整体上比网易的简单一些。偏应用的考察居多,对灵魂的考察少。腾讯面试官给我的感觉就是,一直鼓励我坚持探索网络。

 

一面:

 

时间约40分钟。

 

面试官直接打开英文wiki让我3分钟现场学一个光纤模块ovsp(名字忘了),之后问模块的性质,有什么应用。

 

思考过程:【反正我是从屏幕中看到了我自己的影子,那么英俊:)】当时知道光纤模块是用于FC口,遵守FC标准协议,还记得基本上参加华为网络技术大赛提供的文档资料,然后就用想象力读文档了,抓住若干关键词如low weight,low power,storage,100G等等,基本上猜出个七七八八的特点,这个模块用在存储网络中(回忆SAN架构的特点)能耗低,高传输,可用于OSFP等路由协议的部署中,相关FC口的实验应用我们也做过,差不多可以扯3分钟左右。

 

面试官:你用传统网络的观点设计一栋教学楼的校园网实现每台PC上网和ftp分发。

我:参考广工校园网的部署。首先要保证网络顺畅互不影响,因此我规划10台电脑在同一个VLAN,通过VLAN划分保证流量隔离,之后设计在汇聚层设计路由策略,例如配置ACL等等,之后配置防火墙和流控设备等保证流量安全╮(╯▽╰)╭反正不计成本,往上堆设备真爽。最后设置一台FTP服务器来提供FTP服务。

 

面试官:如果我想快速实现系统安装你会怎么做?比如下午6点给你的这个任务,明天早上8点前就要正常运行,你怎么做?

我:我会考虑使用华为的桌面云部署策略。通过使用NS6000款服务器,之后直接部署瘦终端连接上网即可。

 

面试官:瘦终端什么特性?

我:说白了就是一台带网卡的显示器,可以远程拨号上网,想要什么系统就什么系统,相当于你安装了多个操作系统,想用就用。

 

面试官:如果我还是想让你在主机上安装呢?

我:使用BIOS的网络安全功能,来实现这个目的。

 

面试官:如何实现短时间内在六栋楼完成相同配置。还是今天下午6点给任务,明天早上可以正常使用。

我:(:]你们TEG真的好可怕)六栋楼的配置基本上是相同的,如果一个个照抄过去我觉得有点蠢,我会通过批量导入的方式实现快速部署。

 

面试官:你怎么批量导入?

我:我们之前在学校里玩的的交换机的时候是通过console口来部署的,不过听我师兄说可以通过网线来部署,具体实现没接触过,我会详细请教他的实现的原理,之后通过脚本工具如python,按键精灵等,来实现自动化部署。

 

面试官:那你从sdn的角度改造这个网络,有什么好处?

我:之前设置的汇聚层接入层的设备不变。由于有sdn控制器的存在,我们可以减少防火墙、流控等设备的,通过编程的方式来实现安全的需求,这个其实也是去年才提出来的软件定义安全的热门话题。此外,我们在规划各台PC的地址,以及监控数据包可以做到更加精细化管理,毕竟流量的走势都是在控制器的掌控之中。

 

面试官:你是怎么学习网络的?

我:大一的时候还比较迷茫,当时师兄就说别浪费时间,先进入IT看看再说,于是就开始JAVA后台开发,那个是车联网项目,每天产生上亿的数据量,处理这些数据的经验对我来说是一个不可多得的财富。之后觉得仅仅接触网络编程对网络的理解还是片面的,于是就去学习了CCIE,有了CCIE的理论底子,再回来看待网络编程简直耳目一新。之后觉得java的运行是基于JVM(java虚拟机)实在太重,之后改学python。

 

面试官:你对网络的理解是对的,那你是怎么学习SDN的?

我:一开始发现SDN是需要有软件编程功底的,还需要有堆传统网络的理解的,我发现ONF这个组织开始SDN的职业认证,就通过考证的方式完成入门的学习。之后我将国内出版的有关SDN的图书看过一遍,只有一本还不错《sdn 基于openflow的sdn技术揭秘》其他的大都是抄来抄去的,还有的就是通过sdnlab的论坛网站,看社区的讨论,形成自己的思考。接着是在知网上看一些论文以及ie上公开的期刊文章。

 

面试官:你学过python啊。那你解释一下python的垃圾处理机制

我:(wo cao &*%#¥@)python是通过引用计数的形式来完成对象的引用,然而当迭代引用的时候引起内存的泄露的问题。因此引入了分代回收机制,实际上是通过链表维护的,例如当某些内存块M经过了3次垃圾收集之后还存活时,就会从内存块中划到一个集合A中去,而新分配的内存都划分到集合B中去。当垃圾收集开始工作时,大多数情况都只对集合B进行垃圾回收,而对集合A进行垃圾回收要隔相当长一段时间后才进行,这就使得垃圾收集机制需要处理的内存减少。在这个过程中,集合B中的某些内存块由于存活时间长而会被转移到集合A中,当然,集合A中实际上也存在一些垃圾,这些垃圾的回收会因为这种分代的机制而被延迟。我验证过Python实际上维护了3条链表。即维护了三“代”。

 

二面:

 

时间约60分钟。

 

坐下不看纸质版简历,还回来说不需要。用英文做自我介绍,基本信息英文交流。

 

做过网线嘛?怎么做?里面有几根线?线序是怎样的?如果线顺序接错了能用嘛?网线有什么标准呀? 

(因为之前有过做网线的经历所以这一块回答起来还是有些底气的)

 

常见的网线最长一般多长?有最短嘛?为什么?常见带宽一般多少?

说一个在你学习网络过程中印象深刻的学习过程

(我就说了我之前做的车联网项目中大数据导致的拥塞问题)

 

数据中心职位有不同的分工,你觉得分工有几种,分别是什么?

(我就说顶层是网络架构师,下面是高级工程师,接着普通工程师,各个级别有各个级别的职责,至于运维是站在侧面的角度观察网络。如果网络出现问题运维分析。)

 

他再问我想承担怎么样的角色,我说我想成为网络架构师,不是由于是最顶层的原因,是因为架构师是从宏观角度观察整个网络,这样的人才能操作网络。我很喜欢网络,想探究网络的本质,为啥简简单单的二进制就可以沟通世界,开发新视野,这个神奇的世界完全是用电磁波堆出来的,跟我们所处的单晶硅世界和碳生命完全不一样。

 

熟悉哪些路由协议?画了五个个路由器,每个路由器有环回口,还回口网段是10.1.0.0/24   10.2.0.0/24   192.168.1.0/24  10.3.0.0/24  10.4.0./24的,直连路由网段分别是10.12.0.0/24  10.25.0.0/30  10.35.0.0/30  10.34.0.0/30  的。运行ripv1,问R1环回口能不能ping R5?然后继续问中间的路由器的路由条目有什么,子网多少?

 

路由之后问我,一根网线一头是插在交换机上,另一头是插在PC上,请问网卡是怎么识别的?

(我说假设网卡的八根线前四根为发送口,后四根为接收口,通过网络初始化电路发送脉冲电流,接收端通过获取电流信号来判断信息)

 

你设计一下电路

(我就设计一个并联电路,通过两个双向的二极管保证发送和接受的方向,之后用加法器来判断电流信号量,从而完成功能实现)

 

面包机分析题,两页纸,内容挺多的,限时五分钟

内容:(时间有些长,只记住大概)面包机的程序运行一定正常,程序是按照和面、发面、烘烤等顺序进行,一开始使用的时候做出来的面包都很好吃。可是最近一段时间,做出来的面包很硬。主人调查发现:

1.最近的面包并不是一直不好吃,一个月有四五天是可以吃的;

2.只有是周末的时候面包才好吃,女儿要上幼儿园的时候就不好吃;

3.商场卖的面粉不是原来一直购买的牌子;

4.楼下小卖部的酵母原来的牌子不卖了

5.最近换了新保姆之后面包开始不好吃

6.小区水池的水刚换新的

 

问:你分析一下面包不好吃的原因

我说:首先通过一个月有几天面包是美味的可以得知,原材料是没问题的。然而周末才可以吃,可以判断出可能是由于平常上学期间由于清晨时间紧迫,导致家庭电源输出功率不足,导致面包机获得的能源不够,另外由于是使用不同的原料牌子,不熟悉新牌子的配置比例面包才不好吃。如果是我的话,周末会仔细的观察一下原料配置比例,平常上课的前一天晚上就会准备好相应的原料设置定时器,在起床前就开始制作面包,以及在堆面包机加装稳压器,保证机器安全。

(其实这道题就是考察运维思维了,网络之前一直稳定运行,但现在突然不稳定,一个月也就那几天可以用,为啥啊,作为运维,你应该快速找出问题,能顺手提供解决方案则是锦上添花)

 

最后,面试官问我有什么问题问他

我问,sdn和云计算有什么关系?之前我朋友(泳豪)问我的openstack和openflow有什么关系,我一直觉得是司马光和司马迁的关系,但进过一段时间的学习又觉得不是,因为云计算依赖于网络,又由于网络而发展,应该是两只脚并行前进的关系

面试官说,原则上不能回答你这个问题,但你的思考挺有趣的,还有时间,我给你解答一下……

【同一个问题,网易的面试官和腾讯的面试官给我从不同角度阐述了他们对sdn的理解,真心感谢他们,我收获蛮多的,最后还是觉得是跪着离开房间的】

 

HR面

 

面试前师兄们千叮咛万嘱咐,只要不爆打面试官就能过的,毕竟到了这一步,他们没法翻盘的~~

 

问题1:同学,前几个面试官给你的评价还不错,说明你技术扎实,所以我知道你一定是单身对吧?

我:(哪壶不开提哪壶= =||)是啊,既然前两位面试官认可我,说明我不是凭运气进来的,运气还没用光,我应该还有脱单的机会,自己又不是宅男,也是学校越野队的正式队员,身体健康,精力旺盛,脱单全凭运气啦。

 

问题2:你介绍一下计算机网络的发展史。

我:(从阿帕网介绍接着是OSI模型的演进以及和TCP/IP四层模型的市场竞争,最后谈了一下现今网络的发展趋势,也就是sdn的由来)

 

问题3:你介绍一下你们校园网的建设思路

我:(前一天泳豪同学的助攻,将整个校园网跟我全面介绍一下)于是,我就以网管的身份,介绍了整个校园网(瞬间泳豪上身!!!)

 

问题4:说一下你的家庭成员。

 

 

 

 

 

 

春招offer战报

 

2018届拼客学院春招前半部分,接近30个offer!

其中包括5个腾讯2个网易1个京东

8个亚信科技....

接下来的春招准备,开始是网络、安全、

运营商等其他公司的岗位了~

 

 

 

 

五月报班

 

拼客学院王牌旗舰课程

“理论+实战”4个月集中式魔鬼训练,

带你零基础入门,变身网络安全工程师。

加上校招实习求职辅导,

实现真正一站式求职培训服务。

让你在校招大军中脱颖而出,斩获名企offer!

 

(ps:点击以下海报获取更多课程详情~)