网站大量收购独家精品文档,联系QQ:2885784924

嵌入式网络那些事:LwIP协议深度剖析与实战演练(阅读笔记).pdf

嵌入式网络那些事:LwIP协议深度剖析与实战演练(阅读笔记).pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式网络那些事:LwIP协议深度剖析与实战演练(阅读笔记)

嵌入式 网络那些事 :LwIP协议深度剖析与实战演练 (阅读笔记 ) T P/IP协议模型可以分为4层 (从下到上 ):网络接口层 (Network Interface Layer )、网络层 (Internet Layer )、传输层 (Transport Layer )、应用层 (Application Layer ) 网络接口层 : 主要负责网络上数据帧的发送和接收。一方面将上层 (网络层 )的数据组装成自己特定的数据帧并发送 ,另一方面接收网络中的发给自己 的数据帧 ,并解析出帧中的数据后递交上层 (网络层 )。 网络层 : 主要负责主机之间的通信中选择数据报的传输路径 ,即路由。一方面 ,当网络层接收到来自于上层 (传输层 )的数据分组后封装在IP数据 报中 ,使用路由器算法来确定是直接交付数据报还是传递给路由器。另一方面判断是否为给本机的数据报 ,是则去除首部后递交给上层(传 输层) ,否则转发给路由器。 传输层 : 主要提供应用程序之间的通信服务 ,即端到端通信。为保证提供可靠的传输服务 ,可采用协商、确认、重发等机制。 应用层 : 利用传输层提供的数据传输功能发送字节的数据到对方。 应用层 DNS、DHCP、HTTP、SNMP、API、BSD Socket 传输层 TCP、UDP 网络层 IPv4 、IPv6、ICMP、IGMP、ARP 网络接口 PPP、SLIP、以太网、回环接口 层 第五章 【在无操作系统模拟层环境下移植LwIP】 1.LwIP是T P/IP协议一种独立、简单的实现。一般其运行需要几十KB的RAM和40KB的ROM。 2.使用的版本是1.3.2.主要功能有 : ①ARP协议 ,以太网地址解析协议 ; ②IP协议 ,包括IPv4和IPv6 ,支持IP分片和重装 ,支持多网络接口下的数据包转发 ; ③I MP协议 ,用于网络调试与维护 ④IGMP协议 ,用于网络组管理 ,可以实现多播数据的接收 ; ⑤UDP协议 ,用户数据报协议 ; ⑥T P协议 ,支持T PT P拥塞控制 ,RTT估计 ,快速恢复与重传等 ; ⑦提供三种用户编程接口方式 :raw/callback API、sequential API、BSD-style socket API ; ⑧DNS ,域名解析 ; ⑨SNMP ,简单网络管理协议 ; ⑩DH P ,动态主机配置协议 ; ⑪AUTOIP ,IP地址自动配置 ; ⑫PPP ,点对点协议 ,支持PPPoE。 3.以太网中数据帧格式 :前两个字段由网卡在物理层上发送以太网数据时添加上去的 前同步码 SFD 目的地址 源地址 长度/类型 数据和填 CRC 7字节 1字节 6字节 6字节 2字节 46字节~15 字节 4字节 目的地址分为 :单播地址、多播地址、广播地址 单播地址 :第一个字节的bit0为0 多播地址 :第一个字节的bit0为1 广播地址 :48位全为1 长度或类型字段 : 小于1518表示长度 ,大于1518表示上层协议类型 ,0x800表示IP数据包 ,0x806表示ARP数据包 数据和填充字段 : 最小长度为46字节 ,最大长度为1500字节 4.LwIP在ethernetif.c文件中给出了5个函数为 : ⑴static void low_level_init(struct netif *netif) ⑵static err_t low_level_input(struct netif *netif,struct pbuf *p) ⑶static struct pbuf *low_level_input(struct netif *netif) ⑷static void ethernetif_input(struct netif *netif) ⑸err_t ethernetif_init(struct netif *netif) low_level_init为网卡初始化函数 ,它主要用来完成网卡复位及参数初始化 ,同时根据实际的网卡特性 ,还需设置协议栈网络接口管理结构 netif中网卡属性相关字段 ,例如网卡MA 地址长度等 ; low_level_output为网卡数据包发送函数 ,它将内核数据结构pbuf描述的数据包发送出去 ; low_l

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档