Computer Networks notes for use during the midterm exam (I will supply you with a copy with your exam)

Datagram forwarding: each switch extracts the destination address from the packet, looks that address up in its ⟨dest,next_hop⟩ forwarding table, and then forwards the packet to the matching next_hop neighbor.

Virtual-circuit forwarding: each switch notes the arrival interface (port), and then looks up the ⟨VCIin, portin⟩ in its connections table, retrieving ⟨VCIout, portout⟩. The VCI field is then rewritten to VCIout, and the packet is forwarded via portout.

Knee congestion: queue has started to build. Cliff congestion: packets are dropped.

Switched Ethernet: a switch learns the port by which to reach destination A when a packet from A arrives.

NRZ: transition on 1-bits, no transition on 0-bits. 4B/5B: each 4-bit data pattern is transmitted as a 5-bit pattern with "enough" 1-bits, using NRZ.

IP addresses: The length of the network prefix is often denoted with a slash, eg 147.126.0.0/16. The slash notation works also with subnets, and corresponds to the subnet mask.

Subnets involve moving the net/host division point further right. This allows hierarchical routing within an organization, while at the same time allowing use of a single network prefix to reach the organization.

Bandwidth delay = packet_size / bandwidth. Propagation delay = time for one bit to travel from source to destination.

Store-and-forward delay: if a packet passes through a router/switch R, then R must read the entire packet before beginning to retransmit it. This adds one more bandwidth delay.

Either the sender or the receiver (or both) can implement retransmit-on-timeout; usually it is the sender. The other side then implements retransmit-on-duplicate. The Sorcerer's Apprentice bug may result if both sides implement retransmit-on-duplicate.

The bottleneck link is the link with the smallest bandwidth.

Sliding windows formulas:

If host A knows B's IP address, has determined it is on the same LAN, and wants to find B's physical address, it broadcasts an ARP query. B receives this, and responds directly to A. The pair ⟨BIP,Bphys⟩ is then entered into A's ARP cache.

Routers using distance-vector algorithms exchange tables of ⟨dest,cost⟩ pairs. If router A receives ⟨D,cD⟩ from neighbor N at distance cN, A updates its table as follows:

  1. D is a previously unknown destination: A adds ⟨D,N,cD+cN
  2. D is a known destination with entry ⟨D,M,c⟩, but c > cD+cN: A updates the entry for D to ⟨D,N,cD+cN⟩.
  3. A has a previous entry ⟨D,N,c⟩, but c < cD+cN: A updates the entry for D to ⟨D,N,cD+cN⟩.

Split horizon: N does not report a destination to D if N uses D as its next_hop for that destination

Triggered updates: If N discovers a problem, it sends out a new report immediately

Canonical transport issues:

TFTP:

TCP only allows data transmission after a connection has been established. Connection establishment: three-way handshake (3WHS):

    --->  SYN  -->
    <--SYN+ACK
    --->  ACK  -->

Each side includes its Initial Sequence Number, or ISN, in its SYN.

FIN closes the connection. When one side sends a FIN, it in effect promises not to send more data, though the other side may still send data.