三次握手與四次揮手
(1). 三次握手(我要和你建立鏈結,你真的要和我建立鏈結麼,我真的要和你建立鏈結,成功):
第一次握手:client將標誌位syn置為1,隨機產生乙個值seq=j,並將該資料報傳送給server,client進入syn_sent狀態,等待server確認。
第二次握手:server收到資料報後由標誌位syn=1知道client請求建立連線,server將標誌位syn和ack都置為1,ack=j+1,隨機產生乙個值seq=k,並將該資料報傳送給client以確認連線請求,server進入syn_rcvd狀態。
第三次握手:client收到確認後,檢查ack是否為j+1,ack是否為1,如果正確則將標誌位ack置為1,ack=k+1,並將該資料報傳送給server,server檢查ack是否為k+1,ack是否為1,如果正確則連線建立成功,client和server進入established狀態,完成三次握手,隨後client與server之間可以開始傳輸資料了。
(2). 四次揮手(我要和你斷開鏈結;好的,斷吧。我也要和你斷開鏈結;好的,斷吧):
第一次揮手:client傳送乙個fin,用來關閉client到server的資料傳送,client進入fin_wait_1狀態。
第二次揮手:server收到fin後,傳送乙個ack給client,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號),server進入close_wait狀態。此時tcp鏈結處於半關閉狀態,即客戶端已經沒有要傳送的資料了,但服務端若傳送資料,則客戶端仍要接收。
第三次揮手:server傳送乙個fin,用來關閉server到client的資料傳送,server進入last_ack狀態。
第四次揮手:client收到fin後,client進入time_wait狀態,接著傳送乙個ack給server,確認序號為收到序號+1,server進入closed狀態,完成四次揮手。
為什麼tcp鏈結需要三次握手,兩次不可以麼,為什麼?
為了防止 已失效的鏈結請求報文突然又傳送到了服務端,因而產生錯誤。
客戶端發出的連線請求報文並未丟失,而是在某個網路節點長時間滯留了,以致延誤到鏈結釋放以後的某個時間才到達server。這是,server誤以為這是client發出的乙個新的鏈結請求,於是就向客戶端傳送確認資料報,同意建立鏈結。若不採用「三次握手」,那麼只要server發出確認資料報,新的鏈結就建立了。由於client此時並未發出建立鏈結的請求,所以其不會理睬server的確認,也不與server通訊;而這時server一直在等待client的請求,這樣server就白白浪費了一定的資源。若採用「三次握手」,在這種情況下,由於server端沒有收到來自客戶端的確認,則就會知道client並沒有要求建立請求,就不會建立鏈結。
計算機網路2
網路邊緣 除了客戶端和伺服器之間的請求,提供請求的服務。還有p2p方式,乙個點從另外幾個點都獲取服務,這些點之間即能擔當伺服器,又能擔當客戶端。好處在於不是所有客戶端都向乙個伺服器請求,那很慢,而且相互之間傳輸資源,快很多。迅雷 接入網 也就是家裡上網。之前有過的貓 modern 一開始是用 線上網...
計算機網路9 計算機網路效能
1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位時間 ...
計算機網路 計算機網路的效能
目錄 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...