USB isn't anything like serial, where both sides are essentially the same type of hardware. With different connector serial types you basically just have to worry about connecting TX to RX and vice versa. USB doesn't work anything like that.
USB has 3 very different hardware roles, called Host, Device, and Hub.
The host is typically your PC. Devices are things like keyboard and mouse. Each USB bus must have exactly 1 host. Devices NEVER communicate with each other. They only talk to the host. Hosts can't talk to each other directly, because each bus can have only 1 host.
Host and devices are so fundamentally different that early USB standards used different shape connectors. The original concept was you simply could not create an invalid connection because the connectors couldn't physically plug in.
USB protocol is quite complicated, but the basic concept is the host initiates all communication, 1 device at a time. The many devices reply only when the host asks. All data transfer from device to host is actually accomplished by the host repeatedly sending "IN" tokens to every device. When a device has more data to send to the host it replies to that token, and even when it has no data, it still replies but with a NAK token. It's not anything like simple serial communication where each side just transmits data whenever it wants. USB is a bus where the host controls all communication and the devices only communicate when instructed by the host. USB serial devices must buffer incoming serial bytes and only transmit to the host when the host instructs them to send. Of course the host can send whenever it wants, but there too USB has a complex protocol which includes flow control. It's different from RTS/CTS used by old serial lines, but achieves the same effect, fundamentally built into the USB protocol.
USB serial adapters (FTDI, CP2102, etc) are USB device hardware. Typically micocontroller boards have USB device hardware.
But some like Teensy 4.x and Teensy 3.6 also have a USB host port. The Teensy host port functions pretty much the same as the host port on a regular PC. The host port supports USB serial the same way your PC does, where you plug in a USB serial device and a device driver on your PC uses that adapter (functionally as if it were a card physically installed inside your PC). Likewise on Teensy, for the host port you use the USBHost_t36 library and in your program you create instances of all the device drivers you want to be available for use when a USB device is plugged into the host port, or plugged into any hubs you've connected.
Not sure if this helps answer your question, but if you were imagining things working as traditional old serial, hopefully this gives a bit of insight into how USB works.