idnits 2.17.1 draft-ietf-v6ops-ipv4survey-trans-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document is more than 15 pages and seems to lack a Table of Contents. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 1753 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** There are 47 instances of too long lines in the document, the longest one being 6 characters in excess of 72. ** There are 5 instances of lines with control characters in the document. == There are 2 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. == There are 10 instances of lines with multicast IPv4 addresses in the document. If these are generic example addresses, they should be changed to use the 233.252.0.x range defined in RFC 5771 ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 697: '...ddresses in URLs SHOULD be avoided whe...' RFC 2119 keyword, line 769: '... the form that SHOULD be given unles...' RFC 2119 keyword, line 771: '... address MUST NOT be used in any con...' RFC 2119 keyword, line 813: '...st IP address is RECOMMENDED. In othe...' RFC 2119 keyword, line 817: '... applications MUST be able to cope ...' (14 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The "Author's Address" (or "Authors' Addresses") section title is misspelled. == Line 1037 has weird spacing: '...re, but all o...' == Line 1173 has weird spacing: '...ess for recei...' == Line 1201 has weird spacing: '... using the ...' == Line 1202 has weird spacing: '...). The time-...' == Line 1203 has weird spacing: '...to-live field...' -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (August 2003) is 7557 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Missing reference section? '19' on line 698 looks like a reference -- Missing reference section? '1' on line 1165 looks like a reference Summary: 7 errors (**), 0 flaws (~~), 10 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group Philip J. Nesser II 2 draft-ietf-v6ops-ipv4survey-trans-00.txt Nesser & Nesser Consulting 3 Internet Draft February 2003 4 Expires August 2003 6 Survey of IPv4 Addresses in Currently Deployed 7 IETF Transport Area Standards 9 This document is an Internet-Draft and is in full conformance with 10 all provisions of Section 10 of RFC2026. 12 Status of this Memo 14 Internet-Drafts are working documents of the Internet Engineering 15 Task Force (IETF), its areas, and its working groups. Note that other 16 groups may also distribute working documents as Internet-Drafts. 18 Internet-Drafts are draft documents valid for a maximum of six 19 months and may be updated, replaced, or obsoleted by other documents at 20 any time. It is inappropriate to use Internet-Drafts as reference 21 material or to cite them other than as "work in progress." 23 The list of current Internet-Drafts can be accessed at 24 http://www.ietf.org/ietf/1id-abstracts.txt 26 The list of Internet-Draft Shadow Directories can be accessed at 27 http://www.ietf.org/shadow.html. 29 Abstract 31 This document seeks to document all usage of IPv4 addresses in currently 32 deployed IETF Transport Area documented standards. In order to 33 successfully transition from an all IPv4 Internet to an all IPv6 Internet, 34 many interim steps will be taken. One of these steps is the evolution of 35 current protocols that have IPv4 dependencies. It is hoped that these 36 protocols (and their implementations) will be redesigned to be network 37 address independent, but failing that will at least dually support IPv4 38 and IPv6. To this end, all Standards (Full, Draft, and Proposed) as well 39 as Experimental RFCs will be surveyed and any dependencies will be documented. 41 1.0 Introduction 43 This work began as a megolithic document draft-ietf-ngtrans- 44 ipv4survey-XX.txt. In an effort to rework the information into a more 45 manageable form, it has been broken into 8 documents conforming to the 46 current IETF areas (Application, General, Internet, Manangement & Operations, 47 Routing, Security, Sub-IP and Transport). 49 1.1 Short Historical Perspective 51 There are many challenges that face the Internet Engineering community. 52 The foremost of these challenges has been the scaling issue. How to grow 53 a network that was envisioned to handle thousands of hosts to one that 54 will handle tens of millions of networks with billions of hosts. Over the 55 years this scaling problem has been overcome with changes to the network 56 layer and to routing protocols. (Ignoring the tremendous advances in 57 computational hardware) 59 The first "modern" transition to the network layer occurred in during the 60 early 1980's from the Network Control Protocol (NCP) to IPv4. This 61 culminated in the famous "flag day" of January 1, 1983. This version of 62 IP was documented in RFC 760. This was a version of IP with 8 bit network 63 and 24 bit host addresses. A year later IP was updated in RFC 791 to 64 include the famous A, B, C, D, & E class system. 66 Networks were growing in such a way that it was clear that a need for 67 breaking networks into smaller pieces was needed. In October of 1984 RFC 68 917 was published formalizing the practice of subnetting. 70 By the late 1980's it was clear that the current exterior routing protocol 71 used by the Internet (EGP) was not sufficient to scale with the growth of 72 the Internet. The first version of BGP was documented in 1989 in RFC 73 1105. 75 The next scaling issues to became apparent in the early 1990's was the 76 exhaustion of the Class B address space. The growth and commercialization 77 of the Internet had organizations requesting IP addresses in alarming 78 numbers. In May of 1992 over 45% of the Class B space was allocated. In 79 early 1993 RFC 1466 was published directing assignment of blocks of Class 80 C's be given out instead of Class B's. This solved the problem of address 81 space exhaustion but had significant impact of the routing infrastructure. 83 The number of entries in the "core" routing tables began to grow 84 exponentially as a result of RFC 1466. This led to the implementation of 85 BGP4 and CIDR prefix addressing. This may have solved the problem for the 86 present but there are still potential scaling issues. 88 Current Internet growth would have long overwhelmed the current address 89 space if industry didn't supply a solution in Network Address Translators 90 (NATs). To do this the Internet has sacrificed the underlying 91 "End-to-End" principle. 93 In the early 1990's the IETF was aware of these potential problems and 94 began a long design process to create a successor to IPv4 that would 95 address these issues. The outcome of that process was IPv6. 97 The purpose of this document is not to discuss the merits or problems of 98 IPv6. That is a debate that is still ongoing and will eventually be 99 decided on how well the IETF defines transition mechanisms and how 100 industry accepts the solution. The question is not "should," but "when." 102 1.2 A Brief Aside 104 Throughout this document there are discussions on how protocols might be 105 updated to support IPv6 addresses. Although current thinking is that IPv6 106 should suffice as the dominant network layer protocol for the lifetime of 107 the author, it is not unreasonable to contemplate further upgrade to IP. 108 Work done by the IRTF Interplanetary Internet Working Group shows one idea 109 of far reaching thinking. It may be a reasonable idea (or may not) to 110 consider designing protocols in such a way that they can be either IP 111 version aware or independent. This idea must be balanced against issues 112 of simplicity and performance. Therefore it is recommended that protocol 113 designer keep this issue in mind in future designs. 115 Just as a reminder, remember the words of Jon Postel: 117 "Be conservative in what you send; be liberal in what 118 you accept from others." 120 2.0 Methodology 122 To perform this study each class of IETF standards are investigated in 123 order of maturity: Full, Draft, and Proposed, as well as Experimental. 124 Informational RFC are not addressed. RFCs that have been obsoleted by 125 either newer versions or as they have transitioned through the standards 126 process are not covered. 128 Please note that a side effect of this choice of methodology is that 129 some protocols that are defined by a series of RFC's that are of different 130 levels of standards maturity are covered in different spots in the 131 document. Likewise other natural groupings (i.e. MIBs, SMTP extensions, 132 IP over FOO, PPP, DNS, etc.) could easily be imagined. 134 2.1 Scope 136 The procedure used in this investigation is an exhaustive reading of the 137 applicable RFC's. This task involves reading approximately 25000 pages 138 of protocol specifications. To compound this, it was more than a process 139 of simple reading. It was necessary to attempt to understand the purpose 140 and functionality of each protocol in order to make a proper determination 141 of IPv4 reliability. The author has made ever effort to make this effort 142 and the resulting document as complete as possible, but it is likely that 143 some subtle (or perhaps not so subtle) dependence was missed. The author 144 encourage those familiar (designers, implementers or anyone who has an 145 intimate knowledge) with any protocol to review the appropriate sections 146 and make comments. 148 2.2 Document Organization 150 The rest of the document sections are described below. 152 Sections 3, 4, 5, and 6 each describe the raw analysis of Full, Draft, 153 and Proposed Standards, and Experimental RFCs. Each RFC is discussed in 154 its turn starting with RFC 1 and ending with RFC 3247. The comments for 155 each RFC is "raw" in nature. That is, each RFC is discussed in a vacuum 156 and problems or issues discussed do not "look ahead" to see if the 157 problems have already been fixed. 159 Section 7 is an analysis of the data presented in Sections 3, 4, 5, and 160 6. It is here that all of the results are considered as a whole and the 161 problems that have been resolved in later RFCs are correlated. 163 3.0 Full Standards 165 Full Internet Standards (most commonly simply referred to as "Standards") 166 are fully mature protocol specification that are widely implemented and 167 used throughout the Internet. 169 3.1 RFC 768 User Datagram Protocol 171 Although UDP is a transport protocol there is one reference to the UDP/IP 172 interface that states; "The UDP module must be able to determine the 173 source and destination internet addresses and the protocol field from the 174 internet header." This does not force a rewrite of the protocol but will 175 clearly cause changes in implementations. 177 3.2 RFC 793 Transmission Control Protocol 179 Section 3.1 which specifies the header format for TCP. The TCP header is 180 free from IPv4 references but there is an inconsistency in the computation 181 of checksums. The text says: "The checksum also covers a 96 bit pseudo 182 header conceptually prefixed to the TCP header. This pseudo header 183 contains the Source Address, the Destination Address, the Protocol, and 184 TCP length." The first and second 32-bit words are clearly meant to 185 specify 32-bit IPv4 addresses. While no modification of the TCP protocol 186 is necessitated by this problem, an alternate needs to be specified as an 187 update document, or as part of another IPv6 document. 189 3.3 NetBIOS Service Protocols. RFC1001, RFC1002 191 3.3.1 RFC 1001 PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP 192 TRANSPORT: 193 CONCEPTS AND METHODS 195 Section 15.4.1. RELEASE BY B NODES defines: 197 A NAME RELEASE DEMAND contains the following information: 199 - NetBIOS name 200 - The scope of the NetBIOS name 201 - Name type: unique or group 202 - IP address of the releasing node 203 - Transaction ID 205 Section 15.4.2. RELEASE BY P NODES defines: 207 A NAME RELEASE REQUEST contains the following information: 209 - NetBIOS name 210 - The scope of the NetBIOS name 211 - Name type: unique or group 212 - IP address of the releasing node 213 - Transaction ID 215 A NAME RELEASE RESPONSE contains the following information: 217 - NetBIOS name 218 - The scope of the NetBIOS name 219 - Name type: unique or group 220 - IP address of the releasing node 221 - Transaction ID 222 - Result: 223 - Yes: name was released 224 - No: name was not released, a reason code is provided 226 Section 16. NetBIOS SESSION SERVICE states: 228 The NetBIOS session service begins after one or more IP addresses 229 have been found for the target name. These addresses may have been 230 acquired using the NetBIOS name query transactions or by other means, 231 such as a local name table or cache. 233 Section 16.1. OVERVIEW OF NetBIOS SESSION SERVICE 235 Session service has three phases: 237 Session establishment - it is during this phase that the IP 238 address and TCP port of the called name is determined, and a 239 TCP connection is established with the remote party. 241 16.1.1. SESSION ESTABLISHMENT PHASE OVERVIEW 243 An end-node begins establishment of a session to another node by 244 somehow acquiring (perhaps using the name query transactions or a 245 local cache) the IP address of the node or nodes purported to own the 246 destination name. 248 Once the TCP connection is open, the calling node sends session 249 service request packet. This packet contains the following 250 information: 252 - Calling IP address (see note) 253 - Calling NetBIOS name 254 - Called IP address (see note) 255 - Called NetBIOS name 257 NOTE: The IP addresses are obtained from the TCP service 258 interface. 260 If a compatible LISTEN exists, and there are adequate resources, then 261 the session server may transform the existing TCP connection into the 262 NetBIOS data session. Alternatively, the session server may 263 redirect, or "retarget" the caller to another TCP port (and IP 264 address). 266 If the caller is redirected, the caller begins the session 267 establishment anew, but using the new IP address and TCP port given 268 in the retarget response. Again a TCP connection is created, and 269 again the calling and called node exchange credentials. The called 270 party may accept the call, reject the call, or make a further 271 redirection. 273 17.1. OVERVIEW OF NetBIOS DATAGRAM SERVICE 275 Every NetBIOS datagram has a named destination and source. To 276 transmit a NetBIOS datagram, the datagram service must perform a name 277 query operation to learn the IP address and the attributes of the 278 destination NetBIOS name. (This information may be cached to avoid 279 the overhead of name query on subsequent NetBIOS datagrams.) 281 17.1.1. UNICAST, MULTICAST, AND BROADCAST 283 NetBIOS datagrams may be unicast, multicast, or broadcast. A NetBIOS 284 datagram addressed to a unique NetBIOS name is unicast. A NetBIOS 285 datagram addressed to a group NetBIOS name, whether there are zero, 286 one, or more actual members, is multicast. A NetBIOS datagram sent 287 using the NetBIOS "Send Broadcast Datagram" primitive is broadcast. 289 17.1.2. FRAGMENTATION OF NetBIOS DATAGRAMS 291 When the header and data of a NetBIOS datagram exceeds the maximum 292 amount of data allowed in a UDP packet, the NetBIOS datagram must be 293 fragmented before transmission and reassembled upon receipt. 295 A NetBIOS Datagram is composed of the following protocol elements: 297 - IP header of 20 bytes (minimum) 298 - UDP header of 8 bytes 299 - NetBIOS Datagram Header of 14 bytes 300 - The NetBIOS Datagram data. 302 18. NODE CONFIGURATION PARAMETERS 304 - B NODES: 305 - Node's permanent unique name 306 - Whether IGMP is in use 307 - Broadcast IP address to use 308 - Whether NetBIOS session keep-alives are needed 309 - Usable UDP data field length (to control fragmentation) 310 - P NODES: 311 - Node's permanent unique name 312 - IP address of NBNS 313 - IP address of NBDD 314 - Whether NetBIOS session keep-alives are needed 315 - Usable UDP data field length (to control fragmentation) 316 - M NODES: 317 - Node's permanent unique name 318 - Whether IGMP is in use 319 - Broadcast IP address to use 320 - IP address of NBNS 321 - IP address of NBDD 322 - Whether NetBIOS session keep-alives are needed 323 - Usable UDP data field length (to control fragmentation) 325 All of the proceeding sections make implicit use of IPv4 addresses and 326 a new specification should be defined for use of IPv6 underlying addresses. 328 3.3.2 RFC 1002 PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP 329 TRANSPORT: 330 DETAILED SPECIFICATIONS 332 Section 4.2.1.3. RESOURCE RECORD defines 334 RESOURCE RECORD RR_TYPE field definitions: 336 Symbol Value Description: 338 A 0x0001 IP address Resource Record (See REDIRECT NAME 339 QUERY RESPONSE) 341 Sections 4.2.2. NAME REGISTRATION REQUEST, 4.2.3. NAME OVERWRITE 342 REQUEST & DEMAND, 4.2.4. NAME REFRESH REQUEST, 4.2.5. POSITIVE NAME 343 REGISTRATION RESPONSE, 4.2.6. NEGATIVE NAME REGISTRATION RESPONSE, 344 4.2.7. END-NODE CHALLENGE REGISTRATION RESPONSE, 4.2.9. NAME RELEASE 345 REQUEST & DEMAND, 4.2.10. POSITIVE NAME RELEASE RESPONSE, 346 4.2.11. NEGATIVE NAME RELEASE RESPONSE and Sections 4.2.13. POSITIVE 347 NAME QUERY RESPONSEall contain 32 bit fields labeled "NB_ADDRESS" clearly 348 defined for IPv4 addresses 350 Sections 4.2.15. REDIRECT NAME QUERY RESPONSE contains a field 351 "NSD_IP_ADDR" 352 which also is designed for a IPv4 address. 354 Section 4.3.5. SESSION RETARGET RESPONSE PACKET 356 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 357 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 358 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 359 | TYPE | FLAGS | LENGTH | 360 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 361 | RETARGET_IP_ADDRESS | 362 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 363 | PORT | 364 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 366 Section 4.4.1. NetBIOS DATAGRAM HEADER 368 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 369 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 370 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 371 | MSG_TYPE | FLAGS | DGM_ID | 372 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 373 | SOURCE_IP | 374 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 375 | SOURCE_PORT | DGM_LENGTH | 376 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 377 | PACKET_OFFSET | 378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 380 4.4.2. DIRECT_UNIQUE, DIRECT_GROUP, & BROADCAST DATAGRAM 382 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 383 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 385 | MSG_TYPE | FLAGS | DGM_ID | 386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 387 | SOURCE_IP | 388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 389 | SOURCE_PORT | DGM_LENGTH | 390 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 391 | PACKET_OFFSET | | 392 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 393 | | 394 / SOURCE_NAME / 395 / / 396 | | 397 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 398 | | 399 / DESTINATION_NAME / 400 / / 401 | | 402 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 403 | | 404 / USER_DATA / 405 / / 406 | | 407 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 409 Section 4.4.3. DATAGRAM ERROR PACKET 411 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 412 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 413 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 414 | MSG_TYPE | FLAGS | DGM_ID | 415 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 416 | SOURCE_IP | 417 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 418 | SOURCE_PORT | ERROR_CODE | 419 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 421 4.4.4. DATAGRAM QUERY REQUEST 423 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 424 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 425 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 426 | MSG_TYPE | FLAGS | DGM_ID | 427 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 428 | SOURCE_IP | 429 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 430 | SOURCE_PORT | | 431 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 432 | | 433 / DESTINATION_NAME / 434 / / 435 | | 436 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 438 4.4.5. DATAGRAM POSITIVE AND NEGATIVE QUERY RESPONSE 440 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 441 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 442 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 443 | MSG_TYPE | FLAGS | DGM_ID | 444 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 445 | SOURCE_IP | 446 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 447 | SOURCE_PORT | | 448 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 449 | | 450 / DESTINATION_NAME / 451 / / 452 | | 453 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 455 5.3. NetBIOS DATAGRAM SERVICE PROTOCOLS 457 The following are GLOBAL variables and should be NetBIOS user 458 configurable: 460 - BROADCAST_ADDRESS: the IP address B-nodes use to send datagrams 461 with group name destinations and broadcast datagrams. The 462 default is the IP broadcast address for a single IP network. 464 There is also a large amount of pseudo code for most of the protocols 465 functionality that make no specific reference to IPv4 addresses. However 466 they assume the use of the above defined packets. The pseudo code may be 467 valid for IPv6 as long as the packet formats are updated. 469 3.4 RFC 1006 ISO Transport Service on top of the TCP (Version: 3) 471 Section 5. The Protocol defines a mapping specification 473 Mapping parameters is also straight-forward: 475 network service TCP 476 ------- --- 477 CONNECTION RELEASE 479 Called address server's IP address 480 (4 octets) 482 Calling address client's IP address 483 (4 octets) 485 4.0 Draft Standards 487 Draft Standards represent the penultimate standard level in the IETF. 488 A protocol can only achieve draft standard when there are multiple, 489 independent, interoperable implementations. Draft Standards are usually 490 quite mature and widely used. 492 5.0 Proposed Standards 494 Proposed Standards are introductory level documents. There are no 495 requirements for even a single implementation. In many cases Proposed 496 are never implemented or advanced in the IETF standards process. They 497 therefore are often just proposed ideas that are presented to the Internet 498 community. Sometimes flaws are exposed or they are one of many competing 499 solutions to problems. In these later cases, no discussion is presented 500 as it would not serve the purpose of this discussion. 502 5.01 RFC 1144 Compressing TCP/IP headers for low-speed serial 503 links (IP-CMPRS) 505 This RFC is specifically oriented towards TCP/IPv4 packet headers 506 and will not work in it's current form. Significant work has already 507 been done on similar algorithms for TCP/IPv6 headers. 509 5.02 RFC 1323 TCP Extensions for High Performance (TCP-EXT) 511 There are no IPv4 dependencies in this protocol. 513 5.03 RFC 1553 Compressing IPX Headers Over WAN Media (CIPX) (CIPX) 515 There are no IPv4 dependencies in this protocol. 517 5.04 RFC 1692 Transport Multiplexing Protocol (TMux) (TMUX) 519 Section 6. Implementation Notes is states: 521 Because the TMux mini-header does not contain a TOS field, only 522 segments with the same IP TOS field should be contained in a single 523 TMux message. As most systems do not use the TOS feature, this is 524 not a major restriction. Where the TOS field is used, it may be 525 desirable to hold several messages under construction for a host, one 526 for each TOS value. 528 Segments containing IP options should not be multiplexed. 530 This is clearly IPv4 specific, but a simple restatement in IPv6 531 terms will allow complete functionality. 533 5.05 RFC 1831 RPC: Remote Procedure Call Protocol Specification 534 Version 2 RPC 536 There are no IPv4 dependencies in this protocol. 538 5.06 RFC 1833 Binding Protocols for ONC RPC Version 2 540 In Section 2.1 RPCBIND Protocol Specification (in RPC Language) 541 there is the following code fragment: 543 * Protocol family (r_nc_protofmly): 544 * This identifies the family to which the protocol belongs. The 545 * following values are defined: 546 * NC_NOPROTOFMLY "-" 547 * NC_LOOPBACK "loopback" 548 * NC_INET "inet" 549 * NC_IMPLINK "implink" 550 * NC_PUP "pup" 551 * NC_CHAOS "chaos" 552 * NC_NS "ns" 553 * NC_NBS "nbs" 554 * NC_ECMA "ecma" 555 * NC_DATAKIT "datakit" 556 * NC_CCITT "ccitt" 557 * NC_SNA "sna" 558 * NC_DECNET "decnet" 559 * NC_DLI "dli" 560 * NC_LAT "lat" 561 * NC_HYLINK "hylink" 562 * NC_APPLETALK "appletalk" 563 * NC_NIT "nit" 564 * NC_IEEE802 "ieee802" 565 * NC_OSI "osi" 566 * NC_X25 "x25" 567 * NC_OSINET "osinet" 568 * NC_GOSIP "gosip" 570 It is clear that the value for NC_INET is intended for the IP protocol 571 and is seems clear that it is IPv4 dependent. 573 5.07 RFC 1889 RTP: A Transport Protocol for Real-Time Applications 574 (RTP) 576 In general this protocol makes many references to running on UDP over 577 IP unicast, as well as multicast addresses. There seems to be no 578 reason that it will run effectively over IPv6 unicast and multicast. 580 The only possible point is in Section A.7 Computing the RTCP 581 Transmission Interval which contains the following code fragment: 583 /* 584 * Very first call at application start-up uses half the min 585 * delay for quicker notification while still allowing some time 586 * before reporting for randomization and to learn about other 587 * sources so the report interval will converge to the correct 588 * interval more quickly. The average RTCP size is initialized 589 * to 128 octets which is conservative (it assumes everyone else 590 * is generating SRs instead of RRs: 20 IP + 8 UDP + 52 SR + 48 591 * SDES CNAME). 592 */ 593 if (initial) { 594 rtcp_min_time /= 2; 595 *avg_rtcp_size = 128; 596 } 598 which assumes an IPv4 header length of 20 bytes. It seems a simple 599 update to this code to check for IP version and pick a value 600 appropriate for the IP version. 602 5.08 RFC 1890 RTP Profile for Audio and Video Conferences with 603 Minimal Control (RTP-AV) 605 There are no IPv4 dependencies in this protocol. 607 5.09 RFC 1962 The PPP Compression Control Protocol (CCP) (PPP-CCP) 609 There are no IPv4 dependencies in this protocol. 611 5.10 RFC 2018 TCP Selective Acknowledgement Options (TCP-ACK) 613 There are no IPv4 dependencies in this protocol. 615 5.11 RFC 2029 RTP Payload Format of Sun's CellB Video Encoding 616 (RTP-CELLB) 618 There are no IPv4 dependencies in this protocol. 620 5.12 RFC 2032 RTP Payload Format for H.261 Video Streams 621 (RTP-H.261) 623 There are no IPv4 dependencies in this protocol. 625 5.13 RFC 2126 ISO Transport Service on top of TCP (ITOT) (ITOT) 627 This protocol is IPv6 aware and has no issues. 629 5.14 RFC 2190 RTP Payload Format for H.263 Video Streams 631 There are no IPv4 dependencies in this protocol. 633 5.15 RFC 2198 RTP Payload for Redundant Audio Data (RTP-RAD) 635 There are no IPv4 dependencies in this protocol. 637 5.16 RFC 2205 Resource ReSerVation Protocol (RSVP) -- 638 Version 1 Functional Specification (RSVP) 640 In Section 1. Introduction the statement is made: 642 RSVP operates on top of IPv4 or IPv6, occupying the place of a 643 transport protocol in the protocol stack. 645 Appendix A defines all of the header formats for RSVP and there are 646 multiple formats for both IPv4 and IPv6. 648 There are no IPv4 dependencies in this protocol. 650 5.17 RFC 2207 RSVP Extensions for IPSEC Data Flows (RSVP-IPSEC) 652 The defined IPsec extensions are valid for both IPv4 & IPv6. 653 There are no IPv4 dependencies in this protocol. 655 5.18 RFC 2210 The Use of RSVP with IETF Integrated Services 656 (RSVP-IS) 658 There are no IPv4 dependencies in this protocol. 660 5.19 RFC 2211 Specification of the Controlled-Load Network 661 Element Service 663 There are no IPv4 dependencies in this protocol. 665 5.20 RFC 2212 Specification of Guaranteed Quality of Service 666 (GQOS) 668 There are no IPv4 dependencies in this protocol. 670 5.21 RFC 2215 General Characterization Parameters for 671 Integrated Service Network Elements 673 There are no IPv4 dependencies in this protocol. 675 5.22 RFC 2250 RTP Payload Format for MPEG1/MPEG2 Video 676 (RTP-MPEG) 678 There are no IPv4 dependencies in this protocol. 680 5.23 RFC 2326 Real Time Streaming Protocol (RTSP) (RTSP) 682 Section 3.2 RTSP URL defines: 684 The "rtsp" and "rtspu" schemes are used to refer to network resources 685 via the RTSP protocol. This section defines the scheme-specific 686 syntax and semantics for RTSP URLs. 688 rtsp_URL = ( "rtsp:" | "rtspu:" ) 689 "//" host [ ":" port ] [ abs_path ] 690 host = 693 port = *DIGIT 695 Although later in that section the following text is added: 697 The use of IP addresses in URLs SHOULD be avoided whenever possible 698 (see RFC 1924 [19]). 700 Some later examples show: 702 Example: 704 C->S: DESCRIBE rtsp://server.example.com/fizzle/foo RTSP/1.0 705 CSeq: 312 706 Accept: application/sdp, application/rtsl, application/mheg 708 S->C: RTSP/1.0 200 OK 709 CSeq: 312 710 Date: 23 Jan 1997 15:35:06 GMT 711 Content-Type: application/sdp 712 Content-Length: 376 714 v=0 715 o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 716 s=SDP Seminar 717 i=A Seminar on the session description protocol 718 u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps 719 e=mjh@isi.edu (Mark Handley) 720 c=IN IP4 224.2.17.12/127 721 t=2873397496 2873404696 722 a=recvonly 723 m=audio 3456 RTP/AVP 0 724 m=video 2232 RTP/AVP 31 725 m=whiteboard 32416 UDP WB 726 a=orient:portrait 728 which implies the use of the "IP4" tag and it should be possible to 729 use an "IP6" tag. There are also numerous other similar examples 730 using the "IP4" tag. 732 There seems to be nothing that requires IPv4, and a small set of 733 updates can be created to document IPv6 functionality. 735 5.24 RFC 2327 SDP: Session Description Protocol (SDP) 737 Like the previous document, a sample SDP description is given as: 739 An example SDP description is: 741 v=0 742 o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 743 s=SDP Seminar 744 i=A Seminar on the session description protocol 745 u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps 746 e=mjh@isi.edu (Mark Handley) 747 c=IN IP4 224.2.17.12/127 748 t=2873397496 2873404696 749 a=recvonly 750 m=audio 49170 RTP/AVP 0 751 m=video 51372 RTP/AVP 31 752 m=application 32416 udp wb 753 a=orient:portrait 755 Later an explicit discussion of the network addressing scheme is 756 given: 758 is a text string giving the type of network. 759 Initially "IN" is defined to have the meaning "Internet".
is a text string giving the type of the address that follows. 761 Initially "IP4" and "IP6" are defined.
is the globally 762 unique address of the machine from which the session was created. 763 For an address type of IP4, this is either the fully-qualified domain 764 name of the machine, or the dotted-decimal representation of the IP 765 version 4 address of the machine. For an address type of IP6, this 766 is either the fully-qualified domain name of the machine, or the 767 compressed textual representation of the IP version 6 address of the 768 machine. For both IP4 and IP6, the fully-qualified domain name is 769 the form that SHOULD be given unless this is unavailable, in which 770 case the globally unique address may be substituted. A local IP 771 address MUST NOT be used in any context where the SDP description 772 might leave the scope in which the address is meaningful. 774 Although later in the definitions of connection types the following 775 text is found: 777 Connection Data 779 c=
781 The "c=" field contains connection data. 783 A session announcement must contain one "c=" field in each media 784 description (see below) or a "c=" field at the session-level. It may 785 contain a session-level "c=" field and one additional "c=" field per 786 media description, in which case the per-media values override the 787 session-level settings for the relevant media. 789 The first sub-field is the network type, which is a text string 790 giving the type of network. Initially "IN" is defined to have the 791 meaning "Internet". 793 The second sub-field is the address type. This allows SDP to be used 794 for sessions that are not IP based. Currently only IP4 is defined. 796 The third sub-field is the connection address. Optional extra 797 subfields may be added after the connection address depending on the 798 value of the
field. 800 For IP4 addresses, the connection address is defined as follows: 802 o Typically the connection address will be a class-D IP multicast 804 group address. If the session is not multicast, then the 805 connection address contains the fully-qualified domain name or the 806 unicast IP address of the expected data source or data relay or 807 data sink as determined by additional attribute fields. It is not 808 expected that fully-qualified domain names or unicast addresses 809 will be given in a session description that is communicated by a 810 multicast announcement, though this is not prohibited. If a 811 unicast data stream is to pass through a network address 812 translator, the use of a fully-qualified domain name rather than an 813 unicast IP address is RECOMMENDED. In other cases, the use of an 814 IP address to specify a particular interface on a multi-homed host 815 might be required. Thus this specification leaves the decision as 816 to which to use up to the individual application, but all 817 applications MUST be able to cope with receiving both formats. 819 o Conferences using an IP multicast connection address must also have 820 a time to live (TTL) value present in addition to the multicast 821 address. The TTL and the address together define the scope with 822 which multicast packets sent in this conference will be sent. TTL 823 values must be in the range 0-255. 825 The TTL for the session is appended to the address using a slash as 826 a separator. An example is: 828 c=IN IP4 224.2.1.1/127 830 Hierarchical or layered encoding schemes are data streams where the 831 encoding from a single media source is split into a number of 832 layers. The receiver can choose the desired quality (and hence 833 bandwidth) by only subscribing to a subset of these layers. Such 834 layered encodings are normally transmitted in multiple multicast 835 groups to allow multicast pruning. This technique keeps unwanted 836 traffic from sites only requiring certain levels of the hierarchy. 837 For applications requiring multiple multicast groups, we allow the 838 following notation to be used for the connection address: 840 // 842 If the number of addresses is not given it is assumed to be one. 843 Multicast addresses so assigned are contiguously allocated above 844 the base address, so that, for example: 846 c=IN IP4 224.2.1.1/127/3 848 would state that addresses 224.2.1.1, 224.2.1.2 and 224.2.1.3 are 849 to be used at a ttl of 127. This is semantically identical to 850 including multiple "c=" lines in a media description: 852 c=IN IP4 224.2.1.1/127 853 c=IN IP4 224.2.1.2/127 854 c=IN IP4 224.2.1.3/127 856 Multiple addresses or "c=" lines can only be specified on a per- 857 media basis, and not for a session-level "c=" field. 859 It is illegal for the slash notation described above to be used for 860 IP unicast addresses. 862 This is probably because the definitions for IPv6 multicast was not 863 standardized at the time of this documents production. A similar 864 mechanism for IPv6 multicast could defined in a straightforward manner. 866 5.25 RFC 2380 RSVP over ATM Implementation Requirements 868 This protocol is both IPv4 and IPv6 aware. 870 5.26 RFC 2381 Interoperation of Controlled-Load Service and 871 Guaranteed Service with ATM 873 There does not seem any inherent IPv4 limitations in this protocol, 874 but it assumes work of other standards that have IPv4 limitations. 876 5.27 RFC 2393 IP Payload Compression Protocol (IPComp) (IPCOMP) 878 This protocol is both IPv4 and IPv6 aware. 880 5.28 RFC 2429 RTP Payload Format for the 1998 Version of ITU-T 881 Rec. H.263 Video (H.263+) 883 There are no IPv4 dependencies in this protocol. 885 5.29 RFC 2431 RTP Payload Format for BT.656 Video Encoding 887 There are no IPv4 dependencies in this protocol. 889 5.30 RFC 2435 RTP Payload Format for JPEG-compressed Video 891 There are no IPv4 dependencies in this protocol. 893 5.31 RFC 2474 Definition of the Differentiated Services Field 894 (DS Field) in the IPv4 and IPv6 Headers 896 This protocol is both IPv4 and IPv6 aware. 898 5.32 RFC 2508 Compressing IP/UDP/RTP Headers for Low-Speed 899 Serial Links 901 This protocol is both IPv4 and IPv6 aware. 903 5.33 RFC 2509 IP Header Compression over PPP (IPCOM-PPP) 905 This protocol is both IPv4 and IPv6 aware. 907 5.34 RFC 2543 SIP: Session Initiation Protocol (SIP) 909 In Section 2 SIP Uniform Resource Locators the following specification 910 is made: 912 SIP-URL = "sip:" [ userinfo "@" ] hostport 913 url-parameters [ headers ] 915 hostport = host [ ":" port ] 916 host = hostname | IPv4address 917 hostname = *( domainlabel "." ) toplabel [ "." ] 919 IPv4address = 1*digit "." 1*digit "." 1*digit "." 1*digit 921 Later it states: 923 The issue of IPv6 literal addresses in URLs is being looked at 924 elsewhere in the IETF. SIP implementers are advised to keep up to 925 date on that activity. 927 Further: 929 URL parameters: SIP URLs can define specific parameters of the 930 request. URL parameters are added after the host component and 931 are separated by semi-colons. The transport parameter determines 932 the transport mechanism (UDP or TCP). UDP is to be assumed 933 when no explicit transport parameter is included. The maddr 934 parameter provides the server address to be contacted for this 935 user, overriding the address supplied in the host field. This 936 address is typically a multicast address, but could also be the 937 address of a backup server. The ttl parameter determines the 938 time-to-live value of the UDP multicast packet and MUST only be 939 used if maddr is a multicast address and the transport protocol 940 is UDP. The user parameter was described above. For example, to 941 specify to call j.doe@big.com using multicast to 239.255.255.1 942 with a ttl of 15, the following URL would be used: 944 sip:j.doe@big.com;maddr=239.255.255.1;ttl=15 946 and then: 948 sip:alice@10.1.2.3 950 and in Section 4.2.6 REGISTER 952 A client uses the REGISTER method to register the address listed in 953 the To header field with a SIP server. 955 A user agent MAY register with a local server on startup by sending a 956 REGISTER request to the well-known "all SIP servers" multicast 957 address "sip.mcast.net" (224.0.1.75). 959 There are many examples of transactions which use IPv4 only addresses. 960 This protocol clearly needs to be updated for IPv6. 962 5.35 RFC 2581 TCP Congestion Control (TCP-CC) 964 There are no IPv4 dependencies in this protocol. 966 5.36 RFC 2597 Assured Forwarding PHB Group 968 This protocol is both IPv4 and IPv6 aware. 970 5.37 RFC 2598 An Expedited Forwarding PHB 972 This protocol is both IPv4 and IPv6 aware. 974 5.38 RFC 2658 RTP Payload Format for PureVoice(tm) Audio 976 There are no IPv4 dependencies in this protocol. 978 5.39 RFC 2678 IPPM Metrics for Measuring Connectivity (IPPM-MET) 980 This protocol only supports IPv4. An updated protocol for IPv6 will 981 need to be defined. 983 5.40 RFC 2679 A One-way Delay Metric for IPPM 985 This protocol only supports IPv4. An updated protocol for IPv6 will 986 need to be defined. 988 5.41 RFC 2680 A One-way Packet Loss Metric for IPPM 990 This protocol only supports IPv4. An updated protocol for IPv6 will 991 need to be defined. 993 5.42 RFC 2681 A Round-trip Delay Metric for IPPM 995 This protocol only supports IPv4. An updated protocol for IPv6 will 996 need to be defined. 998 5.43 RFC 2730 Multicast Address Dynamic Client Allocation Protocol 999 (MADCAP) (MADCAP) 1001 This protocol is both IPv4 and IPv6 aware and needs no changes. 1003 5.44 RFC 2733 An RTP Payload Format for Generic Forward Error 1004 Correction 1006 This protocol is dependent on SDP which has IPv4 dependencies. Once 1007 that limitation is fixed, then this protocol should support IPv6. 1009 5.45 RFC 2745 RSVP Diagnostic Messages 1011 This protocol is both IPv4 and IPv6 aware and needs no changes. 1013 5.46 RFC 2746 RSVP Operation Over IP Tunnels 1015 This protocol is both IPv4 and IPv6 aware and needs no changes. 1017 5.47 RFC 2750 RSVP Extensions for Policy Control 1019 There are no IPv4 dependencies in this protocol. 1021 5.48 RFC 2751 Signaled Preemption Priority Policy Element 1022 (RSVP) 1024 There are no IPv4 dependencies in this protocol. 1026 5.49 RFC 2752 Identity Representation for RSVP 1028 There are no IPv4 dependencies in this protocol. 1030 5.50 RFC 2793 RTP Payload for Text Conversation 1032 There are no IPv4 dependencies in this protocol. 1034 5.51 RFC 2814 SBM (Subnet Bandwidth Manager): A Protocol for 1035 RSVP-based Admission Control over IEEE 802-style networks 1037 This protocol claims to be both IPv4 and IPv6 aware, but all of 1038 the examples are given with IPv4 addresses. That, by itself is 1039 not a telling point but the following statement is made: 1041 a) LocalDSBMAddrInfo -- current DSBM's IP address (initially, 1042 0.0.0.0) and priority. All IP addresses are assumed to be in 1043 network byte order. In addition, current DSBM's L2 address is 1044 also stored as part of this state information. 1046 which could just be sloppy wording. Perhaps a short document 1047 clarifying the text is appropriate. 1049 5.52 RFC 2815 Integrated Service Mappings on IEEE 802 Networks 1051 There are no IPv4 dependencies in this protocol. 1053 5.53 RFC 2833 RTP Payload for DTMF Digits, Telephony Tones 1054 and Telephony Signals 1056 There are no IPv4 dependencies in this protocol. 1058 5.54 RFC 2848 The PINT Service Protocol: Extensions to SIP and SDP 1059 for IP Access to Telephone Call Services 1061 This protocol is dependent on SDP & SIP which has IPv4 dependencies. 1062 Once these limitations are fixed, then this protocol should support 1063 IPv6. 1065 5.55 RFC 2862 RTP Payload Format for Real-Time Pointers 1067 There are no IPv4 dependencies in this protocol. 1069 5.56 RFC 2872 Application and Sub Application Identity Policy Element 1070 for Use with RSVP 1072 There are no IPv4 dependencies in this protocol. 1074 5.57 RFC 2873 TCP Processing of the IPv4 Precedence Field 1076 This protocol documents a technique using IPv4 headers. A similar 1077 technique, if needed, will need to be defined for IPv6. 1079 5.58 RFC 2883 An Extension to the Selective Acknowledgement (SACK) 1080 Option for TCP (SACK) 1082 There are no IPv4 dependencies in this protocol. 1084 5.59 RFC 2907 MADCAP Multicast Scope Nesting State Option 1086 This protocol is both IPv4 and IPv6 aware and needs no changes. 1088 5.60 RFC 2960 Stream Control Transmission Protocol 1090 This protocol is both IPv4 and IPv6 aware and needs no changes. 1092 5.61 RFC 2961 RSVP Refresh Overhead Reduction Extensions 1094 This protocol is both IPv4 and IPv6 aware and needs no changes. 1096 5.62 RFC 2976 The SIP INFO Method 1098 There are no IPv4 dependencies in this protocol. 1100 5.63 RFC 2988 Computing TCP's Retransmission Timer 1102 There are no IPv4 dependencies in this protocol. 1104 5.64 RFC 2996 Format of the RSVP DCLASS Object 1106 There are no IPv4 dependencies in this protocol. 1108 5.65 RFC 2997 Specification of the Null Service Type 1110 There are no IPv4 dependencies in this protocol. 1112 5.66 RFC 3003 The audio/mpeg Media Type 1114 There are no IPv4 dependencies in this protocol. 1116 5.67 RFC 3006 Integrated Services in the Presence of 1117 Compressible Flows 1119 This document defines a protocol that discusses compressible 1120 flows, but only in an IPv4 context. When IPv6 compressible flows 1121 are defined, a similar technique should also be defined. 1123 5.68 RFC 3010 NFS version 4 Protocol (NFSv4) 1125 This protocol is both IPv4 and IPv6 aware and needs no changes. 1127 5.69 RFC 3015 Megaco Protocol Version 1.0 (MEGACO) 1129 This protocol is both IPv4 and IPv6 aware and needs no changes. 1131 5.70 RFC 3016 RTP Payload Format for MPEG-4 Audio/Visual 1132 Streams 1134 There are no IPv4 dependencies in this protocol. 1136 5.71 RFC 3033 The Assignment of the Information Field and Protocol 1137 Identifier in the Q.2941 Generic Identifier and Q.2957 1138 User-to-user Signaling for the Internet Protocol 1140 This protocol is both IPv4 and IPv6 aware and needs no changes. 1142 5.72 RFC 3042 Enhancing TCP's Loss Recovery Using Limited Transmit 1144 There are no IPv4 dependencies in this protocol. 1146 5.73 RFC 3047 RTP Payload Format for ITU-T Recommendation G.722.1 1148 There are no IPv4 dependencies in this protocol. 1150 5.74 RFC 3057 ISDN Q.921-User Adaptation Layer 1152 There are no IPv4 dependencies in this protocol. 1154 5.75 RFC 3095 Robust Header Compression (ROHC): Framework and four 1155 profiles 1157 This protocol is both IPv4 and IPv6 aware and needs no changes. 1159 5.76 RFC 3108 Conventions for the use of the Session Description 1160 Protocol (SDP) for ATM Bearer Connections 1162 This protocol is currently limited to IPv4 as amplified below: 1164 The range and format of the and 1165 subparameters is per [1]. The is a decimal number 1166 between 1024 and 65535. It is an odd number. If an even number in 1167 this range is specified, the next odd number is used. The 1168 is expressed in the usual dotted decimal IP address 1169 representation, from 0.0.0.0 to 255.255.255.255. 1171 and 1173 IP address for receipt Dotted decimal, 7-15 chars 1174 of RTCP packets 1176 5.77 RFC 3119 A More Loss-Tolerant RTP Payload Format for MP3 Audio 1178 There are no IPv4 dependencies in this protocol. 1180 5.78 RFC 3124 The Congestion Manager 1182 This document is IPv4 limited since it uses the IPv4 TOS header 1183 field. 1185 6.0 Experimental RFCs 1187 Experimental RFCs typically define protocols that do not have widescale 1188 implementation or usage on the Internet. They are often propriety in 1189 nature or used in limited arenas. They are documented to the Internet 1190 community in order to allow potential interoperability or some other 1191 potential useful scenario. In a few cases they are presented as 1192 alternatives to the mainstream solution to an acknowledged problem. 1194 6.01 RFC 908 Reliable Data Protocol (RDP) 1196 This document is IPv4 limited as stated in the following section: 1198 4.1 IP Header Format 1200 When used in the internet environment, RDP segments are sent 1201 using the version 4 IP header as described in RFC791, "Internet 1202 Protocol." The RDP protocol number is ??? (decimal). The time- 1203 to-live field should be set to a reasonable value for the 1204 network. 1206 All other fields should be set as specified in RFC-791. 1208 A new protocol specification would be needed to support IPv6. 1210 6.02 RFC 938 Internet Reliable Transaction Protocol functional and 1211 interface specification (IRTP) 1213 This protocol specification states: 1215 4.1 State Variables 1217 Each IRTP is associated with a single internet address. The 1218 synchronization mechanism of the IRTP depends on the requirement 1219 that each IRTP module knows the internet addresses of all modules 1220 with which it will communicate. For each remote internet address, 1221 an IRTP module must maintain the following information (called the 1222 connection table): 1224 rem_addr (32 bit remote internet address) 1226 A new specification that is IPv6 aware would need to be created. 1228 6.03 RFC 998 NETBLT: A bulk data transfer protocol (NETBLT) 1230 This RFC states: 1232 The active end specifies a passive client through a client-specific 1233 "well-known" 16 bit port number on which the passive end listens. 1234 The active end identifies itself through a 32 bit Internet address 1235 and a unique 16 bit port number. 1237 Clearly, this is IPv4 dependent, but could easily be modified to support 1238 IPv6 addressing. 1240 6.04 RFC 1045 VMTP: Versatile Message Transaction Protocol (VMTP) 1242 This protocol has many IPv4 dependencies in its implementation 1243 appendices. For operations over IPv6 a similar implementation 1244 procedure must be defined. The IPv4 specific information is 1245 show below. 1247 IV.1. Domain 1 1249 For initial use of VMTP, we define the domain with Domain identifier 1 1250 as follows: 1252 +-----------+----------------+------------------------+ 1253 | TypeFlags | Discriminator | Internet Address | 1254 +-----------+----------------+------------------------+ 1255 4 bits 28 bits 32 bits 1257 The Internet address is the Internet address of the host on which this 1258 entity-id is originally allocated. The Discriminator is an arbitrary 1259 value that is unique relative to this Internet host address. In 1260 addition, the host must guarantee that this identifier does not get 1261 reused for a long period of time after it becomes invalid. ("Invalid" 1262 means that no VMTP module considers in bound to an entity.) One 1263 technique is to use the lower order bits of a 1 second clock. The clock 1264 need not represent real-time but must never be set back after a crash. 1265 In a simple implementation, using the low order bits of a clock as the 1266 time stamp, the generation of unique identifiers is overall limited to 1267 no more than 1 per second on average. The type flags were described in 1268 Section 3.1. 1270 An entity may migrate between hosts. Thus, an implementation can 1271 heuristically use the embedded Internet address to locate an entity but 1272 should be prepared to maintain a cache of redirects for migrated 1273 entities, plus accept Notify operations indicating that migration has 1274 occurred. 1276 Entity group identifiers in Domain 1 are structured in one of two forms, 1277 depending on whether they are well-known or dynamically allocated 1278 identifiers. A well-known entity identifier is structured as: 1280 +-----------+----------------+------------------------+ 1281 | TypeFlags | Discriminator |Internet Host Group Addr| 1282 +-----------+----------------+------------------------+ 1283 4 bits 28 bits 32 bits 1285 with the second high-order bit (GRP) set to 1. This form of entity 1286 identifier is mapped to the Internet host group address specified in the 1287 low-order 32 bits. The Discriminator distinguishes group identifiers 1288 using the same Internet host group. Well-known entity group identifiers 1289 should be allocated to correspond to the basic services provided by 1290 hosts that are members of the group, not specifically because that 1291 service is provided by VMTP. For example, the well-known entity group 1292 identifier for the domain name service should contain as its embedded 1293 Internet host group address the host group for Domain Name servers. 1295 A dynamically allocated entity identifier is structured as: 1297 +-----------+----------------+------------------------+ 1298 | TypeFlags | Discriminator | Internet Host Addr | 1299 +-----------+----------------+------------------------+ 1300 4 bits 28 bits 32 bits 1302 with the second high-order bit (GRP) set to 1. The Internet address in 1303 the low-order 32 bits is a Internet address assigned to the host that 1304 dynamically allocates this entity group identifier. A dynamically 1305 allocated entity group identifier is mapped to Internet host group 1306 address 232.X.X.X where X.X.X are the low-order 24 bits of the 1307 Discriminator subfield of the entity group identifier. 1309 We use the following notation for Domain 1 entity identifiers <10> and 1310 propose it use as a standard convention. 1312 -- 1314 where are [X]{BE,LE,RG,UG}[A] 1316 X = reserved 1317 BE = big-endian entity 1318 LE = little-endian entity 1319 RG = restricted group 1320 UG = unrestricted group 1321 A = alias 1323 and is a decimal integer and is in 1324 standard dotted decimal IP address notation. 1326 V.1. Authentication Domain 1 1328 A principal identifier is structured as follows. 1330 +---------------------------+------------------------+ 1331 | Internet Address | Local User Identifier | 1332 +---------------------------+------------------------+ 1333 32 bits 32 bits 1335 VI. IP Implementation 1337 VMTP is designed to be implemented on the DoD IP Internet Datagram 1338 Protocol (although it may also be implemented as a local network 1339 protocol directly in "raw" network packets.) 1341 The well-known entity identifiers specified to date are: 1343 VMTP_MANAGER_GROUP RG-1-224.0.1.0 1344 Managers for VMTP operations. 1346 VMTP_DEFAULT_BECLIENT BE-1-224.0.1.0 1347 Client entity identifier to use when a (big-endian) host 1348 has not determined or been allocated any client entity 1349 identifiers. 1351 VMTP_DEFAULT_LECLIENT LE-1-224.0.1.0 1352 Client entity identifier to use when a (little-endian) 1353 host has not determined or been allocated any client 1354 entity identifiers. 1356 Note that 224.0.1.0 is the host group address assigned to VMTP and to 1357 which all VMTP hosts belong. 1359 6.05 RFC 1146 TCP alternate checksum options (TCP-ACO) 1361 There are no IPv4 dependencies in this protocol. 1363 6.06 RFC 1151 Version 2 of the Reliable Data Protocol (RDP) (RDP) 1365 There are no IPv4 dependencies in this protocol. 1367 6.07 RFC 1644 T/TCP -- TCP Extensions for Transactions Functional 1368 Specification (T/TCP) 1370 There are no IPv4 dependencies in this protocol. 1372 6.08 RFC 1693 An Extension to TCP : Partial Order Service (TCP-POS) 1374 There are no IPv4 dependencies in this protocol. 1376 6.09 RFC 1791 TCP And UDP Over IPX Networks With Fixed Path MTU 1378 There are no IPv4 dependencies in this protocol. 1380 6.10 RFC 2343 RTP Payload Format for Bundled MPEG (RTP-MPEG) 1382 There are no IPv4 dependencies in this protocol. 1384 6.11 RFC 2414 Increasing TCP's Initial Window (TCP-WIN) 1386 There are no IPv4 dependencies in this protocol. 1388 6.12 RFC 2582 The NewReno Modification to TCP's Fast Recovery 1389 Algorithm 1391 There are no IPv4 dependencies in this protocol. 1393 6.13 RFC 2762 Sampling of the Group Membership in RTP 1395 This protocol is IPv4 limited. It is also reliant on the 1396 underlying assumptions of RTP which is also IPv4 specific. 1398 6.14 RFC 2859 A Time Sliding Window Three Colour Marker (TSWTCM) 1399 (TSWTCM) 1401 This protocol is both IPv4 and IPv6 aware and needs no changes. 1403 6.15 RFC 2861 TCP Congestion Window Validation 1405 This protocol is both IPv4 and IPv6 aware and needs no changes. 1407 6.16 RFC 2909 The Multicast Address-Set Claim (MASC) Protocol 1408 (MASC) 1410 This protocol is both IPv4 and IPv6 aware and needs no changes. 1412 7.0 Summary of Results 1414 In the initial survey of RFCs 24 positives were identified out of a 1415 total of 99, broken down as follows: 1417 Standards 4 of 5 or 80.00% 1418 Draft Standards 0 of 0 1419 Proposed Standards 15 of 78 or 19.23% 1420 Experimental RFCs 5 of 16 or 31.25% 1422 Of those identified many require no action because they document 1423 outdated and unused protocols, while others are document protocols 1424 that are actively being updated by the appropriate working groups. 1425 Additionally there are many instances of standards that SHOULD be 1426 updated but do not cause any operational impact if they are not 1427 updated. The remaining instances are documented below. 1429 The author has attempted to organize the results in a format that allows 1430 easy reference to other protocol designers. The following recommendations 1431 uses the documented terms "MUST", "MUST NOT", "REQUIRED", "SHALL", 1432 "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 1433 described in RFC 2119. They should only be interpreted in the context 1434 of RFC 2119 when they appear in all caps. That is, the word "should" in 1435 the previous SHOULD NOT be interpreted as in RFC 2119. 1437 The assignment of these terms has been based entirely on the authors 1438 perceived needs for updates and should not be taken as an official 1439 statement. 1441 7.1 Standards 1443 7.1.1 STD 7 Transmission Control Protocol (RFC 793) 1445 Section 3.1 defines the technique for computing the TCP checksum that 1446 uses the 32 bit source and destination IPv4 addresses. This problem is 1447 addressed in RFC 2460 Section 8.1. 1449 7.1.2 STD 19 Netbios over TCP/UDP (RFCs 1001 & 1002) 1451 These two RFCs have many inherent IPv4 assumptions and a new set of 1452 protocols MUST be defined. 1454 7.1.3 STD 35 ISO Transport over TCP (RFC 1006) 1456 This problem has been fixed in RFC 2126, ISO Transport Service on 1457 top of TCP. 1459 7.2 Draft Standards 1461 7.3 Proposed Standards 1463 7.3.01 TCP/IP Header Compression over Slow Serial Links (RFC 1144) 1465 This problem has been resolved in RFC2508, Compressing IP/UDP/RTP 1466 Headers for Low-Speed Serial Links. See also RFC 2507 & RFC 2509. 1468 7.3.02 ONC RPC v2 (RFC 1833) 1470 The problems can be resolved with a definition of the NC_INET6 1471 protocol family. 1473 7.3.03 RTP (RFC 1889) 1475 A modification of the algorithm defined in A.7 to support both 1476 IPv4 and IPv6 addresses SHOULD be defined. 1478 7.3.04 RTSP (RFC 2326) 1480 Problem has been acknowledged by the RTSP developer group and will 1481 be addressed in the move from Proposed to Draft Standard. This 1482 problem is also addressed in RFC 2732, IPv6 Literal Addresses in 1483 URL's. 1485 7.3.05 SDP (RFC 2327) 1487 One problem is addressed in RFC 2732, IPv6 Literal Addresses in 1488 URL's. The other problem can be addressed with a minor textual 1489 clarification. This MUST be done if the document is to transition 1490 from Proposed to Draft. 1492 7.3.06 SIP (RFC 2543) 1494 One problem is addressed in RFC 2732, IPv6 Literal Addresses in 1495 URL's. The other problem is being addressed by the SIP WG and 1496 many IDs exist correcting the remaining problems. 1498 7.3.07 IPPM Metrics (RFC 2678) 1500 The IPPM WG is working to resolve these issues. 1502 7.3.08 IPPM One Way Delay Metric for IPPM (RFC 2679) 1504 The IPPM WG is working to resolve these issues. An ID is available 1505 (draft-ietf-ippm-owdp-03.txt). 1507 7.3.09 IPPM One Way Packet Loss Metric for IPPM (RFC 2680) 1509 The IPPM WG is working to resolve these issues. 1511 7.3.10 Round Trip Delay Metric for IPPM (RFC 2681) 1513 The IPPM WG is working to resolve these issues. 1515 7.3.11 The PINT Service Protocol: Extensions to SIP and SDP for IP 1516 Access to Telephone Call Services(RFC 2848) 1518 This protocol is dependent on SDP & SIP which has IPv4 dependencies. 1519 Once these limitations are fixed, then this protocol should support 1520 IPv6. 1522 7.3.12 TCP Processing of the IPv4 Precedence Field (RFC 2873) 1524 The problems are not being addressed and MAY be addressed in a new 1525 protocol. 1527 7.3.13 Integrated Services in the Presence of Compressible Flows 1528 (RFC 3006) 1530 This document defines a protocol that discusses compressible 1531 flows, but only in an IPv4 context. When IPv6 compressible flows 1532 are defined, a similar technique should also be defined. 1534 7.3.14 SDP For ATM Bearer Connections (RFC 3108) 1536 The problems are not being addressed and SHOULD be addressed in 1537 a new protocol. 1539 7.3.15 The Congestion Manager (RFC 3124) 1541 An update to this document can be simply define the use of the IPv6 1542 Traffic Class field since it is defined to be exactly the same as the 1543 IPv4 TOS field. 1545 7.4 Experimental RFCs 1547 7.4.1 Reliable Data Protocol (RFC 908) 1549 This protocol relies on IPv4 and a new protocol standard MAY be 1550 produced. 1552 7.4.2 Internet Reliable Transaction Protocol functional and 1553 interface specification (RFC 938) 1555 This protocol relies on IPv4 and a new protocol standard MAY be 1556 produced. 1558 7.4.3 NETBLT: A bulk data transfer protocol (RFC 998) 1560 This protocol relies on IPv4 and a new protocol standard MAY be 1561 produced. 1563 7.4.4 VMTP: Versatile Message Transaction Protocol (RFC 1045) 1565 This protocol relies on IPv4 and a new protocol standard MAY be 1566 produced. 1568 7.4.5 OSPF over ATM and Proxy-PAR (RFC 2844) 1570 This protocol relies on IPv4 and a new protocol standard MAY be 1571 produced. 1573 8.0 Acknowledgements 1575 The author would like to acknowledge the support of the Internet Society 1576 in the research and production of this document. Additionally the 1577 author would like to thanks his partner in all ways, Wendy M. Nesser. 1579 9.0 Authors Address 1581 Please contact the author with any questions, comments or suggestions 1582 at: 1584 Philip J. Nesser II 1585 Principal 1586 Nesser & Nesser Consulting 1587 13501 100th Ave NE, #5202 1588 Kirkland, WA 98034 1590 Email: phil@nesser.com 1591 Phone: +1 425 481 4303 1592 Fax: +1 425 48