你精通tcp是吗?细节都如数家珍对吧?整个协议族你都能娓娓道来是吗?每个标志位的作用以及来龙去脉你都能侃侃而谈对吧?好的,面试官吊打的就是你!!
你:我精通tcp三次握手。
面试官问:既然你精通tcp三次握手,那么你肯定跟IETF这个组织比较熟悉了,那么请问,你有没有给IETF提供一些优化建议?或者你在里面有没有担任过什么角色?
你:IETF这个标准不知道,一般人也达不到那个水平,精通tcp三次握手,主要是对编写程序还是很有帮助的,这样才能技术的理解更有深度。
面试官说:既然你不知道这个组织,你说你精通tcp三次握手就是为了对底层比较了解,对技术的理解更加有深度,那么请问,你为什么要去对技术有更加深入的理解?是为了解决日常开发中的问题吗?还是为了改造这个协议?还是说为了创造一个新的协议出来?
你回答:我没有想过创造一个新的协议出来,我觉得对技术理解深入了,才能更加快速的解决日常中的项目遇到的问题。
面试官:既然你精通tcp,仅仅是为了解决日常中的技术问题,那么请问,你日常开发中的项目中是不是三次握手影响了你的程序性能,然后你优化了这个性能,比如三次握手改成了两次握手?或者说你的项目中tcp握手协议完全不符合你项目的标准,你们自创了一套三次握手协议?还是说你通过改造内核源码,优化了三次握手的性能?
你:我们的项目中还没遇到过这样的问题,不过如果遇到这样的问题的话,我起码是有思路能够解决这些问题的。
面试官:既然你也没遇到过这些项目问题,你精通tcp,仅仅是未来遇到相关问题的时候有思路。那么请问,你的思路有没有形成固定的思维路径?如果有,有多少条?比如遇到什么问题,第一步做什么第二步做什么,只需要按照你的思维路径一步步走,就能找到项目中关于tcp的相关问题,就像一个操作手册一样。还有你是如何将这种路径进行复制给其他人的?在企业中或者项目中带来了哪些成果?请具体量化你的成果,请提供对比数据支撑。
你:思维路径这个没有固定的,项目环境是比较复杂的,如果遇到了相关问题,具体情况具体分析的,我觉得精通tcp总比不精通要好吧?毕竟这是跟项目紧密相关的东西,总不可能学了还有坏处。
面试官问:既然你也说不出精通tcp有什么好处,也说不出来未来能带来什么好处,那咱们就只聊tcp本身吧。请问tcp过去的发展脉络你知道吗?你能不能根据历史的RFC文档逐一梳理?比如拥塞控制这个技术,当时的背景是什么?当时要解决的问题是什么?当时有没有一些争议激烈的点?请细说一下。
你:这些脉络和背景太多了,肯定学不来这么多,我只要把当前我们用到的tcp的东西精通了就行,所以当前是个什么状况,我是比较精通的。
面试官问:你说你精通tcp,但是连个发展脉络都梳理不出来,你只精通tcp当前的状况,那么请问,你怎么证明你精通tcp?是拿到过tcp方面的国际竞赛奖吗?或者国内的相关竞赛奖也可以。还是说你考了什么tcp认证的相关证书?还是说你师从了哪个tcp专家级教授?所以,请你拿出相关证据证明你精通tcp。
你:我不知道还有这些竞赛,也没有师从什么tcp专家,但是我真的很精通tcp,里面每个细节我都如数家珍,每个位代表什么含义我都知道,tcp传输过程中的每个细节我都清楚,不信你随便问。
面试官,你说你精通tcp,但是你又无法证明你精通tcp,你说你仅仅是了解tcp的各种细节,既然你这么菜,那也只好如此问你了,就问你几个简单的tcp流程问题吧。你就说说tcp在传输一个syn包的时候,网卡的耗电量多少?路由器的耗电量多少?交换机的耗电量多少?网线的疲劳损耗多少?当然我不要求你精确到具体多少焦耳,你提供计算思路也行。
你:我真没想过,传输syn包怎么还跟耗电量扯上关系了,我也没做过类似的换算,我了解细节,是只了解tcp的细节,tcp相关的其他细节,我真不知道。
面试官无奈:你说你了解细节,我就问你细节,syn包是细节吧?连我不怎么精通tcp的都知道的细节,要你换算耗电量了,你又算不出来,我没记错的话,我们初中就学过焦耳这个单位了吧?你初中认真学过吗?我真不理解你的精通tcp到底是怎么个精通法,算了,今天的面试就到这吧。