LwIP协议栈学习
XMJYever
这个作者很懒,什么都没留下…
展开
-
LWIP协议栈之TCP建立与断开(三次握手、四次挥手)
简介TCP叫传输控制协议,它为上层提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先简历一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信,广播和多播不能用于TCP。TCP的服务TCP通过下列方式来提供可靠性:应用数据被分割成TCP认为最适合发送的数据块;当TCP发出一个段后,它起动一个定时器,等待目的端确认收到这个报文段。如果不能,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。原创 2020-08-11 16:58:00 · 2064 阅读 · 2 评论 -
LwIP协议栈之ICMP(Internet Message Protocal)协议
在之前主要讲到LWIP了IP层的相关概念(详见本人另外一篇文章:LwIP协议栈之IP协议),其中主要讲解了网络接口(链路层)与IP层(网络层)的数据交互,而数据包是如何从IP层向上级(传输层)传输的并没有介绍,本次就会详细讲解这个过程。这一过程的关键就是今天要介绍的ICMP(网络控制报文协议)协议。1 什么是ICMP协议ICMP( Internet Control Message Protocol)是 Internet控制报文协议,用于在 IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、原创 2020-08-10 11:28:51 · 534 阅读 · 0 评论 -
LwIP协议栈之IP协议
IP数据报头结构IP层主要为信息包的接收、分片数据包重装、信息包的发送和转发三个内容。IP数据报头结构如下所示,通常的IP数据报头长度为20个字节。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RW7SzZ6w-1596445349890)(images/14.jpg)]第一个字段是4bit的版本号,对于IPv4,该值为4;对于IPv6,该值为6;第二个4bit字段用于记录首部长度,以字为单位。对于不含任何选项字段的IP报头,则该长度值为5,其能描述的最大IP报头原创 2020-08-03 17:03:20 · 505 阅读 · 0 评论 -
LwIP协议栈之ARP(Address Resolution Protocal)协议详解
前言ARP,全称Address Resolution Protocol,译作地址解析协议,是位于 TCP/IP 协议栈底层的协议。任何网络的通信都是基于底层硬件链路的,底层的数据链路有着自己的一套寻址机制,在以太网中,往往是通过一个48位的MAC地址来标示不同的网络通信设备的。TCP/IP协议的上层是使用IP地址作为各个主机间通信寻址机制的。ARP作用:当源主机上层要向目标主机发送数据时,它只知道目标主机的IP地址,此时源主机需要将该IP地址转换为目的主机对应的MAC地址,这样才能在数据链路上选择正原创 2020-08-01 17:08:01 · 1472 阅读 · 0 评论 -
ARP欺骗攻击
为了方便自己日常学习,本文转载自https://blog.csdn.net/TC125/article/details/83021923,侵权立删! 一、ARP攻击概述ARP攻击主要是存在于局域网中,通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能转载 2020-08-01 10:43:45 · 803 阅读 · 0 评论 -
LwIP协议栈之网络接口结构(netif)
前言LWIP也是以分层的协议为参照来设计实现TCP/IP。LWIP从逻辑上看分为四层:链路层、网络层、传输层和应用层。虽然 LWIP 也采用了分层机制,但它没有在各层之间进行严格的划分,各层协议之间可以进行或多或少的交叉存取,即上层可以意识到下层协议所使用的缓存处理机制。各层可以更有效的重用缓冲区。应用进程和协议栈可以使用相同的内存,应用可以直接读写内部缓存,节省了执行拷贝的开销。链路层在LWIP 中,是通过一个叫做 netif 的网络结构体来描述一个硬件网络接口的。源代码结构如下:struct原创 2020-07-30 19:13:10 · 2044 阅读 · 1 评论 -
LwIP协议栈之数据包pbuf
前言在动态内存管理那篇文章中讲到了内存分配策略:内存堆分配和内存池分配。两者互有优缺点,如何合理利用两种分配策略,就需要介绍LWIP的数据包缓冲的实现。数据包pbuf源码详解从网卡上来的原始数据包:有长达上千字节的TCP数据包,也有仅几个字节的ICMP数据包;从要发送的数据包:上层应用可能将各种数据包递交给LWIP协议栈发送,这些数据包有可能存在于应用程序管理的内存空间内,也可能存在于某个ROM上。这么复杂的工作致使LWIP必须有个高效的数据包管理核心,数据包管理机构出现了。数据包管理机构采用数原创 2020-07-29 19:18:55 · 1587 阅读 · 0 评论 -
LwIP协议栈学习之动态内存管理
前言LWIP 的动态内存管理机制可以有三种: C 运行时库自带的内存分配策略、动态内存堆(HEAP)分配策略和动态内存池(POOL)分配策略。由于前两种分配策略具有很大的相似性,使用时只能从中选择一种,通过头文件lwippools.h 中的宏定义 MEM_LIBC_MALLOC 来实现的,当它被定义为 1 时则使用标准 C运行时库自带的内存分配策略,而为 0 时则使用 LWIP 自身的动态内存堆分配策略。一般情况下,选择使用LWIP自身的动态内存堆分配策略。动态内存堆分配策略动态内存堆分配策略原创 2020-07-29 10:53:23 · 489 阅读 · 0 评论 -
LwIP使用经验(转载)
这篇文章转自[LWIP使用经验](https://blog.csdn.net/jiangjunjie_2005/article/details/26051399),转载的目的是供自己更好的温习,也给大家分享好文。 一 LWIP内存管理LWIP的内存管理使用了2种方式:内存池memp和内存堆mem,如图1所示。内存池的特点是预先开辟多组...转载 2020-07-14 09:47:23 · 1509 阅读 · 0 评论 -
LwIP协议栈简介
简介LwIP最先是由瑞典计算机科学院的Adam Dunkels等开发的用于嵌入式系统的开源TCP/IP(共分为四层,详见上一个博客)协议栈,LwIP的含义是Light Weight(轻型)IP协议。LwIP最大的优势在于可以移植到操作系统上,也可以在无操作系统的情况下独立运行,且代码量小。实现的协议ARP协议:以太网地址解析协议,用来实现主机以太网物理地址到IP地址的映射;IP协议:包括IPv4和IPv6,支持IP分片与重装,支持多网络接口下数据报转发,;ICMP协议:用于网络调试与维护;I原创 2020-07-13 15:08:53 · 1156 阅读 · 0 评论 -
OSI模型与TCP/IP模型介绍
OSI模型OSI模型即开放式通信系统互联参考模型(Open System Interconnection Reference Model),它是国际标准化组织(ISO)提出的一个世界范围内网络通信标准的参考框架。OSI参考模型并不是一个标准,而是在网络协议具体实现时可供参考的概念性框架,也没有提供一个可以实现的方法;OSI参考模型只是描述了一些概念,定义了网络通信协议的层次结构、层次之间的相互关系以及各层可能包括的任务。OSI模型一共分为7个层次,如下图所示,从上到下依次为:应用层(第7层)、表示原创 2020-07-10 09:53:41 · 638 阅读 · 0 评论