The second and final test will take place in class on Wednesday, November 14. It will cover course material through Wednesday, November 7. Since the first test, we have looked at TCP services, the network layer, and the link layer. From the textbook, this includes parts of Chapters 3, 4, 5, and 6, starting from Section 3.4. We have generally concentrated more on Internet protocols than on general principles, and we have covered less detail as we proceeded deeper into the protocol stack. The main readings included Chapter 3, Sections 3.4, 3.5, and 3.7; Chapter 4, Sections 4.1, 4.2, and 4.3; and Chapter 6, Sections 6.1, 6.3, and 6.4. We more or less skimmed parts of Chapter 5, covering basic ides of the OSPF and distance vector routing algorithms, and just touching on BGP. You are responsible for earlier material to the extent that the new material builds on it.
The test will include mainly longer and shorter essay-type questions. The last question on the test will be a long, summary essay dealing with everything that we have covered from the beginning of the course. You will not be asked to write any Java code. There will be no questions on things we did in lab (unless they were also covered in class). I do not expect you to memorize the format of TCP, IP, or Ethernet headers, but you should be familiar with the important fields in those headers.
Here are some of the terms and ideas that you should know for the test:
TCP
sliding window protocol
sequence numbers
ACK numbers
cumulative ACKs
TCP connection setup and tear down
three-way handshake: SYN, SYNACK, ACK
FIN packets for closing the connection
TCP header fields
source and destination port numbers
sequence and acknowledgement numbers
flags (SYN, ACK, FIN, RST)
receive window size
MTU (Maximum Transmission Unit), maximum packet size
MSS (Maximum Segment Size), maximum length of application data
TCP services
reliable two-way connection
flow control
congestion control
reliable communication
all packets delivered to upper level protocol, in order
uses sequence numbers and ACK numbers
uses retransmission
duplicate ACKs and fast retransmit
RTT (Round Trip Time)
retransmission timeout:
[ you do not need t memorize these, but you should understand them ]
EstimatedRTT = (1/8)*EstimatedRTT + (7/8)*SampleRTT
DevRTT = (1/4)*DevRTT + (3/4)*abs(EstimatedRTT - SampleRTT)
TimeoutInterval = EstimatedRTT + 4*DevRTT
flow control
avoid sending more data than receiver can handle
uses receive window size, rwnd, from TCP header
congestion control in TCP
avoid overloading routers by backing off transmission rate when packet loss occurs
in traditional congestion control, there is no explicit feedback from routers
uses congestion window, cwnd; number of un-ACKed bytes <= max(rwnd,cwnd)
slow start: start with cwnd = 1 MSS, double cwnd for every RTT
slow start ends upon packet loss or when cwnd reaches ssthresh
congestion avoidance: increase cwind linearly until packet loss
the Network Layer: transmission of datagrams across a network possibly through routers
routers (Level 3, or L3, switches)
forwarding vs. routing
a router has interfaces on multiple networks and forwards packets between networks
forwarding tables (also called routing tables)
the route -n command and the routing table in a Linux computer
gateway router for a network
NAT (Network Address Translation) and how it helped extend the life of IPv4
IPv4:
32-bit IP addresses, divided into network ID and host ID
network numbers such as 10.0.0.0/8 and 192.168.1.0/24
netmasks such as 255.0.0.0 and 255.255.255.0
IPv4 header fields:
version number
fields having to do with datagram fragmentation
TTL (Time-to-live), used to avoid infinite looping
source and destination IP addresses
ICMP (Internet Control Message Protocol), used for example by ping and traceroute
why IPv6 is necessary
some of the many changes in IPv6:
128-bit IP numbers
no fragmentation
fixed-length header
routing algorithms: computing fowarding tables for routers
autonomous systems (AS)
differences between intra-AS and inter-AS routing
link state algorithms:
every node has full knowledge and computes shortest paths
requires broadcast from every node about state of all of its links
OSPF -- an intra-AS link-state routing algorithm
distance vector algorithms:
distance vector at a node holds current best estimate of distance (cost) to other nodes
only requires direct communication (exchange of distance vectors) between neighboring nodes
nodes update their distance vectors based on information from neighbors' distance vectors
basic equation: D_y(x) = min( D_y(x), c(x,v) + D_v(y) )
border routers and BGP (Border Gateway Protocol)m -- inter-AS routing
the Link layer
two kinds of link: point-to-point and broadcast
broadcast implies shared media
types of multiple access used for broadcast media:
channel partitioning protocols:
TDM: Time Division Multiplexing
FDM: Frequency Division Multiplexing
CDMA: Code Division Multiple Access (used in some cellular data networks)
taking turns protocol:
Token Ring, extinct (?) competitor to Ethernet
random access protocols
implies possibility of collisions
CSMA: Carrier Sense Multiple Access
CSMA/CD: Carrier Sense Multiple Access with Collision Detection (traditional Ethernet)
CSMA/CA: Carrier Sense Multiple Access with Collision Avoidance (WiFi)
Ethernet
a link-layer protocol with many physical protocols (thinwire, 10BASE-T, 100BASE-SX, etc.)
MAC address (Media Access Control)
48-bit unique MAC address, built into Ethernet interface
the address FF:FF:FF:FF:FF:FF (all 1's) is used for broadcast
originally, ethernet used shared media and CSMA/CD, with exponential backoff
current LAN technology is switched Ethernet
Ethernet switches (Level 2, or L2, switches):
eliminate collisions
use a point-to-point full duplex connection to each host
packet switching, based on ethernet addresses
plug-and-play; require no configuration; they are self-learning
learns by inspecting source Ethernet addresses in arriving packets
forward broadcast packet to all links, except the one it arrived on
forward non-broadcast packet just to appropriate link, IF KNOWN;
otherwise, forward it to all links
Ethernet frame format:
preamble (seven 10101010's followed by one 10101011), for synchronizing clocks
destination and source Ethernet address
type of data
data from upper layer protocol
CRC (Cyclic Redundancy Check), for error detection
ARP (Address Resolution Protocol)
finds the Ethernet address associated with a given IP address on the local network
host broadcasts an ARP query with the IP address;
the Ethernet adapter for that IP responds directly to the host
host stores the information in an ARP table
the arp -n command
datagrams going out of the local network are addressed to the router's MAC address