From c0206a15b5f5928489322403679713ec8a894a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E5=A5=87=E8=BD=A9?= Date: Wed, 4 Sep 2024 20:18:08 +0800 Subject: [PATCH 1/5] test --- src/main/dogp/org/bdware/doipv3/codec/test.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/dogp/org/bdware/doipv3/codec/test.java diff --git a/src/main/dogp/org/bdware/doipv3/codec/test.java b/src/main/dogp/org/bdware/doipv3/codec/test.java new file mode 100644 index 0000000..c197873 --- /dev/null +++ b/src/main/dogp/org/bdware/doipv3/codec/test.java @@ -0,0 +1,4 @@ +package org.bdware.doipv3.codec; + +public class test { +} -- Gitee From d2fab7056bb8eeb3464f37ffe2f8eb5b8813adc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E5=A5=87=E8=BD=A9?= Date: Wed, 4 Sep 2024 20:21:29 +0800 Subject: [PATCH 2/5] test --- src/main/dogp/org/bdware/doipv3/codec/test.java | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 src/main/dogp/org/bdware/doipv3/codec/test.java diff --git a/src/main/dogp/org/bdware/doipv3/codec/test.java b/src/main/dogp/org/bdware/doipv3/codec/test.java deleted file mode 100644 index c197873..0000000 --- a/src/main/dogp/org/bdware/doipv3/codec/test.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.bdware.doipv3.codec; - -public class test { -} -- Gitee From 0d129686cb8e91ab5d68e5bc4e038119996e4a59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E5=A5=87=E8=BD=A9?= Date: Thu, 5 Sep 2024 22:03:30 +0800 Subject: [PATCH 3/5] init DOIPV3doc --- .../codec/DOIPV3 \346\226\207\346\241\243.md" | 68 ++++++++++++++++++ .../org/bdware/doipv3/codec/img/DOIPV3.png | Bin 0 -> 26611 bytes .../bdware/doipv3/codec/img/DOIPV3FLow.png | Bin 0 -> 39062 bytes 3 files changed, 68 insertions(+) create mode 100644 "src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" create mode 100644 src/main/dogp/org/bdware/doipv3/codec/img/DOIPV3.png create mode 100644 src/main/dogp/org/bdware/doipv3/codec/img/DOIPV3FLow.png diff --git "a/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" "b/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" new file mode 100644 index 0000000..76a6671 --- /dev/null +++ "b/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" @@ -0,0 +1,68 @@ +## DOIPV3 文档 + +**DOIPV3**在**DOIPV2.1**的基础上,新增了局域网隔离、连接认证等功能。 + +### 1 整体结构 + +#### 1.1 包头设计 +![DOIPV3.png](img%2FDOIPV3.png) + +**DOIPV3**在**DOIPV2.1MessageEnvelope**之上新增**DOIPV3Header**、**DOLHeader**和**VDNHeader**,后续可以通过**nextHeader**补充其他**Header**。 + +#### 1.2 type说明 +我们创建了一个名为**ExtensionType**的枚举类,包含**DOLHeader**、**ENVELOPE**、**VDNHeader**以及**UNHNOWN**枚举常量(后续可扩展),**value(byte)**字段值分别为0、1、2和-1。 + +我们还创建了一个名为**ExtensionPart**的抽象类,包含一个**ExtensionType**字段,由**DOLHeader**和**VDNHeader**具体实现。 + +在**DOIPV3**的包头中,为提升可扩展性,便于后续的增量开发,我们参照**IpV6**的包头,在每一个包头中都添加了**nextType(byte)**字段,用来标注下一个**Header**的类型,其值即为**ExtensionType**对应的**value**字段值。 + +#### 1.3 DOIPV3Header + +**DOIPV3Header**是**DOIPV3**的新增包头,主要包括以下字段: + +- **majorVersion(byte)**和**minVersion(byte)**:**majorVersion**为3,**minVersion**为0,和**DOIPV2.1**兼容,网管可以通过判断**majorVersion**是3还是2来辨别**DOIP**版本,从而进入不同的处理逻辑; +- **contentLength(int)**:记录**extensionParts**(见下)的元素的总长度; +- **HeaderLength(int)**:标注包头的字节数,为和DOIPV2.1保持一致,暂定为24; +- **extensionParts**:**ExtensionPart**列表,记录后续的扩展头类型,可用来计算出**contentLength**。 + +#### 1.4 DOLHeader + +**DOLHeader**用于数字对象定位,主要包括以下字段: + +- **dolLength**:用来统计**dol**数组(见下)的长度; +- **dol**:数字对象定位符(Digital Object Locator,dol)的**byte**数组,从**DOIPV2.1Message**的**cachedID**中计算出**SM3**哈希值。 + +#### 1.5 VDNHeader + +**VDNHeader**用于交换机定位,主要包括以下字段: + +- **locateFlag(byte)**:交换机定位标识符,0表示需要交换机定位,向其他交换机转发;1 表示此交换机即为目的交换机了,需要交换机向空间转发。 +- **sourceId(long)**和**destinationId(long)**:源网关和目的网关的Id,交换机用这两个字段判断是否在同一群内,进行转发至对应空间或丢弃并返回错误信息等相应处理,以实现局域网隔离; +- **LENGTH(int)**:固定为18(byte+byte+long+long)。 + +### 2 流程分析 + +#### 2.1 整体流程 +![DOIPV3FLow.png](img%2FDOIPV3FLow.png) + +整体流程如上图所示,客户端数据空间将**DoipV2.1**的**Message**发送给对应的源网关,源网关加上**DOIPV3**包头之后发给源交换机,再经由目的交换机转发至目的网关,去掉**DOIPV3**包头后发送至服务端。响应(reponse)操作同理,此处不赘述。 + +#### 2.2 网关处理逻辑 + +接收到数据包之后,首先读取**majorVersion**字段,若为2则说明为客户端空间发送,进入源网关处理逻辑;若为3则说明为对应交换机发送,进入目的网关处理逻辑: + +- 源网关:接收客户端空间发来的**DoipV2.1Message**,加上**DOIPV3**的包头,填充**sourceId**等相应字段,转发给对应的源交换机; +- 目的网关:接收对应目的交换机发来的**DOIPV3Message**,做相应处理后去除**DOIPV3**包头,发送至服务端空间。 + +#### 2.3 交换机处理逻辑 + +接收到数据包之后,通过服务端进行处理。 + +- 读取**dol**等字段并计算,判断是发给下一跳交换机还是自身网关。若为前者,则通过客户端直接转发至对应交换机;若为后者,则判断sourceId和destinationId是否在同一群内,若在则通过客户端转发至自身网关,若不在则返回错误消息。 + +- 判断方式:当下可直接在交换机内写入群信息配置文件,后续逐步将群信息移至路由器中。 + +### 3 后续任务 + +- 连接认证 +- …… \ No newline at end of file diff --git a/src/main/dogp/org/bdware/doipv3/codec/img/DOIPV3.png b/src/main/dogp/org/bdware/doipv3/codec/img/DOIPV3.png new file mode 100644 index 0000000000000000000000000000000000000000..7f948fc81943ba546edb23a25f243d16f3353153 GIT binary patch literal 26611 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 literal 0 HcmV?d00001 diff --git a/src/main/dogp/org/bdware/doipv3/codec/img/DOIPV3FLow.png b/src/main/dogp/org/bdware/doipv3/codec/img/DOIPV3FLow.png new file mode 100644 index 0000000000000000000000000000000000000000..04dcd6043847019da13cceb52eaa67ef223d6a7f GIT binary patch literal 39062 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 J>7T#)UjW3wYuW$+ literal 0 HcmV?d00001 -- Gitee From 5eb2c84219f284e138f47786b424ad7ab149004d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E5=A5=87=E8=BD=A9?= Date: Thu, 5 Sep 2024 22:08:44 +0800 Subject: [PATCH 4/5] modify --- .../org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" "b/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" index 76a6671..a3f99a5 100644 --- "a/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" +++ "b/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" @@ -20,7 +20,7 @@ **DOIPV3Header**是**DOIPV3**的新增包头,主要包括以下字段: -- **majorVersion(byte)**和**minVersion(byte)**:**majorVersion**为3,**minVersion**为0,和**DOIPV2.1**兼容,网管可以通过判断**majorVersion**是3还是2来辨别**DOIP**版本,从而进入不同的处理逻辑; +- **majorVersion(byte)**和**minVersion(byte)**:**majorVersion**为3,**minVersion**为0,和**DOIPV2.1**兼容,网关可以通过判断**majorVersion**是3还是2来辨别**DOIP**版本,从而进入不同的处理逻辑; - **contentLength(int)**:记录**extensionParts**(见下)的元素的总长度; - **HeaderLength(int)**:标注包头的字节数,为和DOIPV2.1保持一致,暂定为24; - **extensionParts**:**ExtensionPart**列表,记录后续的扩展头类型,可用来计算出**contentLength**。 -- Gitee From a36490e6785fbec165ceb055e0f5f4d080af1195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E5=A5=87=E8=BD=A9?= Date: Thu, 5 Sep 2024 22:14:55 +0800 Subject: [PATCH 5/5] modify --- .../codec/DOIPV3 \346\226\207\346\241\243.md" | 4 ++-- .../bdware/doipv3/codec/img/DOIPV3FLow.png | Bin 39062 -> 40020 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" "b/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" index a3f99a5..056ae39 100644 --- "a/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" +++ "b/src/main/dogp/org/bdware/doipv3/codec/DOIPV3 \346\226\207\346\241\243.md" @@ -58,9 +58,9 @@ 接收到数据包之后,通过服务端进行处理。 -- 读取**dol**等字段并计算,判断是发给下一跳交换机还是自身网关。若为前者,则通过客户端直接转发至对应交换机;若为后者,则判断sourceId和destinationId是否在同一群内,若在则通过客户端转发至自身网关,若不在则返回错误消息。 +- 读取**dol**等字段并计算,判断是发给下一跳交换机还是自身网关。若为前者,则通过客户端直接转发至对应交换机;若为后者,则判断**sourceId**和**destinationId**是否在同一群内,若在则通过客户端转发至自身网关,若不在则返回错误消息。 -- 判断方式:当下可直接在交换机内写入群信息配置文件,后续逐步将群信息移至路由器中。 +- 判断方式:目前处理方法为直接在交换机内写入群信息配置文件,后续逐步将群信息移至路由器中,交换机通过和路由器交互来获取群信息。 ### 3 后续任务 diff --git a/src/main/dogp/org/bdware/doipv3/codec/img/DOIPV3FLow.png b/src/main/dogp/org/bdware/doipv3/codec/img/DOIPV3FLow.png index 04dcd6043847019da13cceb52eaa67ef223d6a7f..5ce6a19af748914a7ca1f5372236a6e08d5acb3c 100644 GIT binary patch literal 40020 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 literal 39062 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 J>7T#)UjW3wYuW$+ -- Gitee