`
zhaohaolin
  • 浏览: 986538 次
  • 性别: 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

分享到:
评论

相关推荐

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

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

    tcpreplay命令 性能或功能测试

    常用参数: -A -vA “nnt”表示以tcpdump风格输出报文信息,并且不打印时间戳、主机名、端口服务名称。注意不要使用-c参数来指定打印的数据报文的个数,这样发送出去的报文也会变少 -c 双网卡回放报文必选参

    mailq命令 显示待发送的邮件队列

    常用参数: -v 显示详细信息 参考实例 显示邮件发送队列: [root@linuxcool ~]# mailq 显示邮件发送队列详细信息: [root@linuxcool ~]# mailq -v 与该功能相关的Linux命令:rdate命令 – 显示其他主机的日期...

    centos7-shisanxiang.sh

    | 7 | 内核sysctl.conf的常用参数优化释义(只显示不进行优化) | | 8 | 服务器字符集调整到utf-8 | | 9 | 优化缩短TCP断开连接自动回收时间为20s | | k8s | 关闭swap并将桥接的IPv4流量传递到iptables的链(k8s适用...

    windump最新版

    大家都知道,unix系统下有个tcpdump的抓包工具,非常好用,是做troubleshooting的好帮手。其实在windows下也有一个类似的工作,叫windump,可以方便的根据需要进行抓包。下面我举几个常用例子介绍一下这个工具的使用...

    redhat linux教材20课程学习文档

    第十九章 系统优化和核心参数调整 19.1 系统性能与优化概述 19.2 性能监视与测试 19.3 系统优化的相关命令 19.3.1 uptime 19.3.2 free 19.3.3 top 19.3.4 vmstat 19.3.5 ps 19.4 系统优化措施 第二十章 X Window...

    RED HAT LINUX 6大全

    2.3.2 内核参数选项 8 2.3.3 安装程序 9 2.3.4 选择一种安装方法 9 2.3.5 光盘安装 10 2.4 硬件配置 14 2.4.1 选择鼠标 14 2.4.2 配置X Window系统 14 2.4.3 配置网络 14 2.4.4 设置时区 15 2.4.5 选择服务自动启动 ...

    Ubuntu权威指南(2/2)

    11.1.1 常用的磁盘空间 ??管理工具 286 11.1.2 使用df命令检查磁盘 ??空间的使用情况 286 11.1.3 使用du命令检查目录 ??占用的存储空间 289 11.1.4 使用find命令找出超过 ??一定容量限制的文件 290 11.1.5 使用find...

    Ubuntu权威指南(1/2)

    11.1.1 常用的磁盘空间 ??管理工具 286 11.1.2 使用df命令检查磁盘 ??空间的使用情况 286 11.1.3 使用du命令检查目录 ??占用的存储空间 289 11.1.4 使用find命令找出超过 ??一定容量限制的文件 290 11.1.5 使用find...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

Global site tag (gtag.js) - Google Analytics