tcp區別於udp最重要的特點是tcp必須建立在可靠的連線之上,連線的建立和釋放就是握手和揮手的過程。
三次握手為連線的建立過程,握手失敗則連線建立失敗。
四次揮手為連線的完整釋放過程,也會發生某個訊息丟失或者超時的情況,有一方主動傳送fin訊息即表示連線即將釋放。 注:
syn、ack、fin訊息具有哪些含義,以及連線的狀態,請參考《tcp/ip詳解 卷1》第18章。
長連線,也叫持久連線,在tcp層握手成功後,不立即斷開連線,並在此連線的基礎上進行多次訊息(包括心跳)互動,直至連線的任意一方(客戶端or服務端)主動斷開連線,此過程稱為一次完整的長連線。http 1.1相對於1.0最重要的新特性就是引入了長連線。
短連線,顧名思義,與長連線的區別就是,客戶端收到服務端的響應後,立刻傳送fin訊息,主動釋放連線。也有服務端主動斷連的情況,凡是在一次訊息互動(發請求-收響應)之後立刻斷開連線的情況都稱為短連線。
注:短連線是建立在tcp協議上的,有完整的握手揮手流程,區別於udp協議。
1、凡是在一次完整的訊息互動(發請求-收響應)之後,立刻斷開連線(有一方傳送fin訊息)的情況都稱為短連線;
2、長連線的乙個明顯特徵是會有心跳訊息(也有沒有心跳的情況),且一般心跳間隔都在30s或者1min左右,用wireshark抓包可以看到有規律的心跳訊息互動(可能會存在毫秒級別的誤差)。
1、需要
2、維持長連線會有一定的系統開銷,使用者量少不容易看出系統瓶頸,一旦使用者量上去了,就很有可能把伺服器資源(記憶體/cpu/網絡卡)耗盡,所以使用需謹慎。
長連線與短連線
通常短連線是這樣 連線 傳輸資料 關閉連線 那什麼是長連線?一般長連線相對短連線而言的,長連線在傳輸完數後不關閉連線,而不斷的傳送包保持連線等待處理下乙個資料報。such as 連線 傳輸資料 保持連線 傳輸資料 關閉連線。那什麼時候用短連線呢?一般長連線用於少數client end to serv...
長連線與短連線
短連線是指通訊雙方有資料互動時,就建立乙個tcp連線,資料傳送完成後,則斷開此tcp連線,一般銀行都使用短連線。比如http的,只是連線 請求 關閉,過程時間較短,伺服器若是一段時間內沒有收到請求即可關閉連線。其實長連線是相對於通常的短連線而說的,也就是長時間保持客戶端與服務端的連線狀態。通常的短連...
長連線與短連線
其實長連線是相對於通常的短連線而說的,也就是長時間保持客戶端與服務端的連線狀態。連線 資料傳輸 關閉連線 這就要求長連線在沒有資料通訊時,定時傳送資料報 心跳 以維持連線狀態,短連線在沒有資料傳輸時直接關閉就行了 長連線多用於操作頻繁,點對點的通訊,而且連線數不能太多情況,每個tcp連線都需要三步握...