`
zhaohaolin
  • 浏览: 1010951 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

========================================
作者: zhoushq(http://hi.baidu.com/zhou2008/ )
发表于: 2008.04.28
分类: tcp
出处: http://hi.baidu.com/zhou2008/blog/item/ec28c7fd8f26a240d7887d74.html
========================================

-e    所截取的每个包都显示链路层报头:源MAC地址>目的MAC地址,以太类型 IPV4 (0X0800), 包数据长度。
-n    别把地址转换成名字:显示ip地址,而非主机名称
-nn 别把协议和端口号转换为服务名:譬如显示80端口而非HTTP

 

-x   以16 进制数形式显示每一个报文(去掉链路层报头后) . 可以显示较小的完整报文
示例:#tcpdump -ennx -c 1


-xx   以16 进制数形式显示每一个报文(包含链路层报头)
-X     以16 进制数形式显示每一个报文(不包含链路层报头),同时显示ASCII码。

-XX   以16 进制数形式显示每一个报文(包含链路层报头),同时显示ASCII码。
-s     重定义截取报文大小,默认为96(或68),如果定义为0,则表示获取完整报文。该参数应尽量小,尤其在繁忙网络环境中。
-w    将截取的报文输出到文件中。
-r     从文件中读取报文。
示例:#tcpdump -en -s 0 -XX -i eth0 host www.sina.com.cn -w telnet.out2 将截取到的报文输出到文件telnet.out2中。
示例:#tcpdump -en -s 0 -XX -i eth0 host www.sina.com.cn -r telnet.out2 从telnet.out2中读取报文


监视ARP报文
#arping 192.168.1.100
#tcpdump -enxx -s 0 arp -c 2



上述内容逐一对应截取的报文。


红框第一部分是:链路层以太网帧格式
6字节目的MAC地址(000C 294D 662C)+ 6字节源MAC地址(0014 bf62 f916)+ 2字节帧类型(0800)
帧类型:
           0x0800 IP数据报
           0x0806 ARP数据报
           0x0835 RARP数据报
第二个红框部分是:IP首部
以下为摘录:
图中4500—01c8为IP的头信息。这些数是十六进制表示的。一个数占4位,例如:4的二进制是0100
   4位版本:
   表示目前的协议版本号,数值是4表示版本为4,因此IP有时也称作IPv4;
   4位首部长度:
   头部的是长度,它的单位是32位(4个字节),数值为5表示IP头部长度为20字节。
   8位服务类型(TOS):
   00,这个8位字段由3位的优先权子字段,现在已经被忽略,4位的TOS子字段以及1 位的未用字段(现在为0)构成。4位的TOS子字段包含:最小延时、最大吞吐量、最高可靠性以及最小费用构成,这四个1位最多只能有一个为1,本例中都为0,表示是一般服务。
      前16位合为:4500
  16位 总长度:
   总长度字段是指整个IP数据报的长度,以字节为单位。数值为00 2c ,换算为十进制为44字节,44字节=20字节 的IP头+24字节的TCP头,这个数据报只是传送的控制信息,还没有传送真正的数据,所以目前看到的总长度就是报头的长度。
      对应图中16位:002c
   16位标识:
   标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1,第3行为数值为30 21,第5行为30 22,第7行为30 23。分片时涉及到标志字段和片偏移字段,本文不讨论这两个字段。
      对应图中32位:3546 0000
     
8位生存时间(TTL):
   TTL(time- to-live)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。ttl的初始值由源主机设置,一旦经过一个处理它的路由 器,它的值就减去1。可根据TTL值判断服务器是什么系统和经过的路由器。本例为80,换算成十进制为128,WINDOWS操作系统TTL初始值一般为 128,UNIX操作系统初始值为255,本例表示两个机器在同一网段且操作系统为WINDOWS。
   8位协议:
   表示协议类型,6表示传输层是TCP协议。
      对应图中16位:f806
   16位首部检验和:
   当 收到一份IP数据报后,同样对首部中每个16 位进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应 该为全1。如果结果不是全1,即检验和错误,那么IP就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。
      对应图中16位:df88
   32位源IP地址和32位目的IP地址:
   实际这是IP协议中核心的部分。32位的IP地址由一个网络ID和一个主机ID组成。本例源IP地址为ca 6c 2120 ,转换为十进制为:202.108.33.32 ; 目的IP地址为C0 A8 01c8 ,转换为十进制为:192.168.1.200
      对应图中64位:ca6c 2120 c0a8 01c8

TCP协议头信息(浅色框内容)
端口号:
   常 说FTP占21端口、HTTP占80端口、TELNET占23端口等,这里指的端口就是TCP或UDP的端口,端口就像通道两端的门一样,当两机进行通讯 时门必须是打开的。源端口和目的端口各占16位,2的16次方等于65536,这就是每台电脑与其它电脑联系所能开的“门”。一般作为服务一方每项服务的 端口号是固定的。
      本例目的端口号为29b6,换算成十进制为10678 本例为0050 ,换算成十进制为80
      对应图中32位:0050 29b6
  
32位序号:
  
也 称为顺序号(Sequence Number),简写为SEQ,从上面三次握手的分析可以看出,当一方要与另一方联系时就发送一个初始序号给对方,意思是:“让我们建立联系吧?”,服务 方收到后要发个独立的序号给发送方,意思是“消息收到,数据流将以这个数开始。”由此可看出,TCP连接完全是双向的,即双方的数据流可同时传输。在传输 过程中双方数据是独立的,因此每个TCP连接必须有两个顺序号分别对应不同方向的数据流。
      对应图中32位:975d 9f5c    换算结果为:2539495260
  
32位确认序号:
  
也称为应答号(Acknowledgment Number),简写为ACK。在握手阶段,确认序号将发送方的序号加1作为回答,在数据传输阶段,确认序号将发送方的序号加发送的数据大小作为回答,表示确实收到这些数据。在第三组的分析中将看到这一过程。
      对应图中32位:e789 82fe    换算结果为:3884548862
  
4位首部长度
  
这个字段占4位,它的单位时32位(4个字节)。本例值为6 ,TCP的头长度为24字节 ,等于正常的长度2 0字节加上可选项4个字节。,TCP的头长度最长可为60字节(二进制1111换算为十进制为15,15*4字节=60字节)。
  6个保留位
  
6个标志位
  
URG 紧急指针,告诉接收TCP模块紧要指针域指着紧要数据
  
ACK 置1时表示确认号(为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。
  
PSH 置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。
  
RST 置1时重建连接。如果接收到RST位时候,通常发生了某些错误。
  
SYN 置1时用来发起一个连接。
  
FIN 置1时表示发端完成发送任务。用来释放连接,表明发送方已经没有数据发送了。
       对应图中16位:6012   
16位窗口大小:
   TCP的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个16字节字段,因而窗口大小最大为65535字节。
       对应图中16位:1ffe    换算结果:8190
   16位检验和:
   检验和覆盖了整个的TCP报文段: TCP首部和TCP数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。
       对应图中16位:feda   
   16位紧急指针:
   只有当U R G标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。
        对应图中16位:0000  
   选项: 图 13-1和图13-2有8个字节选项,图13-3没有选项。最常见的可选字段是最长报文大小,又称为MSS (Maximum Segment Size)。每个连接方通常都在握手的第一步中指明这个选项。它指明本端所能接收的最大长度的报文段。图13-1可以看出208号机可以接受的最大字节数 为1460字节,1460也是以太网默认的大小,在第三组的数据分析中可以看到数据传送正是以1460字节传送的。
        对应图中16位:05ac 换算结果:1452  

 

引用:
http://hi.baidu.com/duanqian/blog/item/7b62a5af31248ac97dd92a36.html
http://hi.baidu.com/duanqian/blog/item/a75e394e7ae6bccfd0c86a36.html

分享到:
评论

相关推荐

    tcpdump抓包

    #### 四、tcpdump常用参数说明 - **-i**:指定监听的网络接口。 - **-v**:增加输出的详细程度,可以多次使用(-vv、-vvv)。 - **-nn**:禁止DNS反向解析,显示IP地址而非主机名。 - **-c**:设置捕获的最大数据包...

    tcpdump(windows版).zip

    命令行参数是tcpdump的强大之处,通过不同的参数组合,你可以定制捕获数据包的方式,例如只捕获特定主机、端口、协议或者满足特定条件的数据包。 以下是一些常用的tcpdump命令行选项: - `-i`:指定监听的网络接口...

    tcpdump&ping命令简介

    在Linux操作系统中,网络分析是诊断和排查网络问题的关键步骤,而tcpdump和ping命令是进行这类分析的常用工具。本文将深入探讨这两个命令的原理、使用方法以及它们在Linux网络管理中的应用。 首先,让我们来看看`...

    tcpdump_exe.zip

    tcpdump是Linux系统中常用的网络数据包分析工具,它能够捕获网络上的数据包并进行解析,对于网络故障排查、网络安全分析以及协议学习等场景有着重要作用。本压缩包"tcpdump_exe.zip"包含了针对不同架构的tcpdump工具...

    tcpdump-4.9.0.tar.gz

    在Linux环境下,tcpdump是开发者和网络管理员常用的工具之一。tcpdump-4.9.0是该软件的一个版本,此版本包含了从4.8.x到4.9.0的更新和改进。 描述中提到的"tcpdump4.9,pcap1.9",指的是tcpdump依赖于libpcap库,...

    tcpdump高级过滤技巧

    其中`选项`用于指定捕获参数,如网卡接口、数据包数量等;`表达式`则定义了过滤条件,用于精确控制捕获哪些数据包。 #### 三、高级过滤技巧详解 ##### 1. 过滤主机 - **主机过滤**:抓取所有经过指定网卡,目的或...

    TCPDump使用方法小结

    首先,TCPDump的常用选项包括: 1. `-i <interface>`:指定要监听的网络接口,例如`eth0`或`wlan0`,这是必须提供的参数,用于确定TCPDump将在哪个网络设备上进行抓包。 2. `-v`或`-vv`:指定详细输出模式,`-v`...

    linux 抓包工具---Tcpdump

    Tcpdump的过滤机制是其强大的特性之一,可以通过指定参数来筛选需要抓取的数据包。例如,通过`tcpdump -i eth0 src host 192.168.0.5`命令,可以截获所有来源于192.168.0.5的数据包。若想进一步查看该主机与Web...

    Tcpdump学习笔记.docx

    Tcpdump的其他常用参数包括: - `-c`:指定捕获数据包的数量,达到指定数量后自动停止。 - `-e`:显示数据链路层的MAC地址信息。 - `-q`:简洁模式,减少每行的输出信息。 - `-r`:从已有的pcap文件中读取并解析...

    Linux基础学习之利用tcpdump抓包实例代码

    简介 很多时候我们的系统部署在Linux系统上面,在一些...tcpdump的参数众多,通过man tcpdump可以查看tcpdump的详细说明,这边只列一些自己常用的参数: tcpdump [-i 网卡] -nnAX '表达式' 各参数说明如下: -i:int

    树莓派抓包文件.rar

    在Linux环境下,常用的抓包工具有tcpdump和Wireshark,后者是图形界面工具,通常在桌面系统中使用,而树莓派更适合使用命令行工具tcpdump。 在树莓派上安装tcpdump: 1. 打开终端。 2. 使用`sudo apt update`更新...

    TCPDUMP 抓包完整版

    - **常用选项**: - `-l`:标准输出模式,将结果输出到屏幕上; - `-S`:显示TCP序列号; - `-A`:显示ASCII格式的数据; - `-n`:不将IP地址转换为主机名; - `-s 0`:不限制数据包的最大长度,即抓取完整的...

    Linux系统抓包命令tcpdump使用实例.docx

    tcpdump 是 Linux 命令行下常用的一个抓包工具,记录一下平时常用的方式,测试机器系统是 Ubuntu 12.04。tcpdump 的命令格式为:tcpdump [-i 网卡] -nnAX 表达式。 参数说明: * -i:interface 监听的网卡。 * -nn...

    shell常用命令总结

    ### shell常用命令总结 在IT行业的日常开发与运维工作中,熟练掌握shell命令是提升效率、解决问题的关键技能之一。本文将基于提供的文件信息,深入解析一系列常用的shell命令及其应用场景,旨在帮助读者更好地理解...

    Android下使用TCPDUMP实现数据抓包教程

    在Android系统中,进行网络数据抓包是开发者和网络分析人员常用的技术手段,用于检测应用程序的网络行为、排查网络问题或进行安全分析。TCPDUMP是一款强大的网络封包分析软件,它可以捕获网络中的数据包,并将其保存...

    android 抓包工具,含使用说明

    在Android系统中,常用的抓包工具有Wireshark和 tcpdump。Wireshark是一款跨平台的网络协议分析软件,而tcpdump则是一个命令行工具,更适合于有经验的开发者使用。本案例中的"tcpdump.zip"可能包含了用于Android设备...

    Android平台网络抓包文档

    其中一种常用的技术手段就是利用`tcpdump`工具来进行网络数据包的捕获(抓包)。本文将详细介绍如何在具备Root权限的Android设备上使用`tcpdump`工具来实现这一目的。 #### 二、准备工作 1. **Android设备Root权限...

Global site tag (gtag.js) - Google Analytics