1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
|
Network Working Group J. Hofmueller, Ed.
Request for Comments: 4824 A. Bachmann, Ed.
Category: Informational IO. zmoelnig, Ed.
1 April 2007
The Transmission of IP Datagrams
over the Semaphore Flag Signaling System (SFSS)
Status of This Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Abstract
This document specifies a method for encapsulating and transmitting
IPv4/IPv6 packets over the Semaphore Flag Signal System (SFSS).
Table of Contents
1. Introduction ....................................................2
2. Definitions .....................................................2
3. Protocol Discussion .............................................3
3.1. IP-SFS Frame Description ...................................3
3.2. SFS Coding .................................................4
3.3. IP-SFS Data Signals ........................................5
3.4. IP-SFS Control Signals .....................................6
3.5. Protocol Limitations .......................................7
3.6. Implementation Limitations .................................7
4. Interface Discussion ............................................7
4.1. Data Link Control ..........................................8
4.2. Establishing a Connection ..................................8
4.3. State Idle .................................................8
4.4. Session Initiation .........................................8
4.5. State Transmitting .........................................9
4.6. State Receiving ...........................................10
4.7. Terminating a Connection ..................................11
4.8. Further Remarks ...........................................11
5. Security Considerations ........................................11
6. Acknowledgements ...............................................11
7. References .....................................................12
Hofmueller, et al. Informational [Page 1]
^L
RFC 4824 IP over SFSS April 2007
1. Introduction
This document specifies IP-SFS, a method for the encapsulation and
transmission of IPv4/IPv6 packets over the Semaphore Flag Signaling
System (SFSS). The SFSS is an internationally recognized alphabetic
communication system based upon the waving of a pair of hand-held
flags [JCroft, Wikipedia]. Under the SFSS, each alphabetic character
or control signal is indicated by a particular flag pattern, called a
Semaphore Flag Signal (SFS).
IP-SFS provides reliable transmission of IP datagrams over a half-
duplex channel between two interfaces. At the physical layer, SFSS
uses optical transmission, normally through the atmosphere using
solar illumination and line-of-sight photonics. A control protocol
(Section 4) allows each interface to contend for transmission on the
common channel.
This specification defines only unicast transmission. Broadcast is
theoretically possible, but there are some physical restrictions on
channel direction dispersion. This is a topic for future study.
The diagram in Figure 1 illustrates the place of the SFSS in the
Internet protocol hierarchy.
+-----+ +-----+ +-----+
| TCP | | UDP | ... | | Host Layer
+-----+ +-----+ +-----+
| | |
+-------------------------------+
| Internet Protocol & ICMP | Internet Layer
+-------------------------------+
|
+-------------------------------+
| SFSS | Link Layer
+-------------------------------+
Figure 1: Protocol Relationships
2. Definitions
Link: A link consists of two (2) interfaces that share a common
subnet.
Link Partner:
The opposite interface.
Session: The transmission of an entire IP datagram.
Hofmueller, et al. Informational [Page 2]
^L
RFC 4824 IP over SFSS April 2007
SFS: One Semaphore Flag Signal, i.e., one flag pattern (Section
3.2).
SFSS: The Semaphore Flag Signaling System.
IP-SFS: IP over Semaphore Flag Signaling System.
3. Protocol Discussion
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.
3.1. IP-SFS Frame Description
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
Hofmueller, et al. Informational [Page 3]
^L
RFC 4824 IP over SFSS April 2007
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.
Hofmueller, et al. Informational [Page 4]
^L
RFC 4824 IP over SFSS April 2007
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.
Hofmueller, et al. Informational [Page 5]
^L
RFC 4824 IP over SFSS April 2007
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.
Hofmueller, et al. Informational [Page 6]
^L
RFC 4824 IP over SFSS April 2007
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)
4. Interface Discussion
An interface is constructed through the participation of one or more
humans. A knowledge of the SFSS is recommended, but its absence can
be compensated by a well-designed GUI.
Hofmueller, et al. Informational [Page 7]
^L
RFC 4824 IP over SFSS April 2007
4.1. Data Link Control
This section describes the control protocol used to allocate the
half-duplex data link to either interface.
Interfaces know three States: Idle, Transmitting (TX), and Receiving
(RX).
4.2. Establishing a Connection
IP-SFS is strictly point-to-point. Unless interface members are
acquainted with each other, a brief introduction of both sides is
suggested prior to setting up a link to reduce the likelihood of
interface-spoofing attacks.
Interfaces must agree on two different IP addresses on the same
subnet.
Interfaces are free to negotiate any period of time as TIMEOUT.
Possible values for TIMEOUT are the time it takes to smoke a
cigarette or the time it takes to drink a glass of water. If
negotiation fails, TIMEOUT defaults to 60 seconds.
The same procedure may be applied for the KeepALive FReQuency
(KAL_FRQ). The period of KAL_FRQ (1/KAL_FRQ) should be at least
5*TIMEOUT.
4.3. State Idle
Interfaces in State Idle must be ready to send an IP datagram
provided by a local higher-level protocol or to receive a datagram
from the link-partner. Interfaces in State Idle must send keep-alive
signals KAL at a frequency of at least KAL_FRQ.
There are no further definitions for State Idle, but we recommend
staying away from alcoholic beverages or other types of drugs that
could lead to an increased number of FUN and/or SUN signals, a
decrease in bandwidth, or an increase of line latency.
If the number of IP datagrams in the transmission queue is >0, the
interface may try to initiate a session by sending an RTT to the link
partner. If the link partner ready to receive, it returns an RTR
signal.
4.4. Session Initiation
An interface receiving a datagram from an Internet layer protocol
level may start signaling RTT.
Hofmueller, et al. Informational [Page 8]
^L
RFC 4824 IP over SFSS April 2007
If the link partner does not respond with RTR within TIMEOUT, or the
link partner responds with RTT, the interface switches to State Idle
for a random period of time between 2 seconds and TIMEOUT, before
resending the RTT.
If the link partner transmits RTR, the interface transmits the number
of IP-SFS frames to be transmitted in this session as two SFSs
followed by another RTT. If the link partner does not transmit the
same number of IP-SFS frames followed by RTR within 3*TIMEOUT, the
interface switches to State Idle.
If the link partner transmits the same number of IP-SFS frames
followed by RTR, the interface switches to State Transmitting.
Unless obstructed through environmental noise or great distance,
hollering can be used to request line discipline from the link
partner in State Idle. The use of cellphones is also an option,
whereas throwing objects or using guns is not recommended, since it
could result in interface damage or destruction. This would be
counterproductive.
4.5. State Transmitting
Transmission of one IP-SFS frame starts with FST. After FST and
before FEN have been transmitted, the interface may acknowledge a
received FUN and restart the transmission of the active frame or
discard the signal and continue transmission of the active IP-SFS
frame.
If an error occurs by transmitting a wrong data SFS, the interface
may invalidate the last data SFS by transmitting SUN followed by the
correct signal. A series of incorrectly transmitted data SFSs may be
invalidated by sending a SUN for each invalid SFS, effectively back-
spacing the sequence.
Control SFSs cannot be invalidated.
If an error occurs, the interface may also transmit FUN and restart
transmission of the active IP-SFS frame.
Whether the interfaces choose SUN or FUN for error correction is up
to the interface, but it is suggested to use SUN for a single invalid
SFS, and FUN whenever the interface failed to transmit several SFSs
in a row.
After FEN has been transmitted, the transmitting interface waits for
the link partner to transmit ACK or NAK.
Hofmueller, et al. Informational [Page 9]
^L
RFC 4824 IP over SFSS April 2007
If ACK has been received, the transmitting interface removes the
active frame and starts transmitting the next IP-SFS frame. If no
frames are left, the interface switches to State Idle.
If NAK has been received, the transmission failed, and the interface
must start transmitting the active frame again.
If the link partner does not transmit ACK or NAK within TIMEOUT, the
transmission failed, and the interface must start retransmitting the
active IP-SFS frame.
If transmission of the same IP-SFS frame fails 5 times, the interface
leaves the IP datagram in the transmission queue and switches to
State Idle.
4.6. State Receiving
In State Receiving, the interface stores each SFS received from the
link partner in the receiving queue in the order of appearance.
After FST and before FEN have been received, the interface may
transmit FUN at any time to request a retransmission of the entire
IP-SFS frame.
If the time between two received SFSs exceeds TIMEOUT, the receiving
interface must discard all data from the active IP-SFS frame and may
additionally transmit FUN. If the link partner does not continue
transmitting within a second TIMEOUT period, the interface must clear
the receiving queue and switch to State Idle.
If the interface receives SUN from the link partner, it must discard
the last received data SFS (if any). If N SUNs are received in a
row, then the last N data SFS must be discarded, unless there are no
more data SFS in the frame. If there are no more data SFS in the
frame to be discarded, the SUN signal must be ignored by the
interface.
If the receiving interface receives FUN from the link partner, it is
free to discard the frame received thus far. We suggest honoring FUN
since discarding the signal will decrease bandwidth.
After FEN has been received, the receiving interface evaluates the
checksum. If the checksum is good, the interface transmits ACK. If
the Frame Number of the active frame is 0, the interface passes the
entire data from the receiving queue to the higher level protocol,
clears the receiving queue, and switches to State Idle.
If the checksum is incorrect, the interface transmits NAK.
Hofmueller, et al. Informational [Page 10]
^L
RFC 4824 IP over SFSS April 2007
4.7. Terminating a Connection
If the interface is in State Idle and the link partner did not
transmit any kind of SFS for at least five times 1/KAL_FRQ, the
connection is terminated and the interfaces are free to disband.
4.8. Further Remarks
Interfaces are connected to computer hardware by means of a suitable
input device (RX) and a suitable output device (TX). Possible
devices include keyboard, mouse, and monitor. Other means of
connection are subject to availability and budget.
Although it is theoretically possible to combine the TX and RX parts
of an interface in one human being, we suggest dividing the
operations among at least two people per interface. For longer
transmissions (multimedia streaming, video conferencing, etc.),
consider rotating and providing substitutes.
Bandwidth tends to vary. Typically TX starts at about 2-4 bits/s and
will decrease over time due to exhaustion and lack of concentration.
When an interface in TX State signals at a rate higher than the RX
interface is able to receive, signal loss occurs.
5. Security Considerations
By its nature of line-of-sight signaling, IP-SFS is considered
insecure. The transmission of sensitive data over IP-SFS is strongly
discouraged unless security is provided by higher level protocols.
Interfaces tend to keep data in their memory. There is no way to
determine the lifetime of data in memory. As a side effect, data
might show up in unwanted locations at undesired times.
We are currently not aware of a technique to reliably delete data
from interfaces' memory without permanent interface destruction.
6. Acknowledgements
We thank Eva Ursprung and Doris Jauk-Hinz from Womyn's Art Support
(WAS), Anita Hofer, Reni Hofmueller, Ulla Klopf, Nicole Pruckermayr,
Manfred Rittler, Martin Schitter, and Bob Braden for all their
contributions and support of this project.
Hofmueller, et al. Informational [Page 11]
^L
RFC 4824 IP over SFSS April 2007
7. References
[JCroft] Croft, J., "Semaphore Flag Signalling System",
<http://www.anbg.gov.au/flags/semaphore.html>.
[Wikipedia] Wikipedia, "Modern semaphore", <http://
en.wikipedia.org/wiki/Semaphore#Modern_semaphore>.
Authors' Addresses
Jogi Hofmueller (editor)
Brockmanngasse 65
Graz 8010
AT
EMail: ip-sfs@mur.at
Aaron Bachmann (editor)
Ulmgasse 14 C
Graz 8053
AT
EMail: ip-sfs@mur.at
IOhannes zmoelnig (editor)
Goethestrasse 9
Graz 8010
AT
EMail: ip-sfs@mur.at
Hofmueller, et al. Informational [Page 12]
^L
RFC 4824 IP over SFSS April 2007
Full Copyright Statement
Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
Hofmueller, et al. Informational [Page 13]
^L
|