LWIP数据包管理

news/2024/12/17 13:01:38/

一、LWIP数据包简介

具体流程为:

  • 用户要发送的数据;
  • 申请pbuf内存:一般使用的是内存堆(内存池也可以)。内存堆包含了pbuf结构体、以及后面要拷贝的数据和三种层的首部;
  • 将数据拷贝到pbuf数据缓冲区;
  • 发往到应用层,添加应用层首部;
  • 发往传输层,添加传输层首部;
  • 发往网络层,添加网络层首部;
  • 最后将pbuf交给 TX 描述符管理的缓冲区,然后调用以太网管理的DMA,发往TX FIFO当中,然后递交给MAC内核,由MAC内核借助介质接口转发到PHY设备当中;

LWIP是通过指针的偏移来实现首部的添加的,pbuf用于LWIP各层间的数据传递,避免了各层间拷贝数据;而标准的TCP/IP协议是每次经过下一层首部时则需要通过拷贝上一层的数据。 

 总结:LWIP是一种模糊分层的TCP/IP协议栈,数据传输效率大大提高 

二、LWIP网络数据包pbuf的结构体 

 

 其中:

  • payload指针就是用来进行将数据偏移,然后按顺序一步步偏移到应用层、传输层、网络层的首部。
  • 数据包pbuf的类型有四种: 

 

三、LWIP网络数据包pbuf的相关函数 

 

 


http://www.ppmy.cn/news/1555858.html

相关文章

【人工智能】OpenAI O1模型:超越GPT-4的长上下文RAG性能详解与优化指南

在人工智能(AI)领域,长上下文生成与检索(RAG) 已成为提升自然语言处理(NLP)模型性能的关键技术之一。随着数据规模与应用场景的不断扩展,如何高效地处理海量上下文信息,成…

第六届地博会开幕,世界酒中国菜美食文化节同期启幕推动地标发展

第六届知交会暨地博会开幕,辽黔欧三地馆亮点纷呈,世界酒中国菜助力地理标志产品发展 第六届知交会暨地博会盛大开幕,多地展馆亮点频出,美食文化节同期启幕推动地标产业发展 12月9日,第六届粤港澳大湾区知识产权交易博…

Git 命令大全:全面掌握版本控制系统

一、引言 Git 是一款广泛使用的分布式版本控制系统,它在软件开发、项目协作以及代码管理等方面发挥着极为重要的作用。无论是个人开发者独自管理代码库,还是大型团队协同开发复杂项目,Git 都提供了强大而灵活的功能来满足各种需求。通过掌握…

DAY5 C++运算符重载

1.类实现> 、<、!、||、&#xff01;和后自增、前自减、后自减运算符的重载 代码&#xff1a; #include <iostream>using namespace std; class Complex {int rel;int vir; public:Complex(){};Complex(int rel,int vir):rel(rel),vir(vir){cout << "…

(一)简单 第 N 个泰波那契数

1137. 第 N 个泰波那契数 泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 示例 1&#xff1a; 输入&#xff1a;n 4 输出&#xff1a;4 解释&#xff1a; T…

OpenHarmony-3.HDF input子系统(5)

HDF input 子系统OpenHarmony-4.0-Release 1.Input 概述 输入设备是用户与计算机系统进行人机交互的主要装置之一&#xff0c;是用户与计算机或者其他设备通信的桥梁。常见的输入设备有键盘、鼠标、游戏杆、触摸屏等。本文档将介绍基于 HDF_Input 模型的触摸屏器件 IC 为 GT91…

数据结构day4链表作业

一、链表的剩下操作 1. listLinkPtr.h //任意位置删除 int index_del(linkListPtr H, int index);//按位置修改 int index_change(linkListPtr H, int index, DataType e);//按值查找返回地址 linkListPtr node_addr(linkListPtr H, DataType e);//反转 //int node_rever(link…

华为OD机试真题---观看文艺汇演问题

华为OD机试中的“观看文艺汇演问题”是一道考察算法与数据结构能力的题目。以下是对该题目的详细解析&#xff1a; 一、题目描述 为了庆祝某个重要节日&#xff08;如中国共产党成立100周年&#xff09;&#xff0c;某公园将举行多场文艺表演。很多演出都是同时进行的&#x…