asciidoctor-rfc 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +20 -8
- data/README.adoc +2 -2
- data/asciidoctor-rfc.gemspec +1 -1
- data/docs/installation.md +21 -0
- data/docs/navigation.md +10 -0
- data/docs/overview.md +5 -0
- data/lib/asciidoctor/rfc/common/base.rb +9 -0
- data/lib/asciidoctor/rfc/v2/base.rb +4 -2
- data/lib/asciidoctor/rfc/v3/base.rb +6 -1
- data/lib/asciidoctor/rfc/version.rb +1 -1
- data/lib/metanorma/rfc/processor_v2.rb +5 -1
- data/lib/metanorma/rfc/processor_v3.rb +5 -1
- data/spec/examples/davies-template-bare-06.xml.orig.txt +448 -0
- data/spec/examples/draft-iab-html-rfc-bis.xml.orig.txt +2298 -0
- data/spec/examples/draft-iab-rfc-framework-bis.xml.orig.txt +896 -0
- data/spec/examples/draft-ietf-core-block-xx.xml.orig.txt +1176 -0
- data/spec/examples/hoffmanv2.xml.orig.txt +280 -0
- data/spec/examples/mib-doc-template-xml-06.xml.orig.txt +672 -0
- data/spec/examples/rfc1149.md.2.xml.txt +168 -0
- data/spec/examples/rfc2100.md.2.xml.txt +168 -0
- data/spec/examples/rfc3514.md.2.xml.txt +336 -0
- data/spec/examples/rfc5841.md.2.xml.txt +504 -0
- data/spec/examples/rfc748.md.2.xml.txt +168 -0
- data/spec/examples/rfc7511.md.2.xml.txt +448 -0
- data/spec/examples/skel.xml.orig.txt +112 -0
- data/spec/examples/stupid-s.xml.orig.txt +784 -0
- metadata +21 -4
@@ -0,0 +1,504 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
Network Working Group R. Hay
|
6
|
+
Internet-Draft W. Turkal
|
7
|
+
Intended status: Informational Google
|
8
|
+
Expires: October 3, 2010 April 1, 2010
|
9
|
+
|
10
|
+
|
11
|
+
TCP Option to Denote Packet Mood
|
12
|
+
rfc-5841
|
13
|
+
|
14
|
+
Abstract
|
15
|
+
|
16
|
+
This document proposes a new TCP option to denote packet mood.
|
17
|
+
|
18
|
+
Status of This Memo
|
19
|
+
|
20
|
+
This Internet-Draft is submitted in full conformance with the
|
21
|
+
provisions of BCP 78 and BCP 79.
|
22
|
+
|
23
|
+
Internet-Drafts are working documents of the Internet Engineering
|
24
|
+
Task Force (IETF). Note that other groups may also distribute
|
25
|
+
working documents as Internet-Drafts. The list of current Internet-
|
26
|
+
Drafts is at http://datatracker.ietf.org/drafts/current/.
|
27
|
+
|
28
|
+
Internet-Drafts are draft documents valid for a maximum of six months
|
29
|
+
and may be updated, replaced, or obsoleted by other documents at any
|
30
|
+
time. It is inappropriate to use Internet-Drafts as reference
|
31
|
+
material or to cite them other than as "work in progress."
|
32
|
+
|
33
|
+
This Internet-Draft will expire on October 3, 2010.
|
34
|
+
|
35
|
+
Copyright Notice
|
36
|
+
|
37
|
+
Copyright (c) 2010 IETF Trust and the persons identified as the
|
38
|
+
document authors. All rights reserved.
|
39
|
+
|
40
|
+
This document is subject to BCP 78 and the IETF Trust's Legal
|
41
|
+
Provisions Relating to IETF Documents
|
42
|
+
(http://trustee.ietf.org/license-info) in effect on the date of
|
43
|
+
publication of this document. Please review these documents
|
44
|
+
carefully, as they describe your rights and restrictions with respect
|
45
|
+
to this document. Code Components extracted from this document must
|
46
|
+
include Simplified BSD License text as described in Section 4.e of
|
47
|
+
the Trust Legal Provisions and are provided without warranty as
|
48
|
+
described in the Simplified BSD License.
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
Hay & Turkal Expires October 3, 2010 [Page 1]
|
57
|
+
|
58
|
+
Internet-Draft TCP Option to Denote Packet Mood April 2010
|
59
|
+
|
60
|
+
|
61
|
+
1. Introduction
|
62
|
+
|
63
|
+
In an attempt to anthropomorphize the bit streams on countless
|
64
|
+
physical layer networks throughout the world, we propose a TCP option
|
65
|
+
to express packet mood [DSM-IV].
|
66
|
+
|
67
|
+
Packets cannot feel. They are created for the purpose of moving data
|
68
|
+
from one system to another. However, it is clear that in specific
|
69
|
+
situations some measure of emotion can be inferred or added. For
|
70
|
+
instance, a packet that is retransmitted to resend data for a packet
|
71
|
+
for which no ACK was received could be described as an 'angry'
|
72
|
+
packet, or a 'frustrated' packet (if it is not the first
|
73
|
+
retransmission for instance). So how can these kinds of feelings be
|
74
|
+
conveyed in the packets themselves. This can be addressed by adding
|
75
|
+
TCP Options [RFC0793] to the TCP header, using ASCII characters that
|
76
|
+
encode commonly used "emoticons" to convey packet mood.
|
77
|
+
|
78
|
+
1.1. Terminology
|
79
|
+
|
80
|
+
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
|
81
|
+
SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this
|
82
|
+
document, are to be interpreted as described in [RFC2119].
|
83
|
+
|
84
|
+
2. Syntax
|
85
|
+
|
86
|
+
A TCP Option has a 1-byte kind field, followed by a 1-byte length
|
87
|
+
field [RFC0793]. It is proposed that option 25 (released 2000-12-18)
|
88
|
+
be used to define packet mood. This option would have a length value
|
89
|
+
of 4 or 5 bytes. All the simple emotions described as expressible
|
90
|
+
via this mechanism can be displayed with two or three 7-bit, ASCII-
|
91
|
+
encoded characters. Multiple mood options may appear in a TCP
|
92
|
+
header, so as to express more complex moods than those defined here
|
93
|
+
(for instance if a packet were happy and surprised).
|
94
|
+
|
95
|
+
Kind Length Meaning
|
96
|
+
---- -------- -------
|
97
|
+
25 Variable Packet Mood
|
98
|
+
|
99
|
+
TCP Header Format
|
100
|
+
|
101
|
+
In more detail:
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
Hay & Turkal Expires October 3, 2010 [Page 2]
|
113
|
+
|
114
|
+
Internet-Draft TCP Option to Denote Packet Mood April 2010
|
115
|
+
|
116
|
+
|
117
|
+
+--------+--------+--------+--------+
|
118
|
+
|00011001|00000100|00111010|00101001|
|
119
|
+
+--------+--------+--------+--------+
|
120
|
+
Kind=25 Length=4 ASCII : ASCII )
|
121
|
+
|
122
|
+
+--------+--------+--------+--------+--------+
|
123
|
+
|00011001|00000101|00111110|00111010|01000000|
|
124
|
+
+--------+--------+--------+--------+--------+
|
125
|
+
Kind=25 Length=5 ASCII > ACSII : ASCII @
|
126
|
+
|
127
|
+
3. Simple Emotional Representation
|
128
|
+
|
129
|
+
It is proposed that common emoticons be used to denote packet mood.
|
130
|
+
Packets do not "feel" per se. The emotions they could be tagged with
|
131
|
+
are a reflection of the user mood expressed through packets.
|
132
|
+
|
133
|
+
So the humanity expressed in a packet would be entirely sourced from
|
134
|
+
humans.
|
135
|
+
|
136
|
+
To this end, it is proposed that simple emotions be used convey mood
|
137
|
+
as follows.
|
138
|
+
|
139
|
+
ASCII Mood
|
140
|
+
===== ====
|
141
|
+
:) Happy
|
142
|
+
:( Sad
|
143
|
+
:D Amused
|
144
|
+
%( Confused
|
145
|
+
:o Bored
|
146
|
+
:O Surprised
|
147
|
+
:P Silly
|
148
|
+
:@ Frustrated
|
149
|
+
>:@ Angry
|
150
|
+
:| Apathetic
|
151
|
+
;) Sneaky
|
152
|
+
>:) Evil
|
153
|
+
|
154
|
+
Proposed ASCII character encoding
|
155
|
+
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
Hay & Turkal Expires October 3, 2010 [Page 3]
|
169
|
+
|
170
|
+
Internet-Draft TCP Option to Denote Packet Mood April 2010
|
171
|
+
|
172
|
+
|
173
|
+
Binary Dec Hex Character
|
174
|
+
======== === === =========
|
175
|
+
010 0101 37 25 %
|
176
|
+
010 1000 40 28 (
|
177
|
+
010 1001 41 29 )
|
178
|
+
011 1010 58 3A :
|
179
|
+
011 1011 59 3B ;
|
180
|
+
011 1110 62 3E >
|
181
|
+
100 0000 64 40 @
|
182
|
+
100 0100 68 44 D
|
183
|
+
100 1111 79 4F O
|
184
|
+
101 0000 80 50 P
|
185
|
+
110 1111 111 6F o
|
186
|
+
111 1100 124 7C |
|
187
|
+
|
188
|
+
For the purposes of this RFC, 7-bit ASCII encoding is sufficient for
|
189
|
+
representing emoticons. The ASCII characters will be sent in 8-bit
|
190
|
+
bytes with the leading bit always set to 0.
|
191
|
+
|
192
|
+
4. Use Cases
|
193
|
+
|
194
|
+
There are two ways to denote packet mood. One is to infer the mood
|
195
|
+
based on an event in the TCP session. The other is to derive mood
|
196
|
+
from a higher-order action at a higher layer (subject matter of
|
197
|
+
payload for instance).
|
198
|
+
|
199
|
+
For packets where the 'mood' is inferred from activity within the TCP
|
200
|
+
session, the 'mood' MUST be set by the host that is watching for the
|
201
|
+
trigger event. If a client sends a frame and receives no ACK, then
|
202
|
+
the retransmitted frame MAY contain the TCP OPTION header with a mood
|
203
|
+
set.
|
204
|
+
|
205
|
+
Any packet that exhibits behavior that allows for mood to be inferred
|
206
|
+
SHOULD add the TCP OPTION to the packets with the implied mood.
|
207
|
+
|
208
|
+
Applications can take advantage of the defined moods by expressing
|
209
|
+
them in the packets. This can be done in the SYN packet sent from
|
210
|
+
the client. All packets in the session can be then tagged with the
|
211
|
+
mood set in the SYN packet, but this would have a per-packet
|
212
|
+
performance cost (see Section 5 "Performance Considerations").
|
213
|
+
|
214
|
+
Each application MUST define the preconditions for marking packets as
|
215
|
+
happy, sad, bored, confused, angry, apathetic, and so on. This is a
|
216
|
+
framework for defining how such moods can be expressed, but it is up
|
217
|
+
to the developers to determine when to apply these encoded labels.
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
|
224
|
+
Hay & Turkal Expires October 3, 2010 [Page 4]
|
225
|
+
|
226
|
+
Internet-Draft TCP Option to Denote Packet Mood April 2010
|
227
|
+
|
228
|
+
|
229
|
+
4.1. Happy Packets
|
230
|
+
|
231
|
+
Healthy packets are happy packets you could say. If the ACK packets
|
232
|
+
return within <10 ms end-to-end from a sender's stack to a receiver's
|
233
|
+
stack and back again, this would reflect high-speed bidirectional
|
234
|
+
capability, and if no retransmits are required and all ACKs are
|
235
|
+
received, all subsequent packets in that session SHOULD be marked as
|
236
|
+
'happy'.
|
237
|
+
|
238
|
+
No loss, low-latency packets also makes for happy users. So the
|
239
|
+
packet would be reflecting the end-user experience.
|
240
|
+
|
241
|
+
4.2. Sad Packets
|
242
|
+
|
243
|
+
If retransmission rates achieve greater than 20% of all packets sent
|
244
|
+
in a session, it is fair to say the session can be in mourning for
|
245
|
+
all of the good packets lost in the senseless wasteland of the wild
|
246
|
+
Internet.
|
247
|
+
|
248
|
+
This should not be confused with retransmitted packets marked as
|
249
|
+
'angry' since this tag would apply to all frames in the session
|
250
|
+
numbed by the staggering loss of packet life.
|
251
|
+
|
252
|
+
4.3. Amused Packets
|
253
|
+
|
254
|
+
Any packet that is carrying a text joke SHOULD be marked as 'amused'.
|
255
|
+
|
256
|
+
Example:
|
257
|
+
|
258
|
+
1: Knock Knock
|
259
|
+
2: Who's there?
|
260
|
+
1: Impatient chicken
|
261
|
+
2: Impatient chi...
|
262
|
+
1: BAWK!!!!
|
263
|
+
|
264
|
+
If such a joke is in the packet payload then, honestly, how can you
|
265
|
+
not be amused by one of the only knock-knock jokes that survives the
|
266
|
+
3rd grade?
|
267
|
+
|
268
|
+
4.4. Confused Packets
|
269
|
+
|
270
|
+
When is a packet confused? There are network elements that perform
|
271
|
+
per-packet load balancing, and if there are asymmetries in the
|
272
|
+
latencies between end-to-end paths, out-of-order packet delivery can
|
273
|
+
occur.
|
274
|
+
|
275
|
+
When a receiver host gets out-of-order packets, it SHOULD mark TCP
|
276
|
+
ACK packets sent back to the sender as confused.
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
Hay & Turkal Expires October 3, 2010 [Page 5]
|
281
|
+
|
282
|
+
Internet-Draft TCP Option to Denote Packet Mood April 2010
|
283
|
+
|
284
|
+
|
285
|
+
The same can be said for packets that are sent to incorrect VLAN
|
286
|
+
segments or are misdirected. The receivers might be aware that the
|
287
|
+
packet is confused, but there is no way to know at ingress if that
|
288
|
+
will be the fate of the frame.
|
289
|
+
|
290
|
+
That being said, application developers SHOULD mark packets as
|
291
|
+
confused if the payload contains complex philosophical questions that
|
292
|
+
make one ponder the meaning of life and one's place in the universe.
|
293
|
+
|
294
|
+
4.5. Bored Packets
|
295
|
+
|
296
|
+
Packets carrying accounting data with debits, credits, and so on MUST
|
297
|
+
be marked as 'bored'.
|
298
|
+
|
299
|
+
It could be said that many people consider RFCs boring. Packets
|
300
|
+
containing RFC text MAY be marked as 'bored'.
|
301
|
+
|
302
|
+
Packets with phone book listings MUST be marked 'bored'.
|
303
|
+
|
304
|
+
Packets containing legal disclaimers and anything in Latin SHOULD be
|
305
|
+
marked 'bored'.
|
306
|
+
|
307
|
+
4.6. Surprised Packets
|
308
|
+
|
309
|
+
Who doesn't love when the out-of-order packets in your session
|
310
|
+
surprise you while waiting in a congested queue for 20 ms?
|
311
|
+
|
312
|
+
Packets do not have birthdays, so packets can be marked as surprised
|
313
|
+
when they encounter unexpected error conditions.
|
314
|
+
|
315
|
+
So when ICMP destination unreachable messages are received (perhaps
|
316
|
+
due to a routing loop or congestion discards), all subsequent packets
|
317
|
+
in that session SHOULD be marked as surprised.
|
318
|
+
|
319
|
+
4.7. Silly Packets
|
320
|
+
|
321
|
+
Not all packets are sent as part of a session. Random keepalives
|
322
|
+
during a TCP session MAY be set up as a repartee between systems
|
323
|
+
connected as client and server. Such random and even playful
|
324
|
+
interchanges SHOULD be marked as silly.
|
325
|
+
|
326
|
+
4.8. Frustrated Packets
|
327
|
+
|
328
|
+
Packets that are retransmitted more than once SHOULD be marked as
|
329
|
+
frustrated.
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
|
336
|
+
Hay & Turkal Expires October 3, 2010 [Page 6]
|
337
|
+
|
338
|
+
Internet-Draft TCP Option to Denote Packet Mood April 2010
|
339
|
+
|
340
|
+
|
341
|
+
4.9. Angry Packets
|
342
|
+
|
343
|
+
Packets that are retransmitted SHOULD be marked as angry.
|
344
|
+
|
345
|
+
4.10. Apathetic Packets
|
346
|
+
|
347
|
+
When sending a RST packet to a connected system, the packet should be
|
348
|
+
marked as apathetic so that the receiver knows that your system does
|
349
|
+
not care what happens after that.
|
350
|
+
|
351
|
+
4.11. Sneaky Packets
|
352
|
+
|
353
|
+
When a packet is used in a particularly clever way, it SHOULD be
|
354
|
+
marked as sneaky. What is "clever" is rather subjective, so it would
|
355
|
+
be prudent to get a few opinions about a particular use to make sure
|
356
|
+
that it is clever.
|
357
|
+
|
358
|
+
4.12. Evil Packets
|
359
|
+
|
360
|
+
It is hard for a TCP packet to discern higher moral quandaries like
|
361
|
+
the meaning of life or what exactly defines 'evil' and from whose
|
362
|
+
perspective such a characterization is being made. However,
|
363
|
+
developers of TCP-based applications MAY choose to see some
|
364
|
+
activities as evil when viewed through their particular lens of the
|
365
|
+
world. At that point, they SHOULD mark packets as evil.
|
366
|
+
|
367
|
+
Some organizations are prohibited from using this mood by mission
|
368
|
+
statement. This would also prohibit using the security flag in the
|
369
|
+
IP header described in [RFC3514] for the same reasons.
|
370
|
+
|
371
|
+
5. Performance Considerations
|
372
|
+
|
373
|
+
Adding extensions to the TCP header has a cost. Using TCP extensions
|
374
|
+
with the ASCII-encoded mood of the packet would detract from the
|
375
|
+
available MSS usable for data payload. If the TCP header is more
|
376
|
+
than 20 bytes, then the extra bytes would be unavailable for use in
|
377
|
+
the payload of the frame.
|
378
|
+
|
379
|
+
This added per-packet overhead should be considered when using packet
|
380
|
+
mood extensions.
|
381
|
+
|
382
|
+
6. Security Considerations
|
383
|
+
|
384
|
+
The TCP checksum, as a 16-bit value, could be mistaken if ASCII
|
385
|
+
characters with the same number of zeros and ones were substituted
|
386
|
+
out. A happy ":)" could be replaced with a frown by a malicious
|
387
|
+
attacker, by using a winking eye ";(". This could misrepresent the
|
388
|
+
intended mood of the sender to the receiver.
|
389
|
+
|
390
|
+
|
391
|
+
|
392
|
+
Hay & Turkal Expires October 3, 2010 [Page 7]
|
393
|
+
|
394
|
+
Internet-Draft TCP Option to Denote Packet Mood April 2010
|
395
|
+
|
396
|
+
|
397
|
+
7. Related Work
|
398
|
+
|
399
|
+
This document does not seek to build a sentient network stack.
|
400
|
+
However, this framework could be used to express the emotions of a
|
401
|
+
sentient stack. If that were to happen, a new technical job class of
|
402
|
+
network psychologists could be created. Who doesn't like new jobs?
|
403
|
+
:)
|
404
|
+
|
405
|
+
8. IANA Considerations
|
406
|
+
|
407
|
+
If this work is standardized, IANA is requested to officially assign
|
408
|
+
value 25 as described in Section 3. Additional moods and emoticon
|
409
|
+
representations would require IESG approval or standards action
|
410
|
+
[RFC5226].
|
411
|
+
|
412
|
+
9. Informative References
|
413
|
+
|
414
|
+
[DSM-IV] "Diagnostic and Statistical Manual of Mental Disorders
|
415
|
+
(DSM)", <http://www.psychiatryonline.com/
|
416
|
+
resourceTOC.aspx?resourceID=1>.
|
417
|
+
|
418
|
+
[RFC0793] Postel, J., "Transmission Control Protocol", STD 7,
|
419
|
+
RFC 793, DOI 10.17487/RFC0793, September 1981,
|
420
|
+
<https://www.rfc-editor.org/info/rfc793>.
|
421
|
+
|
422
|
+
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
423
|
+
Requirement Levels", BCP 14, RFC 2119,
|
424
|
+
DOI 10.17487/RFC2119, March 1997,
|
425
|
+
<https://www.rfc-editor.org/info/rfc2119>.
|
426
|
+
|
427
|
+
[RFC3514] Bellovin, S., "The Security Flag in the IPv4 Header",
|
428
|
+
RFC 3514, DOI 10.17487/RFC3514, April 2003,
|
429
|
+
<https://www.rfc-editor.org/info/rfc3514>.
|
430
|
+
|
431
|
+
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
|
432
|
+
IANA Considerations Section in RFCs", RFC 5226,
|
433
|
+
DOI 10.17487/RFC5226, May 2008,
|
434
|
+
<https://www.rfc-editor.org/info/rfc5226>.
|
435
|
+
|
436
|
+
Authors' Addresses
|
437
|
+
|
438
|
+
Richard Hay
|
439
|
+
Google
|
440
|
+
1600 Amphitheatre Pkwy
|
441
|
+
Mountain View CA 94043
|
442
|
+
|
443
|
+
Email: rhay@google.com
|
444
|
+
|
445
|
+
|
446
|
+
|
447
|
+
|
448
|
+
Hay & Turkal Expires October 3, 2010 [Page 8]
|
449
|
+
|
450
|
+
Internet-Draft TCP Option to Denote Packet Mood April 2010
|
451
|
+
|
452
|
+
|
453
|
+
Warren Turkal
|
454
|
+
Google
|
455
|
+
1600 Amphitheatre Pkwy
|
456
|
+
Mountain View CA 94043
|
457
|
+
|
458
|
+
Email: turkal@google.com
|
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
|
+
Hay & Turkal Expires October 3, 2010 [Page 9]
|