zoukankan      html  css  js  c++  java
  • 网络封包分析

    By:wangyz

    昨天说了抓包,今天说说网络封包分析

    OSI七层 和 网络封包构成

    IP头

    版本:占4位(bit),指IP协议的版本号。目前的主要版本为IPV4,即第4版本号。
    首部长度:占4位(bit),指IP报文头的长度。最大的长度(即4个bit都为1时)为15个长度单位,每个长度单位为4字节(TCP/IP标准,DoubleWord),所以IP协议报文头的最大长度为60个字节,最短为上图所示的20个字节。
    版本和首部长度,1个字节
     
    服务类型:占8位(bit),1个字节,用来获得更好的服务。其中的前3位表示报文的优先级,后面的几位分别表示要求更低时延、更高的吞吐量、更高的可靠性、更低的路由代价等。对应位为1即有相应要求,为0则不要求。
     
    总长度:16位(bit),2个字节,指报文的总长度。注意这里的单位为字节,而不是4字节,所以一个IP报文的的最大长度为65535个字节。
     
    标识(identification):16位(bit),2个字节,该字段标记当前分片为第几个分片,在数据报重组时很有用。
     
    标志(flag):3位(bit),该字段用于标记该报文是否为分片(有一些可能不需要分片,或不希望分片),后面是否还有分片(是否是最后一个分片)。
    片偏移:13位(bit),指当前分片在原数据报(分片前的数据报)中相对于用户数据字段的偏移量,即在原数据报中的相对位置。
    标志和片偏移,16位(bit),2个字节
     
    生存时间:8位(bit),1个字节,TTL(Time to Live)。该字段表明当前报文还能生存多久。每经过1ms或者一个网关,TTL的值自动减1,当生存时间为0时,报文将被认为目的主机不可到达而丢弃。使用过Ping命令的用户应该有印象,在windows中输入ping命令,在返回的结果中即有TTL的数值。
     
    协议:8位(bit),1个字节,该字段指出在上层(网络7层结构或TCP/IP的传输层)使用的协议,可能的协议有UDP、TCP、ICMP、IGMP、IGP等。
     
    首部校验和:16位(bit),2个字节,用于检验IP报文头部在传播的过程中是否出错,主要校验报文头中是否有某一个或几个bit被污染或修改了。
     
    源IP地址:32位(bit),4个字节,每一个字节为0~255之间的整数,及我们日常见到的IP地址格式。
     
    目的IP地址:32位(bit),4个字节,每一个字节为0~255之间的整数,及我们日常见到的IP地址格式。
     
     
     
    TCP头
     
     
    源端口号:16位bit,2个字节16位的源端口其中包含初始化通信的端口。源端口和源IP地址的作用是标示报问的返回地址。 
    目的端口号:16位bit,2个字节,16位的目的端口域定义传输的目的。这个端口指明报文接收计算机上的应用程序地址接口。 
     
    序号:32位bit,4个字节32位的序列号由接收端计算机使用,重新分段的报文成最初形式。当SYN出现,序列码实际上是初始序列码(ISN),而第一个数据字节是ISN+1。这个序列号(序列码)是可以补偿传输中的不一致。 
    确认序号:32位bit,4个字节,32位的序列号由接收端计算机使用,重组分段的报文成最初形式。,如果设置了ACK控制位,这个值表示一个准备接收的包的序列码。
     
    首部长度:4位bit,4位包括TCP头大小,指示何处数据开始。
    保留:6位,6位值域,这些位必须是0。为了将来定义新的用途所保留。
    6位标志域。表示为:紧急标志、有意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志。按照顺序排列是:URG、ACK、PSH、RST、SYN、FIN。
    URG标志位:1位
    ACK标志位:1位
    PSH标志位:1位
    PST标志位:1位
    SYN标志位:1位
    FIN标志位:1位
    首部长度+保留位+6个标志位=16位,两个字节
     
    窗口大小:16位bit,2个字节,16位,用来表示想收到的每个TCP数据段的大小。
     
    校验和:16位bit,2个字节,16位TCP头。源机器基于数据内容计算一个数值,收信息机要与源机器数值 结果完全一样,从而证明数据的有效性。
     
    紧急指针:16位bit,2个字节,16位,指向后面是优先数据的字节,在URG标志设置了时才有效。如果URG标志没有被设置,紧急域作为填充。加快处理标示为紧急的数据段。
     
     
     
     
     
    封包分析
     
    00 D0 F8 00 00 01 00 D0 F8 00 00 02 08 00 45 00
    00 34 d5 0a 40 00 40 06 d4 ed 64 64 64 01 64 64
    64 02 06 18 00 17 c9 3d 43 2b 00 00 00 00 80 02
    ff  ff  cb  b1 00 00 
     
     
    MAC地址
    00 D0 F8 00 00 01  目的mac地址
    00 D0 F8 00 00 02  源mac地址
    08 00  这个意思不太清楚,似乎是固定的
     
    IP头
    45    版本和头长度,版本为4,首部长度20字节
    00    服务类型
    00 34  报文总长度,34h=52
    d5 0a  标识54538
    40 00  标志和片偏移
    40  生存时间为64
    06  协议TCP,(6代表TCP协议)
    d4 ed  头校验和
    64 64 64 01  源IP地址 100.100.100.1
    64 64 64 02  目的IP地址 100.100.100.2
     
    TCP头
    06 18  源端口:1560
    00 17  目的端口:23
    c9 3d 43 2b  序列号
    00 00 00 00  应答号
    80 02  头长度,保留位和标志位
    10000000 00000010
    1000 首部长度
    000000 保留
    000010 标志位URG、ACK、PSH、RST、SYN=1、FIN
    ff  ff  窗口大小65535
    cb  b1  校验和
    00 00  紧急指针
  • 相关阅读:
    BZOJ1070: [SCOI2007]修车(最小费用最大流,思维)
    CF892D—Gluttony(思维,好题)
    BZOJ1005--[HNOI2008]明明的烦恼(树的prufer编码)
    HDU–5988-Coding Contest(最小费用最大流变形)
    【转】HDU 6194 string string string (2017沈阳网赛-后缀数组)
    【转】Codeforces Round #406 (Div. 1) B. Legacy 线段树建图&&最短路
    HDU6513/CCPC2017--A Secret(KMP)
    8.19-星期五
    CodeForces–830B--模拟,树状数组||线段树
    js实现360度图片旋转
  • 原文地址:https://www.cnblogs.com/sgtb/p/3710857.html
Copyright © 2011-2022 走看看