聊了四十多分钟。腾讯的面试官比阿里友好很多啊!!!面试官感觉很年轻。聊天氛围很好,我在问题不会的时候就想笑,面试官憋住笑。
部门介绍
自我介绍
在学校有什么课程,成绩怎么样
TopK问题
最短路算法
讲了Dijkstra和原理。
问如何判断负环,讲了Spfa算法,不会原理。
讲了Floyd算法。
类加载器
讲了双亲委派模型。
Java内存模型
确认了很久,并不是JVM内存模型。
提示了堆栈。然后大概讲了下里面分别有什么东西。
然后让我讲如果现在在一个方法里面执行 String a = new String("Hello");
的话,内存模型大概是怎么样的,很虚只能答不会。
TCP和UDP区别
- TCP面向连接,UDP无连接。
- TCP通过确认机制、流量控制和拥塞控制保证可靠性,UDP不保证可靠性,是尽最大努力交付。
- TCP是点对点通信,UDP可以是一对一、一对多、多对多通信。
什么使用TCP,什么时候UDP,为什么
直播和语音的时候使用UDP,因为UDP速度快,且环境允许少量掉包。
解释了为什么速度快,因为TCP需要确认机制和维护窗口之类的,可能需要消耗时间(不知道对不对)。
TCP为什么是四次挥手
流量控制和拥塞控制
讲了流量控制。
拥塞控制讲到快重传和快恢复的时候居然忘了!!!
慢开始和拥塞避免
慢开始:一开始将 cwnd 置为1,每收到一个报文段的确认,就使 cwnd+1。每经过一个传输轮次,cwnd就加倍(因为每次发送的报文段数量为cwnd的大小)。
拥塞避免:让 cwnd 每经过一个传输轮次才加1,而不是加倍。
慢开始门限 ssthresh:
- 当 cwnd < ssthresh 时候,使用慢开始算法。
- 当 cwnd > ssthresh 时候,使用拥塞避免算法。
- 当相等时候,都可以使用。
慢开始和拥塞避免流程:一开始执行慢开始,当窗口大小超过阈值时候使用拥塞避免。当网络出现超时(发生拥塞),将 ssthresh 变为当前窗口大小的一半,窗口大小重新置为1,重新慢开始算法。
快重传和快恢复
快重传:接收方应及时发送对报文段的重复确认。当发送方接收到三个重复确认就立即重传对方未收到的报文段。
快恢复:
- 当收到三个重复确认后,把慢开始门限 ssthresh 减半。(预防拥塞)
- 门限减半后此时把 cwnd值 置为 ssthresh的一半,然后开始拥塞避免算法。
ping的原理(不会)
觉得自己有什么优势
思考了挺久,憋出了细心,肯花时间学。
有什么想问的
问了评价,对方很尴尬,告辞。
问了后台技术。
你在ACM里面负责哪一块
很尬,说了之前您问过的图论。
网友评论