日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux Kernel TCP/IP Stack|Linux网络硬核系列

發布時間:2024/4/11 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux Kernel TCP/IP Stack|Linux网络硬核系列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是Alex,今天給大家介紹Linux網絡技術中最核心的部分--TCP/IP協議棧?。? ? ? ?

我們先看一下抽象的網絡協議棧模型

TCP/IP四層(參考)模型

再按分層思想看Linux內核協議棧實現框架

自頂向下

Socket/ L4 TCP layer

1. socket layer

socket對象層次結構

socket框架

  • socket系統調用(socket,bind,listen,accept,send,recv等)

  • BSD socket API

  • 協議棧sock抽象適配層

  • tcp/udp/icmp/raw/packet/netlink/... socket管理

  • socket選項

2. tcp/udp layer

  • TCP報文收發

  • TCP Socket連接管理

  • TCP協議狀態機,定時器處理

  • TCP滑動窗口,擁塞控制框架

L3 IP layer

1. IP handle

  • 報文分片和重組

  • IP協議字段處理,IP選項,Qos,TTL,校驗等處理

  • 報文接收(解封裝)和發送(IP協議封裝,提供給上層接口)

  • 組播,ICMP協議處理等

2. netlfilter框架

5個HOOK點:

PREROUTING:數據包進入路由表之前

INPUT:通過路由表后目的地為本機

FORWARD:通過路由表后,目的地不為本機

OUTPUT:由本機產生,向外發送

POSTROUTIONG:發送到網卡接口之前。

每個HOOK點都會執行一些函數,大致分為下面幾個表:

NAT表: 用于實現nat功能,端口映射,地址映射等

mangle表: 用來修改報文,例如更改IP標頭的TOS / DSCP / ECN位

filter表:用來過濾報文

raw表:用來提前標記報文不走一些流程(比如不需要建會話)

conntrack表:連接跟蹤表,跟蹤連接會話,用來實現狀態防火墻,NAT功能的基礎,可擴展更多功能。

核心處理流程

主要功能

  • 無狀態數據包過濾(IPv4和IPv6)

  • 有狀態的數據包過濾(IPv4和IPv6)

  • 各種網絡地址和端口轉換,例如NAT / NAPT(IPv4和IPv6)

  • 靈活可擴展的基礎架構

  • 第三方擴展的API

3. 路由系統

協議棧處理位置

路由子系統架構

  • FIB(The Forwarding Information Base?)

  • 策略路由 Policies

  • 路由匹配HASH,LC-tries等

主要功能

  • 三層路由轉發

4. 鄰居系統

  • ARP協議(IPV4),NDP協議(IPV6)

  • 鄰居表新建,更新,老化機制,狀態轉化等

  • API接口

主要功能

  • 獲取mac地址

L2 link layer(driver)

1. Link layer

Bridge

  • FDB(mac forwarding database)管理

  • port,bridge對象管理和報文接收,轉發

  • STP,vlan協議相關處理

主要功能

  • 實現二層mac轉發

鏈路協議

  • IEEE 802協議族(STP,VLAN,以太網,無線wifi,令牌環等)

Packt Type

  • Protocol handler

  • Packet_type list

主要功能

  • 鏈路層報文協議分發

Traffic control

  • qdisc :通過隊列將數據包緩存起來,用來控制網絡收發的速度

  • class :用來表示控制策略

  • filter :用來將數據包劃分到具體的控制策略

???主要功能

  • 提供的流量限速、整形和策略控制機制(Qos)

2. hardware driver layer

  • 網絡設備管理

  • RPS,RFS,XPS,GRO,GSO,TSO等優化特性

  • 網卡軟中斷收發,NAPI,DMA

  • 支持各種網卡驅動實現

協議棧文件系統

Proc FileSystem

  • /proc/net

  • /proc/sys/net

    ? ipv4

? ? ? ? ? core

Sys FileSystem

  • /sys/class/net/ethx

主要功能

  • 提供協議棧相關配置查詢和設置

最后

整體架構圖

如果想了解更多細節,請閱讀Linux內核源碼或者參考下面兩本經典著作:

《The Linux Networking Architecture》

《Understanding Linux Network Internals》

公眾號回復"協議棧"可獲取經典PDF

我們下次見!

看完記得一鍵三連在看轉發,點贊

是對文章最大的贊賞,感謝

推薦閱讀

計算機網絡硬核指南|網絡設計核心思想

網絡排障全景指南手冊v1.0精簡版pdf?

一個奇葩的網絡問題

總結

以上是生活随笔為你收集整理的Linux Kernel TCP/IP Stack|Linux网络硬核系列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。