mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-27 14:54:05 -06:00
2.1 KiB
2.1 KiB
| title | aliases | tags | ||
|---|---|---|---|---|
| 17-app-layer |
|
Client-server vs peer to peer
- social network
- multi player games
- video streaming
- P2P file sharing
- voice over IP e.g., skype
- remote ogin
Principles
- run of different end systems
- communicate over network
- no need to run application specific software on netwrk-core devices
client-server
sercer
- provide services to clients
- always on
- often in data centers, for scaling
- needs to powerful
- multiple client requesting info at the same time
- have specialzed software
client
- request services by contacting and communicating with server
- may be intermittently connected
- do not communicate directly with each other
peer 2 peer
- no alwasy on server
- decentralize resource on a network
- end systems are both client and servers
- end systems communcatae directly
- take advantage of distrivuted shared resources (bandwidth, CPU storage)
- operate in dynamic environment with frequent join and leave
- e.g., bitTorrent, blockchain
communication
- process: network application running with a host
- client proces and server process
- processes in different hosts communicate by exhanging messages
- process must have identifiers
- ip address to differentiate processes in different hosts
- IPv4: 10.96.35.21 • IPv6: fe80::44b:184c:7ebb:6524
- port number to differentiate processes in same host
- HTTP server (80), mail server (25)
- ip address to differentiate processes in different hosts
functions of application protocols
protocols define:
- types of messages
- e.e.g, request, response
- message syntax
- what fields in messages and how field are delineated
- semantics
- meaning on information in fields
- communcation rules
- when and how proceses send and response to messages
WEB http
- client server model
- browser requests, recieves and displays web objects
- server sends objects in response to requests
- HTTP
- communcation betwen browsers and servers
- https
- extensioin of http that uses transport layer security for security
methods
- get, head, post, put (request to store a webpage), delete, link (connect two existing resources), unlink