How do publishing, fragmenting and pinning work?

Provided my PID is PID_A, and now I want to publish an 1GB file( file_A ). I execute the command: “ipfs add ./file_A”. What will happend? (At this post, I use kubo as my ipfs client)

From my perspective, file_A will be fragmented and assembled into a Mercle DAG. Then, kubo only needs to tell Top-K nearest (in KAD distance) peers to record I (PID_A) have a file and the hash of the root of the Mercle DAG.
Latter, if someone(PID_B) gets the hash and wants to access it. It can ask Top-K nearest peers who knows who has a copy of file_A. After knowing who has the copy, namely PID_A, PID_B can ask PID_A for file_A. After downloading, PID_B gets file_A. It will also ask Top-K nearest peers to add it into the records of “who have file_A”.
Further, if PID_A wants file_A stored in kubo’s work dir to not be influenced by GC, PID_A should pin file_A.

Am I right?

All of this sounds correct to me.

Thank you for your help !