您好,登錄后才能下訂單哦!
TCP/IP?狀態機 在TCP層,有個FLAGS字段,這個字段有以下幾個標識:SYN, FIN, ACK, PSH, RST, URG. 其中,對于我們日常的分析有用的就是前面的五個字段。 它們的含義是: SYN表示建立連接, FIN表示關閉連接, ACK表示響應, PSH表示有 DATA數據傳輸(有真正的TCP數據包內容被傳遞) RST表示連接重置(是在FIN之后才會出現為1的情況) |
三次握手主要是要初始化Sequence Number 的初始值。也就是上圖中的 a 和 b。這個號在以后的數據通信中,在client端按發送順序遞增,在server端按遞增順序重新組織,以保證應用層接收到的數據不會因為網絡問題亂序。 建立一個穩定的雙向連接,最少需要3次通信 以張三給李四打電話為例? |
1、雙方可以同時主動關閉,也可以由一方主動關閉帶動另一方被動關閉只不過,通常以一方主動另一方被動舉例(如圖,client主動server被動),所以看上去是所謂的4次揮手。如果兩邊同時主動斷連接,那么雙方都會進入CLOSING狀態,然后到達TIME_WAIT狀態,最后超時轉到CLOSED狀態 2、為什么建立連接協議是三次握手,而關閉連接卻是四次握手呢? TCP是全雙工的,每個方向都需要單獨關閉(即發送一個FIN),發一個FIN之后意味著一個方向沒有數據流動,但是可以收。 以張三給李四掛電話為例 張三:我要掛電話了【FIN。seq=x】 李四:好的【ack。seq=x+1】 李四:我也掛了【fin,seq=b,ack=X+1】? 張三:好的【ack,seq=b+1】 |
三次握手分析? HTTP 協議就是建立在TCP鏈接上的 我們通過訪問一個網頁。 使用wireshark分析TCP三次握手建立連接的過程,Wireshark的過濾規則,只顯示我們需要的數據 (ip.src==10.108.15.43 and ip.dst==10.108.16.3) or (ip.src==10.108.16.3 and ip.dst==10.108.15.43) 1、seq=0(每發一次包seq的值加1) TCP流: |
四次揮手: 1、TCP協議規定通過發送一個FIN段(FIN被置位)來發起關閉操作,同時FIN報文段還包含著對最近收到的數據進行ACK。 2、接收端對FIN進行確認,發送ACK=k+1給發送端 3、接收端將連接關閉發送給上層應用程序,由應用程序發起連接關閉操作。此時接收端由被動關閉連接壯成主動,并發送FIN報文段給發送端。報文的序列號為L(這里也可看出上一步驟中發送ACK序列號一樣,因為ACK不占用序列號, 所以這里的FIN的序列號也為L)。 4、發送端接收到FIN后,發送回ACK給接收端后,TCP連接終止。如果FIN丟失,發送FIN的那端需要重新發送FIN,直到接收到ACK為止。 |
相對于的狀態機 |
12種狀態機:
歡迎學習:TCP的狀態機與重傳機制
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。