I would think going through a switch would limit any benefit you would get from using 2 Ethernet cables in parallel. Unless the switch is faster than your two NICs combined, in which case then you might see a speed increase.
Load Balancing program is what you are looking for. You don't have to "load balance" if you don't want to, but it is the easiest way to merge the connections I know of. The Idea is not too complicated
Virtual NIC - > Load Balancing Program -> NIC 1 + 2
This answer has what you are looking for I believe:
Network load-balancing with Network Manager
I'm not sure on the specifics but I'm sure that is the general idea.
Unless the NIC cards are substantially less powerful than your router/switch the only benefit you will probably get is with a direct connection between the two computers, Or a parallel connection the whole way. But theory and practice don't always work out.
The only way I can think of to test if the NIC is the bottleneck in your system is to do a speed test between each computer using all 4 NICs. I can give you the general Idea on how to do this but the Ubuntu specific stuff I'll need a hand with.
- Set each NIC to have its own IP address like 192.168.0.1 + 192.168.0.2 for computer 1 and *.3 + *.4 for computer 2
The only speed test for local networks I've seen is just transfer time on a bit file. I'm not sure if there is a better method, I've never seen one.
3 Set routes manually so *.1 is the interface to get to *.3 and *.2 get to *.4.
PC1 192.168.0.1 <--> 192.168.0.3 PC2
192.168.0.2 <--> 192.168.0.4
I've never used ip tables so here is something I found as an example.
[root]# ip route add xx.xxx.239.120 via xx.xxx.239.120 dev eth0 table 4
[root]# ip route add table 4 default via xx.xxx.239.120
[root]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -s xx.xxx.239.120 -j MARK --set-mark 4
[root]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source xx.xxx.239.120 [root]# ip rule add fwmark 4 table 4
- another option is to find a way for ssh (or terminal) client to connect via certain interfaces. I'm not sure how thats done yet for the client side.
If IP tables is set up correctly you should be able to send 2 files from PC 1 to both interfaces on PC 2 and each file will take a different route. If the transfer with the two connections is faster than just one.. (hopefully twice as fast) then you might have something.