自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

TCP和UDP,你要知道的123 (TCP篇)

網(wǎng)絡 網(wǎng)絡管理 數(shù)據(jù)中心
作為一名網(wǎng)絡運維人員,熟悉TCP和UDP兩兄弟是必要的。TCP與UDP是隸屬于TCP/IP協(xié)議族的兩員大將,從TCP/IP誕生以來經(jīng)歷了幾十年的發(fā)展,可以這么說不管世界如何變遷、無論滄海已變幾多桑田,管它傳統(tǒng)互聯(lián)網(wǎng)還是移動互聯(lián)網(wǎng),都離不開他們,現(xiàn)在,今后很長一段時間都離不開。

前言

作為一名網(wǎng)絡運維人員,熟悉TCP和UDP兩兄弟是必要的。TCP與UDP是隸屬于TCP/IP協(xié)議族的兩員大將,從TCP/IP誕生以來經(jīng)歷了幾十年的發(fā)展,可以這么說不管世界如何變遷、無論滄海已變幾多桑田,管它傳統(tǒng)互聯(lián)網(wǎng)還是移動互聯(lián)網(wǎng),都離不開他們,現(xiàn)在,今后很長一段時間都離不開。

即然取名123,就不想用過多的術語來解釋他們,我想通過我實際的案例來和大家一起探索門道。我們先談談TCP

TCP

TCP,全稱Transmission Control Protocol,中文譯作傳輸控制協(xié)議。大家每天瀏覽的網(wǎng)頁,不管是用手機還是電腦打開的,均會使用TCP協(xié)議來傳輸數(shù)據(jù),TCP是面向連接的協(xié)議(稍后解釋)。

我們通過一個小案例來理解TCP。筆者租用過一臺云服務器,用來提供web(網(wǎng)頁)服務。在所有配置完成后,發(fā)現(xiàn)從我的主機無法打開服務器上的網(wǎng)頁,打開其它網(wǎng)頁則是正常的。

在講案例解決之前,我們先明確幾個關于TCP的概念:端口、三次握手。

端口:我們訪問網(wǎng)頁,說白了,其實是訪問運行在服務器上的一個應用程序,而我們與應用程序通信,就要用到端口。比如打開網(wǎng)頁用的http協(xié)議,它默認使用的80端口,https(http加密版本)默認使用的443端口。

三次握手:TCP是面向連接的協(xié)議,比如打開一個網(wǎng)頁,你需要先和網(wǎng)頁服務器建立一個連接,而建立這個連接的過程,我們稱為三次握手。

三次握手

三次握手

我通過抓包軟件(windows下使用wireshark,linux下使用tcpdump)獲取了三條報文數(shù)據(jù),我們來詳細分析一下。

  • ***條報文:192.168.253.4(主機)向目標ip為140開頭的服務器的80端口發(fā)送標志位(Flag)為SYN(Synchronize Sequence Numbers,同步序列號)的報文。翻譯成白話,主機告訴服務器,我要準備和你的80端口通信了,把我要訪問的網(wǎng)頁數(shù)據(jù)發(fā)給我。(***次握手)
  • 第二條報文:服務器發(fā)送標志位為SYN,ACK(Acknowledge,確認位)的報文返回給主機。意思是,服務器收到主機發(fā)過來的連接請求了,你再發(fā)過確認報文過來,我就把數(shù)據(jù)給你。(第二次握手)
  • 第三條報文:主機發(fā)送標志位為ACK的報文給服務器。說白了,就是主機告訴服務器,收到你要我發(fā)確認信息的報文,現(xiàn)將確認標志發(fā)你。(第三次握手)
  • 當服務器收到第三條報文后,主機和服務器的連接就算建立了(Established),再然后服務器就可以將網(wǎng)頁的數(shù)據(jù)傳送給主機并在主機的瀏覽器上展示內容。

有了概念的了解,我們開始處理問題,首先要確定我和服務器之間的通信是否存在問題,最簡單的方式是使用ping 服務器ip命令測試,發(fā)現(xiàn)和服務器之間的通信是ok的。

然后在服務器上(centos 7)通過netstat -na命令查看80端口(網(wǎng)頁服務標準端口)是否開啟,發(fā)現(xiàn)也沒有問題。

網(wǎng)絡是通的,應用服務也正常,卻打不開服務器網(wǎng)頁。還是使用wireshark查看通信的過程,確認到底是哪一步出現(xiàn)了問題。

問題報文

不要被圖中的英文嚇到,我們只需要關注幾個地方,就能定位這個故障的問題。我們一步一步來。

前文提過,http使用tcp協(xié)議傳輸數(shù)據(jù),tcp協(xié)議要求任何一方要和另一方通信需要先建立連接,也就是三次握手。

而在上圖中,仔細看,只有主機(192.168.88.127)發(fā)給140服務器的標志位為SYN的報文,但沒收到服務器返回的報文。因為主機沒有收到服務器的返回報文,自動啟用了重傳機制,連續(xù)又發(fā)了好幾次標志位為SYN的報文給主機,其實就是請求建立連接,但都是肉包子打狗--有去無回。一種可能是服務器應用程序出現(xiàn)了問題,沒有響應。另一種可能是服務器壓根兒沒收到主機發(fā)送的建立連接報文。

因為事先我們確認了服務器應用程序狀態(tài)是正常的,將排查重點放在服務器側接收報文這一塊。在服務器側和主機側同時抓包,查看是否能抓到來自主機的報文。

  1. //服務器使用linux系統(tǒng),抓包使用tcpdump軟件,-port 80表示抓取端口為80的報文,src host表示抓源地址是192.168.88.127的報文,and表示要求同時滿足以上2個條件。 
  2. $ tcpdump -port 80 and src host 192.168.88.127 -nn 

通過抓包發(fā)現(xiàn),主機在發(fā)送建立連接請求時,服務器沒有抓到任何來自于主機192.168.88.127訪問服務器80端口的報文,也就是說三次握手根本無法完成,更不要談數(shù)據(jù)傳輸了。因為之前ping命令又能從主機ping通服務器,表示網(wǎng)絡是通暢的。

這種情況下,很可能是防火墻策略阻檔了報文,立即檢查主機防火墻策略 。

  1. //centos 7環(huán)境下  
  2. $ systemctl status firewalld 

防火墻狀態(tài)

檢測防火墻狀態(tài)

發(fā)現(xiàn)防火墻的Active狀態(tài)為inactive(未激活),表示防火墻是未啟用的。那是什么阻止了報文呢,最終結果還是出在了防火墻策略上,是云服務器提供商提供的防火墻安全策略默認阻止了外部訪問80端口的請求,將策略修改為允許訪問80端口后,終于順利和服務器建立了連接(三次握手)網(wǎng)頁正常打開了。

TCP協(xié)議是TCP/IP協(xié)議族最重要的協(xié)議之一,搞清楚他的運行機制,對于提高運維工作的效率是有巨大幫助的。這篇短文,只是讓大家清楚TCP的概念和他的重要性,學習的道路是漫長的,我們才剛剛上路。

 

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2022-07-07 09:00:17

TCP 連接HTTP 協(xié)議

2022-08-05 11:03:59

TCP 四次揮手三次握手

2019-12-31 20:41:39

IPUDPTCP

2022-09-02 12:13:22

TCPUDP場景

2010-07-06 15:50:12

TCP和UDP協(xié)議

2013-05-27 10:48:16

TCPUDP傳輸協(xié)議

2020-07-28 08:38:10

TCPUDP協(xié)議

2018-10-08 10:14:10

TCPUDP

2020-08-03 08:10:52

UDPTCP通信

2023-10-24 15:22:09

TCPUDP

2010-07-07 10:45:22

TCP UDP協(xié)議

2019-04-16 09:27:46

2010-09-06 09:43:46

TCPUDPAndroid

2017-10-16 13:45:04

2010-07-07 10:42:36

TCP UDP協(xié)議

2013-08-01 10:01:02

網(wǎng)絡協(xié)議TCP協(xié)議UDP協(xié)議

2010-07-07 11:02:26

TCP UDP協(xié)議服務

2014-12-03 14:05:01

TCPUDP

2020-01-13 10:16:53

TCPUDP協(xié)議

2020-04-01 15:30:19

TCPUDP服務器
點贊
收藏

51CTO技術棧公眾號