- 介紹一下自己
- 一開始問項(xiàng)目(我的項(xiàng)目跟網(wǎng)絡(luò)相關(guān))中的擁塞控制遮咖、流量控制;
- 簡單介紹了一下協(xié)議做的事情。有什么擁塞控制協(xié)議:Reno和BBR
- 介紹一下Reno協(xié)議的工作方式片林;
- UDP 和 TCP 的區(qū)別员淫,都適合什么場景:在游戲中使用KCP協(xié)議比較多合蔽。
- 引申了一下HTTP 的狀態(tài)碼:1~5開頭各是什么作用
- 用HTTP可以實(shí)現(xiàn)主動(dòng)推送的功能嗎,為什么不使用HTTP而是使用 websocket(項(xiàng)目中使用了websocket )
- HTTP1.1 中也實(shí)現(xiàn)了長連接介返,但是這個(gè)長連接中服務(wù)器還是被動(dòng)的拴事,而且HTTP都是基于文本的,雖然底層TCP沒有斷開圣蝎,發(fā)送消息還是包含太多不必要的頭部信息(帶寬消耗大)刃宵,所以在某些場景還是 websocket 好用。
- HTTP2中對上述的兩個(gè)缺點(diǎn)做了些優(yōu)化徘公,比如壓縮頭部牲证,再比如可以支持服務(wù)器主動(dòng)推送(相當(dāng)于預(yù)加載),但是客戶端還是主導(dǎo)地位关面,可以發(fā)送RST_STREAM 來顯式的停止這種推送坦袍。
- TCP 的各種標(biāo)志位(發(fā)現(xiàn)我不熟這些標(biāo)志位),又開始問TCP的三次握手
- TCP 有多個(gè)控制位等太,SYNC是開啟連接捂齐,F(xiàn)IN是結(jié)束連接(單向斷開,優(yōu)雅斷開)缩抡,ACK是指回復(fù)包奠宜,RST是異常斷開(雙向都直接不能處理了),PSH是類似于FLUSH,告訴對方可以將緩沖區(qū)的數(shù)據(jù)直接上報(bào)道應(yīng)用層了(還是有序的)挎塌,URG(把這一個(gè)包上報(bào)應(yīng)用層徘六,數(shù)據(jù)包可能是無序的)
- 問 golang 的協(xié)程:Goroutine 阻塞的話,是不是對應(yīng)的M也會(huì)阻塞
- 問一道思考題:如何并發(fā)100個(gè)任務(wù)榴都,但是同一時(shí)間最多運(yùn)行的10個(gè)任務(wù)(waitgroup + channel)
本文由 GOLANG ROADMAP 發(fā)布待锈!