TLM interface declares the API; for example, tlm_blocking_put_if declares that the API has 1 method: put(); whereas, tlm_put_if declares that the API consists of 3 methods: put(), try_put(), and can_put(). Note that the interface only defines the method prototypes; no implementation is provided.
TLM port and export (or imp) are closely related to the TLM interface. When you declare a TLM port/export, you also need to declare the type of interface for that TLM port/export. A TLM port declares the type of interface that it REQUIRES; a TLM export (or imp) declares the type of interface that it PROVIDES (implements).
An example below might help. In this example, a producer generates a packet and send to the consumer through a TLM blocking_put port:
class producer extends ovm_threaded_component;
ovm_blocking_put_port #(packet) packet_out= new("packet_out", this);
class consumer extends ovm_threaded_component;
ovm_blocking_put_imp #(packet, consumer) packet_in= new("packet_in", this);
task put(input packet pkt);
...//implementation of put() here
In the above code, the producer declares that it has TLM blocking_put port named packet_out; the producer will call the method declared in the tlm_blocking_put interface, put(), to send the packet. The consumer declares that it has a TLM blocking_put "imp"; this means that the consumer provides
the implementation of the tlm_blocking_put interface: put().
Note that you can only connect port to export/imp of similar interface. For example, you can connect an ovm_blocking_put_port to an ovm_blocking_put_imp but you cannot connect an ovm_blocking_put_port to an ovm_blocking_get_imp. Since my response is getting pretty long, I have skipped a few things, such as the code to connect the consumer to the producer, and the "complete guidelines" of what type of TLM export/imp can be connected to what type of TLM port. You can get more details in the OVM reference guide.
Lastly you can think of the built-in TLM channels as FIFO (or FIFO's for tlm_req_rsp_channel and tlm_transport_channel) with TLM interfaces; these are mainly used for buffering transactions so that the producer and consumer can "work" at its own rate. Again, you can get more details of these channels in the OVM reference guide.