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. 2017-12-15python全栈9期第二天第三节之使用while循环输出0到10不包含7

    #!/user/bin/python# -*- coding:utf-8 -*-count = 0while count < 10: count += 1 if count == 7 : con ...

  2. 设计模式_策略模式_在Spring中的应用

    一.理论 在spring中经常有读取配置文件的需求,这里就会用到一个Spring提供的Resource接口 Resource 接口是具体资源访问策略的抽象,也是所有资源访问类所实现的接口.Resour ...

  3. SpringBoot笔记十五:任务

    目录 异步任务 定时任务 异步任务 注解:@Async,@EnableAsync 我新建一个Service,就叫AsyncService package com.example.service; im ...

  4. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失 败,原因是出现以下错误: 80080005

    .Net MVC项目,在下载一个Excel的时候总是报错. 解决办法: 在服务器中,运行dcomcnfg打开组件服务, 依次展开"组件服务"->"计算机" ...

  5. java io系列12之 BufferedInputStream(缓冲输入流)的认知、源码和示例

    本章内容包括3个部分:BufferedInputStream介绍,BufferedInputStream源码,以及BufferedInputStream使用示例. 转载请注明出处:http://www ...

  6. nginx的rewrite指令

    需求:我们在接收到一个/api/upload 开头的url的时候 要转发到另外一个地址.但是又不想追加/api/upload  只想追加/upload 地址. Nginx提供了rewrite指令,用于 ...

  7. 为什么要两次调用encodeURI来解决乱码问题

    .encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码.. UTF-8编码的格式:一个汉字来三个字节构成,每一个字节会转换成16进制的编码,同时添加上%号. 假设页面端输入的 ...

  8. Trailing slash

    Trailing Slash common case It's common for URLs with a trailing slash to indicate a directory, and t ...

  9. Python实现工厂模式

    from abc import ABCMeta, abstractmethod from enum import Enum class Person(metaclass=ABCMeta): @abst ...

  10. 学习go语言编程系列之定义变量

    package main import ( "fmt" "math") func main() { // 1. 定义变量名age,不初始化,使用对应类型的默认值 ...