The Sniffer[1] was a computer network packet and protocol analyzer developed and first sold in 1986 by Network General Corporation[2] of Mountain View, CA. By 1994, the Sniffer had become the market leader[3] in high-end protocol analyzers. According to SEC 10-K filings[4][5][6] and corporate annual reports,[7] between 1986 and March 1997 about $933M worth of Sniffers and related products and services had been sold as tools for network managers and developers.
The Sniffer was the predecessor of several generations of network protocol analyzers, of which the current most popular is Wireshark.
Background
The Sniffer was the first product of Network General Corporation, founded on May 13, 1986[8][9] by Harry Saal and Len Shustek to develop and market network protocol analyzers. The inspiration was an internal test tool that had been developed within Nestar Systems,[10] a personal computer networking company founded in October 1978 by Saal and Shustek along with Jim Hinds and Nick Fortis. In 1982, engineers John Rowlands and Chris Reed at Nestar’s UK subsidiary Zynar Ltd developed an ARCNET promiscuous packet receiver and analyzer called TART (“Transmit and Receive Totaliser”) for use as an internal engineering test tool. It combined an IBM PC with custom hardware and software written in a combination of BASIC and 8086 assembly code. When Nestar was acquired by Digital Switch Corporation (now DSC Communications) of Plano, Texas in 1986,[11] Saal and Shustek received the rights to TART.
At Network General, Saal and Shustek initially sold TART as the “R-4903 ARCNET Line Analyzer (‘The Sniffer’)”.[12] They then reengineered TART for IBM’s Token Ring network hardware, created a different user interface with software written in C, and began selling it as The Sniffer™ in December 1986.[13] The company had four employees at the end of that year.
In April 1987 the company released an Ethernet version of the Sniffer,[14][15] and in October, versions for ARCNET, StarLAN, and IBM PC Network Broadband. Protocol interpreters were written for about 100 network protocols at various levels of the protocol stack, and customers were given the ability to write their own interpreters. The product line gradually expanded to include the Distributed Sniffer System[16] for multiple remote network segments, the Expert Sniffer[17] for advanced problem diagnosis, and the Watchdog[18] for simple network monitoring.
Development
Nestar ARCNET Sniffer
IBM PC ARCNET Sniffer board
The ARCNET Sniffer developed as an internal test tool by Zynar, used the IBM PC ARCNET Network Interface Card developed by Nestar for the PLAN networking systems. That board used the COM9026 integrated ARCNET controller from Standard Microsystems Corporation, which had been developed in collaboration with Datapoint.
There was no promiscuous mode in the SMC chip that would allow all packets to be received regardless of the destination address. So to create the Sniffer, a daughterboard[19] was developed that intercepted the receive data line to the chip and manipulated the data so that every packet looked like a broadcast and was received by the chip.
IBM PC ARCNET Sniffer daughterboard potted module
Since the ability to receive all packets was viewed as a violation of network privacy, the circuitry implementing it was kept secret, and the daughterboard was potted in black epoxy to discourage reverse-engineering.
The source code of the original TART/Sniffer BASIC and assembler program is available on GitHub.[20]
Network General Sniffer
Token-Ring Sniffer, 1986
The Sniffer was a promiscuous mode packet receiver, which means it received a copy of all network packets without regard to what computer they were addressed to. The packets were filtered, analyzed using what is now sometimes called deep packet inspection, and stored for later examination.
The Sniffer was implemented above Microsoft’s MS-DOS operating system, and used a 40-line 80-character text-only display. The first version, the PA-400 protocol analyzer for Token-Ring networks,[21] was released on a Compaq Portable II “luggable” computer that had an Intel 80286 processor, 640 KB of RAM, a 20 MB internal hard disk, a 5+1⁄4-inch floppy disk drive, and a 9” monochrome CRT screen. The retail price of the Sniffer in unit quantities was $19,995.[22]
packets are captured, stored, counted, and summarized
filters control which packets are captured
triggers control when capture should stop, perhaps because a sought-after network error condition had occurred
“display”, in which
packets are analyzed and interpreted
filters control which packets are displayed
options control which aspects of the packets are displayed
Navigation of the extensive menu system on the character-mode display was through a variation of Miller columns that were originally created by Mark S. Miller at Datapoint Corporation for their file browser. As the Sniffer manual described, “The screen shows you three panels, arranged from left to right. Immediately to the left of your current (highlighted) position is the node you just came from. Above and below you in the center panel are alternative nodes that are also reachable from the node to your left… To your right are nodes reachable from the node you're now on.”
Sniffer menu navigation
Pressing F10 initiated capture and a real-time display of activity.[21]
Example sniffer screen during packet capture
When capture ended, packets were analyzed and displayed in one or more of the now-standard three synchronized vertical windows: multiple packet summary, single packet decoded detail, and raw numerical packet data. Highlighting linked the selected items in each window.
In the multiple-packet summary, the default display was of information at the highest level of the protocol stack present in that packet. Other displays could be requested using the “display options” menu.
The translation of data at a particular level of the network protocol stack into user-friendly text was the job of a protocol interpreter (PI). Network General provided over 100 PIs[23] for commonly used protocols of the day:
3COM 3+
AppleTalk ADSP
AppleTalk AFP
AppleTalk ARP
AppleTalk ASP
AppleTalk ATP
AppleTalk DDP
AppleTalk ECHO
AppleTalk KSP
AppleTalk LAP
AppleTalk NBP
AppleTalk PAP
AppleTalk RTMP
AppleTalk ZIP
ARP
AT&T
Banyan VINES AFRP
Banyan VINES Echo
Banyan VINES File Svc
Banyan VINES FRP
Banyan VINES FTP
Banyan VINES IP
Banyan VINES LLC
Banyan VINES Loopback
Banyan VINES Matchmaker
Banyan VINES Ntwk Mgr
Banyan VINES SPP
Banyan VINES StreetTalk
Banyan VINES Svr Svc
Banyan VINES Talk
BOOTP
Bridge bridge mgmt
Bridge CS-1
Bridge terminal srvr
Chaosnet
ComDesign
Cronus direct
Cronus VLN
Datapoint DLL
Datapoint RCL
Datapoint RIO
Datapoint RMS
DEC 911
DEC bridge mgmt
DEC LAN monitor
DEC LAST
DEC LAVC
DEC NetBIOS
DECNET CTERM
DECNET DAP
DECNET DRP
DECNET FOUND
DECNET LAT
DECNET LAVC
DECNET MOP
DECNET NICE
DECNET NSP
DECNET SCP
DNS
ECMA internet
EGP
Excelan
FTP
GGP
IBM SMB
IBM SNA
ICMP
IONET VCS
IONET VCS CMND
IONET VCS DATA
IONET VCS TRANS
IP
ISO ACSE
ISO ASN.1
ISO CMIP
ISO Network
ISO PPP
ISO ROSE
ISO Session
ISO SMTP
ISO Transport
LOOP
Loopback
Micom test
NBS internet
Nestar ARCnet
Nestar PlanSeries
NetBIOS
NetBIOS TCP
Novell Netware
PUP address translation
RPL
RUnix
SMTP
SNAP
Sun MOUNT
Sun NFS
Sun PMAP
Sun RPC
Sun RSTAT
Sun YP
Symbolics private
TCP
Telnet
TFTP
TRING DLC
TRING LLC
TRING MAC
TRING RI
U-B
Vitalink bridge mgmt
X.25
X.25 level 3
X.75 internet
Xerox BOOTP
Xerox EGP
Xerox GGP
Xerox ND
Xerox PUP
Xerox PUP ARP
Xerox RIP
Xerox TFTP
Xerox XNS
Xyplex
Decoding higher protocol levels often required the interpreter to maintain state information about connections so that subsequent packets could be properly interpreted. That was implemented with a combination of locally cached data within the protocol interpreter and the ability to look back at earlier packets stored in the capture buffer.
Sniffer customers could write their own protocol interpreters to decode new or rare protocols not supported by Network General. Interpreters were written in C and linked with the rest of the Sniffer modules to create a new executable program. The procedure for creating new PIs was documented in April 1987 as part of Sniffer version 1.20.[24]
In addition to supporting many network protocols, there were versions of the Sniffer that collected data from the major local area networks in use in the 1980s and early 1990s:
Even in the early years, the Sniffer had competition,[25] at least for some aspects of the product. Several were, like the Sniffer, ready-to-use packaged instruments: