Introduction
Summary
keywords architecture, socket, protocols, criteria in choosing protocols, TCP, UDP
TODO
HW What is the default port number of HTTPS?
Exercise*
Next time HTTP request messages.
Recap
Application layer
Paradigms of network apps
Client-Server paradigm
-
Server
- Always on host
- permanent IP address
- need to think about scaling, security.
- Could be hosting on standalone, or on data center
- Data center hosting is superior in scaling and security.
-
Clients
- maybe intermittently connected.
- could be dynamic IP address. (DHCP)
- DO NOT communicate direct with each other.
Protocols in Client-Server paradigm : HTTP, IMAP, FTP
Peer-to-Peer paradigm
Every device is server, and a client.
-
no always-on server.
-
peers request service from other peers, provide service in return.
-
Self scalability : new peers bring new service capacity, along with the demands.
-
complex.
We'll only focus on Client-server paradigms & HTTP.
Process Communicating
What is a Process?
program running within a host
Client process, server process inter-process communications : process (hosted in different devices) communicating by exchanging data.
Socket
Points where two things are connected.
How do you identify the socket?
IP + Port
By IP address (device) + Port (process inside the device) ex. http servers run on port 80, https servers run on port 443
Analogy. Envelope. Family members share a same home address (IP), and we have a name (port)
UDP socket, TCP socket.
Google didn't like any of the transport layer. So they made QUIC(Quick UDP Internet Connections)
A browser (also) runs on a prot number
Protocol defines..
- Types of messages (Res, Req)
- message syntax (How fields are delineated)
- message semantics (meaning of info)
- rules (when and how processes send & respond to messages)
Open Protocols
defined in RFCs, everyone can read and use allows for interoperability ex, HTTP, SMTP
There also are (not-open) proprietary protocols.
Transport service
What criteria should we care when choosing transport service for an application??
- data integrity (making sure the files are completely transferred)
- Okay if you can tolerate the data loss (Ex. audio format file)
- timing (low delay)
- Okay if the service is not live-streaming
- throughput (bandwidth of edge..)
- Okay if service is elastic.
![[../images/20230912135617.png]]
Properties of TCP & UDP
TCP | UDP | |
---|---|---|
transport reliability | Y | N |
flow control | Y | N |
Conjestion control | Y | N |
connection-oriented | Y | N |
TCP Do not provide: depends on the bandwidth. Cannot change throughput by itself. timing, minimum throughput guarantee, security
UDP Do not provide : reliability, flow control, congestion, control, timeing, throughput guarantee, security, connection setup..
throughput is not guarantee by any Protocols in this Internet. Security is not supported by TCP & UDP TCP cares about lost packets. UDP doesn't. TCP is connection-oriented. We should open and close a connection.
Q. Why use UDP?
UDP is much faster. Header is smaller. less overhead.
![[../images/20230912135815.png]]
Securing TCP
- TCP, UDP has no encryption
- cleartext. human-readable.
We use TLS (Transport Layer Security, Originally called SSL)
- There are TLS libraries you can use in application layer.
Web, HTTP
The idea is "Sending meaningful objects through internet"
- URL : includes information about the target device & what you want
HTTP
Hypertext transfer protocol
- application layer protocol
- browser is the interpreter(of the HTTP packets) + displayer(of the object).
HTTP uses TCP. HTTP is stateless. : state information is implemented by cookies. HTTP nowadays (HTTP 1.1) are Persistent. : 1 connection can be used for multiple objects sending. before closed. You choose how long, how many.
Non-persistent HTTP has high RTT (round trip time) #todo : problems of Non-persistent HTTP