偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux 網(wǎng)絡(luò)硬核系列:TCP/IP 協(xié)議棧

系統(tǒng) Linux
今天給大家介紹Linux網(wǎng)絡(luò)技術(shù)中最核心的部分--TCP/IP協(xié)議棧 。

 

今天給大家介紹Linux網(wǎng)絡(luò)技術(shù)中最核心的部分--TCP/IP協(xié)議棧 。       

我們先看一下抽象的網(wǎng)絡(luò)協(xié)議棧模型

TCP/IP四層(參考)模型

再按分層思想看Linux內(nèi)核協(xié)議棧實現(xiàn)框架

自頂向下

Socket/ L4 TCP layer

1. socket layer

socket對象層次結(jié)構(gòu)

socket框架

  •  socket系統(tǒng)調(diào)用(socket,bind,listen,accept,send,recv等)
  •  BSD socket API
  •  協(xié)議棧sock抽象適配層
  •  tcp/udp/icmp/raw/packet/netlink/... socket管理
  •  socket選項

2. tcp/udp layer

  •  TCP報文收發(fā)
  •  TCP Socket連接管理
  •  TCP協(xié)議狀態(tài)機,定時器處理
  •  TCP滑動窗口,擁塞控制框架

L3 IP layer

1. IP handle

  •  報文分片和重組
  •  IP協(xié)議字段處理,IP選項,Qos,TTL,校驗等處理
  •  報文接收(解封裝)和發(fā)送(IP協(xié)議封裝,提供給上層接口)
  •  組播,ICMP協(xié)議處理等

2. netlfilter框架

5個HOOK點:

PREROUTING:數(shù)據(jù)包進入路由表之前

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

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

OUTPUT:由本機產(chǎn)生,向外發(fā)送

POSTROUTIONG:發(fā)送到網(wǎng)卡接口之前。

每個HOOK點都會執(zhí)行一些函數(shù),大致分為下面幾個表:

NAT表: 用于實現(xiàn)nat功能,端口映射,地址映射等

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

filter表:用來過濾報文

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

conntrack表:連接跟蹤表,跟蹤連接會話,用來實現(xiàn)狀態(tài)防火墻,NAT功能的基礎(chǔ),可擴展更多功能。

核心處理流程

主要功能

  •  無狀態(tài)數(shù)據(jù)包過濾(IPv4和IPv6)
  •  有狀態(tài)的數(shù)據(jù)包過濾(IPv4和IPv6)
  •  各種網(wǎng)絡(luò)地址和端口轉(zhuǎn)換,例如NAT / NAPT(IPv4和IPv6)
  •  靈活可擴展的基礎(chǔ)架構(gòu)
  •  第三方擴展的API

3. 路由系統(tǒng)

協(xié)議棧處理位置

路由子系統(tǒng)架構(gòu)

  •  FIB(The Forwarding Information Base )
  •  策略路由 Policies
  •  路由匹配HASH,LC-tries等

主要功能

    三層路由轉(zhuǎn)發(fā)

4. 鄰居系統(tǒng)

  •  ARP協(xié)議(IPV4),NDP協(xié)議(IPV6)
  •  鄰居表新建,更新,老化機制,狀態(tài)轉(zhuǎn)化等
  •  API接口

主要功能

  •  獲取mac地址

L2 link layer(driver)

1. Link layer

Bridge

  •  FDB(macforwarding database)管理
  •  port,bridge對象管理和報文接收,轉(zhuǎn)發(fā)
  •  STP,vlan協(xié)議相關(guān)處理

主要功能

  •  實現(xiàn)二層mac轉(zhuǎn)發(fā)

鏈路協(xié)議

  •  IEEE 802協(xié)議族(STP,VLAN,以太網(wǎng),無線wifi,令牌環(huán)等)

Packt Type

  •  Protocol handler
  •  Packet_type list

主要功能

  •  鏈路層報文協(xié)議分發(fā)

Traffic control

  •   qdisc :通過隊列將數(shù)據(jù)包緩存起來,用來控制網(wǎng)絡(luò)收發(fā)的速度
  •  class :用來表示控制策略
  •  filter :用來將數(shù)據(jù)包劃分到具體的控制策略

主要功能

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

2. hardware driver layer

  •  網(wǎng)絡(luò)設(shè)備管理
  •  RPS,RFS,XPS,GRO,GSO,TSO等優(yōu)化特性
  •  網(wǎng)卡軟中斷收發(fā),NAPI,DMA
  •  支持各種網(wǎng)卡驅(qū)動實現(xiàn)

協(xié)議棧文件系統(tǒng)

Proc FileSystem

  •  /proc/net
  •  /proc/sys/net

           ipv4

           core

Sys FileSystem

  •  /sys/class/net/ethx

主要功能

  •  提供協(xié)議棧相關(guān)配置查詢和設(shè)置

最后

整體架構(gòu)圖

 

責(zé)任編輯:龐桂玉 來源: 良許Linux
相關(guān)推薦

2010-06-13 14:54:40

TCP IP協(xié)議棧linux

2010-09-08 15:11:36

TCP IP協(xié)議棧

2021-07-06 21:29:16

TCPIP協(xié)議棧

2019-09-30 09:28:26

LinuxTCPIP

2014-10-15 09:14:24

IP

2010-09-08 15:24:28

TCP IP協(xié)議棧

2010-09-08 15:15:12

TCP IP協(xié)議棧

2010-09-27 13:25:58

TCP IP協(xié)議棧

2010-09-08 15:34:27

TCP IP協(xié)議棧

2010-06-13 13:39:46

TCP IP協(xié)議棧

2019-09-18 20:07:06

AndroidTCP協(xié)議

2011-01-24 13:58:24

TCPIP協(xié)議棧

2010-06-12 15:54:09

TCP IP協(xié)議

2019-10-22 08:41:09

TCPIPLinux

2019-07-01 08:51:49

TCPIPLinux

2020-07-09 08:14:43

TCPIP協(xié)議棧

2010-09-09 14:43:08

TCP IP協(xié)議棧

2010-09-09 16:28:19

2019-08-21 05:48:06

TCPIP協(xié)議棧

2010-06-19 14:10:35

TCP IP協(xié)議棧
點贊
收藏

51CTO技術(shù)棧公眾號