Session keys are generated during TLS handshake and are transferred from clients to server through asymmetric encryption FOR ONCE.
However, I have heard that session keys are single-use, which mean a new set of session keys are going to be re-generated after the end of a session, thus here comes my question: How are session keys transferred between a client and a server? If they are exchanged through asymmetric encryption, wouldn't it waste time everytime a session has started again and again? If they are exchanged through symmetric encryption, are they secure against man-in-the-middle? All kinds of useful answers are appreciated. In case that I am misunderstanding some concepts, you could explain the detail and true processes of a Record Protocol where two sides both use one single key (the session key) to encrypt and decrypt a file.