-
-
Notifications
You must be signed in to change notification settings - Fork 7.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Working principle #594
Comments
Doc is still incomplete. |
Seems an architecture introduction is needed. |
I am really not good at this, our design is very straightward, I do not like design patterns etc. Everything is in my mind, but I do not know how to draw or write on the paper. @fufesou you seems good at drawing diagram and flow chart, could you help? |
Good job! :) |
Security check locally, make sure your password is complex enough.
Depends on video transmission quality. These servers do not need high performance, you only need to consider the bandwidth of the relay server. |
ID / Pasword (encrypted) does not go to server 1. It goes to relay server or directly to remote PC (if NAT succeeds). |
Ok, I fix it soon. |
I steal it from https://cloud.tencent.com/developer/article/1897847 And I draw a simple depoyment diagram to supply some additional information. |
Yeah, the password is generated locally, this draft is wrong. |
I will put your diagram into a wiki. |
I steal the first diagram from https://cloud.tencent.com/developer/article/1897847 |
@asur4s The first diagram is a little out of date, B's pk in step 9 is also encrypted in new version. |
Ok, I'll read this part of the code carefully to fix the first diagram. |
The time is late. I've simplified a lot of information for a better understanding of how rustdesk works, You can also modify it online at this link |
Good Job! |
Looks ok |
@rustdesk @asur4s For the latest image provided here, I have some questions
One last (Mostly off-topic) question: What does hbbs and hbbr stand for?! I know they are the rendezvous and relay serves, but I can not see how hbbs stands for rendezvous server for example? Sorry for writing too long and thank you very much for the amazing software! |
Github supports mermaidjs, so it's possible to draw some simple diagrams using code. I'm sharing the code of a sequence diagram so you can place that in the wiki or doc and change it with ease. I'm not sure about how hbbr are used, so I guessed a bit in the last part.
sequenceDiagram
participant client A
participant hbbs
participant hbbr
participant client B
Note over client A, client B: Registration of client A
client A ->> hbbs: 1. Register with hbbs
hbbs ->> hbbs: 2. Save peer info
Note right of hbbs: ID, Address, UUID, PK
hbbs -->> client A: 3. Register response
Note over client A, client B: Registration of client B
client B ->> hbbs: 4. Register with hbbs
hbbs ->> hbbs: 5. Save peer info
hbbs -->> client B: 6. Register response
client B ->> hbbs: 7. Request to establish connection<br/>with RemoteID by punching hole
hbbs ->> client A: 8. Request remote addr
client A -->> hbbs: 9. Return remote
Note left of client A: Remote addr, Relay server addr
hbbs ->> client B: 10. Return remote info
Note right of client B: Remote addr, encrypted PK
Note over client A, client B: Establish a secure connection key exchange
client A ->> client B: 11. B's TPK encrypted with B's SK
client B ->> client B: 12. Decrypt B's TPK, generate, new keypair
client B ->> client A: 13. Sealed symmetric A's TPK
client A ->> client A: 14. Decrypt, get symmetric TPK/TSK
Note over client A, client B: Encrypted communication by using symmetric key
client B ->> hbbr: 15. Control data
hbbr ->> client A: 15. Control data
Note left of client A: Keyboard, Mouse
client A ->> hbbr: 16. Audio frame, video frame, clipboard
hbbr ->> client B: 16. Audio frame, video frame, clipboard
|
Hi, i'm new and would like to get technical-yet-comprehensible info about RustDesk. I'm using parsec to work remotly (fulltime) and i'd wish to know how your servers works. Is the relay server required? What it is purpose ? |
hbbs, hbbr meaning? |
It's in the server doc: https://github.com/rustdesk/rustdesk-server/blob/master/README.md
|
@akiross Their job is in the document. However, It is yet not clear how are their names derived. The question is: What does hbbs/hbbr stand for? |
Still no information about the abbrevation meaning of HBB (as in HBBR and HBBS)? |
How does it work? Any docs? Caused users concerning about the security itself without looking the code. Does it requires a good spec centeric server? what's the minimal requirements of it ?
The text was updated successfully, but these errors were encountered: