Spring break’s over — back to work!
On the big paper:
- Dr. Moran is using EVE to check for plagiarism.
- 8-12 pages double spaced, not counting title, bib, etc.
Hey! Ethics is coming up… next time (drat!).
TCP/IP
(remember: for the final, you will be asked about the 4 ways to identify a computer on the network [MAC, port, IP, name], Ethernet, and TCP/IP. Mark will ask for compare and contrast of TCP and UDP: see p. 310 among others… and be ready for questions that you have to think about, not questions that you will look have to look up)
Again, Panko makes a big deal about the difference between packets and frames. Mark and Jeff both say that difference never comes up in practice
Again, the five layers:
- Physical (none: use OSI standards)
- Data Link (none: use OSI standards)
- Internet (IP, ICMP, ARP)
- Transport (TCP, UDP)
- Application (HTTP, SMTP, DNS, Dynamic Routing Protocols, etc.)
Switches are faster because they know the MAC addresses, which don’t change.
Routers look at IP addresses, which can change.
There’s no way to look at an IP and determine the network, subnet and host parts, just their total of 32 bits. Masks solve this problem:
- mask: series of initial ones followed by a series of final zeroes for a total of 32 bits.
- use ipconfig /all to find mask
- the subnet mask tells you how many addresses you have available (ask a gearhead)
Routing: processing an individual packet and sending it
Routing table: used to make routing decisions (switches don’t need this: they just fire things out to the given MAC address, no changing, no deciding)
–each row represents a route
–router goes through the table, pulls matching destinations, then figures out the best route (kind of like how we navigate around Sioux Falls)
–routing decisions are constantly updated based on traffic: they can tell which of their neighbors are really busy with various tasks and route away from them
–best match criteria: longest match (initial 1s) in row mask, lowest cost, highest speed
Address Resolution Protocol (ARP): this is how routers find out MAC addresses (the data link layer address! we’re stepping down from Layer 3 [Internet] to Layer 2 [data link])
–broadcasts to all routers nearby the destination requesting MAC: the router that knows responds, others ignore.
Internet Protocol (IP) versions 4 and 6: IPv4 is what we started here in the U.S.; IPv6 is taking off elsewhere since we hogged all the IPv4 addresses.
IPv4 is 32-bit (2^32 = 4.3B); packet includes a time-to-live value (usu. 64 or 128) that each router decreases by 1 — when that bit hits zero, the router drops the packet, since it’s taking too long to get to destination, and we don’t want packets bouncing around the Internet all day.
[Remember that Bill Gates didn’t realize the Internet was big until 1997.]
IPv6 is 128-bit (2^128 = 3.4*10^38). We should have enough addresses for some time. Atoms in Earth: 8.87*10^49. Atoms in human body: 7*10^27.
DHCP: Dynamic Host Configuration Protocol: they’ll do a lot of this in INFS 752 this summer! Clients get dynamic IP addresses. You want servers and routers to have static IPs, but workstations can be dynamic, thus freeing us of the administrative effort to assign IPs to each machine (nice in case there’s a problem)
Why DHCP? [there’s a good essay question!] entering IPs manually is a high-cost task (see Panko, p. 338)
IP not reliable, no guarantees
The three-way handshake happens with any TCP/IP connection: SYNchronization, SYN/ACKnowledgment, ACK.
Normal four-way close: FIN, ACK, FIN, ACK. (Each server says FIN, each ACKs.)
There are 65535 possible ports:
- Port 80 = Internet
- Port 25 = e-mail
- Ports 0 to 1023 used for both TCP and UDP
- Ports 1024 to 4999: “Ephemeral Ports” for Windows Client PCs
- each program on the client gets a different port
Socket = IP:port (e.g. 128.171.17.13:2849 represents an app on that particular server)
Dynamic Routing Protocols: routing tables that change!
Layer 3 switches are faster, less expensive.
TCP is a heavyweight protocol because it has sequence numbers (number for each packet to allow reassembly of packets at destination; they can arrive out of order!), it is reliable (each segment is ACKnowledged by receiver — but note that TCP will set window size based on the quality of the connection: if the connection is going well, it may ask for ACK for every 5, 10, 80, 500 packets; if too many are dropping, TCP will shrink the window and ask for more ACKs)
Note that TCP sequence numbers don’t start at 1 — they start with random numbers (though algorithms exist to determine the initial sequence number)
One TCP segment may have multiple data chunks; supervisory segments carry no data, are treated as a single octet
TCP Fragmentation: TCP segments have maximum data field sizes! if the application-layer message is too big, TCP breaks it up into separate segments.
Maximum Segment Size: default is 536 octets, can vary if each side (sender and receiver) issues an option in the initial SYN to accept larger MSS
Maximum Transmission Unit: largest IP packet that network will accept. If router receives a packet bigger than the MTU, the router will break the packet into fragments!
Routing Information Protocol: older, simplest, limited to 15 hops (not enough for D2L, which takes 20 hops), used only inside smaller networks. Converges slowly (i.e., takes a long time, maybe several minutes, to get a correct routing table after a failure of a router or link); uses UDP on Port 520
Open Shortest Path First Routing Protocol: much better! responds quickly to router failures, finds most efficient route quickly. Divided network into areas, sends routing table info only to associated routers in each area, not everyone in network; that managing router in each area handles notifying its area members — that helps make fast convergence. OSPF is scalable!
Border Gateway Protocol: most popular! (remember, gateway is old term for way to get from one network to another; that’s a router! not many people refer to gateways any more); uses distance vector approach.
IP addresses: get some class!
–you know it by the subnet mask: Class A has 8 bits (24 bits in local part); Class B has 16 bits (16 local); Class C has 24 bits (8 local)
Class A starts with 0 (binary!), Class B 10, Class C 110
- A: 1-126 N.H.H.H
- B: 128-191 N.N.H.H
- C: 192-223 N.N.N.H
- D: 224-239
- E: 240-255
MultiProtocol Label Switching: very similar to virtual cricuits in ATM