0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux网络技术中最核心的部分--TCP/IP协议栈

Linux爱好者 来源:极客重生 作者:Alex码农的艺术 2021-06-29 15:14 次阅读

今天给大家介绍Linux网络技术中最核心的部分--TCP/IP协议栈 。

我们先看一下抽象的网络协议栈模型

再按分层思想看Linux内核协议栈实现框架

1. socket layer

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滑动窗口,拥塞控制框架

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地址

1. Link layer

FDB(macforwarding 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

主要功能

提供协议栈相关配置查询和设置

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IPv6
    +关注

    关注

    6

    文章

    618

    浏览量

    58949
  • ARP协议
    +关注

    关注

    0

    文章

    9

    浏览量

    6875
  • NDP
    NDP
    +关注

    关注

    0

    文章

    6

    浏览量

    1368

原文标题:Linux 网络硬核系列:TCP/IP 协议栈

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TCP/IP协议簇中必知必会的十大问题

    TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络
    发表于 04-22 12:48 90次阅读
    <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>簇中必知必会的十大问题

    linux TCP/IP 协议栈源码分析

    socket结构体现。这一部分的文件 主要有:/net/socket.c /net/protocols.c etc INET socket层:BSD socket是个可以用于各种网络协议的接口,而当用于
    的头像 发表于 11-09 15:04 892次阅读
    <b class='flag-5'>linux</b> <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b> <b class='flag-5'>协议</b>栈源码分析

    TCP/IP协议和OPC协议的区别

    随着计算机网络技术的飞速发展,网络通信已经成为现代工业自动化控制系统中不可或缺的一部分。在众多的网络通信协议中,传输控制协议
    的头像 发表于 10-20 17:34 1758次阅读

    分布式控制系统中的数据通信与网络技术

    讯维分布式控制系统中的数据通信与网络技术是实现分布式计算和数据交换的关键技术之一。以下是几个常用的数据通信与网络技术TCP/IP
    的头像 发表于 08-31 17:07 345次阅读

    Linux网络技术栈的相关知识

    网络是一个很复杂的协议栈,今天网络这么发达,网络协议起到关键性作用。 这里就给大家详细描述一下:Li
    的头像 发表于 08-24 10:33 446次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>网络技术</b>栈的相关知识

    TCP IP协议,一次课开启你的网络之门 - 第20节 #硬声创作季

    网络协议TCP协议
    充八万
    发布于 :2023年08月17日 14:30:19

    TCP IP协议,一次课开启你的网络之门 - 第19节 #硬声创作季

    网络协议TCP协议
    充八万
    发布于 :2023年08月17日 14:29:29

    TCP IP协议,一次课开启你的网络之门 - 第18节 #硬声创作季

    网络协议TCP协议
    充八万
    发布于 :2023年08月17日 14:28:39

    TCP IP协议,一次课开启你的网络之门 - 第17节 #硬声创作季

    网络协议TCP协议
    充八万
    发布于 :2023年08月17日 14:27:49

    TCP IP协议,一次课开启你的网络之门 - 第16节 #硬声创作季

    网络协议TCP协议
    充八万
    发布于 :2023年08月17日 14:26:59

    TCP/IP协议不止是两个协议

    TCP/IP(TransmissionControlProtocol/InternetProtocol,传输控制协议/网际协议)是指能够在多个不同
    的头像 发表于 07-31 23:07 788次阅读
    <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>不止是两个<b class='flag-5'>协议</b>

    TCP/IP协议进阶课程:6、TCP协议

    电子发烧友网站提供《TCP/IP协议进阶课程:6、TCP协议.pdf》资料免费下载
    发表于 07-31 11:47 1次下载
    <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>进阶课程:6、<b class='flag-5'>TCP</b><b class='flag-5'>协议</b>

    TCP/IP协议包括哪些协议 一文详解TCP/IP协议

    TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同
    发表于 07-21 09:56 6546次阅读
    <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>包括哪些<b class='flag-5'>协议</b> 一文详解<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>

    网络通信OSI协议TCP/IP协议

    TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同
    发表于 05-06 17:06 1794次阅读

    TCP/IP协议的组成

    TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯
    发表于 05-06 15:05 1796次阅读