Download presentation
Presentation is loading. Please wait.
Published byAlvin Casey Modified over 9 years ago
1
CSS 432 1 CSS432 Foundation Textbook Ch1 Professor: Munehiro Fukuda
2
CSS 432 2 Building Blocks Nodes: PC, special-purpose hardware… hosts switches Links: coax cable, optical fiber… point-to-point multiple access … length #nodes limitations
3
CSS 432 3 Clouds - Networks A set of nodes, each connected to one or more p2p link Switched network Circuit switch Packet switch A set of independent clouds (networks) interconnected to forma an internetwork Internet A network can be defined recursively as... Switch: forwarding message Router/gateway: forwarding message
4
CSS 432 4 Strategies Circuit switching: carry bit streams original telephone network Packet switching: store-and-forward messages Internet
5
CSS 432 5 Addressing and Routing Address: byte-string that identifies a node usually unique Routing: process of forwarding messages to the destination node based on its address Forwarding: local, static, and implemented by h/w Routing: dynamic, complex, and implemented by s/w Types of addresses unicast: node-specific broadcast: all nodes on the network multicast: some subset of nodes on the network
6
CSS 432 6 Multiplexing Synchronous Time-Division Multiplexing (STDM) Frequency-Division Multiplexing (FDM) L1 L2 L3 R1 R2 R3 Switch 1Switch 2 Two limitations: If a host has no data to send, the corresponding time slot or frequency becomes idle. The maximum number of flows, (#time slots and #different frequencies) are fixed.
7
CSS 432 7 Statistical Multiplexing On-demand time-division Schedule link on a per-packet basis Packets from different sources interleaved on link Buffer packets that are contending for the link Buffer (queue) overflow is called congestion …
8
CSS 432 8 Inter-Process Communication Turn host-to-host connectivity into process-to- process communication. Fill gap between what applications expect and what the underlying technology provides. Host Application Host Application Host Channel
9
CSS 432 9 IPC Abstractions Request/Reply Examples FTP Web (HTTP) NFS Requirements At most one message delivery FIFO order Security Stream-Based Examples On-demand video Video conferencing Requirements One/two-way traffic Bulk data transfer: 60Mbps Some data may be dropped off. FIFO order Security
10
CSS 432 10 What Goes Wrong in the Network? Bit-level errors (electrical interference) Packet-level errors (congestion) Link and node failures Messages are delayed Messages are deliver out-of-order Third parties eavesdrop
11
CSS 432 11 Layering Use abstractions to hide complexity Abstraction naturally lead to layering Alternative abstractions at each layer Request/reply channel Message stream channel Application programs Hardware Host-to-host connectivity
12
CSS 432 12 Process-to-process channels Layering Use abstractions to hide complexity Abstraction naturally lead to layering Alternative abstractions at each layer Application programs Hardware Host-to-host connectivity Request/reply channel Message stream channel
13
CSS 432 13 Protocols and Interfaces Protocol: Building each layer of a network architecture Each layer’s protocol has two different interfaces service interface: operations on this protocol peer-to-peer interface: messages exchanged with peer Host 1 Protocol Host 2 Protocol High-level object High-level object Service interface Peer-to-peer interface
14
CSS 432 14 Protocol Machinery Protocol Graph most peer-to-peer communication is indirect peer-to-peer is direct only at hardware level Applications employ the protocol stack RRP/HHP File application Digital library application Video application RRPMSP HHP Host 1 File application Digital library application Video application RRPMSP HHP Host 2 RRP: Request/Reply ProtocolMSP: Message Stream Protocol HPP: Host-to-Host Protocol
15
CSS 432 15 Machinery (cont) Encapsulation (header + body or payload) Multiplexing and Demultiplexing (a demux key in each header) RRPDataHHP Application program Application program Host 1Host 2 Data RRP Data HHP Data RRP Data HHP
16
CSS 432 16 OSI Architecture Application Presentation Session Transport End host One or more nodes within the network Network Data link Physical Network Data link Physical Network Data link Physical Application Presentation Session Transport End host Network Data link Physical
17
CSS 432 17 Internet Architecture Defined by Internet Engineering Task Force (IETF) Hourglass Design Application vs Application Protocol (FTP, HTTP) … FTPHTTPNV TFTP TCP UDP IP NET 1 2 n Ethernet, FDDI, etc. Internet Protocol Reliable byte-stream channel Unreliable datagram delivery Focal point for the architecture Netscape, IE, Mosaic, etc.
18
CSS 432 18 Socket API Creating a socket int socket(int domain, int type, int protocol) domain = PF_INET, PF_UNIX type = SOCK_STREAM, SOCK_DGRAM Passive Open (on server) int bind(int socket, struct sockaddr *addr, int addr_len) int listen(int socket, int backlog) int accept(int socket, struct sockaddr *addr, int addr_len)
19
CSS 432 19 Sockets (cont) Active Open (on client) int connect(int socket, struct sockaddr *addr, int addr_len) Sending/Receiving Messages int send(int socket, char *msg, int mlen, int flags) int recv(int socket, char *buf, int blen, int flags) Or int write( int socket, char *msg, int mlen ) int read( int socket, char *buf, int blen );
20
CSS 432 20 Sockets (Code Example) int sd, newSd; sd = socket(AF_INET, SOCK_STREAM, 0); sockaddr_in server; bzero( (char *)&server, sizeof( server ) ); server.sin_family =AF_INET; server.sin_addr.s_addr = htonl( INADDR_ANY ) server.sin_port = htons( 12345 ); bind( sd, (sockaddr *)&server, sizeof( server ) ); struct hostent *host = gethostbyname( arg[0] ); sockaddr_in server; bzero( (char *)&server, sizeof( server ) ); server.sin_family = AF_INET; server.s_addr = inet_addr( inet_ntoa( *(struct in_addr*)*host->h_addr_list ) ); server.sin_port = htons( 12345 ); connect( sd, (sockaddr *)&server, sizeof( server ) ); sockaddr_in client; socklen_t len=sizeof(client); while( true ) { newSd = accept(sd, (sockaddr *)&client, &len); write( sd, buf1, sizeof( buf ) ); write( sd, buf2, sizeof( buf ) ); if ( fork( ) == 0 ) { close( sd ); read( newSd, buf1, sizeof( buf1 ) ); read( newSd, buf2, sizeof( buf2 ) ); } close( newSd ); } read() socket() connect() write() socket() connect() write() listen( sd, 5 ); socket() bind() listen() accept() buf2, buf1 close( newsd); exit( 0 ); int sd = socket(AF_INET, SOCK_STREAM, 0);
21
CSS 432 21 Protocol Implementation Issues Process Model Process per protocol Process per message avoid context switches Buffer Model Copy from Application buffer to network buffer Zero copy / pin-down communication avoid data copies
22
CSS 432 22 (a)(b) Process Model Process-per-Protocol Simple message passing mechanisms between processes A context switch required at each layer Process-per-Message For sending, functions are called down from top to bottom. For receiving, functions are called up from bottom to top. Applications Presentation Transport Session Process 1 Process 2 Process 3 Static piece of code Network
23
CSS 432 23 Buffer Model Avoid data copies Avoid OS interventions message copied message copied message passed message passed message bypassed Conventional buffer transfer Zero copy communication Pin downed communication
24
CSS 432 24 Performance Metrics Bandwidth (throughput) data transmitted per time unit link versus end-to-end notation Mbps = 10 6 bits per second Gbps = 10 9 bits per second Latency (delay) time to send message from point A to point B one-way versus round-trip time (RTT) components Latency = Propagation + Transmit + Queue Propagation = Distance / SpeedOfLight Transmit = Size / Bandwidth Even in the same distance, latency varies depending on the size of message.
25
CSS 432 25 Ideal versus Actual Bandwidth RTT dominates Throughput = TransferSize / TransferTime TransferTime = RTT + 1/Bandwidth x TransferSize RTT: a request message sent out and data received back Example: 1-MB file across a 1-Gbps network with RTT=100ms. 1MB / 1Gbps = 8Mb / 1000Mbps = 8msec TransferTime = 100 + 8 = 108msec Throughput = 1MB / 108msec = 74.1 Mbps
26
CSS 432 26 Delay x Bandwidth Product Amount of data “in flight” or “in the pipe” Example: 100ms x 45Mbps = 560KB Receiver must prepare a buffer whose size is at least 2 x Delay x Bandwidth
27
CSS 432 27 Reviews Components: hosts, links, switches, routers and networks Switching (circuit and packet) and multiplexing (STDM, FDM, and statistical) OSI and Internet architectures Socket Performance metrics: Bandwidth and latency Exercises in Chapter 1 Ex. 5 (RTT) Ex. 12 and 31 (STDM and FDM) Ex. 18 (Latency) Ex. 32 (Packet Sequence)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.