最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)核源碼)的評論 (共 條)

分享到微博請遵守國家法律
泊头市| 资兴市| 雷州市| 宁武县| 宁海县| 六安市| 阳泉市| 江城| 莎车县| 印江| 金堂县| 孝昌县| 泰兴市| 二手房| 四川省| 南投县| 崇州市| 永宁县| 濮阳县| 新营市| 松滋市| 高清| 江陵县| 牟定县| 尤溪县| 应用必备| 什邡市| 盐城市| 巧家县| 开化县| 望谟县| 故城县| 巨野县| 临潭县| 阿鲁科尔沁旗| 盐山县| 基隆市| 扎兰屯市| 梓潼县| 焦作市| 永福县|