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

    文章

    736

    浏览量

    62850
  • ARP协议
    +关注

    关注

    0

    文章

    10

    浏览量

    7124
  • NDP
    NDP
    +关注

    关注

    0

    文章

    7

    浏览量

    1658

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    EtherNet/IPTCP/IP 塔讯智能网关储能PACK产线集中管控

    。本次20GWh储能电池PACK生产线项目中,塔讯TX 181-RE-EIS/TCPIP总线协议网关凭借专业的协议转换能力,作为核心工业网关与智能网关,成功实现EtherNet/IP
    的头像 发表于 03-27 15:48 246次阅读
    EtherNet/<b class='flag-5'>IP</b>转<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b> 塔讯智能网关储能PACK产线集中管控

    疆鸿智能EtherNet/IP和Modbus TCP技术应用,建议点赞收藏!

    疆鸿智能EtherNet/IP和Modbus TCP技术应用,建议点赞收藏! 随着工业自动化向数字化、智能化迈进,不同通信协议间的互联互通已成为构建高效生产
    的头像 发表于 03-18 14:56 177次阅读
    疆鸿智能EtherNet/<b class='flag-5'>IP</b>和Modbus <b class='flag-5'>TCP</b><b class='flag-5'>技术</b>应用,建议点赞收藏!

    TCP/IP(Socket)协议深度剖析

    TCP/IP协议作为互联网通信的基础架构,其核心机制Socket编程承载着全球数据交换的使命。本文将深入剖析这一协议的七层架构、三次握手与四
    的头像 发表于 03-03 17:06 772次阅读

    工业级4G路由器:TCP/IP与UDP协议,解锁工业物联网高效传输新范式

    /以太网能力,正重新定义工业数据传输的边界。其核心优势,在于对TCP/IP与UDP协议的深度适配,为不同场景提供精准的通信解决方案。    ‌TCP
    的头像 发表于 01-19 18:25 302次阅读
    工业级4G路由器:<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>与UDP<b class='flag-5'>协议</b>,解锁工业物联网高效传输新范式

    疆鸿智能ETHERCAT转MODBUS TCP/IP,破解化工设备异构通信难题

    型化工企业生产线控制系统核心采用倍福(Beckhoff)PLC,其基于高性能ETHERCAT总线连接各类实时I/O模块与伺服驱动器。与此同时,生产线中广泛分布的数十台智能马达保护器,则普遍支持MODBUS TCP/IP
    的头像 发表于 01-06 15:22 331次阅读
    疆鸿智能ETHERCAT转MODBUS <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>,破解化工设备异构通信难题

    华为IP Club沪之行上海金融网络技术沙龙圆满落幕

    以“品智联接 数智金融”为主题的华为IP Club沪之行-上海金融网络技术沙龙成功举办。众多金融行业代表、产业学者齐聚一堂,围绕行业面临的挑战与演进方向,共同探讨在技术变革与业务高要求的双重驱动下,如何构建面向未来的金融
    的头像 发表于 12-25 15:18 736次阅读

    为什么会有TCP/IP协议

    见了面,完全不能交流信息。因而他们需要定义一些共通的东西来进行交流,TCP/IP就是为此而生。TCP/IP不是一个协议,而是一个
    发表于 12-03 06:28

    飞凌嵌入式ElfBoard-Linux系统基础入门-网络相关shell命令之网络基础知识

    参考模型中的网络层,是TCP/IP协议核心,将数据包进行分组并发往目的主机。主要解决主机到主
    发表于 10-09 09:30

    rtthread网络接口设备 轻量级tcp/ip 堆栈 这两个冲突吗?

    需要使用 lwip 上图中 网络接口设备 需要使能么? 上图中 网络接口设备 是干嘛用的?是一个比lwip 功能弱的tcp/ip 协议
    发表于 09-18 06:16

    GraniStudio : TCP/IP(Socket)协议深度剖析

    在工业自动化与物联网领域,TCP/IP(Socket)协议作为应用最广泛的网络通信标准,是实现设备间数据交互的核心技术。GraniStudi
    的头像 发表于 08-03 22:20 1349次阅读
    GraniStudio : <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>(Socket)<b class='flag-5'>协议</b>深度剖析

    什么是Modbus TCP协议

    TCP/IP协议,通过以太网进行通信,并支持多个设备同时访问同一个Modbus TCP服务器。 一、
    的头像 发表于 07-23 17:18 4756次阅读
    什么是Modbus <b class='flag-5'>TCP</b><b class='flag-5'>协议</b>

    Linux网络管理的关键技术和最佳实践

    在大型互联网企业中,Linux网络管理是运维工程师的核心技能之一。面对海量服务器、复杂网络拓扑、高并发流量,运维人员需要掌握从基础网络配置到
    的头像 发表于 07-09 09:53 1109次阅读

    CC\\-Link IE转Modbus TCP:风电设备通信的“双语模式”

    ; 3. 地址绑定:通过配置工具将CC-Link IE的软元件地址(如D1000)与Modbus TCP寄存器地址(如40001)一一对应。 这种转换无需修改原有设备协议,仅需在网关中设置
    发表于 07-07 14:45

    RDMA简介2之A技术优势分析

    数据包时,应用程序将要传输的数据拷贝到TCP/IP协议的BUFFER中,TCP/IP
    发表于 06-04 11:35

    51+单片机TCP-IP+协议ZLIP源码

    概述 单片机上网技术,是当前的一个热门技术。单片机上网技术中的一个重要部分是在单片上实现 TCP/IP
    发表于 04-22 15:11