Gatling http request and response binding

I would like to understand how Gatling maps http request with responses ?

I know that it uses Asynchronous http client(AHC) , but what particular variable/value/property of it maps and confirms that a http responses is for a particular http request.

Any response on the same would help me to understand underlying architecture and philosophy behind Gatling.