wireshark 的tvb啥意思
时间: 2023-12-02 21:43:05 浏览: 56
Wireshark中的tvb是指“数据树视图缓冲区”,是Wireshark中的一个数据结构,用于存储捕获的数据包。它是一个抽象的数据类型,可以看作是一个缓冲区,其中包含了数据包的所有信息,包括协议头、数据负载等。在Wireshark的分析模块中,可以通过tvb来访问数据包的各个部分,进行解析和分析。
在Wireshark的源代码中,tvb的定义可以在epan/tvbuff.h文件中找到。tvb的结构体定义如下:
```c
typedef struct _tvbuff {
gint32 ref_count; /* 引用计数 */
guint32 length; /* tvb的总长度 */
guint32 reported_length; /* 报告的长度 */
const guint8 *real_data; /* tvb的实际数据 */
const guint8 *data; /* tvb的数据 */
gint64 offset; /* tvb的偏移量 */
tvbuff_t *next; /* 下一个tvb */
tvbuff_t *prev; /* 上一个tvb */
tvbuff_t *parent; /* 父tvb */
tvbuff_t *child; /* 子tvb */
tvbuff_t *sibling_next; /* 下一个兄弟tvb */
tvbuff_t *sibling_prev; /* 上一个兄弟tvb */
tvbuff_t *pool_next; /* 下一个tvb池 */
tvbuff_t *pool_prev; /* 上一个tvb池 */
tvbuff_t *pool; /* tvb池 */
guint32 flags; /* tvb的标志 */
guint32 saved_length; /* 保存的长度 */
const guint8 *saved_data; /* 保存的数据 */
guint32 reported_upto; /* 报告的位置 */
guint32 reported_next_tvb_index; /* 下一个报告的tvb索引 */
guint32 reported_prev_tvb_index; /* 上一个报告的tvb索引 */
guint32 reported_upto_set; /* 报告的位置是否设置 */
guint32 reported_next_tvb_index_set; /* 下一个报告的tvb索引是否设置 */
guint32 reported_prev_tvb_index_set; /* 上一个报告的tvb索引是否设置 */
guint32 tvb_users; /* tvb的用户数 */
guint32 tvb_user_data_len; /* tvb用户数据的长度 */
gpointer tvb_user_data; /* tvb用户数据 */
} tvbuff_t;
```
可以看到,tvb包含了很多信息,其中比较重要的是data和length字段,分别表示tvb的数据和长度。在Wireshark的分析模块中,可以通过tvb_get_guint8()等函数来访问tvb中的数据。