一张表看懂uIP和lwIP的区别

我们给大家介绍过目前比较流行的开源TCP/IP开源协议栈uIP和lwIP, 这两种都是由瑞典计算机科学研究院开发的,广泛应用于嵌入式系统中。因为全功能的TCP/IP协议是很庞大的,在资源紧张的嵌入式上是很难实现的,所以本着复杂问题简单化的原则,在嵌入式的应用场景下,做了一些假设和简化,瑞典计算机科学研究院开发出了这种可在嵌入式中应用的开源TCP/IP协议栈。在freeRTOS的学习中我们就给大家介绍过这两种协议栈,uIP比lwIP更精简,被大量移植在8位,16位,32位单片机上, lwIP比uIP功能更全一些,但同时占用资源也就更多一些。上面一张图就可以看出功能区别。

两者在内存管理和分配上也有所不同,具体在移植应用时可以看源码。源码包里有一些例程可以参考学习,我们给大家移植过在freeRTOS下基于这两种协议栈的,webserver,并且测试通过,有兴趣的可以看看前几篇文章。关于协议栈的源码可以到

https://github.com/adamdunkels/uip

去下载uip源码。源码目录结构如下

学习任何一个源码都要先搞清楚他的源码目录结构。

Lwip可以去http://savannah.nongnu.org/projects/lwip/下载

源码目录结构

这两个都是开源的,可以应用于商业应用或者学习。可以根据自己的应用合理选择适合自己的协议栈。

原文发布于微信公众号 - 嵌入式程序猿(InterruptISR)

原文发表时间:2017-04-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

5大架构:细数数据平台的组成与扩展

2608
来自专栏FreeBuf

关于Fuzz工具的那些事儿

前段时间一直在研究fuzz工具,这里就写篇文章总结一下下。 在安全测试中,模糊测试(fuzz testing)是一种介于完全的手工渗透测试与完全的自动化测试之间...

1.1K5
来自专栏纯洁的微笑

微服务架构—服务降级

什么是服务降级?当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或...

1882
来自专栏恰童鞋骚年

谈谈对于企业级系统架构的理解

在我们刚开始学习架构的时候,首先会想到分层的概念,分层架构比较经典的是三层架构,那么,什么是三层架构呢?它包括表现层,业务层,数据访问层;而对于一个新手来说,从...

1272
来自专栏腾讯开源的专栏

解读|TARS开源项目发布Go语言版本

导语:近日,Tars 开源项目在上海发布并开源了 Go 语言版本,其性能与 C++ 版本相当,比 gRPC 的性能高 5 倍。  ——编者 Tars 是腾讯...

2.2K2
来自专栏Albert陈凯

一文读懂非关系型数据库(NoSQL)

一文读懂非关系型数据库(NoSQL) 本文共11000字****,阅读全文约需30分钟****。本文为大家解析非关系型数据库(NoSQL)。 前言 ---- ?...

6716
来自专栏杨建荣的学习笔记

时间序列数据库InfluxDB初探(r12笔记第74天)

性能监控中的很多数据都是根据时间维度来生成的,就算是很少的几台服务器,如果设置了大量的监控项,每天的数据量也是很客观的,再加上是成千上万的服务器,这个量级就...

3507
来自专栏Crossin的编程教室

听说你好不容易写了个爬虫,结果没抓几个就被封了?

近来知乎上如雨后春笋般冒出了大把大把的爬虫教程。这是好事,学了 Python 基础的同学们可以很轻松地搜出许多练手的例子。不过我不是针对谁,我是说网上绝大多数的...

2939
来自专栏架构师之路

数据库读写分离架构,为什么我不喜欢

RD:单库数据量太大,数据库扛不住了,我要申请一个数据库从库,读写分离。 DBA:数据量多少? RD:5000w左右。 DBA:读写吞吐量呢? RD:读QPS约...

84712
来自专栏不止思考

架构设计之「服务隔离」

那什么是「服务隔离」呢? 顾名思义,它是指将系统按照一定的原则划分为若干个服务模块,各个模块之间相对独立,无强依赖。当有故障发生时,能将问题和影响隔离在某个模块...

1463

扫码关注云+社区

领取腾讯云代金券