1.前言

本文主要是对LwIP Application Developers Manual的翻译

2.读者(应用开发手册的读者)

  • 谁适合读这份手册

网络应用的开发者

想了解lwIP的网络应用开发者

  • 阅读前需要了解的知识

熟悉 C ANSI的编程、熟悉TCP/IP的一般知识

  • 阅读前需要阅读什么

若要阅读lwIP Platform Developers Manual或lwIP Developers Manual请先阅读本手册

3.lwIP的介绍

3.1 提出lwIP的原因

在最近几年,人们对计算机的连接和支持无线网络连接的计算机设备越来越感兴趣。计算机已经与越来越多的设备集成在一起且价格在不断的下降。

同时无线组网技术已经变得流行,比如蓝牙和IEEE 802.11 b/g(WIFI)。这个导致了许多新的有趣的应用场景在医疗保健,安全,传输和加工工业。

小型设备像传感器连接到外部网络基础设备(比如全球互联网的)就可以在任何地方进行监控。网络技术已经被证明具有足够的灵活性来兼容过去几十年的网络环境。

现在网络技术的链接技术与过去开发的低速网络(如ARPANET)的相比有大量频带且在带宽和比特误码率有极大差别的。

未来的无线网络利用现有的网络技术是非常有利的,这是由于大量使用了网络技术的应用已经被开发出来。另外,全球互联网巨大的连通性也是一个很大的诱因。

由于像传感器这样的小型设备经常要求更小的物理尺寸和价格,一个能在有限的资源内实现的网络协议栈被提出。

3.2 LwIP,一个轻量级的TCP/IP协议栈

  • 模块化设计

本文档描述了lwIP的设计和和实现。lwIP足够小,适合在资源有限的系统上运行。lwIP被设计成模块化。

  • 基于IP协议可添加多种协议

内核协议实现了IP协议,在该IP协议上用户可以选择添加TCP、UDP、DHCP、和很多其他协议,包括这些协议的各种特性(比如,IP的分片和重组)。

更多的特性是以代码大小变大和复杂度变高为代价的,幸运的是许多特性可以被调整来满足用户的需求。

  • lwIP多平台运行

更进一步来说,lwIP被设计成可以和操作系统一起运行或独自运行,且支持多线程和单线程。lwIP可以在8位和32位的微处理器上运行,且支持小端和大端的系统。

3.3 lwIP目录结构

如下列表是一个关于lwIP文件和目录结构的简短概述:

lwip/src

lwip/src/api - Netconn APISocket APItcpip thread

lwip/src/core –内核代码: DHCPTCPUDP, 和一些支持的代码(memory内存, netif网络接口, etc等等)

lwip/src/core/ipv4 - IPv4ICMP

lwip/src/core/ipv6 - IPv6

lwip/src/core/snmp - SNMP

lwip/src/include - all headers and includes

lwip/src/netif - ARP and sample Ethernet driver

lwip/src/netif/ppp - PPP

为了得到lwIP的代码,请浏览 Savannah project page.的主页。

4.参考文献

[1]http://lwip.wikia.com/wiki/Introduction_to_lwIP

[2]lwIP应用开发手册中文翻译

LwIP Application Developers Manual1---介绍的更多相关文章

  1. LwIP Application Developers Manual2---Protocols概览

    1.前言 本文是对LwIP Application Developers Manual的翻译 lwIP是模块化的并支持广泛的协议,这些大部分协议可以被裁减从而减小代码的尺寸 2.协议概览 链路层和网络 ...

  2. LwIP Application Developers Manual9---LwIP and multithreading

    1.前言 lwIP的内核并不是线程安全的.如果我们必须在多线程环境里使用lwIP,那么我们必须使用“upper”API层的函数(netconn或sockets).当使用raw API时,你需要自己保护 ...

  3. LwIP Application Developers Manual8---Sample lwIP applications

    1.前言 你已经编译lwIP协议栈在你的目标平台上,并且网络驱动正常工作.你可以ping你的设备. 干得好,为你感到骄傲.虽然一个设备可以响应ping,但并不能算一个完整的应用. 现在你可以通过网络接 ...

  4. LwIP Application Developers Manual6---Application API layers

    1.前言 lwIP提供3种应用编程接口来跟TCP/IP内核通信,如下所示: 低水平的内核/回调或raw API 2个高水平序列API: 1) netconn API 2) socket API(为了兼 ...

  5. LwIP Application Developers Manual5---高层协议之DNS

    1.前言 lwIP提供一个基本的DNS客户端(1.3.0后引进),通过使用DNS(Domain Name System)协议来允许应用程序解决主机名到地址的转换. 在文件lwipopts.h里面定义L ...

  6. LwIP Application Developers Manual5---高层协议之DHCP,AUTOIP,SNMP,PPP

    1.前言 本文主要讲述高层协议,包括DHCP 2.DHCP 2.1 从应用的角度看DHCP 你必须确保在编译和链接时使能DHCP,可通过在文件lwipopts.h里面定义LWIP_DHCP选项,该选项 ...

  7. LwIP Application Developers Manual4---传输层之UDP、TCP

    1.前言 本文主要讲解传输层协议UDP TCP 2.UDP 2.1 UDP from an application perspective 2.2 UDP support history in lwI ...

  8. LwIP Application Developers Manual3---链路层和网络层协议之IPV6,ICMP,IGMP

    1.前言 本文主要讲述链路层和网络层的协议IPV6,ICMP 2.IPV6 2.1 IPV6特性 IPv6是IPv4的更新.其最显著的差别在于地址空间由32位转换成128位 2.2 从应用的角度看IP ...

  9. LwIP Application Developers Manual12---Configuring lwIP

    1.前言 2.LwIP makefiles With minimal features C_SOURCES = \ src/api/err.c \ src/core/init.c \ src/core ...

随机推荐

  1. MySQL 8.0.14 新的密码认证方式和客户端链接

    MySQL 8.0.14 新的密码认证方式和客户端链接 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   MySQL8.0在密码认证方式发生了改变,这也是有点小伙伴在MySQL创建 ...

  2. SQL语法基础之CREATE语句

    SQL语法基础之CREATE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.使用“?”来查看MySQL命令的帮助信息 mysql> ? CR ...

  3. try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}}引发的惨案

    如题,ajax请求报错:try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}}引发的惨案 要么是404,要么是40 ...

  4. G1垃圾收集器的实现原理

    (G1垃圾收集器的实现原理.G1和CMS经常被单独拎出来问) https://tech.meituan.com/g1.html G1太复杂,说下CMS吧

  5. Linux命令(十四)gdb调试

    1. gdb调试 fun.c #include <stdio.h> #include "head.h" int sum(int a, int b) { printf(& ...

  6. vue-router中query与params区别

    query和params两者都是在Vue路由中传参. 用法: query用path来引入,params只能用name来传递,不能使用path 展示效果:query更像ajax中get请求(会在地址栏显 ...

  7. maven更新项目版本

    mvn versions:set -DnewVersion=1.0.1-SNAPSHOT // 此操作会生成pom备份文件,推荐使用 mvn versions:set -DnewVersion=1.1 ...

  8. java操作数据库:增删改查

    不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...

  9. [Android] [putty连接Android设备] [Android设备网络调试]

    file: system/core/adb/adb.c line: 921 /* for the device, start the usb transport if the ** android u ...

  10. ios 不支持-,-时间。

    var date = "2000-08-29";  console.log(new Date(date).getTime());解决办法 date .replace(/-/g, ' ...