百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

一线互联网公司字节跳动后端开发视频架构面经总结

off999 2025-10-02 05:48 31 浏览 0 评论

这篇文章主要介绍了字节跳动后端开发视频架构面经总结,觉得挺不错的,现在分享给大家,也给大家做个参考。一起过来看看吧

背景

面试方式:视频面(一面)

部门:字节跳动-视频架构-后端开发

主要根据简历上的内容(项目和技能)来问

面试题

1. 视频流的传输方式?(项目)

答:点对点传输,第三方流媒体服务器传输,自主搭建流媒体服务器传输;

2. 项目中是采用UDP-Socket实现心跳包,为什么采用UDP?(项目)

答:心跳包它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。其实TCP和UDP都可以实现心跳包,心跳包采用TCP还是UDP根据项目需要,采用UDP是因为它的速度快,占资源少。

速度快:TCP必须建立连接,而UDP是一个非连接的协议,所以UDP更快;

占资源少:UDP的数据报头部只有8个字节,而TCP数据报头部是20个字节;

3. TCP与UDP的区别?

答:1 基于连接和无连接;

2 TCP是可靠,保证数据正确;UDP不可靠,不保证数据正确;

3 TCP保证数据顺序到达;UDP不保证数据顺序到达;

4 TCP速度慢,因为TCP必须创建连接;UDP速度较快,不需要建立连接;

5 因为上述开销,TCP是一个重量级协议;UDP是一个轻量级的协议;

6 一个TCP数据包报头的大小是20字节;一个UDP数据报报头是8个字节;

7 TCP有流量控制和拥塞控制;UDP不能进行流量控制;

8 TCP面向字节流;UDP面向报文;

9 应用场景不同,TCP适合对效率要求相对低,但对准确性要求相对高或者是有连接的场景,TCP一般用于文件传输(HTTP,HTTPS,FTP等协议),邮件(POP,SMTP等协议),远程登录等场景;UDP更适合对效率要求相对高,对准确性要求相对低的场景,UDP一般用于即时通信(QQ聊天),在线视频(rtsp流速度一定要快,偶尔丢包没关系),网络语音电话等场景;

4. TCP四次挥手讲下?为什么有TIME_WAIT?

答:

1. A不能保证最后的ACK能达到B,如果最后的ACK丢失, 那么B显然收不到, B于是发起了重传FIN的操作, 此时如果A处于CLOSED的状态, 就没办法给对端发ACK了,所以A应该等一段时间,这段时间就是所谓的TIME_WAIT。

2. 保证新旧四元组互不干扰,假设tcp连接是:A(1.2.3.4:8888)------B(6.7.8.9:9999), 这就是一个tcp四元组。

当tcp连接关闭后, 四元组释放。 后面的新连接可能会重用到这个四元组(有这个可能性), 那么问题就来了: 新四元组和旧四元组完全一致, 他们的网络包会混乱吗?

所以,可以考虑这样一个机制:让旧四元组对应的所有网络包都消失后(等一段时间),才允许新四元组建立,颇有点锁的味道。这个等一段时间就是2MSL。

5. TCP比UDP多消耗哪些系统资源?

答:TCP建立连接时三次握手,断开连接时四次挥手;TCP数据包头部20字节,UDP数据包头部8字节;TCP有流量控制和拥塞控制。

6. UDP在内网下有几种NAT方式?

答:NAT(Network Address Translation)即网络地址转换,NAT能将其本地地址转换成全球IP地址。 考虑到UDP的无状态特性,目前针对其的NAT实现大致可分为Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四种。

7. 你了解DDoS攻击吗?

答:拒绝服务攻击(简称DoS攻击),亦称洪水攻击,其目的在于使目标计算机的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。

当黑客使用网络上两个或以上被攻陷的计算机作为“僵尸”向特定的目标发动“拒绝服务”式攻击时,称为分布式拒绝服务攻击(distributed denial-of-service attack,简称DDoS攻击)。

8. Nginx了解吗,讲一下?

答:Nginx 采用的是多进程(单线程) & 多路IO复用模型。

工作模式:

(1)、Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程。

(2)、接收来自外界的信号,向各worker进程发送信号,每个进程都有可能来处理这个连接。

(3)、master 进程能监控 worker 进程的运行状态,当 worker 进程退出后(异常情况下),会自动启动新的 worker 进程。

9. Nginx中master进程和worker进程是怎么通信的?

答:nginx的进程通信分为三种类别:linux 系统与nginx 通信(信号),master 进程与worker进程通信(套接字),worker进程间通信(共享内存)。

(1) linux 系统与nginx 通信

答:linux 系统与nginx是通过信号进行通信的,通过信号控制nginx重启、关闭以及加载配置文件等。比如:./nginx –s quit 向master进程发送信号。

(2) master 进程与worker进程通信

答:master进程与worker进程通过频道(channel)进行通信。创建频道,其实就是socketpair,在启动worker进程时创建频道;

发送消息,master进程通过
ngx_signal_woker_processes向worker进程发送消息;响应消息,worker进程通过ngx_read_channel读取消息,然后根据command判断是什么消息。

(3) worker进程间通信

答:worker进程间则是通过共享内存进行通信。它通过 mmap 或者 shmgat 系统调用在内存中创建了一块连续的线性地址空间,而通过 munmap 或者 shmdt 系统调用可以释放这块内存。

使用共享内存的好处是当多个进程使用同一块共享内存时,在任何一个进程修改了共享内存中的内容后,其他进程通过访问这段共享内存都能够得到修改后的内容。

10. 为什么worker进程数和CPU数一致?

答:一是Nginx一般只做高并发代理,基本没用IO操作,算是CPU密集型操作,所以在处理时基本是瞬间完成的,很少出现IO阻塞。

二是进程与CPU调度的关系,单个核心处理多个进程的时候,是排队处理的,所以将worker进程数量设置超过核心数会造成不必要的上下文切换。

11. 多进程上下文切换讲下?

答:上下文切换:为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行。这种行为被称为进程切换。

因此可以说,任何进程都是在操作系统内核的支持下运行的,是与内核紧密相关的。 从一个进程的运行转到另一个进程上运行,这个过程中经过下面这些变化:

1. 保存处理机上下文,包括程序计数器和其他寄存器。

2. 更新PCB信息。

3. 把进程的PCB移入相应的队列,如就绪、在某事件阻塞等队列。

4. 选择另一个进程执行,并更新其PCB。

5. 更新内存管理的数据结构。

6. 恢复处理机上下文。 注:总而言之就是很耗资源。

12. 讲一下同步,异步,阻塞,非阻塞,多路IO复用?

答:当一个同步调用发出后,调用者要一直等待返回消息(结果)通知后,才能进行后续的执行;当一个异步过程调用发出后,调用者不能立刻得到返回消息(结果)。

实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务。

非阻塞是指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

13. Nginx属于以上哪种类型?

答:Nginx采用异步非阻塞的事件处理机制,由进程循环处理多个准备好的事件,从而实现高并发和轻量级。

14. 讲一下epoll?

答:epoll是在2.6内核中提出的,是之前的select和poll的增强版本。

相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。

15. 讲下epoll和select的区别?

答:1.select单个进程能够监视的文件描述符数量一般是1024,有数量限制,可以通过修改宏定义甚至重新编译内核来修改,但是会造成效率的降低。

epoll监视的描述符数量不受限制,支持的FD是最大可以打开文件数目。在1GB内存的机器上大约是10万左右。

2.select每次调用都会对socket集合中所有的socket,如果socket集合较大,效率就会线性下降;

epoll不存在这个问题,epoll只会对“活跃”的socket进行操作,

每个fd上有个callback函数,只有“活跃”的socket才会主动去调用callback函数,其他idle状态socket不会。

3.epoll使用mmap加速内核态与用户态的消息传递;Epoll是通过内核与用户空间mmap处于同一块内存实现的。避免了不必要的内存拷贝。

两个编程题:

1 给一个有向图,判断有向图中是否有环,如果有环,环的数量是多少?

2 给一个大小为n的数组,寻找比k小的最大数的位置。

面试经验总结

建议:

1 简历上的东西一定要非常熟悉再熟悉;

2 算法题一定要多刷再多刷;

到此这篇关于字节跳动后端开发视频架构面经总结的文章就介绍到这了,更多相关视频架构面试内容整理了 1000 道 2020年多家公司 java 面试题 400 多页 pdf 文档,还有几百页的Java核心知识点PDF。

关注私信【555】获取,还可领取更多Java面试题资料

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: