IPv4协议二进制实例分析

2024-05-15 19:18

本文主要是介绍IPv4协议二进制实例分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下面是用wireshark捕获的一段报文:

 

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

1

01

00

5e

40

98

8f

dc

0e

a1

21

1d

8c

08

00

45

00

2

00

a4

56

23

00

00

ff

11

06

97

0a

6c

cb

d2

ef

c0

3

98

8f

1a

73

1a

73

00

90

d7

8c

42

54

2d

53

45

41

4

52

43

48

20

2a

20

48

54

54

50

2f

31

2e

31

0d

0a

5

48

6f

73

74

3a

20

32

33

39

2e

31

39

32

2e

31

35

6

32

2e

31

34

33

3a

36

37

37

31

0d

0a

50

6f

72

74

7

3a

20

36

38

38

31

0d

0a

49

6e

66

6f

68

61

73

68

8

3a

20

34

35

30

61

64

65

62

63

38

39

35

62

34

61

9

65

37

66

65

35

64

38

34

66

34

64

31

31

37

65

31

10

66

34

62

37

36

64

30

36

31

30

0d

0a

63

6f

6f

6b

11

69

65

3a

20

63

38

61

39

36

39

61

35

0d

0a

0d

0a

12

0d

0a

 

 

 

45

1O:IP版本号和首部长度,即:01000101,其中0x4表示版本号是IPv4,0x5表示首部长度是5x4B=20B

 

 

00

1P:区分服务,只在使用区分服务的时候才使用,这里没有使用

 

 

00

a4

2A~2B:总长度,这里表示为164字节,正好是从1O到12B的字节总数

 

 

56

23

2C~2D:标识,这个数是发送方产生的计数器的数

 

 

00

00

2E~2F:标志和片偏移,即0x0000 00000000 0000,其中第一个bit0表示后面没有分片的ip报了,第二个bit0表示这个数据包允许底层协议栈进行分片,第三个bit0暂时没有意义,后面十三个bit0是片偏移字段,这里表示偏移量为0,说明这个IP数据包如果是分片的话就是第一个,又由于前面说明后面没有分片了,所以这是一个没有分片的IP报。

 

 

ff

2G:生存时间TTL,这里表示255,即这个报文当前的状态还可以经过255个路由器的跳跃,因为这个是抓的同一层的宿舍楼的IP报还没有经过路由器转发

 

 

11

2H:协议,这里是0x11,自己猜测这是在表示数据时UDP报文,因为这个数据报在wireshark上面显示的是UDP报文

 

 

06

97

2I~2J:首部检验和,使用方法,将首部的字段(现在是标准的20B)按16bit位一组求反码运算和,然后再去反码,看结果为0则检查通过,否则不同过,丢弃这个数据包,这里不再进行演算。

 

 

0a

6c

cb

d2

2K~2N:源地址,即IP:10.108.203.210

 

 

ef

c0

98

8f

2O~3B:目的地址,即IP:239.192.152.143

 

 

 

 

向后都是IP报的数据部分了,其中是UDP的数据,这里不再向下深究,注意这里MAC镇后面没有4个字节的FCS(帧检查序列)


这篇关于IPv4协议二进制实例分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/992687

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

如何将二进制文件流转化为MockMultipartFile文件

《如何将二进制文件流转化为MockMultipartFile文件》文章主要介绍了如何使用Spring框架中的MockMultipartFile类来模拟文件上传,并处理上传逻辑,包括获取二进制文件流、创... 目录一、名词解释及业务解释1.具体业务流程2.转换对象解释1. MockMultipartFile2

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如