Skip to main content

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

TCPUDP
transport reliabilityYN
flow controlYN
Conjestion controlYN
connection-orientedYN

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