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

相关文章

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc