1

P2P IP over Thunderbolt is a useful macOS feature: https://support.apple.com/en-nz/guide/mac-help/mchld53dd2f5/mac

But when you connect two macs with a USB-C cable (non thunderbolt) they both get an interface (in my case en8), and self assign IP addresses so that they can communicate. The link is approximately 400Mbps.

This does not show up at all in System Preferences->Network or the networksetup tool. It doesn't show up as a service or a hardware port. As far as I can tell this is a completely undocumented (and useful) feature.

System report indicates that the USB bus is connected to a mac, and ifconfig -v shows that en8 has type: USB Ethernet.

14
  • If I’m not mistaken P2P, like PPP is an async serial protocol wnd not a network hardware port or service.
    – Allan
    Apr 1 at 3:35
  • @Allan I simply meant "peer-to-peer, i.e. connecting macs together and communicating with each other. Apr 3 at 1:57
  • I know what P2P means. USB is an asynch connection so IP over USB would be IP over asynch similar to PPP
    – Allan
    Apr 3 at 2:41
  • @Allan I don't follow. I meant network service in the context of macOS (WiFi, Ethernet, Thunderbolt, 'iPhone USB' etc). Apr 3 at 22:59
  • Yes, I know. I”m trying to explain that like PPP, a P2P over Universal Serial Bus Is an asynchronous connection and not a network connection. Even though you run network traffic over it, there’s no network service or interface.
    – Allan
    Apr 4 at 2:12

1 Answer 1

0

With some experimentation of my own I'm making an educated guess on what you are seeing. I am speculating so take the following with some healthy skepticism.

I believe this is an artifact of Apple implementing a virtual Ethernet connection over USB for the purpose of connecting an iPhone to a macOS computer, a feature that by happenstance allows use of slow USB 2.0 cables for connecting two macOS computers by a virtual USB Ethernet interface. Apple is likely hiding this feature as best they can so as to discourage use. Why discourage this use? Because using a similarly looking Thunderbolt cable for a virtual Ethernet connection would provide a much faster connection. Rather than try to explain to novice users that call in for technical support the nuance between Thunderbolt cables and USB cables Apple can instead consider this an unsupported feature and instruct those that ask about it to seek out a Thunderbolt cable to get a peer-to-peer connection between two macOS computers.

A bit more detail...

By unplugging the iPhone I use for internet from my MacBook I see the en5 connection disappear from the list of connections in ifconfig, and I see the iPhone USB interface show as disconnected in the Network panel of System Preferences. I plug the iPhone back in and I get both connections back. As further evidence of these being the same interface I find ifconfig and the Network panel showing the same IP address for both. I don't see a 400 Mbps connection as you did but a 100 Mbps connection. This can be explained in a number of ways such as a difference in hardware between an iPhone and another macOS computer, an iPhone is limited to 100 Mbps but a macOS computer is not, or an artifact of the driver not knowing the distinction between a 100 Mbps "real" Ethernet and one emulated over USB that would actually provide 400 Mbps if tested for available bandwidth.

When any USB device is connected the OS will probe the device to look for an appropriate means to communicate. This means will have several layers, and depending on which layers are important to the OS developers these layers will be exposed to the user or not.

To get an iPhone to appear as a potential connection to the Internet it must appear in the list of available interfaces in the Network panel of System Preferences for the user to select. It would be atypical for someone to connect two computers by a USB 2.0 cable for sharing an internet connection, to share files, or much else, since there is almost certainly the means to get a higher bandwidth connection by Bluetooth, WiFi, or Thunderbolt instead. Apple would prefer people not use any USB 2.0 connection to connect two computers together, if only to cut down on their support calls, so they hide this feature from users as best they can.

Why allow this connection at all then? This is likely because the OS won't know if the other device offering a virtual Ethernet connection is an iPhone or not until the connection has already been established. At that point the OS can choose to expose this connection to the user in the Network panel or not.

I haven't investigated my theory of operation thoroughly but the theory does make sense. It appears that even though the connection is hidden from the novice user the connection still does exist for use by those that find this feature useful. If someone wanted to expose the IP over USB 2.0 feature further then I expect this would be trivial with some kind of scripting, driver, and/or other relatively noninvasive and reversible means.

The answer on why this feature is not supported is simply that Apple would prefer people use other means of connection instead. A novice user is unlikely to see the connection, and a more experienced user would know how it works and what limitations the connection holds. Those in the middle, people that see the connection there but don't know what it does, are going to be rare. These rare individuals can then learn more about how it works or fall back to the habits of a novice user and pretend it doesn't exist. Perhaps Apple will do something to hide this feature more carefully or provide some kind of technical support for it if enough people ask about it.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .