1 Data Networking & Client-Server CommunicationDistributed Systems Data Networking & Client-Server Communication Paul Krzyzanowski Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.
2 Distributed systems Independent machines work cooperatively without shared memory They have to talk somehow Interconnect is the network
3 Modes of connection Circuit-switched Packet-switched dedicated pathguaranteed (fixed) bandwidth [almost] constant latency Packet-switched shared connection data is broken into chunks called packets each packet contains destination address available bandwidth channel capacity variable latency
4 What’s in the data? For effective communication For computers:same language, same conventions For computers: electrical encoding of data where is the start of the packet? which bits contain the length? is there a checksum? where is it? how is it computed? what is the format of an address? byte ordering
5 Protocols These instructions and conventions are known as protocols
6 Protocols Exist at different levelsunderstand format of address and how to compute checksum request web page humans vs. whales different wavelengths French vs. Hungarian versus
7 Layering To ease software development and maximize flexibility:Network protocols are generally organized in layers Replace one layer without replacing surrounding layers Higher-level software does not have to know how to format an Ethernet packet … or even know that Ethernet is being used
8 Layering OSI reference modelMost popular model of guiding (not specifying) protocol layers is OSI reference model Adopted and created by ISO 7 layers of protocols
9 OSI Reference Model: Layer 1Transmits and receives raw data to communication medium. Does not care about contents. voltage levels, speed, connectors Physical 1 Examples: RS-232, 10BaseT
10 OSI Reference Model: Layer 2Detects and corrects errors. Organizes data into packets before passing it down. Sequences packets (if necessary). Accepts acknowledgements from receiver. Data Link 2 Physical 1 Examples: Ethernet MAC, PPP
11 OSI Reference Model: Layer 3Relay and route information to destination. Manage journey of packets and figure out intermediate hops (if needed). Network 3 Data Link 2 Physical 1 Examples: IP, X.25
12 OSI Reference Model: Layer 4Provides a consistent interface for end-to-end (application-to-application) communication. Manages flow control. Network interface is similar to a mailbox. Transport 4 Network 3 Data Link 2 Physical 1 Examples: TCP, UDP
13 OSI Reference Model: Layer 5Services to coordinate dialogue and manage data exchange. Software implemented switch. Manage multiple logical connections. Keep track of who is talking: establish & end communications. Session 5 Transport 4 Network 3 Data Link 2 Physical 1 Examples: HTTP 1.1, SSL, NetBIOS
14 OSI Reference Model: Layer 6Data representation Concerned with the meaning of data bits Convert between machine representations Presentation 6 Session 5 Transport 4 Network 3 Data Link 2 Physical 1 Examples: XDR, ASN.1, MIME, MIDI
15 OSI Reference Model: Layer 7Collection of application-specific protocols Application 7 Presentation 6 Session 5 Transport 4 Network 3 Data Link 2 Examples: (SMTP, POP, IMAP) file transfer (FTP) directory services (LDAP) Physical 1
16 Some networking terminology
17 Local Area Network (LAN)Communications network small area (building, set of buildings) same, sometimes shared, transmission medium high data rate (often): 1 Mbps – 1 Gbps Low latency devices are peers any device can initiate a data transfer with any other device Most elements on a LAN are workstations endpoints on a LAN are called nodes
18 Connecting nodes to LANsnetwork computer ?
19 Connecting nodes to LANsnetwork computer Adapter expansion slot (PCI, PC Card, USB dongle) usually integrated onto main board Network adapters are referred to as Network Interface Cards (NICs) or adapters or Network Interface Component
20 Media Wires (or RF, IR) connecting together the devices that make up a LAN Twisted pair Most common: STP: shielded twisted pair UTP: unshielded twisted pair (e.g. Telephone cable, Ethernet 10BaseT) Coaxial cable Thin (similar to TV cable) Thick (e.g., 10Base5, ThickNet) Fiber Wireless
21 Hubs, routers, bridges Hub Switch Concentrator or repeater BridgeDevice that acts as a central point for LAN cables Take incoming data from one port & send to all other ports Switch Moves data from input to output port. Analyzes packet to determine destination port and makes a virtual connection between the ports. Concentrator or repeater Regenerates data passing through it Bridge Connects two LANs or two segments of a LAN Connection at data link layer (layer 2) Router Determines the next network point to which a packet should be forwarded Connects different types of local and wide area networks at network layer (layer 3)
22 Networking Topology Bus Network
23 Networking Topology Tree Network
24 Networking Topology Star Network
25 Networking Topology Ring Network
26 Networking Topology Mesh Network
27 Transmission networksBaseband All nodes share access to network media on an equal basis Data uses entire bandwidth of media Broadband Data takes segment of media by dividing media into channels (frequency bands)
28 Broadband: RF broadcasts
29 Broadband/Baseband: Cable TV+1.25 MHz video +5.75 MHz audio 6 MHz MHz: analog channels 2-78 MHz: digital channels Baseband within Broadband DOCSIS: Data Over Cable Service Interface Specification (approved by ITU in 1998; DOCSIS 2.0 in 2001) Downstream: MHz range, 6 MHz bandwidth - up to 38 Mbps - received by all modems Upstream: 5-42 MHz range Mbps (10 Mbps in DOCSIS 1.0, 1.1) - data delivered in timeslots (TDM) DOCSIS 3.0 features channel bonding for greater bandwidth
30 DOCSIS Modem tuner demodulator MAC cable modulator network interfaceCPU ethernet interface (to PC) Restrictions on upload/download rates set by transferring a configuration file to the modem via TFTP when it connects to the provider.
31 Baseband: Ethernet Standardized by IEEE as 802.3 standardSpeeds: 100 Mbps - 1 Gbps typical today Ethernet: 10 Mbps Fast Ethernet: 100 Mbps Gigabit Ethernet: 1 Gbps 10 Gbps, 100 Gbps Network access method is Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Node first listens to network to see if busy Send Sense if collision occurred Retransmit if collision
32 Ethernet media Bus topology (original design)originally thick coax (max 500m): 10Base5 then… thin coax (<200m): 10Base2 BNC connector Star topology (central hub or switch) 8 pit RJ-45 connector, UTP cable, 100 meters range 10BaseT for 10 Mbps 100BaseT for 100 Mbps 1000BaseT for 1 Gbps Cables CAT-5: unshielded twisted pair CAT-5e: designed for 1 Gbps CAT-6: 23 gauge conductor + separator for handling crosstalk better
33 Wireless Ethernet mediaWireless (star topology) (1-2 Mbps) 802.11b (11 Mbps Mbps realized) 802.11a (54 Mbps Mbps realized) 802.11g (54 Mbps - 32 Mbps realized) 802.11n (108 Mbps Mbps realized) ethernet Access Point
34 Connecting to the InternetDOCSIS modem via cable TV service DSL router Ethernet converted to ATM data stream Up to 20 Mbps up to ~ 2 km. POTS limited to Hz DSL operates > 3500 Hz Modem Data modulated over voice spectrum ( Hz) Serial interface to endpoint V.92: 48 kbps downstream, near 56 kbps up Use PPP or SLIP to bridge IP protocol
35 Connecting to the InternetDedicated T1 or T3 line T1 line: Mbps (24 PCM TDMA speech 64 kbps) T3 line: Mbps (672 channels) CSU/DSU at router presents serial interface Channel Service Unit / Data Service Unit Phone network LAN T1 line router CSU/DSU RS-232C, RS-449, V.xx serial line
36 Connecting to the InternetFiber to the Home, Fiber to the Curb Ethernet interface E.g., Verizon’s FiOS 30 Mbps to the home Long Reach Ethernet (LRE) Ethernet performance up to 5,000 feet Wireless: WiMax EDGE ( Kbps) GPRS (<32 Kbps)
37 Clients and Servers Send messages to applicationsnot just machines Client must get data to the desired process server process must get data back to client process To offer a service, a server must get a transport address for a particular service well-defined location
38 Machine address versus Transport address
39 Transport provider Layer of software that accepts a network message and sends it to a remote machine Two categories: connection-oriented protocols connectionless protocols
40 Connection-oriented Protocolsestablish connection [negotiate protocol] exchange data terminate connection
41 Connection-oriented Protocolsanalogous to phone call establish connection [negotiate protocol] exchange data terminate connection dial phone number [decide on a language] speak hang up virtual circuit service provides illusion of having a dedicated circuit messages guaranteed to arrive in-order application does not have to address each message vs. circuit-switched service
42 Connectionless Protocols- no call setup - send/receive data (each packet addressed) - no termination
43 Connectionless Protocolsanalogous to mailbox - no call setup - send/receive data (each packet addressed) - no termination drop letter in mailbox (each letter addressed) datagram service client is not positive whether message arrived at destination no state has to be maintained at client or server cheaper but less reliable than virtual circuit service
44 Ethernet Layers 1 & 2 of OSI modelPhysical (1) Cables: 10Base-T, 100Base-T, 1000Base-T, etc. Data Link (2) Ethernet bridging Data frame parsing Data frame transmission Error detection Unreliable, connectionless communication
45 Ethernet 48-byte ethernet address Variable-length packet1518-byte MTU 18-byte header, 1500 bytes data Jumbo packets for Gigabit ethernet 9000-byte MTU dest addr src addr frame type data (payload) CRC 6 bytes 6 bytes 2 bytes 4 18 bytes + data
46 IP – Internet Protocol Goal:Born in 1969 as a research network of 4 machines Funded by DoD’s ARPA Goal: build an efficient fault-tolerant network that could connect heterogeneous machines and link separately connected networks.
47 Internet Protocol Connectionless protocol designed to handle the interconnection of a large number of local and wide-area networks that comprise the internet IP can route from one physical network to another
48 IP Addressing Each machine on an IP network is assigned a unique 32-bit number for each network interface: IP address, not machine address A machine connected to several physical networks will have several IP addresses One for each network
49 IP Address space 32-bit addresses >4 billion addresses!Routers would need a table of 4 billion entries Design routing tables so one entry can match multiple addresses hierarchy: addresses physically close will share a common prefix
50 IP Addressing: networks & hostscs.rutgers.edu remus.rutgers.edu D 03 network # host # first 16 bits identify Rutgers external routers need only one entry route *.* to Rutgers
51 IP Addressing: networks & hostsnetwork #: identifies network machine belongs to host #: identifies host on the network use network number to route packet to correct network use host number to identify specific machine
52 IP Addressing Expectation:a few big networks and many small ones create different classes of networks use leading bits to identify network class leading bits bits for net # bits for host A 7 (128) 24 (16M) B 10 14 (16K) 16 (64K) C 110 21 (2M) 8 (256) To allow additional networks within an organization: use high bits of host number for a “network within a network” – subnet
53 IP Addressing IBM: – xxxxxxxx xxxxxxxx xxxxxxxxx network # 8 bits host # 24 bits Subnet within IBM (internal routers only) xxxxxx xxxxxxxxx network # 18 bits host # 14 bits
54 Running out of addressesHuge growth Wasteful allocation of networks Lots of unused addresses Every machine connected to the internet needed a worldwide-unique IP address Solutions: CIDR, NAT, IPv6
55 Classless Inter-Domain Routing (CIDR)Replace class A, B, C addresses: Explicitly specify # of bits for network number rather than 8 (A), 16 (B), 24 (C) bits Better match for organizational needs machine that needs 500 addresses: get a 23-bit network number (512 hosts) instead of a class B address (64K hosts)
56 Classless Inter-Domain RoutingHow does a router determine # bits? CIDR address specifies it: 32-bit-address/bits-for-network-prefix /16 /27 : 1/8 of a class C (32 hosts) /24 : class C /16 : class B managing CIDR addresses & prefixes can be a pain
57 IP Special Addresses All bits 0 All host bits 1 All bits 1Valid only as source address “all addresses for this machine” Not valid over network All host bits 1 Valid only as destination Broadcast to network All bits 1 Broadcast to all directly connected networks Leading bits 1110 Class D network : reserved for local traffic usually assigned to loopback device
58 IPv6 vs. IPv4 IPv4 IPv6: 4 byte (32 bit) addresses16-byte (128 bit) addresses 3.6 x 1038 possible addresses 8 x 1028 times more addresses than IPv4 4-bit priority field Flow label (24-bits)
59 Network Address Translation (NAT)External IP address External address Ext port Internal address Int port 25 3455 11231 80 12482 21908 Internal IP address x .1 .2 .3 .4 .5
60 Getting to the machine IP is a logical network on top of multiple physical networks OS support for IP: IP driver receive data send data IP driver receive packet send packet network driver from wire to wire
61 IP driver responsibilitiesGet operating parameters from device driver Maximum packet size (MTU) Functions to initialize HW headers Length of HW header Routing packets From one physical network to another Fragmenting packets Send operations from higher-layers Receiving data from device driver Dropping bad/expired data
62 Device driver responsibilitiesControls network interface card Comparable to character driver Processes interrupts from network interface Receive packets Send them to IP driver Get packets from IP driver Send them to hardware Ensure packet goes out without collision bottom half top half
63 Network device Network card examines packets on wireCompares destination addresses Before packet is sent, it must be enveloped for the physical network device header IP header IP data payload
64 Device addressing IP address ethernet addressAddress Resolution Protocol (ARP) Check local ARP cache Send broadcast message requesting ethernet address of machine with certain IP address Wait for response (with timeout)
65 Routing Router Switching element that connects two or more transmission lines (e.g. Ethernet) Routes packets from one network to another (OSI layer 2) Special-purpose hardware or a general-purpose computer with two or more network interfaces
66 Routing Packets take a series of hops to get to their destinationFigure out the path Generate/receive packet at machine check destination If destination = local address, deliver locally else Increment hop count (discard if hop # = TTL) Use destination address to search routing table Each entry has address and netmask. Match returns interface Transmit to destination interface Static routing
67 Dynamic Routing Class of protocols by which machines can adjust routing tables to benefit from load changes and failures Route cost: Hop count (# routers in the path) Time: Tic count – time in 1/18 second intervals
68 Dynamic Routing ExamplesRIP (Routing Information Protocol) Exchange routing tables with neighboring routers on internal networks Choose best route if multiple routes exist OSPF (Open Shortest Path First) Tests status of link to each neighbor. Sends status info on link availability to neighbors. Cost can be assigned on reliability & time BGP (Border Gateway Protocol) TCP connection between pair of machines Route selection based on distance vector Exchanges information about reachable networks Periodic keep-alive messages
69 Transport-layer protocols over IPIP sends packets to machine No mechanism for identifying sending or receiving application Transport layer uses a port number to identify the application TCP – Transmission Control Protocol UDP – User Datagram Protocol
70 TCP – Transmission Control ProtocolVirtual circuit service (connection-oriented) Send acknowledgement for each received packet Checksum to validate data Data may be transmitted simultaneously in both directions
71 UDP – User Datagram ProtocolDatagram service (connectionless) Data may be lost Data may arrive out of sequence Checksum for data but no retransmission Bad packets dropped
72 IP header device header 20 bytes IP header TCP/UDP header IP datapayload vers hlen svc type (TOS) total length fragment identification flags fragment offset TTL protocol header checksum 20 bytes source IP address destination IP address options and pad
73 Headers: TCP & UDP device header UDP header TCP header 20 bytesIP header TCP/UDP header IP data payload TCP header UDP header src port dest port seq number ack number hdr len flags checksum urgent ptr options and pad - window src port dest port seg length checksum 20 bytes 8 bytes
74 Device header (Ethernet II)IP header TCP/UDP header IP data payload dest addr src addr frame type data CRC 6 bytes 6 bytes 2 bytes 4 18 bytes + data
75 Quality of Service Problems in IPToo much traffic Congestion Inefficient packet transmission 59 bytes to send 1 byte in TCP/IP! 20 bytes TCP + 20 bytes IP + 18 bytes ethernet Unreliable delivery Software to the rescue – TCP/IP Unpredictable packet delivery
76 IP Flow Detection Flow detection in routers: Traffic ShapingFlow: set of packets from one address:port to another address:port with same protocol Network controls flow rate by dropping or delaying packets With flow detection: drop TCP packets over UDP Discard UDP flow to ensure QoS for other flows Traffic Shaping Identify traffic flows Queue packets during surges and release later High-bandwidth link to low-bandwidth link Traffic Policing Discard traffic that exceeds allotted bandwidth
77 Dealing with congestionFIFO queuing Priority queues Flow-based weighted fair queuing Group all packets from a flow together Class-based weighted fair queuing Based on protocols, access control lists, interfaces, etc. Custom queues
78 Inefficient Packets Lots of tiny packets Header/packet compressionHead-of-line blocking Nagle’s algorithm: buffer new data if unacknowledged data outstanding Header/packet compression Link-to-link Header compression (RFC 3843) Payload compression (RFC 2393) $ delivery vs. $ compression
79 Differentiated Services (soft QoS)Some traffic is treated better than others Statistical - no guarantees TOS bits & Diff-Serv Use on Internet is limited due to peering agreement complexities
80 TOS bits Advisory tag in IP header for use by routersTOS: Type Of Service, 4 bits Minimum Delay [0x10] FTP, telnet, ssh Maximum Throughput [0x08] ftp-data, www Maximum reliability [0x04] SNMP, DNS Minimum cost [0x02] NNTP, SMTP RFC 1349, July, 1992
81 Differentiated Services (Diff-Serv)Revision of interpretation of ToS bits ToS field in IP header Differentiated Sevices Control Point (DSCP) p p p d t r - - Reliability: normal/high Priority: 0-7 Throughput: normal/high Delay: normal/low RFC 2475, December 1998
82 Guaranteed QoS (hard QoS)Guarantee via end-to-end reservation
83 Reservation & Delivery ProtocolRSVP: ReSerVation Protocol Hosts request specific quality of service Routers reserve resources RFC 2205
84 Media Delivery ProtocolsReal-Time Control Protocol (RTCP) Provides feedback on QoS (jitter, loss, delay) RFC 3550 RTP: Real-Time Transport Protocol Not a routing protocol No service guarantees Provides: Payload identification sequence # time stamp RTP/RTCP do not provide QoS controls
85 ATM: Asynchronous Transfer ModeLate 1980’s Goal: Merge voice & data networking low but constant bandwidth high but bursty bandwidth
86 ATM Traditional voice networking ATM Circuit switchingToo costly Poor use of resource Does not lend to multicasting ATM Based on fixed-size packets over virtual circuits Fixed-size cells provide for predictive scheduling Large cells will not hold up smaller ones Rapid switching
87 ATM Current standard: Sender specifies traffic type upon connecting:53-byte cell: 48-byte data, 5-byte header Sender specifies traffic type upon connecting: CBR Constant bit-rate bandwidth Uncompressed video, voice VBR Variable bit-rate Avg, peak bandwidth Compressed video, voice ABR Available bit-rate -none- ftp, web access
88 ATM Small cells lots of interrupts>100,000/second ATM hardware supports an ATM Adaptation Layer (AAL) Converts cells to variable-sized (larger) packets: AAL 1: for CBR AAL 2: for VBR AAL 3/4: ABR data AAL 5: ABR data, simplified AAL 6: MPEG-2 video
89 Programming Interfaces
90 Sockets IP lets us send data between machinesTCP & UDP are transport layer protocols Contain port number to identify transport endpoint (application) One popular abstraction for transport layer connectivity: sockets Developed at Berkeley
91 Sockets Attempt at generalized IPC model Goals:communication between processes should not depend on whether they are on the same machine efficiency compatibility support different protocols and naming conventions
92 Socket Abstract object from which messages are sent and receivedLooks like a file descriptor Application can select particular style of communication Virtual circuit, datagram, message-based, in-order delivery Unrelated processes should be able to locate communication endpoints Sockets should be named Name meaningful in the communications domain
93 Programming with sockets
94 Step 1 Create a socket int s = socket(domain, type, protocol) AF_INETSOCK_STREAM SOCK_DGRAM useful if some families have more than one protocol to support a given service
95 Step 2 Name the socket (assign address, port)int error = bind(s, addr, addrlen) socket Address structure struct sockaddr* length of address structure
96 Step 3a (server) int error = listen(s, backlog) socketSet socket to be able to accept connections int error = listen(s, backlog) socket queue length for pending connections
97 Step 3b (server) Wait for a connection from clientint snew = accept(s, clntaddr, &clntalen) pointer to address structure length of address structure socket new socket for this session
98 Step 3 (client) Connect to serverint error = connect(s, svraddr, svraddrlen) socket Address structure struct sockaddr* length of address structure
99 Step 4 Exchange data Connection-orientedread/write recv/send (extra flags) Connectionless sendto, sendmsg recvfrom, recvmsg
100 Step 5 Close connection shutdown(s, how) how:0: can send but not receive 1: cannot send more data 2: cannot send or receive (=0+1)
101 Sockets in Java java.net package Two major classes:Socket: client-side ServerSocket: server-side
102 Step 1a (server) Create socket and name itServerSocket svc = new ServerSocket(port)
103 Step 1b (server) Wait for connection from clientServer req = svc.accept() new socket for client session
104 Step 1 (client) Create socket and name itSocket s = new Socket(address, port); obtained from: getLocalHost, getByName, or getAllByName Socket s = new Socket(“cs.rutgers.edu”, 2211);
105 Step 2 Exchange data obtain InputStream/OutputStream from Socket object BufferedReader in = new BufferedReader( new InputStreamReader( s.getInputStream())); PrintStream out = new PrintStream(s.getOutputStream());
106 Step 3 Terminate connection close streams, close socket in.close();out.close(); s.close();
107 Socket Internals
108 Protocol Control BlockClient only sends data to {machine, port} How does the server keep track of simultaneous sessions to the same {machine, port}? OS maintains a structure called the Protocol Control Block (PCB)
109 Server: svr=socket() Create entry in PCB table Client Server svrLocal addr Local port Foreign addr Foreign port L? Server Local addr Local port Foreign addr Foreign port L? svr
110 Server: bind(svr) Assign local port and address to socket bind(addr= , port=1234) Client Local addr Local port Foreign addr Foreign port L? Server Local addr Local port Foreign addr Foreign port L? 1234 svr
111 Server: listen(svr, 10) Set socket for listening Client Server svrLocal addr Local port Foreign addr Foreign port L? Server Local addr Local port Foreign addr Foreign port L? 1234 * svr
112 Server: snew=accept(svr)Block – wait for connection Client Local addr Local port Foreign addr Foreign port L? Server Local addr Local port Foreign addr Foreign port L? 1234 * svr
113 Client: s=socket() Create PCB entry Client s Server svr Local addrLocal port Foreign addr Foreign port L? s Server Local addr Local port Foreign addr Foreign port L? 1234 * svr
114 Client: s=bind(s) Assign local port and address to socket bind(addr= , port=7801) Client Local addr Local port Foreign addr Foreign port L? 7801 s Server Local addr Local port Foreign addr Foreign port L? 1234 * svr
115 Client: connect(s) Client s Server svr snewSend connect request to server [ :7801] to [ :1234] Client Local addr Local port Foreign addr Foreign port L? 7801 s Server Local addr Local port Foreign addr Foreign port L? 1234 * 7801 svr snew
116 Client: connect(s) Server responds with acknowledgement Client s[ :1234] to [ :7801] Client Local addr Local port Foreign addr Foreign port L? 7801 1234 s Server Local addr Local port Foreign addr Foreign port L? 1234 * 7801 svr snew
117 Communication Server svr snewEach message from client is tagged as either data or control (e.g. connect) If data – search through table where FA and FP match incoming message and listen=false If control – search through table where listen=true Server Local addr Local port Foreign addr Foreign port L? 1234 * 7801 svr snew
118 The end.