【 网络协议栈 】
文章平均质量分 73
网络通讯、网络分层、网络驱动及网络编程
老理说的好
技术也修行!
展开
-
ethtool 源码解析、内核与用户空间全面解读
ethtool工具是网卡调试、问题排查常用工具;其框架如下图:用户空间源码可以在系统上直接安装,主要负责接收用户输入 ethtool 命令内容,把用户输入的内容转换为发送到内核的 ioctl() 函数识别格式。一、ethtool 用户源码分析1、ethtool 子命令数据管理方法/* Context for sub-commands */struct cmd_context { const char *devname; /* net device name */ int fd; /* so原创 2021-06-27 13:09:47 · 3380 阅读 · 3 评论 -
8 -->详解《switch 数据接收驱动框架、mtk7621集成交换芯片mt7530》之四
一、简述上篇分享workqueue工作队列接收、接管网卡数据接收中断下半部分,通过 pt_prev->func (skb, skb->dev, pt_prev, orig_dev) 函数,把接收的数据送往协议栈。此部分分享协议栈接收数据部分内容。内核实现了网络层的ip协议,也实现了传输层的tcp协议和udp协议。这些协议对应的实现函数分别是ip_rcv(),tcp_v4_rcv()和udp_rcv()。和我们平时写代码的方式不一样的是,内核是通过注册的方式来实现的。Linux内核中的fs_i原创 2021-06-26 18:08:41 · 1350 阅读 · 0 评论 -
7 -->详解《switch 数据接收驱动框架、mtk7621集成交换芯片mt7530》之三
一、简述mt7530 交换芯片的数据接收中断后,把具体接收数据工作任务、委托到 workqueue 队列中,让内核 work_thread () 线程任务来处理。这部分内容请参考《workqueue 工作原理》中的描述。workqueue 基本工作流框架如下:框架业务关系:1、程序把work单、加入至workqueue 中,就等于把工作安排好,是工单的生成者、派遣者;2、worker_pool 是工厂、提供工作的场地,worker是工人、负责执行工单,消费者;3、PWQ(pool workq原创 2021-06-24 16:35:48 · 2000 阅读 · 0 评论 -
4 --> 网络驱动架构基础之 — Linux 网络栈剖析
网络协议栈剖析,内容待续。原创 2021-02-10 22:40:12 · 327 阅读 · 0 评论 -
3 -->Linux网络协议栈:网络包接收过程
linux内核网络分层结构,内容待续。转载 2021-02-10 22:44:04 · 331 阅读 · 0 评论 -
1 --> 网络驱动架构基础之 — 网络设备驱动基本框架
一、网络协议栈之 — 层次划分网络协议栈根据osi标准、和linux协议栈划分层级关系对比如下以太网通信网络一般划分为5层、把linux的网络接口层分为网络层和链路层;一般常用说说的网络分层、如果没有特指的话、可以按照5层分层结构。二、Linux网络子系统Linux网络子系统的顶部是系统调用接口层。它为用户空间提供的应用程序提供了一种访问内核网络子系统的方法(socket)。位于其下面是一个协议无关层,它提供一种通用的方法来使用传输层协议。然后是具体协议的实现,在Linux中包括内核的协议TCP,U原创 2021-02-17 14:02:04 · 1469 阅读 · 0 评论 -
5 --> 网络驱动架构基础之 — Netfilter 浅析
一、前言本文主要对 Linux 系统内核协议栈中网络层接收,发送以及转发数据包的流程进行简要介绍,同时对 Netfilter 数据包过滤框架的基本原理以及使用方式进行简单阐述。二、 基础网络知识2.1 网络分层模型OSI 模型中将网络划分为七层,但在目前实际广泛使用的 TCP/IP 协议框架体系内,我们一般将网络划分为五层,从下到上依次为物理层,链路层,网络层,传输层以及应用层。两者的区别在于 OSI 模型在应用层对数据包做了更细致的划分。两者的关系如下图所示:在 TCP/IP 协议框架体系的五层原创 2021-02-25 23:07:20 · 582 阅读 · 0 评论 -
2 --> 网络驱动架构基础之 — Linux网络包接收过程
通过本文,你将深入理解Linux网络系统内部是如何实现的,以及各个部分之间如何交互。相信这对你的工作将会有非常大的帮助。一、Linux网络收包总览在TCP/IP网络分层模型里,整个协议栈被分成了物理层、链路层、网络层,传输层和应用层。物理层对应的是网卡和网线,应用层对应的是我们常见的Nginx,FTP等等各种应用。Linux实现的是链路层、网络层和传输层这三层。在Linux内核实现中,链路层协议靠网卡驱动来实现,内核协议栈来实现网络层和传输层。内核对更上层的应用层提供socket接口来供用户进程访问原创 2021-02-15 00:52:36 · 702 阅读 · 0 评论 -
网络驱动技术文章摘录
参考书籍:《Understanding Linux Network Internals》《The Linux Networking Architecture Design and Implementation of Network Protocols in the Linux Kernel》前者确实是一本关于internals的书,前三个part:General Background/System Initialization/Transmission and Reception以及第5个part:I原创 2021-05-10 15:56:59 · 202 阅读 · 3 评论 -
网络驱动开发 资料汇总
7.1 网络技术之 — PON 无源光纤接入技术https://baike.baidu.com/item/PON/716589https://baike.baidu.com/item/PON%E6%8A%80%E6%9C%AF/66775491.1 网络驱动开发基础之 — 以太网PHY芯片https://blog.csdn.net/zqixiao_09/article/details/518422241.2 网络驱动开发基础之 — 以太网光电PHY芯片https://blog.csdn.net/原创 2021-04-20 19:02:45 · 450 阅读 · 0 评论 -
1 --> 以太网 PHY 层简介
一、网卡的主要特点1、基础知识 网卡(Network Interface Card,简称NIC),也称网络适配器,是电脑与局域网相互连接的设备。无论是普通电脑还是高端服务器,只要连接到局域网,就都需要安装一块网卡。如果有必要,一台电脑也可以同时安装两块或多块网卡。 电脑之间在进行相互通讯时,数据不是以流而是以帧的方式进行传输的。我们可以把帧看做是一种数据包,在数据包中不仅包含有数据信息,而且还包含有数据的发送地、接收地信息和数据的校验信息。 一块网卡包括OSI模型的两个层——物理层和数据链原创 2021-01-22 15:45:16 · 3562 阅读 · 0 评论 -
5 --> Linux dsa 框架原理解析
dsa 全称是 Distributed Switch Architecture ,即分布式交换机架构。其介绍可见:Documentation\networking\dsa\dsa.txt是linux 内核自带的交换机子系统。设计目的是使交换机可以通过工具bridge, iproute2, ifconfig 直接进行配置/查询。具体实现,有待研究。...原创 2021-04-11 23:08:04 · 3133 阅读 · 0 评论 -
4 --> linux PHY 驱动框架解析
phy 的驱动代码drivers/net/phy/*设计 phy 驱动框架的目的大部分网络设备由向 MAC 层提供接口的多个寄存器的集合组成,MAC 层通过 PHY 与物理链路连接。phy自身要解决与对端网络链接时链路参数协商的功能,并且提供一个寄存器接口让驱动来确定当前选择的配置,同时驱动也能够配置那些 phy 运行的设置。phy与网络设备有明确的区别,并符合寄存器的标准布局。常见的网卡设备设计中会在网卡驱动中集成 phy 的管理代码。这样的方式产生了一大堆不能复用的代码。同时,在一些具有多个以原创 2021-04-11 23:06:00 · 3910 阅读 · 1 评论 -
5-->详解《switch 数据接收驱动框架、mtk7621集成交换芯片mt7530》之一
SWITCH 交换芯片驱动配置:一、 配置 MDIO 总线二、配置 MAC 接口三、基于 MAC 的 DMA 配置四、设备驱动结构体五、数据收发包原创 2021-03-29 15:59:23 · 8450 阅读 · 0 评论 -
2 -- > 网络相关接口汇总描述 ( MII RMII SMII GMII RMII SGMII PHY )
一:交换机的原理机制信号转发的网络设备,介入交换机的任意两个节点共享信号通路,工作与OSI的数据链路层,同事可以进行多个端口的数据传输,交换机上电后会自动创建一个端口地址表,叫做MAC地址表,,会记录mac地址和哪个端口连接,然后自动学习,每次进到交换机的信息,都会记录下穿送过来的设备地址的mac地址,过程就是,学习mac地址,广播mac地址,查找mac地址,配对mac地址。二: MII 接口描述MII (Media Independent Interface(介质无关接口)或称为媒体独立接口,它是I原创 2021-03-29 15:50:51 · 3283 阅读 · 0 评论 -
6 -->详解《switch 数据接收驱动框架、mtk7621集成交换芯片mt7530》之二
内容待续。原创 2021-02-07 23:34:39 · 2368 阅读 · 0 评论