91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

第四十六天:TCP/IP三次握手四次揮手

發布時間:2020-07-18 07:13:04 來源:網絡 閱讀:399 作者:Ohimma 欄目:網絡安全

小Q:這一周一直在北京轉著投簡歷面試了,好久沒來了;趕上周六,回來整裝休息,復習復習;

--------------------------------------------------------------------------------------

這篇文章太好了,有時間的一定要看看,對TCP/IP可以有個深入的詳細了解
http://www.cnblogs.com/fengzanfeng/articles/1339347.html

關于TCP/IP協議的建立和斷開有三次握手和四次揮手的說法,下面來簡單明了說說.......

第四十六天:TCP/IP三次握手四次揮手

關于狀態位的簡單詳解:

SYN(synchronous)是TCP/IP建立連接時使用的握手信號。

ACK (Acknowledgement)確認字符,表示發來的數據已確認接收無誤。

CLOSED: 這個沒什么好說的了,表示初始關閉狀態。

LISTEN: 表示服務器端的某個SOCKET處于監聽狀態,可以接受連接了。

SYN_RCVD: 這個狀態表示接受到了SYN報文。

SYN_SENT: 這個狀態與SYN_RCVD遙想呼應,表示客戶端已發送SYN報文。

ESTABLISHED:這個容易理解了,表示連接已經建立了。

FIN_WAIT_1/2: 這個狀態要好好解釋一下,其實FIN_WAIT_1和FIN_WAIT_2狀態的真正含義都是表示等待對方的FIN報文;(FIN_WAIT_1狀態實際上是當SOCKET在ESTABLISHED狀態時,它想主動關閉連接,向對方發送了FIN報文,此時該SOCKET即進入到FIN_WAIT_1狀態。而當對方回應ACK報文后,則進入FIN_WAIT_2狀態,當然在實際的正常情況下,無論對方何種情況下,都應該馬上回應ACK報文)所以FIN_WAIT_1狀態一般是比較難見到的,而FIN_WAIT_2狀態還有時常常可以用netstat看到

CLOSING: 狀態比較特殊,實際情況中很少見;表示你發送FIN報文后,并沒有收到對方的ACK報文,反而卻也收到了對方的FIN報文;細想一下:那就是如果雙方幾乎在同時close一個SOCKET的話,那么就出現了雙方同時發送FIN報文的情況,也即會出現CLOSING狀態,表示雙方都正在關閉SOCKET連接。

CLOSE_WAIT: 這種狀態的含義其實是表示在等待關閉;

LAST_ACK: 是被動關閉一方在發送FIN報文后,最后等待對方的ACK報文。當收到ACK報文后,也即可以進入到CLOSED可用狀態了。

TIME_WAIT: 表示收到了對方的FIN報文,并發送出了ACK報文,就等2MSL后回到CLOSED可用狀態了。如果FIN_WAIT_1狀態下,收到了對方同時帶FIN標志和ACK標志的報文時,可以直接進入到TIME_WAIT狀態,而無須經過FIN_WAIT_2狀態。

三次握手:

第四十六天:TCP/IP三次握手四次揮手

首先Client端發送連接請求報文,Server段接受連接后回復ACK報文,并為這次連接分配資源。Client端接收到ACK報文后也向Server段發生ACK報文,并分配資源,這樣TCP連接就建立了。

四次揮手:

第四十六天:TCP/IP三次握手四次揮手

中斷連接端可以是Client端,也可以是Server端,就是說也可以反向考慮。

假設Client端發起中斷連接請求,也就是發送FIN報文。Server端接到FIN報文后,意思是說"我Client端沒有數據要發給你了",但是如果你還有數據沒有發送完成,則不必急著關閉Socket,可以繼續發送數據。所以你先發送ACK,"告訴Client端,你的請求我收到了,但是我還沒準備好,請繼續你等我的消息"。這個時候Client端就進入FIN_WAIT1狀態,繼續等待Server端的FIN報文。當Server端確定數據已發送完成,則向Client端發送FIN報文,"告訴Client端,好了,我這邊數據發完了,準備好關閉連接了"。Client端收到FIN報文后,"就知道可以關閉連接了,但是他還是不相信網絡,怕Server端不知道要關閉,所以發送ACK后進入TIME_WAIT2狀態,如果Server端沒有收到ACK則可以重傳。“,Server端收到ACK后,"就知道可以斷開連接了"。Client端等待了2MSL后依然沒有收到回復,則證明Server端已正常關閉,那好,我Client端也可以關閉連接了。Ok,TCP連接就這樣關閉了!


-------------------為什么TIME_WAIT狀態需要等2MSL后才能返回到CLOSED狀態?----------------

因為雖然雙方都同意關閉連接了,而且握手的4個報文也都協調和發送完畢,按理可以直接回到CLOSED狀態;但是因為我們必須要假想網絡是不可靠的,你無法保證你最后發送的ACK報文會一定被對方收到,因此對方處于LAST_ACK狀態下的SOCKET可能會因為超時未收到ACK報文,而重發FIN報文,所以這個TIME_WAIT狀態的作用就是用來重發可能丟失的ACK報文。


向AI問一下細節

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

AI

宝清县| 浦江县| 赤峰市| 镇坪县| 三江| 思茅市| 祥云县| 舟曲县| 天峻县| 闽清县| 富蕴县| 建宁县| 兰州市| 绵竹市| 黄浦区| 都江堰市| 东辽县| 文山县| 连南| 永定县| 宜兴市| 鹰潭市| 河源市| 大足县| 安岳县| 江津市| 醴陵市| 青神县| 开远市| 色达县| 达州市| 岱山县| 壶关县| 灵武市| 乃东县| 湖南省| 林甸县| 龙胜| 博兴县| 铜山县| 什邡市|