- 介紹一下自己
- 一開始問專案(我的專案跟網路相關)中的擁塞控制、流量控制;
- 簡單介紹了一下協議做的事情,有什么擁塞控制協議:Reno和BBR
- 介紹一下Reno協議的作業方式;
- UDP 和 TCP 的區別,都適合什么場景:在游戲中使用KCP協議比較多,
- 引申了一下HTTP 的狀態碼:1~5開頭各是什么作用
- 用HTTP可以實作主動推送的功能嗎,為什么不使用HTTP而是使用 websocket(專案中使用了websocket )
- HTTP1.1 中也實作了長連接,但是這個長連接中服務器還是被動的,而且HTTP都是基于文本的,雖然底層TCP沒有斷開,發送訊息還是包含太多不必要的頭部資訊(帶寬消耗大),所以在某些場景還是 websocket 好用,
- HTTP2中對上述的兩個缺點做了些優化,比如壓縮頭部,再比如可以支持服務器主動推送(相當于預加載),但是客戶端還是主導地位,可以發送RST_STREAM 來顯式的停止這種推送,
- TCP 的各種標志位(發現我不熟這些標志位),又開始問TCP的三次握手
- TCP 有多個控制位,SYNC是開啟連接,FIN是結束連接(單向斷開,優雅斷開),ACK是指回復包,RST是例外斷開(雙向都直接不能處理了),PSH是類似于FLUSH,告訴對方可以將緩沖區的資料直接上報道應用層了(還是有序的),URG(把這一個包上報應用層,資料包可能是無序的)
- 問 golang 的協程:Goroutine 阻塞的話,是不是對應的M也會阻塞
- 問一道思考題:如何并發100個任務,但是同一時間最多運行的10個任務(waitgroup + channel)
本文由 GOLANG ROADMAP 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/445271.html
標籤:Go
