1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
|
Internet Engineering Task Force (IETF) S. Cheshire
Request for Comments: 6760 M. Krochmal
Category: Informational Apple Inc.
ISSN: 2070-1721 February 2013
Requirements for a Protocol to Replace
the AppleTalk Name Binding Protocol (NBP)
Abstract
One of the goals of the authors of Multicast DNS (mDNS) and DNS-Based
Service Discovery (DNS-SD) was to retire AppleTalk and the AppleTalk
Name Binding Protocol (NBP) and to replace them with an IP-based
solution. This document presents a brief overview of the
capabilities of AppleTalk NBP and outlines the properties required of
an IP-based replacement.
Status of This Memo
This document is not an Internet Standards Track specification; it is
published for informational purposes.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Not all documents
approved by the IESG are a candidate for any level of Internet
Standard; see Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc6760.
Cheshire & Krochmal Informational [Page 1]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction ....................................................3
2. Zero Configuration Networking ...................................4
3. Requirements ....................................................4
3.1. Name-to-Address Mapping ....................................5
3.2. Name Services, Not Hardware ................................5
3.3. Address Services, Not Hardware -- or -- Escape the
Tyranny of Well-Known Ports ................................6
3.4. Typed Name Space ...........................................8
3.5. User-Friendly Names ........................................9
3.6. Zeroconf Operation .........................................9
3.7. Name Space Management -- or -- Name Conflict Detection ....10
3.8. Late Binding ..............................................11
3.9. Simplicity ................................................11
3.10. Network Browsing .........................................11
3.11. Browsing and Registration Guidance .......................12
3.12. Power Management Support .................................12
3.13. Protocol Agnostic ........................................13
3.14. Distributed Cache Coherency Protocol .....................13
3.15. Immediate and Ongoing Information Presentation ...........13
4. Existing Protocols .............................................14
5. IPv6 Considerations ............................................14
6. Security Considerations ........................................14
7. Informative References .........................................15
Cheshire & Krochmal Informational [Page 2]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
1. Introduction
An important goal of the participants working on Zeroconf, Multicast
DNS, and DNS-Based Service Discovery was to provide a viable IP-based
replacement for AppleTalk and the AppleTalk Name Binding Protocol
(NBP).
There are many who are experts in the Domain Name System (DNS) who
know nothing about the AppleTalk Name Binding Protocol (NBP).
Without some background on how AppleTalk and NBP worked, it may be
difficult to understand the reasoning and motivations that led to the
design decisions in Multicast DNS and DNS-Based Service Discovery.
This document seeks to remedy this problem by clearly stating the
requirements for an IP-based replacement for AppleTalk and NBP.
Replacing NBP was not the sole goal of Multicast DNS; therefore,
these requirements are not the sole design considerations. However,
replacing NBP was a major motivation behind the work in Multicast
DNS.
In most cases, the requirements presented in this document are simply
a restatement of what AppleTalk NBP currently does. However, this
document is not restricted to describing only what NBP currently
does. Achieving at least equivalent functionality to NBP is a
necessary but not sufficient condition for a viable replacement. In
some cases, the requirements for a viable IP-based replacement go
beyond NBP. For example, AppleTalk NBP uses Apple Extended ASCII for
its character set. It is clear that an IP-based replacement being
designed today should use Unicode, in the form of UTF-8 [RFC3629].
AppleTalk NBP has a reputation, partially deserved, for being too
'chatty' on the network. An IP-based replacement should not have
this same failing. The intent is to learn from NBP and build a
superset of its functionality, not to replicate it precisely with all
the same flaws.
The protocols specified in "Multicast DNS" [RFC6762] and "DNS-Based
Service Discovery" [RFC6763], taken together, describe a solution
that meets these requirements. This document is written, in part, in
response to requests for more background information explaining the
rationale behind the design of those protocols.
Cheshire & Krochmal Informational [Page 3]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
2. Zero Configuration Networking
Historically, TCP/IP networking required configuration, either in the
form of manual configuration by a human operator or in the form of
automated configuration provided by a DHCP server [RFC2131].
One of the characteristics of AppleTalk was that it could operate
without any dependency on manual configuration or a network service
to provide automated configuration. An AppleTalk network could be as
small as just two laptop computers connected via an Ethernet cable
(or wirelessly).
IP now has self-assigned link-local addresses [RFC3927] [RFC4862],
which enable IP-based networking in the absence of external
configuration. What remains is the need for Zero Configuration name-
to-address translation and Zero Configuration service discovery, both
capabilities that AppleTalk NBP offered.
It is not necessarily the case that Zero Configuration Networking
protocols will always be used in all three areas (addressing, naming,
and service discovery) simultaneously on any given network. For
example, even on networks with a DHCP server to provide address
configuration, users may still use Zero Configuration protocols for
name-to-address translation and service discovery. Indeed, on a
single network, users may use conventional Unicast DNS for looking up
the addresses of Internet web sites while at the same time using
Multicast DNS for looking up the addresses of peers on the local
link. Therefore, Zero Configuration Networking protocols must
coexist peacefully with conventional configured IP networking when
used together on the same network.
Networks change state over time. Hosts and services may come and go.
Connectivity, addresses, and names change. In a manually configured
network, a human operator can remedy errors when they arise. In a
Zero Configuration Network, no such human operator is available to
diagnose and troubleshoot problems, so Zero Configuration protocols
need to be self-correcting, automatically accommodating changing
network conditions, continually converging to correctness in the
absence of human intervention to manually rectify errors.
3. Requirements
This section lists the 15 requirements for an IP-based replacement
for AppleTalk NBP.
Cheshire & Krochmal Informational [Page 4]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
3.1. Name-to-Address Mapping
NBP's primary function is translating names to addresses.
NBP stands for Name Binding Protocol, not Network Browsing Protocol.
Many people know NBP only as "that thing that used to let you browse
the network in the old Macintosh Chooser". While browsing is an
important facility of NBP, it is secondary to NBP's primary function
of translating names to addresses.
Every time a user prints using AppleTalk, the printing software takes
the name of the currently selected printer, looks up the current
AppleTalk address associated with that named service, and establishes
a connection to that service on the network. The user may invoke
NBP's browsing capability once, when first selecting the desired
printer in the Chooser, but after that, every time something is
printed, it is a simple efficient name-to-address lookup that is
being performed, not a full-fledged browsing operation.
Any NBP replacement needs to support, as its primary function, an
efficient name-to-address lookup operation.
3.2. Name Services, Not Hardware
The primary named entities in NBP are services, not "hosts",
"machines", "devices", or pieces of hardware of any kind. This
concept is more subtle than it may seem at first, so it bears some
discussion.
The AppleTalk NBP philosophy is that naming a piece of hardware on
the network is of little use if you can't communicate with that piece
of hardware. To communicate with a piece of hardware, there needs to
be a piece of software running on that hardware that sends and
receives network packets conforming to some specific protocol. This
means that whenever you communicate with a machine, you are really
communicating with some piece of software on that machine. Even if
you just 'ping' a machine to see if it is responding, it is not
really the machine that you are 'pinging', it is the software on that
machine that generates ICMP Echo Responses [RFC792].
Consequently, this means that the only things worth naming are the
software entities with which you can communicate. A user who wants
to use a print server or a file server needn't care about what
hardware implements those services. There may be a single machine
hosting both services, or there may be two separate machines. The
end user doesn't need to care.
Cheshire & Krochmal Informational [Page 5]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
The one exception to this is network managers, who may want to name
physical hardware for the purpose of tracking physical inventory.
However, even this can be recast into a service-oriented view of the
world by saying that what you're naming is not the hardware, but the
ICMP Echo Responder that runs (or is assumed to be running) on every
piece of IP hardware.
3.3. Address Services, Not Hardware -- or -- Escape the Tyranny of
Well-Known Ports
The reader may argue that DNS already supports the philosophy of
naming services instead of hosts. When we see names like
"www.example.com.", "pop.example.com.", "smtp.example.com.",
"news.example.com.", and "time.example.com.", we do not assume that
those names necessarily refer to different hosts. They are clearly
intended to be logical service names and could, in fact, all resolve
to the same IP address.
The shortcoming here is that although the names are clearly logical
service names, the result today of doing a conventional ("A" or
"AAAA") DNS lookup for those names gives you only the IP address of
the hardware where the service is located. To communicate with the
desired service, you also need to know the port number at which the
service can be reached, not just the IP address.
This means that the port number has to be communicated out-of-band,
in some other way. One way is for the port number to be a specific
well-known constant for any given protocol. This makes it hard to
run more than one instance of a service on a single piece of
hardware. Another way is for the user to explicitly type in the port
number, for example, "www.example.com.:8080" instead of
"www.example.com.", but needing to know and type in a port number is
as ugly and fragile as needing to know and type in an IP address.
Another aspect of the difficulty of running more than one instance of
a service on a single piece of hardware is that it forces application
programmers to write their own demultiplexing capability. AppleTalk
did not suffer this limitation. If an AppleTalk print server offered
three print queues, each print queue ran as its own independent
service, listening on its own port number (called a socket number in
AppleTalk terminology), each advertised as a separate, independently
named NBP entity. When a client looks up the address of that named
NBP entity, the reply encodes not only on which net and subnet the
service resides, and on which host on that subnet (like an IP address
does), but also on which socket number (port number) within that
host. In contrast, if an lpr print server offers three print queues,
all three print queues are typically reached through the same well-
known port number (515), and then the lpr protocol has to use its own
Cheshire & Krochmal Informational [Page 6]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
demultiplexing capability (the print queue name) in order to
determine which print queue is sought. This makes it especially
difficult to run two different pieces of print queue software from
different vendors on the same machine, because they cannot both
listen on the same well-known port.
A similar trick is used in HTTP 1.1, where the "Host" header line is
used to allow multiple logical HTTP services to run at the same IP
address. Again, this works for a single-vendor solution, but if a
user wishes to run multiple web servers (for example, an image
server, a database program, an HTTP email access gateway, and a
conventional HTTP server) on a single machine, they can't all listen
on TCP port 80, the traditional HTTP port.
Yet another problem of well-known ports is that port numbers are a
finite resource. Originally, port numbers 0-255 were reserved for
well-known services, and the remaining 99.6% of the port space was
free for dynamic allocation [RFC1122]. Since then, the range of
"Registered Ports" has crept upwards until today, ports 0-49151 are
reserved, and only 25% of the space remains available for dynamic
allocation. Even though 65535 may seem like a lot of available port
numbers, with the pace of software development today, if every new
protocol gets its own private port number, we will eventually run
out. To avoid having to do application-level demultiplexing,
protocols like the X Window System wisely use a range of port
numbers, and let TCP do the demultiplexing for them. The X Window
System uses 64 ports, in the range 6000-6063. If every new protocol
were to get its own chunk of 64 ports, we would run out even faster.
Any NBP replacement needs to provide, not just the network number,
subnet number, and host number within that subnet (i.e., the IP
address) but also the port number within that host where the service
is located. Furthermore, since many existing IP services such as lpr
*do* already use additional application-layer demultiplexing
information such as a print queue name, an NBP replacement needs to
support this too by including this information as part of the
complete package of addressing information provided to the client to
enable it to use the service. The NBP replacement needs to name
individual print queues as first-class entities in their own right.
It is not sufficient merely to name a print server, within which
separate print queues can then be found by some other mechanism.
One possible answer here is that an IP-based NBP replacement could
use a solution derived from DNS SRV records instead of "A" records,
since SRV records *do* provide a port number. However, this alone is
not a complete solution, because SRV records cannot tell you an lpr
print queue name.
Cheshire & Krochmal Informational [Page 7]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
3.4. Typed Name Space
AppleTalk NBP names are structured names, generally written as:
Name : Type @ Zone
Name: The Name is the user-visible name of the service.
Type: The Type is an opaque identifier that identifies the service
protocol and semantics. The user may think of the Type as
identifying the end-user function that the device performs (e.g.,
"printing"), and for the typical end-user, this may be an adequate
mental model, but strictly speaking, from a protocol-design
perspective, the Type identifies the semantic application protocol
the service speaks: no more, no less. For convenience, the opaque
Type identifier is generally constructed using descriptive ASCII
text, but this text has no meaning to the protocol, and care should
be taken in inferring too much meaning from it. For example, the NBP
Service Type "LaserWriter" means "any service that speaks
PS/PAP/ATP/DDP (PostScript over AppleTalk Printer Access Protocol
over AppleTalk Transaction Protocol over AppleTalk Datagram Delivery
Protocol)". It does not necessarily mean an Apple-branded
"LaserWriter" printer; nor does the service even have to be a
printer. A device that archives documents to digital media could
advertise itself as a "LaserWriter", meaning that it speaks
PostScript over PAP, not necessarily that it prints that document on
paper when it gets it. The end-user never directly sees the Service
Type. It is implicit in the user's action; for example, when
printing, the printing software knows what protocol(s) it speaks and
consequently what Service Type(s) it should be looking for -- the
user doesn't have to tell it.
Zone: The Zone is an organizational or geographical grouping of named
services. AppleTalk Zones were typically given names like
"Engineering", "Sales", or "Building 1, 3rd floor, North". The
equivalent concept in DNS could be a subdomain such as
"Engineering.example.com.", "Sales.example.com.", or "Building 1, 3rd
floor, North.example.com."
Each {Type,Zone} pair defines a name space in which service names can
be registered. It is not a name conflict to have a printer called
"Sales" and a file server called "Sales", because one is
"Sales:LaserWriter@Zone" and the other is "Sales:AFPServer@Zone".
Any NBP replacement needs to provide a mechanism that allows names to
be grouped into organizational or geographical "zones", and within
each "zone", to provide an independent name space for each service
type.
Cheshire & Krochmal Informational [Page 8]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
3.5. User-Friendly Names
When repeatedly typing in names on command-line systems, it is
helpful to have names that are short, all lowercase, without spaces
or hard-to-type characters.
Since Service Names are intended to be selected from a list, not
repeatedly typed in on a keyboard, there is no reason for them to be
restricted so. Users should be able to give their printers names
like "Sales", "Marketing", and "3rd Floor Copy Room", not just
"printer1.example.com.". Of course, a user is free to name a
particular service using only lowercase letters and no spaces if they
wish, but they should not be forced to do that.
Any NBP replacement needs to support a full range of rich text
characters, including uppercase, lowercase, spaces, accented
characters, and so on. The correct solution is likely to be UTF-8
Unicode [RFC3629].
Note that this requirement for user-friendly rich-text names applies
equally to the zones (domains) in which services are registered and
discovered.
Note that although the characters ':' and '@' are used when writing
AppleTalk NBP names, they are simply a notational convenience in
written text. In the on-the-wire protocol and in the software data
structures, NBP Name, Type, and Zone strings are all allowed to
contain almost any character, including ':' and '@'. The naming
scheme provided by an NBP replacement must allow the use of any
desired characters in service names, including dots ('.'), spaces,
percent signs, etc.
3.6. Zeroconf Operation
AppleTalk NBP is self-configuring. On a network of just two hosts,
they communicate peer-to-peer using multicast. On a large managed
network, AppleTalk routers automatically perform an aggregation
function, allowing name lookups to be performed via unicast to a
service running on the router, instead of by flooding the entire
network with multicast packets to every host.
Any NBP replacement needs to be able to operate in the absence of
external network infrastructure. However, this should not be the
only mode of operation. In larger managed networks, it should also
be possible to take advantage of appropriate external network
infrastructure when present, to perform queries via unicast instead
of multicast.
Cheshire & Krochmal Informational [Page 9]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
3.7. Name Space Management -- or -- Name Conflict Detection
Because an NBP replacement needs to operate in a Zeroconf
environment, it cannot be assumed that a central network
administrator is managing the network. Unlike managed networks where
normal administrative controls may apply, in the Zeroconf case an NBP
replacement must make it easy for users to name their devices as they
wish, without the inconvenience or expense of having to seek
permission or pay some organization like a domain name registry for
the privilege. However, this ease of naming, and freedom to choose
any desired name, may lead to name conflicts. Two users may
independently decide to run a personal file server on their laptop
computers, and (unimaginatively) name it "My Computer". When these
two users later attend the next IETF meeting and find themselves part
of the same wireless network, there may be problems.
Similarly, every Brother network printer may ship from the factory
with its Service Name set to "Brother Printer". On a typical small
home network where there is only one printer, this is not a problem;
however, it could become a problem if two or more such printers are
connected to the same network.
Any NBP replacement needs to detect such conflicts, and handle them
appropriately. In the case of a laptop computer, which has a
keyboard, screen, and a human user, the software should display a
message telling the user that they need to select a new name.
In the case of printers, which typically have no keyboard or screen,
the software should automatically select a new unique name, perhaps
by appending an integer to the end of the existing name, e.g.,
"Brother Printer 2". Note that, although this programmatically
derived name should be recorded persistently for use next time the
device is powered on, the user is not forced to use that name as the
long-term name for the service/device. In a network with more than
one printer, the typical user will assign human-meaningful names to
those printers, such as "Upstairs Printer" and "Downstairs Printer",
but the ability to rename the printer using some configuration tool
(e.g., a web browser) depends on the ability to find the printer and
connect to it in the first place. Hence, the programmatically
derived unique name serves a vital bootstrapping role, even if its
use in that role is temporary.
Because of the potentially transient nature of connectivity on small
portable devices that are becoming more and more common (especially
when used with wireless networks), this name conflict detection needs
to be an ongoing process. It is not sufficient simply to verify
uniqueness of names for a few seconds during the boot process and
then assume that the names will remain unique indefinitely.
Cheshire & Krochmal Informational [Page 10]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
If the Zeroconf naming mechanism is integrated with the existing
global DNS naming mechanism, then it would be beneficial for a sub-
tree of that global namespace to be designated as having only local
significance, for use without charge by cooperating peers, much as
portions of the IPv4 address space are already designated as local-
significance-only, available for organizations to use locally without
charge as they wish [RFC1918].
3.8. Late Binding
When the user selects their default printer, the software should
store only the name, not the IP address and port number. Then, every
time the user prints, the software should look up the name to find
the current IP address and port number for that service. This allows
a named logical service to be moved from one piece of hardware to
another without disrupting the user's ability to print to that named
print service.
On a network using DHCP [RFC2131] or self-assigned link-local
addresses [RFC3927] [RFC4862], a device's IP address may change from
day to day. Deferring binding of name to address until actual use
allows the client to get the correct IP address at the time the
service is used.
Similarly, with a service using a dynamic port number instead of a
fixed well-known port, the service may not get the same port number
every time it is started or restarted. By deferring binding of name
to port number until actual use, the client gets the correct port
number at the time the service is used.
3.9. Simplicity
Any NBP replacement needs to be simple enough that vendors of even a
low-cost network ink-jet printer can afford to implement it in the
device's limited firmware.
3.10. Network Browsing
AppleTalk NBP offers certain limited wild-card functionality. For
example, the service name "=" means "any name". This allows a client
to perform an NBP lookup such as "=:LaserWriter@My Zone" and receive
back in response a list of all the PS/PAP (AppleTalk Printer Access
Protocol) printers in the Zone called "My Zone".
Any NBP replacement needs to allow a piece of software, such as a
printing client or a file server client, to enumerate all the named
instances of services in a specified zone (domain) that speak its
protocol(s).
Cheshire & Krochmal Informational [Page 11]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
3.11. Browsing and Registration Guidance
AppleTalk NBP provides certain meta-information to the client.
On a network with multiple AppleTalk Zones, the AppleTalk network
infrastructure informs the client of the list of Zones that are
available for browsing. It also informs the client of the default
Zone, which defines the client's logical "home" location. This is
the Zone that is selected by default when the Macintosh Chooser is
opened, and is usually the Zone where the user is most likely to find
services like printers that are physically nearby, but the user is
still free to browse any Zone in the offered list that they wish.
A Brother printer may be pre-configured at the factory with the
Service Name "Brother Printer", but they do not know on which network
the printer will eventually be installed, so the printer will have to
learn this from the network on arrival. On a network with multiple
AppleTalk Zones, the AppleTalk network infrastructure informs the
client of a single default Zone within which it may register Service
Names. In the case of a device with a human user, the AppleTalk
network infrastructure may also inform the client of a list of Zones
within which the client may register Service Names, and the user may
choose to register Service Names in any one of those Zones instead of
in the suggested default Zone.
Any NBP replacement needs to provide the following information to the
client:
* The suggested zone (domain) in which to register Service Names.
* A list of recommended available zones (domains) in which Service
Names may be optionally registered.
* The suggested default zone (domain) for network browsing.
* A list of available zones (domains) that may be browsed.
Note that, because the domains used in this context are intended for
service browsing in a graphical user interface, they should be
permitted to be full user-friendly rich text, just like the rest of a
service name.
3.12. Power Management Support
Many modern network devices have the ability to go into a low-power
mode, where only a small part of the Ethernet hardware remains
powered, and the device can be woken up by sending a specially
formatted Ethernet frame that the device's power-management hardware
Cheshire & Krochmal Informational [Page 12]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
recognizes. A modern service discovery protocol should provide
facilities to enable this low-power mode to be used effectively
without sacrificing network functionality, such as the ability to
discover services on sleeping devices, and wake up a sleeping device
when it is needed.
3.13. Protocol Agnostic
Fashions come and go in the computer industry, but a service
discovery protocol, being one of the foundation components on which
everything else rests, has to be able to outlive these swings of
fashion. A useful service discovery protocol should be agnostic to
the protocols being used by the higher-layer software it serves. If
a service discovery protocol requires all the higher-layer software
to be written in a new computer language, or requires all the higher-
layer protocols to embrace some trendy new data representation format
that is currently in vogue, then that service discovery protocol is
likely to have limited utility after the fashion changes and computer
industry moves on to its next infatuation.
3.14. Distributed Cache Coherency Protocol
Any modern service discovery protocol must use some kind of caching
for efficiency. Any time a distributed cache is maintained, a cache
coherency protocol is required to control the effects of stale data.
Thus, a useful service discovery protocol needs to include cache
coherency mechanisms.
3.15. Immediate and Ongoing Information Presentation
Many current discovery mechanisms display an hourglass or a "Please
Wait" message for five or ten seconds, and then present a list of
results to the user. At this point, the list of results is static,
and does not update in response to changes in the environment. To
see current information, the user is forced to click a "Refresh"
button repeatedly, waiting another five to ten seconds each time.
Neither limitation is acceptable in a protocol that is to replace
NBP. When a user initiates a browsing operation, the user interface
should take at most one second to present the list of results. In
addition, the list should update in response to changes in the
environment as they happen. If the user is waiting for a particular
service to become available, they should be able simply to watch
until it appears, with no "Refresh" button that they need to keep
clicking. A protocol to replace AppleTalk NBP must be able to meet
these requirement for timeliness of information discovery, and
liveness of information updating, without placing undue burden on the
network.
Cheshire & Krochmal Informational [Page 13]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
4. Existing Protocols
Ever since this work began with Stuart Cheshire's email to the net-
thinkers@thumper.vmeng.com mailing list in July 1997, the question
has been asked, "Isn't SLP the IETF replacement for AppleTalk NBP?"
The Service Location Protocol (SLP) [RFC2608] provides extremely rich
and flexible facilities in the area of Requirement 10, "Network
Browsing". However, SLP provides none of the service naming,
automatic name conflict detection, or efficient name-to-address
lookup that form the majority of what AppleTalk NBP does.
SLP returns results in the form of URLs. In the absence of DNS, URLs
cannot usefully contain DNS names. Discovering a list of service
URLs of the form "ipp://169.254.17.202/" is not particularly
informative to the user. Discovering a list of service URLs of the
form "ipp://epson-stylus-900n.local./" is slightly less opaque
(though still not very user-friendly), but to do even this, SLP would
have to depend on Multicast DNS or something similar to resolve names
to addresses in the absence of a conventional DNS server.
SLP provides fine-grained query capabilities, such as the ability to
prune a long list of printers to show only those that have blue paper
in the top tray, which could be useful on extremely large networks
with very many printers, but are certainly unnecessary for a typical
home or small office with only one or two printers.
In summary, SLP alone fails to meet most of the requirements, and
provides vastly more mechanism than necessary in the area of
Requirement 10.
5. IPv6 Considerations
An IP replacement for the AppleTalk Name Binding Protocol needs to
support IPv6 as well as IPv4.
6. Security Considerations
The AppleTalk Name Binding Protocol was developed in an era when
little consideration was given to security issues. In today's world,
this would no longer be appropriate. Any modern replacement for
AppleTalk NBP should have security measures appropriate to the
environment in which it will be used. Given that this document is a
broad historical overview of how AppleTalk NBP worked, and does not
specify any new protocol(s), it is beyond the scope of this document
to provide detailed discussion of possible network environments, what
protocols would be appropriate in each, and what security measures
would be expected of each such protocol.
Cheshire & Krochmal Informational [Page 14]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
7. Informative References
[RFC792] Postel, J., "Internet Control Message Protocol", STD 5,
RFC 792, September 1981.
[RFC1122] Braden, R., Ed., "Requirements for Internet Hosts -
Communication Layers", STD 3, RFC 1122, October 1989.
[RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G.,
and E. Lear, "Address Allocation for Private Internets",
BCP 5, RFC 1918, February 1996.
[RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC
2131, March 1997.
[RFC2608] Guttman, E., Perkins, C., Veizades, J., and M. Day,
"Service Location Protocol, Version 2", RFC 2608, June
1999.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[RFC3927] Cheshire, S., Aboba, B., and E. Guttman, "Dynamic
Configuration of IPv4 Link-Local Addresses", RFC 3927, May
2005.
[RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless
Address Autoconfiguration", RFC 4862, September 2007.
[RFC6762] Cheshire, S. and M. Krochmal, "Multicast DNS", RFC 6762,
February 2013.
[RFC6763] Cheshire, S. and M. Krochmal, "DNS-Based Service
Discovery", RFC 6763, February 2013.
Cheshire & Krochmal Informational [Page 15]
^L
RFC 6760 Replacement of AppleTalk NBP February 2013
Authors' Addresses
Stuart Cheshire
Apple Inc.
1 Infinite Loop
Cupertino, CA 95014
USA
Phone: +1 408 974 3207
EMail: cheshire@apple.com
Marc Krochmal
Apple Inc.
1 Infinite Loop
Cupertino, CA 95014
USA
Phone: +1 408 974 4368
EMail: marc@apple.com
Cheshire & Krochmal Informational [Page 16]
^L
|