My boss had his MacBook Pro connected to the corporate network and was transferring a few gigs of data between one of our servers and his laptop. It was connected via the built in Gigabit ethernet port yet it was taking entirely too long. He was connected into the core switch a Cisco Catalyst 6513 with Gig blades. Transfers between a Windows box and the servers was not showing the same slowness that the Mac was experiencing. We had this same problem with Tiger and now we are running Leopard and seeing the same issue. On the Mac you can correct the problem by going to System Preferences and opening the Network module. Select the Built-In Ethernet connection and click the Advance button. Select the Ethernet tab change the Configure drop-down to Manual set the speed to match your switch capabilities in our case 1000baseT and set the Duplex to Full-Duplex. It appears that by default Mac will set the duplex for Full-Duplex, Flow Control if you have the network set for automatically. Once those settings were set data transfers were flying.
At this point we began to wonder why we were not seeing the same issue with our Dell Windows workstations. On the MacBook Pro it has BootCamp with a Windows Vista partition installed so we booted into Vista on the MacBook Pro and tried the data transfers again. While Vista transfers are no where near as fast as XP or OS X, it was not as slow as OS X when flow control is enabled. So this pretty much points to the way OS X drivers are setup.
Connecting to the Cisco Catalyst 6513 and doing a sho int on interface the MacBook Pro was connected to showed input flow-control is off, output flow-control is off where we have Windows boxes placed and on OS X stations when we have manually set the ethernet settings. A stock install of OS X connect to the same port shows input flow-control is off, output flow-control is on and data transfers are painfully slow, more than doubling the time required to transfer the same 2.69 GB iso file from the same NAS device.
Since we are getting more Mac devices in our environment, and we don’t feel like changing all the settings on each workstation we set out to find a way to make sure this can be altered on the Cisco gear. What we found is that this only effects workstations connected to our core 6513 since our distribution switches are Catalyst 3750 and output flow-control is unsupported on those devices. On the 6513 all that needs to be done is to change the port settings with flowcontrol send off and this will resolve all OS X issues with line speed.
Turning off flow control on the switch should not cause any ill effects on performance if your network uses high level protocol like TCP as it already has a built in mechanism to control data flow rates and this basically duplicates the control gaining you nothing, in theory. When you turn off flow control you will get a momentary disconnect to what ever is connected to that port so not a good idea to do this on all ports during operation hours.