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

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Python跨文件实例化、跨文件调用及导入库示例代码

《Python跨文件实例化、跨文件调用及导入库示例代码》在Python开发过程中,经常会遇到需要在一个工程中调用另一个工程的Python文件的情况,:本文主要介绍Python跨文件实例化、跨文件调... 目录1. 核心对比表格(完整汇总)1.1 自定义模块跨文件调用汇总表1.2 第三方库使用汇总表1.3 导

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3