Re: [問題] 請問tcpdump跟awk這個指令

看板Linux作者 (OuTian)時間16年前 (2009/12/29 04:31), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/5 (看更多)
※ 引述《who4 (哥哥最愛獅子丸了)》之銘言: : 我想要請問tcpdump是否可以一邊監控封包 : 一邊得知在傳送的過程中是否有封包漏掉的情形 : 又是在哪一段漏掉的,掉了多少封包? 這有點難 tcp 還有機會 , 檢查各 connection 的 seq/ack num 對應 , 不過就算漏了 , tcp 也會做 retransmission ... udp 一般沒有追蹤 session 的機制 (除非 app 自己實作) 所以即使掉了也不知道 ... : 還有tcpdump要來看截取udp的封包是不是後面要加udp這個參數? : 像是tcpdump -nv udp 192.168.1.1之類的, tcpdump 後方可以接很多 filter (man tcpdump有) 指定 protocol、host、port、甚至某個 flag 以下的 host 192.168.1.1 and port 1234 則是指 src/dst ip 中有出現 192.168.1.1 這個 ip , 且 src/dst port 中有出現 1234 這個 port 的封包 . : 另外一個是關於awk這個指令 : 能否請版上的高手幫我解釋一下下面這段awk後面的指令是什麼意思 : tcpdump -nv host 192.168.1.1 and port 1234 | awk 'BEGIN{a=0}{n=substr($8, 0, \ : length($8)-1); if (a+1<n) {print srand(),FNR,a,n;}; a=n; } : 因為我沒用awk做過這麼複雜的動作 : 上網查了一下,BEGIN是做初始化的動作 : 但是後面的substr(), length($8), srand(), FNR,實在是超出我能理解的範圍 : 希望有好心人可以告訴我上面這段awk是在做什麼事情 : 謝謝 前面的 tcpdump 出來結果會是類似 04:29:40.806729 IP (tos 0x0, ttl 107, id 13880, offset 0, flags [DF], proto TCP (6), length 48) 192.168.1.1.xxxx > x.x.x.x.xxx ... 黃色那部份就是 awk 取到的 $8 (用空白或tab分欄後的第八個欄位) 所以那段 awk 中的 $8 => 13880 length($8) => 5 substr($8, 0, length($8)-1) => 1388 srand() 一般是在指定亂數的種子 , 不過直接 print 似乎會出現目前的 timestamp FNR 表示第幾筆資料 整段看起來是在追蹤各封包中 id 欄位是否有依順序在收送(? 不是很確定) 但這段 script 基本上做不到檢查封包是否有漏的情況 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.63.56 ※ 編輯: OuTian 來自: 122.116.63.56 (12/29 04:32)

12/29 08:50, , 1F
對!我就是要看封包有無依順序再送來看是否有某段封包掉了
12/29 08:50, 1F
文章代碼(AID): #1BEHMsR_ (Linux)
討論串 (同標題文章)
文章代碼(AID): #1BEHMsR_ (Linux)