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. 转:关于S参数的一些理解

    关于S参数的一些理解 http://rf.eefocus.com/module/forum/thread-596241-1-1.html 台湾工程师图文独特讲解:S参数http://rf.eefocu ...

  2. linux环境快速安装python3

    之前在linux上安装python3的时候,为了让不影响linux环境原有的python2的环境,选择的方法都是下载对应的linux环境的python包,不过 这里需要注意的是,不要更改linux默认 ...

  3. C语言 · 还款计算

    标题: 还款计算 银行贷款的等额本息还款方法是: 每月还固定的金额,在约定的期数内正好还完(最后一个月可能会有微小的零头出入). 比如说小明在银行贷款1万元.贷款年化利率为5%,贷款期限为24个月. ...

  4. rpc error: code = Internal desc = stream terminated by RST_STREAM with error code: PROTOCOL_ERROR

    使用grpc-go调用grpc服务端时,出现rpc error: code = Internal desc = stream terminated by RST_STREAM with error c ...

  5. 微信小程序——购物车结算

    项目需要做个购物车结算功能,先分析需求: 1.全选,反选的功能.当选中的个数 = 购物车的数量时,勾选全选按钮,反之则取消选中全选按钮: 2.改变选中状态时,计算总价和总数量: 3.单个产品的数量加减 ...

  6. matlab将矩阵数据归一化到[0,255]

    matlab将矩阵数据归一化到[0,255]     function OutImg = Normalize(InImg) ymax=255;ymin=0; xmax = max(max(InImg) ...

  7. java.exe和javaw.exe的区别

    相同点:二者都是Java的虚拟机,用来执行Java程序 区别: 1. javaw.exe运行程序时不会输出控制台信息 (注:“w”就是window的意思). 使用案例  start.bat(y以下代码 ...

  8. jsp中相对路劲

    .代表当前目录 ..代表上一层目录 例如:如下文件,aliCashier.html要引入images下的图片,应该写成../../static/images/logo.png,此处会找到本地静态路径. ...

  9. 智能聊天机器人——基于RASA搭建

    前言: 最近了解了一下Rasa,阅读了一下官方文档,初步搭建了一个聊天机器人. 官方文档:https://rasa.com/docs/ 搭建的chatbot项目地址: https://github.c ...

  10. a,abbr,address,area,article, aside, audio标签文档

    <a>标签 download属性 <!-- 下载hello.txt --> <a href="test.txt" download="hel ...