[基础概念] headroom/tailroom

概念说明

英语里有很多地方用到headroom/tailroom;比如内核里的skb结构体里;

这个headroom/tailroom, 字面解释就是头部空间,尾部空间;一看到尾这个字呢,就可以想到,理解起来,不能拿人当参照物,因为对于人来说,和头像对的部位是脚,不是尾。但是从人的第一印象,如果说headroom,肯定首先想到的是人的头。
这和其他很多动物的情况不相同。其他动物,比如蛇,狗,毛毛虫来说,和头相对的部位是尾。

那我们在理解head/tail的时候,是按照蛇来理解还是狗呢?其实是按照具体情况具体分析。例如skbuff,需要用蛇虫来理解比较确切,因为在网络线上穿越的数据包的形式和蛇非常类似,狗有腿不太适合。

这样按照蛇的形体来理解 headroom和tailroom,就稍微好了一些。头部空间,就是蛇的头部之前的空间,余量。尾部空间,就是尾巴之后的空间,余量。
在这里插入图片描述

实际含义

最后,这个headroom与tailroom的用途是什么呢?如果这一层意思理解不了很容易就弄丢这个概念。
最终这两个概念的用途是在说:头部有空间,可以继续向着这个方向生长,增长,增加,前进;尾部有空间,就可以向着尾部的方向,继续延申,扩展,扩大。

如果确确实实想要以人为参照物,需要将tail换成foot,同时想象自己处于一个空置的房间,而且处于失重的状态,那么在头顶之上有一个屋顶:屋顶到头顶之间的空间就是headroom。而脚底板与地板之间的空间就是tailroom。

举例

While some execution resources such as caches, execution units, and buses are shared, each logical processor has its own architecture state with its own set of general-purpose registers, control registers to provide increased system responsiveness in multitasking environments, and headroom for next generation multithreaded applications.

这里的意思就是,为后续的提高留有空间。

skb_buff

这个结构体里有这个headroom和tail room的原因是,协议栈的特质:
在从上层到下层的传递过程中,需要对数据添加每层的头,而且要做尾添加checksum,验证的一些数据在里面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mzhan017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值