用Sniffer抓包分析以太网帧

来源:思科 思索 作者: 2007-12-11 出处:pcdog.com

  • sniffer
  • 以太网
  • 协议
  • sniffer抓icmp包来分析。

    1。ping 192.168.1.1 -l 0

    ping一个ip,指定携带的数据长度为0

    抓包分析如图:

    用Sniffer抓包分析以太网帧(图一)

    点击查看大图

    从图上的1处我们可以看到这个数据总大小是:60byte
    从2处看到ip数据总长度:28byte
    ip数据为什么是28byte?
    因为ip头部是20个字节(4处标记的),而icmp头部是8个字节,因为我们的ping是指定数据长度为0的 ,所以icmp里不带额外数据,即:
    28=20+8
    而我们知道以太网类型帧头部是 6个字节源地址+6个字节目标地址+2个字节类型=14字节
    以太网帧头部+ip数据总长度=14+28=42
    注意3处标记的,填充了18个字节。
    42+18=60
    刚好等于总长度,其实这里我们需要注意到这里捕捉到帧不含4个字节的尾部校验,如果加上4字节尾部校验,正好等于64!
    64恰好是以太类型帧最小大小。

    在图中我们还可以看到 这个帧没有分割,flags=0x,因为不需要分割。

    再分析一个
    ping 192.168.1.1 -l 64
    用Sniffer抓包分析以太网帧(图二)

    点击查看大图

    数据大小106byte
    106-14(以太类型帧头部)=92
    刚好等于ip部分的显示大小
    92-20(ip)-8(icmp头)=64
    刚好等于我们指定的64字节ping 包

    以太网帧实际承载数据部分最大为1500,这里面还包含其他协议的报头,所以实际承载数据肯定小于1500,如果ping 192.168.1.1 -l 1500,那么数据必要会被分割,但计算方法还是一样的,只是需要特别注意,后续帧无需包含第一个帧所包含的icmp报头。
    所以第一个帧的大小会是 1500(实际数据部分大小,含ip和icmp报头)+14(以太类型帧头部)=1514,在第一个帧里实际携带了多少数据的是1500-20(IP 报头)-8(icmp报头)=1472,剩余28bytes数据会在后续帧中
    后续帧大小:14(以太类型头)+20(ip头)+28(实际数据)=62
    注意上面的计算我们都不计算尾部4字节校验的。可以实际抓包验证上面的分析。


    更多内容请看PCdog.com--以太网技术介绍千兆以太网Sniffer安全技术专题
    上一篇:SMB会话劫持
    下一篇:交换机可能产生的问题分析