66
Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004 CMPE 151: Network Administration Lecture 4

  • View
    220

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

CMPE 151: Network Administration

Lecture 4

Page 2: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Project 3: Basic Servers Telnet/Finger FTP Web NNTP SSH

Page 3: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

The Web and HTTP (Cont’d)

Page 4: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Uniform Resource Locator Way to identify objects (pages).

What is page called? Where is it located? How to access page?

URL has 3 parts: Protocol (or scheme). Machine’s name/address. Local name (file name).

Page 5: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

URL Ability to handle other protocols.

HTTP, FTP, news, gopher, mail, telnet.

Page 6: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

HyperText Markup Language

Allows users to produce Web pages including text, graphics, pointers, etc.

Application of the ISO SGML (Standard Generalized Markup Language) standard.

Markup language: describe how objects are to be formatted. Contains explicit commands for formatting. Example: <B> and </B>. Advantages: easy to parse.

Page 7: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Dynamic Pages

• A dynamic document is generated by the server at each new connection.– That’s why sometimes, when downloading from the

same URL, we obtain different pages.• Common Gateway Interface (CGI) standard

defines server-application interaction.• CGI programs can be as simple as adding the time or

date to the page.• Browser may supply parameters to CGI

program.– Browser extends URL with additional parameters

separated by ?

Page 8: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Forms

• Forms permit a web page to have blank areas in which the user must enter information.– Makes it possible to enter data directly.

• Name, address, credit card info…

– Allows information to be sent to the server directly.

Page 9: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Forms HTML 1.0: one-way exchange.

Enable users to get information from servers.

Users could not send information back.

Example: on-line order forms. HTML 2.0 allows forms.

INPUT, SUBMIT. <FORM> and </FORM>.

Page 10: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

CGI Common Gateway Interface. CGI scripts: programs that read input,

process it, and generate output. Example: after completing a form, user

clicks on SUBMIT; this causes browser to invoke associated CGI script (given by URL). CGI script can generate output in the form of a HTML page that is returned to browser, which interprets and displays it.

Commercial use of the Web.

Page 11: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

What is a Cookie?

Page 12: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

What is a Cookie?

• A server invokes a CGI program each time a request arrives for the associated URL.– The server does not maintain any history of

requests.• But a history is useful to allow CGI program to

participate in dialog (e.g., to avoid having a user answer questions repeatedly).

– Information saved between invocations is called state information.

– State information is kept at the client’s side!

Page 13: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

What is a Cookie (cont’d)

• State information is passed by browser in the form of a cookie.– The cookie is kept in the client’s computer.– When it contacts the Web server again, the

browser inserts the cookie in the request.

Page 14: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

A More Interactive Web HTML used to write static Web pages. With CGI, some “activation” possible. Java makes the Web more interactive.

Java program is executed directly on the client’s machine.

Allows to add animation, sound, etc. to Web pages efficiently

Remote execution model. Instead of buying software, installing it, etc., just

click on the appropriate applet from vendor’s Web page and get applet downloaded, executed, etc.

Page 15: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Proxy servers What are proxy servers?

Close to client. Close to server.

Page 16: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Client-side proxies

Clients ServersProxy

Page 17: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Server-side proxies

Clients ProxyProxy Servers

Page 18: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Caching What’s caching? What are its benefits? What are its problems?

Page 19: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

HTTP support for caching Servers can control caching.

Cachable/non-cacheable object. Cacheable at proxy. Cached object expiration time. Operations performed on cached

copy. Browsers can force request to go

to server. Specifies maximum age not to be > 0.

Page 20: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Internet caches Peers. Hierarchical caches.

Page 21: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Network News

Page 22: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

NNTP Network News Transfer Protocol. RFC 977 (1986) Distribution of news articles.

Inquire, retrieve, and post articles.

Page 23: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Alternative Mailing lists. Scalability issues. Maintenance issues.

Page 24: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

(Usenet) News Client/server model. News server maintains news

database. Client connects to server and

reads, posts, etc. articles.

Page 25: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

News Distribution News database distributed among

several news servers. How to distribute news among

servers? One alternative is flooding (UUCP)!

Page 26: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

NNTP NNTP is “pull” based.

Server connects to its “neighbor”. Asks whether there any new

newsgorups. Asks whether there are any new news

articles in the relevant newsgroups. Uses TCP.

Page 27: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

NNTP Logical Topology

UCSC

UCB

Stanford

UofArizona

Page 28: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Some NNTP Commands ARTICLE.

Displays header and body of specified article.

HEAD and BODY. GROUP.

Returns article numbers of first and last articles in the group.

IHAVE. Informs that client has articles specified.

Page 29: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

More NNTP Commands LIST.

Returns list of valid newsgroups. NEWGROUPS.

Returns list of new groups created. NEWNEWS.

Returns list of new articles posted. POST.

Page 30: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Secure Shell (SSH)

Page 31: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

What’s SSH? Secure alternative to remote

access services (e.g., rlogin, telnet, etc.).

Provides authentication and secure communication.

ssh client and ssh server.

Page 32: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

SSH in operation Client authentication:

Several methods: host-based, asymmetric keys, password-based.

Host-based authentication: e.g., if client machine is in /etc/hosts.equiv or /etc/shosts.equiv.

Asymmetric keys:set of allowed public/private key pairs; user selects one pair; informs server; server checks if key is allowed; replies with a “challenge”, i.e., a random number encrypted with client pulic key.

Password-based authentication (all communication encrypted)

Page 33: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

SSH operation (cont’d) After the authentication phase, the user can

login to the machine, execute commands remotely, etc.

SSH database keeps id information about all hosts it has ever communicated with.

For RSA authentication, user generates public-private key pair and stores it locally; the user should then copy the public key to specific directory in the user’s home directory in the remote machine. After this, login is automatic.

Page 34: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

More services… NFS and Samba.

Page 35: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Network File System (NFS)

Page 36: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

File Systems Provide set of primitives that

abstract users from details of storage access and management.

Page 37: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Distributed File Systems

Promote sharing across machine boundaries.

Transparent access to files. Make diskless machines viable. Increase disk space availability by

avoiding duplication. Balance load among multiple

servers.

Page 38: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Sun Network File System De facto standard:

Mid 80’s. Widely adopted in academia and industry.

Provides transparent access to remote files.

Uses Sun RPC and XDR. NFS protocol defined as set of procedures and

corresponding arguments. Synchronous RPC:

Client blocks until it gets results from server.

Page 39: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Stateless server Remote procedure calls are self-

contained. Servers don’t need to keep state about

previous requests. Flush all modified data to disk before

returning from RPC call. Robustness.

No state to recover. Clients retry.

Page 40: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Location Transparency Client’s file name space includes

remote files. Shared remote files are exported by

server. They need to be remote-mounted by

client.

Page 41: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

File system hierarchyClient/root

vmunix usr

staffstudents

Server 1/root

export

users

joe bob

Server 2/root

nfs

users

ann eve

Page 42: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Achieving Transparency Mount service.

Mount remote file systems in the client’s local file name space.

Mount service process runs on each node to provide RPC interface for mounting and unmounting file systems at client.

Runs at system boot time or user login time.

Page 43: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Automounter Dynamically mounts file systems. Runs as user-level process on clients

(daemon). Resolves references to unmounted

pathnames by mounting them on demand.

Maintains a table of mount points and the corresponding server(s); sends probes to server(s).

Primitive form of replication.

Page 44: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Transparency?

Early binding. Mount system call attaches remote

file system to local mount point. Client deals with host name once. But, mount needs to happen before

remote files become accessible.

Page 45: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Other Functions NFS file and directory operations:

read, write, create, delete, getattr, etc.

Access control: File and directory access permissions.

Path name translation: Lookup for each path component. Caching.

Page 46: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Implementation

UnixFS

NFSclient

VFS

Client

Unix Kernel

NFSserver

UnixFS

VFS

Server

Unix Kernel

Clientprocess

RPC

Page 47: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Observations NFS didn’t change the file system

API. Users access remote files with the

same operations used for local ones. If access is to remote file, NFS client

makes a remote procedure call to NSF server where file resides.

Page 48: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Remote Procedure Call (RPC)

Builds on message passing. Main idea: extend traditional (local)

procedure call to perform transfer of control and data across network.

Easy to use: analogous to local calls. But, procedure is executed by a different

process, probably on a different machine.

Fits very well with client-server model.

Page 49: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

RPC Mechanism

1. Invoke RPC.2. Calling process suspends.3. Parameters passed across network to

target machine.4. Procedure executed remotely.5. When done, results passed back to

caller.6. Caller resumes execution.Is this synchronous or asynchronous?

Page 50: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

RPC Advantages Easy to use. Well-known mechanism. Abstract data type

Client-server model. Server as collection of exported

procedures on some shared resource. Example: file server.

Reliable.

Page 51: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

RPC Semantics (1) Delivery guarantees. “Maybe call”:

Clients cannot tell for sure whether remote procedure was executed or not due to message loss, server crash, etc.

Usually not acceptable.

Page 52: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

RPC Semantics (2) “At-least-once” call:

Remote procedure executed at least once, but maybe more than once.

Retransmissions but no duplicate filtering.

Idempotent operations OK; e.g., reading data that is read-only.

Page 53: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

RPC Semantics (3) “At-most-once” call

Most appropriate for non-idempotent operations.

Remote procedure executed 0 or 1 time, ie, exactly once or not at all.

Use of retransmissions and duplicate filtering.

Example: Birrel et al. implementation. Use of probes to check if server crashed.

Page 54: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

RPC Implementation (1)

work

Caller Callee

Callpacket

Result

UserUserstub

RPCruntime

RPCruntime

Serverstub Server

call pckargs

xmit rcv unpk call

returnpckresult

xmitrcvunpkresult

return

Page 55: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

RPC Implementation (2) RPC runtime mechanism

responsible for retransmissions, acknowledgments.

Stubs responsible for data packaging and un-packaging; AKA marshalling and un-marshalling:

putting data in form suitable for transmission. Example: Sun’s XDR.

Page 56: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Binding How to determine where server is?

Which procedure to call? “Resource discovery” problem

Name service: advertises servers and services.

Example: Birrel et al. uses Grapevine. Early versus late binding.

Early: server address and procedure name hard-coded in client.

Late: go to name service.

Page 57: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Synchronous and Asynchronous RPC

SynchronousAsynchronousClient Server Client Server

Page 58: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

RPC Performance Sources of overhead

data copying scheduling and context switch.

Light-Weight RPC Shows that most invocations took place on a

single machine. LW-RPC: improve RPC performance for local

case. Optimizes data copying and thread scheduling

for local case.

Page 59: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Transport protocol Originally used UDP.

Better performance in LANs. NFS and RPC do their own reliability

checks. Most current implementations use

TCP. WANs: congestion control.

TCP officially integrated in NFS v.3.

Page 60: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Virtual File System (1) VFS added to UNIX kernel.

Location-transparent file access. Distinguishes between local and remote access.

@ client: Processes file system system calls to determine

whether access is local (passes it to UNIX FS) or remote (passes it to NFS client).

@ server: NFS server receives request and passes it to

local FS through VFS.

Page 61: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

VFS (2)

If local, translates file handle to internal file id’s (in UNIX i-nodes).

V-node: If file local, reference to file’s i-node. If file remote, reference to file handle.

File handle: uniquely distinguishes file.

File system id I-node # I-node generation #

Page 62: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

NFS caching File contents and attributes. Client versus server caching.

Client Server

$ $

Page 63: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Server caching Read:

Same as UNIX FS. Caching of file pages and attributes. Cache replacement uses LRU.

Write: Write through (as opposed to delayed

writes of conventional UNIX FS). Why? [Delayed writes: modified pages

written to disk when buffer space needed, sync operation (every 30 sec), file close].

Page 64: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Client caching (1) Timestamp-based cache

invalidation. Read:

Cached entries have TS with last-modified time.

Blocks assumed to be valid for TTL. TTL specified at mount time. Typically 3 sec for files.

Page 65: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Client caching (2) Write:

Modified pages marked and flushed to server at file close or sync (every 30 sec).

Consistency? Not always guaranteed! E.g., client modifies file; delay for

modification to reach servers + 3-sec window for cache validation from clients sharing file.

Page 66: Spring 2004 CMPE 151: Network Administration Lecture 4

Spring 2004

Cache validation Validation check performed when:

First reference to file after TTL expires. File open or new block fetched from server.

Done for all files (even if not being shared).

Expensive! Potentially, every 3 sec get file attributes. If needed invalidate all blocks. Fetch fresh copy when file is next accessed.