乾貨分享|網路情緣之TCP的握手和分手
最近給學員們複習介面測試的時候,有人找到一個面試的時候被問到的問題:“請說明TCP的三次握手。”然後有人笑著回答說:“就是問女朋友‘約嗎’?”女朋友說:“約”,然後再說:“走吧”,這樣的過程。看到這個回答,有點好像理解了,但又不知道理解什麼了的感覺,所以今天我們就來聊一下TCP協議相關的內容吧,希望對大家以後做 有所幫助。
不知道大家有沒有寄大件物品的經歷,比如寄一張床,小明同學肯定有(小明是誰?我也不知道)。有一天小明要給老家寄一張大床,於是去了物流公司,找到客服小MM諮詢。小MM問:“你住哪,要把東西寄到哪裡去?”於是小明趕緊說了自己的情況:“我住長沙五一新幹線1430,寄到湖南省長沙縣某某村222號”
小MM繼續問:“這個村有很多個收快遞的點,你要放到哪個點呢?”小明想了一下:“放到標有80的快遞點,他們會有人來拿的。”
小MM說:“我現在還不知道那個地方是不是營業,我先幫你確定一下。”於是她叫了一個小弟說:“你給長沙縣某某村去送個信,說我們要給他們發個快遞,看他們還營業嘛或者有空沒有”小弟聽完就出去了。(不要問為什麼不打電話,因為劇情需要)一個小時後,小弟回來了,說:“他們營業的,有空。”小MM說:“你再跑一趟,告訴他我們知道了,我們就要給他們送個物品過去了。”小弟又出去跑了一趟,小明覺得這個小MM是有點消遣人,讓人家跑三趟,小MM做出解釋:“我們要建立一個可靠的連線通道,不跑三趟怎麼證明我們雙方收件發件沒有問題呢。我們要保證你的東西能寄到的話就一定要這麼做,自己琢磨琢磨就知道了。”看到這裡大家應該差不多知道TCP建立連線的三次握手是怎麼回事了 。
圖一: wireshark抓取的資料包
第一次握手: 192.168.1.105傳送位碼syn=1資料包到119.75.219.45,119.75.219.45由SYN=1知道192.168.1.105要求建立聯機;
第二次握手: 119.75.219.45收到請求後要確認聯機資訊,向192.168.1.105傳送ack , v傳送syn=1,ack=1的確認包;
第三次握手: 192.168.1.105收到後檢查位碼ack是否為1,若正確,192.168.1.105會再發ack=1,119.75.219.45收到後確認seq=seq+1,ack=1則連線建立成功。
圖二、三次握手
小明的床經過很多次快遞後,終於把所有的零部件都送出去了。這時小MM說:“都發過去了,可以跟那邊不聯絡了。”於是把之前的小弟叫來說:“跟那邊說一下,該發的包都傳送完了。”過了一會,小弟回來說:“他們知道了,有事情會跟我們聯絡的。”過了一會,又有一個小弟過來說:“我們那邊已經沒有事情了,今天的事情結束了,我們會等待半小時,如果你們沒有事情了,半個小時後,就不聯絡了。”小MM很開心說:“那你帶個結束確認信過去,我們也等半小時,如果他們沒有事情,今天就結束了。”小明說:“你們這結束連線也還挺麻煩的。”小MM說:“那是自然,萬一有什麼臨時事情發生呢,這叫四次分手。”
TCP結束連線需要進行四次對話,雙方確保沒有資料要傳送了,才能斷開連線。
圖三: wireshark抓取四次揮手的資料包
第一次揮手:客戶端 A傳送一個FIN,用來關閉客戶A到伺服器B的資料傳送。
第二次揮手:伺服器 B收到這個FIN,它發回一個ACK,確認序號為收到的序號加1,和SYN一樣,一個FIN將佔用一個序號。
第三次揮手:伺服器 B關閉與客戶端A的連線,傳送一個FIN給客戶端A。
第四次揮手:客戶端 A發回ACK報文確認,並將確認序號設定為收到序號加1。
圖四、 TCP資料傳輸的過程
讀書小筆記
2018/12/13
俗話說 “有趣的靈魂萬里挑一”,羅曼老師用講故事的方式講述知識,讓人忍不住一直讀下去,原來枯燥的知識也變的輕鬆有趣起來,感謝羅曼老師為我們講述的“網路情緣”系列的第二個故事,讓我們繼續為羅曼老師打call吧~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2898193/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 乾貨分享|網路情緣之如何踏上上網的“不歸之路”
- 【新夢想幹貨連載】網路情緣之TCP的分包處理TCP
- TCP三次握手四次分手TCP
- 乾貨分享!Python網路爬蟲實戰Python爬蟲
- MySql乾貨分享之索引MySql索引
- 【網路】TCP協議中三次握手和四次揮手TCP協議
- 網路協議 - TCP/IP 三次握手和四次揮手協議TCP
- JAVA面試-計算機網路-TCP三次握手Java面試計算機網路TCP
- 【計算機網路】TCP連線三次握手和四次揮手計算機網路TCP
- 【網路安全純乾貨分享】漏洞掃描和滲透測試的區別是什麼?
- Java後端學習路線乾貨分享Java後端
- TCP 的 三次握手 四次握手TCP
- 難存的情緣&貨車運輸
- 成為高手前必懂的TCP乾貨TCP
- 計算機網路-tcp的三次握手與四次揮手計算機網路TCP
- 網路核心之TCP是如何傳送和接收訊息的TCP
- 一看就懂的TCP握手和揮手TCP
- tcp三次握手和SYN攻擊TCP
- 網店開設教程免費分享,無套路乾貨分享!
- TCP協議之網路延時TCP協議
- 【純乾貨分享】網路安全這些專業“術語”你瞭解嗎?
- 自己理解的TCP三次握手TCP
- TCP的三次握手過程TCP
- 乾貨分享 | PCB測試點的用途
- TCP三次握手和四次揮手TCP
- 乾貨 | 雲解析DNS之網站監控DNS網站
- TCP三次握手原理TCP
- [乾貨分享]1000篇乾貨好文!量子技術——進階篇
- [乾貨分享]1000篇乾貨好文!量子技術——資訊篇
- 乾貨分享:PPT製作技巧
- 乾貨分享|優炫資料庫管理之表空間資料庫
- 乾貨:計算機網路知識總結計算機網路
- 網際網路大廠內推+面試乾貨合集面試
- 說說TCP的三次握手和四次揮手TCP
- 圖解TCP的三次握手和四次揮手圖解TCP
- TCP協議的三次握手和四次揮手TCP協議
- 計算機網路之TCP可靠傳輸計算機網路TCP
- python網路-Socket之TCP程式設計(26)PythonTCP程式設計