字节跳动系统部面经(已意向书)

一面 2021/9/22 10:00 35min

  1. 自我介绍
  2. 用过 Golang 吗?
  3. TCP 四次挥手中 CLOSE_WAIT 出现在什么时候?
  4. TCP 关闭连接为什么要四次挥手?
  5. 如何查看服务器 CLOSE_WAIT 数量?
  6. TCP 和 UDP 有什么区别?
  7. 哪些应用层协议是基于 TCP 的?哪些是基于 UDP 的?
  8. HTTPS 了解吗?
  9. 输入域名解析出 IP 用什么命令?
  10. 如何查看进程的信息?一般关注进程的哪些信息?什么命令可以查看 IO 信息?
  11. 如何抓取某个端口上的网络数据包?HTTPS 能抓包吗?
  12. 操作系统的用户态和内核态区别?什么时候会发生用户态到内核态的切换?
  13. Redis 为什么要有主从?主从之间如何同步的?
  14. zset 了解吗?为什么是有序的?
  15. MySQL 用过吗?写几个 SQL,一张 Student 表,name、sex 和 age 三个字段,如何查询年龄最大的男生?如何查询重名的男生?
    select * from student where age in (select max(age) from student where sex='1')
    select name from student where sex='1' group by name having count(*) > 1
  16. 有一个接口比较慢?该用什么思路排查?
  17. 怎么定位到慢的 SQL?如何查看有没有用到索引?
  18. MySQL 的查询优化器了解吗?
  19. 算法题:剑指 Offer 09. 用两个栈实现队列

反问:

  1. 你们部门主要做什么
  2. 哪些方面不足

Linux 一些命令没有答好,其余答的还可以。面完当天没消息,以为凉了,第二天问 HR 说 pending 了,等了三天接到了 HR 的电话,约了二面。

二面 2021/9/27 16:00 50min

  1. 自我介绍
  2. 你自己在个人的电脑上有尝试过安装某个 Linux 发行版吗?安装的方法还记得吗?大概是怎么安装的?
  3. 如果我给你一台或几台服务器做服务端,另外再给你 1 万台机器是新买的,然后上面没有任何操作系统,我希望你把这一万台机器,统一装成 Ubuntu,这个有什么好的办法?
  4. 比如说一般有一些叫无盘工作站,或者有一些开发场景,就是这些机器可能就没有硬盘,但是他也能够进行启动,这块大概是什么原理呢?
  5. 假设系统安装好了,在里面我想去查 Nginx 这个软件包是否安装了,这个一般怎么查?(rpm -qa、dpkg -l、yum list installed)
  6. 如果是一些目录相关的管理呢,比如说我假定一个目录,里面有一些文件,好长时间没有变动了,我想把他删掉?一个文件一般都有几个时间,比如说访问时间、修改时间,这几个时间大概是怎么描述的?在 C 语言或者说操作系统这一块是怎么定义的,有没有关注过?

题目 1
标题
老文件删除
题目描述
查找 /var/log/nginx 目录下超过 30 天没改动的文件并删除

find /var/log/nginx -type f -mtime +30 | xargs rm -f
find /var/log/nginx -type f -mtime +30 -exec rm -f {} \;
  1. 如果一个目录,下面也有子目录,有一些内容,假定为 A 目录,有另外一个 B 目录,他里面也有一些内容,我想让 B 目录的内容通过你的操作之后,变成和 A 目录完全一样,这个有什么好的办法?(cp、rsync)
  2. cp 命令的一些参数?如果我想保留他的时间和 owner 信息,怎么进一步给出参数?(-p or --preserve)rsync 命令没有用过是吧?
  3. 你有尝试过自己去编译内核吗?现在比较主流的或者说长期支持的内核版本,能给出一个大概的版本号吗?(5.10.66)
  4. 其他的有没有从源代码进行编译安装的软件或者内核?他和操作系统的发行版里带的 Redis 包,相比较你做了哪部分的改动,或者说关注到了有哪部分的改动?
  5. 你自己有尝试去写过 Makefile 吗?
  6. 除了 Redis 之外,glibc 有没有尝试去更新过?像 OpenSSL 一些比较传统的?
  7. 比如你的 Nginx 是怎么安装的?
  8. 这些软件的一些上游,或者说官方的一些漏洞,或者是安全相关的你会关注吗?
  9. 像最近的一年、或者半年,有一些 Linux 提权,从一些普通账号变成特权 root 账号,这一部分有没有关注过?
  10. 安全这个领域平时有关注吗?比如说加密、解密啊。
  11. 比如说 RSA,他大概是什么样的一个原理能做到加密、解密、签名这一系列功能的?
  12. 对称加密你能给出几个加密算法吗?比如我们常见的哈希、MD5、SHA1、SHA256 这些,你自己有没有尝试过比如 MD5 大概他是怎么实现的?
  13. 给你一个文件,想看他的 checksum,怎么去校验,这个有尝试过吗?给出一两个命令?(md5sum、sha1sum)
  14. ssh 登录有一些密码认证的 public key 认证,这个 public key 怎么生成,怎么管理,这个有一些使用体验吗?(ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa)
  15. 除了 public key,除了密码,还有一些别的认证方式,这个有没有关注?
  16. Samba 大概是个什么东西?
  17. DNS 了解吗?能给出几种域名查询的类型吗?递归查询和迭代查询分别是什么?能描述一下迭代的过程吗?DNS 里除了像传统的 A、-A、CNAME 还有一些服务发现的,这个有没有关注?
  18. DNS 用什么端口?(UDP 53)
  19. TCP/IP 的三次握手过程能快速描述一下吗?除了协商窗口信息,还有一些其他的扩展选项,能给出一两个吗?
  20. MSS 表示什么意思,你能给出一个常见的值吗?(536)
  21. 刚才的描述是一个比较正常的情况,我现在做一个假设,我这个 server 端是我控制的,你这边是 client 端,server 端比如说我把 Nginx 80 端口进程 kill 掉了,等于我这边 80 端口已经没有真正的服务在跑了,但是机器还活着,这个时候我们再重新发起 TCP 三次握手建立连接,会发生什么?(RST)

题目 2
标题
tcpdump
题目描述
用 tcpdump 抓取从 192.168.2.1 访问本机 80 端口的完整数据包?

tcpdump -i en0 src host 192.168.2.1 and dst port 80
  1. 我再做一个假设,我现在 server 端是正常的,我拿 100w 台机器向 server 端发送 SYN,server 回复的 ACK 都收到了,但是这 100w 台客户端都不回复第三次 ACK,这种情况下是个什么场景?(SYN-Flood)怎么去预防这个攻击?内核参数有一个 SYN Cookie 这一块有没有关注过?
  2. 如果 server 端的 80 端口一会停一会开,客户端除了用抓包的形式去探测他是好的还是不好的,如果用一些命令,有什么样的命令可选择去探测我这个 80 端口开着?(talnet、nmap、nc)
  3. 网络地址掩码这块能简单地进行计算吗?

题目 3
标题
网络地址掩码
题目描述
添加静态路由并查看?
到 192.168.2.192~192.168.2.255 走 192.168.1.3

  1. 你自己有尝试搭建过 LVS 吗?我看你简历提到过 Nginx 这一块,如果要做高可用这一块,怎么样去做高可用?
  2. IPv6 这一块有学到吗?全 0 的情况下,可以去做缩写,这一块大概能补充一下吗,怎么个缩写规范?
  3. 可以给出一个 IPv6 公共的 DNS 吗?(2400:3200::1 2400:3200:baba::1)IPv4 的呢?(8.8.8.8)
  4. 咱们再往应用层绕一下,HTTP 协议请求头,可以给出几个请求头吗?比如说表示说我这个浏览器或者客户端支持压缩,这个怎么描述呢?和缓存有关的头能给出一两个吗?(Accpet、Referer、Cache-Control、Accept-Encoding、Host、User-Agent)
  5. 如果用 telnet 假设去访问 toutiao.com,能给出一个 telnet 之后,然后去写这个,模拟浏览器这个请求吗?
  6. 刚才我你到 curl,你有用到过 curl 吗?我用 curl 去访问 www.toutiao.com,这个过程可能有一些各个环节的耗时,其中有一个就叫 DNS 耗时,我想知道在这个过程中 DNS 占了多长时间,这个怎么获取?
    curl -o /dev/null -s -w %{http_code}:%{http_connect}:%{content_type}:%{time_namelookup}:%{time_redirect}:%{time_pretransfer}:%{time_connect}:%{time_starttransfer}:%{time_total}:%{speed_download} www.toutiao.com
  7. 数据库这一块 MySQL 这种数据库使用的多吗?

题目 4
标题
MySQL select
题目描述
MySQL 数据库表 group 列出中 id 大于 10 于 99 的数据行数

  1. 你能描述一下 SQL 注入是什么吗?

题目 5
标题
文本文件比较
题目描述
当前目录两个文本文件 a 和 b

file a:
1
2
3

file b:
2
3
4

比较文件 a 和 b 显示只在 b 中出现的行内容

sort b.txt a.txt a.txt | uniq -u
  1. 你平时使用 Git 吗?比如说我们用命令的形式从主分支切出一个开发分支,然后做了一些改动、提交、然后再合回主分支,这个过程你能用命令给一下吗?

题目 6
标题
shell 后台执行
题目描述
bash 脚本:同时执行 a 和 b 等 a 和 b 都执行完执行 c

#!/bin/bash
./a.sh &
./b.sh &
wait
./c.sh

反问:

  1. 刚才问的问题是工作中会遇到的吗
  2. 系统部在公司的定位是什么
  3. 面试岗位的职责

基本都不会,还给过了,当晚约了三面。。。

三面 2021/9/30 10:00 41min

  1. 自我介绍
  2. 介绍实习的项目
  3. 明年毕业是吧?除了 Java 对其他语言了解吗?计算机专业课程中最喜欢哪一门课程?为什么?
  4. 网络中一个 IP 数据包,我们只看 IP 层,这个数据包在经过路由器之后,他的包头有哪些变化?
  5. 在浏览器中输入一个网址到页面加载经过了哪些过程?
  6. 服务端有哪些组件来处理大规模的请求?
  7. HTTPS 建立连接的过程了解吗?对称加密和非对称加密分别用在哪个阶段?为什么传输的时候用对称加密?
  8. HTTP 2 了解吗?多路复用是怎么实现的?为什么 HTTP 1.1 的 TCP 连接不能实现多路复用而 HTTP 2 的 TCP 连接就可以?
  9. 1 亿个不同的 int 类型的正整数,如果在 1 亿个正整数中取 10 个最大的数,用什么数据结构和算法可以非常高效的实现?
  10. 介绍一下自己的项目
  11. 最近有看什么书吗?为什么想学 C++ 呢?Linux 内核这本书看的怎么样了?

反问:

  1. 你们团队是做什么的
  2. 字节跳动的服务都是部署在物理机上的吗
  3. 这个岗位需要学一些什么知识

面完之后 HR 跟我说过了,但是 HRBP 请假了,国庆之后约 HR 面。

HR面 2021/10/11 11:43 3min

  1. 你面试下来感觉怎么样?
  2. 对面试的团队有了解吗?
  3. 手里还有别的意向书吗?他们有说什么时候谈薪吗?
  4. 还在面试别的公司吗?
  5. 能来实习吗?

HR 介绍了团队是在北京,最后 HR 说面完加个微信,发一下身份证号,发了身份证号之后字节的意向书就可以发给你啦!我一愣,心想字节这么快的吗,难道不需要审批的吗?面完之后问了一下朋友,字节很多没有 HR 面,原来已经提前审批好了。发了身份证号之后 3 分钟收到了意向书!

#面试题目##字节跳动#
全部评论

相关推荐

评论
2
26
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务