連線建立後,需要通過心跳繼續維持連線,這樣發訊息的時候不用每次都建立連線。
通訊的過程:建立連線 --> 資料傳輸 --> 維持心跳 --> 資料傳輸 --> --> 關閉連線。
相當於自己要維護乙個心跳來確保客戶端和服務端沒有斷開。
連線建立後,檢測到通訊互動完畢,就會關閉連線。下次需要通訊時,需要再次建立連線。
通訊的過程:建立連線 --> 資料傳輸 --> 關閉連線。
比如銀行業務通訊,都是採用的短連線。
長連線:在tcp握手成功後,不立即斷開連線,在此連線上進行資料傳輸,心跳互動,直至客戶端或服務端中的任一方主動斷開連線,此過程稱為長連線。http1.1 相對於http1.0 最重要的特性就是引入了長連線。
短連線:客戶端在收到服務端的響應後,立刻傳送fin 訊息,主動釋放連線。當然也有服務端主動斷開連線的情況。
tcp keepalive(保活機制)
tcp keepalive 通過定時傳送 keepalive 探測包 來探測連線的對端是否存活。
一旦傳送的探測包沒有響應,在重複幾次後,就會斷開連線。
http keep-alive(是否復用tcp連線)
在http 1.0 的時候,每個http請求都要開啟乙個tcp socket 連線,並且使用一次之後就關閉這個tcp連線。
在http 1.1 之後,引入了keep-alive 請求頭引數,可以通過這個引數控制在一次tcp 連線中可以持續傳送多份資料而不會斷開連線。這樣就能復用tcp 連線,減少tcp連線建立的次數。
http 位於網路協議的應用層,tcp 位於網路協議的傳輸層。兩者的keep-alive的作用是不一樣的。http的keep-alive 主要是為了復用tcp連線,避免每次連線都建立tcp。tcp的keepalive主要是一種保活機制,檢測對端是否依然存活。
根據通訊雙方的乙個分工 以及 資訊傳輸的方向,可以將通訊分為三種方式:全雙工,半雙工和單工。
一條寬道,通訊雙方都可以相互傳送資訊,並且可以同時傳送資訊。典型的場景比如打**
一條窄道,通訊雙方都可以相互傳送資訊,但是同一時刻只能有一方向另一方傳送資訊。典型的應用場景比如對講機。
單行道,通訊雙方只能有一方向另一方傳送訊息,典型場景比如印表機。
最近研究的netty 就是 非同步全雙工長連線通訊。
單工,半雙工,全雙工
1 單工 單工就是指a只能發訊號,而b只能接收訊號,通訊是單向的,就象燈塔之於航船 燈塔發出光訊號而航船只能接收訊號以確保自己行駛在正確的航線上。2 半雙工 half duplex 半雙工就是指a能發訊號給b,b也能發訊號給a,但這兩個過程不能同時進行。最典型的例子就象我們在影視作品中看到的對講機一...
半雙工 全雙工和單工
半雙工 概念 半雙工 half duplex 資料傳輸指資料可以在乙個訊號載體的兩個方向上傳輸,但是不能同時傳輸。在通訊過程的任意時刻,資訊既可由a傳到b,又能由b傳a,但只能有乙個方向上的傳輸存在。採用半雙工方式時,通訊系統每一端的傳送器和接收器,通過收 發開關轉接到通訊線上,進行方向的切換,因此...
前端通訊 全雙工,半雙工,單工
單工 a和b說話,b只能聽a說 半雙工 參考對講機,a 能不能聽到我說話,over b 可以可以,over 全雙工 參考打 a 哎,老王啊!b 半雙工 half duplex 是一種傳送制式。使用同一根傳輸線既作接收又作傳送,資料可以在兩個方向上傳送,但通訊雙方不能同時收發資料,這種傳送方式就是半雙...