无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

詳細(xì)了解Linux內(nèi)核網(wǎng)絡(luò)協(xié)議棧socket、sock、sk_buff,etc(含內(nèi)核源碼)

2022-03-28 20:07 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿
  • 通過前面的分析,可以發(fā)現(xiàn),網(wǎng)絡(luò)協(xié)議棧中的數(shù)據(jù)處理,都是基于各類結(jié)構(gòu)體,所有有關(guān)于網(wǎng)絡(luò)棧中數(shù)據(jù)包的狀態(tài),地址,端口等信息都封裝在對應(yīng)的結(jié)構(gòu)中,可以說,了解這些數(shù)據(jù)結(jié)構(gòu)是理解網(wǎng)絡(luò)棧源碼的基礎(chǔ),這里我們就來了解下網(wǎng)絡(luò)協(xié)議棧中的各類數(shù)據(jù)結(jié)構(gòu)。

1、socket

  • (include\linux\Socket.h)該結(jié)構(gòu)體socket 主要使用在BSD socket 層,是最上層的結(jié)構(gòu),在INET socket 層面也會有涉及,但很少。



【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦!??!前100名進(jìn)群領(lǐng)取,額外贈送一份價值699的內(nèi)核資料包(含視頻教程、電子書、實(shí)戰(zhàn)項(xiàng)目及代碼)?


2、sock

  • (include\linux\Net.h) sock 使用范圍比socket 要大得多,sock結(jié)構(gòu)的使用基本貫穿硬件層、設(shè)備接口層、ip層、INET socket 層,而且是作為各層之間的一個聯(lián)系,主要是因?yàn)闊o論是發(fā)送還是接收的數(shù)據(jù)包都要被緩存到sock 結(jié)構(gòu)中的緩沖隊(duì)列中。sock 結(jié)構(gòu)與其對應(yīng)的 socket 會相互綁定。


3、sk_buff

  • (include\linux\Skbuff.h) sk_buff 是網(wǎng)絡(luò)數(shù)據(jù)包在內(nèi)核中的表現(xiàn)形式,通過源碼可以看出,數(shù)據(jù)包在內(nèi)核協(xié)議棧中是通過這個數(shù)據(jù)結(jié)構(gòu)來變現(xiàn)的。

  • 從其中的 union 字段可以看出,該結(jié)構(gòu)是貫穿在各個層次的,可以說這個結(jié)構(gòu)是用來為網(wǎng)絡(luò)數(shù)據(jù)包服務(wù)的。其中的字段表明了數(shù)據(jù)包隸屬的套接字、當(dāng)前所處的協(xié)議層、所搭載的數(shù)據(jù)負(fù)載長度(data指針指向)、源端,目的端地址以及相關(guān)字段等。

  • 最重要的一個字段是 data[0],這是一個指針,它指向?qū)?yīng)層的數(shù)據(jù)報(首部+數(shù)據(jù)負(fù)載)內(nèi)容的首發(fā)地址。怎么解釋呢?

如果在傳輸層,那么data指向的數(shù)據(jù)部分的首地址,其數(shù)據(jù)部分為 TCP 首部 + 有效數(shù)據(jù)負(fù)載。?

如果在網(wǎng)絡(luò)層,data指向的數(shù)據(jù)部分的首地址,其數(shù)據(jù)部分為 IP 首部 + TCP 首部 + 有效數(shù)據(jù)負(fù)載。?

如果在鏈路層,data指向的首地址,其數(shù)據(jù)布局為 MAC 首部 + IP 首部 + TCP 首部 + 有效數(shù)據(jù)負(fù)載。?

所以在該skb_buff結(jié)構(gòu)傳遞時,獲取某一層的首部,都是通過拷貝 data 指向地址對應(yīng)首部大小的數(shù)據(jù)。

4、device

  • include\linux\Netdevice.h)該結(jié)構(gòu)表明了一個網(wǎng)絡(luò)設(shè)備需要的字段信息。

5、tcp 首部格式

6、ip 首部格式

7、以太網(wǎng)幀幀頭格式

8、ARP報文報頭





詳細(xì)了解Linux內(nèi)核網(wǎng)絡(luò)協(xié)議棧socket、sock、sk_buff,etc(含內(nèi)核源碼)的評論 (共 條)

分享到微博請遵守國家法律
邵阳市| 金门县| 卫辉市| 潮州市| 定结县| 双牌县| 万宁市| 中宁县| 齐齐哈尔市| 大港区| 彰化县| 积石山| 西青区| 博罗县| 襄城县| 文山县| 丰都县| 荆门市| 珲春市| 秀山| 呼图壁县| 黑水县| 广水市| 萝北县| 新蔡县| 友谊县| 五华县| 民勤县| 城口县| 桃园县| 和平县| 桦甸市| 修文县| 桐乡市| 谢通门县| 霍城县| 德保县| 杭锦旗| 紫金县| 家居| 莒南县|