LwIP系列(3):以太网帧、IP、TCP、UDP、IGMP、ICMP帧格式详解

这篇具有很好参考价值的文章主要介绍了LwIP系列(3):以太网帧、IP、TCP、UDP、IGMP、ICMP帧格式详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

TCP/IP 本质上是软件协议,而LwIP也是对软件协议进行解析处理,所以我们有必要了解下以太网帧、IP、TCP、UDP、IGMP、ICMP帧格式,这样在代码中,才能有的放矢。

以太网帧框架

以太网帧是最底层的原始数据,帧框架如下图所示:
lwip tcp udp,udp,tcp/ip,网络
其中【前同步码】和【以太网尾部】我们在抓包的时候,并不能真正看到,我们可以暂时认为这两部分有以太网芯片实现,对于协议栈,并不会包括这两部分。

以太网帧首部

lwip tcp udp,udp,tcp/ip,网络
以太网帧首部包括:【目的MAC】+ 源MAC + 类型

IP帧首部

lwip tcp udp,udp,tcp/ip,网络

TCP帧首部

lwip tcp udp,udp,tcp/ip,网络

tcp抓包示例

client PC :192.168.114
server PC:192.168.1.9, 端口:8080
发送数据:123456780

req数据

xx xx xx xx xx xx xx xx xx xx xx xx 08 00 45 00       // mac 注释隐藏
00 32 9a d0 40 00 80 06 dc 29 c0 a8 01 72 c0 a8
01 09 f8 e8 1f 90 38 55 0d 2b 26 6b 47 eb 50 18
02 01 53 a1 00 00 31 32 33 34 35 36 37 38 39 30

解析

xx xx xx xx xx xx	 			// 目的mac   注释隐藏
xx xx xx xx xx xx 				// 源mac     注释隐藏
08 00 							// IP 协议
45 00 00 32 9a d0 40 00 80 06 dc 29 c0 a8 01 72 c0 a8 01 09    // IP帧头 
f8 e8 1f 90 38 55 0d 2b 26 6b 47 eb 50 18 02 01 53 a1 00 00    // TCP帧头
31 32 33 34 35 36 37 38 39 30								   // 应用数据					

resp数据

xx xx xx xx xx xx xx xx xx xx xx xx 08 00 45 00   	// mac 注释隐藏
00 28 7f af 40 00 80 06 f7 54 c0 a8 01 09 c0 a8   
01 72 1f 90 f8 e8 26 6b 47 eb 38 55 0d 35 50 10   
10 04 4f ab 00 00                               

解析

xx xx xx xx xx xx 			   // 目的mac   注释隐藏
xx xx xx xx xx xx 			   // 源mac     注释隐藏
08 00 						   // IP 数据
45 00 00 28 7f af 40 00 80 06 f7 54 c0 a8 01 09 c0 a8 01 72    // IP帧头 	
1f 90 f8 e8 26 6b 47 eb 38 55 0d 35 50 10 10 04 4f ab 00 00    // TCP帧头

UDP帧首部

lwip tcp udp,udp,tcp/ip,网络

udp抓包示例

client PC :192.168.114
server PC:192.168.1.9, 端口:8080
发送数据:123456780

req数据

xx xx xx xx xx xx xx xx xx xx xx xx 08 00 45 00   	// mac 注释隐藏
00 26 9a e6 00 00 80 11 1c 15 c0 a8 01 72 c0 a8  
01 09 1f 90 1f 90 00 12 32 d9 31 32 33 34 35 36  
37 38 39 30                                     

解析

xx xx xx xx xx xx	 			// 目的mac   注释隐藏
xx xx xx xx xx xx 				// 源mac     注释隐藏
08 00 							// IP 协议
45 00 00 26 9a e6 00 00 80 11 1c 15 c0 a8 01 72 c0 a8 01 09 	// IP 帧头
1f 90 1f 90 00 12 32 d9 										// udp 帧头
31 32 33 34 35 36 37 38 39 30           						// 应用数据		

注意:udp只有req,没有resp。

ICMP帧格式

lwip tcp udp,udp,tcp/ip,网络

icmp(ping)抓包示例

ping 192.168.1.9

req数据

xx xx xx xx xx xx xx xx xx xx xx xx 08 00 45 00  		// mac 隐藏
00 3c 9a cc 00 00 80 01 1c 29 c0 a8 01 72 c0 a8   
01 09 08 00 4d 41 00 01 00 1a 61 62 63 64 65 66  
67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76   
77 61 62 63 64 65 66 67 68 69                   

解析

xx xx xx xx xx xx	 			// 目的mac   注释隐藏
xx xx xx xx xx xx 				// 源mac     注释隐藏
08 00 							// IP 协议
45 00 00 3c 9a cc 00 00 80 01 1c 29 c0 a8 01 72 c0 a8 01 09    // IP帧头 
08 00 4d 41 												   // ICMP帧头
00 01 00 1a 61 62 63 64 65 66  
67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76   
77 61 62 63 64 65 66 67 68 69   							  // ICMP数据内容			

resp数据

xx xx xx xx xx xx xx xx xx xx xx xx 08 00 45 00  
00 3c 7f ab 00 00 80 01 37 4a c0 a8 01 09 c0 a8  
01 72 00 00 55 41 00 01 00 1a 61 62 63 64 65 66  
67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 
77 61 62 63 64 65 66 67 68 69                                      

解析

xx xx xx xx xx xx 				// 目的mac   注释隐藏
xx xx xx xx xx xx 				// 源mac     注释隐藏
08 00 							// IP 协议
45 00 00 3c 7f ab 00 00 80 01 37 4a c0 a8 01 09 c0 a8 01 72 	// IP帧头
00 00 55 41 													// ICMP 帧头
00 01 00 1a 61 62 63 64 65 66  
67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 
77 61 62 63 64 65 66 67 68 69   

IGMP

lwip tcp udp,udp,tcp/ip,网络文章来源地址https://www.toymoban.com/news/detail-630287.html

小结

  1. TCP、UDP、IGMP、ICMP均属于IP协议。
  2. ARP、RARP与IP协议平级。
  3. 以太网帧是最底层的协议,是原始数据。
  4. 以太网帧的前同步帧,结尾CRC是硬件驱动层面的,不属于应用层,我们在具体的代码、抓包中,并不会看到。

到了这里,关于LwIP系列(3):以太网帧、IP、TCP、UDP、IGMP、ICMP帧格式详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32F1】以太网通信之UDP/TCP实验

    在本实验中,开发板主控芯片通过 SPI 接口与 CH395Q 以太网芯片进行通讯,从而完成对 CH395Q 以太网芯片的功能配置、数据接收等功能,同时将 CH395Q 以太网芯片的 Socket0 配 置为 UDP 模式,并可通过按键发送 UDP 广播数据至其他的 UDP 客户端,也能够接收其他 UDP 客户端广播的数

    2024年02月07日
    浏览(50)
  • 车载以太网 - 传输层 - TCP/IP

    一、传输层基础介绍 传输层主要包括两种协议 传输层端口号 二、UDP通信  UDP协议介绍 UDP 通信特点: UDP Segment结构 UDP通信过程 三、TCP通信 TCP通信特点: TCP Segment结构 传输层的寻址方式: 端口号         包括传输层的寻址方式,TCP/UDP 传输层协议工作流程,及TCP/UDP Packe

    2024年02月09日
    浏览(55)
  • 【车载以太网测试从入门到精通】——以太网TCP/IP协议自动化测试(含CAPL源码)

    【车载以太网测试从入门到精通】系列文章目录汇总 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇

    2024年02月05日
    浏览(136)
  • TwinCAT3以太网TCP/IP自由协议通讯

    目录 一、TwinCAT3以太网TCP/IP客户端创建 1、系统连接示意图 1、程序创建 (1)工程创建和授权添加  (2)库文件添加  (3)变量创建 (4)程序 2、测试 (1)网络调试助手创建服务端监听 (2)PLC端的Client连接服务端  (3)PLC端给服务端发送数据  (4)服务端给PLC发送数据 二、

    2024年02月15日
    浏览(46)
  • TCP/IP网络参考模型(端口号、TCP滑动窗口、TCP拥塞控制、IP协议号、以太网帧)

    目录 TCP/IP四/五层模型 应用层常见协议——传输数据PDU 传输层协议——传输数据段 端口号 TCP面向连接服务CONS  TCP报文格式 TCP数据传输——ACK确认机制 TCP会话建立——三次握手 TCP会话结束——四次握手 TCP流量控制——滑动窗口协议 TCP可靠传输机制 TCP拥塞控制 UDP无面向连

    2024年02月03日
    浏览(55)
  • 保姆级AT32F437 配置RT-Thread 以太网(UDP/TCP Server)

    好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录。 雅特力 AT32F437 配置RT-Thread 以太网(UDP/TCP Server) 目录         一、前言         二、ENV配置         三、结语   一、前言 ENV版本:v1.3.5 rt-thread版本:V5+

    2024年02月12日
    浏览(37)
  • 雅特力 AT32F437 配置RT-Thread 以太网(UDP/TCP Server)

    好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录。 雅特力 AT32F437 配置RT-Thread 以太网(UDP/TCP Server) 目录         一、前言         二、ENV配置         三、结语   一、前言 ENV版本:v1.3.5 rt-thread版本:V5+

    2024年02月12日
    浏览(42)
  • STM32以太网通信-LWIP简介

    LwIP全名:Light weight IP,意思是轻量化的TCP/IP协议,是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。 LwIP的设计初衷是:用少量的资源消耗实现一个较为完整的TCP/IP协议栈,其中“完整”主要指的是TCP协议的完整性,实现的重点是在保持TCP协议主要功能

    2024年02月07日
    浏览(51)
  • PLX31-EIP-MBTCP 以太网/IP到Modbus TCP/IP

    ProSoft Technology的EtherNet/IP to Modbus TCP/IP通信网关允许在支持EtherNet/IP的控制器或设备与Modbus TCP/IP控制器或设备之间进行高速双向数据传输。 我们的Modbus TCP/IP驱动程序具有多种客户端和服务器功能,可实现更快的数据传输。此外,该网关还包括几个功能,包括数据优先级,可以

    2024年02月06日
    浏览(46)
  • FANUC机器人嵌入式TCP/IP以太网通讯的具体方法

    在工业自动化领域中,FANUC机器人是广泛应用的一种先进设备。为了实现机器人与其他设备之间的通信,TCP/IP以太网是一种常用的通信协议。本文将介绍如何在FANUC机器人中实现嵌入式TCP/IP以太网通讯,并提供相应的源代码。 配置网络参数 首先,我们需要在FANUC机器人上配置

    2024年02月04日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包