
Lwip之道
文章平均质量分 76
落叶行健
Code For 易
展开
-
LwIP 协议栈源码详解 ——TCP/IP 协议的实现(一:前言)
声明:本系列的文章全部转载网上的一篇pdf文档前言最近一个项目用到 LwIP,恰好看到网上讨论的人比较多,所以有了写这篇学习笔记的冲动,一是为了打发点发呆的时间,二是为了吹过的那些 NB。往往决定做一件事是简单的,而坚持做完这件事却是漫长曲折的,但终究还是写完了,时间开销大概为四个月,内存开销无法估计。。 这篇文章覆盖了 LwIP 协议大部分的内容,但是并不全面。它转载 2013-10-08 10:57:36 · 3236 阅读 · 0 评论 -
LwIP 协议栈源码详解 ——TCP/IP 协议的实现(九:ARP 表查询)
8 ARP 表查询 ARP 攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。在局域网中,ARP病毒收到广播的 ARP 请求包,能够解析出其它节点的(IP, MAC) 地址, 然后病毒伪装为目的主机,告诉源主机一个假 MAC 地址,这样就使得源主机发送给目的主机的所有数据包都被病毒软件截取,而源主机和目的主机却浑然不知。ARP 攻击通过伪造 IP 地址和转载 2013-10-10 10:08:25 · 1884 阅读 · 0 评论 -
LwIP 协议栈源码详解 ——TCP/IP 协议的实现(八: ARP 表 )
7 ARP 表 其实这段结合《卷一》看比较易懂!不过的看的代码版本和原作者有结构上的不同。 讲过了包括 LWIP 的移植要点、内存管理、数据包管理、网络接口管理等等。 ARP,全称 Address Resolution Protocol,译作地址解析协议,是位于 TCP/IP 协议栈底层的协议。任何网络的通信都是基于底层硬件链路的,底层的转载 2013-10-10 09:20:15 · 2275 阅读 · 0 评论 -
LwIP 协议栈源码详解 ——TCP/IP 协议的实现(六:网络接口结构)
5 网络接口结构 我只是不想,将这份心动付诸言语。前面还有一句:信任他人,并不意味着软弱。我只是假装对万物一无所知,好借此获得你所有的温柔。谢谢你所做的一切,现在一切又将重新开始。我只有将这份无法忘怀的思念送给你。人们总说”黑夜会过去”,但那只是善意的谎言。我想就算一个人,应该也能生存下去,因为你的笑容已经永远铭刻在我心中,还有那应该已经被我舍弃的信任别人的心。转载 2013-10-09 15:18:51 · 4484 阅读 · 0 评论 -
LwIP 协议栈源码详解 ——TCP/IP 协议的实现(七:以太网数据接收)
6 以太网数据接收少壮不努力,长大写程序。悲剧! 昨天说到 low_level_init 函数是与我们使用的与硬件密切相关初始化函数,看看:static void low_level_init(struct netif *netif) { netif->hwaddr_len = ETHARP_HWADDR_LEN; //设置变量 enc28j60 的 hwadd转载 2013-10-09 15:22:55 · 4098 阅读 · 0 评论 -
LwIP 协议栈源码详解 ——TCP/IP 协议的实现(四:数据包 pbuf )
3 数据包 pbuf 这段数据包和《tcp/ip详解(卷二)》的开始基本相同,所以读起来在参照代码看很熟悉的感觉,理解很容易!图片复制都丢了,日后有时间补上!高的地方,总是很冷。孤独,可以让人疯狂。没人能懂你!昨天讲过了 LWIP 的内存分配机制。再来总之一下,LWIP 中常用到的内存分配策略有两种,一种是内存堆分配,一种是内存池分配。前者可以说能随心所欲的分转载 2013-10-09 10:07:34 · 5357 阅读 · 0 评论 -
LwIP 协议栈源码详解 ——TCP/IP 协议的实现(五:pbuf 释放)
4 pbuf 释放牢骚发完,Go On。昨天说到了数据缓冲 pbuf 的内存申请,今天继续来探究一下它的内存释放过程。由于 pbuf 的申请主要是通过内存堆分配和内存池分配来实现,所以,pbuf的释放也必须按照这两种情况分别讨论。别慌,在展开讨论之前,还得说说某个 pbuf 能被释放的前提。在 LWIP 中这点很容易判断,因为前节说到 pbuf 的 ref 字段表示该 pbuf转载 2013-10-09 10:24:40 · 3510 阅读 · 0 评论 -
LwIP 协议栈源码详解 ——TCP/IP 协议的实现(二:移植综述)
1 移植综述如果你认为所谓的毅力是每分每秒的 “艰苦忍耐”式的奋斗,那这是一种很不足的心理状态。毅力是一种习惯,毅力是一种状态,毅力是一种生活。看了这么久的代码觉得是不是该写点东西了,不然怎么对得起某人口中所说的科研人员这个光荣称号。初见这如山如海的代码,着实看出了一身冷汗。现在想想其实也不是那么难,那么多革命先辈经过 N 长时间才搞出来的东东怎么可能让你个毛小子几周之内搞懂转载 2013-10-08 11:00:12 · 3061 阅读 · 0 评论 -
LwIP 协议栈源码详解 ——TCP/IP 协议的实现(三:动态内存管理)
2 动态内存管理最近电力局很不给力啊,隔三差五的停电,害得我们老是痛苦的双扣斗地主,不带这样的啊!今天还写吗?写,必须的。昨天把 LWIP 的移植工作框架说了一下,网上也有一大筐的关于移植细节的文档。有兴趣的童鞋不妨去找找。这里,我很想探究 LWIP 内部协议实现的细节,以及所有盘根错节的问题的来龙去脉。以后的讨论研究将按照 LWIP 英文说明文档 《Design and I转载 2013-10-08 11:41:40 · 3441 阅读 · 0 评论 -
LwIP 协议栈源码详解 ——TCP/IP 协议的实现(十:ARP 层流程)
9 ARP 层流程 前面一节重点说了 ARP 缓存表以及如何对其进行相关操作,关于 ARP,一共想说三个函数,前面已经讲过了两个。 最后要讲的一个函数是 update_arp_entry,该函数用于更新 ARP 缓存表中的表项或者在缓存表中插入一个新的表项。该函数会在收到一个 IP 数据包或 ARP 数据包后被调用。该函数原型如下,static er转载 2013-10-10 10:10:56 · 2542 阅读 · 0 评论