shithub: riscv

ref: 47ec5de29e56c4cf223e0582b930b88ca2a589ee
dir: /sys/man/3/sdp/

View raw version
.TH SDP 3
.SH NAME
sdp \- secure datagram protocol
.SH SYNOPSIS
.nf
.B bind -a #E\fIspec\fP /net
.sp 0.3v
.B /net/sdp/clone
.B /net/sdp/log
.BI /net/sdp/ n
.BI /net/sdp/ n /data
.BI /net/sdp/ n /control
.BI /net/sdp/ n /ctl
.BI /net/sdp/ n /rstats
.BI /net/sdp/ n /stats
.BI /net/sdp/ n /status
\&...
.fi
.SH DESCRIPTION
The
.I sdp
device provides the interface to the Secure Datagram Protocol (SDP).
SDP (un)compresses and (de-)encrypts packets.
.I Spec
is an integer from 0 to 15 identifying a stack.
Each stack is independent of all others:
the only information transfer between them is via programs that
mount multiple stacks.
Normally a system uses only one stack.
However multiple stacks can be used for debugging
new networks or implementing firewalls or proxy
services.
.PP
The top level directory contains a
.B clone
file, a
.B log
file, and subdirectories numbered from zero to the number of connections
opened for this protocol.
.PP
Opening the
.B clone
file reserves a connection.  The file descriptor returned from the
.IR open (2)
will point to the control file,
.BR ctl ,
of the newly allocated connection.
Reading
.B ctl
returns a text
string representing the number of the
connection.
Connections may be used either to listen for incoming calls
or to initiate calls to other machines.
.PP
A connection is controlled by writing text strings to the associated
.B ctl
file.
After a connection has been established data may be read from
and written to
.BR data .
A connection can be actively established using the
.B connect
message (see also
.IR dial (2)).
A connection can be established passively by first
using an
.B announce
message (see
.IR dial (2))
to bind to a local port and then
opening the
.B listen
file (see
.IR dial (2))
to receive incoming calls.
.PP
The following control messages are supported:
.TF "outsecret \fIsecret
.PD
.TP
.BI accept " file"
Accept an incoming encrypted connection on
.IR file ,
typically a
.B data
file.
.TP
.BI dial " file"
Initiate a new encrypted connection on
.IR file ,
typically a UDP
.B data
file.
.TP
.BI drop " permil"
Randomly drop approximately one of every
.I permil
output packets,
thus simulating network errors.
.TP
.BI cipher " algorithm"
Use ciphering
.IR algorithm ;
choices are
.LR null ,
.LR des_56_cbc ,
.LR rc4_128 ,
and
.LR rc4_256 .
.TP
.BI auth " algorithm"
Use authentication
.IR algorithm ;
choices are
.LR null ,
.LR hmac_sha1_96 ,
and
.LR hmac_md5_96 .
.TP
.BI comp " algorithm"
Use compression
.IR algorithm ;
choices are
.L null
and
.LR thwack .
.TP
.BI insecret " secret"
Use
.I secret
to decrypt incoming packets.
.TP
.BI outsecret " secret"
Use
.I secret
to encrypt outgoing packets.
.
.SH "SEE ALSO"
.IR dial (2),
.IR ip (3)
.br
.IR "Robust Data Compression of Network Packets" ,
Sean Dorward and Sean Quilan, Bell Labs, Lucent Technologies,
.BR http://plan9.bell-labs.com/who/seanq/networkcomp.pdf .
.SH SOURCE
.B /sys/src/9/port/devsdp.c