Most interfaces dont bother with TSTRB. So they only have TKEEP which is essentially a byte enable.
When used together, TKEEP indicates that a byte must be transmitted, while TSRB indicates a valid byte. So here, TKEEP can be high while TSTRB is low, meaning a null byte must be sent.
In reality, I have only ever seen TKEEP used. With packet based streams, TKEEP is used to indicate the start/end position of a packet in a stream (with all words in between set with TKEEP = all 1)