Is this a homework question - we don't like those here.
All modern disks communicate externally as either SATA or one of the SCSI-variants (Parallel SCSI, SAS, FC) - so when used as direct storage these will always offer the shortest latencies per disk. Of course generally they're limited to single-server connectivity when used this way (you can do shared SCSI-based DAS but it can get complex and only supports two servers anyway).
If you want/need to share your disks between servers (i.e. for clustering) you need FC/FCoE/iSCSI (or in some cases NFS) as these inherently support block-level sharing.
As to which of FC/FCoE or iSCSI is more efficient it gets complex. There's very similar overhead between PURELY FC and iSCSI disk protocols, and both are available at a range of speeds but where FC does take the lead is in the TRANSPORT protocol. iSCSI sits on top of 'regular ethernet', now this can, and should, be on a dedicated network but it's still the same old flavour of ethernet that's been around since...the 70's iirc. FC was designed as a storage network first and foremost with features such as in-order deliver and a whole host of other capabilities that allow for more consistent delivery timing, especially when under heavy load - basically ethernet 'drops off' much quicker than FC in this situation.
FCoE is the best of both worlds, it's essentially FC but over 'Datacenter Ethernet', which is like regular ethernet but with all the bits that have become a little broken over the decades fixed, though at quite a price. THIS is the book about the subject.
So as a rule of thumb if your server isn't clustered then use direct storage, I'm something of a SAN-zealot but even I routinely recommend DAS for the right job. But if clustering is required and you have the budget then FCOE/FC is going to work out faster, but far from cheaper, than iSCSI. That said many people out there find iSCSI to be a really worthy compromise that fits most budgets.