asciidoctor-rfc 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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]