In looking at the USB 3.x spec I found that there is a specification for a USB-A to USB-A cable for direct connection of two computers. There's a large number of USB-A to USB-A cables on the market but most of them violate the spec by connecting the USB D+, D-, and 5V lines. A USB-A to USB-A cable that meets the USB 3.x spec will have the SuperSpeed RX and TX lines cross, so it is a crossover cable, the ground lines connected, and the other contacts left unconnected.
Even if someone were to avoid this search for a compliant USB-A to USB-A cable there is still the obvious application of the USB spec to connect two computers with a USB-C to USB-C cable, or a USB-A to USB-C cable, for a high speed connection between computers. But if anyone were to connect computers this way the operating systems would not allow communication. If someone were to try this between two Apple computers that supported the ThunderBolt protocol over their USB-C ports this would work, but that's not USB and that's specific to Apple computers.
Perhaps the next obvious question is, why bother? If all someone cares about is a connection between Apple computers then this isn't even a concern. If there is a desire to do this between computers with different operating systems then just create a cable with two USB to Ethernet adapters and an Ethernet crossover cable. This is assuming that only USB ports are available, which certainly isn't always the case. What is happening though is many computers, especially laptops and tablets, there may only be USB ports for bi-directional communication.
One reason to want a direct connection by USB is cost. A couple USB to Ethernet adapters and an Ethernet cable would cost less than $50 if going for a gigabit connection, which is certainly not all that bad. If someone wanted a 10G Ethernet connection then that's going to cost hundreds of dollars for the adapters and cable, which is something one might not do on a whim but still not completely unreasonable. A USB cable capable of 5G or 10G speeds is much closer to that $50 range than it is to that of the 10G Ethernet connection. A cable with USB-C on one end and USB-C or USB-A on the other is something everyone reading this already has, so if such a cable allowed for a host to host connection then there is no added cost for added capability. There are special purpose cables with USB-A connections on each end built for this specific use but this is a cable with just one purpose, and they are not often all that cheap.
Another reason to want this is speed. While a gigabit Ethernet connection might be sufficient, and again those reading this likely have a couple USB to Ethernet adapters lying about so this costs nothing, it would be nice to have greater speed.
Perhaps the biggest reason is convenience. An Ethernet connection is relatively cheap, and fast enough for most uses, but this means having another set of cables and adapters on hand to make this connection. I'm sure people that use computers daily will have a USB cable within easy access but not perhaps extra Ethernet adapters. Since computers are getting smaller, and wireless communications more common, finding Ethernet ports built in to our devices is becoming more rare. Certainly wireless communications allows for simple file transfers and such but this can take time to set up, and if there is interference the connection might not be stable or fast. Wireless communications is also not always secure unless care is taken. But a wired connection should be far more simple, faster, secure, and cheap.
So where is the software or drivers to allow for a host to host connection over USB? The USB spec has had this function spelled out in their USB 3.0 specification back in 2011. Apple has had this host to host connection capability built in to their systems going back to nearly the first days of the Macintosh, just not for USB to USB. While computers have had ports of various kinds disappear from them the USB port has been ubiquitous for nearly a decade, and is not likely to go anywhere soon.
Has someone written such software for Windows and/or Linux and I just didn't see it? If this does exist then does it allow for cross platform communications? This would require software for Apple computers too since this host to host capability by USB-C ports is using the ThunderBolt protocol, not USB. If this existed for the macOS then this would allow host to host communications on pre-USB-C systems with USB-A 3.x ports.
I've searched the Internet for software to make this happen, and many others have asked this question, but all I see is one of three responses. The most common response is that the USB spec does not allow for this. This is not true, it's in the spec and it has been for years. Another common response is to use an Ethernet connection, one of those USB bridge cables, or some other work around. This is either not as fast as a direct connection could be, or more expensive. A third common response is that this is a stupid question and those asking this should feel ashamed for bringing it up.
Well, maybe this is a stupid question but I'm asking anyway. I bring this up here and now because I've seen a number of cases recently where this would have come in handy. I'm also hoping that enough time has passed since this question was first asked that someone has come up with the drivers and/or software to make this work.
I also bring this up to dispel the myth that the USB 3.x spec does not allow for a host to host connection. It's there in the spec, though perhaps hard to find. I found the appropriate document on the Wayback Machine (Link ->
https://web.archive.org/web/20140519092924/http://www.usb.org/developers/docs/documents_archive/usb_30_spec_070113.zip ) and the section that talks about a USB host to USB host connection is 5.5.2 on page 5-38. In the days of USB 1.1 and 2.0 the possibility of a host to host connection was impossible, and people were discouraged to not try this as noncompliant cables were everywhere and were prone to damage computers. Because of the problem of fried computers this is still discouraged, but with USB-C ports replacing all other ports and cables being so inexpensive the ability to create a host to host connection by USB would be something very convenient and useful for many.
If someone has made the software for a host to host connection by a passive USB cable then where can I find it, and how can I make it work?