Linux下的抓包 tcpdump

公司Linux下socket對接時發現接口中老是報錯,因此研究了一下Linux下的抓包web

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

  1. 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 來看抓包信息,不然可讀性不好】
 socket

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

  1.        包攜帶的標誌:
  • 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服務是併發的。
 server

相關文章
相關標籤/搜索