回顧:計算機網絡之傳輸協議

今天面試真是超級難受。之前面試的公司問的都是項目,我準備的東西也就偏向項目了一點。然而,今天面試的面試官特別傾向於基礎。結果,快排沒寫出來,一個簡單的算法題,解題的思路跟面試官提示的不大一樣。準備接下來花一段時間好好複習回顧下以前學的計算機網絡、數據結構、數據庫、操作系統的內容。

 

TCP是面向連接的可靠數據傳輸服務,還有擁塞控制機制。簡單地說,當雙方之間網絡阻塞時,TCP可以抑制發送進程。

UDP不面向連接,也沒有擁塞控制,所以速度比TCP快,當然可靠性無法保證。

在選擇了協議以後,應用還需要考慮目的主機的地址(用IP地址說明)和主機上的什麼進程,後一個問題是用端口解決的。即不同類型的web程序,其端口不同。

應用層協議規定應用程序之間如何相互傳遞報文。最著名的就是HTTP協議(超文本傳輸協議)

HTTP用TCP作爲其支撐運輸層協議,由於其服務器並不存儲客戶端信息,HTTP也是一個無狀態協議。此外HTTP默認使用持久連接。我們知道如果一個請求或相應建立在TCP上,就有這樣的問題:是每個請求都用一個新的TCP還是用一個TCP管理所有請求,這兩種手段分別稱作非持久連接和持久連接。因爲非持久連接對於服務器端來說壓力巨大,一般默認爲持久連接,當一個鏈接在一段時間內沒有被使用,服務器就會終止這個TCP連接。 


 

三次握手和四次握手:

建立TCP需要三次握手才能建立,而斷開連接則需要四次握手。

三次握手分別爲 SYN、SYN+ACK、ACK

客戶端發送連接請求報文(SYN,第一次),服務端接受連接後回覆ACK報文,併爲這次連接分配資源(第二次)。客戶端接收到ACK報文後也向服務端發生ACK報文(第三次),並分配資源,這樣TCP連接就建立了。

斷開連接四次握手分別爲:FIN、ACK、FIN、ACK

 

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章