170 likes | 285 Views
The Application Layer. Networks : 13:00 to 16:00 W1.01 Arron Martin Zeus Brown. OSI or TCP/IP. OSI (Open Systems Interconnection) model. TCP/IP Model. Application Layer. Top of stack works for user programs provides services e.g. NFS, remote command execution, user authentication
E N D
The Application Layer Networks : 13:00 to 16:00 W1.01 Arron Martin Zeus Brown
Application Layer • Top of stack • works for user programs • provides services • e.g. NFS, remote command execution, user authentication • architecture neutral • additonal - defines protocols for full-screen text editor! (why?)
Application Layer • Does not • run programs • require programs to know protocols • Does • embody interface between user programs and presentation layer • Allow client-server interaction to occur
Clients & Servers • Client • works on behalf of the user • Server • provides access to resources • controls access to resources • manages requests • maintains resource integrity
Server Examples • SMTP • POP • IMAP • MAPI • Windows • Linux • etc. etc. etc. • X11 • NFS • SMB • LPD • WWW • FTP • TELNET
Client Server Client-Server example Request R Grant - ID Perform on ID Result Release ID ACK
Note • Client should block until its request has been fulfilled • Server decides order of allocation • (cf O/S resource management rules - DEADLOCK handling)
Requirements - 1 • Application Protocol • Common Language • supporting all possible operations • e.g. • “Open file” • “Write to file” • “Read from file” • “Close file” • two-way if necessary (acknowledgements, errors etc.)
Requirements - 2 • Lower-level protocols • support adequate communications • reliability • delivery modes • Network/Comms infrastructure
Lower Level Models • IP suite • TCP vs UDP • Sockets & Ports • RPC, RMI • DCOM • RPC • ORBs (CORBA etc.) More on these later…...
Server Types • State driven • require exact sequence of events • break if sequence breaks • complete conversations only • Stateless • handle partial conversations • cope with broken / incomplete event sequences
State Driven servers • Based on Finite State Machines (FSMs) or Finite State Automata • Each event causes the machine to move to a new state from which events will cause more transitions. • In any state, an unknown or unexpected event will be a problem. • If an event does not occur - what happens to the machine ?
Stateless servers • Not state driven • Event driven • (cf WIMP system) • Any event can happen at any time • Server will process correctly • (cf WWW server) • More complex - more robust
Tutorial Topic • HTTP • (N.B. HTTPS is HTTP working through an encrypting presentation layer for added “security” [some argue that HTTP works at the application & session layers too] )