click below
click below
Normal Size Small Size show me how
COMP2207
Distributed Systems and Network
Term | Definition |
---|---|
Tanenbaum Model | link - transport - network - link - physical |
layer encapsulation | each layer has its own header; this becomes part of the payload for the layer below it |
link layer | shields upper layers from specific connection type |
physical media types | we need standard(s) for transmission of bits on each media type, which can be used by the link layer |
transmitting bits | using encoding schemes; based on varying something over time, typically voltage or frequency, with synchronisation |
link layer functions | transmission of frames over physical media; receiving frames, passing IP datagrams up the stack; detection & handling of transmission errors |
link layer frame | contains the packet and has extra fields added to aid in transmission |
data frames | frames vary depending on the physical layer |
flow control | may regulate flow of data so a slow receiver is not swamped by a fast sender; can use messages to sender saying more data can be sent; can be rate-based so the speed is agreed |
link layer acknowledgements 3 types | connectionless, no acknowledgements; acknowledged, connectionless service; acknowledged, connection-oriented services |
Stop-and-Wait Automatic Repeat reQuest(ARQ) | send a frame, wait for ACK, send next frame, etc; will not get an ACK if frame is lost or damaged (used for handling ACKs and errors) |
improve ARQ | use pipelining; send multiple frames before receiving the first ACK |
error detection/correction | can provide a line ‘free of errors’ to the network layer; requires error or packet loss detection and subsequent retransmission |
detecting errors | parity bit; cyclic redundancy check - calculated by sender and receiver, and result compared; checksums at other layers |
MAC – media access protocol | manages access to/from the PHYS medium; has a mechanism for sending frames to/from PHYS and typically manages channels/frequencies/collisions |
ethernet | twisted pair cable with switches; packet switched; one device per switch port |
WiFi | wireless alternative to ethernet; devices associate with a wireless access point |
Carrier Sense Multiple Access with Collision Detection (CSMA/CD) | handling media contention; sender listens to see if the media is busy; when channel is free, the sender starts to talk; back off before retransmitting if collision detected |
WiFi doesn’t use CSMA/CD | because WiFi devices can’t generally send and receive at the same time |
CSMA/CA | like CSMA/CD but instead of listening into the transmission, it waits for an acknowledgement from the AP to determine if the frame was successfully sent. |
internet layer functions | internetworking, transmitting packets, receiving packets |
internet layer | provides unique addressing; handles next-hop routing |
internetworking | hides routing from transport layer; internet = network of networks; LANs at the edges, served by routers at the core |
transmitting packets | packetization into datagrams; processing and routing IP datagrams; fragmentation |
receiving packets | error checking; fragment reassembly |
internet protocol properties | packet switched (connectionless); unreliable - packets sent on a best effort basis; routed |
store and forward packet switching | packet is sent to nearest router, this router passes it on towards destination and so on |
unreliability (internet layer) | IP packets get dropped or delayed - could be due to congestion or errors/faults |
maximum transmission unit | a measurement representing the largest data packet that a network-connected device will accept; packets larger than this will get split to be transmitted |
internet protocols | IPv4, IPv6 |
internet layer diagnostic/control protocols | ICMP, ICMPv6 |
IPSEC | (internet protocol security) security/encryption |
IGMP | (internet group management protocal) a protocol that allows several devices to share one IP address so they can all receive the same data. |
IPv4 | 32 bit addresses; e.g 157.78.64.100; 3.7 billion addresses |
IPv6 | 128 bit addresses; e.g 2001:db8:3333:4444:5555:6666:7777:8888; 3.4*10^38 addresses |
IPv6 simplification | omit leading 0s; blocks of only 0s written "::" ; 2001:630:d0:f500::64 |
IPv6 address scope | always has link local address per adapter (never routed); hosts can have multiple unicast addresses and unique local address |
fragmentation in IPv4 | packets can be fragmented at any routing hop; generally reassembled at receiving but may be assembled at intermediate hops |
fragmentation in IPv6 | packets only fragmented at sending host; must use path MTU discovery before sending |
netmasks | specifies how many bits identify the network prefix; e.g 2001:630:d0:: /48 |
CIDR | (classless interdomain routing) allows variable length prefixes (originally only /8 /16 /24 were allowed) |
subnets | logically divide the network; limit the propagation of ethernet broadcast traffic and segment hosts |
unusable addresses in a subnet | first is reserved; last is the broadcast address; one is required for the router (usually first or last usable) |
IPv6 subnetting | smallest prefix used is /64 (no larger or smaller needed); /127 may be used for inter router links; used for simplified routes rather than address conservation |
routers | needed anytime there is a change in address space; needs an interface for each network segment; each interface needs an address that is reachable by hosts in that segment |
RFC 1918 | private addresses for private networks; used due to IPv4 addresses being in short supply; not globally routable |
NAT | (network address translation) shore a global IPv4 address between multiple hosts; comes with architectural price and performance overhead |
CGNAT | (carrier grade NAT) ISPs running out of IPv4; share one/a few global addresses between customers; customers get a private address from a special range; then NATs that address to RFC 1918 |
IPv4 summary | 32 bit; 20 byte, 13 field header; one address per adapter; fragmented routing; prolific us of NAT |
IPv6 summary | 128 bit; 40 byte, 8 field header; hosts have multiple addresses; simplified routing; end-to-end paradigm restored |
IPv4 vs IPv6 | they will need to co-exist for the foreseeable future (dual stack - run both in parallel) |
routing | function of the internet layer; describes how packets move between subnets |
basic routing | process 1 packet sent to nearest router; packet passed through the network; eventually it arrives at process 2 |
IP routing | occurs when there's a change in IP space; router has an IP address in each address space it routes between; many routers between hosts on the internet; parts of IP header rewritten at each hop |
Host | usually unaware of routes beyond their own subnet; may have multiple routers; can send directly to a destination on the same local subnet; can forward to a router |
Subnet mask | indicates the size of a subnet; states how many bits are common between addresses on the same website; e.g 255.255.255.0 for IPv4; e.g /64 for IPv6 |
Routing table | all hosts on a network have a routing table; built from info from DHCP or IPv6 RA; tells host how to route traffic; set of rules; can be multiple routes for one destination; most specific matching (longest prefix) route picked first |
Routing table includes | destination IP prefixes and the interface or next hop to use, local subnet that the host is connected to, a catchall default route |
Routing table metric | determines the priority of routes with the same specificity; lower metric means a higher priority |
Prefix aggregation | a subnets prefix can be aggregated with other adjacent subnets; organisations may only one route for its entire address space; IPv4 exhaustion makes prefix aggregation harder and routing tables larger |
Beyond default router | IP packets not delivered locally are sent via the default router; default router needs to know where to send packets next; very large routing table; where routing protocols come in |
Autonomous systems | large network or group of networks that has a unified routing policy; internet is made of interconnected autonomous systems; each is assigned a ASN by a RIR |
AS categories | multihomed, transit, single-homed/stub |
ASN | autonomous system number |
RIR | regional internet registries; bodies that allocate IPs |
Routing protocols | allows router to build and exchange routing info automatically; different protocols for different networks |
Interior gateway protocols | used within an autonomous system |
Exterior gateway protocols | used between autonomous systems |
Distance vector | type of interior gateway protocol; talk only to directly neighbouring routers; exchange best route (shortest distance) info for known prefixes with direct neighbours |
Link state | type of interior gateway protocol; talk to all routers to establish full knowledge of the routers/topology in a site (can make smarter routing decisions); routers flood info messages describing their connected neighbours around the entire network site |
RIP | routing information protocol; uses hop count as metric; has IPv6 support; MD5 for authentication; RIPv1 uses broadcast; RIPv2 and RIPng use multicast; sends its whole routing table periodically to directly connected routers |
RIP limitations | slow (updates only every 30 seconds); updates not acknowledged; metrics are simple hop count values (max value 15 - 16 means unreachable); routers don't have knowledge of network topology; authentication is MD5 - broken! |
Link state routing steps | discover neighbours and determine cost metric; flood message with this info to all routers; use received messages to build topology; compute shortest paths for prefixes served by any router |
Link state routing | hop count could be hop count, cost, etc; messages sent periodically (or when connectivity change); both ends of a link must agree for it to be valid; all routers learn the full network topology |
Discovering neighbours | with broadcast packets sent on all interfaces; link cost then determined - typically based on bandwidth or delay but could be other factors |
Building link state packets | each router creates link state packets based on neighbours and costs to reach them; the packets sent to all routers in the network - may be multicast or broadcast, sent periodically or when requested |
Computing shortest path tree | each route computes best path; uses Dijkstra's algorithm; tree then used to populate routing table |
Link state vs distance vector | link state converges faster; link state better at avoiding loops |
Routing between sites | exterior routing protocols; advertise network prefixes to neighbouring networks; may or may not offer transit to other networks; policy more important than path cost; hop count not primary factor; |
BGP | border gateway protocol; defacto exterior routing protocol; works between autonomous systems; distance-vector like but includes info about AS path associated with a given route, cost of paths and other attributes |
BGP operation | specify IP of neighbour and AS; creates a BGP peering session (over TCP, port 179); advertise routes you know of to your neighbours; full path is known, so loops can be detected |
BGP downsides | relies on trust; slow; routers have limited routing table size |
Traceroute | determines route between 2 hosts; sends packets with gradually increasing TTL; (tracert on windows) |
Routing problems | routes across the internet can change quickly; may change packet to packet; path and length may change; routes likely to be asymmetric; not all routes are equal |
main transport protocols | TCP and UDP; the IP packet protocol field in the header specifies which |
UDP | user datagram protocol; connectionless (send and forget, no connection setup); retransmission/adaptation is up to application; no flow control (UDP applications often have fixed bit rate) |
UDP properties | connectionless (no acks); retransmission handles by application; often constant bit rate; low overhead (no connection management); simpler header; optional checksum; multicast |
UDP loss | lossy/congested links can drop packets (higher protocols send request back to source); lower bandwidth links may drop packets as their buffers fill up (applications could detect this and tell server) |
TCP | connection oriented; includes acks and retransmissions; provides flow control/congestion control for segments it sends; adjusts sending rate over time |
TCP/UDP service model | sender and receiver each create a socket to act as a communication endpoint; socket has an IP address and port number; sockets + protocols uniquely identify the applications subsequent data transmissions; ports reserved for specific protocols |
multiple clients | each client endpoint will be different; server multiplexes connection (e.g one thread per client endpoint) |
Berkley sockets API | example of API to use sockets; server side - socket() and bind(); client side - socket() and connect(); other functions as well |
TCP properties | connection management (similar to link layer); flow control (manages congestion); retransmission; receiver reassembles segments; performance + reliability (on otherwise unreliable IP service) |
TCP header | source/destination port; sequence number; ack number; TCP header length; window size; checksum; urgent pointer; options (timestamp, max segment size); data |
TCP connection establishment | three-way handshake (SYN, SYN-ACK, ACK); each side uses a sequence number; repeat packets discarded; lost packets resent; common understanding of position in data stream |
TCP reliability | acks sent back by receiver; sender must detect lost packets (by retransmission timeout, estimate when ack is expected) |
TCP flow control | sliding window protocol to control sending rate (receiver has limited incoming buffer size); sender shouldn't send data unless receiver indicates it has buffer space to accept (will need to be resent, wastes bandwidth); |
TCP sliding window | sender sends segment with a sequence number + starts timer; receiver replies with ack number showing next sequence number it expects to receive and available window size; if timer goes off before ack received, sender retransmits |
TCP window size | controls the flow of data; limited to 2 bytes; if it is 0 the sender may send a 1 byte probe to get a new window advertisement (or wait until receiver indicates it has capacity) |
TCP congestion control | congestion window indicates number of bytes a sender may put into the network at any time (packet loss is sign of congestion); starts low (add segments worth per segment acknowledged before ack timer runs out, 'slow start', if successful window doubles) |
TCP sliding window vs congestion window | run alongside each other; use the smaller of the 2 when sending |
TCP vs UDP - TCP | connection oriented; handles ack + retransmission; guarantee data arrives whole and in order; 20-bytes minimum header; for applications that need high reliability; HTTP(S), FTP, SMTP, Telnet, SSH |
TCP vs UDP - UDP | connectionless; application handles ack + retransmission if needed; no guarantee of data arrival or correct order; 8-byte header; for applications that need fast transmission; DHCP, TFTP, SNMP, RIP, RTP, COAP |