the DNS and TCP

Tom Kelliher, CS43

Mar. 12, 1996


The /etc/hosts crisis.

A distributed database:

  1. Zones, zone files
  2. Primaries, secondaries; the SOA record
  3. Resolver routines, server
  4. Caching
  5. Address, pointer queries
  6. Hostname spoof check



Selected TCP Header Fields

  1. 16-bit source, destination port numbers.
  2. 32-bit sequence number.
  3. 32 bit acknowledgedment number.
  5. 16-bit window size.
  6. 16-bit TCP checksum.

Sketch of Connection Establishement, Termination

Establishing a connection:

  1. Client sends SYN segment, specifying server port and initial sequence number.
  2. Server sends SYN segment, including its initial sequence number and ACKs the client segment.
  3. Client ACKs the server's SYN segment.

Active, passive open.

Terminating a connection (half-close):

  1. One side sends FIN segment.
  2. Other side sends ACK segment, sends EOF to application.

Active, passive close.

Establishment timeouts: 5s, 24s, 76s.

Window size, maximum segment size.

Looking at the connections on a Unix system:

Sequence numbers:

Sequence Number Attack

Due to poor randomization of ISNs.

TCP Futures

  1. Path MTU Discovery --- optimize packet size.
  2. Long Fat Pipes:

  3. Window scale option --- dealing with bandwidth-delay.
  4. Timestamp option --- RTT calculations.
  5. PAWS: Protection Against Wrapped Sequence number.
  6. T/TCP: an extension for transactions --- reduce the handshaking.
  7. Performance.
  8. Backward compatibility.

Thomas P. Kelliher
Tue Mar 12 11:08:43 EST 1996
Tom Kelliher