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. 剑指Offer_编程题_16

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. /* struct ListNode { int val; struct ListNode *n ...

  2. LightGBM 调参方法(具体操作)

     sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  3. MySQL数据库优化_limit_1

    转自:https://blog.csdn.net/cbjcry/article/details/70155118 1. MySQL中,在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMI ...

  4. CentOS7 上以 RPM 包方式安装 Oracle 18c 单实例

    安装阿里云 YUM 源 https://opsx.alibaba.com/mirror?lang=zh-CN 一.安装Oracle数据库 1.安装 Oracle 预安装 RPM yum -y loca ...

  5. [NIO-1]缓冲区

    常用的是ByteBuffer.CharBuffer

  6. window.location.reload();页面实现跳转和刷新

    1 history.go(0)2 location.reload()3 location=location4 location.assign(location)5 document.execComma ...

  7. 谈谈关于PHP连接数据库的两种方法(PDO&Mysqli)

    前言:在我们之前学习sql语句的时候都是停留在黑窗口的,怎样才能让mysql与程序代码发生联系呢?此时PDO和Mysqli应运而生,为了解决这个问题 (一)开启其中(pdo或者mysqli)的php扩 ...

  8. wxpython绘制音频

    #-*- coding: utf-8 -*- ############################################################################# ...

  9. 在浏览器窗口中加载新的url

    通常,在前端页面中如果需要跳转到指定页面,可以通过<a>标签进行跳转.而在某些情况下,比如ajax调用之后想直接跳转到指定页面,想跳转页面不能再用<a>标签实现.此时,可以通过 ...

  10. T-SQL 编程技巧

    Ø  T-SQL 编程是大多数程序员都会接触的,也是数据库编程必须掌握的技术.下面,是本人在工作或学习中积累的一些心得和技巧.主要包含以下内容: 1.   waitfor延时执行 2.   NOT 关 ...