字节跳动网络工程师凉经

情况概述

刚毕业半年,计算机二战考研结束,分数擦线找保底工作。因为自己网络基础还可以,所以找在字节实习的学妹内推的网络工程师的岗位,走的是社招。等了一周之后收到了面试邀约。

这个岗位真的很小众,听在字节的校友说这个岗位今年校招全国只招5个人。我翻遍全网只找到两篇字节网络工程师的面经。

不愧是大厂,考察的问题很全面,对于知识问得很深入。明显感觉这种知识深度不是简简单单背点八股文就能糊弄过去的,面试官会在他感兴趣的部分不断地深入,以探测你掌握的知识的深度,是不是只是简单背了点八股文。

写这篇文章一是想帮助有同样困惑的朋友,免得少走弯路,二是记录下自己的经历,做下总结。当然也希望认识结识一些对网络感兴趣的朋友。

岗位要求:

实时传输网络研发工程师

上海

研发 - 后端

社招

职位 IDJYG6P

职位描述

1、字节跳动实时通信的后台业务研发;

2、实时网络SDN控制器、数据转发服务的开发和技术演进

 

 

职位要求

1、本科及以上学历,计算机、通信及相关专业;

2、熟练掌握Golang/C++/Java/Python语言,有较好的算法基础;

3、有扎实的网络技术基础,对socket通信、UDP/TCP/IPHTTP有深刻的理解;

4、熟悉IPv4IPv6vlanvxlan, ***等技术,熟练掌握Openflow, OSPF, BGP等协议;

5、良好的分析问题、解决问题的能力,具有一定的攻坚能力;

具备以下条件者优先:

1、有ODLONOSVPPOpenvswitch 项目开发经验者优先;

2、有SDWAN相关项目经验者优先。

https://jobs.bytedance.com/experienced/position/6956158997100857631/detail

 

面试持续了一个小时,以下部分罗列出我被问到的问题:

操作系统部分:

1.        进程和线程的区别?

我:进程与线程主要区别是是否占用的资源的区别,一个进程可以对应多个线程,而每个线程只属于某一个进程。当某个线程被阻塞时,会阻塞属于同一个进程的所有线程。

2.        具体说说你讲的进程线程控制资源的事情。

我:……答不出来具体的

3.        堆和栈的区别

我:堆的空间大一点,栈的空间小一点。栈可以存储进程的PCB什么的,具体的我就不知道了,了解的不多。

4.        说说堆和栈是存储在哪儿的

我:不知道

5.        进程阻塞的四大条件

我:(头天刚看了书,之前华为od也问了这个问题)资源由某个进程独占,资源被占用后不能被重新取出来,还有什么保持并……稳住?最后一个忘了

网络部分

6.        了解各个协议层对应的机器吗

我:(王道408看了无数次了)从最底层到最顶层来数。物理层,两端口的是放大器或者中继器,多端口的是集线器。数据链路层,两端口的是网桥,多端口的是交换机。网络层,路由器。传输层及以上,不同书上的说法不同,通常来说统称网关,但是有的书上也称之为路由器。某些书上把路由器和网关混为一谈,甚至还有一些书把应用层的网关称为应用层网关。《自顶向下》是有应用层网关这东西的。

7.        选路算法有了解吗

我:这个就很多了,看怎么分。可以按照ISP内部和ISP外部划分,可以按照DV算法和LS算法划分。(还想继续说)

8.        那你说说具体的吧,说一种你比较熟悉的,比方说OSPF

我:OSPFOpen Shortest Path First算法。是一种用于ISP内部的LS算法,用的是迪杰斯特拉算法实现的。(说得很流畅,两次考研这部分都是重点,很熟悉了)

9.        讲讲四次挥手,每次信息传输的状态,和传递的消息

我:四次挥手了解得不多,主要看的还是三次握手

10.     那讲讲三次握手吧

我:客户端发送一个请求,服务器接收后发送一个确认,然后客户端收到之后再发送一个确认。ACKSYN会在连接的过程中改变。

11.     仔细讲讲具体的,每一次连接的状态

我:(支支吾吾)

12.     讲讲为什么要三次握手四次挥手

我:(支支吾吾)

13.     192.168.1.1/24这个的网络号和广播地址是什么

我:网络号是192.168.1.0,广播地址是192.168.1.255

14.     说说为什么是这样的,讲讲过程

我:这个/24CIDR化的前缀,至于为什么要用CIDR化的前缀呢,这里是有个历史过程的 。最开始是只有网络号,前面固定位数表示网络号。后面不够用了,就划分了子网号。再后来子网号划分也不够用了,就把网络号和子网号都混为一谈,成为CIDR化的前缀,除了CIDR化前缀这部分以外,其他的都是主机号。

语言部分

15.     说说你用的什么语法(这个问题他前后问了我两次)

我:C++

16.     说说structclass的区别(之前新华三c驱动开发也问了我这个问题)

我:默认权限不一样,structclass,一个默认是public,一个默认是private。另外好像class可以方便地继承和派生,然后struct就不行,其他的我就记不住了。

17.     const int**const int是什么东西(好像是这么写的,我也记不住了)

我:我不知道,就猜猜看吧。const int*const在前面,说明这个是个常量,而这个常量是什么呢,那就应该是个指向int型的指针。*const int应该是个指针,然后这个指针是个常量。(编不下去了)

算法部分

这个算法真是巨简单,力扣中easy中的easy,就是那种数据结构课上拿来入门的那种。可惜我这几天时间紧张,重点看了计算机网络,而忽视了编程实践。弄得连C++链表的语法都忘了,最后被我朋友说得一塌糊涂。

问题:有两个链表,求两个链表的第一个公共节点

具体解法就不讲了。我问面试官能百度下链表的语法吗,这个我忘了。他说不行。我就只好敲了一堆伪代码。三天后收到消息,确实是挂了。

趣事

工牌厂不愧是工牌厂。刚面试面试官就对我晃晃他的工牌,之前面试的其他公司都没秀过工牌的。好像是在再次确认身份一样。

#字节跳动面试##字节跳动##社招##内推#
全部评论
拿到offer了吗
2 回复
分享
发布于 2022-03-03 13:08

相关推荐

点赞 评论 收藏
转发
12 34 评论
分享
牛客网
牛客企业服务