tcp,udp,http等實現機制與異同

2021-07-26 20:55:45 字數 876 閱讀 8143

1.首先從大的層面上來說

ip屬於網路層協議

tcp/udp屬於傳輸層協議

http則屬於應用層協議

tcp/ip是乙個協議組

網路層主要有:ip協議(主要功能是定址與路由,資料分段與重組),arp(當不在同乙個區域網時,通過ip找到對應的mac)等

傳輸層中有tcp協議與udp協議。

應用層主要有ftp、http(瀏覽器指定的一組傳輸協議)、telnet、smtp、dns等 2.

tcp特點:由於有三次握手(斷開也需要四次握手),訊息傳輸比較可靠,效率低

udp特點:沒有三次握手,訊息傳輸可靠性差,但是速度快

http原理:http協議是建立在請求/響應模型上的。

首先由客戶建立一條與伺服器的tcp鏈結,並傳送乙個請求到伺服器,請求中包含請求方法、uri、協議版本以及相關的mime樣式的訊息。伺服器響應乙個狀態行,包含訊息的協議版本、乙個成功和失敗碼以及相關的mime式樣的訊息。 

http/1.0為

每一次http的請求/響應建立一條新的tcp鏈結,因此乙個包含html內容和的頁面將需要建立多次的短期的tcp鏈結。一次tcp鏈結的建立將需要3次握手。

http/1.1將只建立一次tcp的鏈結而重複地使用它傳輸一系列的請求/響應訊息,因此減少了鏈結建立的次數和經常性的鏈結開銷,也就是keepalive。 3.

scoket簡單的來說,是設計模式的一種,是tcp的包裝實現,他是一組介面,並不是乙個協議,

socket是應用層與tcp/ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp/ip協議族隱藏在socket介面後面,對使用者來說,

一組簡單的介面

就是全部,讓socket去組織資料,以符合指定的協議

redis 記憶體淘汰機制等知識

再說說redis,redis有兩種key。了解上面的情況後,我們兩兩組合就可以得知3種redis記憶體 策略。沒有ttl的key沒有臨近過期的說法 其中 演算法才是精髓,至於redis的ttl只是看我們如何定位redis的角色,理論上應該把redis看作是快取,然後對所有key設定ttl。redis...

3 1等待 通知機制(wait notify)

要點 wait 執行前在呼叫wait 之前,必須先要獲得物件鎖,即只有在同步方法或者同步 塊中呼叫wait 方法。執行作用 wait 使程序進入等待 阻塞狀態 在收到通知或者被中斷之前都會進入預執行佇列。執行之後1 執行wait 之後,當前執行緒釋放改物件鎖,在通知前與其他執行緒重新競爭資源 執行之...

hashmap實現機制

int uint key.gethashcode 0x8ffffff 具體多少忘記了,總之就是把它弄成正數 int index uint map.length 把value放到那個 index位置。下次訪問時再通過 key的hashcode 0x8fffff 再 map.length 就知道valu...