|
Created by Julian Rottenberg
about 6 years ago
|
|
Internet Checksum Example
Internet Checksum Example
(add two 16-bit integers)
Transport Control Protocol (TCP)
(Point-to-point)
Transport Control Protocol (TCP)
(Reliable, in-order byte stream)
Transport Control Protocol (TCP)
(Pipelined)
Transport Control Protocol (TCP)
(Full duplex data)
Transport Control Protocol (TCP)
(Connection-oriented)
Transport Control Protocol (TCP)
(Flow controlled)
Transport Control Protocol (TCP)
(Send & receive buffers)
TCP Segment Structure
TCP Sequence Numbers and ACKs
(Seq. #'s)
TCP Sequence Number and ACKs
(ACKs)
TCP Sequence Numbers and Acks
(How does receiver handle out-of-order segments?)
TCP Sequence Numbers and ACKs
(Bild)
TCP Round Trip Time and Timeout
(Recall)
TCP Round Trip Time and Timeout
(How to set TCP timeout value)
TCP Round Trip Time and Timeout
(How to estimate RTT?)
TCP Round Trip Time and Timeout
Example RTT Estimation
TCP Round Trip Time and Timeout
TCP Connection Establishment
TCP Connection Establishment
(Active Mode)
TCP Connection Establishment
(Passibe Mode)
Connection Identification in TCP
(a TCP connection is setup)
Connection Identification in TCP
TCP Connection Management
(1)
TCP Connection Management
(2)
TCP Connection Management
(3)
A TCP Connection in all Three Phases
(Connection Establishment)
A TCP Connection in all Three Phases
(Data transfer)
A TCP Connection in all Three Phases
(Connection Release)
A TCP Connection in all Three Phases
(Bild)
TCP Connection Management: State Transitions
TCP Connection Management: State Diagram
TCP Reliable Data Transfer
TCP Sender Events
(Data received from application)
TCP Sender Events
(Timeout)
TCP Sender Events
(Ack received)
TCP Sender (simplified)
(Comments)
TCP Sender (simplified)
(Example)
TCP Sender (simplified)
(Bild)
TCP: Retransmission Scenarios
(1)
TCP: Retransmission Scenarios
(2)
TCP ACK Generation [RFC 1122, RFC 2581]
Fast Retransmit
(Time-out period often relatively long)
Fast Retransmit
(Detect lost segments via duplicate ACKs)
Fast Retransmit
Fast Retransmit Algorithm
Send and Receive Buffers in TCP
(TCP maintains buffer)
Send and Receive Buffers in TCP
(Bild)
TCP Flow Control: Advertised Window
Nagle's Algorithm - Self-Clocking and Windows
(TCP self-clocking)
Nagle's Algorithm - Self-Clocking and Windows
(What happens when an ACK for only small amount of data (e.g., 1 byte arrives)?
(Send immediately?)
Nagle's Algorithm - Self-Clocking and Windows
(Nagle's algorithm describes how much data TCP is allowed to send)
Congestion Control in TCP
(TCP's mechanism for congestion control)
(Implicit feedback by dropped packets)
Congestion Control in TCP
(TCP's mechanism for congestion control)
(Window-based congestion control)
TCP ACK/Self-Clocking
TCP ACK/Self-Clocking
(When to send more data?)
Good and Bad News
(Good news: Ack arrival)
Good and Bad News
(Bad news: No ACK, timeout occurs)
Reduce Congestion Window by How Much?
Increase Congestion Window by How Much?
Additive Increase - Details
Additive Increase - Details
(Specifically)
AIMD - Sawtooth Pattern of TCP's Offered Load
(Summary)
AIMD - Sawtooth Pattern of TCP's Offered Load
(Consequence)
AIMD - Sawtooth Pattern of TCP's Offered Load
(Bild)
Quickly Initialize a Connection: Slow Start
Quickly Initialize a Connection: Slow Start
(Idea)
Quick Initialize a Connection: Slow Start
(Bild)
Leaving Slow Start
Remaining Problem: Packet Bursts
Solution: Use Slow Start Here As Well
TCP Congestion Window Dynamics
Summary: TCP Congestion Control
Summary: TCP Sender Congestion Control
Another Summary: TCP Congestion Control
Another Summary: TCP Congestion Control
(Extensions to TCP)
Another Summary: TCP Congestion Control
(Different TCP versions)
Short Advertisement For Those Who Want More On This...
Example: Evaluation of TCP Congestion Control
TCP Throughput
(What's the average throughout of TCP as a function of window size and RTT?)
TCP Fairness
(Fairness goal)
TCP Fairness
(Bild)
Why is TCP fair?
(Two competing sessions)
Why is TCP fair?
(Bild)
Fairness
(Fairness and UDP)
Fairness
(Fairness and parallel TCP connections)
Delay Modeling
(How long does it take to receive an object from a Web server after sending a request?)
Delay Modeling
(Notation, assumptions)
Delay Modeling
(Window size)
Fixed Congestion Window
(1)
Fixed Congestion Window
(2)
TCP Delay Modeling: Slow Start
(1)
TCP Delay Modeling: Slow Start
(Delay components)
TCP Delay Modeling: Slow Start
(Example)
TCP Delay Modeling: Slow Start
(2)
TCP Delay Modeling
(3)
TCP Delay Modeling
(4)
Case Study: HTTP Modeling
HTTP Response Time (in seconds)
(1)
HTTP Response Time (in seconds)
(2)
Chapter Summary
(Principles behind transport layer services)
Chapter Summary
(Instantiation and implementation of the Internet)
Chapter Summary
Chapter Summary
(Error control)
Chapter Summary
(Flow control)
Chapter Summary
(Congestion control)
Some Network Applications
Creating a Network Application
(Write programs that)
Creating a Network Application
(No software written for devices in network core)
Creating a Network Application
Principles of Network Applications: Architectures
(Principle alternatives)
Client-Server Architecture
(Server)
Client-Server Architecture
(Clients)
Pure P2P Architecture
Pure P2p Architecture
(Bild)
Hybrid of Client-Server and P2p
((Original) Napster)
Hybrid of Client-Server and P2p
(Instant messaging)
Processes Communicating
Processes Communicating
(Process)
Processes Communicating
(Client process)
Processes Communicating
(Server process)
Processes Communicating
(Note)
Sockets
Sockets
(Socket analogous to door)
Sockets
(API)
Sockets
(Bild)
Addressing Processes
Addressing Processes
(Does the IP address of the host on which the process runs suffice for identifying the process?)
Addressing Processes
(Identifier)
Addressing Processes
(Example port numbers)
Issues Defined by an Application-Layer Protocol
(Types)
Issues Defined by an Application-Layer Protocol
(Syntax of message types)
Issues Defined by an Application-Layer Protocol
(Semantics of the field)
Issues Defined by an Application-Layer Protocol
(Rules)
Issues Defined by an Application-Layer Protocol
(Open vs Proprietary protocols)
(Public-domain protocols)
Issues Defined by an Application-Layer Protocol
(Open vs Proprietary protocols)
(Proprietary protocols)
What Transport Service does an Application Need?
(Data loss)
What Transport Service does an Application Need?
(Timing)
What Transport Service does an Application Need?
(Bandwidth)
Transport Service Requirements of Common Applications
Internet Transport Protocols Services
(TCP Service)
(Connection-oriented)
Internet Transport Protocols Services
(TCP Service)
(Reliable transport)
Internet Transport Protocols Services
(TCP Service)
(Flow control)
Internet Transport Protocols Services
(TCP Service)
(Congestion control)
Internet Transport Protocols Services
(TCP Service)
(Does not provide)
Internet Transport Protocols Services
(UDP Service)
(Unreliable data transfer)
Internet Transport Protocols Services
(UDP Service)
(Does not provide)
Internet Applications & Transport Protocols
Web and HTTP
HTTP Overview
HTTP Overview
(Client/Server model)
(Client)
HTTP Overview
(Client/Server model)
(Server)
HTTP Overview
(Bild)
HTTP Overview
(Uses TCP)
HTTP Overview
(HTTP is "stateless")
HTTP Overview
(Aside)
HTTP Connections
(Nonpersistent HTTP)
HTTP Connections
(Persistent HTTP)
Nonpersistent HTTP
(1)
Nonpersistent HTTP
(2)
Response Time Modeling
(Definition of RTT)
Response Time Modeling
(Response time)
Response Timing Model
(Bild)
Persistent HTTP
(Nonpersistent HTTP issues)
Persistent HTTP
(Persistent HTTP)
Persistent HTTP
(Persistent without pipelining)
HTTP Request Message
HTTP Request Message
(Bild)
HTTP Request Message: General Format
Uploading Form Input
(Post method)
Uploading From Input
(URL method)
Method Types
(HTTP/1.0)
Method Types
(HTTP/1.1)
HTTP Response Message
HTTP Response Status Codes
Trying Out HTTP (Client Side) for Yourself
User-Server State: Cookies
(Four components)
User-Server State: Cookies
(Example)
Cookies: Keeping "State"
Cookies
(What cookies can bring)
Cookies
(Aside)
(Cookies and privacy)
Web Caches (Proxy Server)
More About Web Caching
More About Web Caching
(Why Web caching?)
Caching Example
(1)
Caching Example
(2)
Caching Example
(3)
Conditional GET
(Goal)
Conditional GET
(Cache)
Conditional GET
(Server)
Conditional GET
(Bild)
Basic Web Server Tasks
(1)
Basic Web Server Tasks
(Prepare and accept requests)
Basic Web Server Tasks
(Read and Process)
Basic Web Server tasks
(Respond to Request)
Web Server Architectures
(Four basic models)
1. Process Model
1. Process Mode
(Advantages)