Distributed Computing Systems Project 2 – Distributed Shell Due: Friday, April 4 th.

Slides:



Advertisements
Similar presentations
Categories of I/O Devices
Advertisements

Module 5: TLS and SSL 1. Overview Transport Layer Security Overview Secure Socket Layer Overview SSL Termination SSL in the Hosted Environment Load Balanced.
Chapter One The Essence of UNIX.
Bolo – A Simple Audioconference CS525u Multimedia Computing Due date: Project 2.
Real-Time Authentication Using Digital Signature Schema Marissa Hollingsworth BOISECRYPT ‘09.
1 Processes Professor Jennifer Rexford
1 Processes and Pipes COS 217 Professor Jennifer Rexford.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
1 Java Networking – Part I CS , Spring 2008/9.
1 Processes and Pipes. 2 "He was below me. I saw his markings, manoeuvred myself behind him and shot him down. If I had known it was Saint-Exupery, I.
CS-502 Fall 2006Project 1, Fork1 Programming Project 1 – Fork.
Programming project #4 1 CS502 Spring 2006 Programming Project #4 Web Server CS-502 Operating Systems Spring 2006.
SSH : The Secure Shell By Rachana Maheswari CS265 Spring 2003.
Programming Project #3CS-4513, D-Term Programming Project #3 Simple Web Server CS-4513 D-Term 2007 (Slides include materials from Operating System.
File Transfer: FTP and TFTP
Client Server Model The client machine (or the client process) makes the request for some resource or service, and the server machine (the server process)
Online Chess Project 3 Due date: April 17 th. Introduction Third in series of three projects This project focuses on adding online support –2 players.
Guide To UNIX Using Linux Third Edition
CS-3103 & CS-502, Summer 2006 Programming Project #31 Programming Project #3 Web Server CS-3103 & CS-502 Operating Systems.
Programming project #1 1 CS502 Spring 2006 Programming Project #1 CS-502 Operating Systems Spring 2006.
Client Server Model and Software Design TCP/IP allows a programmer to establish communication between two application and to pass data back and forth.
File Transfer Protocol (FTP)
APACHE SERVER By Innovationframes.com »
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
SSH Secure Login Connections over the Internet
Chapter 31 File Transfer & Remote File Access (NFS)
FTP File Transfer Protocol. Introduction transfer file to/from remote host client/server model  client: side that initiates transfer (either to/from.
Speak A Simple VoIP Application Project 2 Due date: March 3 rd by 11:59pm.
Server Design Discuss Design issues for Servers Review Server Creation in Linux.
Agenda  Terminal Handling in Unix File Descriptors Opening/Assigning & Closing Sockets Types of Sockets – Internal(Local) vs. Network(Internet) Programming.
Distributed Computing Systems Project 1 – Dumpster Diving Due: Tuesday, March 25 th.
Ferry Astika Saputra FTP & TFTP Server. Overview File Transfer Protocol (RFC 959) Why FTP? FTP’s connections FTP in action FTP commands/responses Trivial.
FTP (File Transfer Protocol) & Telnet
Rensselaer Polytechnic Institute Shivkumar Kalvanaraman, Biplab Sikdar 1 The Web: the http protocol http: hypertext transfer protocol Web’s application.
Simple Shell Part 1 Due date (75%): April, 2002 Part 2 Due date (25%): Apr 5, 2002.
An program As a simple example of socket programming we can implement a program that sends to a remote site As a simple example of socket.
Server Sockets: A server socket listens on a given port Many different clients may be connecting to that port Ideally, you would like a separate file descriptor.
Project 1, Command Shell CS-502 (EMC) Fall Programming Project #1 Command Shell CS-502, Operating Systems EMC, Fall 2009 (Slides include materials.
Copyright © Curt Hill, Client – Server Computing An important paradigm.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 6 System Calls OS System.
1 Welcome to CSC 301 Web Programming Charles Frank.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
CS162B: Pipes Jacob T. Chan. Pipes  These allow output of one process to be the input of another process  One of the oldest and most basic forms of.
Distributed Computing Systems Project 3 – Nutella: A P2P Streaming Movie System Due: Tuesday, April 15 th.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 8 Omar Meqdadi Department of Computer Science and Software Engineering University of.
Computer Networking From LANs to WANs: Hardware, Software, and Security Chapter 13 FTP and Telnet.
Hands On UNIX II Dorcas Muthoni. Processes A running instance of a program is called a "process" Identified by a numeric process id (pid)‏  unique while.
CS390- Unix Programming Environment CS 390 Unix Programming Environment Java Socket Programming.
NTU CSIE Computer Networks 2009 Spring Project 2 Internet Relay Chat (IRC)
FTP File Transfer Protocol Graeme Strachan. Agenda  An Overview  A Demonstration  An Activity.
1 Daemons & inetd Refs: Chapter Daemons A daemon is a process that: –runs in the background –not associated with any terminal Unix systems typically.
Hepix LAL April 2001 An alternative to ftp : bbftp Gilles Farrache In2p3 Computing Center
Client/Server Socket Programming Project
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
1 Tips for the assignment. 2 Socket: a door between application process and end- end-transport protocol (UDP or TCP) TCP service: reliable transfer of.
1 CSE 451 Section 2: Processes, the shell, and system calls.
INTERNET APPLICATIONS CPIT405 Install a web server and analyze packets.
R Some of these slides are from Prof Frank Lin SJSU. r Minor modifications are made. 1.
1 K. Salah Application Layer Module K. Salah Network layer duties.
1 Example security systems n Kerberos n Secure shell.
Distributed Computing Systems
Programming Assignment #1
FTP & TFTP Server Ferry Astika Saputra.
DUCKS – Distributed User-mode Chirp-Knowledgeable Server
CS-3013 & CS-502 Operating Systems Summer 2006
CGS 3763 Operating Systems Concepts Spring 2013
Programming Project #1 Command Shell
Programming Project #1 Fork and Command Shell
Presentation transcript:

Distributed Computing Systems Project 2 – Distributed Shell Due: Friday, April 4 th

Motivation Shell is core operating systems concept Executing commands on remote machine is core distributed systems concept – Computing in the “cloud” (except you know the server) with results returned to user  Distributed Shell

Distributed Shell Client-Server Non-interactive – Command line args – get-opt.c – Authentication built-in Uses TCP sockets – listen.c and talk.c Security – Authentication (next slide) Can handle multiple requests – fork() – Concurrent server – Note, can do fork() upon connection, too ServerClient 1. connect Server 3. ls 4. fork() and exec() 5. data 2. authenticate

Simple Authentication Client connects to server, sending in user-name (not password) – Note, typically name used to lookup unique data (salt) stored with each name that further randomizes hash salt – here, just a check Server responds by sending out unique random number – Use random() – Changes each invocation (provide different random seed each run) Client encrypts using their password and number as key – Password here can be “hard coded” into client – Use crypt() Client sends hashed value to server Server encrypts with user's password and same number as key – Server “knows” password (e.g., externally exchanged) – Password here can be “hard coded” into server Server compares two hashed/encrypted values, if same then ok – Otherwise, return error message and exit Note, can do authentication either before or after fork() – Pluses and minuses for each?

Sample Client cccwork2%./dsh -c "ls" -s cccwork1 Makefile client.c dsh dsh.c index.html server server.c server.h sock.c sock.h Server cccwork1%./server./server activating. port: 6013 dir: /home/claypool/dsh Socket created! Accepting connections. Connection request received. forked child received: john password ok command: ls executing command...

Hints Build shell independent of server Get basic connection working without shell – Socket help: listen-tcp.c and talk-tcp.c – Socket slides (next) Shell help – fork.c – execl.c – fork(), execve(), getopt(), strtok(), dup2() Use a Makefile – Web page’s is simple Use man pages for functionality, return codes Beware of zombies

Experiments Latency of connection (milliseconds) – Includes authentication – Force call to server so that server does not do exec() Maximum throughput (b/s) – Transfer large file redirect > to file else stdout may be bottleneck Multiple runs Transfer Size (MB) Time (s) (y-intercept is connection time) (slope is per- byte time) - measured data

Writeup Design - describe your experiments – Programs/scripts (pseudo-code) – Number of runs – Data recording method – System conditions – Other … Results - depict your results clearly – Graph (see previous slide) – Table (at least mean and standard deviation) Analysis - interpret results – Describe what results mean

Hand In Source code package – server.c, client.c – Support files ( *.h ) – Makefile – README detailing building and using Experimental writeup tar and gzip Turnin via: /cs/bin/turnin

Grading Basic shell program (15 points) Basic Client-Server communication program (15 points) Proper re-direction of standard output (10 points) Proper error checking of system/socket calls (10 points) Proper authentication(10 points) Proper closing of sockets in relation to fork (5 points) Proper handling of zombies (5 points) Experiment Design (10 points) Experiment Results (10 points) Experiment Analysis (10 points) See rubric on Web page, toorubric