I have a question about the reliability of network layers, I think in the network layers there is a redundancy, my question is why both link-level and end-end reliability need?
End-to-end is required because not ALL network layers are particularly reliable, and only the end systems know how much reliability is really required. Also, if there is more than one lossy link, only the end systems know which packets really need retransmitted (or corrected for) and end-to-end reliability therefore minimises the extra work to compensate for loss. And finally, all means for not losing packets take time. If every hop on a long path goes for near-perfect reliability, the overall latency will be enormous.
The end-to-end principle is what makes the internet practical.
When a link-layer protocol provides reliable delivery, it guarantees to move each network layer data-gram across the link without any error. A link-layer reliability is often used for links that are prone to high error rates such as wireless etc. rather than forcing an end-end retransmission of data by transport or application layer protocol.
In fiber case it is overhead for network to transmit extra bits.
Ok, so you have a server.. And you want pretty good availability and redundancy, so you connect it with one NIC to a single switch.
That's a good start, networks are fairly reliable if left alone.
Better redundancy would be to connect 2 NICs to the same switch, using STP Bridging to make sure you don't get a loop in the network.
Better still would be to connect 2 NICs to different switches. Now you can lose a single NIC and a single switch.
For greater redundancy you need to look at how the network gets beyond the LAN. WAN redundancy provided by more than one diverse route. By diverse I mean the traffic takes a different route entirely out to the internet. (say, ADSL vs Cable in an office) In a datacentre, this is probably best done by getting some IP space, and announcing it via BGP to your upstream transit/peering providers.
You can also do lots to make your application layer reliable. Multiple servers on multiple switches, connected to multiple routers.
For extreme reliability, you want to look at multiple power feeds into multiple racks, in multiple globally diverse datacenter locations, each rack having all of the above redundancy built in.
(as well as making sure that your servers have dual power supplies and at least 2 disks in a RAID level >= 1 !)