tcp鏈結的幾種狀態 tcpdump抓包

2021-08-25 12:40:53 字數 2222 閱讀 6147

說明: 通常情況下:乙個正常的tcp連線,都會有三個階段:1、tcp三次握手;2、資料傳送;3、tcp四次揮手

裡面的幾個概念:

客戶端發起乙個和服務建立tcp鏈結的請求,這裡是syn(j)

服務端接受到客戶端的建立請求後,返回兩個資訊: syn(k) + ack(j+1)

客戶端在接受到服務端的ack資訊校驗成功後(j與j+1),返回乙個資訊:ack(k+1)

服務端這時接受到客戶端的ack資訊校驗成功後(k與k+1),不再返回資訊,後面進入資料通訊階段

客戶端/服務端 read/write資料報

客戶端發起關閉請求,傳送乙個資訊:fin(m)

服務端接受到資訊後,首先返回ack(m+1),表明自己已經收到訊息。

服務端在準備好關閉之前,最後傳送給客戶端乙個 fin(n)訊息,詢問客戶端是否準備好關閉了

客戶端接受到服務端傳送的訊息後,返回乙個確認資訊: ack(n+1)

最後,服務端和客戶端在雙方都得到確認時,各自關閉或者**對應的tcp鏈結。

syn_send

syn_received

established

fin_wait1

close_wait

fin_wait2

lask_ack

time_wait

主動關閉方在接收到被動關閉方的fin請求後,傳送成功給對方乙個ack後,將自己的狀態由fin_wait2修改為time_wait,而必須再等2倍的msl(maximum segment lifetime,msl是乙個資料報在internetwork中能存在的時間)時間之後雙方才能把狀態 都改為closed以關閉連線。目前rhel裡保持time_wait狀態的時間為60秒

keepalive策略可以有效的避免進行三次握手和四次關閉的動作

tcpdump [ -adeflnnopqstvx ] [ -c 數量 ] [ -f 檔名 ][ -i 網路介面 ] [ -r 檔名] [ -s snaplen ][ -t 型別 ] [ -w 檔名 ] [表示式 ]

-l    使標準輸出變為緩衝行形式;

-n    不把網路位址轉換成名字;

-c    在收到指定的包的數目後,tcpdump就會停止;

-i    指定監聽的網路介面;

-w    直接將包寫入檔案中,並不分析和列印出來;

-s         指定記錄package的大小,常見 -s 0 ,代表最大值65535,一半linux傳輸最小單元mtu為1500,足夠了

-x         直接輸出package data資料,預設不設定,只能通過-w指定檔案進行輸出

關於型別的關鍵字,主要包括host,net,port

傳輸方向的關鍵字,主要包括src , dst ,dst or src, dst and src

協議的關鍵字,主要包括fddi,ip ,arp,rarp,tcp,udp等型別

邏輯運算,取非運算是 'not ' '! ', 與運算是'and','&&';或運算 是'or' ,'||'

其他重要的關鍵字如下:gateway, broadcast,less,greater

tcpdump tcp port 80 -n -x -s 0   指定80埠進行輸出

tcpdump tcp port 80 -n -s 0  -w /tmp/tcp.cap

對應的/tmp/tcp.cap基本靠肉眼已經能看一下資訊,比如http header , content資訊等

tcpdump tcp port 80 -n -s 0  -x -l | grep ***x

這樣可以實時對資料報進行字串匹配過濾

線上伺服器apache+jetty,通過apache mod_proxy進行乙個反向**,80 apache埠, 7001 jetty埠

apache埠資料抓包: tcpdump tcp port 80 -n -s 0 -x  -i eth0   注意:指定eth0網路介面

jetty埠資料抓包: tcpdump tcp port 7001 -n -s 0 -x  -i lo           注意:指定loopback網路介面

tcpdump tcp host 10.16.2.85 and port 2100 -s 0 -x 

需要使用tcp表示式的組合,這裡是host指示只監聽該ip

操作: 

注意: 

李濤 郵件資料

man tcp

(tcpdump)

tcp鏈結的幾種狀態

說明 通常情況下 乙個正常的tcp連線,都會有三個階段 1 tcp三次握手 2 資料傳送 3 tcp四次揮手 裡面的幾個概念 客戶端發起乙個和服務建立tcp鏈結的請求,這裡是syn j 服務端接受到客戶端的建立請求後,返回兩個資訊 syn k ack j 1 客戶端在接受到服務端的ack資訊校驗成功...

TCP常見的幾種狀態

tcp常見的幾種狀態 closed 初始狀態,表示沒有任何連線。listen server端的某個socket正在監聽來自遠方的tcp埠的連線請求。syn sent 傳送連線請求後等待確認資訊。當客戶端socket進行connect連線時,會首先傳送syn包,隨即進入syn sent狀態,然後等待s...

程序的幾種狀態

程序 程序 process 是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位。程序狀態 乙個程序的生命週期可以劃分為一組狀態,這些狀態刻畫了整個程序。程序狀態即體現乙個程序的生命狀態。程序狀態 一般來說,程序有三個狀態,即就緒狀態,執行狀態 阻塞狀態。執行態 程序占...