91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TCP建立連接概述及三次握手、四次揮手的流程

jf_78858299 ? 來(lái)源:京東科技技術(shù)說(shuō) ? 作者: 宋國(guó)偉 ? 2023-03-23 15:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

連 接 概 述

順著第一篇的思路下來(lái),到最后我們已經(jīng)可以依靠分層達(dá)到兩臺(tái)主機(jī)之間的自由通信,那么問(wèn)題來(lái)了,假設(shè)現(xiàn)在有主機(jī)A(客戶(hù)端)及主機(jī)B(服務(wù)端),其中主機(jī)A需要訪(fǎng)問(wèn)主機(jī)B的資源,需要哪幾個(gè)必要條件呢?經(jīng)過(guò)上篇文章可知至少需要四個(gè)條件:

  • 主機(jī)A需要具有一個(gè)ip地址
  • 主機(jī)B需要具有一個(gè)ip地址
  • 主機(jī)A需要具有一個(gè)客戶(hù)端端口號(hào)
  • 主機(jī)B需要具有一個(gè)服務(wù)端端口號(hào)

圖片

具備上述四個(gè)條件后A獲取B的信息是有要求的,根本上的要求是數(shù)據(jù)信道可靠,就是平時(shí)所說(shuō)的可靠連接,那么如何保證連接的可靠性呢,TCP協(xié)議就是靠確認(rèn)應(yīng)答機(jī)制、超時(shí)重傳機(jī)制等保證連接可靠性的,接下來(lái)就通過(guò)TCP協(xié)議的三次握手及四次(三次)揮手來(lái)分析一下A與B建立連接、關(guān)閉連接的技術(shù)細(xì)節(jié)是如何落地實(shí)現(xiàn)的。

三 次 握 手

第一次: 首先客戶(hù)端A會(huì)向服務(wù)端B發(fā)送一個(gè)數(shù)據(jù)同步請(qǐng)求,可以稱(chēng)為建立連接請(qǐng)求syn,同時(shí)客戶(hù)端A 的cpu內(nèi)核會(huì)為這個(gè)syn請(qǐng)求生成一個(gè)隨機(jī)的序列號(hào)seq發(fā)送給服務(wù)端。此處整體稱(chēng)為第一次握手,注意此處為隨機(jī)序列號(hào)。

第二次: 服務(wù)端B接到客戶(hù)端A發(fā)送的syn請(qǐng)求后,會(huì)回復(fù)一個(gè)[syn+ack]的響應(yīng),其中syn仍表達(dá)數(shù)據(jù)同步的意思,這個(gè)應(yīng)答seq值由服務(wù)端B的cpu隨機(jī)生成,ack的值為第一次握手seq的值+1,ack表示兩層含義:

  • 服務(wù)端B已經(jīng)收到了客戶(hù)端A發(fā)過(guò)來(lái)的數(shù)據(jù)同步請(qǐng)求
  • 希望客戶(hù)端接下來(lái)的應(yīng)答消息的seq的值以ack回復(fù)的值開(kāi)始傳輸。

這個(gè)稱(chēng)為第二次握手。

第三次: 客戶(hù)端A接收到服務(wù)端B的[syn+ack]應(yīng)答消息會(huì)給B回復(fù)一個(gè)ack應(yīng)答,ack消息中seq值為第二次握手ack的值,而ack則為第二次握手的請(qǐng)求的seq值+1。

圖片

三次握手通信釋義圖如上所示,接下來(lái)我們來(lái)通過(guò)抓包的形式來(lái)看一下實(shí)際報(bào)文,印證三次握手的報(bào)文通信。

筆者通過(guò)wireshark(抓包工具)抓取數(shù)據(jù)包,采用打開(kāi)一個(gè)瀏覽器網(wǎng)頁(yè)的場(chǎng)景模擬對(duì)服務(wù)器B的請(qǐng)求。

第一次握手抓包圖如下:

圖片

第二次握手抓包釋義圖如下:

圖片

第三次握手抓包釋義圖如下:

圖片

通過(guò)三次握手的抓包可以很清晰的展示三次交互流程,可能有人會(huì)有連帶的疑問(wèn),為什么一定是三次,而不是別的次數(shù),這里三次其實(shí)是最優(yōu)的次數(shù),而不是一定的次數(shù),比如如果兩次的話(huà)A、B兩方將會(huì)有一方無(wú)法做出信息是否送達(dá)的確認(rèn),而超過(guò)三次則造成了浪費(fèi),因?yàn)槿谓换ブ蠥、B都已經(jīng)對(duì)兩方應(yīng)答一次了。接下來(lái)來(lái)看一下四次揮手的交互流程。

四 次 揮 手

理解三次握手及流程后,四次揮手其實(shí)本質(zhì)和三次握手的確認(rèn)流程基本上是一樣的,下面我們簡(jiǎn)單梳理一下?lián)]手標(biāo)準(zhǔn)流程。

第一次: 當(dāng)A確認(rèn)當(dāng)前連接數(shù)據(jù)已經(jīng)全部發(fā)送完成以后,會(huì)發(fā)起關(guān)閉連接請(qǐng)求,此時(shí)A不再發(fā)送業(yè)務(wù)報(bào)文,發(fā)送的請(qǐng)求標(biāo)志為FIN ,seq為x,此處整體為第一次揮手。

第二次: B收到A發(fā)出的關(guān)閉連接的請(qǐng)求之后,會(huì)給A一個(gè)確認(rèn)響應(yīng),告訴A我收到你關(guān)閉連接的請(qǐng)求了,但是我有可能還有沒(méi)發(fā)完的數(shù)據(jù)需要繼續(xù)給你發(fā)送,響應(yīng)的標(biāo)志為ack,seq為Y,ack為x+1,此處整體為第二次揮手。

第三次: 當(dāng)B把數(shù)據(jù)傳輸完之后會(huì)發(fā)送釋放連接響應(yīng),此處標(biāo)志B釋放連接,不會(huì)再發(fā)送業(yè)務(wù)報(bào)文,此時(shí)請(qǐng)求的標(biāo)志為FIN+ack,seq的值為y,ack的值為x+1,此處整體為第三次揮手。

第四次: A對(duì)B第三次揮手做最后確認(rèn),并釋放連接,此時(shí)請(qǐng)求標(biāo)志為ack,seq為x+1,ack為y+1。

圖片

四次揮手通信釋義圖如上所示,由于三次握手的每一次都通過(guò)抓包工具詳細(xì)描述了通信詳情,此處揮手抓一個(gè)整體包截圖,由讀者自行解析分析即可。

四次揮手抓包整體釋義圖如下:

圖片

可以看到,這里面的揮手包數(shù)與咱們分析的標(biāo)準(zhǔn)流程不一樣,這里是因?yàn)榈诙魏偷谌螕]手都是B向A發(fā)起確認(rèn)響應(yīng),區(qū)別是第二次只是確認(rèn),因?yàn)榭赡苓€有數(shù)據(jù)沒(méi)有傳完,要繼續(xù)傳,全部數(shù)據(jù)傳完后B才能發(fā)出最后指令進(jìn)行釋放連接,但這時(shí)如果發(fā)第二次揮手的時(shí)候就可以確認(rèn)沒(méi)有數(shù)據(jù)需要再同步給A了,這時(shí)如果按照標(biāo)準(zhǔn)流程,B會(huì)給A發(fā)送兩個(gè)相同的數(shù)據(jù)包,這樣就造成了資源浪費(fèi),故這塊揮手做了優(yōu)化,可以確認(rèn)數(shù)據(jù)的情況下,可以把第二次和第三次揮手合并成一次,所以此處是三次握手。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCP協(xié)議
    +關(guān)注

    關(guān)注

    1

    文章

    101

    瀏覽量

    12496
  • 服務(wù)端
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    7253
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    講一講的TCP三次握手四次揮手

    如果你學(xué)過(guò)網(wǎng)絡(luò)基礎(chǔ)知識(shí),那么你一定對(duì)TCP三次握手不陌生。今天我想用通俗的話(huà)來(lái)給大家講一講TCP三次握手
    的頭像 發(fā)表于 02-03 10:43 ?3032次閱讀
    講一講的<b class='flag-5'>TCP</b><b class='flag-5'>三次</b><b class='flag-5'>握手</b>和<b class='flag-5'>四次</b><b class='flag-5'>揮手</b>

    三次握手四次揮手你懂嗎

    程序員面試被問(wèn)到“三次握手四次揮手”怎么辦?
    發(fā)表于 04-08 07:23

    TCP三次握手的過(guò)程描述

    本文檔主要描述TCP三次握手的過(guò)程,一個(gè)完整的三次握手也就是 請(qǐng)求---應(yīng)答---再次確認(rèn)
    發(fā)表于 03-02 15:37 ?8次下載

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

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

    TCP/IP協(xié)議工作過(guò)程的三次握手四次揮手

    )、第三次握手:Client收到確認(rèn)后,檢查ACK是否為1,如果正確則將標(biāo)志位ACK置為1,并將該數(shù)據(jù)包發(fā)送給Server,Server檢查ACK是否為1,如果正確則連接建立成功,Cl
    的頭像 發(fā)表于 10-25 09:49 ?7248次閱讀

    TCP三次握手過(guò)程及四次揮手過(guò)程說(shuō)明

    三次握手 置位概念:根據(jù) TCP 的包頭字段,存在 3 個(gè)重要的標(biāo)識(shí) ACK、SYN、FIN ACK:表示驗(yàn)證字段 SYN:位數(shù)置 1,表示建立 T
    的頭像 發(fā)表于 03-01 12:00 ?4489次閱讀

    TCP三次握手四次揮手以及11種狀態(tài)資料下載

    電子發(fā)燒友網(wǎng)為你提供TCP三次握手四次揮手以及11種狀態(tài)資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料
    發(fā)表于 04-15 08:41 ?2次下載
    <b class='flag-5'>TCP</b><b class='flag-5'>三次</b><b class='flag-5'>握手</b>和<b class='flag-5'>四次</b><b class='flag-5'>揮手</b>以及11種狀態(tài)資料下載

    TCP三次握手四次揮手過(guò)程中的異常情況

    TCP 三次握手四次揮手過(guò)程中,途中某一步的報(bào)文丟失了,會(huì)發(fā)生什么?
    的頭像 發(fā)表于 09-05 10:23 ?1663次閱讀

    用戀愛(ài)的方式解釋TCP三次握手四次揮手

    前言今天的分享,是關(guān)于前兩天讀到的心得,TCP建立連接時(shí)三次握手,斷開(kāi)時(shí)為何4
    的頭像 發(fā)表于 08-28 16:11 ?1092次閱讀
    用戀愛(ài)的方式解釋<b class='flag-5'>TCP</b>的<b class='flag-5'>三次</b><b class='flag-5'>握手</b>和<b class='flag-5'>四次</b><b class='flag-5'>揮手</b>

    說(shuō)說(shuō)TCP三次握手的過(guò)程?為什么是三次而不是兩四次?

    說(shuō)說(shuō)TCP三次握手的過(guò)程?為什么是三次而不是兩、四次T
    的頭像 發(fā)表于 02-04 11:03 ?1178次閱讀

    簡(jiǎn)述TCP協(xié)議的三次握手機(jī)制

    機(jī)制是建立一個(gè)可靠的連接的關(guān)鍵步驟。以下是對(duì)TCP協(xié)議三次握手機(jī)制的介紹: 概述
    的頭像 發(fā)表于 08-16 10:57 ?2204次閱讀

    TCP三次握手協(xié)議的作用

    在計(jì)算機(jī)網(wǎng)絡(luò)中,數(shù)據(jù)的傳輸需要在發(fā)送方和接收方之間建立一個(gè)穩(wěn)定的連接,以確保數(shù)據(jù)的完整性和順序。TCP(傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,它通過(guò)
    的頭像 發(fā)表于 01-03 17:15 ?983次閱讀

    TCP三次握手連接建立的關(guān)系

    在計(jì)算機(jī)網(wǎng)絡(luò)中,TCP(傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。它負(fù)責(zé)在兩個(gè)主機(jī)之間建立、維護(hù)和終止連接,確保數(shù)據(jù)的可靠傳輸。
    的頭像 發(fā)表于 01-06 09:09 ?766次閱讀

    如何監(jiān)測(cè)TCP三次握手過(guò)程

    在計(jì)算機(jī)網(wǎng)絡(luò)中,傳輸控制協(xié)議(TCP)是確保數(shù)據(jù)可靠傳輸?shù)年P(guān)鍵協(xié)議之一。TCP通過(guò)三次握手過(guò)程來(lái)建立兩個(gè)端點(diǎn)之間的
    的頭像 發(fā)表于 01-06 09:20 ?821次閱讀

    TCP三次握手四次揮手,這樣解釋太通俗易懂了!

    TCP連接建立和釋放分別通過(guò)“三次握手”和“四次揮手
    的頭像 發(fā)表于 04-24 19:33 ?862次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>三次</b><b class='flag-5'>握手</b>和<b class='flag-5'>四次</b><b class='flag-5'>揮手</b>,這樣解釋太通俗易懂了!
    主站蜘蛛池模板: 调教r18车肉高h男男 | 四虎影院观看 | 国产秦先生大战白丝97在线 | 三级黄色免费网站 | 四虎影裤| 国产精品理论 | 亚洲免费网站在线观看 | 天天碰天天干 | 91网站在线播放 | hs网站免费 | 俄罗斯毛片基地 | 中文字幕第二区 | 激情四月婷婷 | 超薄肉色丝袜精品足j福利 超黄视频在线观看 | 嗯!啊!使劲用力在线观看 | 久久艹人人艹 | 色色色色色色色色色色色色 | 色偷偷亚洲男人 | 黄色aa毛片 | 日日摸夜夜爽夜夜爽出水 | 免费大片黄日本在线观看 | 婷婷在线观看香蕉五月天 | 亚洲网站在线观看 | 精品国产第一国产综合精品gif | 天天操夜夜操狠狠操 | 久久天天躁狠狠躁夜夜不卡 | 色妞女女女女女bbbb | 激情亚洲| 美欧毛片 | 好吊日在线 | 天天射天天干天天操 | 色香色香欲天天天影视综合网 | 久久国产精品免费观看 | 午夜dy888理论三级 | 香蕉午夜视频 | 亚洲www| 激情五月综合 | 四虎影院在线免费观看视频 | 久视频在线观看久视频 | 色吧欧美| 欧美操穴视频 |