長鏈接 短鏈接

長連接1.client 向 server 發(fā)起連接2.server 接到請(qǐng)求,雙方建立連接3.client 向 server 發(fā)送消息4.server 回應(yīng) client5.一次讀寫完成,連接不關(guān)閉6.后續(xù)讀寫操作...7.長時(shí)間操作之后client發(fā)起關(guān)閉請(qǐng)求長連接就是在建立連接和關(guān)閉連接之間可以進(jìn)行多次數(shù)據(jù)傳輸短連接1.client 向 server 發(fā)起連接請(qǐng)求2.server 接到請(qǐng)求,雙方建立連接3.client 向 server 發(fā)送消息4.server 回應(yīng) client5.一次讀寫完成,此時(shí)雙方任何一個(gè)都可以發(fā)起 close 操作短連接就是在建立連接到關(guān)閉連接只進(jìn)行一次連接長連接與短連接的優(yōu)缺點(diǎn)長連接可以省去較多的tcp建立和關(guān)閉的操作,減少浪費(fèi),節(jié)約時(shí)間;對(duì)于頻繁請(qǐng)求資源的客戶來說較適用長連接client與server之間的連接如果一直不關(guān)閉的話會(huì)存在一個(gè)問題,隨著客戶端連接越來越多,server早晚有扛不住的時(shí)候,這時(shí)候server端需要采取一些策略;如關(guān)閉一些長時(shí)間沒有讀寫事件發(fā)生的連接這樣可以避免一些惡意連接導(dǎo)致server端服務(wù)受損;如果條件再容許就可以以客戶端機(jī)器為顆粒度,限制每個(gè)客戶端的最大長連接數(shù),這樣就可以避免客戶端連累后端服務(wù)短連接對(duì)于服務(wù)器來書管理較為簡單,存在的連接都是有用的連接,不需要額外的控制手段但如果客戶請(qǐng)求頻繁,將在TCP的建立和關(guān)閉操作上浪費(fèi)時(shí)間和帶寬

TCP長/短連接的應(yīng)用場(chǎng)景

長連接多用于操作頻繁,點(diǎn)對(duì)點(diǎn)的通訊,而且連接數(shù)不能太多情況。每個(gè)TCP連接都需要三次握手,這需要時(shí)間,如果每個(gè)操作都是先連接,再操作的話那么處理速度會(huì)降低很多,所以每個(gè)操作完后都不斷開,再次處理時(shí)直接發(fā)送數(shù)據(jù)包就OK了,不用建立TCP連接。例如:數(shù)據(jù)庫的連接用長連接,如果用短連接頻繁的通信會(huì)造成socket錯(cuò)誤,而且頻繁的socket 創(chuàng)建也是對(duì)資源的浪費(fèi)。而像WEB網(wǎng)站的http服務(wù)一般都用短鏈接,因?yàn)殚L連接對(duì)于服務(wù)端來說會(huì)耗費(fèi)一定的資源,而像WEB網(wǎng)站這么頻繁的成千上萬甚至上億客戶端的連接用短連接會(huì)更省一些資源,如果用長連接,而且同時(shí)有成千上萬的用戶,如果每個(gè)用戶都占用一個(gè)連接的話,那可想而知吧。所以并發(fā)量大,但每個(gè)用戶無需頻繁操作情況下需用短連好。

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

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

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