Application Layer Flashcards
What are the two possible structures of applications?
Client-Server
Peer to Peer (P2P)
The behaviours of a server are:
Always-on host
Permanent IP address
data centres for scaling
The behaviours of clients are:
communicate with server
may be intermittently connected
may have dynamic IP addresses
do not communicate directly with each other
Specifics of a P2P architecture?
no always-on server
arbitrary end systems directly communicate
peers request servie from other peers
provide service in return to other peers
What is ‘self scalabilty’?
In P2P architecture, new peers bring new service capacity, as well as new service demands.
what is a process
program running within a host
Within the same host, how do two processes communicate?
Using inter-process communication, which is defined by the OS.
How do processes in different hosts communicate?
By exchanging messages
What is the client process?
Process that initiates communication
What is the server process?
Process that waits to be contacted
How does a process send/receive messages?
To/from its socket
Why does a process need an identifier?
To receive messages
To receive messages, a process must have an :
An identifier
Does IP address of host on which process runs suffice for identifying the process?
Many processes can be running on same host
Identifier includes both:
IP address
Port numbers associated with process on host
App-layer protocol defines:
types of messages exchanged message syntax message semantics rules open protocols proprietary protocols
What transport service does an app need?
data integrity
timing
throughput
security
What is data integrity?
Some apps require 100% reliable data transfer
Other apps can tolerate some loss (audio)
What is timing in relation to transport service?
Some apps require low delay to be effective (games)
What is throughput in relation to transport service?
Some apps require minimum amount of throughput to be effective.
Other apps make use of whatever throughput they get (elastic apps)
What is an elastic app?
An app that makes use of whatever throughput it can get
Transport protocol specs of TCP service:
Reliable transport flow control congestion control does not provide:timing, minimum throughput guarantee, security Connection - oriented
UDP service transport protocol specs:
unreliable data transfer
does not provide: reliabiity, flow control, congestion control, timing, throughput guarantee, security, of connection setup.
Why is there UDP?
Good to get a simple answer to another server quickly.
Delivering data that will quickly be replaced/updated. Like weather, gaming data.
what is the security of TCP & UDP?
No encryption
cleartext passwords sent into socket traverse internet in cleartext
What is the security of SSL?
provides encrypted TCP connection
data integrity
end-point authentication