Chapter 2: Application layer Flashcards
How do you create a network application?
Write programs/software that will run on different/multiple end systems and communicate over networks.
Describe the server side in a client-server architecture
Always-on host. Permanent and fixed IP address
Describe the client side in a client-server architecture
Contact & communicate with servers. May be intermittently connected. May have dynamic IP addresses.
Do clients communicate directly with each other?
No!
Describe the Peer-to-Peer (P2P) architecture
No always-on server. End systems communicate directly. Peers are intermittently connected and change IP addresses. Have self-scalability.
Self-scalability
New peers bring new service capacity, as well as new service demands
Process
Program running within a host / end system
How do processes in different hosts communicate?
By exchanging messages
Describe client and server processes
Client processes initiate communication. Server processes wait to be contacted.
What is unique about the processes in P2P architectures?
They can be both client and server processes
What do we call the interface between the process and the computer network?
The socket / Application programming interface (API)
How does a socket work (use the door analogy)?
The sending process (NOT the socket) pushes the message out the door.
It relies on the transport infrastructure (like TCP/IP) on the other side of the door to deliver the message to the receiving process’s socket.
Two sockets are involved in the communication: one on the sending side and one on the receiving side. Both acting as endpoints.
Why do we need sockets?
They provide a standardized way for processes to send and receive data over a network.
How do we adress processes?
By using an identifier including both IP address and port numbers associated with the process on the host
What transport services are available to applications?
Reliable data transfer, timing, throughput and security
Transmission Control Protocol (TCP) service
Reliable data transfer service that is connection-oriented; has the client and server exchange transport-layer control information with each other before the application-level messages begin to flow. Provides flow and congestion control
Flow control
Sender won’t overwhelm receiver
Congestion control
Throttle sending process when network overloaded between sender and receiver
User Datagram Protocol service (UDP)
Unreliable data transfer service that circumvent’s TCP’s congestion control mechanisms and packet overheads
What does an application layer protocol define?
How an application’s processes, running on different end systems, communicate with each other
What are the 4 things that the application-layer protocol defines?
- Types of messages exchanged
- Message syntax
- Message semantics
- Rules for when and how processes send & respond to messages
Message syntax
What fields in messages and how fields are delineated
Message semantics
Meaning of information in fields
How do we secure TCP?
By implementing a Transport Layer Security (TLS) socket / API in the application layer that provides encrypted TCP connections