在使用wireshark分析DNS协议时,flagS各项中表示的含义?

在使用wireshark分析DNS协议时,flagS各项中表示的含义?,第1张

flagS是flag Segment的缩写,是标志字段

它其实是IP报文头中的一个字段,因为TCP、UDP协议,应用层协议大部分都是封装在IP包中的,所以分析这些协议时,就会经常看到这个字段。

标识字段有3位。

Reserved bit:1位,是保留位,一般用不上;

Don't fragment :1位,用来表示数据包是否分片(Not set表示数据包没有分片);

More fragment:1位,用来表示是否是最后一个片段(Not set表示是最后一个)。

flags的意思:是名词或者动词。意思是:旗帜;国旗;信号旗,标志旗;菖蒲,鸢尾;铺路用的厚石板(多为矩形或正方形);(在街上慈善捐赠后获得的)小纸徽;(用作标志的)旗状装置(或符号、图画);出租车空车显示器;特征位;旗舰 复数 flags;第三人称单数 flags;现在分词 flagging

词汇搭配:zero flag [计] 零标志 零旗标 零标记 零标志位 Rising Flag 上升旗形 升起旗帜Trailing Flag [计] 结束标志 结束标志

词语用法:flag的意思是“旗”“旗帜”,主要指作为“标志”的具体的旗,如国旗、军旗、校旗、团旗、队旗等,也可指交通、天气预报等的信号旗,一般呈长方形,一边通常固定在杆或绳上,旗面多饰有图案或文字。flag是可数名词。flag有时也可指“报刊的报头”。flag可用作定语修饰其他名词。

haul down one's flag的意思是“妥协”“投降”“认输”,keep the flag flying的意思是“坚持战斗”“不屈服”。

很多android源码中有一个int flags定义形式的变量,还有与之相对应的一系列常量,这种flag分类方式应该可以用在任何语言中。

int flags定义包含的flag,可能有多个,这是需求。

而一个int型的值(当然也可以是其他类型,原理一样)在java里表示4 byte也就是32 bit,除去符号位剩下31个标志位可以表示31个单独的flag,他们相或可以生成更多的flags值。

用1进行左移 *** 作可以方便生成不同的flag如下:

public static final int FLAG1= 1<<0

public static final int FLAG2 = 1<<2

。。。

public static final int FLAG31 = 1<<31

相或如

public static final int FLAGa = FLAG3|FLAG5|FLAG8

当需要判断时:

flags = FLAGX1 |FLAGX2

//若flags的相或item包含FLAGX 则与其相与刚好得到FLAGX

if((flags&FLAGX ) == FLAGX ){

//说明包含FLAGX 属性

}

简单封装成函数:

public boolean hasFeature(int feature){

if((flags&feature) == feature) return true

return false

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9934095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存