linux内核学习笔记------对端信息块

本文介绍了Linux内核中的对端信息块,主要用于防止IP数据包分片攻击和TCP连接验证。对端信息块由inet_peer结构体表示,组织成AVL树,并通过inet_getpeer进行创建和查询。当引用计数为0时,对端信息块会被移到未使用链表,清理工作可通过同步或异步(定时器)方式进行。
摘要由CSDN通过智能技术生成

首先,什么是对端信息块?

在linux内核源码剖析——tcp/ip实现这本书中是真么介绍的:对端信息块主要用于组装ip数据包时防止分片攻击,在建立tcp连接时检测连接请求段是否有效以及其序列号是否回绕

在linux内核中是通过inet_peer结构体描述的:

struct inet_peer
{
	/* group together avl_left,avl_right,v4daddr to speedup lookups */
	/*
	 * avl_left、avl_right、avl_height用来将对端信息
	 * 块组成AVL树。AVL树的根为peer_root。
	 */
	struct inet_peer	*avl_left, *avl_right;
	/*
	 * 对端的IP地址。
	 */
	__be32			v4daddr;	/* peer's address */
	__u16			avl_height;
	/*
	 * 一个单调递增值,用来设置IP分片首部中
	 * 的id域。根据对端地址初始化为随机值。
	 */
	__u16			ip_id_count;	/* IP ID for the next packet */
	/*
	 * 用来链接到inet_peer_unused_head链表上。该
	 * 链表上的对端信息块都是当前闲置的,
	 * 可回收的。
	 */
	struct list_head	unused;
	/*
	 * 记录该对端信息块引用计数为0的时间。
	 * 当闲置的时间超出指定的时间时,
	 * 就会被回收。
	 */
	__u32			dtime;		/* the time of last use of not
						
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值