請問tcpdump跟awk這個指令 - Linux

By Callum
at 2009-12-29T09:09
at 2009-12-29T09:09
Table of Contents
: : 我想要請問tcpdump是否可以一邊監控封包
: : 一邊得知在傳送的過程中是否有封包漏掉的情形
: : 又是在哪一段漏掉的,掉了多少封包?
: 這有點難
: tcp 還有機會 ,
: 檢查各 connection 的 seq/ack num 對應 ,
: 不過就算漏了 , tcp 也會做 retransmission ...
: udp 一般沒有追蹤 session 的機制 (除非 app 自己實作)
: 所以即使掉了也不知道 ...
我正是要追蹤udp封包中間有無掉包
: : 能否請版上的高手幫我解釋一下下面這段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; }
: 前面的 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
請問這個1388是怎麼推出來的?是13880取前面四位數嗎?
substr($8, 0, length($8)-1),中間的參數"0",指的是什麼/
: srand() 一般是在指定亂數的種子 , 不過直接 print 似乎會出現目前的 timestamp
: FNR 表示第幾筆資料
: 整段看起來是在追蹤各封包中 id 欄位是否有依順序在收送(? 不是很確定)
: 但這段 script 基本上做不到檢查封包是否有漏的情況 XD
我以為這段script是來對所收的封包做編號,例如我傳送100筆封包
並且依序做編號,只要發現印出來的數字中間有不連續的情形
就可以認定出在第幾個封包有漏掉的情形
總之謝謝你的幫忙:)
--
雖然離別以後
就無法在相見
可是我一點也不感到寂寞
--
: : 一邊得知在傳送的過程中是否有封包漏掉的情形
: : 又是在哪一段漏掉的,掉了多少封包?
: 這有點難
: tcp 還有機會 ,
: 檢查各 connection 的 seq/ack num 對應 ,
: 不過就算漏了 , tcp 也會做 retransmission ...
: udp 一般沒有追蹤 session 的機制 (除非 app 自己實作)
: 所以即使掉了也不知道 ...
我正是要追蹤udp封包中間有無掉包
: : 能否請版上的高手幫我解釋一下下面這段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; }
: 前面的 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
請問這個1388是怎麼推出來的?是13880取前面四位數嗎?
substr($8, 0, length($8)-1),中間的參數"0",指的是什麼/
: srand() 一般是在指定亂數的種子 , 不過直接 print 似乎會出現目前的 timestamp
: FNR 表示第幾筆資料
: 整段看起來是在追蹤各封包中 id 欄位是否有依順序在收送(? 不是很確定)
: 但這段 script 基本上做不到檢查封包是否有漏的情況 XD
我以為這段script是來對所收的封包做編號,例如我傳送100筆封包
並且依序做編號,只要發現印出來的數字中間有不連續的情形
就可以認定出在第幾個封包有漏掉的情形
總之謝謝你的幫忙:)
--
雖然離別以後
就無法在相見
可是我一點也不感到寂寞
--
Tags:
Linux
All Comments
Related Posts
請問安裝套件會影響到其他人嗎?

By Susan
at 2009-12-29T03:38
at 2009-12-29T03:38
請問tcpdump跟awk這個指令

By Doris
at 2009-12-29T01:27
at 2009-12-29T01:27
請問安裝套件會影響到其他人嗎?

By Michael
at 2009-12-29T01:13
at 2009-12-29T01:13
請問tcpdump跟awk這個指令

By Freda
at 2009-12-28T22:56
at 2009-12-28T22:56
openoffice指定字型

By Mia
at 2009-12-28T21:04
at 2009-12-28T21:04