CS 536 ParkIP address format:Class AClass BClass CClass DNetwork ID Host IDNetwork IDNetwork IDHost IDHost IDMulticast Address0111111000147241621 828Dotted decimal notation: 10000000 00001011 0000001100011111 ↔ 128.11.3.31Symbolic name to IP address translation: domain nameserver (DNS).CS 536 ParkHierarchical organization: 2-level−→ network and hostEach interface (NIU) has an IP address; single host canhave multiple IP addresses.−→ single-homed vs. multi-homedRunning out of addresses...CS 536 ParkWaste of address space:−→ typical organization: network of networks−→ not too many hosts (class B: 64K)Solution: subnetting—subdivide host ID into subnetworkID and host IDClass B Network ID1014Host ID16Host ID801 Network ID14 8 8241111 11111 111 . . . 0 0 0 00. . .Subnet MaskSubnet IDTo determine subnet ID:• AND IP address and subnet mask→ already know if class A, B, C, or D• 3-level hierarchyCS 536 ParkForwarding and address resolution:Subnet Mask128.10.2.0128.10.3.0255.255.255.0255.255.255.0255.255.255.0128.10.4.0Interface 0Interface 1128.10.4.250Subnet IDNext HopEither destination host is connected on a shared LAN, ornot (additional IP hop needed).−→ reachable by LAN address forwarding−→ if not, network address (IP) forwardingCS 536 ParkTable look-up I (“where to”):• For each entry, compute SubnetID = DestAddr ANDSubnetMask.• Compare SubnetID with SubnetID.• Take forwarding action (LAN or IP).Remaining task: translate destination or next hop IP ad-dress into LAN address−→ must be done in either case−→ address resolution protocol (ARP)CS 536 ParkTable look-up II (“what’s your LAN name”):• If ARP table contains entry, using LAN address linklayer can take over forwarding task.→ ultimately everything is LAN→ network layer: virtual• If ARP table does not contain entry, broadcast ARPRequest packet with destination IP address.→ e.g., Ethernet broadcast address (all 1’s)• Upon receiving ARP response, update ARP table.Dynamically maintain ARP table: use timer for each en-try (15 min) to invalidate entries.−→ aging (old caching technique)CS 536 ParkOther approaches to solve address depletion problem:• IPv6→ 128 bits (who wants it?)• classless (vs. classful) IP addressing→ variable length subnetting→ a.b.c.d/x (x: mask length)→ e.g., 128.10.0.0/16, 128.210.0.0/16, 204.52.32.0/20→ used in inter-domain routing→ CIDR (classless inter-domain routing)→ de facto Internet addressing standardCS 536 Park• dynamically assigned IP addresses→ reusable→ e.g., DHCP (dynamic host configuration protocol)→ used by access ISPs, enterprises, etc.→ specifics: network address translation (NAT)→ private/unregistered vs. public/registered IP ad-dress→ can additionally use port numbers: NAPTCS 536 ParkEx.: SOHO (small office/home office)−→ now: home networkingNAT & DHCPDHCP & NAT000000000000000011111111111111110000000011111111ISP192.168.1.2192.168.1.3192.168.1.4192.168.1.1192.168.1.5cable/DSLdyn−IPmodem gatewaycable/telephone• dynamic IP address provided by ISP is shared throughNAT• IANA (Internet Assigned Numbers Authority)→ non-routable: e.g., 192.168.0.0/16, 10.0.0.0/8CS 536 ParkEx.: private backbone or testbed (e.g., Q-Bahn)• routers have 10.0.0.0/8 addresses→ each interface: a separate subnet• only one of the routers connected to Internet→ 128.10.27.0/24 address• PCs connected to routers are dual-homed→ 10.0.0.0/8 address & 128.10.27.0/24 address→ dual-homed forwardingCS 536 ParkTransport Protocols: TCP and UDP−→ end-to-end protocol−→ runs on top of network layer protocols−→ treat network layer & below as black boxThree-level encapsulation:TCP/UDPIPMACPayload (TCP/UDP)Payload (IP)Payload (MAC)MAC TrailerHeaders−→ common TCP payload: HTTPCS 536 ParkNetwork layer (IP) assumptions:• unreliable• out-of-order delivery (not frequent)• absence of QoS guarantees (delay, throughput, etc.)• insecure (IPv4)→ IPsecAdditional (informal) performance properties:• Works “fine” under low load conditions• Can break down under high load conditions→ Atlanta Olympics→ DoS attack• Wide behavioral range: to some extent predictableCS 536 ParkGoal of UDP (User Datagram Protocol):−→ process identification−→ port number as demux key−→ minimal support beyond IPProcess APort XProcess BPort YEnd System O.S.UDPIPProcess A’Port X’Process B’Port Y’End System O.S.UDPIPNetworkCS 536 ParkUDP packet format:Source PortDestination PortLength ChecksumPayload22Checksum calculation (pseudo header):Source AddressDestination Address4UDP LengthProtocol00 0. . .−→ pseudo header, UDP header and payloadCS 536 ParkUDP usage:• Multimedia streamining→ lean and nimble→ at minimum requires process identification→ congestion control carried out above UDP• Stateless client/server applications→ persistent state a hinderance→ lightweightCS 536 ParkGoals of TCP (Transmission Control Protocol):• process identification• reliable communication: ARQ• speedy communication: congestion control• segmentation−→ connection-oriented, i.e., stateful−→ complex mixture of functionalitiesCS 536 ParkSegmentation task: provide “stream” interface to higherlevel protocols−→ exported semantics: contiguous byte stream−→ recall ARQ• segment stream of bytes into blocks of fixed size• segment size determined by TCP MTU (MaximumTransmission Unit)• actual unit of transmission in ARQCS 536 ParkTCP packet format:Source Port Destination PortSequence NumberAcknowledgement NumberWindow SizeUrgent PointerDATA (if any)Options (if any)ChecksumHeaderLengthFINNYSRSTPHSACKUGR22CS 536 Park• Sequence Number: position of first byte of payload• Acknowledgement: next byte of data expected (re-ceiver)• Header Length (4 bits): 4 B units• URG: urgent pointer flag• ACK: ACK packet flag• PSH: override TCP buffering• RST: reset connection• SYN: establish connection• FIN: close connection• Window Size: receiver’s advertised window size• Checksum: prepend pseudo-header• Urgent Pointer: byte offset in current payload whereurgent data begins• Options: MTU; take min of sender & receiver (default556 B)CS 536 ParkChecksum calculation (pseudo header):Source AddressDestination Address4Protocol00 0. . .TCP Segment Length−→ pseudo header, TCP header and
View Full Document