Networks - Application Layer Flashcards
What are the possible structures for network applications?
Client Server
Peer-to-peer (P2P)
Client Server Architecture
Server
◼ always-on host
◼ permanent IP address
◼ data centers for scaling
Clients
◼ communicate with server
◼ may be intermittently connected
◼ may have dynamic IP addresses
◼ do not communicate directly with each other
P2P Architecture
◆ No always-on server
◆ Arbitrary end systems directly communicate
◆ Peers request service from other peers, provide service in return to other peers
◼ Self-Scalability – new peers bring new service
capacity, as well as new service demands
◆ Peers are intermittently connected and change IP addresses
◆ Complex management
Communicating Processes
Process - A program running within a host
Client Process - A process that initiates communication
Server Process - A process that waits to be contacted
Applications with P2P architectures have both client
processes & server processes
What is a socket?
A process sends/receives messages to/from its socket
To receive messages, each process must have an identifier - this includes an IP address and port number
What transport services does an application need?
◆ Date integrity
◆ Timing
◆Throughput
◆Security
What are the features of TCP?
Reliable transport between sending and receiving data
Flow control - sender won’t overwhelm receiver
Congestion control - throttle sender when network overloaded
Does not provide: timing, minimum throughput, guarantee, security
Connection-oriented - setup required between client and server processes
What are the features of UDP?
Unreliable data transfer between sending and receiving
process
Does not provide: reliability, flow control, congestion
control, timing, throughput guarantee, security, or
connection setup
Issues with non-persistent HTTP
Requires 2 RTTs per object
OS overhead for each TCP connection
Browsers often open parallel TCP connections to fetch referenced objects