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.
@@ -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]