Spock: A Java Applet to Test The Extent of Data Buffering in Network Devices

 

Charles H. Rothauser

CS577 - Advanced Computer and Communications Networks

Worcester Polytechnic Institute

 

I. Introduction and Background

 

In 1993, the field of network performance was shocked by a group of Bellcore and Boston University researchers who delivered a paper at that year’s SIGCOMM conference. "On the Self-Similar Nature of Ethernet Traffic" [1] which appeared the following year in the IEEE Transactions on Networking, is arguably the most important networking paper of the 90’s. The paper’s authors provided an explanation and systematic approach to modeling realistic data traffic patterns.

Network traffic is more bursty and exhibits greater variability than previously suspected. The paper reported the results of a massive study of Ethernet traffic and demonstrated that it has a self-similar, or fractal, characteristic. That means that the traffic has similar statistical properties over a range of time scales: milliseconds, seconds, minutes, hours, days and weeks. Thus you can not expect the traffic to smooth out over an extended period of time - instead the data clusters. Also the merging of traffic streams such as is done with ATM switches does not result in a smoothing of traffic - it is self-similar as well [9].

One practical aspect of self-similarity is that the buffers needed at switches and routers must be bigger than those predicted by traditional queuing analysis and simulations. Further, these larger buffers create greater delays in individual data streams than originally anticipated. In traditional network engineering, it is assumed that linear increases in buffer sizes will produce significant decreases in packet loss and that an increase in buffer size will result in an increase in throughput. Self-similar traffic disproves these assumptions, the decrease in loss with buffer size is far less than expected, and a small increase in utilization requires a significant increase in buffer size. The true nature of high-speed data traffic has been revealed, that is, surges in the data traffic occur in waves [1]. This makes the job of routers and switches difficult since they must clear the backlog before the next peak arrives.

The goals of this project are to demonstrate the versatility of Java networking by developing a Java applet to test network throughput and benchmark the performance of various network traffic nodes in the UTRC LANs. This will be accomplished by using the applet from multiple points within the network. This paper is organized as follows. In Section II, the author describes Java and its networking functions that were used to develop the Spock applet. Spock’s frame-to-frame test and applications functions and their use within the UTRC network are described. In Section III, the tests ran on the UTRC network involving 10 Mbs and 100 Mbs Ethernet are presented. Finally Section IV, summarizes the findings and discusses further uses of Spock.

II. Java Networking with Spock

From the ground up, Java[2] is an object-oriented programming (OOP) language. Java was developed as a client/server programming tool, especially used over networks, and object orientation fits nicely with these needs. Object-oriented code is inherently reusable; procedural code tends to be much more rigid in its application. Objects can be created in place, distributed across a network, and reused when needed. This can save you a good deal of time and energy!

The three most fundamental terms associated with OOP are objects, classes, and methods. Indeed, these are the building blocks that any programmer must use in order to solve problems via coding. Objects provide a programming model, and programmed objects [3] have three main characteristics: state, behavior, and identity. In this case, the object’s state is defined by instance variables. The programmed object’s behavior is defined by its methods - what it can do. These methods affect the instance variables of the object, giving it a new state. This dynamic behavior gives objects their identity.

The most important OOP concept is class. The class is the blueprint for objects. That is, all objects that are instances of a class have something in common. A good analogy is that of using a pattern for making cloths. All articles of clothing made from the same pattern will resemble one another; they may be made of different fabrics, but the relationship is inherent.

It should be fairly clear that OOP differs greatly in design from procedural-language programming. Procedural models such as Pascal attempt to provide structural abstractions; OOP models such as Java, on the other hand, are geared toward behavioral abstractions. In other words, procedural models direct the representation of data, while OOP languages are concerned with the manipulation of data.

To say that you "are networking" is merely to say your program is accessing information, resources, or services from another computer. Networking can be extremely useful for a wide variety of applications, and is really the foundation for the power of the Internet. Accessing other programs in order to acquire data is manifested through the use of sockets (TCP or connection orientated) and datagrams (UDP or connectionless). Spock (Appendix A) is a Java applet that connects to the TCP discard socket (#9) on a server for the purposes of sending back-to-back frames to test throughput and delay over the network path. The Java construction "Socket NameofSocketObject = new Socket(host, port)" is used to set up the virtual connection.

Spock is a Java applet which means that it is a Java program of networked code that is referenced by an HTML document and viewed by Java-enabled Web browsers. Java browsers are far more flexible than other browsers limited to HTML and graphical display. Rather than supporting code processing at the web server, one can create applets for a task and distribute them to the browser’s machine. The Web browser no longer needs to worry about downloading yet another plug-in, or perhaps the latest version. The Web server no longer needs to worry about security problems [2] and the processor strain found with running CGI scripts.

Currently, only a small number of Web browsers support the HTML tags and/or the necessary components to run Java applets. This is likely to change soon, in the face of Java’s potential for added Web functionality. The first browser to run Java applets was Sun’s HotJava[2], developed to handle the beta version of Java. HotJava is now outdated and there are no publicly known plans to update it. Other browsers that now support Java applets include Netscape Navigator 3.x, Microsoft’s Internet Explorer 3.x, Spyglass Mosaic, Oracle’s PowerBrowser and IBM’s Web explorer.

To create and use the Spock applet within a Web page, I used the three essential file components: SpockApplet.html (figure 1), SpockApplet.java (Appendix A) and SpockApplet.class. The SpockApplet.html component is the referencing HTML page where the applet is called. The second component, SpockApplet.java , is the Java source file and holds the Java applet code. The .class file is the Java bytecode created by the compiler. I used SUN Microsystems’s Java Development Kit (JDK) Version 1.1 which is freely available from SUN’s web site, www.javasoft.com.

JDK comes with a standard development environment, with well developed libraries of prewritten classes. These classes can be used for a wide range of functions. Java’s classes are grouped into libraries called packages. The main reason for using packaged classes is to avoid name conflicts that are likely to arise otherwise. This is very similar to the idea of assigning a unique reference (URL) to individual files on the network. There are thousands (millions?) of files on the Internet with the name index.html. Each file becomes unique by virtue of its membership in user directories and host computers. The same concept is behind the grouping of classes into packages. The SpockApplet.java (Appendix A) imports the java.io, java.net, java.util, java.applet, and java.awt (abstract windowing tool for building a platform independent graphical user interface).

Ethernet packets vary in size from 64 to 1518 octets including 26 octets of overhead for addressing and error control. A single request can result in a block of data being returned of as much as 64K octets and at least 43 frames. Since frame reassembly will only be attempted if all frames have been received, the loss of even one

<HTML>

<HEAD>

<TITLE>Network Throughput Applet </TITLE>

<META NAME="GENERATOR" CONTENT="Mozilla/3.0GoldC-NSCP (Win95; I) [Netscape]">

</HEAD>

<BODY>

<P><B><FONT SIZE=+1>Spock - A Network Throughput Test to Vger:</FONT></B></P>

<P><B>Test Button</B></P>

<UL>

<LI>500 packets of user specified size are sent to Vger's TCP Discard socket.

</LI>

<LI>The resulting bandwidth is calculated for the test. </LI>

<LI>Enter packet size below - use byte values 38 - 1492 (26 bytes of overhead

are added by Ethernet protocol)</LI>

</UL>

<P><B>Applications Button (automatic applications test)</B></P>

<UL>

<LI>Email with attachment (3 Mbs PowerPoint file)</LI>

<LI>Computer screen image (3MB 1000 x 1000 pixels &amp; 24 bit color)</LI>

<LI>File transfer (1MB file)</LI>

<LI>Web access (80KB)</LI>

<LI>Multi-Media video frame (2Mbs small window &quot;talking heads&quot;)</LI>

</UL>

<P><APPLET

CODE = "SpockApplet.class"

CODEBASE = "C:\chuckapps"

ALIGN = Left><PARAM NAME="HOST" VALUE="vger.res.utc.com"></APPLET></P>

</BODY>

</HTML>

Spock Html File

Figure 1

frame because of the failure of some intermediate network device to process enough continuous frames can cause an endless loop as the sender repetitively attempts to send a large data block. Also routing updates can span many frames, with modern routers able to transmit frames very quickly. Missing frames of routing information can produce false indications of unreachability

The Spock applet provides two functions (figure 2) for sending bursts of back-to-back frames to a host that supports the TCP discard socket. The Test function sends a burst of 500 frames of the user specified frame size (38 - 1492 octets) and reports the time to send and the network bandwidth achieved. The bandwidth calculation includes Ethernet overhead data [6][7] and converts measured time units to seconds. Appendix B lists the frames captured from a single TCP session which reliably sends one frame of 1492 octets. The TCP session begins when frame one requests my workstation (vger - 192.249.40.11) to synchronize its sequence number and adjust its window size to the client (rothauch - 192.19.6.16). The next two ARP frames are being used by vger to get the mac address of its default router, vger needs this information to communicate with my client, rothauch. The fourth frame is an ack for the synchronize sequence number request from rothauch. The fifth frame is an ack from rothauch back to vger

The sixth frame is constructed from the user specified frame size (1492) and the 26 bytes of Ethernet overhead and sent to vger’s discard socket. The seventh frame is an ack from vger to rothauch for the received data frame. The eighth frame is an ack frame to vger from rothauch - an ok to vger. The client, rothauch, then sends a fin frame to vger indicating that rothauch is finished sending data. Vger then acks the end of this particular TCP connection. These frames were captured by NetXRay, a software tool developed for Windows 95 by Cinco Networks (www.cinco.com/product.html)..

The Spock applications function tests 5 bursts of back-to-back frames ( average size of 742 octets) which represent email with a 3 Mbs attachment, computer screen image (3 MB of 1000 x 1000 pixels with 24 bit color), 1 MB file transfer, 80 KB web access and multi-media video frame (2 Mbs small window "talking heads") [10]. The 80 KB (UTRC webmaster’s statistics) web access size is the average amount of data per access to UTRC’s web server. The 2 Mbs multi-media video frame represents the size of small widows ("talking heads") found in current LAN applications like CU SEE ME, Internet Phone version 4, and Microsoft’s NetMeeting. A recent performance study [4] of 10 Mbs and 100 Mbs switched 10BaseT Ethernet found a delay in the range of 50 ms - 500 ms is acceptable for video delivery on Ethernet LANs.

 

III. Testing Strategy

 

UTRC is currently in transition from a collapsed 10 Mbs Ethernet backbone (figure 3) using a cisco 7000 router. The router supports 12 networks including 6 main buildings that make up the complex and two high speed cisco catalyst switches linked by multimode fiber running full duplex Fast Ethernet. By this summer, I will have three catalyst switches linked in a triangular topology (figure 4) supporting switched Fast Ethernet between them and to servers as well as 10 Mbs Ethernet to a quarter of the desktops. My workstation, vger, is connected to a switched 10 Mbs port on one of the switches. My tests will use vger and clients on the same switch, on the other switch and on networks connected to the cisco router. These tests will provide

performance data for switched and routed clients. My second set of tests will use a server connected to the 100 Mbs port on the computer room switch and clients connected to the same switch, different switch, and networks

on the router. Throughput delay and bandwidth achieved will be compared for the switched and router networks for 10 Mbs and 100 Mbs and implications of buffer size in each device will be considered.

Before running tests and making comparisons it’s necessary to describe the efficiency found in variable size Ethernet frames. Every Ethernet frame includes data, as well as a preamble, source, and destination address, length field, and error checking. In addition, every frame is separated from the next one by the minimum interframe gap (IFG), which is 9.6 microseconds. The preamble, address, length of field, and IFG make up a significant amount of the total Ethernet frame, which is the overhead. For the maximum frame size of 1,518 octets, this overhead is 2.5% of total transmission time. This gives Ethernet a best-case efficiency of 97.5%. For a packet of 500 octets, overhead increases to 7.4%, reducing efficiency to 92.6%. Figure 5 illustrates how Ethernet efficiency varies as a function of frame size. I have used the NetXray monitor to measure the average frame size on UTRC’s network, it is 742 octets. The Spock Java applet uses the average frame size when conducting the applications tests.

 

IV. Results and Future Uses of Spock

 

Appendix C lists the five test sessions ran using Vger, a laptop, a Windows-NT workstation and the file archive system (EPOCH) which has a SUN workstation front end. All these devices are connected to the UTRC LANs ( figure 1) through Cisco Catalyst switches and routers at 10 Mbs or 100 Mbs. The Catalyst 2800 switch is located in the center of figure 1 and to the right is the Catalyst 3000 which has Vger connected to a switched 10 Mbs port. The Catalyst 3000 is connected to the Catalyst 2800 with multimode fiber running at 100 Mbs. The Catalyst 2800 has 24 switched 10 Mbs Ethernet ports, a 4 port 100 Mbs fiber repeater, and a 12 port 100 Mbs UTPL5 repeater. The Windows-NT workstation and the EPOCH are each connected to a separate UTPL5 100 Mbs port on the Catalyst 2800. Supporting TCP/IP networks in transition to the switched network, is the Cisco 7000 one armed router located to the left of the Catalyst 2800.

The purpose of these tests is to benchmark network performance before replacing the Catalyst 2800 and Catalyst 3000 with Catalyst 5000’s. The Catalyst 5000 provides switched 10 Mbs and 100 Mbs ports to the desktops and two switched 100 Mbs fiber uplinks. The completed network topology (figure 2) includes 3 of the Catalyst 5000’s using full duplex 200 Mbs fiber links. Figure 6 depicts real-world data throughput for 10 and 100 Mbs Ethernet LANs. The values given in figure 6 are approximations and can only be achieved in ideal conditions such as switch-to-switch. Peaks above 37% on shared Ethernet can be tolerated for short periods but loading a shared network for extended periods of time has resulted in network interface cards shutting down and the network becoming unusable. Switched Ethernet networks provide dedicated bandwidth on a per port basis and it can operate in full duplex mode. Full duplex mode is ideal for servers and point-to-point links found in a backbone.

Table 1 summarizes the test results for the switched network devices. The labtop switch tests with Vger involved setting the laptop’s TCP/IP network address to be the same as Vger’s in order to eliminate the one armed router from the path.

Network Device

Packet Size

Transmission Time (Ms)

Bandwidth (Mbs)

C3000 - Shared 10Mbs port to Vger

126

528

.96

C3000 - Shared 10Mbs port to Vger

526

1358

1.55

C3000 - Shared 10Mbs port to Vger

776

1758

1.77

C2800 - Dedicated 10Mbs port to Vger

126

538

.94

C2800 - Dedicated 10Mbs port to Vger

526

1227

1.72

C2800 - Dedicated 10Mbs port to Vger

776

1753

1.84

C3000 - Dedicated 10 Mbs port to Vger

126

570

.89

C3000 - Dedicated 10 Mbs port to Vger

526

1370

1.54

C3000 - Dedicated 10 Mbs port to Vger

1426

2035

2.80

C2800 - Shared 100 Mbs port to Cisco 7000 Router

776

618

5.05

C2800 - Shared 100 Mbs port to Cisco 7000 Router

1426

1468

4.02

C2800 - Shared 100 Mbs port to Vger on (C3000)

776

517

6.35

C2800 - Shared 100 Mbs port to Epoch file archive

776

601

5.21

C2800 - Shared 100 Mbs port to Epoch file archive

1426

1127

5.15

 

The laptop is a 486 33 Mhz running Windows 95 with an Ethernet PCMCIA card. The first test used a shared Ethernet with a 10% traffic load connected to the Catalyst 3000. Several frame sizes were tested with the results showing an increasing bandwidth with increasing frame size. The second test used a dedicated 10 Mbs port on the Catalyst 2800 with results just slightly better than the first test. This does show some value for the 100 Mbs fiber link - it’s just like being on the same switch! The third test used a dedicated port on the Catalyst 3000 which showed a full 1 Mbs improvement in throughput for large frames (1426 octets).

The fourth and fifth tests used a Windows NT workstation connected to a 100 Mbs port on the Catalyst 2800. Packets were sent to the Cisco 7000, Vger, and the EPOCH. Both the Cisco 7000 and the EPOCH are also connected to the Catalyst 2800 100 Mbs repeater. The throughput to the Cisco 7000 was about double the throughput of the 10 Mbs tests, however, the throughput to Vger was three times that of the 10 Mbs tests. The throughput to the EPOCH was slightly higher than the results for the Cisco 7000. Certainly I need to run more tests, however I think the UTRC servers will greatly benefit from having switched full duplex fast Ethernet links as opposed to the current repeater links. The current traffic loads on the switched network show bursts of 8 to 10 Mbs (CMU SNMPV2 package) rather than sustained bursts of 25 Mbs, in other words, the traffic is transactional in nature which lends itself to a switched network technology.

When the Spock applet is loaded from the hard disk on a computer with a modem, the throughput tests show the degree of compression achieved through the modem connections. The author has recorded test results of 48 to 58 Kbps. In the future, a summary capability will be added to report number of tests run for a particular frame size and the average transmission time and bandwidth.

 

 

References

 

[1] Leland, W.E, Taqqu, M.S., Willinger, W., Wilson D.V., On the Self-Similar Nature of Ethernet Traffic. IEEE/ACM Transactions on Networking, Vol. 2, No. 1, February 1994.

[2] Shaio, S., Hoff, A.V., Jellinek, H., Java and HotJava: A Comprehensive Review. Proceedings of COMPCOM ’96, pp. 424 - 429.

[3] Simkin, S., Bartlett, A.L., Java Programming. Coriolos Group Books, copyright 1996.

[4] Tobagi, F.A., Dalgic, I., Performance Evaluation of 10Base-T and 100Base-T Ethernets Carrying Multimedia Traffic. IEEE Journal on Selected Areas in Communications, Vol. 14, No. 7, September 1996.

[5] Digital, Intel, Xerox (DIX). The Ethernet. September 30, 1980.

[6] Stallings, W., Local & Metropolitan Area Networks. Prentice-Hall, copyright 1997, pp. 426-468.

[7] Hammond, J.L., O’Reilly, P.J., Performance Analysis of Local Computer Networks. Addison-Wesley Publishing Company, copyright 1986, pp. 381-389.

[8] Schwartz, M., Telecommunication Networks: Protocols, Modeling and Analysis, Addison-Wesley, copyright 1987.

[9] Garrett, M.W. and Willinger, W., Analysis, Modeling and Generation of Self-Similar VBR Video Traffic, Proc. SIGCOMM ’94, London (Aug. 1994), pp. 269-280.

[10] Minoli, D., Broadband Issues and ATM User Views, Bell Communications Research, Inc., copyright 1994.

 

 

 

Appendix A - Spock Applet

 

/**

* This Java Applet tests network throughput

* from any browser (i.e. Netscape 3.0) to a default http server (see

* the parameter value in SpockApplet.htm) or any host supporting

* the TCP discard socket (no. 9) if you loaded the applet locally.

*

* @author Chuck Rothauser

* @version 1.0

*

* email chr@utrc.utc.com

*/

 

 

import java.awt.*;

import java.io.*;

import java.net.*;

import java.util.*;

import java.applet.*;

 

/* Define applet class name here */

 

public class SpockApplet extends Applet {

String shost;

InputField inputField;

InfoBox infoBox;

/* Define input field in panel used by awt & user! */

 

class InputField extends TextField {

InputField() {

super( 40 );

}

}

 

/* This is where I report results */

 

class InfoBox extends TextArea {

InfoBox() {

super("", 15, 40 );

setEditable( false );

setFont( new Font( "Courier", Font.PLAIN, 12 ));

}

 

void Print( String s ) {

insertText( s, getText().length() );

}

}

 

/* Set up buttons & their names in the bottom of the awt panel */

 

class Controls extends Panel {

public Controls() {

add(new Button("Test"));

add(new Button("Applications"));

add(new Button("Host"));

add(new Button("Clear"));

add(new Button("Quit"));

}

}

 

/**

* Convert the given interger array into a byte array

* @param inta Integer array

* @returns A byte array

*/

private byte[] intaToBytea(int[] inta) {

ByteArrayOutputStream temp = new ByteArrayOutputStream(inta.length);

for(int x=0; x < inta.length; x++) {

temp.write(inta[x]);

}

return(temp.toByteArray());

}

 

 

/*

* Create a packet (byte array) of the given length

* full of zeros.

* @param len The desired length

*/

private byte[] createNullPacket(int len) {

byte[] pkt = new byte[len];

for (int x=0; x < len; x++) {

pkt[x] = 0;

}

return(pkt);

}

 

/* This is the back-to-back packet test. It calculates throughput

* and reports the results. The packet test is called when the user

* clicks on the "test" button.

*/

public synchronized String goTest( String pksize ) throws UnknownHostException {

String s = null;

String b = null;

String t = null;

String x = null;

String pkts = null;

byte[] pdata;

long millib, millie, xmit;

/* check packet size and create a packet of appropriate size.

* the default packet size is 500 octets (ethernet adds 26

* octets to this.

*/

 

int len = Integer.parseInt(pksize);

 

int pksent = len + 26;

if ((len < 38) || (len > 1492)) {

s = new String( "Packet size is invalid" + "\n" );

return s;

}

pdata = createNullPacket(len);

 

/* connect to host and send 500 data packets while timing the

* transfer.

*/

try {

Socket socket = new Socket( shost, 9 );

DataOutputStream dos = new DataOutputStream( socket.getOutputStream() );

float lpdata = (float) pdata.length;

millib = System.currentTimeMillis();

 

for (int i = 0; i < 500; i++ ) {

dos.write( pdata, 0, len );

}

 

dos.flush();

millie = System.currentTimeMillis();

xmit = millie - millib;

float band = (float) ( ( ( 500.0 * ( lpdata + 26.0 ) * 8.0 ) * 1000.0 ) / xmit );

 

x = new String( "Transmitted packet size in bytes = "+pksent+"\n");

t = new String( "Transmission time in milliseconds = "+xmit+"\n");

b = new String( "Bandwidth for this test in bps = "+band+"\n\n");

s = new String( x + t + b );

 

socket.close();

} catch( IOException e ) {

System.out.println( "ERROR: IO Exception"+"\n" );

} finally {

if( s == null || s.length() == 0 ) {

s = new String( "Sorry, not logged in..."+"\n" );

}

 

return s;

}

}

 

/* allows the user to specify a new host to test throughput to.

* Note that this function is valid only for the applet loaded

* locally - this is part of the Java security model!

*/

 

public synchronized String goHost( String query ) throws UnknownHostException {

String z = null;

shost = new String( query );

if ( shost == null || shost.length() == 0 ) {

shost = new String( "vger.res.utc.com" );

}

 

z = new String( shost + "\n" );

return z;

 

}

 

/* This is the applications test which is called when the user clicks

* on applications. A suite of back-to-back packets are sent to test

* email, sceen dump, file transfer, www access, multimedia.

*/

 

public synchronized String goAppl( String pksize ) throws UnknownHostException {

String s = null;

String es = null;

String is = null;

String fs = null;

String ms = null;

String hs = null;

String h = null;

String b = null;

String t = null;

String x = null;

String pkts = null;

byte[] pdata;

long millib, millie, xmit;

 

/* int len = Integer.parseInt(sizeField.pksize); */

int len = 742;

int pksent = len + 26;

if (len < 0) {

s = new String( "Packet size is invalid..." );

return s;

}

pdata = createNullPacket(len);

 

try {

Socket socket = new Socket( shost, 9 );

DataOutputStream dos = new DataOutputStream( socket.getOutputStream() );

float lpdata = (float) pdata.length;

 

/* Email with attachment test */

millib = System.currentTimeMillis();

for (int i = 0; i < 505; i++ ) {

dos.write( pdata, 0, len );

}

dos.flush();

millie = System.currentTimeMillis();

xmit = millie - millib;

float eband = (float) ( ( ( 505.0 * ( lpdata + 26.0 ) * 8.0 ) * 1000.0 ) / xmit );

 

h = new String( "****** Applications Test ******"+"\n");

x = new String( "Email with attachment (3Mbs) "+"\n");

t = new String( "Transmission time in milliseconds = "+xmit+"\n");

b = new String( "Bandwidth for this test in bps = "+eband+"\n\n");

es = new String( h + x + t + b );

 

/* Computer monitor (1000 x 1000 pixels & 24 bit color) test */

millib = System.currentTimeMillis();

for (int i = 0; i < 4043; i++ ) {

dos.write( pdata, 0, len );

}

dos.flush();

millie = System.currentTimeMillis();

xmit = millie - millib;

float cband = (float) ( ( ( 4043.0 * ( lpdata + 26.0 ) * 8.0 ) * 1000.0 ) / xmit );

 

x = new String( "Computer Screen Image (3MBs) "+"\n");

t = new String( "Transmission time in milliseconds = "+xmit+"\n");

b = new String( "Bandwidth for this test in bps = "+cband+"\n\n");

is = new String( x + t + b );

 

/* File Transfer test (1MB) */

millib = System.currentTimeMillis();

for (int i = 0; i < 1348; i++ ) {

dos.write( pdata, 0, len );

}

dos.flush();

millie = System.currentTimeMillis();

xmit = millie - millib;

float fband = (float) ( ( ( 1348.0 * ( lpdata + 26.0 ) * 8.0 ) * 1000.0 ) / xmit );

 

x = new String( "File transfer test (1MB) "+"\n");

t = new String( "Transmission time in milliseconds = "+xmit+"\n");

b = new String( "Bandwidth for this test in bps = "+fband+"\n\n");

fs = new String( x + t + b );

 

/* Multi-Media test (2Mbs) */

millib = System.currentTimeMillis();

for (int i = 0; i < 336; i++ ) {

dos.write( pdata, 0, len );

}

dos.flush();

millie = System.currentTimeMillis();

xmit = millie - millib;

float mband = (float) ( ( ( 336.0 * ( lpdata + 26.0 ) * 8.0 ) * 1000.0 ) / xmit );

 

x = new String( "Multi-Media test (2Mbs - acceptable delay 50ms - 500ms) "+"\n");

t = new String( "Transmission time in milliseconds = "+xmit+"\n");

b = new String( "Bandwidth for this test in bps = "+mband+"\n\n");

ms = new String( x + t + b );

 

/* WWW http access test */

millib = System.currentTimeMillis();

for (int i = 0; i < 108; i++ ) {

dos.write( pdata, 0, len );

}

dos.flush();

millie = System.currentTimeMillis();

xmit = millie - millib;

float wband = (float) ( ( ( 108.0 * ( lpdata + 26.0 ) * 8.0 ) * 1000.0 ) / xmit );

 

x = new String( "WWW http access test (80KB) "+"\n");

t = new String( "Transmission time in milliseconds = "+xmit+"\n");

b = new String( "Bandwidth for this test in bps = "+wband+"\n\n");

hs = new String( x + t + b );

 

s = new String ( es + fs + hs + is + ms );

 

socket.close();

} catch( IOException e ) {

System.out.println( "ERROR: IO Exception" );

} finally {

if( s == null || s.length() == 0 ) {

s = new String( "Sorry, not logged in..."+"\n" );

}

 

return s;

}

}

 

/* activated when user selects "quit" button */

 

public synchronized boolean handleEvent( Event e ) {

if( e.id == Event.WINDOW_DESTROY ) {

System.exit( 0 );

return true;

}

else {

return super.handleEvent( e );

}

}

 

/* handles the user's button selections and transfers control

* to the appropriate object.

*/

 

public boolean action( Event evt, Object obj ) {

if( evt.target instanceof Button ) {

String label = ( String )obj;

 

if( label.equals( "Quit" )) {

System.exit( 0 );

} else if( label.equals( "Test" )) {

try {

infoBox.Print( goTest(inputField.getText()));

} catch( UnknownHostException e ) {

System.out.println( "ERROR: Unknown Host" );

}

} else if( label.equals( "Applications" )) {

try {

infoBox.Print( goAppl(inputField.getText()));

} catch( UnknownHostException e ) {

System.out.println( "ERROR: Unknown Host" );

}

} else if( label.equals( "Host" )) {

try {

infoBox.Print( goHost(inputField.getText()));

} catch( UnknownHostException e ) {

System.out.println( "ERROR: Unknown Host" );

}

} else if ( label.equals( "Clear" )) {

infoBox.setText( "" );

}

}

 

return true;

}

 

/* control is transferred here by the browser after it

* has loaded the applet and checked it for valid code.

*

* the "HOST" parameter is retrieved and stored as the

* default host, then the panel and its buttons are displayed.

*

* the applet then waits for the user to select a function!

*/

 

public void init () {

 

shost = getParameter("HOST");

setBackground( Color.lightGray );

setLayout( new BorderLayout() );

 

inputField = new InputField();

add( "North", inputField );

 

infoBox = new InfoBox();

add( "Center", infoBox );

add( "South", new Controls() );

 

 

show();

 

infoBox.Print( "Default test host = "+ shost + "\n" );

infoBox.Print( "Enter packet size before testing" + "\n" );

 

}

 

 

}

 

 

 

Appendix B - Sample Test Session

 

Packet 1 captured at 03/14/97 03:47:35 PM; Packet size is 60(0x3c)bytes

Relative time: 000:00:02.266

Delta time: 000:00:01.936

Ethernet Version II

Address: 00-00-0C-0E-4F-9A --->08-00-20-0A-61-F9

Ethernet II Protocol Type: IP

Internet Protocol

Version(MSB 4 bits): 4

Header length(LSB 4 bits): 5 (32-bit word)

Service type: 0x00

000. .... = 0 - Routine

...0 .... = Normal delay

.... 0... = Normal throughput

.... .0.. = Normal reliability

Total length: 44 (Octets)

Fragment ID: 36272

Flags summary: 0x40

0... .... = Reserved

.1.. .... = Flags: Do not fragment

..0. .... = Last fragment

Fragment offset(LSB 13 bits): 0 (0x00)

Time to live: 31 seconds/hops

IP protocol type: TCP (0x06)

Checksum: 0x1EF4

IP address 192.19.6.16 ->192.249.40.11

No option

IP Transmission Control Protocol

Port 3255 ---> Discard

Sequence Number: 960525810

Acknowledgement Number: 0

Header Length(MSB 4 bits): 6 (32-bit word)

Reserved(LSB 4 bits): 0

Code: 0x02

RES: 00.. .... = Reserved

URG: ..0. .... = Urgent Pointer is Invalid

ACK: ...0 .... = Acknowledgement Field is Invalid

PSH: .... 0... = No push Requested

RST: .... .0.. = No reset Connection

SYN: .... ..1. = Synchronize Sequence Number

FIN: .... ...0 = More Data From Sender

Window: 8192

Checksum: 0x0D0C

Urgent Pointer: 0x0000

TCP Option: 020405B4

 

Packet 2 captured at 03/14/97 03:47:35 PM; Packet size is 60(0x3c)bytes

Relative time: 000:00:02.266

Delta time: 000:00:00.000

Ethernet Version II

Address: 08-00-20-0A-61-F9 --->FF-FF-FF-FF-FF-FF

Ethernet II Protocol Type: ARP

IP Address Resolution Protocol

Hardware Type: 1 (Ethernet)

Protocol Type: 800

Hardware Address Length: 6

Protocol Address Length: 4

Operations: ARP Request

Source Hardware Address: 08-00-20-0A-61-F9

IP Source Address: 192.249.40.11

Destination Hardware Address: FF-FF-FF-FF-FF-FF

IP Destination Address: 192.249.40.1

 

Packet 3 captured at 03/14/97 03:47:35 PM; Packet size is 60(0x3c)bytes

Relative time: 000:00:02.270

Delta time: 000:00:00.004

Ethernet Version II

Address: 00-00-0C-0E-4F-9A --->08-00-20-0A-61-F9

Ethernet II Protocol Type: ARP

IP Address Resolution Protocol

Hardware Type: 1 (Ethernet)

Protocol Type: 800

Hardware Address Length: 6

Protocol Address Length: 4

Operations: ARP Response

Source Hardware Address: 00-00-0C-0E-4F-9A

IP Source Address: 192.249.40.1

Destination Hardware Address: 08-00-20-0A-61-F9

IP Destination Address: 192.249.40.11

 

Packet 4 captured at 03/14/97 03:47:35 PM; Packet size is 60(0x3c)bytes

Relative time: 000:00:02.270

Delta time: 000:00:00.000

Ethernet Version II

Address: 08-00-20-0A-61-F9 --->00-00-0C-0E-4F-9A

Ethernet II Protocol Type: IP

Internet Protocol

Version(MSB 4 bits): 4

Header length(LSB 4 bits): 5 (32-bit word)

Service type: 0x00

000. .... = 0 - Routine

...0 .... = Normal delay

.... 0... = Normal throughput

.... .0.. = Normal reliability

Total length: 44 (Octets)

Fragment ID: 49699

Flags summary: 0x40

0... .... = Reserved

.1.. .... = Flags: Do not fragment

..0. .... = Last fragment

Fragment offset(LSB 13 bits): 0 (0x00)

Time to live: 255 seconds/hops

IP protocol type: TCP (0x06)

Checksum: 0x0A80

IP address 192.249.40.11 ->192.19.6.16

No option

IP Transmission Control Protocol

Port Discard ---> 3255

Sequence Number: 1609397920

Acknowledgement Number: 960525811

Header Length(MSB 4 bits): 6 (32-bit word)

Reserved(LSB 4 bits): 0

Code: 0x12

RES: 00.. .... = Reserved

URG: ..0. .... = Urgent Pointer is Invalid

ACK: ...1 .... = Acknowledgement Field is Valid

PSH: .... 0... = No push Requested

RST: .... .0.. = No reset Connection

SYN: .... ..1. = Synchronize Sequence Number

FIN: .... ...0 = More Data From Sender

Window: 8760

Checksum: 0x3435

Urgent Pointer: 0x0000

TCP Option: 020405B4

 

Packet 5 captured at 03/14/97 03:47:35 PM; Packet size is 60(0x3c)bytes

Relative time: 000:00:02.270

Delta time: 000:00:00.000

Ethernet Version II

Address: 00-00-0C-0E-4F-9A --->08-00-20-0A-61-F9

Ethernet II Protocol Type: IP

Internet Protocol

Version(MSB 4 bits): 4

Header length(LSB 4 bits): 5 (32-bit word)

Service type: 0x00

000. .... = 0 - Routine

...0 .... = Normal delay

.... 0... = Normal throughput

.... .0.. = Normal reliability

Total length: 40 (Octets)

Fragment ID: 36528

Flags summary: 0x40

0... .... = Reserved

.1.. .... = Flags: Do not fragment

..0. .... = Last fragment

Fragment offset(LSB 13 bits): 0 (0x00)

Time to live: 31 seconds/hops

IP protocol type: TCP (0x06)

Checksum: 0x1DF8

IP address 192.19.6.16 ->192.249.40.11

No option

IP Transmission Control Protocol

Port 3255 ---> Discard

Sequence Number: 960525811

Acknowledgement Number: 1609397921

Header Length(MSB 4 bits): 5 (32-bit word)

Reserved(LSB 4 bits): 0

Code: 0x10

RES: 00.. .... = Reserved

URG: ..0. .... = Urgent Pointer is Invalid

ACK: ...1 .... = Acknowledgement Field is Valid

PSH: .... 0... = No push Requested

RST: .... .0.. = No reset Connection

SYN: .... ..0. = No synchronize Sequence Number

FIN: .... ...0 = More Data From Sender

Window: 8760

Checksum: 0x4BF2

Urgent Pointer: 0x0000

 

Packet 6 captured at 03/14/97 03:47:35 PM; Packet size is 1054(0x41e)bytes

Relative time: 000:00:02.307

Delta time: 000:00:00.037

Ethernet Version II

Address: 00-00-0C-0E-4F-9A --->08-00-20-0A-61-F9

Ethernet II Protocol Type: IP

Internet Protocol

Version(MSB 4 bits): 4

Header length(LSB 4 bits): 5 (32-bit word)

Service type: 0x00

000. .... = 0 - Routine

...0 .... = Normal delay

.... 0... = Normal throughput

.... .0.. = Normal reliability

Total length: 1040 (Octets)

Fragment ID: 36784

Flags summary: 0x40

0... .... = Reserved

.1.. .... = Flags: Do not fragment

..0. .... = Last fragment

Fragment offset(LSB 13 bits): 0 (0x00)

Time to live: 31 seconds/hops

IP protocol type: TCP (0x06)

Checksum: 0x1910

IP address 192.19.6.16 ->192.249.40.11

No option

IP Transmission Control Protocol

Port 3255 ---> Discard

Sequence Number: 960525811

Acknowledgement Number: 1609397921

Header Length(MSB 4 bits): 5 (32-bit word)

Reserved(LSB 4 bits): 0

Code: 0x18

RES: 00.. .... = Reserved

URG: ..0. .... = Urgent Pointer is Invalid

ACK: ...1 .... = Acknowledgement Field is Valid

PSH: .... 1... = Push Requested

RST: .... .0.. = No reset Connection

SYN: .... ..0. = No synchronize Sequence Number

FIN: .... ...0 = More Data From Sender

Window: 8760

Checksum: 0x4802

Urgent Pointer: 0x0000

Discard

Data:

0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

00a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

00b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

01c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

01d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

02a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

02b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

02c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

02d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

02e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

02f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

0390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

03a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

03b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

03c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

03d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

03e0: 00 00 00 00 00 00 00 00 | ........

 

Packet 7 captured at 03/14/97 03:47:35 PM; Packet size is 60(0x3c)bytes

Relative time: 000:00:02.362

Delta time: 000:00:00.055

Ethernet Version II

Address: 08-00-20-0A-61-F9 --->00-00-0C-0E-4F-9A

Ethernet II Protocol Type: IP

Internet Protocol

Version(MSB 4 bits): 4

Header length(LSB 4 bits): 5 (32-bit word)

Service type: 0x00

000. .... = 0 - Routine

...0 .... = Normal delay

.... 0... = Normal throughput

.... .0.. = Normal reliability

Total length: 40 (Octets)

Fragment ID: 49700

Flags summary: 0x40

0... .... = Reserved

.1.. .... = Flags: Do not fragment

..0. .... = Last fragment

Fragment offset(LSB 13 bits): 0 (0x00)

Time to live: 255 seconds/hops

IP protocol type: TCP (0x06)

Checksum: 0x0A83

IP address 192.249.40.11 ->192.19.6.16

No option

IP Transmission Control Protocol

Port Discard ---> 3255

Sequence Number: 1609397921

Acknowledgement Number: 960526811

Header Length(MSB 4 bits): 5 (32-bit word)

Reserved(LSB 4 bits): 0

Code: 0x10

RES: 00.. .... = Reserved

URG: ..0. .... = Urgent Pointer is Invalid

ACK: ...1 .... = Acknowledgement Field is Valid

PSH: .... 0... = No push Requested

RST: .... .0.. = No reset Connection

SYN: .... ..0. = No synchronize Sequence Number

FIN: .... ...0 = More Data From Sender

Window: 8760

Checksum: 0x480A

Urgent Pointer: 0x0000

 

Packet 8 captured at 03/14/97 03:47:35 PM; Packet size is 60(0x3c)bytes

Relative time: 000:00:02.376

Delta time: 000:00:00.014

Ethernet Version II

Address: 00-00-0C-0E-4F-9A --->08-00-20-0A-61-F9

Ethernet II Protocol Type: IP

Internet Protocol

Version(MSB 4 bits): 4

Header length(LSB 4 bits): 5 (32-bit word)

Service type: 0x00

000. .... = 0 - Routine

...0 .... = Normal delay

.... 0... = Normal throughput

.... .0.. = Normal reliability

Total length: 40 (Octets)

Fragment ID: 37040

Flags summary: 0x40

0... .... = Reserved

.1.. .... = Flags: Do not fragment

..0. .... = Last fragment

Fragment offset(LSB 13 bits): 0 (0x00)

Time to live: 31 seconds/hops

IP protocol type: TCP (0x06)

Checksum: 0x1BF8

IP address 192.19.6.16 ->192.249.40.11

No option

IP Transmission Control Protocol

Port 3255 ---> Discard

Sequence Number: 960526811

Acknowledgement Number: 1609397921

Header Length(MSB 4 bits): 5 (32-bit word)

Reserved(LSB 4 bits): 0

Code: 0x11

RES: 00.. .... = Reserved

URG: ..0. .... = Urgent Pointer is Invalid

ACK: ...1 .... = Acknowledgement Field is Valid

PSH: .... 0... = No push Requested

RST: .... .0.. = No reset Connection

SYN: .... ..0. = No synchronize Sequence Number

FIN: .... ...1 = No more Data From Sender

Window: 8760

Checksum: 0x4809

Urgent Pointer: 0x0000

 

Packet 9 captured at 03/14/97 03:47:35 PM; Packet size is 60(0x3c)bytes

Relative time: 000:00:02.376

Delta time: 000:00:00.000

Ethernet Version II

Address: 08-00-20-0A-61-F9 --->00-00-0C-0E-4F-9A

Ethernet II Protocol Type: IP

Internet Protocol

Version(MSB 4 bits): 4

Header length(LSB 4 bits): 5 (32-bit word)

Service type: 0x00

000. .... = 0 - Routine

...0 .... = Normal delay

.... 0... = Normal throughput

.... .0.. = Normal reliability

Total length: 40 (Octets)

Fragment ID: 49701

Flags summary: 0x40

0... .... = Reserved

.1.. .... = Flags: Do not fragment

..0. .... = Last fragment

Fragment offset(LSB 13 bits): 0 (0x00)

Time to live: 255 seconds/hops

IP protocol type: TCP (0x06)

Checksum: 0x0A82

IP address 192.249.40.11 ->192.19.6.16

No option

IP Transmission Control Protocol

Port Discard ---> 3255

Sequence Number: 1609397921

Acknowledgement Number: 960526812

Header Length(MSB 4 bits): 5 (32-bit word)

Reserved(LSB 4 bits): 0

Code: 0x10

RES: 00.. .... = Reserved

URG: ..0. .... = Urgent Pointer is Invalid

ACK: ...1 .... = Acknowledgement Field is Valid

PSH: .... 0... = No push Requested

RST: .... .0.. = No reset Connection

SYN: .... ..0. = No synchronize Sequence Number

FIN: .... ...0 = More Data From Sender

Window: 8760

Checksum: 0x4809

Urgent Pointer: 0x0000

 

Packet 10 captured at 03/14/97 03:47:35 PM; Packet size is 60(0x3c)bytes

Relative time: 000:00:02.376

Delta time: 000:00:00.000

Ethernet Version II

Address: 08-00-20-0A-61-F9 --->00-00-0C-0E-4F-9A

Ethernet II Protocol Type: IP

Internet Protocol

Version(MSB 4 bits): 4

Header length(LSB 4 bits): 5 (32-bit word)

Service type: 0x00

000. .... = 0 - Routine

...0 .... = Normal delay

.... 0... = Normal throughput

.... .0.. = Normal reliability

Total length: 40 (Octets)

Fragment ID: 49702

Flags summary: 0x40

0... .... = Reserved

.1.. .... = Flags: Do not fragment

..0. .... = Last fragment

Fragment offset(LSB 13 bits): 0 (0x00)

Time to live: 255 seconds/hops

IP protocol type: TCP (0x06)

Checksum: 0x0A81

IP address 192.249.40.11 ->192.19.6.16

No option

IP Transmission Control Protocol

Port Discard ---> 3255

Sequence Number: 1609397921

Acknowledgement Number: 960526812

Header Length(MSB 4 bits): 5 (32-bit word)

Reserved(LSB 4 bits): 0

Code: 0x11

RES: 00.. .... = Reserved

URG: ..0. .... = Urgent Pointer is Invalid

ACK: ...1 .... = Acknowledgement Field is Valid

PSH: .... 0... = No push Requested

RST: .... .0.. = No reset Connection

SYN: .... ..0. = No synchronize Sequence Number

FIN: .... ...1 = No more Data From Sender

Window: 8760

Checksum: 0x4808

Urgent Pointer: 0x0000

 

Packet 11 captured at 03/14/97 03:47:35 PM; Packet size is 60(0x3c)bytes

Relative time: 000:00:02.389

Delta time: 000:00:00.013

Ethernet Version II

Address: 00-00-0C-0E-4F-9A --->08-00-20-0A-61-F9

Ethernet II Protocol Type: IP

Internet Protocol

Version(MSB 4 bits): 4

Header length(LSB 4 bits): 5 (32-bit word)

Service type: 0x00

000. .... = 0 - Routine

...0 .... = Normal delay

.... 0... = Normal throughput

.... .0.. = Normal reliability

Total length: 40 (Octets)

Fragment ID: 37296

Flags summary: 0x40

0... .... = Reserved

.1.. .... = Flags: Do not fragment

..0. .... = Last fragment

Fragment offset(LSB 13 bits): 0 (0x00)

Time to live: 31 seconds/hops

IP protocol type: TCP (0x06)

Checksum: 0x1AF8

IP address 192.19.6.16 ->192.249.40.11

No option

IP Transmission Control Protocol

Port 3255 ---> Discard

Sequence Number: 960526812

Acknowledgement Number: 1609397922

Header Length(MSB 4 bits): 5 (32-bit word)

Reserved(LSB 4 bits): 0

Code: 0x10

RES: 00.. .... = Reserved

URG: ..0. .... = Urgent Pointer is Invalid

ACK: ...1 .... = Acknowledgement Field is Valid

PSH: .... 0... = No push Requested

RST: .... .0.. = No reset Connection

SYN: .... ..0. = No synchronize Sequence Number

FIN: .... ...0 = More Data From Sender

Window: 8760

Checksum: 0x4808

Urgent Pointer: 0x0000

 

 

 

Appendix C - Test Results

 

 

10:30am April 2, 1997 - Catalyst 3000 shared 10Mbs port-to-port test

 

Default test host = vger.res.utc.com

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 490

Bandwidth for this test in bps = 1.02857e+006

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 500

Bandwidth for this test in bps = 1.008e+006

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 550

Bandwidth for this test in bps = 916364

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 550

Bandwidth for this test in bps = 916364

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 550

Bandwidth for this test in bps = 916364

 

Transmitted packet size in bytes = 526

Transmission time in milliseconds = 1370

Bandwidth for this test in bps = 1.53577e+006

 

Transmitted packet size in bytes = 526

Transmission time in milliseconds = 1370

Bandwidth for this test in bps = 1.53577e+006

 

Transmitted packet size in bytes = 526

Transmission time in milliseconds = 1370

Bandwidth for this test in bps = 1.53577e+006

 

Transmitted packet size in bytes = 526

Transmission time in milliseconds = 1320

Bandwidth for this test in bps = 1.59394e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 1760

Bandwidth for this test in bps = 1.76364e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 1760

Bandwidth for this test in bps = 1.76364e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 1760

Bandwidth for this test in bps = 1.76364e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 1750

Bandwidth for this test in bps = 1.77371e+006

 

****** Applications Test ******

Email with attachment (3Mbs)

Transmission time in milliseconds = 1760

Bandwidth for this test in bps = 1.76291e+006

 

File transfer test (1MB)

Transmission time in milliseconds = 4670

Bandwidth for this test in bps = 1.77347e+006

 

WWW http access test (80KB)

Transmission time in milliseconds = 330

Bandwidth for this test in bps = 2.01076e+006

 

Computer Screen Image (3MBs)

Transmission time in milliseconds = 13890

Bandwidth for this test in bps = 1.78835e+006

 

Multi-Media test (2Mbs - acceptable delay 50ms - 500ms)

Transmission time in milliseconds = 1210

Bandwidth for this test in bps = 1.7061e+006

 

2:20 PM April 2, 1997 - Catalyst 2800 dedicated 10Mbs

 

Default test host = vger.res.utc.com

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 550

Bandwidth for this test in bps = 916364

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 500

Bandwidth for this test in bps = 1.008e+006

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 550

Bandwidth for this test in bps = 916364

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 550

Bandwidth for this test in bps = 916364

 

Transmitted packet size in bytes = 526

Transmission time in milliseconds = 1210

Bandwidth for this test in bps = 1.73884e+006

 

Transmitted packet size in bytes = 526

Transmission time in milliseconds = 1210

Bandwidth for this test in bps = 1.73884e+006

 

Transmitted packet size in bytes = 526

Transmission time in milliseconds = 1260

Bandwidth for this test in bps = 1.66984e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 2190

Bandwidth for this test in bps = 1.41735e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 1370

Bandwidth for this test in bps = 2.26569e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 1700

Bandwidth for this test in bps = 1.82588e+006

 

****** Applications Test ******

Email with attachment (3Mbs)

Transmission time in milliseconds = 1710

Bandwidth for this test in bps = 1.81446e+006

 

File transfer test (1MB)

Transmission time in milliseconds = 4340

Bandwidth for this test in bps = 1.90832e+006

 

WWW http access test (80KB)

Transmission time in milliseconds = 330

Bandwidth for this test in bps = 2.01076e+006

 

Computer Screen Image (3MBs)

Transmission time in milliseconds = 26300

Bandwidth for this test in bps = 944494

 

Multi-Media test (2Mbs - acceptable delay 50ms - 500ms)

Transmission time in milliseconds = 1100

Bandwidth for this test in bps = 1.87671e+006

 

April 7, 1997 1:55 PM - Catalyst 3000 10 Mbs port-to-port test

 

Default test host = vger.res.utc.com

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 610

Bandwidth for this test in bps = 826230

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 550

Bandwidth for this test in bps = 916364

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 550

Bandwidth for this test in bps = 916364

 

Transmitted packet size in bytes = 526

Transmission time in milliseconds = 1370

Bandwidth for this test in bps = 1.53577e+006

 

Transmitted packet size in bytes = 526

Transmission time in milliseconds = 1370

Bandwidth for this test in bps = 1.53577e+006

 

Transmitted packet size in bytes = 526

Transmission time in milliseconds = 1370

Bandwidth for this test in bps = 1.53577e+006

 

****** Applications Test ******

Email with attachment (3Mbs)

Transmission time in milliseconds = 1810

Bandwidth for this test in bps = 1.71421e+006

 

File transfer test (1MB)

Transmission time in milliseconds = 12850

Bandwidth for this test in bps = 644522

 

WWW http access test (80KB)

Transmission time in milliseconds = 330

Bandwidth for this test in bps = 2.01076e+006

 

Computer Screen Image (3MBs)

Transmission time in milliseconds = 13350

Bandwidth for this test in bps = 1.86069e+006

 

Multi-Media test (2Mbs - acceptable delay 50ms - 500ms)

Transmission time in milliseconds = 9830

Bandwidth for this test in bps = 210009

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 2090

Bandwidth for this test in bps = 2.72919e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1980

Bandwidth for this test in bps = 2.88081e+006

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 610

Bandwidth for this test in bps = 826230

 

Transmitted packet size in bytes = 126

Transmission time in milliseconds = 550

Bandwidth for this test in bps = 916364

 

9:40 AM April 15, 1997 - Catalyst 2800 Fast Ethernet repeater

 

Default test host = vger.res.utc.com

172.31.1.1

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1302

Bandwidth for this test in bps = 4.38095e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1332

Bandwidth for this test in bps = 4.28228e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 2424

Bandwidth for this test in bps = 2.35314e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1362

Bandwidth for this test in bps = 4.18796e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1472

Bandwidth for this test in bps = 3.875e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1332

Bandwidth for this test in bps = 4.28228e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1342

Bandwidth for this test in bps = 4.25037e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1312

Bandwidth for this test in bps = 4.34756e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1332

Bandwidth for this test in bps = 4.28228e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 570

Bandwidth for this test in bps = 5.44561e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 601

Bandwidth for this test in bps = 5.16473e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 551

Bandwidth for this test in bps = 5.63339e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 630

Bandwidth for this test in bps = 4.92698e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 711

Bandwidth for this test in bps = 4.36568e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 681

Bandwidth for this test in bps = 4.558e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 681

Bandwidth for this test in bps = 4.558e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 621

Bandwidth for this test in bps = 4.99839e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 601

Bandwidth for this test in bps = 5.16473e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 581

Bandwidth for this test in bps = 5.34251e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 561

Bandwidth for this test in bps = 5.53298e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 611

Bandwidth for this test in bps = 5.0802e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 661

Bandwidth for this test in bps = 4.69592e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 581

Bandwidth for this test in bps = 5.34251e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 621

Bandwidth for this test in bps = 4.99839e+006

 

vger.res.utc.com

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 451

Bandwidth for this test in bps = 6.88248e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 441

Bandwidth for this test in bps = 7.03855e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 450

Bandwidth for this test in bps = 6.89778e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 440

Bandwidth for this test in bps = 7.05455e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 801

Bandwidth for this test in bps = 3.87516e+006

 

172.31.1.1

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 581

Bandwidth for this test in bps = 5.34251e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 611

Bandwidth for this test in bps = 5.0802e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 601

Bandwidth for this test in bps = 5.16473e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 570

Bandwidth for this test in bps = 5.44561e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 551

Bandwidth for this test in bps = 5.63339e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 591

Bandwidth for this test in bps = 5.25212e+006

 

9:55 AM April 15, 1997 - Catalyst 2800 Fast Ethernet repeater

 

carbon

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 521

Bandwidth for this test in bps = 5.95777e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 590

Bandwidth for this test in bps = 5.26102e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 581

Bandwidth for this test in bps = 5.34251e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 520

Bandwidth for this test in bps = 5.96923e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 701

Bandwidth for this test in bps = 4.42796e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 591

Bandwidth for this test in bps = 5.25212e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 611

Bandwidth for this test in bps = 5.0802e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 621

Bandwidth for this test in bps = 4.99839e+006

 

Transmitted packet size in bytes = 776

Transmission time in milliseconds = 671

Bandwidth for this test in bps = 4.62593e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1322

Bandwidth for this test in bps = 4.31467e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 901

Bandwidth for this test in bps = 6.33074e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1242

Bandwidth for this test in bps = 4.59259e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1022

Bandwidth for this test in bps = 5.58121e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1272

Bandwidth for this test in bps = 4.48428e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1102

Bandwidth for this test in bps = 5.17604e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 962

Bandwidth for this test in bps = 5.92931e+006

 

Transmitted packet size in bytes = 1426

Transmission time in milliseconds = 1192

Bandwidth for this test in bps = 4.78524e+006

 

****** Applications Test ******

Email with attachment (3Mbs)

Transmission time in milliseconds = 521

Bandwidth for this test in bps = 5.95532e+006

 

File transfer test (1MB)

Transmission time in milliseconds = 1372

Bandwidth for this test in bps = 6.03653e+006

 

WWW http access test (80KB)

Transmission time in milliseconds = 100

Bandwidth for this test in bps = 6.63552e+006

 

Computer Screen Image (3MBs)

Transmission time in milliseconds = 4266

Bandwidth for this test in bps = 5.82283e+006

 

Multi-Media test (2Mbs - acceptable delay 50ms - 500ms)

Transmission time in milliseconds = 310

Bandwidth for this test in bps = 6.6593e+006