HTTTP及TCP的超時以及KEEP-ALIVE機制小結

1、HTTP的超時和Keep Alivehtml

HTTP Keepalive 機制是http 1.1中增長的一個功能。git

在HTTP 1.0中,客戶端每發起一個http 請求,等收到接收方的應答以後就斷開TCP。下一個請求再須要發送時,要從新創建TCP鏈接。github

在HTTP 1.1中,客戶端每發起一個http請求以後,服務器能夠經過keep alive的方式告知客戶端,同時保持以前創建的TCP鏈接。下一個http請求和應答從而可以避免再次建連,經過已有鏈接繼續發送。服務器

 

HTTP層的超時設置實例代碼以下,setConnectionTimeout設置建連的超時時間,setTimeout設置收到應答的超時時間:socket

httpClient client = new HttpClient();client.setConnectionTimeout(30000); client.setTimeout(30000);tcp

HttpClient 4.3超時設置 - Doceespa

HTTP Keep-Alive詳解[轉] - huangfox - 博客園.net

 

2、TCP的超時和Keep alive的機制htm

TCP的數據包若是在一個RTO沒有收到應答則進行重傳,RTO的值由TCP傳輸過程當中測量的RTT以及最小RTO決定。blog

若是一個TCP鏈接長期沒有數據傳輸,TCP能夠經過Keep alive機制來控制和斷開鏈接。

tcp的keepalive的三個配置參數包括:

tcp_keepalive_time:鏈路空閒時間達到tcp_keepalive_time以後開始發送包括數據包

tcp_keepalive_probes:發了保活包數目達到tcp_keepalive_probes斷開鏈接

tcp_keepalive_intvl:保活數據包的發送間隔

開啓tcp keepalive須要經過應用層序開啓socket的keepalive功能。而keepalive的三個參數既能夠經過系統命令sysctl進行設置,也能夠經過設置socket屬性進行設置。

爲何基於TCP的應用須要心跳包(TCP keep-alive原理分析) | Hengyunabc Blog

相關文章
相關標籤/搜索