7、网络接口

在lwIP中,物理网络硬件设备驱动是由类似于BSD网络接口结构表示。网络接口结构如图5所示。网络接口被保存在一个全局的链表中,通过结构体中的next指针来完成链表的链接。

每个网络接口都有一个名字,存储在name字段中,如图5所示。以双词名称来标识网络接口设备驱动的类型,且仅在接口被人为配置时使用。名字有设备驱动设置,并反映网络接口表示硬件类型。例如,蓝牙驱动程序的网络接口可以命名为bt,IEEE802.11b WLAN硬件可以命名为wl。由于名称不一定是唯一的,因此可以用num字段来区分不同的网络接口。

IP层发送和接收数据包时使用三个IP地址,分别是ip addr (ip地址),netmask(子网掩码)和gw(网关),在下一节将介绍它们的用法。一个网络接口不能配置多个IP地址,相反,必须为每个IP地址创建网络接口。

input指针指向设备驱动在收到数据包时应调用的函数。

网络接口通过output指针连接到设备驱动,output指针指向设备驱动一个函数,该函数在物理层上传输数据,在当要发送数据包时有IP层调用该函数。该字段在设备驱动程序的初始化函数里填充。output函数指针的第三个参数ipaddr是接收实际链路层帧的主机IP地址,它不必和IP数据包的目的地址相同。特别是,当IP数据包不是给本地网络的主机发送时,链路级别的帧将会发送到网络中的路由器上。在这种情况下,output函数指针给定IP的地址将会是路由器的IP地址。最后,state指针指向网络接口设备设备驱动的特定状态,该指针又设备驱动设置。

图5

7、LwIP协议规范翻译——网络接口的更多相关文章

  1. 6、LwIP协议规范翻译——缓冲及内存管理

    6.缓冲及内存管理 在一个通信系统中,内存缓冲管理系统必须容纳各种大小的缓冲数据,其范围从包含具有数百个字节的数据的全尺寸TCP段到只有几个字节的短ICMP回复包.此外,为了避免拷贝,应该让数据内容缓 ...

  2. 利用ZYNQ SOC快速打开算法验证通路(6)——LWIP实现千兆TCP/IP网络传输

    一.前言 之前ZYNQ与PC之间的网络连接依赖于外接硬件协议栈芯片,虽然C驱动非常简单,但网络带宽受限.现采用LWIP+PS端MAC控制器+PHY芯片的通用架构.关于LWIP库,已经有很多现成的资料和 ...

  3. HyperLedger Fabric 资料网址大全

    BLOCKCHAIN FOR DEVELOPERS 官方网址 i. 这个网址是ibm给的测试网址,注册进去就可以设置4个节点的区块链,而且有智能合约可以测试 区块链和HyperLedger开源技术讲堂 ...

  4. 3、LwIP协议栈规范翻译——概述

    3.概述 像许多其他TCP/IP实现一样,分层协议设计已经成为设计lwIP实现的指南.每个协议实现为自己的模块,其中几个功能充当每个协议的入口点.尽管协议层是单独实现的,一些层却不全是,正如前面所叙述 ...

  5. 4、 LwIP协议栈规范翻译——流程模型

    4.流程模型 协议实现的流程模型描述了系统被划分为不同的流程的方式.用于实现通信协议的一个流程模型是让每个协议作为一个独立的进程运行.有了这个模型,严格的协议分层被强制执行,并且协议之间的通信点必须严 ...

  6. LwIP协议栈规范翻译——摘要目录

    摘要 LwIP是一种TCP/IP协议栈的实现.LwIP协议栈专注于减少内存的使用和代码的大小,使LwIP适用于嵌入式系统中在有限的资源下能够使用小型的客户机.为了减少处理和内存的需求,LwIP使用裁剪 ...

  7. 1、 LwIP协议栈规范翻译——简介

    1.简介 在过去几年中,计算机和计算机支持设备接之间的互联到无线网络日趋增加.计算机已经越来越无缝的集成在了日常的设备且价格也在下降.同时,无线网络技术例如蓝牙[HNI+98]和IEEE802.11b ...

  8. LwIP协议栈(2):网络接口

    在LwIP中,物理网络硬件接口结构保存在一个全局链表中,它们通过结构体中的 next 指针连接. struct netif { /// pointer to next in linked list * ...

  9. 5、 LwIP协议栈规范翻译——操作系统仿真层

    为了使lwIP可移植,操作系统特定的函数调用和数据结构不直接在协议的代码中使用.相反,当需要这样的函数调用和数据结构时,直接使用操作系统仿真层. 操作系统仿真层为操作系统服务提供统一的接口,如定时器, ...

随机推荐

  1. ThreadPoolExcutor 线程池 异常处理 (上篇)

    前言 最近看到crossoverJie的一篇文章:一个线程罢工的诡异事件 首先感谢原作者的分享,自己获益匪浅.然后是回想到自己的一次面试经历,面试官提问了线程池中的线程出现了异常该怎样捕获?会导致什么 ...

  2. 【资料下载区】【GK101固件】更新日期2017/1/11

    <GK101任意波发生器>升级固件发布(版本:1.0.2build539)<GK101任意波发生器>升级固件发布(版本:1.0.2build851)<GK101任意波发生 ...

  3. find ctime 加减n时间范围

    看下atime的时间解释:-atime n File was last accessed n*24 hours ago. When find figures out how many 24-hour ...

  4. Github + Hexo 搭建个人博客

    参考博客: 我是如何利用Github Pages搭建起我的博客,细数一路的坑 使用Hexo+Github一步步搭建属于自己的博客(基础) Hexo 准备工作: 本机已安装好 git, npm 和 no ...

  5. 《FPGA全程进阶---实战演练》第三十二章 Signal Tap II 应用实例

    还有几天就要交文章终稿了,三年的研究生生活也快要结束了,时间飞快,岁月如梭,但学习技术的热情仍然不能松懈,不懂的东西太多,需要实时保持奋斗!!过些天会继续更新<FPGA全程进阶---实战演练&g ...

  6. myeclipse中的classpath .

    博客分类: java基础   myeclipse中的classpath是一个很重要的问题 myeclipse的在查找的时候都是按照其查找,而且myeclipse有一个专门的文件来保存classpath ...

  7. 同步调用异步方法how-would-i-run-an-async-taskt-method-synchronously

    同步调用异步方法帮助类: public static class AsyncHelpers { /// <summary> /// Execute's an async Task<T ...

  8. 【2019年04月09日】A股净资产收益率ROE最高排名

    个股滚动ROE = 最近4个季度的归母净利润 / ((期初归母净资产 + 期末归母净资产) / 2). 查看更多个股ROE最高排名. 沈阳机床(SZ000410) - 滚动ROE:251.45% - ...

  9. 23命令模式Command

    一.什么是命令模式 Command模式也叫命令模式 ,是行为设计模 式的一种.Command模式通过被称为 Command的类封装了对目标对象的调用行为以及调用参数. 二.命令模式的应用场景 在面向对 ...

  10. RTX任务管理

        默认情况下用户创建的任务栈大小是由参数Task stack size决定的.     如果觉得每个任务都分配同样大小的栈空间不方便的话,可以采用自定义任务栈的方式创建任务.采用自定义方式更灵活 ...