Contents Telektronikk - Telenor
Contents Telektronikk - Telenor
Contents Telektronikk - Telenor
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
156<br />
Sparc2 (SunOS 4.1.1)<br />
or<br />
Sparc10 (SunOS 4.1.3)<br />
do 25 times<br />
send 16 MB<br />
Data<br />
ttcp<br />
TCP<br />
AAL3/4 end-of-message interrupt on<br />
incoming packets.<br />
The second generation Sbus adapter,<br />
SBA-200 [18][19], includes an embedded<br />
Intel i960 RISC control processor,<br />
and hardware support for both AAL 3/4<br />
and AAL5 CRC calculation. It is an Sbus<br />
master device and uses DMA for data<br />
transfer on both the send and receive<br />
path. The segmentation and reassembly<br />
processing is performed by the control<br />
processor on the adapter using the host<br />
memory for storage of frames. The SBA-<br />
200 adapters have the best performance<br />
when using AAL5, and they were configured<br />
to provide an AAL5 end-offrame<br />
interrupt on incoming packets. The<br />
ATM transmission capacity is not a<br />
bottleneck. Therefore, compared to<br />
AAL3/4 the reduced AAL5 segmentation<br />
and reassembly header overhead should<br />
not be a decisive factor on the measured<br />
throughput. Using AAL3/4, the on-adapter<br />
receive control processor turns out to<br />
be a bottleneck for large TCP window<br />
sizes.<br />
2.2 Host architectures<br />
The memory-to-memory measurements<br />
presented in this paper are performed<br />
between two Sparc2 based Sun IPX<br />
machines, and between two Sparc10<br />
based Axil 311/5.1 machines. The workstations<br />
were not tuned in any way,<br />
except for allowing only a single user<br />
during the measurements. All standard<br />
daemons and other network interfaces<br />
were running as normal. In the rest of<br />
this paper we name the two machine<br />
types Sparc2 and Sparc10.<br />
The MIPS rating (28.5 vs. 135.5) is about<br />
4.5 times higher for the Sparc10 com-<br />
IP<br />
AAL<br />
ATM<br />
Acknowledgements<br />
Application<br />
Higher level protocols<br />
Network interface=driver+adapter<br />
SBA-100/AAL3/4<br />
SBA-200/AAL5<br />
ATM<br />
Figure 1 Measurement environment and set-up<br />
Sparc2 (SunOS 4.1.1)<br />
or<br />
Sparc10 (SunOS 4.1.3)<br />
Data<br />
do 25 times<br />
receive 16 MB<br />
Acknowledgements<br />
pared to the Sparc2. Apart from the CPU,<br />
the main difference between these<br />
machine architectures is the internal bus<br />
structure. While the CPU in the Sparc2<br />
has direct access to the Sbus, the Sparc10<br />
has separated the memory (Mbus) and<br />
I/O (Sbus) bus. Thus, access to the Sbus<br />
from the CPU must pass through an<br />
Mbus-to-Sbus interface (MSI) which<br />
certainly increases the latency when<br />
accessing the network adapter.<br />
2.3 Measurement methods<br />
We used the ttcp application program to<br />
measure the TCP memory-to-memory<br />
throughput. The ttcp program uses the<br />
write and read system calls to send and<br />
receive data. We modified the ttcp program<br />
to set the socket options which<br />
influence the maximum TCP window<br />
size on a connection. Each measured<br />
throughput point is the average of 25<br />
runs. Each run transfers 16 Mbyte memory-to-memory<br />
between the sender and<br />
the receiver.<br />
The CPU utilization is measured for different<br />
window sizes with the user data<br />
size set to 8192 bytes. The SunOS maintenance<br />
program vmstat, was run to register<br />
the average CPU load. For minimal<br />
interference with the throughput measurements,<br />
vmstat was run every 10 seconds<br />
in parallel with a transfer of 256<br />
Mbyte between the sender and receiver.<br />
To analyze the segment flow on the<br />
ATM connections, we put small optimized<br />
probes in the network driver to log<br />
all packets on the ATM connections of<br />
dedicated runs. One log corresponds to<br />
one run which transfers 16 Mbytes. The<br />
probes parse the TCP/IP packets and register<br />
events in a large log table during the<br />
data transfer. Included in each event log<br />
is a time stamp, an event code and a<br />
length field. The time stamp is generated<br />
using the SunOS uniqtime() kernel function<br />
which accesses the internal µsec<br />
hardware clock. The length field is used<br />
to log, among other things, the announced<br />
window size, the TCP packet<br />
length, and sequence numbers as indicated<br />
by the event code. The contents of<br />
the log table is printed off-line using the<br />
kvm library functions available in SunOS<br />
4.1.x.<br />
The probes were put in the network driver<br />
to only log traffic on the ATM network.<br />
To minimize the logging overhead<br />
the probes were placed on the machine<br />
with the least CPU utilization. Thus, for<br />
the SBA-100 adapters logging was done<br />
on the send side while logging was done<br />
on the receive side for the SBA-200<br />
adapters. The throughput results with and<br />
without the logging mechanism indicate<br />
the logging overhead to be less than 5%.<br />
The log information is presented in primarily<br />
four kinds of graphs. The first<br />
three, covering the whole measurement<br />
period, present the size of transmitted<br />
segments, the number of outstanding<br />
bytes, and the receiver announced window<br />
size. Due to the granularity of the xaxis,<br />
fluctuations along the y-axis show<br />
up as black areas. The fourth kind of<br />
graph uses a finer time resolution and<br />
covers only a small interval of the connection<br />
life-time. Two values are displayed<br />
in the same figure; the announced<br />
window size and the number of outstanding<br />
unacknowledged bytes. The transmission<br />
of a segment is shown as a vertical<br />
increase in the number of outstanding<br />
bytes, while an acknowledgment is displayed<br />
as a drop.<br />
3 Factors influencing<br />
performance<br />
There are several factors which influence<br />
the segment flow on a TCP connection.<br />
In addition to the protocol itself, the<br />
application interface and the operating<br />
system [10], the CPU and machine architecture,<br />
and the underlying network technology<br />
affect the segment flow. In this<br />
section we describe and quantify some of<br />
these factors.<br />
3.1 Environment and<br />
implementation factors<br />
The interface to the TCP/IP protocol in<br />
BSD-based systems is through the socket<br />
layer [11]. Each socket has a send and a