Presentation is loading. Please wait.

Presentation is loading. Please wait.

Networks & Communication (continued)

Similar presentations


Presentation on theme: "Networks & Communication (continued)"— Presentation transcript:

1 Networks & Communication (continued)
CS-502 Operating Systems (Slides include materials from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne, Modern Operating Systems, 2nd ed., by Tanenbaum, and Distributed Systems: Principles & Paradigms, 2nd ed. By Tanenbaum and Van Steen) Assumptions: Graduate level Operating Systems Making Choices about operation systems Why a micro-century? …just about enough time for one concept CS-502 Fall 2007 Networks & Communication

2 Principal Abstraction – Socket
Originally created in BSD Unix Now, part of most operating systems Allows opening a connection between two processes across network Connection: a serial conversation between two end points e.g., processes, threads, tasks on different machines organized as a sequence of messages or datagrams distinct from all other connections One of the four principal abstractions provided by most modern operating systems CS-502 Fall 2007 Networks & Communication

3 Networks & Communication
Definition — Protocol Formal set of rules that govern the formats, contents, and meanings of messages from computer to computer, process to process, etc. Must be agreed to by all parties to a communication May be defined in terms of other protocols CS-502 Fall 2007 Networks & Communication

4 The OSI 7-layer model (in a nutshell)
Physical Layer Data Link Network Transport Session Presentation Application Silbershatz, §§ CS-502 Fall 2007 Networks & Communication

5 Annotated OSI 7-Layer Stack
Silbershatz, page 630 CS-502 Fall 2007 Networks & Communication

6 Summary — OSI 7-layer model
Physical Layer Data Link Network Transport Session Presentation Application Sending Process Receiving Bits DH Data DT NH TH SH PH AH CS-502 Fall 2007 Networks & Communication

7 Networks & Communication
Circular Definition Socket: End point of a connection Usually used in pairs, one for each direction Comprises [IP Address: Port #] Connection: A logical linkage between pairs of sockets at two endpoints for purposes of a particular communication between those endpoints i.e., a serial conversation between endpoints Usually two-way CS-502 Fall 2007 Networks & Communication

8 Networks & Communication
Connection The backbone of most message-oriented communication protocols Each party retains knowledge of the other Each party retains information about state of the other (vis a vis the protocol itself) Each party “knows” if connection is broken Note: some popular protocols are “connection-less” one side retains no state information about other side CS-502 Fall 2007 Networks & Communication

9 Establishing a Connection
Process a on machine m creates a socket OS assigns a new port number q to that socket Process a attempts to open a connection to machine n:p p is a well-known port Process b on machine n is listening on p Receives request from m:q Process b forks a process or spawns a thread c to talk with m:q, then resumes listening on p Thread/process c Creates a new socket r for this connection Replies to m:q with return address n:r a and c continue to communicate over this pair of sockets until they are finished. CS-502 Fall 2007 Networks & Communication

10 Typical Client-Server Connection
Create socket On server side Bind I.e., connect socket to port # (usually well-known port) Listen Sit and wait for a communication to come in Accept Create new socket for purpose of responding to this caller CS-502 Fall 2007 Networks & Communication

11 Networks & Communication
Notes Responder to request for connection does not have to be the original server machine Delegate workload to other server systems Systems often include a connection ID as part of request to open connection Unique or randomly chosen Reduces spoofing of server responses Unix/Linux will not re-use a socket # within 30 seconds To avoid confusion between old connection and new CS-502 Fall 2007 Networks & Communication

12 Networks & Communication
Reliable Connections Transport layer partitions messages into packets TCP – Transmission Control Protocol Sequence number of current packet Sequence number of last packet received correctly Receiver keeps track of sequence # of packets Reassembles in right order Notify sender of missing, broken packets Sender keeps copy of each packet until receipt acknowledged Retransmits packets if no acknowledgement Window defines how many packet buffers to maintain for efficient transmission Allows many packets in “flight” CS-502 Fall 2007 Networks & Communication

13 Reliable Connections (continued)
Packet i Packet i+1 Packet i+2 Packet i+3 rec’d i Packet i+k time CS-502 Fall 2007 Networks & Communication

14 Reliable Connections (continued)
Packet i Packet i+1 Packet i+2 Packet i+3 rec’d i rec’d i Packet i+k time CS-502 Fall 2007 Networks & Communication

15 Reliable Connections (continued)
Packet i Packet i+1 Packet i+2 Packet i+3 rec’d i rec’d i Packet i+k rec’d i+2 time CS-502 Fall 2007 Networks & Communication

16 Reliable Connections (continued)
Packet i Packet i+1 Packet i+2 Packet i+3 rec’d i lost rec’d i Packet i+k rec’d i+2 rec’d i+2 time CS-502 Fall 2007 Networks & Communication

17 Reliable Connections (continued)
If acknowledgement received for packet i Delete from buffer all packets  i If no acknowledgement received within a reasonable time for packet k Retransmit from buffer all packets  k Result Recovers from loss of packets Recovers from loss of acknowledgements Works well for reasonably reliable internet Doesn’t work so well for noisy, unreliable networks CS-502 Fall 2007 Networks & Communication

18 Networks & Communication
Reminder How do we know if a packet is received correctly? Cyclic Redundancy Check (CRC) Polynomial computed from packet header and body Usually 16 or 32 bits, computed by hardware Appended to message Recomputed on reception, compared with transmitted CRC Equal  packet received correctly CS-502 Fall 2007 Networks & Communication

19 Examples of Connection-based Protocols
Telnet (virtual terminal) 2-way communication by character stream Line-by-line organization SMTP (Simple Mail Transport Protocol) For sending mail Layered on top of telnet protocol POP (Post Office Protocol) For receiving your mail FTP (File Transfer Protocol) For transmitting ASCII or binary files Binary data transmission not layered on telnet protocol CS-502 Fall 2007 Networks & Communication

20 Connection-less communication
Some communication protocols don’t need the overhead of reliable connections When some number of errors can be tolerated Where recovery from those errors is easy UDP – User Datagram Protocol The internet connection-less protocol (layer 4) Breaks messages into packets Reassembles at destination Messages delivered completely or not at all Does not send acknowledgement of correct receipt CS-502 Fall 2007 Networks & Communication

21 Networks & Communication
Examples HTTP (HyperText Transport Protocol) Web server responds directly to requests If client does not get response, retries request NFS (Network File System) For access to files on servers as if they are local RPC (Remote Procedure Call) Next topic CS-502 Fall 2007 Networks & Communication

22 Networks & Communication
Summary Socket, connection Network stack, 7-layer model Establishing a connection Reliable transmission Reading assignment Silbershatz Chapter 16 CS-502 Fall 2007 Networks & Communication


Download ppt "Networks & Communication (continued)"

Similar presentations


Ads by Google