三分迎,七分送-用待客之禮講解計算機的四次揮手

2020-12-18 程序秀

所謂『揮手』,即終止 TCP 連接,就是指斷開一個 TCP 連接時,需要客戶端和服務端總共發出四個包,已確認連接的斷開。

在 Socket 編程中,這一過程由客戶端或服務端任意一方執行 Close來觸發。

這裡假設,由客戶端主動觸發 Close:

數據傳輸完畢之後,雙方都可釋放連結,最開始,客戶端和服務端都處於 Established 的狀態,然後客戶端主動關閉,服務端被動關閉。

第一次揮手:首先,客戶端進程發出連接釋放報文,並且停止發送數據,在該數據包的報頭中,TCP Flags 中的 FIN 就為1,假設,此時的客戶端定義的序列號 seq=u,該值等於前面 Established 狀態下數據最後一次傳送到服務端的數據的最後字節的序號+1,此時客戶端就進入了 FIN_WAIT_1 這麼一個終止等待的狀態。TCP 規定,即使 FIN 報文段不攜帶數據,也要消耗掉一個序號。

第二次揮手:伺服器收到 FIN 包後,也要發出 ACK 確認報文,這裡最為回應,小寫的 ack=u+1,同樣也攜帶上了自己的序列號。此時服務端進入了 CLOSE_WAIT 這麼一個關閉等待的狀態。這個狀態比較重要,TCP 伺服器通知高層的應用進程,客戶端要釋放跟伺服器通信的連接了,這時候會處於半關閉的狀態,即客戶端已經沒有數據要發送了,但是服務端又要發送數據,客戶端還是能夠接收的。這個狀態還要持續一段時間。客戶端收到伺服器的確認請求後,也就是第二次揮手的時候。此時,客戶端就進入了 FIN_WAIT_2 這個狀態,等待伺服器發送釋放連接報文,等待發送第三次揮手的請求。因此在這段時間內,客戶端有可能還要接受伺服器發送的最後的數據。

第三次揮手:伺服器將最後的數據發送完畢,就會想客戶端發送連接釋放報文,這裡 FIN=1,ACK=1。而 ack 還是等於 u+1。由於在半關閉的狀態,伺服器有可能還發送了一些數據,假定此時的序號就變為了 w。此時,伺服器就進入了 LAST_ACK 這麼一個最後確認的狀態,等待客戶端的最終確認。

第四次揮手:客戶端在收到伺服器的連接釋放報文之後,必須發出確認,即:ACK=1,再將伺服器發過來的w變成w+1,回發回去,通過小的ack回發回去,而自己的序號假定為那麼它就是u+1,而自己的序號,也就是按照之前報文的序號加1,就是u+1。此時,客戶端就進入了 TIME_WAIT 即時間等待的狀態。注意此時,客戶端的 TCP 連接還沒有釋放,必須經過 2 * MSL 的時間後,這個連接才真正的釋放,才進入到 CLOSED 的狀態。MSL 即最長報文段壽命,RFC 793 定義了 MSL 的值為2分鐘,而 Linux 則設置成了30秒。而伺服器,只要收到了客戶端的確認,立即就進入了 CLOSED 的狀態。伺服器結束TCP的連結時間要比客戶端稍早一些。

TCP四次揮手

輕輕的我走了,我揮一揮衣袖,不帶走半片雲彩!

四次揮手總結玩了,下一期會總結三次握手和四次揮手的面試重點。

關注我,我將持續更新。有什麼問題也可以留言。

感謝您的觀看

相關焦點

  • 俗語:茶七飯八,酒十分,什麼意思?快過年了,看看這些待客之禮
    俗語:茶七飯八,酒十分,什麼意思?快過年了,看看這些待客之禮每當新春佳節,我們都會走親訪友,為他們帶去新年祝福。對於親友的拜訪,人們自然也要以禮相待,我國的待客之道,經過數千年的發展,已經有了自己的一套準則,今天我們所講的:茶七飯八酒十分,便是待客之道的其中之一。
  • 重學TCP/IP協議和三次握手四次揮手
    TCP/IP 是一個四層體系結構,它包含應用層,運輸層,網際層和網絡接口層(用網際層這個名字是強調這一層是為了解決不同網絡的互連問題),不過從實質上講,TCP/IP 只有最上面的三層,因為最下面的網絡接口層並沒有什麼具體內容,因此在學習計算機網絡的原理時往往採用折中的辦法,即綜合 OSI 和 TCP/IP 的優點,採用一種只有五層協議的體系結構,這樣既簡潔又能將概念闡述清楚,有時為了方便,也可把最底下兩層稱為網絡接口層
  • 待客和做客之道
    如何在家庭中待客?    準備  首先,要根據客人的身份、來訪的內容和目的,確定接待的規格和標準,準備好必要的物品。要認真做一次家庭衛生,特別是茶具、餐具、必要時做一次消毒。  接待  接待時,握手禮、問候禮、引導禮等禮節是不可少的。  家庭主婦要扮演主要接待的角色。對來訪的客人要逐一問候,特別是對長輩、兒童給予特別關照,爭取做到熱情、周到、愉快、舒服。  主人就座時要等到客人落座後,自己再坐下;主人要坐在客人的左側。
  • 牛皮了,頭一次見有大佬把TCP三次握手四次揮手解釋的這麼明白
    TCP/IP 是一個四層體系結構,它包含應用層,傳輸層,網際層和網絡接口層(用網際層這個名字是強調這一層是為了解決不同網絡的互連問題),不過從實質上講,TCP/IP 只有最上面的三層,因為最下面的網絡接口層並沒有什麼具體內容,因此在學習計算機網絡的原理時往往採用折中的辦法,即綜合 OSI 和 TCP/IP 的優點,採用一種只有五層協議的體系結構,這樣既簡潔又能將概念闡述清楚,有時為了方便,也可把最底下兩層稱為網絡接口層
  • 牛皮了,頭一次見有大佬把TCP/IP三次握手四次揮手解釋的這麼明白&大廠易錯面試題
    四層協議,五層協議和七層協議的關係如下:TCP/IP是一個四層的體系結構,主要包括:應用層、運輸層、網際層和網絡接口層。五層協議的體系結構主要包括:應用層、運輸層、網絡層,數據鏈路層和物理層。劃重點:TCP(傳輸控制協議)和IP(網際協議) 是最先定義的兩個核心協議,所以才統稱為TCP/IP協議族TCP的三次握手四次揮手TCP是一種面向連接的、可靠的、基於字節流的傳輸層通信協議,在發送數據前,通信雙方必須在彼此間建立一條連接。所謂的「連接」,其實是客戶端和服務端保存的一份關於對方的信息,如ip地址、埠號等。
  • 拜託,不要再問我三次握手和四次揮手了!
    三次握手和四次揮手是各個公司常見的考點,也具有一定的水平區分度,也被一些面試官作為熱身題。請畫出三次握手和四次揮手的示意圖為什麼連接的時候是三次握手,關閉的時候卻是四次握手?什麼是半連接隊列?ISN(Initial Sequence Number)是固定的嗎?三次握手過程中可以攜帶數據嗎?如果第三次握手丟失了,客戶端服務端會如何處理?SYN攻擊是什麼?揮手為什麼需要四次?
  • 理解TCP/IP三次握手與四次揮手的正確姿勢
    SYN攻擊時一種典型的DDOS攻擊,檢測SYN攻擊的方式非常簡單,即當Server上有大量半連接狀態且源IP位址是隨機的,則可以斷定遭到SYN攻擊了,使用如下命令可以讓之現行:#netstat -nap | grep SYN_RECV3三、四次揮手 三次握手耳熟能詳
  • 古人十分重視賓客之禮,在迎賓待客上,分別都有哪些禮節?
    好客不僅要禮貌待客,更要做到賓至如歸。因此,古人十分重視賓客之禮,遇有賓朋到來,熱情迎於門外,相互施禮,互致問候,然後引入堂室,入門也有禮規。古禮規定:「凡與客人者,每門讓於客。」凡遇門則讓客人先進,這是主人向客人表達的一種敬意。入席之後,在安排座次上也講究禮節。中國古代一般以東方、南方為尊,帝王於殿堂之上,往往坐北朝南,意為自己尊於群臣,在萬民之上。
  • 餐廳才是禮儀之邦該有的待客之道
    所謂「民以食為天,用餐禮為先」,本文通過6款不同風格的餐廳,帶你領略禮儀之邦該有的待客之道。待客之道—賓主暢懷有客臨門,主客最喜一個「暢」字。餐廳與陽臺相連,再加上鎂鋁合金玻璃櫃的通透感,視覺呈現上讓人心情愉悅,再者借景入室,坐看朝暮變化,心隨景動,於餐廳之中品嘗人生百味。
  • 以茶待客,禮不可少
    在中國,茶酒是待客最常見的兩種待客方式。但卻是兩種完全不同的氛圍。茶是清醒的,歷來文人社交更愛喝茶,茶可以使人思路清醒,是一種修身養性、高雅的交友方式。新客換茶即主人在喝茶或以茶待客的中途,有新的客人來到,主人需重新換新茶以示歡迎。先後有序「先尊后卑,先老後少」,即第一次斟茶的時候,要先要先尊老後卑幼,第二遍時就可按序斟上去。
  • TCP 三次握手、四手揮手,這樣說你能明白吧!
    其值是接收計算機即將接收到的下一個序列號,也就是下一個接收到的字節的序列號加1。 數據偏移欄位 TCP 首部長度(Header Length):數據偏移是指數據段中的「數據」部分起始處距離 TCP 數據段起始處的字節偏移量,佔 4 位。
  • 接人待客,禮儀為先!但若能在這樣的清雅之所待客,則更妙了!
    中國乃文明古國、禮儀之邦,萬事講究以禮為先。禮儀能讓人與人和睦融洽,彼此尊重。中國人在家接人待客時,也是以禮為先。以茶待客、真誠謙和,皆是待客之禮,但若能在一個清雅舒適的空間待客,相信能讓主客相處更加和洽歡愉!
  • 喝茶有禮,待客有道,這15個喝茶禮節一定要知道!
    禮茶,茶禮,是一種能量交換,它關乎人和氛圍。除去繁瑣的茶藝流程,以茶待客也蘊含許多「待客之禮」,基本禮節不可廢。無論是主人還是客人,做到喝茶明禮,更能營造愉悅的喝茶氛圍。禮節不僅是見微知著,細節之處觀風雅,也是對茶文化的一種傳承,以下這些喝茶禮儀你知道嗎?
  • 銷售人員要做到待客有禮
    第一組兩張只看一次,第二組兩張看2次,第三組看4次,第四組看6次,第五組看8次,第六組兩張照片不予觀看。被測試者看完照片後,要求按照自己的欣賞程度對照片給予評價。結果表明,凡是被看的次數多的照片,被接受的程度也就越高。這個實驗證明的就是所謂的曝光效應。曝光效應指的是某個事物出現的次數越多,人們就越有可能喜歡它。
  • 茶七飯八酒倒滿,這些待客禮儀你肯定用得到
    但不管怎麼說,簡簡單單七個字,卻蘊含了數千年來老祖宗們所總結出來的待客之道,或許你不知道為何要這樣做,接下來小編就來為你解釋。茶七七分茶俗話說得好:「茶滿欺客,話滿欺人」,「七分茶」是中國大多數地方都遵循的一個待客禮儀。
  • 用時間積澱譜寫最專業的《待客之道》
    他或許能夠用其多年的經歷給我們答案。一:《待客之道》——客為核心問:曾經理在奔馳服務25年,如何理解奔馳今年發布的《待客之道》?所以醫生和我們的工作有極大的相似之處。我很喜歡這份工作,畢竟都是需要一顆仁心。四:25年的沉澱,是青春更是榮耀問:曾經理已經為奔馳奉獻了25年的青春年華,奔馳品牌與您產生了怎樣的共鳴,讓您擁有堅持25年的信念?
  • 上海人待客熱情周全,平時再節儉,待客卻一點也不肯馬虎
    今日說的清茶一杯待客,對老派上海人來講,是十分不滿足的。有客來,清茶一杯之外,怎麼著都要裝一隻盆子出來。記得小時候父母時常會買斤把什錦糖回來,先將那有漂亮玻璃紙、錫紙包的揀出來另外放開,餘下的就「賜」給我和哥哥。那揀出來的,就為著裝盆子以備待客的不時之需。所謂裝盆子,是一種禮待,糖果瓜子之類直接放在桌面上是不禮貌的,也顯得很不衛生。上海人家怎麼著都會有幾隻高腳玻璃果盤以待客裝盆子用。
  • 待客造句和解釋_待客的例句有哪些 - 小孩子點讀
    待客(dài kè)。招待客人;接待客人。[趙樹理《傳家寶》:「金桂就要切白菜,準備待客用。」]待客參考例句:1、請您坐下稍等片刻。給客人倒茶,禮貌待客。2、有客人來訪,應該以禮相待,才是待客之道。3、這裡的售貨員待客十分禮貌熱情。
  • 中國人陪客之禮之道
    但是,陪客人吃飯,就得講「禮」用「道」了。中國不是「禮儀之邦」嗎?我們吃飯時,特別是陪客人吃飯時注意什麼「禮」呢?首先是講坐次。最重要的客人一般安排在北向東邊,而主人陪坐在主賓的右手邊。依次坐下。吃飯時不能用手抓。不能用筷子給米飯散熱,顯得吃飯的人過於心急。吃飯吃菜講慢咽細嚼,利於消化。最後講陪客。酒菜擺好後,主人還要引導就餐,陪客人用餐。開席前要進行進食禮儀,賓先主後說一些互相激勵祝福的話,然後再行祭食禮儀,報答天地供養之恩,報答先祖不忘本,比如飲酒前倒一點到地上就是這個意思。熟食製品,主人先嘗,以確認食物口感與安全。
  • 35 張圖解被問千百遍的 TCP 三次握手和四次揮手面試題
    所以小林整理了關於 TCP 三次握手和四次揮手的面試題型,跟大家一起探討探討。TCP 基本認識1.TCP 連接建立2.TCP 連接斷開3.Socket 編程PS:本次文章不涉及 TCP 流量控制、擁塞控制、可靠性傳輸等方面知識,這些留在下篇哈!