Adding TCP to TIA-921B
Download
Report
Transcript Adding TCP to TIA-921B
Telecommunications
Industry
Association
Telecommunications Industry
Association
Arlington, VA
August xx, 2011
TR-30.3/11-08-xxx
TR41.N.n-YY-MM-XXX
Document Cover Sheet
Project Number
PN-3-0062-RV3 (TIA-921C)
Document Title
Adding TCP to the TIA-921B Simulation Model
Source
Anue Systems
Contact
Name: Chip Webb
Complete Address:
8310 Capital of Texas Hwy
Bldg. 2, Ste. 300
Austin, TX 78731
Distribution
TR-30.3
Intended Purpose
of Document
(Select one)
x
Phone: 512-600-5403
Fax:
Email: [email protected]
For Incorporation Into TIA Publication
For Information
Other (describe) -
The document to which this cover statement is attached is submitted to a Formulating Group or
sub-element thereof of the Telecommunications Industry Association (TIA) in accordance with the
provisions of Sections 6.4.1–6.4.6 inclusive of the TIA Engineering Manual dated March 2005, all of
which provisions are hereby incorporated by reference.
Abstract
This presentation is provided for discussion on how to add TCP behavior to the TIA-921B simulation model.
Anue Systems contribution to TR 30.3
1
v1.0 - 20050426
Adding TCP to TIA-921B
Problem Statement / Overview
Proposed Solution / Purpose
How to add TCP?
L5-L7, what version, options and implementation?
Limitations
Discussion
Anue Systems contribution to TR 30.3
2
Problem Statement / Overview
Our current model has “Firehose” packet generators.
The packet generators just replay the packets as read from PCAP files,
with minimal adjustment for rate and burstiness.
This means that the packet generators do not react when packets are
lost.
This is not realistic.
In a real situation, most interfering streams would automatically slow
down to try and reduce the the cause of packet loss.
Lost packets in a stream of interest can make it difficult to analyze
stream quality.
This is mainly of interest for OTT (over the top) video since it is carried in TCP
(IPTV is generally carried over UDP).
This makes it more difficult to use the simulator
Have to “tune” the simulation parameters
Anue Systems contribution to TR 30.3
3
CORE-to-LAN Simulation Model
Interfering
Streams
(pcap files)
Interfering
Streams
(pcap files)
Core Network
1 Gbit/s
Access Network
Test
Stream
Test
Stream
(from TR30_3_Liaison_to_ITU-T_SG12 January 2011)
Anue Systems contribution to TR 30.3
4
Proposed Solution & Purpose
Add TCP to the TIA-921B simulation model
We have discussed doing this in the past
This presentation proposes implementation details to spark
discussion.
Purpose: (twofold)
Add realism to the interfering streams
Show more realistic effect of congestion on OTT video
Anue Systems contribution to TR 30.3
5
How to add TCP?
Simulator is object oriented C++
We have PCAP generators and monitors
Add two new objects to our simulation
TCPServer
TCPClient
The client connects to the server
Data can flow in both directions
TCP’s flow control provides congestion avoidance
Anue Systems contribution to TR 30.3
6
CORE-to-LAN Simulation Model
Interfering
TCP
Streams
(pcap
files)
Server
Interfering
TCP
Streams
(pcap
files)
Client
Core Network
1 Gbit/s
Access Network
Test
TCP
Stream
Server
Test
TCP
Stream
Client
(from TR30_3_Liaison_to_ITU-T_SG12 January 2011)
Anue Systems contribution to TR 30.3
7
Details, Details, Details…..
But, this creates more questions
How to model the L5-L7 behavior?
What data to use for TCP payload?
What TCP version to use?
What TCP options to support?
What implementation to start from?
Anue Systems contribution to TR 30.3
8
How to model L5-L7 behavior?
Proposal:
Focus on bulk data transfer
Divide into two sub-cases (possibly simultaneous):
Download from server to client:
Client connects to server and downloads a file.
Upload from client to server:
Client connects to server and uploads a file.
Ignore “interactive” TCP sessions
That is not the focus of our work (sorry Nagle)
In the future we could allow more complex
sequences
Anue Systems contribution to TR 30.3
9
L5 (sockets layer)
(Credit: http://edn.embarcadero.com/article/26022)
Anue Systems contribution to TR 30.3
10
What data to use for TCP payload?
Proposal:
Read L5 data from files (can be whatever we want)
Specify parameters in simparam files
Filename
Bit rate for transmission of data
Number of repetitions
Repetition rate
Alternative:
Parse and interpret our existing PCAP files
But must infer L5 behavior (heuristics?)
Anue Systems contribution to TR 30.3
11
Save TCP streams in PCAP format
Facilitate debug and analysis with wireshark.
Anue Systems contribution to TR 30.3
12
What TCP version to use?
A number of TCP versions exist:
BSD variants:Tahoe, Reno, Vegas, New Reno
Linux variants: BIC, CUBIC
MS: BSD, Compound TCP
For our work, we care mainly about the changes to
congestion avoidance
Anue Systems contribution to TR 30.3
13
What options to support?
Window Size settings?
Selective acknowledgement?
Window scaling?
MSS?
Proposal:
Focus on Window Size first, scaling second. Others only as
needed.
Anue Systems contribution to TR 30.3
14
What implementation to start from?
Most well documented (4.4BSD-Lite: ca 1995)
W. Richard Stevens, TCP/IP Illustrated series
I propose to use
this as a starting
point for our work
Add enhancements
as needed
Advantages are simplicity,
availability of source code,
speed of development,
and widely studied (and improved upon).
Anue Systems contribution to TR 30.3
15
TCP/IP Illustrated (vol 1)
Volume 1 has detailed explanations:
Ch 17: Overview of TCP
Ch 18: Connection Establish & Termination
Ch 19: Interactive (nagling)
Ch 20: Bulk xfer (sliding window, slow start)
Ch 21: Timeout & Retransmit (fast recovery)
Ch 22: Persist Timer (silly window)
Ch 23: Keepalive
Ch 24: Future stuff
Anue Systems contribution to TR 30.3
16
TCP/IP Illustrated (vol 2)
Volume 2 has source code:
Ch 24: TCP packet format
Ch 25: TCP Timers
Ch 26: TCP Output
Ch 27: TCP Functions
Ch 28&29: TCP Input
Ch 30: TCP User requests
Anue Systems contribution to TR 30.3
17
Other examples to refer to
Ns2 (good reference, widely studied)
Omnet (good, but restrictive license for commercial
use)
Opnet (good but source not available)
Linux source code (good but complex)
Other embedded systems source code and books.
Anue Systems contribution to TR 30.3
18
Limitations
Although packets will contain L2 and L3 protocol
fields, the simulation will not make use of these
fields.
As with the current simulation, servers will support a
single client. We will model multiple streams by
having multiple servers.
Need to define how to get “raw” video data
Need to define how to model adaptive L5 behavior
(like Silverlight)
Anue Systems contribution to TR 30.3
19
Discussion
Question:
Does this seem like a reasonable approach?
Work estimate:
Approximately one month (goal -- August meeting in
Arlington).
Anue Systems contribution to TR 30.3
20