亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

字節(jié)跳動(dòng)后端開發(fā)視頻架構(gòu)面經(jīng)總結(jié)

  發(fā)布時(shí)間:2020-02-25 17:20:07   作者:zkfopen   我要評論
這篇文章主要介紹了字節(jié)跳動(dòng)后端開發(fā)視頻架構(gòu)面經(jīng)總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

時(shí)間:7.16
面試方式:視頻面(一面)
部門:字節(jié)跳動(dòng)-視頻架構(gòu)-后端開發(fā)
主要根據(jù)簡歷上的內(nèi)容(項(xiàng)目和技能)來問

1. 視頻流的傳輸方式?(項(xiàng)目)
答:點(diǎn)對點(diǎn)傳輸,第三方流媒體服務(wù)器傳輸,自主搭建流媒體服務(wù)器傳輸;

2. 如何實(shí)現(xiàn)內(nèi)網(wǎng)穿透的?(項(xiàng)目)

3. 項(xiàng)目中是采用UDP-Socket實(shí)現(xiàn)心跳包,為什么采用UDP?(項(xiàng)目)
答:心跳包它像心跳一樣每隔固定時(shí)間發(fā)一次,以此來告訴服務(wù)器,這個(gè)客戶端還活著。其實(shí)TCP和UDP都可以實(shí)現(xiàn)心跳包,心跳包采用TCP還是UDP根據(jù)項(xiàng)目需要,采用UDP是因?yàn)樗乃俣瓤?,占資源少。
速度快:TCP必須建立連接,而UDP是一個(gè)非連接的協(xié)議,所以UDP更快;
占資源少:UDP的數(shù)據(jù)報(bào)頭部只有8個(gè)字節(jié),而TCP數(shù)據(jù)報(bào)頭部是20個(gè)字節(jié);

4. TCP與UDP的區(qū)別?
答:
1 基于連接和無連接;
2 TCP是可靠,保證數(shù)據(jù)正確;UDP不可靠,不保證數(shù)據(jù)正確;
3 TCP保證數(shù)據(jù)順序到達(dá);UDP不保證數(shù)據(jù)順序到達(dá);
4 TCP速度慢,因?yàn)門CP必須創(chuàng)建連接;UDP速度較快,不需要建立連接;
5 因?yàn)樯鲜鲩_銷,TCP是一個(gè)重量級協(xié)議;UDP是一個(gè)輕量級的協(xié)議;
6 一個(gè)TCP數(shù)據(jù)包報(bào)頭的大小是20字節(jié);一個(gè)UDP數(shù)據(jù)報(bào)報(bào)頭是8個(gè)字節(jié);
7 TCP有流量控制和擁塞控制;UDP不能進(jìn)行流量控制;
8 TCP面向字節(jié)流;UDP面向報(bào)文;
9 應(yīng)用場景不同,TCP適合對效率要求相對低,但對準(zhǔn)確性要求相對高或者是有連接的場景,TCP一般用于文件傳輸(HTTP,HTTPS,F(xiàn)TP等協(xié)議),郵件(POP,SMTP等協(xié)議),遠(yuǎn)程登錄等場景;UDP更適合對效率要求相對高,對準(zhǔn)確性要求相對低的場景,UDP一般用于即時(shí)通信(QQ聊天),在線視頻(rtsp流速度一定要快,偶爾丟包沒關(guān)系),網(wǎng)絡(luò)語音電話等場景;

5. TCP四次揮手講下?為什么有TIME_WAIT?
答:

1. A不能保證最后的ACK能達(dá)到B,如果最后的ACK丟失, 那么B顯然收不到, B于是發(fā)起了重傳FIN的操作, 此時(shí)如果A處于CLOSED的狀態(tài), 就沒辦法給對端發(fā)ACK了,所以A應(yīng)該等一段時(shí)間,這段時(shí)間就是所謂的TIME_WAIT。
2. 保證新舊四元組互不干擾,假設(shè)tcp連接是:A(1.2.3.4:8888)------B(6.7.8.9:9999), 這就是一個(gè)tcp四元組。 當(dāng)tcp連接關(guān)閉后, 四元組釋放。 后面的新連接可能會重用到這個(gè)四元組(有這個(gè)可能性), 那么問題就來了: 新四元組和舊四元組完全一致, 他們的網(wǎng)絡(luò)包會混亂嗎?所以,可以考慮這樣一個(gè)機(jī)制:讓舊四元組對應(yīng)的所有網(wǎng)絡(luò)包都消失后(等一段時(shí)間),才允許新四元組建立,頗有點(diǎn)鎖的味道。這個(gè)等一段時(shí)間就是2MSL。

6. TCP比UDP多消耗哪些系統(tǒng)資源?
答:TCP建立連接時(shí)三次握手,斷開連接時(shí)四次揮手;TCP數(shù)據(jù)包頭部20字節(jié),UDP數(shù)據(jù)包頭部8字節(jié);TCP有流量控制和擁塞控制。

7. UDP在內(nèi)網(wǎng)下有幾種NAT方式?
答:NAT(Network Address Translation)即網(wǎng)絡(luò)地址轉(zhuǎn)換,NAT能將其本地地址轉(zhuǎn)換成全球IP地址。
考慮到UDP的無狀態(tài)特性,目前針對其的NAT實(shí)現(xiàn)大致可分為Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四種。

8. 你了解DDoS攻擊嗎?
答:拒絕服務(wù)攻擊(簡稱DoS攻擊),亦稱洪水攻擊,其目的在于使目標(biāo)計(jì)算機(jī)的網(wǎng)絡(luò)或系統(tǒng)資源耗盡,使服務(wù)暫時(shí)中斷或停止,導(dǎo)致其正常用戶無法訪問。當(dāng)黑客使用網(wǎng)絡(luò)上兩個(gè)或以上被攻陷的計(jì)算機(jī)作為“僵尸”向特定的目標(biāo)發(fā)動(dòng)“拒絕服務(wù)”式攻擊時(shí),稱為分布式拒絕服務(wù)攻擊(distributed denial-of-service attack,簡稱DDoS攻擊)。

9. Nginx了解嗎,講一下?
答:Nginx 采用的是多進(jìn)程(單線程) & 多路IO復(fù)用模型。
工作模式:
(1)、Nginx 在啟動(dòng)后,會有一個(gè) master 進(jìn)程和多個(gè)相互獨(dú)立的 worker 進(jìn)程。
(2)、接收來自外界的信號,向各worker進(jìn)程發(fā)送信號,每個(gè)進(jìn)程都有可能來處理這個(gè)連接。
(3)、master 進(jìn)程能監(jiān)控 worker 進(jìn)程的運(yùn)行狀態(tài),當(dāng) worker 進(jìn)程退出后(異常情況下),會自動(dòng)啟動(dòng)新的 worker 進(jìn)程。

10. Nginx中master進(jìn)程和worker進(jìn)程是怎么通信的?
答:
nginx的進(jìn)程通信分為三種類別:linux 系統(tǒng)與nginx 通信(信號),master 進(jìn)程與worker進(jìn)程通信(套接字),worker進(jìn)程間通信(共享內(nèi)存)。
(1) linux 系統(tǒng)與nginx 通信
答:linux 系統(tǒng)與nginx是通過信號進(jìn)行通信的,通過信號控制nginx重啟、關(guān)閉以及加載配置文件等。比如:./nginx –s quit 向master進(jìn)程發(fā)送信號。
(2) master 進(jìn)程與worker進(jìn)程通信
答:master進(jìn)程與worker進(jìn)程通過頻道(channel)進(jìn)行通信。創(chuàng)建頻道,其實(shí)就是socketpair,在啟動(dòng)worker進(jìn)程時(shí)創(chuàng)建頻道;發(fā)送消息,master進(jìn)程通過ngx_signal_woker_processes向worker進(jìn)程發(fā)送消息;響應(yīng)消息,worker進(jìn)程通過ngx_read_channel讀取消息,然后根據(jù)command判斷是什么消息。
(3) worker進(jìn)程間通信
答:worker進(jìn)程間則是通過共享內(nèi)存進(jìn)行通信。它通過 mmap 或者 shmgat 系統(tǒng)調(diào)用在內(nèi)存中創(chuàng)建了一塊連續(xù)的線性地址空間,而通過 munmap 或者 shmdt 系統(tǒng)調(diào)用可以釋放這塊內(nèi)存。使用共享內(nèi)存的好處是當(dāng)多個(gè)進(jìn)程使用同一塊共享內(nèi)存時(shí),在任何一個(gè)進(jìn)程修改了共享內(nèi)存中的內(nèi)容后,其他進(jìn)程通過訪問這段共享內(nèi)存都能夠得到修改后的內(nèi)容。

11. 為什么worker進(jìn)程數(shù)和CPU數(shù)一致?
答:一是Nginx一般只做高并發(fā)代理,基本沒用IO操作,算是CPU密集型操作,所以在處理時(shí)基本是瞬間完成的,很少出現(xiàn)IO阻塞。二是進(jìn)程與CPU調(diào)度的關(guān)系,單個(gè)核心處理多個(gè)進(jìn)程的時(shí)候,是排隊(duì)處理的,所以將worker進(jìn)程數(shù)量設(shè)置超過核心數(shù)會造成不必要的上下文切換。

12. 多進(jìn)程上下文切換講下?
答:上下文切換:為了控制進(jìn)程的執(zhí)行,內(nèi)核必須有能力掛起正在CPU上運(yùn)行的進(jìn)程,并恢復(fù)以前掛起的某個(gè)進(jìn)程的執(zhí)行。這種行為被稱為進(jìn)程切換。因此可以說,任何進(jìn)程都是在操作系統(tǒng)內(nèi)核的支持下運(yùn)行的,是與內(nèi)核緊密相關(guān)的。
從一個(gè)進(jìn)程的運(yùn)行轉(zhuǎn)到另一個(gè)進(jìn)程上運(yùn)行,這個(gè)過程中經(jīng)過下面這些變化:
1. 保存處理機(jī)上下文,包括程序計(jì)數(shù)器和其他寄存器。
2. 更新PCB信息。
3. 把進(jìn)程的PCB移入相應(yīng)的隊(duì)列,如就緒、在某事件阻塞等隊(duì)列。
4. 選擇另一個(gè)進(jìn)程執(zhí)行,并更新其PCB。
5. 更新內(nèi)存管理的數(shù)據(jù)結(jié)構(gòu)。
6. 恢復(fù)處理機(jī)上下文。
注:總而言之就是很耗資源。

13. 講一下同步,異步,阻塞,非阻塞,多路IO復(fù)用?
答:當(dāng)一個(gè)同步調(diào)用發(fā)出后,調(diào)用者要一直等待返回消息(結(jié)果)通知后,才能進(jìn)行后續(xù)的執(zhí)行;當(dāng)一個(gè)異步過程調(diào)用發(fā)出后,調(diào)用者不能立刻得到返回消息(結(jié)果)。實(shí)際處理這個(gè)調(diào)用的部件在完成后,通過狀態(tài)、通知和回調(diào)來通知調(diào)用者。阻塞調(diào)用是指調(diào)用結(jié)果返回之前,當(dāng)前線程會被掛起,一直處于等待消息通知,不能夠執(zhí)行其他業(yè)務(wù)。非阻塞是指在不能立刻得到結(jié)果之前,該函數(shù)不會阻塞當(dāng)前線程,而會立刻返回。

14. Nginx屬于以上哪種類型?
答:Nginx采用異步非阻塞的事件處理機(jī)制,由進(jìn)程循環(huán)處理多個(gè)準(zhǔn)備好的事件,從而實(shí)現(xiàn)高并發(fā)和輕量級。

15. 講一下epoll?
答:epoll是在2.6內(nèi)核中提出的,是之前的select和poll的增強(qiáng)版本。相對于select和poll來說,epoll更加靈活,沒有描述符限制。epoll使用一個(gè)文件描述符管理多個(gè)描述符,將用戶關(guān)系的文件描述符的事件存放到內(nèi)核的一個(gè)事件表中,這樣在用戶空間和內(nèi)核空間的copy只需一次。

16. 講下epoll和select的區(qū)別?
答:1.select單個(gè)進(jìn)程能夠監(jiān)視的文件描述符數(shù)量一般是1024,有數(shù)量限制,可以通過修改宏定義甚至重新編譯內(nèi)核來修改,但是會造成效率的降低。
epoll監(jiān)視的描述符數(shù)量不受限制,支持的FD是最大可以打開文件數(shù)目。在1GB內(nèi)存的機(jī)器上大約是10萬左右。
2.select每次調(diào)用都會對socket集合中所有的socket,如果socket集合較大,效率就會線性下降;epoll不存在這個(gè)問題,epoll只會對“活躍”的socket進(jìn)行操作,每個(gè)fd上有個(gè)callback函數(shù),只有“活躍”的socket才會主動(dòng)去調(diào)用callback函數(shù),其他idle狀態(tài)socket不會。
3.epoll使用mmap加速內(nèi)核態(tài)與用戶態(tài)的消息傳遞;Epoll是通過內(nèi)核與用戶空間mmap處于同一塊內(nèi)存實(shí)現(xiàn)的。避免了不必要的內(nèi)存拷貝。

兩個(gè)編程題:
1 給一個(gè)有向圖,判斷有向圖中是否有環(huán),如果有環(huán),環(huán)的數(shù)量是多少?
2 給一個(gè)大小為n的數(shù)組,尋找比k小的最大數(shù)的位置。

建議:
1 簡歷上的東西一定要非常熟悉再熟悉;
2 算法題一定要多刷再多刷;

到此這篇關(guān)于字節(jié)跳動(dòng)后端開發(fā)視頻架構(gòu)面經(jīng)總結(jié)的文章就介紹到這了,更多相關(guān)視頻架構(gòu)面試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論