Skip to content

Commit 334c7d7

Browse files
committed
feat: 更新内网穿透时序图
(cherry picked from commit df9aaa4)
1 parent 5485577 commit 334c7d7

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

README.md

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ ReverseTcpProxy.create(Vertx.vertx(), "10.0.0.1", 8080)
3838

3939
## TCP内网穿透
4040

41+
实现表示建立连接/监听端口等等。
42+
43+
虚线表示连接通信。
44+
4145
```mermaid
4246
sequenceDiagram
4347
participant user as User
@@ -46,25 +50,29 @@ sequenceDiagram
4650
participant rs as RealServer
4751
4852
ts->>ts: 1. 启动ts,监听tcp控制端口
49-
tc->>tc: 2. 启动tc
50-
tc->>ts: 3. 与ts控制端口建立控制连接,并传入tcp数据端口
51-
ts-->>tc: 4. ts认证通过后,监听tcp数据端口,并返回响应
53+
note left of ts: 明确tc与ts之间的编解码
54+
tc->>ts: 2. 建立控制连接,并进行认证
55+
ts-->>tc: 3. 控制连接:认证成功
5256
loop 控制连接实现长连接
53-
tc-->>ts: 发送心跳
54-
ts-->>tc: 响应心跳
57+
tc-->>ts: 控制连接:发送心跳
58+
ts-->>tc: 控制连接:响应心跳
5559
end
56-
57-
user->>ts: 5. 与数据端口建立连接,传输数据
58-
ts-->>tc: 6. 通过控制连接发送:有新的请求进来,需要你主动与我建立数据连接
59-
tc->>ts: 7. 主动建立数据连接
60-
ts-->>tc: 8. 通过数据连接转发用户请求
61-
tc->>rs: 9. 请求真实服务
62-
rs-->>tc: 10. 服务响应
63-
tc-->>ts: 11. 隧道响应
64-
ts-->user: 12. 返回最终结果
65-
66-
60+
tc-->>ts: 4. 控制连接:要求ts监听数据传输端口。如2222端口
61+
ts->>ts: 5. 监听2222数据端口
62+
ts-->>tc: 6. 控制连接:已监听2222数据端口
6763
64+
65+
user->>ts: 7. 与2222端口建立用户连接,传输数据
66+
ts-->>tc: 8. 控制连接:有新的请求进来,需要你主动与我的2222端口建立数据连接
67+
tc->>ts: 9. 与2222端口建立数据连接
68+
tc-->>ts: 10. 控制连接:已建立
69+
ts->>ts: 11. 将连入2222端口的user用户连接和tc数据连接进行绑定
70+
note left of ts: 区分用户连接和数据连接
71+
ts-->>tc: 12. 数据连接:传输用户请求数据
72+
tc->>rs: 13. 请求真实服务
73+
rs-->>tc: 14. 服务响应
74+
tc-->>ts: 15. 数据连接:隧道响应
75+
ts-->user: 16. 返回最终结果
6876
```
6977

7078

0 commit comments

Comments
 (0)