[基础概念] headroom/tailroom
文章目錄
- 概念說明
- 實際含義
- 舉例
- skb_buff
概念說明
英語里有很多地方用到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,驗證的一些數據在里面。
總結
以上是生活随笔為你收集整理的[基础概念] headroom/tailroom的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022-07-18 Linux df、
- 下一篇: xshell会话迁移