溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java的TCP三次握手和TCP四次揮手是什么?

發布時間:2020-05-27 21:24:09 來源:億速云 閱讀:202 作者:鴿子 欄目:編程語言

問題一:TCP為什么是三次握手?而不是兩次或者四次?

回答:TCP作為一種可靠傳輸控制協議,其核心思想:既要保證數據可靠傳輸,又要提高傳輸的效率,而用三次恰恰可以滿足以上兩方面的需求!

TCP可靠傳輸的精髓: TCP連接的 發送方A,由操作系統動態隨機選取-個32位長的序列號(InitialSequence Number),假設A的初始序列號為1000,以該序列號為原點,對自己將要發送的每個字節的數據進行編號,1001, 1002, 100... 并把自己的初始序列號ISN告訴B,讓B有一個思想準備,什么樣編號的數據是合法的,什么編號是非法的,比如編號900就是非法的,同時B還可以對A每一個編號的字節數據進行確認。 如果A收到B確認編號為2001,則意味著字節編號為1001-2000,共1000個字節已經安全到達。

同理B也是類似的操作,假設B的初始序列號ISN為2000, 以該序列號為原點,對自己將要發送的每個字節的數據進行編號,2001. 2002, 200....并把自己的初始序列號ISN告訴A,以便A可以確認B發送的每一 個字節。如果B收到A確認編號為4001,則意味著字節編號為2001-4000共2000個字節已經安全到達。

一句話概括,TCP連接握手, 握的是啥?
通信雙方數據原點的序列號。(ISN

問題二:TCP為什么是四次揮手?(三次揮手/同時揮手)
回答:因為TCP是全雙工通信的
(1)第一次揮手
因此當主動方發送斷開連接的請求(即FIN報文)給被動方時,僅僅代表主動方不會再發送數據報文了,但主動方仍可以接收數據報文。
(2)第二次揮手
被動方此時有可能還有相應的數據報文需要發送,因此需要先發送ACK報文,告知主動方“我知道你想斷開連接的請求了”。這樣主動方便不會因為沒有收到應答而繼續發送斷開連接的請求(即FIN報文)。
(3)第三次揮手
被動方在處理完數據報文后,便發送給主動方FIN報文;這樣可以保證數據通信正??煽康赝瓿?。發送完FIN報文后,被動方進入LAST_ACK階段(超時等待)。
(4)第四揮手
如果主動方及時發送ACK報文進行連接中斷的確認,這時被動方就直接釋放連接,進入可用狀態。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女