当前位置: 首页 > 软件库 > 程序开发 > 网络工具包 >

lwIP

开源TCP/IP协议栈
授权协议 未知
开发语言 C/C++
所属分类 程序开发、 网络工具包
软件类型 开源软件
地区 不详
投 递 者 翟棋
操作系统 嵌入式
开源组织
适用人群 未知
 软件概览

Lwip是一个非常优秀的开源TCP/IP协议栈。

lwip提供三种API:1)RAW API 2)lwip API 3)BSD API。

RAW API把协议栈和应用程序放到一个进程里边,该接口基于函数回调技术,使用该接口的应用程序可以不用进行连续操作。不过,这会使应用程序编写难度加大且代 码不易被理解。为了接收数据,应用程序会向协议栈注册一个回调函数。该回调函数与特定的连接相关联,当该关联的连接到达一个信息包,该回调函数就会被协议 栈调用。这即有优点也有缺点。优点是既然应用程序和TCP/IP协议栈驻留在同一个进程中,那么发送和接收数据就不再产生进程切换。主要缺点是应用程序不 能使自己陷入长期的连续运算中,这样会导致通讯性能下降,原因是TCP/IP处理与连续运算是不能并行发生的。这个缺点可以通过把应用程序分为两部分来克 服,一部分处理通讯,一部分处理运算。
RAW API把接收与处理放在一个线程里面。这样只要处理流程稍微被延迟,接收就会被阻塞,直接造成频繁丢包、响应不及时等严重问题。因此,接收与协议处理必须 分开。LwIP的作者显然已经考虑到了这一点,他为我们提供了tcpip_input()函数来处理这个问题,虽然他并没有在rawapi一文中说明。讲 到这里,读者应该知道tcpip_input()函数投递的消息从哪里来的答案了吧,没错,它们来自于由底层网络驱动组成的接
收线程。我们在编写网络驱动时,其接收部分以任务的形式创建。数据包到达后,去掉以太网包头得到IP包,然后直接调用tcpip_input()函数将其 投递到mbox邮箱。投递结束,接收任务继续下一个数据包的接收,而被投递得IP包将由TCPIP线程继续处理。这样,即使某个IP包的处理时间过长也不 会造成频繁丢包现象的发生。这就是lwip API。   
BSD API提供了基于open-read-write-close模型的UNIX标准API,它的最大特点是使应用程序移植到其它系统时比较容易,但用在嵌入式系统中效率比较低,占用资源多。这对于我们的嵌入式应用有时是不能容忍的。   

  • 1介绍 lwIP 是 TCP/IP 协议套件的小型独立实现。 lwIP TCP/IP 实现的重点是减少 RAM 使用同时仍然有一个完整的 TCP。这使得 lwIP 适合使用 在具有数十 KB 可用 RAM 和空间的嵌入式系统中大约 40 KB 的代码 ROM。 lwIP 最初由计算机和网络的 Adam Dunkels 开发瑞典计算机科学研究所 (SICS) 的架构 (CNA) 实验室 现在由全球开

  • 1、内存管理 1.1 动态内存池 1.1.1 原理 此种方式下,用户只能申请固定大小的空间,例如UDP控制块,TCP控制块。 1.1.2 Lwip的实现源码 下述代码主要用于内存池的初始化,Lwip协议栈中,把所有的pool挨个放在一起,并把它们放在一片连续的内存空间,这样形成了一个巨大的内存池。 void memp_init(void) { u16_t i; /* for every

  • 简介 1、 介绍 LwIP 全名:Light weight IP,意思是轻量化的 TCP/IP 协议,是瑞典计算机科学院 (SICS) 的 AdamDunkels 开发的一个小型开源的 TCP/IP 协议栈。 LwIP 的设计初衷是:用少量的资源消耗实现一个较为完整的 TCP/IP协议栈,其中“完整”主要指的是 TCP 协议的完整性,实现的重点是在保持 TCP 协议主要功能的基础上减少对 RAM

 相关资料
  • TCP/IP 是不同的通信协议的大集合。 协议族 TCP/IP 是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的大集合。 TCP - 传输控制协议 TCP 用于从应用程序到网络的数据传输控制。 TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。 IP - 网际协议(Internet Protocol) IP 负责计算机之间的通信。 IP 负责在因特网

  • 本文向大家介绍TCP/IP协议的四层分类相关面试题,主要包含被问及TCP/IP协议的四层分类时的应答技巧和注意事项,需要的朋友参考一下 APP的兼容性测试包含哪些? 浏览器 系统 分辨率 网络

  • 在这个互联网蓬勃发展的时代,网络正在迅速的改变着我们周围的一切。小到智能电灯、智能手表,大到航天飞机、宇宙空间站,这所有的一切都被互联网连接到了一起。他们之间能够相互识别,相互通信,这所有的一切都依赖于 TCP/IP 协议。TCP/IP 不是一个协议,而是一个协议族的统称。里面包括了 IP 协议,IMCP 协议,TCP 协议,以及我们更加熟悉的 http、ftp、pop3 协议等等。有了 TCP/

  • 第 36 章 TCP/IP协议基础 目录 1. TCP/IP协议栈与数据包封装 2. 以太网(RFC 894)帧格式 3. ARP数据报格式 4. IP数据报格式 5. IP地址与路由 6. UDP段格式 7. TCP协议 7.1. 段格式 7.2. 通讯时序 7.3. 流量控制

  • TCP 的特性 TCP 提供一种面向连接的、可靠的字节流服务 在一个 TCP 连接中,仅有两方进行彼此通信。广播和多播不能用于 TCP TCP 使用校验和,确认和重传机制来保证可靠传输 TCP 给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复 TCP 使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制 注意:TCP 并不能保证数据一定会被对方接收到,因为这是不可能的。T

  • 本文向大家介绍你知道TCP协议、IP协议、HTTP协议分别在哪一层吗?相关面试题,主要包含被问及你知道TCP协议、IP协议、HTTP协议分别在哪一层吗?时的应答技巧和注意事项,需要的朋友参考一下 考察点:网络七层模型 运输层,网络层,应用层。 七层结构:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 tcp属于传输层;http属于应用层。

  • TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。 Chrome提供sockets.tcp接口使Chrome应用可以进行TCP通信。要使用sockets.tcp接口需要在sockets域中声明tcp权限: "sockets": { "tcp": { "connect": ["192.168.1.100:80", ":8080"] } } 上面的代码表示应

  • 7. TCP协议 7.1. 段格式 TCP的段格式如下图所示(该图出自[TCPIP])。 图 36.12. TCP段格式 和UDP协议一样也有源端口号和目的端口号,通讯的双方由IP地址和端口号标识。32位序号、32位确认序号、窗口大小稍后详细解释。4位首部长度和IP协议头类似,表示TCP协议头的长度,以4字节为单位,因此TCP协议头最长可以是4x15=60字节,如果没有选项字段,TCP协议头最短2