Dr. Alexios Louridas
Process to map a name to an IP address.
gethostbyname("www.gre.ac.uk");
Sends a query to the local DNS Resolver
This is the local DNS resolver
Recursive Look-up
Send queries for each part :
1. gre
2. ac
3. uk
Caches answers for a period of time called Time To Live
Always correct
ICANN (Internet Corporation for Assigned Names and Numbers)
Generic Top Level Domain (gTLD)
Country Code TLD (ccTLD)
...
More than 1000 gTLDs
Client Queries the local resolver
Local DNS Server
Checks Cache
Root DNS Server
Checks Cache
Authoritative DNS server (Organisations Servers)
SEND IP
Top Level Domain (TLD) DNS Server
Checks Cache
TLD, Root, Local DNS servers and Client might cache answer for some time
1989 CERN used web to share documents, experiments, photos...
1993 First GUI - Mosaic
1994-2000 the browser war
Real Life to Websites
1994 - Bookstore to Amazon
1995 - Flea market to eBay
1998 - Web Library Search to Google
Client send a request on a text based protocol called
HyperText Transfer Protocol (HTTP)
Secure HTTP (HTTPS)
Object (page) retrieval via Uniform Resource Locators (URLs)
User clicks on a link
Browser finds the URL
Browser asks DNS for the IP address
DNS Replies
Browser opens a connection to that IP address via a protocol called TCP
Server replies and send index.html together with other possible objects that are needed to display index.html
Send HTTP / HTTPS request message to return the index.html file
Browser displays image and TCP connections are released
Mail Reader
Composing, editing and reading e-mails
Outlook, google mail...
Mailbox containing all incoming messages of users
Message queue of outgoing messages of users
SMTP - Simple Mail Transfer Protocol
Used by client to send emails
Used by Server to receive emails
Uses TCP to send emails
ASCII text
3 Phase Transfer:
Hello - transfer - Goodbye
Mail Access Protocols:
Dr. Alexios Louridas
Guarantee Message Delivery
Deliver order of messages
Support arbitrarily message sizes
Support multiple application processes
Synchronisation between hosts
Message dropping
Message reordering
Duplicate messages
Message sizes
Delays
Biderectional data flow and maximum segment size (MSS)
Handshaking required. Establish connection before data can be send.
Flow control and reliable.
Flow control in TCP is achieved through a technique called "sliding window."
The sender maintains a buffer of data that it wants to transmit. As the data is transmitted, the sender adjusts the size of the window based on the number of bytes that have been acknowledged by the receiver. If the receiver cannot handle the data, it will reduce the size of the window, causing the sender to slow down its transmission rate.
Slow start: TCP uses a slow start mechanism to gradually increase the amount of data sent over the network.
Congestion avoidance: TCP uses a congestion avoidance mechanism to detect and respond to congestion on the network. This mechanism is based on the detection of packet loss and the adjustment of the sender's transmission rate.
Congestion window: TCP uses a dynamic congestion window to limit the amount of data that can be sent over the network at any given time.
Fast retransmit and recovery: TCP uses a fast retransmit and recovery mechanism to quickly retransmit lost packets and recover from packet loss. Reduces duplicates.
Explicit congestion notification (ECN): TCP uses ECN to provide early notification of network congestion. ECN allows routers to mark packets with a congestion indication, which the receiver can use to adjust the sender's transmission rate.
Checksums
Acknowledgments
Retransmission
Flow control
Congestion control
Video Streaming (Pre Recorded) - TCP
Needs to be Reliable
Buffering is essential
Live Video Streaming / Video Conferencing -UDP
Reduced Latency
Video and Audio
Multicast
Gaming -TCP and UDP
Real time action games depend on low latency thus UDP
Real time strategy games no need for low latency can use TCP
UDP Segments may be lost or delivered out of order.
No Handshaking required. Each UDP segment is independent from each other.
Reliability transferred in application layer.
Is there nothing better?
Google proposed and design QUIC
Quick UDP Internet Connections
Runs on UDP
Removing TCP initial Handshake
If QUIC is not supported then TCP
Very good reliability as TCP
Support multiple streams
YouTube and HTTP3