TCP IP Illustrated

Believe it or not there have been routers with

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

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. tcpdump Output 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 checksum. 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 2 3 4 5 6 0.0 0.303755 ( 0.3038) 17.392480 (17.0887) 17.614371 ( 0.2219) 32.092454 (14.4781) 32.314378 ( 0.2219) sun.1900 > gemini.echo: udp 9 (UDP cksum=6e90) gemini.echo > sun.1900: udp 9 (UDP cksum=0) sun.1904 > aix.echo: udp 9 (UDP cksum=6e3b) aix.echo > sun.1904: udp 9 (UDP cksum=6e3b) sun.1907 > solaris.echo: udp 9 (UDP cksum=6e74) 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.

Ask a homework question - tutors are online