自己補(bǔ)充

1、進(jìn)程間通信的方式

1)管道:用于具有親緣關(guān)系的父子進(jìn)程間或兄弟進(jìn)程之間的通信

2)共享內(nèi)存:使得多個(gè)進(jìn)程可以訪問同一塊內(nèi)存空間,不同進(jìn)程可以及時(shí)看到對方進(jìn)程中對共享內(nèi)存中數(shù)據(jù)的更新

3)信號(hào):用來通知接受進(jìn)程某個(gè)事件已經(jīng)發(fā)生

4)信號(hào)量:是一個(gè)計(jì)數(shù)器

5)socket:用于客戶端和服務(wù)器端的進(jìn)程通信

6)消息隊(duì)列

2、在瀏覽器中敲入網(wǎng)址后,到網(wǎng)頁顯示,中間發(fā)生了什么過程

1)瀏覽器的第一步工作是解析URL,從而生成發(fā)送給Web服務(wù)器的請求信息。
2)DNS域名解析
3)TCP連接
4)HTPP請求
5)服務(wù)器響應(yīng)請求,返回響應(yīng)報(bào)文
6)瀏覽器根據(jù)返回內(nèi)容渲染頁面

3、三次握手以及為什么需要三次握手

三次握手

為什么需要三次?

  1. 阻止重復(fù)歷史連接的初始化(主要原因)
  2. 同步雙方的初始序列號(hào)
  3. 避免資源浪費(fèi)

不使用兩次握手和四次握手的原因

  • 兩次握手:無法防止歷史連接的建立,會(huì)造成雙方資源的浪費(fèi),也無法可靠的同步雙方序列號(hào);
  • 四次握手:三次握手就已經(jīng)理論上建立可靠的連接了,所以不需要使用更多的通信次數(shù)。

4、四次揮手以及為什么需要四次揮手

四次揮手

為什么需要四次揮手
回顧下四次揮手雙方發(fā)FIN包的過程,就能理解為什么需要四次了

  • 關(guān)閉連接時(shí),客戶端向服務(wù)端發(fā)送FIN時(shí),僅僅表示客戶端不再發(fā)送數(shù)據(jù)了但是還能接收數(shù)據(jù)。
  • 服務(wù)器端收到客戶端的FIN報(bào)文時(shí),先回一個(gè)ACK應(yīng)答報(bào)文,而服務(wù)端可能還有數(shù)據(jù)需要處理和發(fā)送,等服務(wù)端不再發(fā)送數(shù)據(jù)時(shí),才會(huì)發(fā)送FIN報(bào)文給客戶端來表示同意現(xiàn)在關(guān)閉連接。
  • 從上面過程可知,服務(wù)端通常需要等待完成數(shù)據(jù)的發(fā)送和處理,所以服務(wù)端的ACKFIN一般都會(huì)分開發(fā)送,從而比三次握手導(dǎo)致多了一次。

為什么TIME_WAIT等待的時(shí)間是2MSL
MSL,Maximum Segment Lifetime英文的縮寫,報(bào)文最大生存時(shí)間,它是任何報(bào)文在網(wǎng)絡(luò)上存在的最長時(shí)間,超過這個(gè)時(shí)間將被丟棄。

  1. 保證客戶端發(fā)送的最后一個(gè)ACK報(bào)文能夠到達(dá)服務(wù)器,因?yàn)檫@個(gè)ACK報(bào)文可能會(huì)丟失。
  2. 如果被動(dòng)關(guān)閉方?jīng)]有收到斷開連接的最后的 ACK 報(bào)文,就會(huì)觸發(fā)超時(shí)重發(fā) Fin 報(bào)文,另一方接收到 FIN 后,會(huì)重發(fā)ACK給被動(dòng)關(guān)閉方,一來一去正好 2 個(gè) MSL。

5、經(jīng)典排序算法的比較

經(jīng)典排序算法比較
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容