tcp/ip|ICMP、DNS、TCP等协议多段数据包关联

ICMP数据包 ICMP 分为查询请求和响应,请求和响应的报文结构基本相同。ICMP报文格式如图所示:
tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片

各字段的解释:tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片


ICMP协议的request包和reply包关联
在ICMP协议中request包(请求包)和reply包(响应包)的关联主要是看Sequence number (BE)字段中的值,这个字段是有16个bit组成,也即是最大值为65535;
request包截图:
tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片

reply包截图:
tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片



ICMP协议的多段分析中request包(或reply包)的关联
在关联多段的ICMP数据包时主要使用数据包中的IP层的Identification和ICMP层的Sequence number进行关联,当然在多段关联分析时也可以使用数据包的时间作为参考(多节点之间的抓包设备时间要同步),从而更准确进行关联。
tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片


DNS数据包 DNS 分为查询请求和查询响应,请求和响应的报文结构基本相同。DNS 报文格式如图所示。
tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片


DNS 报文的基础结构部分指的是报文首部,如图所示。

tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片

该部分中每个字段含义如下。

  • 事务 ID:DNS 报文的 ID 标识。对于请求报文和其对应的应答报文,该字段的值是相同的。通过它可以区分 DNS 应答报文是对哪个请求进行响应的。
  • 标志:DNS 报文中的标志字段。
  • 问题计数:DNS 查询请求的数目。
  • 回答资源记录数:DNS 响应的数目。
  • 权威名称服务器计数:权威名称服务器的数目。
  • 附加资源记录数:额外的记录数目(权威名称服务器对应 IP 地址的数目)。

基础结构部分中的标志字段又分为若干个字段,如图所示。

tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片

标志字段中每个字段的含义如下:
  • QR(Response):查询请求/响应的标志信息。查询请求时,值为 0;响应时,值为 1。
  • Opcode:操作码。其中,0 表示标准查询;1 表示反向查询;2 表示服务器状态请求。
  • AA(Authoritative):授权应答,该字段在响应报文中有效。值为 1 时,表示名称服务器是权威服务器;值为 0 时,表示不是权威服务器。
  • TC(Truncated):表示是否被截断。值为 1 时,表示响应已超过 512 字节并已被截断,只返回前 512 个字节。
  • RD(Recursion Desired):期望递归。该字段能在一个查询中设置,并在响应中返回。该标志告诉名称服务器必须处理这个查询,这种方式被称为一个递归查询。如果该位为 0,且被请求的名称服务器没有一个授权回答,它将返回一个能解答该查询的其他名称服务器列表。这种方式被称为迭代查询。
  • RA(Recursion Available):可用递归。该字段只出现在响应报文中。当值为 1 时,表示服务器支持递归查询。
  • Z:保留字段,在所有的请求和应答报文中,它的值必须为 0。
  • rcode(Reply code):返回码字段,表示响应的差错状态。当值为 0 时,表示没有错误;当值为 1 时,表示报文格式错误(Format error),服务器不能理解请求的报文;当值为 2 时,表示域名服务器失败(Server failure),因为服务器的原因导致没办法处理这个请求;当值为 3 时,表示名字错误(Name Error),只有对授权域名解析服务器有意义,指出解析的域名不存在;当值为 4 时,表示查询类型不支持(Not Implemented),即域名服务器不支持查询类型;当值为 5 时,表示拒绝(Refused),一般是服务器由于设置的策略拒绝给出应答,如服务器不希望对某些请求者给出应答。
DNS协议的query包和response包关联
DNS协议中的query包和response包关联,DNS是基于UDP的4层应用,首先关注的数据包的五元组(有NAT的情况不在此文进行讨论),其次是要看Transaction ID,比如下图中query包ID为0x0003,其回应的response包的ID也为0x0003;
query包截图:
tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片

response包截图:tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片

DNS协议的多段分析中query包(或response包)的关联
在关联多段的DNS数据包时,主要使用数据包中的IP层的Identification和DNS层的Transaction ID进行关联,当然在多段关联分析时也可以使用数据包的时间作为参考(多节点之间的抓包设备时间要同步),从而更准确进行关联。
tcp/ip|ICMP、DNS、TCP等协议多段数据包关联
文章图片


TCP数据包 待续...
【tcp/ip|ICMP、DNS、TCP等协议多段数据包关联】

    推荐阅读