`

tcpdump网摘

阅读更多
第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.

第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。

第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定 的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和 分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。
    除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'or' ,'││';这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。
    普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
# tcpdump
tcpdump: listening on fxp0
11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50
11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43
                         0000 0000 0080 0000 1007 cf08 0900 0000
                         0e80 0000 902b 4695 0980 8701 0014 0002
                         000f 0000 902b 4695 0008 00
11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97
                         ffff 0060 0004 ffff ffff ffff ffff ffff
                         0452 ffff ffff 0000 e85b 6d85 4008 0002
                         0640 4d41 5354 4552 5f57 4542 0000 0000
                         0000 00
使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存

   A想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
#tcpdump host 210.27.48.1

B想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用   括号时,一定要
#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)

C如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2

D如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1

E 对本机的udp 123 端口进行监视 123 为ntp的服务端口
# tcpdump udp port 123
 
F 系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:
#tcpdump -i eth0 src host hostname

G 下面的命令可以监视所有送到主机hostname的数据包:
#tcpdump -i eth0 dst host hostname

H  我们还可以监视通过指定网关的数据包:
#tcpdump -i eth0 gateway Gatewayname

I 如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令:
#tcpdump -i eth0 host hostname and port 80

J 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包
,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2

K 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令
:(在命令行中适用   括号时,一定要
#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)

L 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
   #tcpdump ip host 210.27.48.1 and ! 210.27.48.2

M 如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
   #tcpdump tcp port 23 host 210.27.48.1


第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,
greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'o
r' ,'||';
第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,
如果我们只需要列出送到80端口的数据包,用dst port;如果我们只希望看到返回80端口的数据包,用src port。
#tcpdump –i eth0 host hostname and dst port 80  目的端口是80
或者
#tcpdump –i eth0 host hostname and src port 80  源端口是80  一般是提供http的服务的主机
如果条件很多的话  要在条件之前加and 或 or 或 not
#tcpdump -i eth0 host ! 211.161.223.70 and ! 211.161.223.71 and dst port 80



如果在ethernet 使用混杂模式 系统的日志将会记录

May  7 20:03:46 localhost kernel: eth0: Promiscuous mode enabled.
May  7 20:03:46 localhost kernel: device eth0 entered promiscuous mode
May  7 20:03:57 localhost kernel: device eth0 left promiscuous mode


tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。


-----------------------------


Linux下的sniffer工具--Tcpdump的安装和使用
本文出自:http://www.china-pub.com 作者: 李国莉 (2001-09-11 15:00:00)
在如今众多的黑客技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览无余!Sniffer工具实际上就是一个网络上的抓包工具,同时还可以对抓到的包进行分析。由于在共享式的网络中,信息包是会广播到网络中所有主机的网络接口,只不过在没有使用sniffer工具之前,主机的网络设备会判断该信息包是否应该接收,这样它就会抛弃不应该接收的信息包,sniffer工具却使主机的网络设备接收所有到达的信息包,这样就达到了网络监听的效果。其实,sniffer工具既可以适合于黑客的使用,也同样有利于网络管理员和网络程序员。对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过sniffer工具来分析原因,找出造成网络阻塞的来源。对于网络程序员来说,通过sniffer工具来调试程序。
  下面就向大家介绍一个在linux下优秀的嗅探器-------tcpdump.(我们下面的操作都在redhat 6.2 linux 2.2.14的环境中经过实际测试.)

一. Tcpdump的安装
  在linux下tcpdump的安装十分简单,一般由两种安装方式。一种是以rpm包的形式来进行安装。另外一种是以源程序的形式安装。
  1. rpm包的形式安装
  这种形式的安装是最简单的安装方法,rpm包是将软件编译后打包成二进制的格式,通过rpm命令可以直接安装,不需要修改任何东西。以超级用户登录,使用命令如下:
    #rpm -ivh tcpdump-3_4a5.rpm
  这样tcpdump就顺利地安装到你的linux系统中。怎么样,很简单吧。
  2. 源程序的安装
  既然rpm包的安装很简单,为什么还要采用比较复杂的源程序安装呢?其实,linux一个最大的诱人之处就是在她上面有很多软件是提供源程序的,人们可以修改源程序来满足自己的特殊的需要。所以我特别建议朋友们都采取这种源程序的安装方法。
  · 第一步 取得源程序 在源程序的安装方式中,我们首先要取得tcpdump的源程序分发包,这种分发包有两种    形式,一种是tar压缩包(tcpdump-3_4a5.tar.Z),另一种是rpm的分发包(tcpdump-3_4a5.src.rpm)。这两种     形式的内容都是一样的,不同的仅仅是压缩的方式.tar的压缩包可以使用如下命令解开:
     #tar xvfz tcpdump-3_4a5.tar.Z
    rpm的包可以使用如下命令安装:
     #rpm -ivh tcpdump-3_4a5.src.rpm
    这样就把tcpdump的源代码解压到/usr/src/redhat/SOURCES目录下.

  · 第二步 做好编译源程序前的准备活动
    在编译源程序之前,最好已经确定库文件libpcap已经安装完毕,这个库文件是tcpdump软件所需的库文件     。同样,你同时还要有一个标准的c语言编译器。在linux下标准的c 语言编译器一般是gcc。 在tcpdump的    源程序目录中。有一个文件是Makefile.in,configure命令就是从Makefile.in文件中自动产生Makefile文    件。在Makefile.in文件中,可以根据系统的配置来修改BINDEST 和 MANDEST 这两个宏定义,缺省值是
      BINDEST = @sbindir@
      MANDEST = @mandir@
    第一个宏值表明安装tcpdump的二进制文件的路径名,第二个表明tcpdump的man 帮助页的路径名,你可以修    改它们来满足系统的需求。

  · 第三步 编译源程序
    使用源程序目录中的configure脚本,它从系统中读出各种所需的属性。并且根据Makefile.in文件自动生    成Makefile文件,以便编译使用.make 命令则根据Makefile文件中的规则编译tcpdump的源程序。使用make     install命令安装编译好的tcpdump的二进制文件。
    总结一下就是:
      # tar xvfz tcpdump-3_4a5.tar.Z
      # vi Makefile.in
      # . /configure
      # make
      # make install

二. Tcpdump的使用
  tcpdump采用命令行方式,它的命令格式为:
  tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
          [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
          [ -T 类型 ] [ -w 文件名 ] [表达式 ]

  1. tcpdump的选项介绍
   -a    将网络地址和广播地址转变成名字;
   -d    将匹配信息包的代码以人们能够理解的汇编格式给出;
   -dd    将匹配信息包的代码以c语言程序段的格式给出;
   -ddd    将匹配信息包的代码以十进制的形式给出;
   -e    在输出行打印出数据链路层的头部信息;
   -f    将外部的Internet地址以数字的形式打印出来;
   -l    使标准输出变为缓冲行形式;
   -n    不把网络地址转换成名字;
   -t    在输出的每一行不打印时间戳;
   -v    输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
   -vv    输出详细的报文信息;
   -c    在收到指定的包的数目后,tcpdump就会停止;
   -F    从指定的文件中读取表达式,忽略其它的表达式;
   -i    指定监听的网络接口;
   -r    从指定的文件中读取包(这些包一般通过-w选项产生);
   -w    直接将包写入文件中,并不分析和打印出来;
   -T    将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程 调用)和snmp(简单       网络管理协议;)

  2. tcpdump的表达式介绍
   表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。
   在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.
   第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。
   第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。
   除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'or' ,'||';
   这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。
   (1)想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
    #tcpdump host 210.27.48.1
   (2) 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用   括号时,一定要
    #tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)
   (3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
    #tcpdump ip host 210.27.48.1 and ! 210.27.48.2
    #tcpdump tcp port 23 host 210.27.48.1

   (4)如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
  3. tcpdump 的输出结果介绍
   下面我们介绍几种典型的tcpdump命令的输出信息
   (1) 数据链路层头信息
   使用命令#tcpdump --e host ice
   ice 是一台装有linux的主机,她的MAC地址是0:90:27:58:AF:1A
   H219是一台装有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一条命令的输出结果如下所示:
21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ice.telne
t 0:0(0) ack 22535 win 8760 (DF)
  分析:21:50:12是显示的时间, 847509是ID号,eth0 <表示从网络接口eth0 接受该数据包,eth0 >表示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它表明是从源地址H219发来的数据包. 0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的目的地址是ICE . ip 是表明该数据包是IP数据包,60 是数据包的长度, h219.33357 > ice.telnet 表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口. ack 22535 表明对序列号是222535的包进行响应. win 8760表明发送窗口的大小是8760.

  (2) ARP包的TCPDUMP输出信息
   使用命令#tcpdump arp
   得到的输出结果是:
  22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)
  22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af:1a)
  分析: 22:32:42是时间戳, 802509是ID号, eth0 >表明从主机发出该数据包, arp表明是ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0:90:27:58:af:1a是主机ICE的MAC地址。

  (3) TCP包的输出信息
   用TCPDUMP捕获的TCP包的一般输出信息是:
  src > dst: flags data-seqno ack window urgent options
  src > dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标志, F (FIN), P (PUSH) , R (RST) "." (没有标记); data-seqno是数据包中的数据的顺序号, ack是下次期望的顺序号, window是接收缓存的窗口大小, urgent表明数据包中是否有紧急指针. Options是选项.

  (4) UDP包的输出信息
   用TCPDUMP捕获的UDP包的一般输出信息是:
  route.port1 > ice.port2: udp lenth
  UDP十分简单,上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机ICE的port2端口,类型是UDP, 包的长度是lenth

  上面,我就详细介绍了TCPDUMP的安装和使用,希望会对大家有所帮助。如果想要熟练运用TCPDUMP这个LINUX环境下的SNIFFER利器,还需要大家在实践中总结经验,充分发挥它的威力。
  
  _--------------------------
  
  Tcpdump 的用法
2011-05-26 20:34

1. tcpdump -D 获取网络适配器列表,以下是在windows上获取到的结果:

1.\Device\PssdkLoopback (PSSDK Loopback Ethernet Emulation Adapter)
2.\Device\{CF587901-C85F-4FD6-896F-D977DEFE76EC} (Intel(R) PRO/100 VE Network Co
nnection)

2. tcpdump -i <需要监控的网络适配器编号>,例如我想监控lo(127.0.0.1),即上面列表中的1.\Device\PssdkLoopback: (windows上特有的,linux不适用)

tcpdump -i 1

如果不使用-i来定义监控适配器的话,默认使用列表中的第一个;

3. 监控主机为192.9.200.59上8000端口的tcp协议:

tcpdump host 192.9.200.59 and tcp port 8000

4. 如果想要显示数据包的内容,需要使用-X参数,如,我想要显示捕获的http数据包http header的内容:

tcpdump -X host 192.9.200.59 and tcp port 8000

显示结果如下:

22:13:19.717472 IP testhost59.12535 > liujuan59.8000: . 1:330(329) ack 1 win 327
8
0x0000: 4500 0171 e616 0000 8006 cb2b 0000 0000 E..q.......+....
0x0010: c009 c83b 30f7 1f40 0000 0002 0000 0002 ...;0..@........
0x0020: 5010 8000 b066 0000 504f 5354 202f 2048 P....f..POST./.H
0x0030: 5454 502f 312e 310d 0a43 6f6e 7465 6e74 TTP/1.1..Content
0x0040: 2d54 7970 653a 2074 6578 742f 786d 6c3b -Type:.text/xml;
0x0050: 2063 .c

可以看到该结果只显示了http头的一部分,没有显示全,是因为tcpdump默认将显示的数据长度截断了,可以使用-s后面加数据长度,来设置数据显示长度:

tcpdump -X -s 0 host 192.9.200.59 and tcp port 8000

以上的例子中,-s 0 表示自动设置长度使其能够显示所有数据。

5. 捕获的数据太多,不断刷屏,可能需要将数据内容记录到文件里,需要使用-w参数:

tcpdump -X -s 0 -w aaa host 192.9.200.59 and tcp port 8000

则将之前显示在屏幕中的内容,写入tcpdump可执行文件同级目录下的aaa文件中。

文件查看方式如下,需要使用-r参数:

tcpdump -X -s 0 -r aaa host 192.9.200.59 and tcp port 8000

如果这样写:

tcpdump -r aaa

则只能看到最简单的数据传输交互过程,看不到数据包内容,查看时也需要使用相应的参数。

6.总结

总结一下,tcpdump的参数分两个部分,选项(Options)和表达式(expression):

tcpdump[-adeflnNOpqRStuvxX] [-ccount]
[-Cfile_size] [-Ffile]
[-iinterface] [-mmodule] [-rfile]
[-ssnaplen] [-Ttype] [-wfile]
[-Ealgo:secret] [expression]



=======================================

tcpdump是Linux下自带的网络分析工具。可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

tcpdump主要选项

类型
host, net, port

方向
src, dst, src or   dst, src and dst

协议
ip, tcp, udp,   arp, rarp, ether, fddi

逻辑
and, or, not 或者 &&, ||, !

选项
-i指定网卡, -n显示ip, -A文本显示
-c抓包数, -x/-xx/-X/-XX二进制显示, -r读, -w写

类型
host指定主机或目的地址。
net制定网络地址。net可以用来指定子网。
port指定监听端口。
如果要制定多种类型,用逻辑运算符号连接。
tcpdump net 192.168.1。监听子网192.168.1.0
tcpdump net 192.168.1.0/24
tcpdump host 192.168.1.124 and port 80。监听指定主机的80端口。


方向

src指定源地址,dst指定目的地址。

监听来自192.168.1.10 或 192.168.1.11的80端口:

tcpdump port 80 and \(src 192.168.1.10 or src 192.168.1.11\)


协议
用来捕获特定协议的数据包有:ether(ethernet), tcp, udp, icmp, ip, ip6(ipv6), arp, rarp(reverse arp)等。


逻辑
tcpdump port 80 and \(host 192.168.1.10 or host 192.168.1.11\)。监听主机192.168.1.10 或 192.168.1.11的80端口。

使用()一定要用\转义。

获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包:

tcpdump ip host 210.27.48.1 and ! 210.27.48.2



选项

-i:指定网卡。

-n:显示ip,而不是主机名。

-c:指定抓多少个包后退出。

-A:以ASCII方式显示包内容,这个选项对文本格式的协议包非常有用。

-s:指定抓包显示一行的宽度,-s0表示显示完整的包,经常和-A一起用。

-x/-xx/-X/-XX:以十六进制显示包内容,几个选项只有细微的差别,详见man手册。

-vv:详细信息。

-r:从文件中读取。

-w:导出到指定文件。

监听来自172.25.38.145到端口7012的数据,并到处到指定文件:

tcpdump tcp dst port 7012 and src host 172.25.38.145 -vv –w output.dat

从指定文件加载监听数据:

tcpdump -r output.dat

监听网卡eth1端口7012的数据:

tcpdump tcp port 7012 -ieth1 –n



用tcpdump解析tcp连接建立和释放

下面命令抓包:

# tcpdump tcp port 7012 and host 172.25.34.88 -ieth1 -n

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes



1.          14:44:52.174122 IP 172.25.38.145.49563 > 172.25.34.88.7012: S 1986599379:1986599379(0) win 5840 <mss 1460,sackOK,timestamp 3824018401 0,nop,wscale 2>

2.          14:44:52.174249 IP 172.25.34.88.7012 > 172.25.38.145.49563: S 4294961892:4294961892(0) ack 1986599380 win 5792 <mss 1460,sackOK,timestamp 1927787323 3824018401,nop,wscale 2>

3.          14:44:52.174228 IP 172.25.38.145.49563 > 172.25.34.88.7012: . ack 1 win 1460 <nop,nop,timestamp 3824018401 1927787323>

4.          14:44:52.174433 IP 172.25.38.145.49563 > 172.25.34.88.7012: P 1:109(108) ack 1 win 1460 <nop,nop,timestamp 3824018401 1927787323>

5.          14:44:52.174443 IP 172.25.34.88.7012 > 172.25.38.145.49563: . ack 109 win 1448 <nop,nop,timestamp 1927787323 3824018401>

6.          14:44:52.186891 IP 172.25.34.88.7012 > 172.25.38.145.49563: P 1:857(856) ack 109 win 1448 <nop,nop,timestamp 1927787326 3824018401>

7.          14:44:52.186914 IP 172.25.34.88.7012 > 172.25.38.145.49563: F 857:857(0) ack 109 win 1448 <nop,nop,timestamp 1927787326 3824018401>

8.          14:44:52.187054 IP 172.25.38.145.49563 > 172.25.34.88.7012: . ack 857 win 1888 <nop,nop,timestamp 3824018404 1927787326>

9.          14:44:52.195347 IP 172.25.38.145.49563 > 172.25.34.88.7012: F 109:109(0) ack 858 win 1888 <nop,nop,timestamp 3824018406 1927787326>

10.       14:44:52.195355 IP 172.25.34.88.7012 > 172.25.38.145.49563: . ack 110 win 1448 <nop,nop,timestamp 1927787328 3824018406>



每一行中间都有这个包所携带的标志:

S=SYN,发起连接标志。

P=PUSH,传送数据标志。

F=FIN,关闭连接标志。

ack    表示确认包。

RST=RESET,异常关闭连接。

. 表示没有任何标志。



上面抓包的过程解析:

第1行:14:44:52这个时间,从172.25.38.145(client)的临时端口49563向172.25.34.88(server)的7012监听端口发起连接,client初始包序号为1986599379,滑动窗口大小为5840字节(滑动窗口即tcp接收缓冲区的大小,用于tcp拥塞控制),mss大小为1460(即可接收的最大包长度,通常为MTU减40字节,IP头和TCP头各20字节)。

第2行:server响应连接,同时带上第一个包的ack信息,为client端的初始包序号加1,即1986599380,即server端下次等待接受这个包序号的包,用于tcp字节流的顺序控制。Server端的初始包序号为4294961892,mss也是1460。

第3行:client再次确认,tcp连接三次握手完成。

第4行:client发请求包,包长度108字节。

第5行:server响应ack。

第6行:server回包,包长度856字节。

第7行:client响应ack。

第8行:client发起关闭连接请求。

第9行:server响应ack,并且也发送FIN标志关闭。

第10行:客户端响应ack,关闭连接的四次握手完成。
分享到:
评论
1 楼 bits00 2012-03-19  

相关推荐

    tcpdump离线.rar

    tcpdump是一款广泛使用的网络数据包分析工具,它允许系统管理员或网络工程师实时捕获和分析网络上的数据包。这个“tcpdump离线.rar”压缩包包含两个RPM(Red Hat Package Manager)格式的软件包:libpcap-1.5.3-12....

    tcpdump 源代码安装包

    tcpdump是一款广泛使用的网络数据包分析工具,它允许系统管理员或网络工程师实时捕获网络上的数据包,并进行分析。在Linux或类Unix操作系统上,tcpdump是标准的网络诊断工具,能够帮助用户深入理解网络流量,查找...

    tcpdump高级过滤技巧

    tcpdump是一款功能强大的网络数据包捕获工具,广泛应用于网络监控、故障排查和安全审计等领域。本文档将深入探讨tcpdump的高级过滤技巧,通过具体的示例帮助读者掌握如何精确地筛选网络流量,以满足复杂场景下的数据...

    OpenWrt 上运行的tcpdump

    在OpenWrt上运行tcpdump是一项基础而重要的网络诊断任务,tcpdump是一个强大的网络分析工具,它可以捕获网络上的数据包并提供详细的信息,帮助我们理解网络流量、检测问题或进行安全审计。以下是对OpenWrt环境安装和...

    tcpdump文件,tcpdump

    tcpdump是一款广泛使用的网络封包分析工具,主要在命令行环境下操作,允许用户实时监控和记录网络上的数据传输。这个工具对于网络管理员、系统管理员以及IT专业人士来说是必不可少的,因为它可以帮助他们诊断网络...

    tcpdump(windows版).zip

    tcpdump是一款广泛使用的网络数据包分析工具,主要用于捕获、记录和分析网络上的数据包。在Linux和Unix系统中,它是标准的网络诊断工具之一,而在这个案例中,我们讨论的是tcpdump的Windows版本。这个压缩包...

    tcpdump源码(tcpdump-4.99.4.tar.gz)生成tcpdump

    tcpdump源码编译,需要多个部件的源码进行顺序编译而成。 m4-1.4.19.tar.gz flex-2.6.4.tar.gz bison-3.7.6.tar.gz libpcap-1.10.4.tar.gz tcpdump-4.99.4.tar.gz tar xvf *.tar解压后,分别执行./configure 和make ...

    tcpdump-tcpdump-4.9.2.zip

    tcpdump是一款广泛使用的开源网络数据包分析工具,用于捕获和分析网络上的数据包。它在IT领域中扮演着至关重要的角色,特别是在网络诊断、安全审计和协议开发中。tcpdump-4.9.2是该软件的一个版本,此版本可能包含了...

    tcpdump抓包工具离线安装包

    tcpdump是一款广泛使用的网络分析工具,它允许用户在操作系统层面捕获网络上的数据包,用于诊断网络问题、监控网络通信或者进行网络安全分析。这个离线安装包是为那些无法连接到互联网或者需要在隔离环境中安装...

    tcpdump安装、依赖包

    tcpdump是一款广泛使用的网络数据包分析工具,它允许系统管理员或网络工程师实时捕获网络上的数据包,并进行分析。在Linux或Unix系统中,tcpdump是标准的网络诊断和故障排查工具,它可以帮助我们理解网络流量模式,...

    tcpdump源码分享

    tcpdump是一款广泛使用的开源网络数据包分析工具,它允许用户实时捕获并分析网络上的数据包。这个资源包含了tcpdump的4.0和3.9两个版本的源代码,对于理解网络协议、学习网络监控以及进行网络调试具有极高的价值。 ...

    Tcpdump抓包工具免安装版v4.5.1

    Tcpdump 4.5.1版本,解压后是一个二进制可执行文件,不需要任何编译和安装,可以直接执行,上传Linux环境解压即可使用: root@admin:/tmp# ./tcpdump -help tcpdump version 4.5.1 libpcap version 1.5.3 Usage: ...

    pc端tcpdump软件

    TCPDump是一款强大的网络封包分析软件,主要用于在各种操作系统上抓取网络协议数据包,包括Linux、Unix以及Windows等PC平台。它可以帮助网络管理员、开发者和安全专家深入了解网络流量,进行故障排查、性能分析和...

    tcpdump离线安装

    TCPDump是一款强大的网络封包分析软件,主要用于在网络层截取并分析网络数据包。它在IT行业中被广泛用于网络故障排查、性能优化、安全审计等多个领域。TCPDump的名字由TCP(Transmission Control Protocol)和Dump...

    Tcpdump 下载[二进制文件,直接执行,无需安装]

    Tcpdump 是一个强大的网络分析工具,它主要用于抓取和分析网络数据包。在TCP/IP四层模型(应用层、传输层、网络层、数据链路层)中,tcpdump主要在数据链路层工作,可以捕获到网络上的每一个数据包,这对于网络故障...

    tcpdump

    tcpdump是一款强大的网络数据包分析工具,主要用于抓取和分析网络中的数据包。它在Linux、Unix以及类Unix操作系统上广泛使用,同时也可应用于其他支持libpcap库的操作系统。tcpdump通过读取网络接口上的数据包,为...

    tcpdump android 4.9.3/1.9.1

    tcpdump是一款广泛使用的网络封包分析工具,它能够捕获并分析网络上的数据包,帮助网络管理员和开发者诊断网络问题、排查安全漏洞以及理解网络流量模式。在Android系统上,tcpdump同样扮演着重要的角色,尤其对于...

    tcpdump Android抓包工具

    tcpdump是一款强大的网络数据包分析工具,主要用于在网络中捕获和分析网络协议数据包。在Android平台上,tcpdump同样能够发挥作用,帮助开发者、网络安全人员以及普通用户了解网络通信的细节,排查网络问题,或者...

    tcpdump-v3.9.8

    tcpdump是网络分析工具中的重要成员,主要用于抓取和分析网络数据包。它是一个命令行工具,广泛应用于各种操作系统,包括Unix和Linux,但显然不包括Windows 7。标题提到的"tcpdump-v3.9.8"指的是该工具的一个特定...

    Linux tcpdump命令详解.docx

    ### Linux tcpdump命令详解 #### 一、简介 tcpdump是一款功能强大的网络数据包抓取与分析工具,广泛应用于Linux系统中。它能够捕获网络中传输的数据包头部信息,并支持用户自定义过滤条件,从而筛选出需要关注的...

Global site tag (gtag.js) - Google Analytics