I have a question about the Key Exchange Algorithm used in TLS process. I have read that the Key Exchange algorithm is used by client and server to exchange session keys. Do the client and server exchange session keys at the end of Handshake process? If they arrive mathematically at the same results for session keys at the end of the process, why would they exchange them?
When you use the term, 'exchange session keys', I think what you are really referring to is the fact that the client and the server exchange ECDHE public keys.
See https://tlseminar.github.io/first-few-milliseconds/ for a write-up on how TLS 1.2 works. You'll see that in the ServerKeyExchange message, the server sends its ephemeral public key. Then, after that, in the ClientKeyExchange message, the client sends its ephemeral public key.
Once the two sides have one-another's public keys, the server calculates the pre-master secret by multiplying its private key with the client's public key. Then, the client does the same by multiplying its private key with the server's public key. This produces the same result, so the client and the server both come to the same pre-master secret. Then, finally, the master secret is derived from the pre-master secret.