Hardware Reference
In-Depth Information
Next the resulting packet (now consisting of the IP header, TCP header, and
GET PAGE request) is passed down to the data link layer, where a data link header
is attached to the front for actual transmission. The data link layer also adds a
checksum to the end called a CRC ( Cyclic Redundancy Code ) used to detect
transmission errors. It might seem that having checksums in both the data link
layer and the IP layer is redundant, but it improves reliability. At each hop, the
CRC is checked and the header and CRC stripped and regenerated, with a format
being chosen that is appropriate for the outgoing link. Figure 8-15 shows what the
packet looks like when on the Ethernet. On a telephone line (for ADSL) it is simi-
lar except with a ''telephone-line header'' instead of an Ethernet header. Header
management is important and is one of the things network processors can do.
Needless to say, we have only scratched the surface of the subject of computer net-
working. For a more comprehensive treatment, see Tanenbaum and Wetherall
(2011).
C
Ethernet
header
IP
header
TCP
header
Payload
Figure 8-15. A packet as it appears on the Ethernet.
Introduction to Network Processors
Many kinds of devices are connected to networks. End users have personal
computers (desktop and notebook), of course, but increasingly also game ma-
chines, PDAs (palmtops), and smartphones. Companies have PCs and servers as
end systems. However, there are also numerous devices that function as intermedi-
ate systems in networks, including routers, switches, firewalls, Web proxies, and
load balancers. Interestingly enough, the intermediate systems are the most de-
manding, since they are expected to move the largest number of packets per sec-
ond. Servers are also demanding but the user machines are not.
Depending on the network and the packet itself, an incoming packet may need
various kinds of processing before being forwarded to either the outgoing line or
the application program. This processing may include deciding where to send the
packet, fragmenting it or reassembling its pieces, managing its quality of service
(especially for audio and video streams), managing security (e.g., encryption or de-
cryption), compression/decompression, and so on.
With LAN speeds approaching 40 gigabits/sec and 1-KB packets, a networked
computer might have to process almost 5 million packets/sec. With 64-byte pack-
ets, the number of packets that have to be processed per second rises to nearly 80
million. Performing the various functions mentioned above in 12-200 nsec (in ad-
dition to making the multiple copies of the packet that are invariably needed) is just
not doable in software. Hardware assistance is essential.
 
Search WWH ::




Custom Search