Linux下的抓包tcpdump

Linux下的抓包tcpdump

公司linux下socket對接時發現接口中總是報錯,所以研究了一下Linux下的抓包

tcpdump host #IP地址#? ? ? ? ? ? //獲取主機210.27.48.1接收或發出的telnet包

tcpdump參數的主要選項

-i :指定網卡 默認是 eth0 ??
-n :線上ip,而不是hostname
-c :指定抓到多個包后推出
-A:以ASCII方式線上包的內容,這個選項對文本格式的協議包很有用
-x:以16進制顯示包的內容
-vvv:顯示詳細信息
-s :按包長截取數據;默認是60個字節;如果包大于60個字節,則抓包會出現丟數據;所以我們一般會設置 -s 0 ;這樣會按照包的大小截取數據;抓到的是完整的包數據
-r:從文件中讀取【與 -w 對應,/usr/sbin/tcpdump -r test.out ?讀取 tcpdump -w ?test.out】
-w:到處指向文件【一定要用,-w t.out ,然后用 -r t.out 來看抓包信息,否則可讀性很差】
?

2.??tcpmdump 抓包出來分析包的具體含義

包攜帶的標志:S:S=SYC ?:發起連接標志P:P=PUSH:傳送數據標志F:F=FIN:關閉連接標志ack:表示確認包RST=RESET:異常關閉連接.?表示沒有任何標志

第一行: S:表示 clinet.hostname 的臨時端口50741向 server.hostname 80 端口發起連接,client 的初始包序號是:?562843056 ?;滑動窗口(win 14480)的大小是:14480 [14k] ?滑動窗口即tcp 接收緩沖區的大小,用于tcp 擁塞控制;mss 1460:可以接收的最大包長度,通常是MTU – 40 byte;IP頭和TCP頭各20byte
第二行: S:表示SYN狀態;是server.hostname 對第一行 clinet.hostname 發起連接的請求的回應;同時帶上client 端 初始包序號 + 1:ack?562843057 ,即server.hostname 下次等待接收這個包序號的包,用于tcp 字節流的順序控制(?). server.hostname 初始包序列號:2306923370?
第三行:client.hostname 再次確認,tcp連接完成三次握手。
第四行:P:推送數據 ???client.hostname ?通過 50741 端口向 server.hostname 發送數據包;數據包大小是 1005byte ;第五行是 server.hostname 響應這個數據包發送,接收這個數據包。—-> 當完成后會出現一個 server.hostname ????F ??關閉連接的數據包,這里沒有抓取
第6行 ??—->10行是對 1-5行的重復;因為機器是web服務是并發的。
?

更多Linux文章,請訪問Linux教程欄目進行學習!

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享