Isto se chama "USB tethering".
O protocolo por tras disto seria o SLIP, que encapsula uma conexão de rede sobre uma conexão serial (do mesmo jeito que os modems fazial antigamente, nos tempos de BBS e nos primórdios da internet no Brasil).
Dá uma olhada nisto: Arduino Playground - SerialIP Library