IP-SFS adapts the standard SFSS to encode an alphabet of 16 signals
(flag patterns) to represent data values 0-15 (Section 3.2.1) and 9
signals to represent control functions (Section 3.2.2). With 16 data
signals, IP-SFS transmission is based upon 4-bit nibbles, two per
octet. Each of the signal patterns defined in Section 3.2 is called
an SFS.
IP datagrams are formatted into IP-SFS frames by adding IP-SFS
headers and trailers. Figure 2 shows the format of one IP-SFS frame.
The frame is delimited by a control SFS called FST (Frame Start) and
a control SFS called FEN (Frame End). It is composed of a series of
4-bit nibbles, one per SFS.
An IP datagram will be fragmented into multiple successive IP-SFS
frames if necessary. When an IP datagram is fragmented into N
frames, the first frame will be sent with frame number N-1, the
second with frame number N-2, ..., and the last with frame number 0.
0 1 2 3
+--------+--------+--------+--------+--------+
| FST |Protocol|CksumTyp|Frame No|Frame No|
+--------+--------+--------+--------+--------+
| |
// DATA Payload //
| |
+--------+--------+--------+--------+---------+
| CRC | CRC | CRC | CRC | FEN |
+--------+--------+--------+--------+---------+
Note that each field represents one SFS or 4 bits.
Figure 2: IP-SFS Frame Format
FST: Frame Start control SFS
Protocol: 4 bits -- Internetwork-layer protocol code
0 None.
1 For IPv4.
2 For IPv6.
3 For IPv4 frame gzip-compressed.
4 For IPv6 frame gzip-compressed.
5...15 Reserved for future use.
CksumTyp: 4 bits (one data SFS) -- Checksum Type
0 none.
1 CCITT CRC 16 (polynomial: x^16 + x^12 + x^5+1).
2...15 Reserved for future use.
Frame No: 8 bits (2 data SFSs):
Frame number for fragmented IP datagram.
DATA: 0 to 510 data SFSs (Section 3.2.1) representing 0 to 255
octets of payload.
CRC: 16 bits as four data SFSs.
CRC checksum. Preset to 0xFFFF. One's complement of
checksum is transmitted.
FEN: Frame ENd control SFS.
The number of transmitted SFSs per minute (Spm) depends on the
experience of participating interfaces. Resulting link speed in bits
per second for IP-SFS is (Spm/60)*4, not counting framing overhead.
3.2. SFS Coding
Data signals and control signals are based upon standard SFS
encoding, as described by [JCroft], [Wikipedia], and other sources on
the Internet. The 16 data signals are interpreted as 4-bit nibbles,
while the 9 control signals are used for data link control.
IP-SFS defines the 16 data signals by the original SFSS encodings for
letters A to P and the 9 control signals represented by SFSS
encodings Q to X.
3.3. IP-SFS Data Signals
Figure 3 illustrates the 16 SFSs used to transmit data frames over
the link. The illustrations show each SFS as seen from the receiving
side.
SFS 0 __0 \0 |0
/|| || || ||
/ \ / \ / \ / \
A B C D
IP-SFS 0x00 0x01 0x02 0x03
-----------------------------------------
SFS 0/ 0__ 0 __0
|| || ||\ /|
/ \ / \ / \ / \
E F G H
IP-SFS 0x04 0x05 0x06 0x07
-----------------------------------------
SFS \0 |0__ 0| 0/
/| | /| /|
/ \ / \ / \ / \
I J K L
IP-SFS 0x08 0x09 0x0A 0x0B
-----------------------------------------
SFS 0__ 0 _\0 __0|
/| /|\ | |
/ \ / \ / \ / \
M N O P
IP-SFS 0x0C 0x0D 0x0E 0x0F
Figure 3: IP-SFS Data Signals.
3.4. IP-SFS Control Signals
Nine control signals are used to signal special IP-SFS conditions.
Their meanings are listed in Figure 4. The illustrations show each
SFS as seen from the receiving side.
SFS __0/ __0__ __0 \0|
| | |\ |
/ \ / \ / \ / \
Q R S T
IP-SFS FST FEN SUN FUN
-----------------------------------------
SFS \0/ \0__ 0/_ 0/
| | | |\
/ \ / \ / \ / \
U V W X
IP-SFS ACK KAL NAK RTR
-----------------------------------------
SFS 0__ 0__
/| |\
/ \ / \
Y Z
IP-SFS RTT unused
-----------------------------------------
SFS _\0/_
/|\
/ \
Error
IP-SFS unused
Figure 4: IP-SFS Control Signals.
FST: Frame STart. Signals the start of a new frame.
FEN: Frame ENd. Signals the end of one frame.
SUN: Signal UNdo. Cancels the transmission of one or more individual
SFSs within the current frame. This signal will be
unacknowledged by the receiver.
FUN: Frame UNdo. As long as Frame ENd is not sent, the transmitter
or the receiver may send a FUN to restart the transmission of
the current frame. This signal will be unacknowledged and may
be ignored by the receiver.
ACK: Frame ACK. Acknowledges reception of one frame.
KAL: KeepALive. Keep a connection alive. Is to be transmitted in
State Idle at a frequency of at least KAL_FREQ (see
Section 4.2). This signal will be unacknowledged.
NAK: Frame No AcK. The frame received is incorrect.
RTR: Ready To Receive. Receiver acknowledges it is ready to receive.
RTT: Ready To Transmit. Sender requests permission to initiate
transmission.
3.5. Protocol Limitations
Due to the physical characteristics of the transfer channel, bit
error rates are expected to be in the range of 1e-3 (boy scout) to
1e-4 (professional sailor), and also depend a number of physical
factors. Poor visibility due to weather conditions or lack of
illumination (e.g., night time) can drastically increase the error
rate.
IP-SFS provides no means to handle frame reordering or dual
(multiple) frame reception. Thus, the protocol is not suitable in
environments where interfaces are moving fast and/or when the path of
light is long.
3.6. Implementation Limitations
Maximum payload per frame: 510 SFS (0...510) nibbles (0 to 255
octets)
Maximum SFS per frame: 518
Maximum frames per session: 255 (0...254)