[comp.protocols.tcp-ip] TCP-IP Verification Suite

kaigler@ihlpa.ATT.COM (Kaigler) (01/30/88)

Hi All,
    I've sent this message before, so if you've seen it, just ignore it, okay.  I'm
relatively new at working with TCP-IP and would like some information.  I'll be     
testing TCP-IP and VAX, UTS, and 3B2 machines and would like to know if there
exists some sort of test tools which would be of some help.  By the way this is
streams based TCP-IP.  Any information would be greatly appreciated.

                                        Ronnie Kaigler
                                        ihlpa!kaigler
			                IH 1B-232
                                        (312) 979-1762

hrp@ishmael.CRAY.COM (Hal Peterson) (02/01/88)

The TCP/IP community does not have a strong tradition of formal
testing from specifications.  Historically (see RFC-1025, ``TCP and IP
Bake Off''), testing a TCP/IP implementation has meant structured
plugging it in and trying it, with as many other implementations as
possible.

Over the last few years, there has been a movement toward more formal
testing from within the DCA, and they are currently beta testing
(metatesting?) a suite covering every conceivable aspect of all the
MIL-STD protocols: IP, TCP, FTP, TELNET, and SMTP.  The tests are
comprehensive and do find bugs, but require a significant investment
of time and effort to run.

There was a note on the tcp-ip list last year from Bob Jones
(bobj@kauai.mcl.unisys.com) in which he wrote:

    For those who are interested, the DCA is setting up an administrative
    agreement with the National Bureau of Standards to provide for the
    certification of the TCP/IP suite of protocols.  NBS is expected to
    announce for vendors to participate under the National Voluntary
    Laboratory Accreditation Program (NVLAP).  This program is expected
    to be in place sometime in early 1988.  Any questions please call
    DCEC, Jim Tontonoz, 703-437-2038.

This certification would probably involve passing the aforementioned
DCA test suite.
--
Hal Peterson / Cray Research / 1440 Northland Dr. / Mendota Hts, MN  55120
hrp%hall.CRAY.COM@umn-rei-uc.ARPA	ihnp4!cray!hrp	    (612) 681-5884

karn@thumper.bellcore.com (Phil R. Karn) (02/03/88)

> The TCP/IP community does not have a strong tradition of formal
> testing from specifications.  Historically (see RFC-1025, ``TCP and IP
> Bake Off''), testing a TCP/IP implementation has meant structured
> plugging it in and trying it, with as many other implementations as
> possible.

Actually, I think there is a lot to be said for this approach.  Formal
verification is difficult, slow and expensive, while the informal
testing of a new implementation on the real Internet quickly shows
whether it's likely to work in actual use.  The real world has a way of
revealing things that remain stubbornly hidden in the lab.

The TCP/IP experience has shown that finding clear-cut protocol
violations is not difficult. The *real* issues are

a) getting rid of gaps and ambiguities in the specs themselves that can
allow different implementations to "conform" yet not be interoperable, and

b) figuring out how to armtwist the vendor of a broken implementation to
fix it once a problem has been identified.

Formal verification suites attack neither of these problems.

Phil

DCP@QUABBIN.SCRC.SYMBOLICS.COM (David C. Plummer) (02/05/88)

    Date: 2 Feb 88 19:32:51 GMT
    From: thumper!karn@faline.bellcore.com  (Phil R. Karn)

    a) getting rid of gaps and ambiguities in the specs themselves that can
    allow different implementations to "conform" yet not be interoperable, and

You forgot (that goes between a and b):
Convincing a vendor that his implementation is broken.  

I remember when I was testing the TCP I wrote for Symbolics LispMs.  We
were one of the first to use segments with overlapping sequence numbers
in a big way (mostly for telnet).  It didn't work with Unix machines.
The response was "Well, Unix is right, so you must be doing something
wrong."  We still have this problem with Unix TCP/FTP giving a reply
code for some operation, DELETE I think, that is not what the FTP spec
says it should be.  The typical answer from Unix people is "You should
only look at the first digit; the others are secondary information."
And we respond with "The spec says it should return <xyz>."  And it goes
'round and 'round.

    b) figuring out how to armtwist the vendor of a broken implementation to
    fix it once a problem has been identified.

DCP@QUABBIN.SCRC.SYMBOLICS.COM (David C. Plummer) (02/05/88)

    Date: 2 Feb 88 19:32:51 GMT
    From: thumper!karn@faline.bellcore.com  (Phil R. Karn)

    a) getting rid of gaps and ambiguities in the specs themselves that can
    allow different implementations to "conform" yet not be interoperable, and

You forgot (that goes between a and b):
Convincing a vendor that his implementation is broken.  

I remember when I was testing the TCP I wrote for Symbolics LispMs.  We
were one of the first to use segments with overlapping sequence numbers
in a big way (mostly for telnet).  It didn't work with Unix machines.
The response was "Well, Unix is right, so you must be doing something
wrong."  

We then got calls from people trying to communicate between our machines
and Apollo.  Apollo said "We have no trouble talking to Unix machines."

We still have a similar problem with Unix TCP/FTP giving a reply code
for some operation, DELETE I think, that is not what the FTP spec says
it should be.  The typical answer from Unix people is "You should only
look at the first digit; the others are secondary information."  And we
respond with "The spec says it should return <xyz>."  And it goes 'round
and 'round.

I'm not saying we don't occaisionally pass the buck without looking; I'm
just relaying anecdotes of how difficult things can be.

    b) figuring out how to armtwist the vendor of a broken implementation to
    fix it once a problem has been identified.

karn@THUMPER.BELLCORE.COM (Phil R. Karn) (02/05/88)

I agree with you except for the part where you place all of the blame
for the FTP problem on UNIX. The specs say that you should be
conservative in what you send, liberal in what you accept. So in the
case of the FTP reply code, you're *both* at fault -- UNIX for not
generating the correct code, your code for not looking at just the first
digit.

Phil

swanson@EDN-VAX.ARPA (John Swanson) (02/05/88)

Phil,

Having helped produce the verification suite for DoD I can't
keep quiet any longer.  I think you are confusing the tools
with their usage.  First I wonder how much detailed thought went 
into the ad-hoc testing you are talking about.  Are the authors
concerned with compliance to the standards or "getting their
Problem fixed".  When we examined the specifications for each
protocols we documented those descrepancies for DCA and
asked for clarification and factored any response into the 
test suite.  Obviously since the verification suite is a
tool I doubt if it can twist anyones arm.  However, if a vendor
is required to pass the verification suite of tests perhaps
there would not be as many "broken" implementations.  Therefore
I would think those people who really want testing would be
trying to support the NVLAP process the Government is trying
to start up, rather than reinvent the testing wheel.

John

brian@wb6rqn.UUCP (Brian Lloyd) (02/06/88)

Phil,

Although a protocol test suite is not perfect, it will tend to catch
errors before the software is released (hopefully).  Perhaps this will
reduce the amount of ad-hoc testing required.  I agree with you that
there is no test like trial-by-fire but perhaps the VS can shake out the
more flagrant bugs ahead of time.

In any case, I have a feeling that your stuff will get tested against
the suite anyway.

Brian Lloyd, President
Sirius Systems, Inc.
(301) 540-2066
{bellcore, syscad, cp1, irs3, n3dmc}!wb6rqn!brian

chris@GYRE.UMD.EDU (Chris Torek) (02/07/88)

>Although a protocol test suite is not perfect, it will tend to catch
>errors before the software is released (hopefully).

On the other hand, it can also induce the `well we passed the protocol
test suite so if it fails to work it must be your fault' syndrome.  I
think the only cure for this is to state clearly that an implementation
must not only pass the verification tests, but also interoperate with
other such implementations, and that the end users reserve the right
to change the test suite as needed and retest.

>Brian Lloyd, President
>Sirius Systems, Inc.

Share and enjoy,
Share and enjoy,
Journey though life with a plastic boy
Or girl by your side,
Let your pal be your guide. . . .

(sorry)

Chris