• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • TCPDUMP中文手冊

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    名稱(NAME) tcpdump-轉儲 網絡 上的數據流 總覽(SYNOPSIS) tcpdump[-adeflnNOpqStvx][-ccount][-Ffile] [-iinterface][-rfile][-ssnaplen] [-Ttype][-wfile][expression] 描述(DESCRIPTION) Tcpdump打印出在某個網絡界面上,匹配布爾表達式expression的報頭.
    名稱(NAME)
    tcpdump-轉儲網絡上的數據流
    總覽(SYNOPSIS)
    tcpdump[-adeflnNOpqStvx][-clearcase/" target="_blank" >ccount][-Ffile]

    [-iinterface][-rfile][-ssnaplen]

    [-Ttype][-wfile][expression]

    描述(DESCRIPTION)
    Tcpdump打印出在某個網絡界面上,匹配布爾表達式expression的報頭.

    對于SunOS的nit或bpf界面:要運行tcpdump,你必須有/dev/nit或/dev/bpf*的讀訪問權限.

    對于Solaris的dlpi:你必須有網絡仿真設備(networkpseudodevice),如/dev/le的讀訪問權限.

    對于HP-UX的dlpi:你必須是root,或者把它安裝成root的設置uid程序.對于IRIX的snoop:你必須是root,或者把它安裝成root的設置uid程序.對于Linux:你必須是root,或者把它安裝成root的設置uid程序.

    對于Ultrix和DigitalUNIX:一旦超級用戶使用pfconfig(8)開放了promiscuous操作模式(promiscuous-mode),任何用戶都可以運行tcpdump.

    對于BSD:你必須有/dev/bpf*的讀訪問權限.


    選項(OPTIONS)
    -a
    試著把網絡和廣播地址轉換成名稱.
    -c
    當收到count報文后退出.
    -d
    把編譯好的報文匹配模板(packet-matchingcode)翻譯成可讀形式,傳往標準輸出,然后退出.
    -dd
    把報文匹配模板(packet-matchingcode)以C程序片斷的形式輸出.
    -ddd
    把報文匹配模板(packet-matchingcode)以十進制數形式輸出(前面加上總數).
    -e
    每行都顯示鏈路層報頭.
    -f
    用數字形式顯示'外部的'互聯網地址,而不是字符形式(這個選項用來繞開腦殼壞光的SUN黃頁服務器的問題---一般說來它翻譯外部網絡數字地址的時候會長期掛起).
    -F
    把file的內容用作過濾表達式.忽略命令行上的表達式.
    -i
    監聽interface.如果不指定接口,tcpdump在系統的接口清單中,尋找號碼最小,已經配置好的接口(loopback除外).選中的時候會中斷連接.
    -l
    行緩沖標準輸出.可用于捕捉數據的同時查看數據.例如,
    ``tcpdump-l|teedat''or``tcpdump-l>dat&tail-fdat''.
    -n
    別把地址轉換成名字(就是說,主機地址,端口號等)
    -N
    不顯示主機名字中的域名部分.例如,如果使用這個選項,tcpdump只顯示``nic'',而不是``nic.ddn.mil''.
    -O
    禁止運行報文匹配模板的優化器.只有當你懷疑優化器有bug時才有用.
    -p
    禁止把接口置成promiscuous模式.注意,接口有可能因其他原因而處于promiscuous模式;因此,'-p'不能作為`etherhost{local-hw-addr}或etherbroadcast'的簡寫.
    -q
    快速輸出.顯示較少的協議信息,輸出行會短一點點.
    -r
    從file中讀入數據報(文件是用-w選項創建的).如果file是``-'',就讀標準輸入.
    -s
    從每個報文中截取snaplen字節的數據,而不是缺省的68(如果是SunOS的NIT,最小值是96).68個字節適用于IP,ICMP,TCP和UDP,但是有可能截掉名字服務器和NFS報文的協議信息(見下面).輸出時如果指定``[|proto]'',tcpdump可以指出那些捕捉量過小的數據報,這里的proto是截斷發生處的協議層名稱.注意,采用更大的捕捉范圍既增加了處理報文的時間,又相應的減少了報文的緩沖數量,可能導致報文的丟失.你應該把snaplen設的盡量小,只要能夠容納你需要的協議信息就可以了.

    -T
    把通過"expression"挑選出來的報文解釋成指定的type.目前已知的類型有:rpc(遠程過程調用RemoteProcedureCall),rtp(實時應用協議Real-TimeApplicationsprotocol),rtcp(實時應用控制協議Real-TimeApplicationscontrolprotocol),vat(可視音頻工具VisualAudioTool),和wb(分布式白板distributedWhiteBoard).
    -S
    顯示絕對的,而不是相對的TCP序列號.
    -t
    禁止顯示時戳標志.
    -tt
    顯示未格式化的時戳標志.
    -v
    (稍微多一點)繁瑣的輸出.例如,顯示IP數據報中的生存周期和服務類型.
    -vv
    更繁瑣的輸出.例如,顯示NFS應答報文的附加域.
    -w
    把原始報文存進file,而不是分析和顯示.它們可以以后用-r選項顯示.如果file是``-'',就寫往標準輸出.
    -x
    以16進制數形式顯示每一個報文(去掉鏈路層報頭后).可以顯示較小的完整報文,否則只顯示snaplen個字節.
    expression
    用來選擇要轉儲的數據報.如果沒有指定expression,就轉儲網絡的全部報文.否則,只轉儲相對expression為`true'的數據報.
    expression一個或多個原語(primitive)組成.原語通常由一個標識(id,名稱或數字),和標識前面的一個或多個修飾子(qualifier)組成.修飾子有三種不同的類型:

    type
    類型修飾子指出標識名稱或標識數字代表什么類型的東西.可以使用的類型有host,net和port.例如,`hostfoo',`net128.3',`port20'.如果不指定類型修飾子,就使用缺省的host.

    dir
    方向修飾子指出相對于標識的傳輸方向(數據是傳入還是傳出標識).可以使用的方向有src,dst,srcordst和srcanddst.例如,`srcfoo',`dstnet128.3',`srcordstportftp-data'.如果不指定方向修飾子,就使用缺省的srcordst.對于`null'鏈路層(就是說象slip之類的點到點協議),用inbound和outbound修飾子指定所需的傳輸方向.
    proto
    協議修飾子要求匹配指定的協議.可以使用的協議有:ether,fddi,ip,arp,rarp,decnet,lat,sca,moprc,mopdl,tcp和udp.例如,`ethersrcfoo',`arpnet128.3',`tcpport21'.如果不指定協議修飾子,就使用所有符合類型的協議.例如,`srcfoo'指`(ip或arp或rarp)srcfoo'(注意后者不符合語法),`netbar'指`(ip或arp或rarp)netbar',`port53'指`(tcp或udp)port53'.
    [`fddi'實際上是`ether'的別名;分析器把它們視為``用在指定網絡接口上的數據鏈路層.''FDDI報頭包含類似于以太協議的源目地址,而且通常包含類似于以太協議的報文類型,因此你可以過濾FDDI域,就象分析以太協議一樣.FDDI報頭也包含其他域,但是你不能在過濾器表達式里顯式描述.]


    作為上述的補充,有一些特殊的`原語'關鍵字,它們不同于上面的模式:gateway,broadcast,less,greater和數學表達式.這些在后面有敘述.

    更復雜的過濾器表達式可以通過and,or和not連接原語來組建.例如,`hostfooandnotportftpandnotportftp-data'.為了少敲點鍵,可以忽略相同的修飾子.例如,`tcpdstportftporftp-dataordomain'實際上就是`tcpdstportftportcpdstportftp-dataortcpdstportdomain'.

    允許的原語有:

    dsthosthost
    如果報文中IP的目的地址域是host,則邏輯為真.host既可以是地址,也可以是主機名.
    srchosthost
    如果報文中IP的源地址域是host,則邏輯為真.
    hosthost
    如果報文中IP的源地址域或者目的地址域是host,則邏輯為真.上面所有的host表達式都可以加上ip,arp,或rarp關鍵字做前綴,就象:
    iphosthost

    它等價于:
    etherproto\ipandhosthost

    如果host是擁有多個IP地址的主機名,它的每個地址都會被查驗.

    etherdstehost
    如果報文的以太目的地址是ehost,則邏輯為真.Ehost既可以是名字(/etc/ethers里有),也可以是數字(有關數字格式另見ethers(3N)).
    ethersrcehost
    如果報文的以太源地址是ehost,則邏輯為真.
    etherhostehost
    如果報文的以太源地址或以太目的地址是ehost,則邏輯為真.
    gatewayhost
    如果報文把host當做網關,則邏輯為真.也就是說,報文的以太源或目的地址是host,但是IP的源目地址都不是host.host必須是個主機名,而且必須存在/etc/hosts和/etc/ethers中.(一個等價的表達式是
    etherhostehostandnothosthost

    對于host/ehost,它既可以是名字,也可以是數字.)
    dstnetnet
    如果報文的IP目的地址屬于網絡號net,則邏輯為真.net既可以是名字(存在/etc/networks中),也可以是網絡號.(詳見networks(4)).
    srcnetnet
    如果報文的IP源地址屬于網絡號net,則邏輯為真.
    netnet
    如果報文的IP源地址或目的地址屬于網絡號net,則邏輯為真.
    netnetmaskmask
    如果IP地址匹配指定網絡掩碼(netmask)的net,則邏輯為真.本原語可以用src或dst修飾.
    netnet/len
    如果IP地址匹配指定網絡掩碼的net,則邏輯為真,掩碼的有效位寬為len.本原語可以用src或dst修飾.
    dstportport
    如果報文是ip/tcp或ip/udp,并且目的端口是port,則邏輯為真.port是一個數字,也可以是/etc/services中說明過的名字(參看tcp(4P)和udp(4P)).如果使用名字,則檢查端口號和協議.如果使用數字,或者有二義的名字,則只檢查端口號(例如,dstport513將顯示tcp/login的數據和udp/who的數據,而portdomain將顯示tcp/domain和udp/domain的數據).
    srcportport
    如果報文的源端口號是port,則邏輯為真.
    portport
    如果報文的源端口或目的端口是port,則邏輯為真.上述的任意一個端口表達式都可以用關鍵字tcp或udp做前綴,就象:
    tcpsrcportport

    它只匹配源端口是port的TCP報文.
    lesslength
    如果報文的長度小于等于length,則邏輯為真.它等同于:
    len<=length.

    greaterlength
    如果報文的長度大于等于length,則邏輯為真.它等同于:
    len>=length.

    ipprotoprotocol
    如果報文是IP數據報(參見ip(4P)),其內容的協議類型是protocol,則邏輯為真.Protocol可以是數字,也可以是下列名稱中的一個:icmp,igrp,udp,nd,或tcp.注意這些標識符tcp,udp,和icmp也同樣是關鍵字,所以必須用反斜杠(\)轉義,在C-shell中應該是\\.
    etherbroadcast
    如果報文是以太廣播報文,則邏輯為真.關鍵字ether是可選的.
    ipbroadcast
    如果報文是IP廣播報文,則邏輯為真.Tcpdump檢查全0和全1廣播約定,并且檢查本地的子網掩碼.
    ethermulticast
    如果報文是以太多目傳送報文(multicast),則邏輯為真.關鍵字ether是可選的.這實際上是`ether[0]&1!=0'的簡寫.
    ipmulticast
    如果報文是IP多目傳送報文,則邏輯為真.
    etherprotoprotocol
    如果報文協議屬于以太類型的protocol,則邏輯為真.Protocol可以是數字,也可以是名字,如ip,arp,或rarp.注意這些標識符也是關鍵字,所以必須用反斜杠(\)轉義.[如果是FDDI(例如,`fddiprotocolarp'),協議標識來自802.2邏輯鏈路控制(LLC)報頭,它通常位于FDDI報頭的頂層.當根據協議標識過濾報文時,Tcpdump假設所有的FDDI報文含有LLC報頭,而且LLC報頭用的是SNAP格式.]

    decnetsrchost
    如果DECNET的源地址是host,則邏輯為真,該主機地址的形式可能是``10.123'',或者是DECNET主機名.[只有配置成運行DECNET的Ultrix系統支持DECNET主機名.]
    decnetdsthost
    如果DECNET的目的地址是host,則邏輯為真.
    decnethosthost
    如果DECNET的源地址或目的地址是host,則邏輯為真.
    ip,arp,rarp,decnet
    是:
    etherprotop

    的簡寫形式,其中p為上述協議的一種.
    lat,moprc,mopdl
    是:
    etherprotop

    的簡寫形式,其中p為上述協議的一種.注意tcpdump目前不知道如何分析這些協議.
    tcp,udp,icmp
    是:
    ipprotop

    的簡寫形式,其中p為上述協議的一種.
    exprrelopexpr
    如果這個關系成立,則邏輯為真,其中relop是>,<,>=,<=,=,!=之一,expr是數學表達式,由常整數(標準C語法形式),普通的二進制運算符[+,-,*,/,&,|],一個長度運算符,和指定的報文數據訪問算符組成.要訪問報文內的數據,使用下面的語法:
    proto[expr:size]

    Proto是ether,fddi,ip,arp,rarp,tcp,udp,oricmp之一,同時也指出了下標操作的協議層.expr給出字節單位的偏移量,該偏移量相對于指定的協議層.Size是可選項,指出感興趣的字節數;它可以是1,2,4,缺省為1字節.由關鍵字len給出的長度運算符指明報文的長度.
    例如,`ether[0]&1!=0'捕捉所有的多目傳送報文.表達式`ip[0]&0xf!=5'捕捉所有帶可選域的IP報文.表達式`ip[6:2]&0x1fff=0'只捕捉未分片和片偏移為0的數據報.這種檢查隱含在tcp和udp下標操作中.例如,tcp[0]一定是TCP報頭的第一個字節,而不是其中某個IP片的第一個字節.

    原語可以用下述方法結合使用:

    園括弧括起來的原語和操作符(園括弧在Shell中有專用,所以必須轉義).
    取反操作(`!'or`not').
    連結操作(`&&'or`and').
    或操作(`||'or`or').
    取反操作有最高優先級.或操作和連結操作有相同的優先級,運算時從左到右結合.注意連結操作需要顯式的and算符,而不是并列放置.

    如果給出標識符,但沒給關鍵字,那么暗指最近使用的關鍵字.例如,

    nothostvsandace

    作為
    nothostvsandhostace

    的簡寫形式,不應該和
    not(hostvsorace)

    混淆.
    表達式參數可以作為單個參數傳給tcpdump,也可以作為復合參數,后者更方便一些.一般說來,如果表達式包含Shell元字符(metacharacter),傳遞單個括起來的參數要容易一些.復合參數在被解析前用空格聯接一起.


    示例(EXAMPLES)
    顯示所有進出sundown的報文:

    tcpdumphostsundown

    顯示helios和主機hot,ace之間的報文傳送:

    tcpdumphostheliosand\(hotorace\)

    顯示ace和除了helios以外的所有主機的IP報文:

    tcpdumpiphostaceandnothelios

    顯示本地的主機和Berkeley的主機之間的網絡數據:

    tcpdumpnetucb-ether

    顯示所有通過網關snup的ftp報文(注意這個表達式被單引號括起,防止shell解釋園括弧):

    tcpdump'gatewaysnupand(portftporftp-data)'

    顯示既不是來自本地主機,也不是傳往本地主機的網絡數據(如果你把網關通往某個其他網絡,這個做法將不會把數據發往你的本地網絡).

    tcpdumpipandnotnetlocalnet

    顯示每個TCP會話的起始和結束報文(SYN和FIN報文),而且會話方中有一個遠程主機.

    tcpdump'tcp[13]&3!=0andnotsrcanddstnetlocalnet'

    顯示經過網關snup中大于576字節的IP數據報:

    tcpdump'gatewaysnupandip[2:2]>576'

    顯示IP廣播或多目傳送的數據報,這些報文不是通過以太網的廣播或多目傳送形式傳送的:

    tcpdump'ether[0]&1=0andip[16]>=224'

    顯示所有不是回響請求/應答的ICMP報文(也就是說,不是ping報文):

    tcpdump'icmp[0]!=8andicmp[0]!=0"

    輸出格式(OUTPUTFORMAT)
    tcpdump的輸出格式取決于協議.下面的描述給出大多數格式的簡要說明和范例.

    鏈路層報頭(LinkLevelHeaders)

    如果給出'-e'選項就顯示鏈路層報頭.在以太網上,顯示報文的源目地址,協議和報文長度.

    在FDDI網絡上,'-e'選項導致tcpdump顯示出`幀控制(framecontrol)'域,源目地址和報文長度.(`幀控制'域負責解釋其余的報文.普通報文(比如說載有IP數據報)是`異步'報文,優先級介于0到7;例如,`async4'.這些被認為載有802.2邏輯鏈路控制(LLC)報文;如果它們不是ISO數據報或者所謂的SNAP報文,就顯示出LLC報頭.

    (注意:以下描述中假設你熟悉RFC-1144中說明的SLIP壓縮算法.)

    在SLIP鏈路上,tcpdump顯示出方向指示(``I''指inbound,``O''指outbound),報文類型和壓縮信息.首先顯示的是報文類型.有三種類型ip,utcp和ctcp.對于ip報文不再顯示更多的鏈路信息.對于TCP報文,在類型后面顯示連接標識.如果報文是壓縮過的,就顯示出編碼的報頭.特殊情形以*S+n和*SA+n的形式顯示,這里的n是順序號(或順序號及其確認)發生的改變總和.如果不是特殊情形,就顯示0或多少個改變.改變由U(urgentpointer),W(window),A(ack),S(sequencenumber)和I(packetID)指明,后跟一個變化量(+nor-n),或另一個值(=n).最后顯示報文中的數據總和,以及壓縮報頭的長度.

    例如,下面一行顯示了一個傳出的壓縮的TCP報文,有一個隱含的連接標識;確認(ack)的變化量是6,順序號是49,報文ID是6;有三個字節的數據和六個字節的壓縮報頭:

    Octcp*A+6S+49I+63(6)

    ARP/RARP報文

    Arp/rarp報文的輸出顯示請求類型及其參數.輸出格式傾向于能夠自我解釋.這里是一個簡單的例子,來自主機rtsg到主機csam的'rlogin'開始部分:

    arpwho-hascsamtellrtsg
    arpreplycsamis-atCSAM


    第一行說明rtsg發出一個arp報文詢問internet主機csam的以太網地址.Csam用它的以太地址作應答(這個例子中,以太地址是大寫的,internet地址為小寫).
    如果用tcpdump-n看上去要清楚一些:

    arpwho-has128.3.254.6tell128.3.254.68
    arpreply128.3.254.6is-at02:07:01:00:01:c4

    如果用tcpdump-e,可以看到實際上第一個報文是廣播,第二個報文是點到點的:

    RTSGBroadcast080664:arpwho-hascsamtellrtsg
    CSAMRTSG080664:arpreplycsamis-atCSAM


    這里第一個報文指出以太網源地址是RTSG,目的地址是以太網廣播地址,類型域為16進制數0806(類型ETHER_ARP),報文全長64字節.
    TCP報文

    (注意:以下的描述中假設你熟悉RFC-793中說明的TCP協議,如果你不了解這個協議,無論是本文還是tcpdump都對你用處不大)

    一般說來tcp協議的輸出格式是:

    src>dst:flagsdata-seqnoackwindowurgentoptions


    Src和dst是源目IP地址和端口.Flags是S(SYN),F(FIN),P(PUSH)或R(RST)或單獨的`.'(無標志),或者是它們的組合.Data-seqno說明了本報文中的數據在流序號中的位置(見下例).Ack是在這條連接上信源機希望下一個接收的字節的流序號(sequencenumber).Window是在這條連接上信源機接收緩沖區的字節大小.Urg表明報文內是`緊急(urgent)'數據.Options是tcp可選報頭,用尖括號括起(例如,).
    Src,dst和flags肯定存在.其他域依據報文的tcp報頭內容,只輸出有必要的部分.

    下面是從主機rtsgrlogin到主機csam的開始部分.

    rtsg.1023>csam.login:S768512:768512(0)win4096
    csam.login>rtsg.1023:S947648:947648(0)ack768513win4096
    rtsg.1023>csam.login:.ack1win4096
    rtsg.1023>csam.login:P1:2(1)ack1win4096
    csam.login>rtsg.1023:.ack2win4096
    rtsg.1023>csam.login:P2:21(19)ack1win4096
    csam.login>rtsg.1023:P1:2(1)ack21win4077
    csam.login>rtsg.1023:P2:3(1)ack21win4077urg1
    csam.login>rtsg.1023:P3:4(1)ack21win4077urg1


    第一行是說從rtsg的tcp端口1023向csam的login端口發送報文.S標志表明設置了SYN標志.報文的流序號是768512,沒有數據.(這個寫成`first:last(nbytes)',意思是`從流序號first到last,不包括last,有nbytes字節的用戶數據'.)此時沒有捎帶確認(piggy-backedack),有效的接收窗口是4096字節,有一個最大段大小(max-segment-size)的選項,請求設置mss為1024字節.
    Csam用類似的形式應答,只是增加了一個對rtsgSYN的捎帶確認.然后Rtsg確認csam的SYN.`.'意味著沒有設置標志.這個報文不包含數據,因此也就沒有數據的流序號.注意這個確認流序號是一個小整數(1).當tcpdump第一次發現一個tcp會話時,它顯示報文攜帶的流序號.在隨后收到的報文里,它顯示當前報文和最初那個報文的流序號之差.這意味著從第一個報文開始,以后的流序號可以理解成數據流中的相對位移asrelativebytepositionsintheconversation'sdatastream(withthefirstdatabyteeachdirectionbeing`1').`-S'選項能夠改變這個特性,直接顯示原始的流序號.

    在第六行,rtsg傳給csam19個字節的數據(字節2到20).報文中設置了PUSH標志.第七行csam表明它收到了rtsg的數據,字節序號是21,但不包括第21個字節.顯然大多數數據在socket的緩沖區內,因為csam的接收窗口收到的數據小于19個字節.同時csam向rtsg發送了一個字節的數據.第八和第九行顯示csam發送了兩個字節的緊急數據到rtsg.

    如果捕捉區設置的過小,以至于tcpdump不能捕捉到完整的TCP報頭,tcpdump會盡可能的翻譯已捕獲的部分,然后顯示``[|tcp]'',表明無法翻譯其余部分.如果報頭包含一個偽造的選項(onewithalengththat'seithertoosmallorbeyondtheendoftheheader),tcpdump顯示``[badopt]''并且不再翻譯其他選項部分(因為它不可能判斷出從哪兒開始).如果報頭長度表明存在選項,但是IP數據報長度不夠,不可能真的保存選項,tcpdump就顯示``[badhdrlength]''.

    UDP報文

    UDP格式就象這個rwho報文顯示的:

    actinide.who>broadcast.who:udp84


    就是說把一個udp數據報從主機actinide的who端口發送到broadcast,Internet廣播地址的who端口.報文包含84字節的用戶數據.
    某些UDP服務能夠識別出來(從源目端口號上),因而顯示出更高層的協議信息.特別是域名服務請求(RFC-1034/1035)和NFS的RPC調用(RFC-1050).

    UDP域名服務請求(NameServerRequests)

    (注意:以下的描述中假設你熟悉RFC-1035說明的域名服務協議.如果你不熟悉這個協議,下面的內容就象是天書.)

    域名服務請求的格式是

    src>dst:idop?flagsqtypeqclassname(len)

    h2opolo.1538>helios.domain:3+A?ucbvax.berkeley.edu.(37)

    主機h2opolo訪問helios上的域名服務,詢問和ucbvax.berkeley.edu.關聯的地址記錄(qtype=A).查詢號是`3'.`+'表明設置了遞歸請求標志.查詢長度是37字節,不包括UDP和IP頭.查詢操作是普通的Query操作,因此op域可以忽略.如果op設置成其他什么東西,它應該顯示在`3'和`+'之間.類似的,qclass是普通的C_IN類型,也被忽略了.其他類型的qclass應該在`A'后面顯示.
    Tcpdump會檢查一些不規則情況,相應的結果作為補充域放在方括號內:如果某個查詢包含回答,名字服務或管理機構部分,就把ancount,nscount,或arcount顯示成`[na]',`[nn]'或`[nau]',這里的n代表相應的數量.如果在第二和第三字節中,任何一個回答位(AA,RA或rcode)或任何一個`必須為零'的位被置位,就顯示`[b2&3=x]',這里的x是報頭第二和第三字節的16進制數.

    UDP名字服務回答

    名字服務回答的格式是

    src>dst:idoprcodeflagsa/n/autypeclassdata(len)

    helios.domain>h2opolo.1538:33/3/7A128.32.137.3(273)
    helios.domain>h2opolo.1537:2NXDomain*0/1/0(97)


    第一個例子里,helios回答了h2opolo發出的標識為3的詢問,一共是3個回答記錄,3個名字服務記錄和7個管理結構記錄.第一個回答紀錄的類型是A(地址),數據是internet地址128.32.137.3.回答的全長為273字節,不包括UDP和IP報頭.作為A記錄的class(C_IN)可以忽略op(詢問)和rcode(NoError).
    在第二個例子里,helios對標識為2的詢問作出域名不存在(NXDomain)的回答,沒有回答記錄,一個名字服務記錄,而且沒有管理結構.
    `*'表明設置了權威回答(authoritativeanswer).由于沒有回答記錄,這里就不顯示type,class和data.

    其他標志字符可以顯示為`-'(沒有設置遞歸有效(RA))和`|'(設置消息截短(TC)).如果`問題'部分沒有有效的內容,就顯示`[nq]'.

    注意名字服務的詢問和回答一般說來比較大,68字節的snaplen可能無法捕捉到足夠的報文內容.如果你的確在研究名字服務的情況,可以使用-s選項增大捕捉緩沖區.`-s128'應該效果不錯了.


    NFS請求和響應

    SunNFS(網絡文件系統)的請求和響應顯示格式是:

    src.xid>dst.nfs:lenopargs
    src.nfs>dst.xid:replystatlenopresults


    sushi.6709>wrl.nfs:112readlinkfh21,24/10.73165
    wrl.nfs>sushi.6709:replyok40readlink"../var"
    sushi.201b>wrl.nfs:
    144lookupfh9,74/4096.6878"xcolors"
    wrl.nfs>sushi.201b:
    replyok128lookupfh9,74/4134.3150

    在第一行,主機sushi向wrl發送號碼為6709的交易會話(注意源主機后面的數字是交易號,不是端口).這項請求長112字節,不包括UDP和IP報頭.在文件句柄(fh)21,24/10.731657119上執行readlink(讀取符號連接)操作.(如果運氣不錯,就象這種情況,文件句柄可以依次翻譯成主次設備號,i節點號,和事件號(generationnumber).)Wrl回答`ok'和連接的內容.
    在第三行,sushi請求wrl在目錄文件9,74/4096.6878中查找`xcolors'.注意數據的打印格式取決于操作類型.格式應該是可以自我說明的.

    給出-v(verbose)選項可以顯示附加信息.例如:


    sushi.1372a>wrl.nfs:
    148readfh21,11/12.1958192bytes@24576
    wrl.nfs>sushi.1372a:
    replyok1472readREG100664ids417/0sz29388

    (-v同時使它顯示IP報頭的TTL,ID,和分片域,在這個例子里把它們省略了.)在第一行,sushi請求wrl從文件21,11/12.195的偏移位置24576開始,讀取8192字節.Wrl回答`ok';第二行顯示的報文是應答的第一個分片,因此只有1472字節(其余數據在后續的分片中傳過來,但由于這些分片里沒有NFS甚至UDP報頭,因此根據所使用的過濾器表達式,有可能不顯示).-v選項還會顯示一些文件屬性(它們作為文件數據的附帶部分傳回來):文件類型(普通文件``REG''),存取模式(八進制數),uid和gid,以及文件大小.
    如果再給一個-v選項(-vv),還能顯示更多的細節.

    注意NFS請求的數據量非常大,除非增加snaplen,否則很多細節無法顯示.試一試`-s192'選項.

    NFS應答報文沒有明確標明RPC操作.因此tcpdump保留有``近來的''請求記錄,根據交易號匹配應答報文.如果應答報文沒有相應的請求報文,它就無法分析.

    KIPAppletalk(UDP上的DDP)

    AppletalkDDP報文封裝在UDP數據報中,解包后按DDP報文轉儲(也就是說,忽略所有的UDP報頭信息).文件/etc/atalk.names用來把appletalk網絡和節點號翻譯成名字.這個文件的行格式是

    numbername

    1.254ether
    16.1icsd-net
    1.254.110ace


    前兩行給出了appletalk的網絡名稱.第三行給出某個主機的名字(主機和網絡依據第三組數字區分-網絡號一定是兩組數字,主機號一定是三組數字.)號碼和名字用空白符(空格或tab)隔開./etc/atalk.names文件可以包含空行或注釋行(以`#'開始的行).
    Appletalk地址按這個格式顯示

    net.host.port

    144.1.209.2>icsd-net.112.220
    office.2>icsd-net.112.220
    jssmag.149.235>icsd-net.2


    (如果不存在/etc/atalk.names,或者里面缺少有效項目,就以數字形式顯示地址.)第一個例子里,網絡144.1的209節點的NBP(DDP端口2)向網絡icsd的112節點的220端口發送數據.第二行和上面一樣,只是知道了源節點的全稱(`office').第三行是從網絡jssmag的149節點的235端口向icsd-net的NBP端口廣播(注意廣播地址(255)隱含在無主機號的網絡名字中-所以在/etc/atalk.names中區分節點名和網絡名是個好主意).
    Tcpdump可以翻譯NBP(名字聯結協議)和ATP(Appletalk交互協議)的報文內容.其他協議只轉儲協議名稱(或號碼,如果還沒給這個協議注冊名稱)和報文大小.

    NBP報文的輸出格式就象下面的例子:

    icsd-net.112.220>jssmag.2:nbp-lkup190:"=:LaserWriter@*"
    jssmag.209.2>icsd-net.112.220:nbp-reply190:"RM1140:LaserWriter@*"250
    techpit.2>icsd-net.112.220:nbp-reply190:"techpit:LaserWriter@*"186


    第一行是網絡icsd的112主機在網絡jssmag上的廣播,對名字laserwriter做名字查詢請求.名字查詢請求的nbp標識號是190.第二行顯示的是對這個請求的回答(注意它們有同樣的標識號),主機jssmag.209表示在它的250端口注冊了一個laserwriter的資源,名字是"RM1140".第三行是這個請求的其他回答,主機techpit的186端口有laserwriter注冊的"techpit".
    ATP報文格式如下例所示:

    jssmag.209.165>helios.132:atp-req12266<0-7>0xae030001
    helios.132>jssmag.209.165:atp-resp12266:0(512)0xae040000
    helios.132>jssmag.209.165:atp-resp12266:1(512)0xae040000
    helios.132>jssmag.209.165:atp-resp12266:2(512)0xae040000
    helios.132>jssmag.209.165:atp-resp12266:3(512)0xae040000
    helios.132>jssmag.209.165:atp-resp12266:4(512)0xae040000
    helios.132>jssmag.209.165:atp-resp12266:5(512)0xae040000
    helios.132>jssmag.209.165:atp-resp12266:6(512)0xae040000
    helios.132>jssmag.209.165:atp-resp*12266:7(512)0xae040000
    jssmag.209.165>helios.132:atp-req12266<3,5>0xae030001
    helios.132>jssmag.209.165:atp-resp12266:3(512)0xae040000
    helios.132>jssmag.209.165:atp-resp12266:5(512)0xae040000
    jssmag.209.165>helios.132:atp-rel12266<0-7>0xae030001
    jssmag.209.133>helios.132:atp-req*12267<0-7>0xae030002


    Jssmag.209向主機helios發起12266號交易,請求8個報文(`<0-7>').行尾的十六進制數是請求中`userdata'域的值.

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>