自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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é)議棧實(shí)現(xiàn)框架

自頂向下

Socket/ L4 TCP layer

1. socket layer

socket對(duì)象層次結(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選項(xiàng)

2. tcp/udp layer

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

L3 IP layer

1. IP handle

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

2. netlfilter框架

5個(gè)HOOK點(diǎn):

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

INPUT:通過(guò)路由表后目的地為本機(jī)

FORWARD:通過(guò)路由表后,目的地不為本機(jī)

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

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

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

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

mangle表: 用來(lái)修改報(bào)文,例如更改IP標(biāo)頭的TOS / DSCP / ECN位

filter表:用來(lái)過(guò)濾報(bào)文

raw表:用來(lái)提前標(biāo)記報(bào)文不走一些流程(比如不需要建會(huì)話)

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

核心處理流程

主要功能

  •  無(wú)狀態(tài)數(shù)據(jù)包過(guò)濾(IPv4和IPv6)
  •  有狀態(tài)的數(shù)據(jù)包過(guò)濾(IPv4和IPv6)
  •  各種網(wǎng)絡(luò)地址和端口轉(zhuǎn)換,例如NAT / NAPT(IPv4和IPv6)
  •  靈活可擴(kuò)展的基礎(chǔ)架構(gòu)
  •  第三方擴(kuò)展的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)
  •  鄰居表新建,更新,老化機(jī)制,狀態(tài)轉(zhuǎn)化等
  •  API接口

主要功能

  •  獲取mac地址

L2 link layer(driver)

1. Link layer

Bridge

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

主要功能

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

鏈路協(xié)議

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

Packt Type

  •  Protocol handler
  •  Packet_type list

主要功能

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

Traffic control

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

主要功能

  •  提供的流量限速、整形和策略控制機(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ū)動(dòng)實(shí)現(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é)任編輯:龐桂玉 來(lái)源: 良許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é)議棧

2011-01-24 13:58:24

TCPIP協(xié)議棧

2019-09-18 20:07:06

AndroidTCP協(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 13:32:36

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

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