如题。 现在的互联网公司面试,都喜欢提一个 TCP 三次握手 /四次挥手的问题。可是这种问题且不说以后是否能不能用到,也不提记忆留存率有多高,光网上搜索“面试题”基本都能看到这个问题。那么面试官没考虑过这个问题吗?面试者很容易就能猜到这个面试题,也能随便从网上搜到答案对答入流。 如果想考察 TCP 的问题,这个问题光问三次握手 /四次挥手几乎没什么价值,更多的核心知识比如 TCP 数据报组成、TCP 慢启动 /拥塞避免 /快速传输 /快速恢复 /窗缓存等等等等,更能考察面试者对 TCP/IP 协议的了解程度。 如果是想考察对网络的了解,那这个范围就更大了,三次握手这种问题完全问来无意义。 如果想考察面试者的见识,那么这个问题似乎更没价值了,因为这个问题几乎都被问烂了,似乎成为共识了。 所以,是不是说,大家的面试题很大程度上都开始趋同了?还是说,这些面试官的思维固化了?或者说句比较冒犯的话,面试者的技术不高?(可是国内大公司也喜欢问)
1
ZRS 2019-08-18 23:01:18 +08:00
正如你说既然是一道烂大街的题,为什么不拿来考呢?就是考基础啊,而且真的有效。
我前天接到的一个电话问题:TIME_WAIT 出现在 TCP 连接的什么状态下,为什么要这么做,要等多久 同样是考挥手,我觉得就是很合适的一道题 |
2
butterflydog 2019-08-18 23:05:12 +08:00
@ZRS 然后是不是就是怎么配置调优(手动滑稽)
|
3
ZRS 2019-08-18 23:07:16 +08:00
@butterflydog 倒没有...问完这个就问别的了
|
4
mhycy 2019-08-18 23:10:51 +08:00
考基础的题,就看对 TCP 了解有多少了,免得闹出个“粘包”笑话
TCP 还有这类看起来简单实际回答巨麻烦的题目 “ A、B 机器正常连接后,B 机器突然重启,问 A 此时处于 TCP 什么状态 ” 之前写了个回答 https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/21#issuecomment-518486351 |
5
0ZXYDDu796nVCFxq 2019-08-18 23:12:13 +08:00
就跟高考要考三角函数一样
另外好的面试官会追问的,背题就露馅了 |
6
singerll 2019-08-18 23:12:34 +08:00 via Android
我见过有的研发甚至不知道七层和四层是啥。接个负载均衡都不知道该怎么沟通
|
8
misaka19000 2019-08-18 23:20:22 +08:00
因为面试官只知道三次握手
|
10
poplar50 2019-08-18 23:28:45 +08:00 via Android
就单纯属于面试开场题 你肯定会 暖个场
|
11
zsdsz 2019-08-18 23:34:55 +08:00 via Android
想试试你的武功如何 当然要先试试内力啊 不能单看招式
|
12
gbin 2019-08-18 23:36:00 +08:00 1
因为如果国内的大厂也像北美大厂那样单纯考算法和设计,估计人都找不到,只能考一些稍微需要花时间去掌握的基础,不至于太难,也不至于太简单。
|
13
gamexg 2019-08-19 00:06:36 +08:00
由浅入深一步一步来了解面试者实际面试速度更快
如果连这个回答错误,那么慢启动等可以不用问了,证明 tcp 协议完全不了解。 如果会,那么继续深入,可以一步一步的确定对方了解的内容。 反过来, 如果开始就问高难度的, 那么你不好分辨正好没了解这部分、用的不多忘记了还是 tcp 完全不了解? 还需要再转回三步握手确认。 |
14
CEBBCAT 2019-08-19 02:59:22 +08:00 via Android
我也觉得是分层次递进地问。考察的目的不是考倒,是考验
|
15
chibupang 2019-08-19 03:08:54 +08:00 via Android
|
16
chibupang 2019-08-19 03:11:35 +08:00 via Android
一上来就问 Paxos,手写 LRU 红黑树那后面问啥呀?
|
17
ericbize 2019-08-19 07:20:21 +08:00 via iPhone
之前我也觉得没什么用, 直到上次网络出现问题, 我领导 用 Wireshark 分析包, (没有基础,你连三次握手都不会分析好吗)
|
18
HuHui 2019-08-19 08:06:33 +08:00 via Android
有一部分是用来区分科班和非科班的
|
19
murmur 2019-08-19 08:28:53 +08:00
有些游戏公司不用标准 TCP,会用那种介于 UDP 和 TCP 之前的自定协议提升并发,但是绝大多数还是只是为了筛人
|
20
whywhywhy 2019-08-19 08:43:31 +08:00
工作用什么,将来用什么,就问什么好了。
面试造航母,进去拧螺丝都没资格,只能天天擦桌子,问些工作上用不到的东西,有啥意义呢,结果一群人专门为了“面试”而努力。 面向面试编程。 |
21
yhxx 2019-08-19 09:17:27 +08:00
其实有很多可以问到的点啊
比如,握手阶段为什么一定需要 3 次?能不能简化一点?快速打开有没有了解过? 断开阶段第二次和第三次能不能合并?有没有听过延迟确认? 我觉得抛开 TCP,这也是一个挺不错的考察思维能力的问题 要做到可靠的传输,最少需要几次交互 大部分背面试题的人应该只能答出那种“我要发消息给你了,我知道你要发消息了 balabala ” 这题明明有很好的区分度啊 |
23
qakito 2019-08-19 11:17:08 +08:00
仅仅是暖场基础题吧;并不是所有公司都需要直接接触这么底层的通信
|
25
julyclyde 2019-08-19 14:12:53 +08:00
用于把那些
用着 TCP 却一口一个“数据包” 的人,筛选掉啊 |