This preview shows page 1. Sign up to view the full content.
Unformatted text preview: rame) can detect most corruption of the frame, when the datagrams pass through routers, all
bets are off. Believe it or not, there have been routers with software and hardware bugs that
have modified bits in the datagrams being routed. These errors are undetectable in a UDP
datagram if the end-to-end UDP checksum is disabled. Also realize that some data-link
protocols (e.g., SLIP) don't have any form of data-link checksum.
The Host Requirements RFC requires that UDP checksums be enabled by default. It also states
that an implementation must verify a received checksum if the sender calculated one (i.e., the
received checksum is nonzero). Many implementations violate this, however, and only verify a
received checksum if outgoing checksums are enabled.
It is hard to detect whether a particular system has UDP checksums enabled. It is normally
impossible for an application to obtain the checksum field in a received UDP header. To get
around this, the author added another option to the tcpdump program that prints the received
UDP checksum. If this printed value is 0, it means the sending host did not calculate the
Figure 11.4 shows the output to and from three different systems on our test network (see the
figure on the inside front cover). We ran our sock program (Appendix C), sending a single UDP
datagram with 9 bytes of data to the standard echo server. 1
0.2219) sun.1900 > gemini.echo: udp 9 (UDP
gemini.echo > sun.1900: udp 9 (UDP
sun.1904 > aix.echo: udp 9 (UDP
aix.echo > sun.1904: udp 9 (UDP
sun.1907 > solaris.echo: udp 9 (UDP
solaris.echo > sun.1907: udp 9 (UDP
cksum=6e74) Figure 11.4 tcpdump output to see whether other hosts enable UDP checksum.
We can see from this that two of the three systems have UDP checksums enabled.
Also notice that for this simple example...
View Full Document
This test prep was uploaded on 04/04/2014 for the course ECE EL5373 taught by Professor Guoyang during the Spring '12 term at NYU Poly.
- Spring '12