Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSS 432 1 CSS432 Foundation Textbook Ch1 Professor: Munehiro Fukuda.

Similar presentations


Presentation on theme: "CSS 432 1 CSS432 Foundation Textbook Ch1 Professor: Munehiro Fukuda."— Presentation transcript:

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)


Download ppt "CSS 432 1 CSS432 Foundation Textbook Ch1 Professor: Munehiro Fukuda."

Similar presentations


Ads by Google