精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TCP連接的建立與中止

麥辣雞腿堡 ? 來源:盼盼編程 ? 作者:盼盼編程 ? 2023-10-08 16:52 ? 次閱讀

TCP三次握手其實,網絡上的傳輸是沒有連接的, TCP 是一樣的 TCP 所謂的 “連接”,其實只不過是在通信的雙方維護一個“連接狀態”,讓它看上去好像有連接一樣 所以, TCP 的狀態變換是非常重要的 。

TCP 連接的建立可以簡單地稱為三次握手,而連接的中止則可以稱為四次揮手。

建立連接 TCP/IP 協議中, TCP 協議提供可靠的連接服務,采用三次握手建立一個連接。

第一次握手:建立連接時,客戶端發送 SYN 包到服務器,并進入 SYN_SEND 狀態,等待服務器確認。

第二次握手:服務器收到 SYN 包,必須確認客戶的 SYN ,同時自己也發送一個 SYN 包,即 SYN+ACK 包,此時服務器進入 SYN_RECV 狀態。

第三次握手 :客戶端收到服務器的 SYN + ACK 包,向服務器發送確認包 ACK,此包發送完畢,客戶端和服務器進入 ESTABLISHE 態。

完成 三次握手,客戶端與服務器開始傳送數據,也就是 ESTABLISHED 狀態。

TCP四次揮手

TCP的連接斷開

TCP 一個特別的概念叫作半關閉,這個概念是說, TCP 的連接是全雙工(可以同時發送和接收)連接,因此在關閉連接的時候,必須關閉傳和送兩個方向上的連接。

客戶機給服務器 FIN 的 TCP 報文,然后服務器返回給客戶端一個確認 ACK 報文,并且發送一個FIN 報文,當客戶機回復 ACK 報文后( 四次握手),連接就結束了。

在建立連接的時候,通信的雙方要互相確認對方的最大報文長度( MSS ),以便通信。

一般這個 SYN 長度是 MTU 減去固定 IP 首部和 TCP 首部長度。對于一個以太網,一般可以達 1460 Byte 。當然如果對于非本地的 IP ,這個 MSS 可能就只有 536 Byte ,而且,如果中間的傳輸網絡的 MSS 更加的小的話,這個值還會變得更小。

為什么建連接要三次握手,斷連接需要四次揮手?

對于建連接的三次握手,主要是要初始化 Sequence Number 的初始值。通信的雙方要互相通知對方自己的初始化的 Sequence Numbe,所以叫 SYN 。

這個號要作為以后的數據通信的序號,以保證應用層接收到的數據不會因為網絡上的傳輸問題而亂序( TCP 會用這個序號來拼接數據)。

對于四次揮手,其實仔細看則是兩次,因為 TCP 是全雙工的,所以,發送方和接收方都需要 FIN 和 ACK。

只不過,有一方是被動的,所以看上去就成了所謂的四次揮手 。如果兩邊同時斷連接,那就會就進入到 CLOSING 狀態,接著就是TIME_WAIT 狀態。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9029

    瀏覽量

    85207
  • 網絡
    +關注

    關注

    14

    文章

    7523

    瀏覽量

    88654
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1351

    瀏覽量

    78999
  • 客戶端
    +關注

    關注

    1

    文章

    290

    瀏覽量

    16663
收藏 人收藏

    評論

    相關推薦

    TCP和UDP建立連接的差異和可靠性的差異

    TCP 建立連接需要經過三次握手,同時 TCP 斷開連接需要經過四次揮手,這也表示 TCP 是一
    發表于 09-02 16:10 ?759次閱讀

    如何標識一個TCP連接

    tcp應用中,server事先在某個固定端口監聽,client主動發起連接,經過三路握手后建立tcp連接。那么對單機,其最大并發
    的頭像 發表于 10-10 10:33 ?2897次閱讀

    STM32H7+FREERTOS+LWIP建立TCP連接連接不穩定怎么解決?

    利用ST的Demo建立TCP連接,但是當建立TCP連接超過4個時,
    發表于 04-25 06:05

    為什么建立TCP連接有時成功有時失敗?

    時開發板自帶的里程改的,TCP這部分基本沒有改,只是增加了自己的應用進去。首次使用以太網接口,還不太清楚建立連接的機理,有了解這塊的朋友嗎,請問建立
    發表于 09-19 04:36

    CH9121配置成TCP Client/Server,無法和電腦建立TCP連接怎么解決?

    9121配置成TCP Client/Server,無法和電腦建立TCP連接
    發表于 10-12 08:18

    建立TCP/IP連接后可以發送json數據嗎?

    建立TCP/IP連接后,可以發送json數據嗎?
    發表于 10-18 06:05

    建立TCP/IP連接之后可以發送json的數據嗎?

    建立TCP/IP連接之后,可以發送json的數據嗎??
    發表于 10-20 06:02

    TCP連接建立與終止

    學習TCP-IP的很好的書。TCP-IP詳解卷1。
    發表于 05-10 15:44 ?0次下載

    大神告訴你TCP建立連接為什么是三次握手

    所謂三次握手(Three-Way Handshake)即建立TCP連接,是指建立一個TCP連接
    的頭像 發表于 04-16 11:43 ?1w次閱讀
    大神告訴你<b class='flag-5'>TCP</b><b class='flag-5'>建立</b><b class='flag-5'>連接</b>為什么是三次握手

    TCP通信通過網絡調試助手與S7-1200建立TCP連接

    S7-1200 V4.5 版本開始支持網絡視圖組態開放式用戶通信連接,不需要在程序中調用 TCON 等建立連接指令,只需要調用發送接收指令即可實現數據的收發。下面以 TCP 通信為例,
    的頭像 發表于 07-06 15:39 ?1.1w次閱讀

    要是沒有一端進行監聽是否可以建立TCP連接呢?

    TCP 網絡通信過程中,我們都是先有 server 端調用 listen 監聽某個端口號,然后 client 向 server 發起連接請求,最終建立連接
    的頭像 發表于 11-16 17:42 ?2136次閱讀
    要是沒有一端進行監聽是否可以<b class='flag-5'>建立</b>起<b class='flag-5'>TCP</b><b class='flag-5'>連接</b>呢?

    如何使用Netcat命令建立和測試TCP和UDP連接

    Netcat或nc是一個命令行程序,它使用TCP或UDP協議通過網絡連接讀取和寫入數據。
    的頭像 發表于 12-12 17:39 ?7503次閱讀

    什么是Socket連接?Socket與TCP連接的關系

    主機 A 的應用程序必須通過 Socket 建立連接才能與主機B的應用程序通信,而建立 Socket 連接需要底層 TCP/IP 協議來
    發表于 03-31 15:10 ?1024次閱讀

    TCP連接建立中的異常

    ? ? 建連接時SYN超時問題 如果 server 端因為某種情況沒有收到 client 回來的 ACK,那么,這個連接處還處于一個未建立的狀態。于是,server端如果在一定時間內沒有收到,則
    的頭像 發表于 10-08 17:01 ?771次閱讀

    TCP的長連接和短連接

    TCP在真正開始進行數據傳輸之前,Server 和 Client 之間必須建立一個連接。當數據傳輸完成后,雙方不再需要這個連接時,就可以釋放這個連接
    的頭像 發表于 11-13 10:46 ?985次閱讀