rfc1218.A Naming Scheme for c=US
rfc7118_SIP Over WebSockets
Baz Castillo, et al.
Standards Track
[Page ransport for SIP
January 2014
Table of Contents 1. 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 3. The WebSocket Protocol . . . . . . . . . . . . . . . . . . . 4. The WebSocket SIP Subprotocol . . . . . . . . . . . . . . . . 4.1. Handshake . . . . . . . . . . . . . . . . . . . . . . . . 4.2. SIP Encoding . . . . . . . . . . . . . . . . . . . . . . 5. SIP WebSocket Transport . . . . . . . . . . . . . . . . . . . 5.1. Via Transport Parameter . . . . . . . . . . . . . . . . . 5.2. SIP URI Transport Parameter . . . . . . . . . . . . . . . 5.3. Via "received" Parameter . . . . . . . . . . . . . . . . 5.4. SIP Transport Implementation Requirements . . . . . . . . 5.5. Locating a SIP Server . . . . . . . . . . . . . . . . . . 6. Connection Keep-Alive . . . . . . . . . . . . . . . . . . . . 7. Authentication . . . . . . . . . . . . . . . . . . . . . . . 8. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1. Registration . . . . . . . . . . . . . . . . . . . . . . 8.2. INVITE Dialog through a Proxy . . . . . . . . . . . . . . 9. Security Considerations . . . . . . . . . . . . . . . . . . . 9.1. Secure WebSocket Connection . . . . . . . . . . . . . . . 9.2. Usage of "sips" Scheme . . . . . . . . . . . . . . . . . 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10.1. Registration of the WebSocket SIP Subprotocol . . . . . 10.2. Registration of New NAPTR Service Field Values . . . . . 10.3. SIP/SIPS URI Parameters Subregistry . . . . . . . . . . 10.4. Header Fields Subregistry . . . . . . . . . . . . . . . 10.5. Header Field Parameters and Parameter Values Subregistry 10.6. SIP Transport Subregistry . . . . . . . . . . . . . . . 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 12.1. Normative References . . . . . . . . . . . . . . . . . . 12.2. Informative References . . . . . . . . . . . . . . . . . Appendix A. Authentication Use Cases . . . . . . . . . . . . . . A.1. Just SIP Authentication . . . . . . . . . . . . . . . . . A.2. Just Web Authentication . . . . . . . . . . . . . . . . . A.3. Cookie-Based Authentication . . . . . . . . . . . . . . . Appendix B. Implementation Guidelines . . . . . . . . . . . . . B.1. SIP WebSocket Client Considerations . . . . . . . . . . . B.2. SIP WebSocket Server Considerations . . . . . . . . . . . 3 3 3 3 4 4 5 6 6 6 7 7 8 8 8 10 10 12 16 16 16 16 16 17 17 17 17 18 18 18 18 19 21 21 21 22 22 23 24
bea tuxedo
BEA TUXEDO Application AdministrationTUX-A11-XX-01Lab ExercisesBEA Systems, Inc.Educational ServicesCopyright © 2001, BEA Systems, Inc. All Rights Reserved.Restricted Rights LegendThis software and documentation is subject to and made available only pursuant to the terms of the BEA Systems License Agreement and may be used or copied only in accordance with the terms of that agreement. It is against the law to copy the software except as specifically allowedin the agreement. This document may not, in whole or in part, be copied photocopied, reproduced, translated, or reduced to any electronic medium or machine readable form without prior consent, in writing, from BEA Systems, Inc.Use, duplication or disclosure by the U.S. Government is subject to restrictions set forth in the BEA Systems License Agreement and in subparagraph (c)(1) of the Commercial Computer Software-Restricted Rights Clause at FAR 52.227-19; subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013, subparagraph (d) of the Commercial Computer Software--Licensing clause at NASA FAR supplement 16-52.227-86; or their equivalent.Information in this document is subject to change without notice and does not represent a commitment on the part of BEA Systems. THE SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. FURTHER, BEA Systems DOES NOT WARRANT, GUARANTEE, OR MAKE ANY REPRESENTATIONS REGARDING THE USE, OR THE RESULTS OF THE USE, OF THE SOFTWARE OR WRITTEN MATERIAL IN TERMS OF CORRECTNESS, ACCURACY, RELIABILITY, OR OTHERWISE.Trademarks or Service MarksBEA, BEA eLink, BEA Jolt, Distributed Application Framework, and Enterprise Middleware Solutions are trademarks of and are developed and licensed by BEA Systems, Inc., Sunnyvale, California. TUXEDO is a registered trademark of Novell, Inc., exclusively licensed to BEA Systems, Inc.OpenView is a registered trademark of Hewlett-Packard Company. SunNet Manager and Solstice are trademarks of Sun Microsystems, Inc. in the United States and other countries. IBM and NetView are registered trademarks of International Business Machines Corporation. Oracle is a registered trademark of Oracle Corporation. Informix is a registered trademark of Informix. Cabletron Spectrum is a trademark of Cabletron Systems, Inc. UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Limited.All other company names may be trademarks of the respective companies with which they are associated.BEA Tuxedo Application AdministrationDocument Edition Part Number Date Software Version Comment1.0 Sep 2001 BEA Tuxedo 6.5, 7.1,8..0 Initial Labs VersionContentsGeneral Lab Instructions (3)Lab Instructions (3)Environment Variables (3)Lab Directories (5)INSTL–Lab Installation and Verification (7)Part 1 – Copying the Lab Files (8)Part 2 – Viewing the Tuxedo Documentation (10)Part 3 – Verifying the Lab Machine Environment (10)Part 4 – Building Tuxedo Programs for the Lab Workshops..11 DEPL–Deploying a Basic Tuxedo Application (13)CONF–Configuring Application Servers (17)ADAC–Administration and Additional Configuration (21)CLNT–Configuring /WS Support (25)SECU–Configuring Tuxedo Security (29)MMC–Multiple Machine Configuration (33)SRVG–Server Groups and Data Dependent Routing (37)TRAN–Configuring Transactions (41)CQUE–Administering Queues (45)MIBS–Accessing MIBs (51)PERF–Performance Considerations (55)DOMS–Multiple Domains (59)General Lab InstructionsThis guide contains general instructions for the lab workshop exercises for the BEA Tuxedo Application Administration course. The course lab exercises can be performed on a system with either BEA Tuxedo 6.5, 7.1, or 8.0 software installed.The lab exercises can be performed in a variety of classroom environments, both public classrooms and on-site customer locations. The lab exercises are supplied for two generic platform types – UNIX (Sun, HP, other versions) and Microsoft WindowsNT/Windows2000. The lab machine/s used should have been previously set up for the class; the BEA Tuxedo product and a C compiler should be installed. On Windows systems, the only C compiler tested with the labs is Microsoft Visual C++ 6.0.The lab exercises are labeled with the same abbreviated module name used for a particular Module in the student material, for example INSTL. Each exercise describes the objective and the steps for performing the exercise. Consider the time suggested for each lab as a “guideline” and not a requirement. Your instructor will end the lab session when it is appropriate.Lab InstructionsInstructions for each lab are usually common for both Windows and UNIX and any differences are noted in the instructions.The first set of actions that you will perform for any lab is common to all labs and are:1. Open a Windows/DOS command window or UNIX shell window.2. Change directory to the lab exercises directory – the lab refers to the <xyz> lab directory:[Windows]: cd<root-directory>\exercises\<xyz>[ UNIX]: cd<root-directory>/exercises/<xyz>3. Edit the setenv command script file that sets the environment variables:[Windows]: setenv.cmd[ UNIX]: setenv.ksh4. Execute the setenv command script file:[Windows]: setenv[ UNIX]: . setenv.ksh(Note the <space> between . and setenv.ksh)Environment VariablesYou should make sure that the environment variables shown below are set. In Windows, you can edit your system environment variables through the Control Panel so that these are always set when you startup a DOS or shell command prompt. The actual paths may differ for your system, for example Tuxedo might be installed in D:\ instead of C:\ as the table below suggests.Set environment variables according to your computer-specific installation directories. For the PATH environment variables, we suggest that you add the paths listed in the table below to thebeginning of the variable because you might have other software installed that may interfere. Ifyou choose not to change the environment variables and use the provided setenv.bat orsetenv.ksh file, you may need to edit this file to reflect your actual installation folders.For Windows systems:Env. Variable Windows Example DescriptionTUXDIR C:\tuxedo Tuxedo installation directory TUXCONFIG C:\tuxa11\exercises\depl\tuxconfig LocationofTUXCONFIGPATH %TUXDIR\bin;%PATH% Path should include theTuxedo bin directoryTUXDIR should be set on supported Windows platforms when Tuxedo 6.5 or 7.1 is installed.Tuxedo 8.0 installation does not set these environment variables and they have to be set either inthe Settings-> Control Panel-> System->Environment control panel or before executing aTuxedo program. In the lab exercises, we will usually set them for each lab exercise.For UNIX systems:Env. Variable UNIX Example Description TUXDIR /opt/tuxedo71 Tuxedo installation directory TUXCONFIG /home/stu01/exercises/abcs/tuxconfig LocationofTUXCONFIGPATH .:$TUXDIR/bin:$PATH/opt/.. or /usr/.. Path should include these Tuxedo related directories…… and any C compiler directories…<include directory path> $TUXDIR/include Usually specified in thecompile commandLD_LIBRARY_PATH (SVR4, Solaris)SHLIB_PATH (HP-UX)LIBPATH (AIX) $TUXDIR/lib:$LD_LIBRARY_PATH$TUXDIR/lib:$SHLIB_PATH$TUXDIR/lib:$LIBPATHAdd the Tuxedo librarydirectory to the library searchpathLANG CorEn_US If you get Tuxedo catalog errors, you may need to reset this to “C” instead of En_US; check which of these two directories has been installed under the $TUXDIR/locale directoryTUXDIR– obtain the directory name where Tuxedo has been installed on the UNIX system from the Instructor or the UNIX Administrator.Lab DirectoriesThe parent directory for the lab exercises contains files used to build the lab exercises. It also contains the exercises and s olutions s ub-directories. Each lab exercise directory is under the exercises directory in a different lab-specific sub-directory (this directory will be the application directory, APPDIR). A lab exercise directory is named to match the corresponding module name, for example DEPL but the lab directory name is in lower-case as in “depl”.Each lab exercise directory contains the files required for the lab exercise described. These files include template files (that you need to complete) or completed files:- a template configuration file named UBBconfig.template- a template file, setenv.cmd.template (Windows) or setenv.ksh.template (UNIX), for setting the environment variables- client and/or server source program template files, <name>.template- completed client or server programs, <name>.c, or executables, <name> in UNIX or <name>.exe in Windows.The UBBconfig.template configuration file requires the following information to be filled for each lab:machine name The configured system name for this machineTUXDIR The directory where the Tuxedo product is installedAPPDIR Application directory, which is the current lab exercise directory TUXCONFIG The TUXCONFIG file in the <APPDIR> directoryYou will need to change the value of these parameters to the appropriate values and complete any other lab-specific directions.You can obtain the machine name from the %COMPUTERNAME% environment variable or from the Network control panel [Windows], or [UNIX] by ‘uname –n’ or ‘hostname’. Note that for Windows systems, the machine name specified in a Tuxedo configuration file should always be in upper case – example, GUMBY and not gumby.A corresponding lab directory in the solutions sub-directory contains the UBBCONFIG configuration solution files for the lab exercise. You should try to avoid using the solution files unless you are really stuck or the Instructor is busy with other students. The Instructor is there to help you !Each lab solution directory contains solution configuration files for Windows and UNIX for each lab exercise, generically represented by the lab directory <labname> below. These solution files use the following values for the above information in the solutions:machine name The node name for the system: NODE1TUXDIR Tuxedo install directory:[Windows] c:\tuxedo[UNIX] /opt/tuxedoAPPDIR Application directory, the current lab directory:c:\tuxa11\solutions\<labname>[Windows][UNIX] /home/student/tuxa11/solutions/<labname> TUXCONFIG The TUXCONFIG file in the <APPDIR> directory:%APPDIR%\tuxconfig[Windows][UNIX] $APPDIR/tuxconfigTo use a lab solution, copy the solution files to the equivalent lab exercise directory; replace the above values in the solution files with values appropriate for your lab machine and follow the instructions to run the lab exerciseINSTL–Lab Installation and VerificationReference Course Section(s): INSTL, Lab Guide: Getting Started Suggested Time: 40 minutesObjectiveThe objective of this exercise is to install the labs and make you familiar with the lab exercise environment.DescriptionYou will install the lab exercises from the Student CD supplied with your course materials and become familiar with the lab machine environment. Installing the labs consists of two main tasks – copying the labs from the Student CD and then compiling the C source programs to generate the client and server executable programs for the platform being used for the lab exercises.You will also become familiar with the Tuxedo documentation layout on the Student CD. Finally, you will follow some simple instructions to verify that Tuxedo has been installed on your machine.SummaryThere is no lab exercise directory or files associated with this lab exercise. You will need the Student CD packaged with your course materials.• Copy the labs from the CD-ROM to your lab machine• View the Tuxedo documentation with a browser• Verify that Tuxedo is installed on the lab machine• Build the client and server executable programs for use in the other lab exercisesStepsPart 1 – Copying the Lab Files(This step may already have been done for the class – check with the Instructor.)1. All the code and template files that you need to accomplish the Lab Workshop exercises aresupplied on the Student CD-ROM that is bundled with the course Student Materials. This CD is in a PC format and may not be readable on most UNIX machines.• On a Windows system, load the Student CD.• On a UNIX system, the tar file containing the lab exercise files may have already been copied from the CD to a directory on the system – check with the Instructor.2. Install the Lab Workshop exercise files:To install the lab exercises on a WindowsNT/Windows2000 system• Create a <lab root directory> such as C:\tuxA11 on your student machine.• Copy the contents (directories and files) from the labs directory on the student CD to this <lab root directory>on the Windows system: select all files and directories, and drag and drop them into the newly-created labs directory.• The files copied to your lab directory will be copied as read-only. To change the read-only attributes, open a DOS/Command window and change directory to your lab root directory.Type the following command to change the read-only attributes on all the files: > attrib –r *.* /S• In the DOS/Command window, verify that the Microsoft Visual C++ 6.0 compiler is installed by typing “cl”, the command to run the compiler; if it is installed, the banner heading from the compiler will be printed in the window.• If the previous command fails, try to find and execute the following command file to set the correct system environment. This file is typically located in:C:\Program Files\ Microsoft Visual Studio\vc98\bin\Vcvars32.bat Try the previous step again. If this still fails, the Visual C++ compiler may not be installed on the PC you are using. Notify the Instructor.To install the lab exercises on a UNIX system• If the System Administrator has already transferred the tar file from the Student CD to the UNIX system, make a copy of the tar file in your lab root directory using the cp command: > cp \…\TUX-A11-XX-01-labs.tar .• If not, transfer the labs\UNIX\TUX-A11-XX-01-labs.tar file from the student CD to the student’s <lab root directory>on the UNIX system being used. You can useFTP binary mode to transfer the file. An example of <lab root directory> is/home/student01.• Use tar to uncompress the TUX-A11-XX-01-labs.tar file:> tar xvf TUX-A11-XX-01-labs.tar3. This completes the copy of the lab files to your directory.For both Windows and UNIX systems, the previous steps will create a directory structure underneath the <lab root directory> containing the lab directories corresponding to the Modules in the Student Guide. The root directory should contain the following sub-directories plus some other command files that will be used to build the client and server programs:The formats for directory names are (using the Windows path name convention): • Exercises described in the lab guide: <root-directory>\exercises\ <xyz>• Solutions to exercises in the lab guide: <root-directory>\solutions\<xyz>where <root-directory> represents the root directory where the labs were installed, and <xyz> and <XYZ> are the lab directory name and the associated module name respectively.There is another step to be done before the lab exercises can be performed – build the client and server program executables to be used for each lab exercise. This is described later in this lab exercise.4. This completes the copying of the lab files to your machine.Part 2 – Viewing the Tuxedo Documentation5. We will now examine the Tuxedo documentation supplied on the Student CD. [If the courseis being delivered on a UNIX platform, the Tuxedo docs may have been transferred to aUNIX directory.] Using Windows Explorer or other File Manager, move to the following directory on the Student CD :[Student-CD] \Tuxedo Docs\ xxxwhere xxx is either v6_5, v7_1, or v8_0 depending on whether Tuxedo release 6.5, 7.1, or 8.0 respectively is being used in the class.6. Double-click on the index.htm file in the above directory. This will start-up a browserprogram and bring up the Tuxedo documentation index page. The display will be different for the different Tuxedo releases but there will be common displayed items, including a link to the (ATMI) Reference section.Click on the Reference link. Under Reference Topics, you should see several sections such as Command Reference – Section 1. The Tuxedo reference documentation is organized into sections very much like UNIX man pages.7. In the course slides you will see references to items such as tmadmin(1). This means thatthe reference information for the Tuxedo command tmadmin is in Section 1 of the reference documentation. The Tuxedo file formats are in Section 5. Click on this link.The displayed page shows all the BEA Tuxedo File Formats, Data Descriptions, MIBs, and System Processes listed in alphabetical order.8. Click on one of the topics, such as UBBCONFIG(5), displayed in the left column. Thedisplayed page shows the details of the Tuxedo Configuration file format including all the required and optional parameters.Part 3 – Verifying the Lab Machine Environment9. Open a DOS/Command or Shell window. Display the current environment variables:• On Windows type:set | more• On UNIX: env | more10. Check the listed variables to see if the TUXDIR variable is set. If not, set it – (if needed, askyour Instructor for the location of the Tuxedo directory on your PC or UNIX system): [ On Windows] set TUXDIR=<Tuxedo installed directory>[On UNIX (ksh)] export TUXDIR=<Tuxedo installed directory>11. If necessary, add the Tuxedo bin directory to your command execution path:[ Windows] set PATH=%TUXDIR%\bin;%PATH%[UNIX (ksh)] export PATH=$TUXDIR/bin:$PATHAlso, set and export the LIBRARY PATH as appropriate (see theUNIX Environment Table for information on some UNIX systems)to include $TUXDIR/lib.12. Type the Tuxedo administration command tmadmin with the –v option :tmadmin –vThis should print out the Tuxedo license information such asIf a message similar to the one above was printed on your console, your environmentvariables were set correctly and Tuxedo is installed on your machine.13. If you get Tuxedo catalog message errors, you may also need to set (and export) theenvironment variable that defines the locale, for example:LANG=C [for US English]14. This completes the initial lab installation.Part 4 – Building Tuxedo Programs for the Lab WorkshopsYou will now build all client and server executable programs to be used in the lab exercises. These programs need to be built as the lab exercises can be run on a number of platforms, using different versions of operating system and C compiler. The next step requires that the environment is suitably setup - Tuxedo must be installed, the Tuxedo Software Development (SDK) license installed must be valid, and a C compiler must be installed. 15. After installing the lab files, to compile all C programs in the solutions directories and buildthe executable programs:- cd to the <root-directory> that contains the exercises and solutions sub-directories- edit the appropriate buildlabs script file[Windows] buildlabs.bat[UNIX] buildlabs.kshto set the environment variables identified there- In the <root-directory>, run the appropriate buildlabs script (examples are below): [Windows]: Note that you have to supply the root directory name if you did notset it in the buildlabs.bat file.buildlabs [<root-directory>][UNIX]: Note the {space} between {. } and {buildlabs.ksh}. buildlabs.kshWindows Example: cd c:\tuxa11(In a DOS Window)[Edit/set the appropriate environment variables in the buildlabs.bat file; run the bat file as shown below.]buildlabs c:\tuxa11 [Note that the root lab directory name isrequired as a parameter if not set inbuildlabs.bat]UNIX Example: cd /home/student01(ksh)[Edit/set the appropriate environment variables in the buildlabs.ksh file; in the command line below note the <space> between “.” andbuildlabs.ksh)]. buildlabs.ksh16. When the build command script is successfully completed, verify that it has built the clientand server executables by looking at the files in a lab directory such as ‘adac” under the exercises subdirectory. There should be some executable program files (*.exe in Windows, executable files in UNIX). If necessary, you can re-run the buildlabs command file again at any time.17. This completes the lab installation and familiarization. Review the notes in the General LabInstructions section at the beginning of this Lab Guide to become familiar with thegeneralized instructions for the rest of the Lab Workshop exercises.DEPL–Deploying a Basic Tuxedo ApplicationReference Course Modules: DEPLSuggested Time: 20 minutesObjectiveYou will be following instructions to make you familiar with the computer and lab exercise environment, and to configure and run a basic sample application to verify the successful installation of the Tuxedo product. In doing so, you will also be deploying a simple Tuxedo application. You will be performing some of these instructions in this lab without fully knowing the details, such as the configuration file, that will be explained later. An important objective of this lab exercise is to make you comfortable with the lab environment and begin to use some of the basic Tuxedo commands.DescriptionThe configuration for this lab is a basic single machine (SHM mode) application with one client and one server. This basic application, which is shipped with the BEA Tuxedo product, is called simpapp. It consists of the simpcl client that sends a text string, supplied by the user, to the TOUPPER service implemented in the simpserv server. The TOUPPER service converts the text string to uppercase and returns the resultant text string to the client for display to the user.The following files are provided• command script files to set the appropriate environment variables (setenv.cmd for Windows, setenv.ksh for UNIX)• a template Tuxedo configuration file, UBBconfig.template• a client source program, simpcl.c (that you will copy from the Tuxedo product directory)• a server source program, simpserv.c (that you will copy from the Tuxedo product directory)Steps1. The working directory for this lab is depl in the lab exercises directory.• Open a [Windows] DOS command or [UNIX] shell window and “cd” to this directory.2. Edit the appropriate setenv command file replacing the remarks within <> with appropriatevalues for TUXDIR, APPDIR, TUXCONFIG :[Windows] setenv.cmd[UNIX, Korn shell] setenv.kshSet the environment variables using:[Windows] >setenv [Note: Runs the setenv.cmd file][UNIX, Korn shell]$. setenv.ksh[Note: <space> between “.” & “setenv.ksh”] 3. Copy or rename the UBBconfig.template file to UBBconfi g.[Note: This configuration file is almost identical to the one supplied with the simpappapplication, except that we are using the configuration file name convention that we will use for the rest of the lab exercises.]4. Edit the UBBconfig file:• set appropriate values for IPCKEY, TUXDIR, TUXCONFIG, APPDIR, and for the machine name in the MACHINES section.5. Build the TUXCONFIG file using the command:tmloadcf -y UBBconfigIgnore the warning message “WARN: Missing SERVICES section”. If you encounter any other errors, edit the configuration file and correct the errors. Re-build the TUXCONFIG file.6. Copy the client and servers programs, simpcl.c and simpserv.c, from the TUXEDOsample applications directory into the lab directory (depl):[Tuxedo 6.x]copy %TUXDIR%\apps\simpapp\simpcl.*Windows:UNIX: cp $TUXDIR/apps/simpapp/simpcl.* .[Tuxedo 7.1, 8.0]copy %TUXDIR%\samples\atmi\simpapp\simpcl.*Windows:UNIX:cp $TUXDIR%/samples/atmi/simpapp\simpcl.* .Repeat the appropriate command above to copy simpserv.* to the current directory.7. Build the client program executable using the buildclient command:buildclient -v -f simpcl.c -o simpclThis builds a Tuxedo client executable, simpcl, from the C source file, simpcl.c.8. Build the server program executable using the buildserver command:buildserver -v -f simpserv.c -o simpserv -s TOUPPERThis builds a Tuxedo server executable, simpserv, from the C source file, simpserv.c, that will provide a service called TOUPPER when it is started. This server is defined in the Tuxedo configuration file.9. Boot the application using the Tuxedo command:tmboot -y10. Run the Tuxedo administration command line utility program, tmadmin:• Use the printserver subcommand to view the active servers• Use the printservice subcommand to view the information on services• Exit from tmadmin with the quit subcommand11. At the command line prompt, run the client and observe the input text string returned as anuppercase string:simpcl “hello tuxedo”12. Re-run the tmadmin program, and run the same sub-commands as before to observe anydifference in the statistics printed. (Hint: We submitted a request for the TOUPPER service that was completed successfully and was performed by the SIMPSERV server). Exit the tmadmin program.13. Shut down the Tuxedo application system:tmshutdown -y14. Tuxedo messages are logged in a file called the userlog or ULOG file. The file is namedULOG.mmddyy where mmddyy are the two-digit month, day, and year respectively. For example, the file for August 9, 2001 would be named ULOG.080901. We will cover the details of the ULOG file later; for now, be aware that this log file exists and contains valuable error and information messages logged by the Tuxedo system.The ULOG file is a text file and you can examine it with any text editor or with commands such as type or more.Windows: type ULOG* | moreUNIX: more ULOG*Look up the details of some of the logged messages (such as the LIBTUX_CAT:262 message) in the Messages section of the Tuxedo documentation on the Student CD.CONF–Configuring Application ServersReference Course Chapter: CONFSuggested Time: 30 minutesObjectiveThis lab exercise is intended to provide experience in configuring a functional basic application consisting of essential configuration components and to observer the synchronous client-server communication mechanism.DescriptionThis lab utilizes an SHM configuration with one client and three servers.The clientdb program calls a service (specified on the command line) and then prints out information when it receives a reply back from the server. It operates in a synchronous mode – it sends a request for the service and then waits for the response before sending the next request. The three servers provided are SvrInq, SvrUpdate, and SvrDelete and the services each provides simulate the inquiry, update, and delete operations to a database in a typical application.The following files are provided:• template command script files to set the appropriate environment variables (setenv.cmd for Windows, setenv.ksh for UNIX)• template Tuxedo configuration file, UBBconfig.template• application executables (one client and 3 servers): clientdb; servers SvrInq, SvrUpdate, and SvrDelete。
Extreme Networks SLX 9640高性能固定路由器商品介绍说明书
ExtremeRouting? SLX 9640
Built to Suit Your Business Needs Ext rem e Elem ent s are t he b uild ing b locks t hat allow you t o t ailor your net w ork t o your sp ecific b usiness environm ent , g oals, and ob ject ives. They enab le t he creat ion of an A ut onom ous Net w ork t hat d elivers t he p osit ive exp eriences and b usiness out com es m ost im p ort ant t o your org anizat ion.
W W W.EXTREMENETW
1
Flexib le Bo rd er Ro ut ing w it h Int ernet Scale, Ult ra-Deep Buffers,
MPLS and EVPN
The SLX 964 0 is a very p ow erful com p act d eep b uffer Int ernet b ord er rout er, p rovid ing a cost -efficient solut ion t hat is p urp ose-b uilt for t he m ost d em and ing service p rovid er and ent erp rise d at a cent ers and MA N/ WA N ap p licat ions. The rob ust syst em archit ect ure sup p ort ed by SLX-OS and a versat ile feat ure set includ ing IPv4 , IPv6, and MPLS/ VPLS w it h Carrier Et hernet 2.0 and OA M cap ab ilit ies t o p rovid e d ep loym ent flexib ilit y.
因特网发展简史(英文版)
T. Tronco (Ed.): New Network Architectures, SCI 297, pp. 1–11. © Springer-Verlag Berlin Heidelberg 2010 A Brief History of the InternetTania Regina TroncoCPqD Foundation, Rodovia Campinas Mogi-Mirim, km 118,5,Campinas – São Paulo, CEP 13096-902, Brazil tania@.brAbstract. This chapter introduces a brief history review of Internet with focus on its original conception. It’s important to remember such initial ideas because they were the basis of Internet architecture, they are still at the core of today’s Internet and they can be helpful to rethink new design requirements nowadays. Hence, we start by the initial packet-based network protocols and their evolution to TCP/IP. 1 IntroductionThe Internet architecture concept was conceived at the end of the 60´s by ARPA (Advanced Research Projects Agency) during the Cold War, when the United States and Soviet Union were preparing for an eventual military confrontation. At that time, the U.S. military created an underground network of cables and equip-ments intended to survive a nuclear attack. This network was named ARPANET and its design consisted of a number of requirements such as:•Data should be moved through leased lines to avoid problems with in-terruptions of the telephone system; •The information to be transmitted should be broken into segments of fixed length (packets) instead of being a continuous stream and •The network should be totally decentralized, without a single node in the control of the network, yielding reliability and robustness.ARPANET was opened to universities after the end of arms race and a key re-quirement was added to the network project:•Communication between computers, called hosts, should be done through devices called Interface Message Processor (IMP), as shown in Fig. 1.The IMP function was to receive messages from a host and break them in packets. These packets should pass from IMP to IMP through the network until the destina-tion IMP, which should pass them to the destination host.The network consisted of the interconnection of these IMPs through the leased lines supplied by telephonic companies. The first IMP was built by the companyTronco2 T.R.Fig. 1 A Typical Section of ARPANET (adapted from [1])BBN (Bolt Beraneck and Newman) from Cambridge in 1976. The report No. 1822of BBN [2] contains the specifications for the interconnection of a host and anIMP. According to this report, for each regular message, the host specified a desti-nation, composed of three parameters: IMP, host and handling type. These pa-rameters specified uniquely a connection between source and destination host. Thehandling type was used to specify characteristics of the connection, such as prior-ity or non-priority of transmission. The messages should be sent to the destinationin the same order that were transmitted by the source and, for each regular mes-sage, the host also specified a 12 bit identifier to be used with the destination ofthe message, forming a message-id, in order to retransmit them in case of thenetwork failure.The first IMP was installed at University of California (UCLA), in Los Ange-les, followed by SRI (Stanford Research Institute), University of California inSanta Barbara and University of Utah, 4 points in total. The first ARPANETtransmission was made between UCLA and SRI in Mento Park, California in1969. In the same year, the first RFC (Request for Comments) was published;RFC3 defined the RFC series for ARPANET and later, the Internet.2 Decade of the 70´sAfter installing some IMPs in a network, the objective of DARPA was to stan-dardize the ARPANET network interface to allow more DARPA sites to join theA Brief History of the Internet 3 network. To achieve this, the first standard networking protocol was developed in December 1970, namely Network Control Protocol (NCP) [4].2.1 Network Control Protocol OperationThe NCP operation consisted of store-and-forward messages from a sending host to a receiving host. After a host sent a message, it was prohibited from sending another message until receives a RFMN (Request-for-Next-Message). This se-quence of requests made a connection. A connection linked two processes be-tween a sending and a receiving host.The primary function of the NCP was to establish connections and release con-nections. In order to send control commands to establish and release connections between the hosts, one particular link, designated as the control link, was estab-lished between each pair of host.Each host had its internal naming scheme, often incompatible with other hosts. Then, an intermediate name space, named socket, was created in NCP to prevent using this internal name scheme. Each host was responsible for mapping its inner process identifiers into sockets as shown in shown in Fig. 2.Fig. 2 A Typical Socket (adapted from [4])A socket specifies one connection endpoint and is determined by three numbers:• A user number (24 bits) composed by:o 8-bit for home host number,o16 bits to identify him at that host.• A host number (8 bits)•An AEN (Another Eight-bit Number) composed by:o 1 bit that indicate a receive host (=0) or a send host (=1);o7 bits – that provide a population of 128 sockets for each used number at each host.When a user tried to log into a host, her user number was used to tag all the proc-esses created in that host, producing a sort of virtual network.4 T.R.TroncoBy the end of 1971, there were fifteen sites attached into ARPANET usingNCP [10] as follows:•Bolt Baranek and Newman (BBN)•Carnegie Mellon University•Case Western Reserve University•Harvard University•Lincoln Laboratories•Massachusetts Institute of Technology (MIT)•NASA at AMES•RAND Corporation•Stanford Research Institute (SRI)•Stanford University•System Development Corporation•University of California at Los Angeles (UCLA)•University of California of Santa Barbara•University of Illinois at Urbana•University of UTAHAt this time, BBN also developed an electronic mail program for ARPANET thatquickly became the most popular application on the ARPANET [11]. The e-mailprogram specified the destination address as username@hostname, where user-name was the same used to login in the host.At the end of the seventies, there were about 200 hosts connected to ARPA-NET [11]. The NCP was becoming inefficient to connect different packet switch-ing networks because individual networks could differ in their implementationslike the heterogeneous addressing schemes, the different maximum size for thedata, the different time delays for accepting, delivering, and transporting data andso on. In May 1974, Robert Kahn and Vinton Cerf published a paper entitled “AProtocol for Packet Network Intercommunication” on IEEE Transaction on Com-munication [3], proposing a new protocol to support the sharing resources betweendifferent packet switching networks. This protocol was named TCP (TransmissionControl Protocol).According to [3], for both economic and technical considerations, it was con-venient that all the differences between networks could be resolved by simple andreliable interface. This interconnection should also preserve intact the internal op-eration of each individual network. This interface was named Gateway.Fig. 3 illustrates two network interconnected by one gateways.The gateway was divided into two parts; each one associated with its own net-work and its function was understand the source and destination host addressesand insert this information in a standard format in every packet. For this operation,an internetwork header was added to the local header of the packet by the sourcehost, as illustrated in Fig. 4.A Brief History of the Internet 5Fig. 3 Internetworking by Gateway (adapted from [3])Fig. 4 Internetwork Header (adapted from [3])The internetwork header contained the standardized source and destination ad-dresses. The next two fields in the header provided a sequence number and a byte count used to properly sequence the packets upon delivery to the destination and also enabling the gateways to detect fault conditions. The flag field was used to The gateway does not modify the information, only forwarded the header check sum along the path.2.2 TCPThe TCP protocol specified by Cerf and Kahn [3] had the function of promoting the transmission and acceptance of messages of processes that wanted to commu-nicate. To implement this function, TCP first broke the process messages into segments according to a maximum transmission size. This action was called frag-mentation and was done in such a way that the destination process was able to re-assemble the fragmented segments. On the transmission side, the TCP multiplexed together segments from different processes and produced packets for delivery to the packet switches. On the reception side, the TCP accepted the packets sequence from the packet switches, demultiplexed and reassembled the segments to the des-tination processes.This system introduced the notion of ports and TCP address. A port was used to designate a message stream associated with a process. A TCP address was used to routing and delivery packets from diverse processes to the suitable destination host. The original TCP address format is shown in Fig. 5.6 T.R.TroncoFig. 5 TCP Address Format (adapted from [3])The use of 8 bits for network identification (ID) allowed up to 256 distinct net-works. At that time, this address field seemed enough for the future. The TCPidentifier field permitted up to 65 536 distinct TCP be addressed. As each packetpassed through the gateway, it observed the destination network ID to determinethe packet route. If the destination network was connected to the gateway, thelower 16 bits of the TCP address were used to produce a local TCP address in thedestination network. On the other hand, if the destination network was not con-nected to the gateway, the upper 8 bits was used to select the next gateway.In order to send a TCP message, a process settled the information to be trans-mitted in its own address space, inserted network/host/port addresses of the trans-mitter and receiver in a transmit control block (TCB), and transmitted it. At thereceiving side, the TCP examined the source and destination port addresses anddecided whether accepted or reject the request. If the request was rejected, it mere-ly transmitted a release indicating that the destination port address was unknownor inaccessible. On the other hand, if the request was accepted, the sending and re-ceiving ports were associated and the connection was established. After it, TCPstarted the transmission of the packets and waited for the acknowledgements car-ried in the reverse direction of the communication. If no acknowledgement for aparticular packet was received, the TCP retransmitted the packet.Aftertime, a window strategy to flow control of sent and received packets alsowas proposed by Cerf and Kahn [3], as shown in Fig. 6.Fig. 6 Window Strategy (adapted from [3])Supposing that the sequence number field in the internetwork header permitspacket sequence numbers to range from 0 to n – 1, the sender could not transmitmore than w bytes without receiving an acknowledgment. The w bytes werenamed a window (see Fig. 6). On timeout, the sender retransmits the unacknow-ledged bytes. Once acknowledgment was received, the sender’s left window edgeadvanced over the acknowledged.A Brief History of the Internet 7After the development of fundamental characteristics of TCP, the next chal-lenge of DARPA was running TCP on multiple hardware platforms and making experiments to determine optimal parameters for the protocol. In 1977, the ARPA research program included important players in this development such as: BBN, DCEC, ISI, MIT, SRI, UCLA and some prototypes of TCP/IP were implemented.2.3 EthernetAt the same time, the development of the first concepts of new computer network-ing technology for local area networks (LANs) named Ethernet. This technology technologies.The Ethernet idea began on May 22, 1973, when Bob Metcalfe (then at the Xe-rox Palo Alto Research Center, PARC, in California) wrote a memo describing the Ethernet network system he had invented for interconnecting advanced computer workstations, making it possible to send data to one another and to high-speed la-ser printers (see Fig. 7). The seminal article: "Ethernet: Distributed Packet Switch-ing for Local Computer Networks" was published by Robert M. Metcalfe and David R. Boggs in [6].Robert Metcalfe got the idea for the Ethernet protocol when he read a 1970 computer conference paper by Norman Abramson of the University of Hawaii about the packet radio system called ALOHANET linking the Hawaiian Islands. At the end of 1972, the ALOHANET was connected to ARPANET by satellite given a pass to the development of the Internet.Each node in ALOHANET sent out its messages in streams of separate packets of information. If it did not get an acknowledgment back for some packets becauseFig. 7 Robert Metcalfe picture and his famous Ethernet first drawing(adapted from [4])8 T.R.Troncotwo radios were broadcasting at the same time, then the missing packets were con-sidered “lost in the ether”. The word ether was used to denote the propagationmedium that could be used by any type of machine, in analogy to the materialbelieved by the physicists to fill in the free space enabling the electromagneticpropagation.When a packet was lost in the ether, the node would re-broadcast them afterwaiting a random interval of time. Because of this randomness, problems with col-lisions were quickly resolved except under very high traffic loads. On average, thenetwork rarely had to retry more than once or twice to get all the packets to thedestination, which was more efficient than trying to implement a complex coordi-nation system to prevent collisions in the first place. The original 10 Mbps Ether-net standard was first published in the next decade by the DEC-Intel-Xerox (DIX)vendor consortium.3 Decade of the 80´sAfter testing three increasingly better versions: TCPv1, TCPv2, a split into TCPv3and IPv3, finally in 1981, TCP (Transmission Control protocol) v4 and IP (Inter-net Protocol) v4, posted in RFC 791 [7] and RFC 793 [9], respectively, becamestable. This version is still in use on the Internet today.In 1982, an Internet Gateway, to route internet packets based on TCPv4/IPv4,developed by BBN, was standardized in RFC 823 [5]. TCPv4/IPv4 became a stan-dard for DARPA and, in January, 1983, the ARPANET protocol switched fromNCP to TCP/IP. This date is considered the date of the birth of the Internet [11]. In1985, Dan Lynch and the IAB (Internet Architecture Board) realized a workshopfor the computer industry to become TCP/IP a commercial standard and promotethe development of networking products.3.1 Internet ProtocolThe IPv4 implements two basic functions: fragmentation and addressing. Frag-packet" networks.The addressing is used to forward Internet packets toward their destinations.The Internet protocol treats each Internet packet as an independent entity. Thereare no connections or logical circuit establishment. So, the Internet protocol doesnot provide a reliable communication facility, only hop-by-hop forwarding ofpackets. There is no error control for the information, only a header checksum anderrors detected in the header are reported via the Internet Control Message Proto-col (ICMP) [8].The Internet transmission occurs when an application program via transportprotocols sends a request on its local router (gateway) to send data as a packetthought the Internet (see Fig. 8). The Internet router prepares the packet headerand attaches it to the data. The router determines a local network address andsends the packet to the local network interface. The local network interface createsA Brief History of the Internet 9 a local network header, attaches it to the packet and sends it to the local network. The packet is forward hop-by-hop through the network until the local network where the destination host is located. At each hop, the router examines the header and determines the next hop based on the destination address. At the destination router, the packet is sent to the destination host, via transport protocol socket to the application.Fig. 8 Internet Forwarding Packets (adapted from [3])3.2 Ethernet ProtocolThe first Ethernet standard was entitled “The Ethernet, A Local Area Network: Data Link Layer and Physical Layer Specifications” and was published in 1980 by the DIX vendor consortium. It contained the specifications of both the operation of Ethernet and the single media system based on thick coaxial cable.Ethernet is by definition a broadcast protocol where any signal can be received by all hosts. The packets from the network layer are transmitted over an Ethernet by encapsulating them in a frame format as shown in Fig. 9.Fig. 9 Ethernet FrameThe fields of this frame are described as follow:Preamble: is a sequence of 8 bytes, each set to “10101010” and used to syn-chronize receiver before actual data is sent;Addresses•48-bit unicast address assigned to each adapter, named MAC (Me-dium Access Control) Address•Broadcast address: all bits set to 1•Multicast: first bit is set to 1Type field: is used to determine which higher level protocol the frame should be delivered toBody: contains up to 1500 bytes of data10 T.R.TroncoWhen the Ethernet standard was published, a new effort led by the Institute ofElectrical and Electronics Engineers (IEEE) to develop open network standardswas also getting underway. The IEEE standard was created under the direction ofthe IEEE Local and Metropolitan Networks (LAN/MAN) Standards Committee,which identifies all the standards it develops with the number 802. There have beena number of networking standards published in the 802 branch of the IEEE, includ-ing the 802.3 Ethernet and 802.5 Token Ring standards. The IEEE 802.3 committeetook up the network system described in the original DIX standard and used it asthe basis for an IEEE standard. The IEEE standard was first published in 1985 withthe title IEEE 802.3 Carrier Sense Multiple Access with Collision Detection(CSMA/CD). Ethernet uses CSMA/CD to listen the line before sending data:•If the line is idle (no carrier sensed), it sends packet immediately;•If line is busy (carrier sensed), it wait until idle and transmit packetimmediately;•If collision is detected, it stops sending and try again later.After the publication of the original IEEE 802.3 standard for thick Ethernet, thenext development in Ethernet media was the thin coaxial Ethernet variety, inspiredby technology first marketed by the 3Com Corporation. When the IEEE 802.3committee standardized the thin Ethernet technology, they gave it the shorthandidentifier of 10BASE2. Following the development of thin coaxial Ethernet cameseveral new media varieties, including the twisted-pair and fiber optic varieties forthe 10 Mbps system. Next, the 100 Mbps Fast Ethernet system was developed,which also included several varieties of twisted-pair and fiber optic media sys-tems. Most recently, the Gigabit Ethernet and 10 Gigabit Ethernet systems weredeveloped and 100 Gigabit Ethernet is in development. These systems were alldeveloped as supplements to the IEEE Ethernet standard.3.3 Evolution of InternetIn 1985, the National Science Foundation (NSF) launched a network to connectacademic researchers to supercomputer centers to provide very high-speed com-puting resources for the research community. This network was named NSFNETand one of its project design premises was to use ARPANET's TCP/IP protocol. In1986, the NSFNET was connected to ARPANET and these backbones formingwhat today is known as Internet. At the end of this decade, NSFNET became defacto the backbone of the Internet and the ARPANET was ended (Stewart 2000).Also in this period, the World Wide Web (WWW) system was created by TimBerners-Lee [1] to run in the Internet and provide graphical user interfaces andhypertext links between different addresses.In 1991, the Internet became commercially exploited and new backbones werebuilt to offer services of communications. This fact became Internet completelydecentralized, without a central coordination, difficult architectural changes. In1995, the NSFNET was officially dissolved, although, retained a core researchA Brief History of the Internet 11 network called the Very High Speed Backbone Network Service (vBNS), which formed the basis for the Internet2 project [10].Since 1995, the Internet continues growing; more and more people use it to be connected, find information, create business, and share information. The Internet is now an essential part of our lives.References1.Berners-Lee: Information Management: A Proposal, CERN (1989),/History/1989/proposal.html(accessed March 2010)2.Bolt, Beranek, Newman: Report No. 1822: Specification for the Interconnection of ahost and an IMP (1976)3.Cerf, V., Kahn, R.: A Protocol for Packet Network Intercommunication. IEEE Trans-actions on Communication 22(5) (1974)4.Cocker, S., Carr, S., Cerf, V.: RFC 33 New Host-Host Protocol (1970)5.Hinden, R., Shelzer, A.: RFC 823 DARPA Internet gateway (1982)6.Metcalfe, R., Boggs, D.: Ethernet: Distributed Packet Switching for Local ComputerNetworks. Communications of the ACM 19(5), 395–404 (1976),/classics/apr96/ (accessed March 2010)7.Postel, J.: RFC 791 Internet Protocol (1981)8.Postel, J.: RFC 792 Internet Control Message Protocol (1981)9.Postel, J.: RFC 793 Transmission Control Protocol (1981)10.Stewart, B.: Living Internet (2000),/i/i.htm11.Wladrop, M.: Darpa and the Internet Revolution. DARPA 78-85 (2008),/Docs/Internet_Development_200807180909255.pdf (accessed March 2010)。
论文参考文献标准格式
规范的参考文献格式一、参考文献的类型参考文献(即引文出处)的类型以单字母方式标识,具体如下:M——专著C——论文集N—-报纸文章J-—期刊文章D——学位论文R——报告S-—标准P-—专利A——文章对于不属于上述的文献类型,采用字母“Z”标识。
常用的电子文献及载体类型标识:[DB/OL]-—联机网上数据(database online)[DB/MT]—-磁带数据库(database on magnetic tape)[M/CD]--光盘图书(monograph on CD ROM)[CP/DK]-—磁盘软件(computer program on disk)[J/OL]——网上期刊(serial online)[EB/OL]——网上电子公告(electronic bulletin board online)对于英文参考文献,还应注意以下两点:①作者姓名采用“姓在前名在后”原则,具体格式是:姓,名字的首字母。
如:Malcolm Richard Cowley 应为:Cowley, M。
R.,如果有两位作者,第一位作者方式不变,&之后第二位作者名字的首字母放在前面,姓放在后面,如:Frank Norris 与Irving Gordon应为:Norris, F。
& I。
Gordon.;②书名、报刊名使用斜体字,如:Mastering English Literature,English Weekly。
二、参考文献的格式及举例1.期刊类【格式】[序号]作者.篇名[J].刊名,出版年份,卷号(期号):起止页码.【举例】[1] 周融,任志国,杨尚雷,厉星星。
对新形势下毕业设计管理工作的思考与实践[J]。
电气电子教学学报,2003(6):107-109。
[2] 夏鲁惠。
高等学校毕业设计(论文)教学情况调研报告[J]。
高等理科教育,2004(1):46-52。
[3]Heider,E.R.&D.C。
Oliver。
rfc1195
Callon Page i Use of OSI IS-IS for Routing in TCP/IP and DualEnvironmentsStatus of this MemoThis RFC specifies a protocol on the IAB Standards Track for the internet community, and re-quests discussion and suggestions for improvements. Please refer to the current edition of the "IAB Official Protocol Standards" for the standardization state and status of this protocol. Distri-bution of this memo is unlimited.AbstractThis RFC specifies an integrated routing protocol, based on the OSI Intra-Domain IS-IS Routing Protocol, which may be used as an interior gateway protocol (IGP) to support TCP/IP as well as OSI. This allows a single routing protocol to be used to support pure IP environments, pure OSI environments, and dual environments. This specification was developed by the IS-IS working group of the Internet Engineering Task Force.The OSI IS-IS protocol has reached a mature state, and is ready for implementation and opera-tional use. The most recent version of the OSI IS-IS protocol is contained in ISO DP 10589 [1].The proposed standard for using IS-IS for dual routing will therefore make use of this version (with a minor bug correction, as discussed in Annex B). We expect that future versions of this proposed standard will upgrade to the final International Standard version of IS-IS when avail-able.Comments should be sent to “isis@”.Contents1Introduction: Overview of the Protocol (1)1.1What the Integrated IS−IS offers .......................................................................................................11.2Overview of the ISO IS−IS Protocol .................................................................................................21.3Overview of the Integrated IS−IS ......................................................................................................51.4Support of Mixed Routing Domains..................................................................................................7Ross W. Callon Digital Equipment CorporationDecember, 1990Network Working GroupRequest for Comments: 11951.5Advantages of Using Integrated IS−IS (7)2Symbols and Abbreviations (9)3Subnetwork Independent Functions (10)3.1Exchange of Routing Information (10)3.2Hierarchical Abbreviation of IP Reachability Information (11)3.3Addressing Routers in IS−IS Packets (14)3.4External Links (16)3.5Type of Service Routing (17)3.6Multiple LSPs and SNPs (17)3.7IP−Only Operation (18)3.8Encapsulation (18)3.9Authentication (19)3.10Order of Preference of Routes / Dijkstra Computation (19)4Subnetwork Dependent Functions (22)4.1Link Demultiplexing (22)4.2Multiple IP Addresses per Interface (23)4.3LANs, Designated Routers, and Pseudonodes (23)4.4Maintaining Router Adjacencies (24)4.5Forwarding to Incompatible Routers (25)5Structure and Encoding of PDUs (25)5.1Overview of IS−IS PDUs (25)5.2Overview of IP−Specific Information for IS−IS (26)5.3Encoding of IP−Specific Fields in IS−IS PDUs (28)6Security Considerations (38)7Author’s Address (39)8References (39)A Inter-Domain Routing Protocol Information (40)A.1Inter-Domain Information Type (40)A.2Encoding (40)B Encoding of Sequence Number Packets (42)Callon Page iiB.1Level 1 Complete Sequence Numbers PDU (43)B.2Level 2 Complete Sequence Numbers PDU (45)B.3Level 1 Partial Sequence Numbers PDU (47)B.4Level 2 Partial Sequence Numbers PDU (49)C Dijkstra Calculation and Forwarding (51)C.1SPF Algorithm for IP and Dual Use (51)C.2Forwarding of IP packets (57)D Use of the Authentication Field (62)D.1Authentication Field in IS-IS packets (62)D.2Authentication Type 1 - Simple Password (62)E Interaction of the Integrated IS-IS with Brouters (64)E.1The Problem (64)E.2Possible Solutions (65)Figures1ISO Hierarchical Address Structure (3)2An Example (13)3Encoding of Variable Length Fields (27)Callon Page iii1 Introduction: Overview of the ProtocolThe TCP/IP protocol suite has been growing in importance as a multi-vendor communications architecture. With the anticipated emergence of OSI, we expect coexistence of TCP/IP and OSI to continue for an extended period of time. There is a critical need for routers to support both IP traffic and OSI traffic in parallel.There are two main methods that are available for routing protocols to support dual OSI and IP routers. One method, known as “Ships in the Night”, makes use of completely independent rout-ing protocols for each of the two protocol suites. This specification presents an alternate ap-proach, which makes use of a single integrated protocol for interior routing (i.e., for calculating routes within a routing domain) for both protocol suites.This integrated protocol design is based on the OSI Intra-domain IS-IS routing protocol [1], with IP-specific functions added. This RFC is considered a companion to the OSI IS-IS Routing spec, and will only describe the required additional features.By supporting both IP and OSI traffic, this integrated protocol design supports traffic to IP hosts, OSI end systems, and dual end systems. This approach is “integrated” in the sense that the IS-IS protocol can be used to support pure-IP environments, pure-OSI environments, and dual environ-ments. In addition, this approach allows interconnection of dual (IP and OSI) routing domains with other dual domains, with IP-only domains, and with OSI-only domains.The protocol specified here is based on the work of the IETF IS-IS working group.1.1 What the Integrated IS-IS offersThe integrated IS-IS provides a single routing protocol which will simultaneously provide an effi-cient routing protocol for TCP/IP, and for OSI. This design makes use of the OSI IS-IS routing protocol, augmented with IP-specific information. This design provides explicit support for IP subnetting, variable subnet masks, TOS-based routing, and external routing. There is provision for authentication information, including the use of passwords or other mechanisms. The precise form of authentication mechanisms (other than passwords) is outside of the scope of this docu-ment.Both OSI and IP packets are forwarded “as is” — i.e., they are transmitted directly over the un-derlying link layer services without the need for mutual encapsulation. The integrated IS-IS is a dynamic routing protocol, based on the SPF (Dijkstra) routing algorithm.The protocol described in this specification allows for mixing of IP-only, OSI-only, and dual (IP and OSI) routers, as defined below.An IP-only IS-IS router (or “IP-only” router) is defined to be a router which: (i) Uses IS-IS as the routing protocol for IP, as specified in this report; and (ii) Does not otherwise support OSI proto-cols. For example, such routers would not be able to forward OSI CLNP packets.Callon Page 1An OSI-only router is defined to be a router which uses IS-IS as the routing protocol for OSI, as specified in [1]. Generally, OSI-only routers may be expected to conform to OSI standards, and may be implemented independent of this specification.A dual IS-IS router (or “dual” router) is defined to be a router which uses IS-IS as a single inte-grated routing protocol for both IP and OSI, as specified in this report.This approach does not change the way that IP packets are handled. IP-only and dual routers are required to conform to the requirements of Internet Gateways [4]. The integrated IS-IS protocol described in this report outlines an Interior Gateway Protocol (IGP) which will provide routing within a TCP/IP routing domain (i.e., autonomous system). Other aspects of router functionality (e.g., operation of ICMP, ARP, EGP, etc.) are not affected by this proposal.Similarly, this approach does not change the way that OSI packets are handled. There will be no change at all to the contents nor to the handling of ISO 8473 Data packets and Error Reports, nor to ISO 9542 Redirects and ES Hellos. ISO 9542 IS Hellos transmitted on LANs are similarly unchanged. ISO 9542 IS Hellos transmitted on point-to-point links are unchanged except for the addition of IP-related information. Similarly, other OSI packets (specifically those involved in the IS-IS intra-domain routing protocol) remain unchanged except for the addition of IP-related information.This approach makes use of the existing IS-IS packets, with IP-specific fields added. Specifically: (i) authentication information may be added to all IS-IS packets; (ii) the protocols supported by each router, as well as each router’s IP addresses, are specified in ISO 9542 IS Hello, IS-IS Hello and Link State Packets; (iii) internally reachable IP addresses are specified in all Link State Pack-ets; and (iv) externally reachable IP addresses, and external routing protocol information, may be specified in level 2 Link State Packets. The detailed encoding and interpretation of this informa-tion is specified in sections 3, 4, and 5 of this RFC.The protocol described in this report may be used to provide routing in an IP-only routing do-main, in which all routers are IP-only. Similarly, this protocol may be used to provide routing in a pure dual domain, in which all routers are dual. Finally, this protocol may be used to provide routing in a mixed domain, in which some routers are IP-only, some routers are OSI-only, and some routers are dual. The specific topological restrictions which apply in this latter case are de-scribed in detail in section 1.4 (“Support of Mixed Routing Domains”). The use of IS-IS for sup-port of pure OSI domains is specified in [1].This protocol specification does not constrain which network management protocol(s) may be used to manage IS-IS-based routers. Management information bases (MIBs) for managing IP-only, OSI-only, and dual routers, compatible with CMIP, CMOT, and/or SNMP, are the subject of a separate, companion document [8].1.2 Overview of the ISO IS-IS ProtocolThe IS-IS Routing Protocol has been developed in ISO to provide routing for pure OSI environ-ments. In particular, IS-IS is designed to work in conjunction with ISO 8473 (The ISO Connec-tionless Network Layer Protocol [2]), and ISO 9542 (The ISO End System to Intermediate Sys-Callon Page 2tem Protocol [3]). This section briefly describes the manner in which IS-IS is used to support pure OSI environments. Enhancements for support of IP and dual environments are specified elsewhere in this report.In IS-IS, the network is partitioned into “routing domains”. The boundaries of routing domains are defined by network management, by setting some links to be “exterior links”. If a link is marked as “exterior”, no IS-IS routing messages are sent on that link.Currently, ISO does not have a standard for inter-domain routing (i.e., for routing between sepa-rate autonomous routing domains). Instead, manual configuration is used. The link is statically configured with the set of address prefixes reachable via that link, and with the method by which they can be reached (such as the DTE address to be dialed to reach that address, or the fact that the DTE address should be extracted from the IDP portion of the ISO address).OSI IS-IS routing makes use of two-level hierarchical routing. A routing domain is partitioned into “areas”. Level 1 routers know the topology in their area, including all routers and end sys-tems in their area. However, level 1 routers do not know the identity of routers or destinations outside of their area. Level 1 routers forward all traffic for destinations outside of their area to a level 2 router in their area. Similarly, level 2 routers know the level 2 topology, and know which addresses are reachable via each level 2 router. However, level 2 routers do not need to know the topology within any level 1 area, except to the extent that a level 2 router may also be a level 1 router within a single area. Only level 2 routers can exchange data packets or routing information directly with external routers located outside of the routing domains.As illustrated in figure 1, ISO addresses are subdivided into the Initial Domain Part (IDP), and the Domain Specific Part (DSP). The IDP is the part which is standardized by ISO, and specifies the format and authority responsible for assigning the rest of the address. The DSP is assigned by whatever addressing authority is specified by the IDP. The DSP is further subdivided into a “High Order Part of DSP” (HO-DSP), a system identifier (ID), and an NSAP selector (SEL). The HO-DSP may use any format desired by the authority which is identified by the IDP. Together, the combination of [IDP, HO-DSP] identify both the routing domain and the area within the rout-ing domain. The combination of [IDP,HO-DSP] may therefore be referred to as the “Area Ad-dress”.Callon Page 3Usually, all nodes in an area have the same area address. However, sometimes an area might have multiple addresses. Motivations for allowing this are:-It might be desirable to change the address of an area. The most graceful way of changing an area from having address A to having address B is to first allow it to have both addresses A and B, and then after all nodes in the area have been modified to recognize both addresses, then one by one the nodes can be modified to “forget” address A.-It might be desirable to merge areas A and B into one area. The method for accomplishing this is to, one by one, add knowledge of address B into the A partition, and similarly add knowledge of address A into the B partition.-It might be desirable to partition an area C into two areas, A and B (where “A” might equal “C”, in which case this example becomes one of removing a portion of an area). This would be accomplished by first introducing knowledge of address A into the appropriate nodes (those destined to become area A), and knowledge of address B into the appropriate nodes, and then one by one removing knowledge of address C.Since OSI addressing explicitly identifies the area, it is very easy for level 1 routers to identify packets going to destinations outside of their area, which need to be forwarded to level 2 routers. In IS-IS, there are two types of routers:-Level 1 intermediate systems — these nodes route based on the ID portion of the ISO ad-dress. They route within an area. They recognize, based on the destination address in a packet, whether the destination is within the area. If so, they route towards the destination. If not, they route to the nearest level 2 router.-Level 2 intermediate systems — these nodes route based on the area address (i.e., on the combination of [IDP, HO-DSP]). They route towards areas, without regard to the internal structure of an area. A level 2 IS may also be a level 1 IS in one area.A level 1 router will have the area portion of its address manually configured. It will refuse to become a neighbor with a node whose area addresses do not overlap its area addresses. However, if level 1 router has area addresses A, B, and C, and a neighbor has area addressesB and D, then the level 1 router will accept the other node as a neighbor.A level 2 router will accept another level 2 router as a neighbor, regardless of area address. How-ever, if the area addresses do not overlap, the link would be considered by both routers to be “level 2 only”, and only level 2 LSPs would flow on the link. External links (to other routing domains) must be from level 2 routers.IS-IS provides an optional partition repair function. In the unlikely case that a level 1 area be-come partitioned, this function, if implemented, allows the partition to be repaired via use of level 2 routes.IS-IS requires that the set of level 2 routers be connected. Should the level 2 backbone become partitioned, there is no provision for use of level 1 links to repair a level 2 partition.Callon Page 4In unusual cases, a single level 2 router may lose connectivity to the level 2 backbone. In this case the level 2 router will indicate in its level 1 LSPs that it is not “attached”, thereby allowing level 1 routers in the area to route traffic for outside of the domain to a different level 2 router. Level 1 routers therefore route traffic to destinations outside of their area only to level 2 routers which indicate in their level 1 LSPs that they are “attached”.An end system may autoconfigure the area portion of its address by extracting the area portion of a neighboring router’s address. If this is the case, then an endnode will always accept a router as a neighbor. Since the standard does not specify that the end system MUST autoconfigure its area address, an end system may be configured with an area address. In this case the end system would ignore router neighbors with non-matching area addresses.Special treatment is necessary for broadcast subnetworks, such as LANs. This solves two sets of issues: (i) In the absence of special treatment, each router on the subnetwork would announce a link to every other router on the subnetwork, resulting in n-squared links reported; (ii) Again, in the absence of special treatment, each router on the LAN would report the same identical list of end systems on the LAN, resulting in substantial duplication.These problems are avoided by use of a “pseudonode”, which represents the LAN. Each router on the LAN reports that it has a link to the pseudonode (rather than reporting a link to every other router on the LAN). One of the routers on the LAN is elected “designated router”. The designated router then sends out an LSP on behalf of the pseudonode, reporting links to all of the routers on the LAN. This reduces the potential n-squared links to n links. In addition, only the pseudonode LSP includes the list of end systems on the LAN, thereby eliminating the potential duplication (for further information on designated routers and pseudonodes, see [1]).The IS-IS provides for optional Quality of Service (QOS) routing, based on throughput (the de-fault metric), delay, expense, or residual error probability. This is described in greater detail in section 3.5, and in [1].1.3 Overview of the Integrated IS-ISThe integrated IS-IS allows a single routing protocol to be used to route both IP and OSI packets. This implies that the same two-level hierarchy will be used for both IP and OSI routing. Each area will be specified to be either IP-only (only IP traffic can be routed in that particular area), OSI-only (only OSI traffic can be routed in that area), or dual (both IP and OSI traffic can be routed in the area).This proposal does not allow for partial overlap of OSI and IP areas. For example, if one area is OSI-only, and another area is IP-only, then it is not permissible to have some routers be in both areas. Similarly, a single backbone is used for the routing domain. There is no provision for inde-pendent OSI and IP backbones.Similarly, within an IP-only or dual area, the amount of knowledge maintained by routers about specific IP destinations will be as similar as possible as for OSI. For example, IP-capable level 1 routers will maintain the topology within the area, and will be able to route directly to IP destina-tions within the area. However, IP-capable level 1 routers will not maintain information aboutCallon Page 5destinations outside of the area. Just as in normal OSI routing, traffic to destinations outside of the area will be forwarded to the nearest level 2 router. Since IP routes to subnets, rather than to specific end systems, IP routers will not need to keep nor distribute lists of IP host identifiers (note that routes to hosts can be announced by using a subnet mask of all ones).The IP address structure allows networks to be partitioned into subnets, and allows subnets to be recursively subdivided into smaller subnets. However, it is undesireable to require any specific relationship between IP subnet addresses and IS-IS areas. For example, in many cases, the dual routers may be installed into existing environments, which already have assigned IP and/or OSI addresses. In addition, even if IP addresses are not already pre-assigned, the address limitations of IP constrain what addresses may be assigned. We therefore will not require any specific rela-tionship between IP addresses and the area structure. The IP addresses can be assigned com-pletely independently of the OSI addresses and IS-IS area structure. As will be described in sec-tion 3.2 (“Hierarchical Abbreviation of IP Reachability Information”), greater efficiency and scaling of the routing algorithm can be achieved if there is some correspondence between the IP address assignment structure and the area structure.Within an area, level 1 routers exchange link state packets which identify the IP addresses reach-able by each router. Specifically, zero or more [IP address, subnet mask, metric] combinations may be included in each Link State Packet. Each level 1 router is manually configured with the [IP address, subnet mask, metric] combinations which are reachable on each interface. A level 1 router routes as follows:-If a specified destination address matches an [IP address, subnet mask, metric] reachable within the area, the packet is routed via level 1 routing.-If a specified destination address does not match any [IP address, subnet mask, metric] com-bination listed as reachable within the area, the packet is routed towards the nearest level 2 router.Flexible use of the limited IP address space is important in order to cope with the anticipated growth of IP environments. Thus an area (and by implication a routing domain) may simultane-ously make use of a variety of different address masks for different subnets in the area (or do-main). Generally, if a specified destination address matches more than one [IP address, subnet mask] pair, the more specific address is the one routed towards (the one with more "1" bits in the mask — this is known as "best match" routing).Level 2 routers include in their level 2 LSPs a complete list of [IP address, subnet mask, metric] specifying all IP addresses reachable in their area. As described in section 3, this information may be obtained from a combination of the level 1 LSPs (obtained from level 1 routers in the same area), and/or by manual configuration. In addition, Level 2 routers may report external reachabil-ity information, corresponding to addresses which can be reached via routers in other routing do-mains (autonomous systems)Default routes may be announced by use of a subnet mask containing all zeroes. Default routes should be used with great care, since they can result in “black holes”. Default routes are permit-Callon Page 6ted only at level 2 as external routes (i.e., included in the "IP External Reachability Information" field, as explained in sections 3 and 5). Default routes are not permitted at level 1.The integrated IS-IS provides optional Type of Service (TOS) routing, through use of the QOS feature from IS-IS.1.4 Support of Mixed Routing DomainsThe integrated IS-IS proposal specifically allows for three types of routing domains:-Pure IP-Pure OSI-DualIn a pure IP routing domain, all routers must be IP-capable. IP-only routers may be freely mixed with dual routers. Some fields specifically related to OSI operation may be included by dual rout-ers, and will be ignored by IP-only routers. Only IP traffic will be routed in an pure IP domain. Any OSI traffic may be discarded (except for the IS-IS packets necessary for operation of the routing protocol).In a pure OSI routing domain, all routers must be OSI-capable. OSI-only routers may be freely mixed with dual routers. Some fields specifically related to IP operation may be included by dual routers, and will be ignored by OSI-only routers. Only OSI traffic will be routed in a pure OSI domain. Any IP traffic may be discarded.In a dual routing domain, IP-only, OSI-only, and dual routers may be mixed on a per-area basis. Specifically, each area may itself be defined to be pure IP, pure OSI, or dual.In a pure IP area within a dual domain, IP-only and dual routers may be freely mixed. Only IP traffic can be routed by level 1 routing within a pure-IP area.In a pure-OSI area within a dual domain, OSI-only and dual routers may be freely mixed. Only OSI traffic can be routed by level 1 routing within a pure OSI area.In a dual area within a dual routing domain only dual routers may be used. Both IP and OSI traf-fic can be routed within a dual area.Within a dual domain, if both IP and OSI traffic are to be routed between areas then all level 2 routers must be dual.1.5 Advantages of Using Integrated IS-ISUse of the integrated IS-IS protocol, as a single protocol for routing both IP and OSI packets in a dual environment, has significant advantages over using separate protocols for independently routing IP and OSI traffic.Callon Page 7An alternative approach is known as “Ships In the Night” (S.I.N.). With the S.I.N. approach, completely separate routing protocols are used for IP and for OSI. For example, OSPF [5] may be used for routing IP traffic, and IS-IS [1] may be used for routing OSI traffic. With S.I.N., the two routing protocols operate more or less independently. However, dual routers will need to imple-ment both routing protocols, and therefore there will be some degree of competition for re-sources.Note that S.I.N. and the integrated IS-IS approach are not really completely separate options. In particular, if the integrated IS-IS is used within a routing domain for routing of IP and OSI traffic, it is still possible to use other independent routing protocols for routing other protocol suites.In the future, optional extensions to IS-IS may be defined for routing other common protocol suites. However, such future options are outside of the scope of this document. This section will compare integrated IS-IS and S.I.N. for routing of IP and OSI only.A primary advantage of the integrated IS-IS relates to the network management effort required. Since the integrated IS-IS provides a single routing protocol, within a single coordinated routing domain using a single backbone,, this implies that there is less information to configure. This combined with a single coordinated MIB simplifies network management.Note that the operation of two routing protocols with the S.I.N. approach are not really independ-ent, since they must share common resources. However, with the integrated IS-IS, the interac-tions are explicit, whereas with S.I.N., the interactions are implicit. Since the interactions are ex-plicit, again it may be easier to manage and debug dual routers.Another advantage of the integrated IS-IS is that, since it requires only one routing protocol, it uses fewer resources. In particular, less implementation resources are needed (since only one pro-tocol needs to be implemented), less CPU and memory resources are used in the router (since only one protocol needs to be run), and less network resources are used (since only one set of routing packets need to be transmitted). Primarily this translates into a financial savings, since each of these three types of resources cost money. This implies that dual routers based on the integrated IS-IS should be less expensive to purchase and operate than dual routers based on S.I.N.Note that the operation of two routing protocols with the S.I.N. approach are not really independ-ent, since they must share common resources. For example, if one routing protocol becomes un-stable and starts to use excessive resources, the other protocol is likely to suffer. A bug in one protocol could crash the other. However, with the integrated IS-IS, the interactions are explicit and are defined into the protocol and software interactions. With S.I.N., the interactions are im-plicit.The use of a single integrated routing protocol similarly reduces the likely frequency of software upgrades. Specifically, if you have two different routing protocols in your router, then you have to upgrade the software any time EITHER of the protocols change. If you make use of a single integrated routing protocol, then software changes are still likely to be needed, but less fre-quently.Callon Page 8。
01_PROFINET基础知识
21
Profinet RT capable Managed Switch families Profinet-with Conformance-Class B functionality with intgrated Profinet-Device Stack Topolog y recognition by LLDP Redundancy protocol RSTP and MRP
PROFINET Controller Portfolio
17
wide range of Profinet controllers in different housings and performance classes
AXC 1xxx family PROFINET Device RFC-family Profinet Controller/Device RedundancyController Profisafe Controller
PROFINET – an Open Standard
High number of Technology developers
14
Stacks, Boards, ASICS or integration support
Device manufactures
Controller, Infrastructure, IO, Drives, …
AXIOline F AXIOline E
Ruggedline
Fieldline
Inline
ST
Existing I/O systems can be used further on
PROFINET Infrastructure Wired
华为数通HCIA211试卷五
华为数通HCIA211试卷五华为数通HCIA211试卷五1.【单选题】1分| DHCPv6服务发送的RA报文中的MO标记位取值为01,则主机采用下列哪种方式进行地址自动配置?A 取值没有任何意义B DHCPv6无状态自动配置C DHCPv6有状态自动配置D 无状态自动配置2.【多选题】1分| 以下关于MPLS报文头中S字段说法正确的是哪些?A 用来标志本标签后是否还有其他标签,1表示是,0表示不是B S位存在于每一个MPLS报文头中C 用来标志本标签后是否还有其他标签,0表示是,1表示不是D S位在帧模式中只有1bit,在信元模式中有2bit3.【判断题】1分| VRP界面下,使用命令startup saved-configuration backup.cfg,配置下次启动时使用backup.cfg文件。
A对B错4.【多选题】1分| STP端口在下列哪种状态之间转化时存在Forward Delay?A Forwarding-DisabledB Blocking-ListeningC Disabled-BlockingD Listening-LearningE Learning-Forwarding5.【多选题】1分| STP中选举根端口时需要考虑以下哪些参数?A 端口的双工模式B 端口槽位编号,如G0/0/1C 端口的MAC地址D 端口优先级E 端口到达根交换机的Cost6.【多选题】1分| 当路由器运行在同一个OSPF区域中时,对它们的LSDB和路由表的描述正确的是()。
A 各台路由器得到的链路状态数据库是不同的B 各台路由器的路由表是不同的C 所有路由器得到的链路状态数据库是相同的D 所有路由器得到的路由表是相同的7.【多选题】1分| 路由表当中包含以下哪些要素?A InterfaceB ProtocolC Destination/MaskD CostE NextHop8.【多选题】1分| 某台路由器路由表输出信息如下,下列说法正确的是?A 本路由器到达10.0.0.1的NextHop为10.0.21.2B 本路由器到达10.0.2.2的NextHop为10.0.21.2C 本路由器到达10.0.0.1的NextHop为10.0.12.2D 本路由器到达10.0.2.2的NextHop为10.0.12.29.【多选题】1分| 以下应用程序中基于TCP协议的是哪一项?A FTPB HTTPC PingD TFTP10.【多选题】1分| 在交换机上,哪些VLAN可以通过使用undo命令来对其进行删除?A vlan 4094B vlan 1C vlan 2D vlan 102411.【判断题】1分| 静态NAT只能实现私有地址和公有地址的一对一映射。
报错20121228
2012-12-28 11:27:56 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.32
2012-12-28 11:27:56 org.apache.catalina.startup.HostConfig deployDescriptor
at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
信息: Deploying configuration descriptor bam2.xml
license-to:南昌蓝锐
试用版:2013-09-30
webContentPath:/D:/java/workspace/ekp20121217nc/WebContent
Plugin Context is starting ...
2012-12-28 11:29:04,710 [INFO] ==== main: org.quartz.impl.StdSchedulerFactory.instantiate(1018)
Quartz scheduler version: 1.5.2
2012-12-28 11:29:04,717 [INFO] ==== main: org.quartz.core.QuartzScheduler.setJobFactory(1853)
DNS设定上常见的错误及注意事项
A Simple Working Model (cont.)
.
IN T
NSAP
r o o t se rv ers tw o rg net g o v , m il . . . c o m , o r g ,n e t g o v ,m il
A rpa in -a d d r
c n ,h k ,.. edu
2.
DNS-spoofing, improper defaults (dynamic update, WINS/DNS forwarding, etc), etc. DDoS, forwarding storm, etc Poor DNS performance
3. 4.
Common Type of DoS Attacks to DNS Servers
– TCP
Start N Ignore
Dst-port = 53
Y
Y Reject
Src-port = 137
N End
MRTG-n (n = 2,3,4)
•Find effective DNS queries and ratio
Fig.4 Find effective DNS queries and ratio
hgs h nehs www
Fig. 3 Hierarchical Architecture of the DNS System
2. Common DNS Problems
• Common configuration errors or attacks ?
– Simple Classification of Common DNS Problems
IP 6
203 192 . ... com . 140 www ncku n c tu 113 hc 127 ee 114 cc c is 6 ... n s1 hchs 250 bbs . ... . ... . m a il il c cser v 2 2
www-rfc-editor-org
Network Working Group J. Palme Request for Comments: 2076 Stockholm University/KTH Category: Informational February 1997Common Internet Message HeadersStatus of this MemoThis memo provides information for the Internet community. This memo does not specify an Internet standard of any kind. Distribution of this memo is unlimited.AbstractThis memo contains a table of commonly occurring headers in headings of e-mail messages. The document compiles information from other RFCs such as RFC 822, RFC 1036, RFC 1123, RFC 1327, RFC 1496, RFC 1521,RFC 1766, RFC 1806, RFC 1864 and RFC 1911. A few commonly occurring headers which are not defined in RFCs are also included. For eachheader, the memo gives a short description and a reference to the RFC in which the header is defined.Table of contents1. Introduction (2)2. Use of gatewaying headers (3)3. Table of headers (3)3.1 Phrases used in the tables (3)3.2 Trace information (5)3.3 Format and control information (5)3.4 Sender and recipient indication (6)3.5 Response control (9)3.6 Message identification and referral headers (11)3.7 Other textual headers (12)3.8 Headers containing dates and times (13)3.9 Quality information (13)3.10 Language information (14)3.11 Size information (14)3.12 Conversion control (15)3.13 Encoding information (15)3.14 Resent-headers (16)3.15 Security and reliability (16)3.16 Miscellaneous (16)4. Acknowledgments (18)Palme Informational [Page 1] RFC 2076 Internet Message Headers February 19975. References (18)6. Author's Address (20)Appendix A:Headers sorted by Internet RFC document in which they appear. 21Appendix B:Alphabetical index (25)1. IntroductionMany different Internet standards and RFCs define headers which may occur on Internet Mail Messages and Usenet News Articles. Theintention of this document is to list all such headers in onedocument as an aid to people developing message systems or interested in Internet Mail standards.The document contains all headers which the author has found in the following Internet standards: , RFC 822 [2], RFC 1036 [3], RFC 1123 [5], RFC 1327 [7], RFC 1496 [8], RFC 1521 [11], RFC 1766 [12], RFC1806 [14], RFC 1864[17] and RFC 1911[20]. Note in particular thatheading attributes defined in PEM (RFC 1421-1424) and MOSS (RFC 1848 [16]) are not included. PEM and MOSS headers only appear inside the body of a message, and thus are not headers in the RFC 822 sense.3.9 Priority3.2 ReceivedRecipient, see To, cc, bcc, Alternate-Recipient, Disclose-Recipient3.6 References3.8 Reply-By3.4 Reply-To, see also In-Reply-To, References3.14 Resent-Return see also Content-Return3.2 Return-PathPalme Informational [Page 26] RFC 2076 Internet Message Headers February 19973.5 Return-Receipt-To3.6 See-Also3.4 Sender3.9 Sensitivity3.16 Status3.7 Subject3.7 Summary3.6 Supersedes3.4 Telefax3.4 ToTransfer-Encoding see Content-Transfer-EncodingType see Content-Type, Message-Type, Original-Encoded-Information-TypesVersion, see MIME-Version, X-Mailer3.4 X400-Content-Return3.4 X-Mailer see also Mail-System-Version3.4 X-Newsreader3.15 XrefPalme Informational [Page 27]。
CISCO官方配置手册IPV6-DHCP
Implementing IPv6 for Cisco IOS Software
22
Implementing DHCP for IPv6
Information About Implementing DHCP for IPv6
Client and Server Identification
Each DHCP for IPv6 client and server is identified by a DHCP unique identifier (DUID). The DUID is carried in the client identifier and server identifier options. The DUID is unique across all DHCP clients and servers, and it is stable for any specific client or server. DHCP for IPv6 uses DUIDs based on link-layer addresses for both the client and server identifier. The device uses the MAC address from the lowest-numbered interface to form the DUID. The network interface is assumed to be permanently attached to the device.
rfc721.Out-of-Band Control Signals in a Host-to-Host Protocol
NWG/RFC 721 1 SEP 76 LLG 36636 Out-of-Band Control SignalsNetwork Working Group Larry Garlick Request for Comments 721 SRI-ARC NIC 36636 1 September 76Out-of-Band Control Signalsin aHost-to-Host ProtocolThis note addresses the problem of implementing a reliable out-of-band signal for use in a host-to-host protocol. It is motivated by the fact that such a satisfactory mechanism does not exist in the Transmission Control Protocol (TCP) of Cerf et. al. [reference 4, 6] In addition to discussing some requirements for such an out-of-band signal (interrupts) and the implications for the implementation of the requirements, a discussion of the problem for the TCP case will be presented.While the ARPANET host-to-host protocol does not support reliable transmission of either data or controls, it does meet the other requirements we have for an out-of-band control signal and will be drawn upon to provide a solution for the TCP case.The TCP currently handles all data and controls on the same logical channel. To achieve reliable transmission, it provides positive acknowledgement and retransmission of all data and most controls. Since interrupts are on the same channel as data, the TCP must flush data whenever an interrupt is sent so as not to be subject to flow control.Functional RequirementsIt is desirable to insure reliable delivery of an interrupt. Thesender must be assured that one and only one interrupt is deliveredat the destination for each interrupt it sends. The protocol neednot be concerned about the order of delivery of interrupts to theuser.The interrupt signal must be independent of data flow controlmechanisms. An interrupt must be delivered whether or not there are buffers provided for data, whether or not other controls are beinghandled. The interrupt should not interfere with the reliabledelivery of other data and controls.The host-to-host protocol need not provide synchronization betweenthe interrupt channel and the data-control channel. In fact, ifcoupling of the channels relies on the advancement of sequencenumbers on the data-control channel, then the interrupt channel is no longer independent of flow control as required above. Thesynchronization with the data stream can be performed by the user by 1marking the data stream when an interrupt is generated. Theinterrupt need not be coupled with other controls since it in no way affects the state of a connection.Once the interrupt has been delivered to the user, no other semantics are associated with it at the host-to-host level.ImplicationsTo provide for reliable delivery and accountability of interruptdelivery, an acknowledgement scheme is required. To associateinterrupt acknowledgements with the correct interrupt, some namingconvention for interrupts is necessary. Sequence numbers providesuch a naming convention, along with the potential for providing anordering mechanism.A separate interrupt channel is required to make interruptsindependent of flow control. A separate sequence number space fornaming interrupts is also necessary. If the sequence numbers arefrom the same sequence number space as some other channel, thensending an interrupt can be blocked by the need to resynchronize the sequence numbers on that channel.In the current TCP, which uses one channel for data, controls, andinterrupts, flushing of data is combined with the interrupt to bypass the flow control mechanism. However, flushing of resynchronizationcontrols is not allowed and receipt of these controls is dependent on the acknowledgement of all previous data. The ARPANET protocol,while not providing for reliable transmission, does provide for theseparation of the interrupt-control channel and the data channel. Multiple Channels and Sequence NumbersIf multiple channels are to be used for a connection, then it becomes interesting to determine how the sequence numbers of the channels can be coupled so that sequence number maintenance can be doneefficiently.Assigning sequence numbers to each octet of data and control, as inthe TCP, allows positive acknowledgement and ordering. However,since packets are retransmitted on timeout, and since multi-pathpacket switch networks can cause a packet to stay around for a longtime, the presence of duplicate packets and out-of-order packets must be accounted for. A sequence number acceptability test must beperformed on each packet received to determine if one of thefollowing actions should be taken:2Acknowledge the packet and pass it on to the user.Acknowledge the packet, but do not send it to the user, since ithas already been delivered.Discard the packet; the sequence number is not believable.Acceptability on Channel 0To determine the action to be taken for a packet, acceptabilityranges are defined. The following three ranges are mutuallyexclusive and collectively exhaustive of the sequence number space (see Figure 1):Ack-deliver range (ADR)Ack-only range (AOR)Discard range (DR)ACCEPTABILITY RANGESDR AOR ADR DR\\=====)[===========)[===================](========\\^ ^^ ^^! !\ !\! ! FCLE ! DRLEAOLE AORE ADREFigure 1Let S = size of sequence number space (number per octet)x = sequence number to be testedFCLE = flow control left window edge3ADRE = (FCLE+ADR) mod S = Ack-deliver right edge (Discardleft edge - 1)AOLE = (FCLE-AOR) mod S = Ack-only left edge (Discardright edge + 1)TSE = time since connection establishment (in sec)MPL = maximum packet lifetime (in sec)TB = TCP bandwidth (in octets/sec)For any sequence number, x, and packet text length, l, if(AOLE <= x <= ADRE) mod S and(AOLE <= x+l-1 <= ADRE) mod Sthen the packet should be acknowledged.If x and l satisfy(FCLE <= x <= ADRE) mod S and(FCLE <= x+l-1 <= ADRE) mod Sthen x can also be delivered to the user; however, ordereddelivery requires that x = FCLE.A packet is not in a range only if all of it lies outside a range. When a packet falls in more than one range, precedence is ADR,then AOR, then DR. When a packet falls in the AOR then an ACKshould be sent, even if a packet has to be created. The ACK will specify the current left window edge. This assures acknowledgment of all duplicates.ADRE is exactly the maximum sequence number ever "advertised"through the flow control window, plus one. This allows forcontrols to be accepted even though permission for them may never have been explicitly given. Of course, each time a control with a sequence number equal to the ADRE is sent, the ADRE must beincremented by one.AOR is set so that old duplicates (from previous incarnations ofthe connection) can be detected and discarded. ThusAOR = Min(TSE, MPL) * TB4Synchronization and Resynchronization ProblemsA special problem arises concerning detection of packets (oldduplicates) in the network that have sequence numbers assigned by old instances of a connection. To handle this reliably, carefulselection of the initial sequence number is required [ref. 2, 3]as well as periodic checks to determine if resynchronization ofsequence numbers is necessary. The overhead of such elaboratemachinery is expensive and repeating it for each additionalchannel is undesirable.Acceptability on Channel iWe have concluded that the only savings realizable in the muiltple channel case is to use channel zero’s initial sequence number and resynchronization maintenance mechanism for the additionalchannels. This can be accomplished by coupling each additionalchannel to channel zero’s sequence numbers (CZSN), so that eachitem on channel i carries a pair of sequence numbers, the current CZSN and the current channel i’s sequence number (CISN).The acceptablility test of items on channel i is a composite test of both sequence numbers. First the CZSN is checked to see if it would be acknowledged if it were an octet received on channelzero. Only if it would have been discarded would the item onchannel i be discarded. Having passed the CZSN test, the CISN is checked to see if the item is deliverable and acknowledgable with respect to the CISN sequence number space. The CISN test is acheck for everything but the existence of old duplicates from old instances of the connection and is performed like the check forchannel zero items.It has been shown that to implement additional channels for a TCP connection, two alternatives are available-- (1) provide eachchannel with its own initial sequence number and resynchronization maintenance mechanism or (2) provide one initial sequence numberand resynchronization maintenance mechanism for all channelsthrough channel zero’s mechanism. It is hard for us to comparethe two alternatives, since we have no experience implementing any resynchronization maintenance mechanism.TCP CaseTo implement a completely reliable separate interrupt channel for TCP requires a channel with a full sequence number space. It is possible to compromise here and make the interrupt number space smaller thanthat required to support consumption of numbers at the TCP’s5bandwidth. What is lost is the total independence of the flowcontrol from the data-control channel. Normally, the data-controlsequence numbers will change often enough so that wraparound in theinterrupt number space causes no problems.Things become slightly messy when many interrupts are generated inquick succession. Even if the interrupt numbers are acknowledged,they cannot be reused if they refer to the same data-control sequence number, until a full packet lifetime has elapsed. This can beremedied in all but one case by sending a NOP on the data-controlchannel so that the next set of interrupts can refer to a newdata-control sequence number. However, if the data-control channelis blocked due to flow control and a resynchronizing control (DSN in the TCP case) was just sent, a NOP cannot be created until theresynchronization is complete and a new starting sequence number ischosen. Thus to send another interrupt, the TCP must wait for apacket lifetime or an indication that it can send a NOP on thedata-control channel. (In reality, a connection would probably beclosed long before a packet lifetime elapsed if the sender is notaccepting data from the receiver. [reference 1])6REFERENCES(1) J. Postel, L. Garlick, R. Rom, "TCP Specification (AUTODIN II)," ARC Catalog #35938, July 1976.(2) R. Tomlinson, "Selecting Sequence Numbers," INWG Protocol Note#2, September 1974.(3) Y. Dalal, "More on Selecting Sequence Numbers," INWG ProtocolNote #4, October 1974.(4) V. Cerf, Y. Dalal, C. Sunshine, "Specification of InternetTransmission Control Program," INWG General Note #72, December1974 (Revised). [Also as RFC 675, NIC Catalog #31505.](5) Cerf, V., "TCP Resynchronization," SU-DSL Technical Note #79,January 1976.(6) Cerf, V. and R. Kahn, "A Protocol for Packet NetworkIntercommunication," IEEE Transactions on Communication, VolCOM-20, No. 5, May 1974.(7) C. Sunshine, "Interprocess Communication Protocols for Computer Networks," Digital Systems Laboratory Technical Note #105,December 1975.7。
rfc5288.AES Galois Counter Mode (GCM) Cipher Suites for TLS
Network Working Group J. Salowey Request for Comments: 5288 A. Choudhury Category: Standards Track D. McGrew Cisco Systems, Inc. August 2008 AES Galois Counter Mode (GCM) Cipher Suites for TLSStatus of This MemoThis document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions forimprovements. Please refer to the current edition of the "InternetOfficial Protocol Standards" (STD 1) for the standardization stateand status of this protocol. Distribution of this memo is unlimited.AbstractThis memo describes the use of the Advanced Encryption Standard (AES) in Galois/Counter Mode (GCM) as a Transport Layer Security (TLS)authenticated encryption operation. GCM provides bothconfidentiality and data origin authentication, can be efficientlyimplemented in hardware for speeds of 10 gigabits per second andabove, and is also well-suited to software implementations. Thismemo defines TLS cipher suites that use AES-GCM with RSA, DSA, andDiffie-Hellman-based key exchange mechanisms.Table of Contents1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 22. Conventions Used in This Document . . . . . . . . . . . . . . . 23. AES-GCM Cipher Suites . . . . . . . . . . . . . . . . . . . . . 24. TLS Versions . . . . . . . . . . . . . . . . . . . . . . . . . 35. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 46. Security Considerations . . . . . . . . . . . . . . . . . . . . 4 6.1. Counter Reuse . . . . . . . . . . . . . . . . . . . . . . . 46.2. Recommendations for Multiple Encryption Processors . . . . 47. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 58. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 8.1. Normative References . . . . . . . . . . . . . . . . . . . 6 8.2. Informative References . . . . . . . . . . . . . . . . . . 6 Salowey, et al. Standards Track [Page 1]1. IntroductionThis document describes the use of AES [AES] in Galois Counter Mode(GCM) [GCM] (AES-GCM) with various key exchange mechanisms as acipher suite for TLS. AES-GCM is an authenticated encryption withassociated data (AEAD) cipher (as defined in TLS 1.2 [RFC5246])providing both confidentiality and data origin authentication. Thefollowing sections define cipher suites based on RSA, DSA, andDiffie-Hellman key exchanges; ECC-based (Elliptic Curve Cryptography) cipher suites are defined in a separate document [RFC5289].AES-GCM is not only efficient and secure, but hardwareimplementations can achieve high speeds with low cost and lowlatency, because the mode can be pipelined. Applications thatrequire high data throughput can benefit from these high-speedimplementations. AES-GCM has been specified as a mode that can beused with IPsec ESP [RFC4106] and 802.1AE Media Access Control (MAC) Security [IEEE8021AE].2. Conventions Used in This DocumentThe key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].3. AES-GCM Cipher SuitesThe following cipher suites use the new authenticated encryptionmodes defined in TLS 1.2 with AES in Galois Counter Mode (GCM) [GCM]: CipherSuite TLS_RSA_WITH_AES_128_GCM_SHA256 = {0x00,0x9C}CipherSuite TLS_RSA_WITH_AES_256_GCM_SHA384 = {0x00,0x9D}CipherSuite TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = {0x00,0x9E}CipherSuite TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = {0x00,0x9F}CipherSuite TLS_DH_RSA_WITH_AES_128_GCM_SHA256 = {0x00,0xA0}CipherSuite TLS_DH_RSA_WITH_AES_256_GCM_SHA384 = {0x00,0xA1}CipherSuite TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = {0x00,0xA2}CipherSuite TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = {0x00,0xA3}CipherSuite TLS_DH_DSS_WITH_AES_128_GCM_SHA256 = {0x00,0xA4}CipherSuite TLS_DH_DSS_WITH_AES_256_GCM_SHA384 = {0x00,0xA5}CipherSuite TLS_DH_anon_WITH_AES_128_GCM_SHA256 = {0x00,0xA6}CipherSuite TLS_DH_anon_WITH_AES_256_GCM_SHA384 = {0x00,0xA7}These cipher suites use the AES-GCM authenticated encryption withassociated data (AEAD) algorithms AEAD_AES_128_GCM andAEAD_AES_256_GCM described in [RFC5116]. Note that each of theseAEAD algorithms uses a 128-bit authentication tag with GCM (inparticular, as described in Section 3.5 of [RFC4366], theSalowey, et al. Standards Track [Page 2]"truncated_hmac" extension does not have an effect on cipher suitesthat do not use HMAC). The "nonce" SHALL be 12 bytes long consisting of two parts as follows: (this is an example of a "partiallyexplicit" nonce; see Section 3.2.1 in [RFC5116]).struct {opaque salt[4];opaque nonce_explicit[8];} GCMNonce;The salt is the "implicit" part of the nonce and is not sent in thepacket. Instead, the salt is generated as part of the handshakeprocess: it is either the client_write_IV (when the client issending) or the server_write_IV (when the server is sending). Thesalt length (SecurityParameters.fixed_iv_length) is 4 octets.The nonce_explicit is the "explicit" part of the nonce. It is chosen by the sender and is carried in each TLS record in theGenericAEADCipher.nonce_explicit field. The nonce_explicit length(SecurityParameters.record_iv_length) is 8 octets.Each value of the nonce_explicit MUST be distinct for each distinctinvocation of the GCM encrypt function for any fixed key. Failure to meet this uniqueness requirement can significantly degrade security. The nonce_explicit MAY be the 64-bit sequence number.The RSA, DHE_RSA, DH_RSA, DHE_DSS, DH_DSS, and DH_anon key exchanges are performed as defined in [RFC5246].The Pseudo Random Function (PRF) algorithms SHALL be as follows:For cipher suites ending with _SHA256, the PRF is the TLS PRF[RFC5246] with SHA-256 as the hash function.For cipher suites ending with _SHA384, the PRF is the TLS PRF[RFC5246] with SHA-384 as the hash function.Implementations MUST send TLS Alert bad_record_mac for all types offailures encountered in processing the AES-GCM algorithm.4. TLS VersionsThese cipher suites make use of the authenticated encryption withadditional data defined in TLS 1.2 [RFC5246]. They MUST NOT benegotiated in older versions of TLS. Clients MUST NOT offer thesecipher suites if they do not offer TLS 1.2 or later. Servers thatselect an earlier version of TLS MUST NOT select one of these cipher suites. Because TLS has no way for the client to indicate that it Salowey, et al. Standards Track [Page 3]supports TLS 1.2 but not earlier, a non-compliant server mightpotentially negotiate TLS 1.1 or earlier and select one of the cipher suites in this document. Clients MUST check the TLS version andgenerate a fatal "illegal_parameter" alert if they detect anincorrect version.5. IANA ConsiderationsIANA has assigned the following values for the cipher suites defined in this document:CipherSuite TLS_RSA_WITH_AES_128_GCM_SHA256 = {0x00,0x9C}CipherSuite TLS_RSA_WITH_AES_256_GCM_SHA384 = {0x00,0x9D}CipherSuite TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = {0x00,0x9E}CipherSuite TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = {0x00,0x9F}CipherSuite TLS_DH_RSA_WITH_AES_128_GCM_SHA256 = {0x00,0xA0}CipherSuite TLS_DH_RSA_WITH_AES_256_GCM_SHA384 = {0x00,0xA1}CipherSuite TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = {0x00,0xA2}CipherSuite TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = {0x00,0xA3}CipherSuite TLS_DH_DSS_WITH_AES_128_GCM_SHA256 = {0x00,0xA4}CipherSuite TLS_DH_DSS_WITH_AES_256_GCM_SHA384 = {0x00,0xA5}CipherSuite TLS_DH_anon_WITH_AES_128_GCM_SHA256 = {0x00,0xA6}CipherSuite TLS_DH_anon_WITH_AES_256_GCM_SHA384 = {0x00,0xA7}6. Security ConsiderationsThe security considerations in [RFC5246] apply to this document aswell. The remainder of this section describes securityconsiderations specific to the cipher suites described in thisdocument.6.1. Counter ReuseAES-GCM security requires that the counter is never reused. The IVconstruction in Section 3 is designed to prevent counter reuse.Implementers should also understand the practical considerations ofIV handling outlined in Section 9 of [GCM].6.2. Recommendations for Multiple Encryption ProcessorsIf multiple cryptographic processors are in use by the sender, thenthe sender MUST ensure that, for a particular key, each value of the nonce_explicit used with that key is distinct. In this case, eachencryption processor SHOULD include, in the nonce_explicit, a fixedvalue that is distinct for each processor. The recommended format is nonce_explicit = FixedDistinct || VariableSalowey, et al. Standards Track [Page 4]where the FixedDistinct field is distinct for each encryptionprocessor, but is fixed for a given processor, and the Variable field is distinct for each distinct nonce used by a particular encryptionprocessor. When this method is used, the FixedDistinct fields usedby the different processors MUST have the same length.In the terms of Figure 2 in [RFC5116], the Salt is the Fixed-Commonpart of the nonce (it is fixed, and it is common across allencryption processors), the FixedDistinct field exactly correspondsto the Fixed-Distinct field, the Variable field corresponds to theCounter field, and the explicit part exactly corresponds to thenonce_explicit.For clarity, we provide an example for TLS in which there are twodistinct encryption processors, each of which uses a one-byteFixedDistinct field:Salt = eedc68dcFixedDistinct = 01 (for the first encryption processor) FixedDistinct = 02 (for the second encryption processor)The GCMnonces generated by the first encryption processor, and their corresponding nonce_explicit, are:GCMNonce nonce_explicit------------------------ ----------------------------eedc68dc0100000000000000 0100000000000000eedc68dc0100000000000001 0100000000000001eedc68dc0100000000000002 0100000000000002...The GCMnonces generated by the second encryption processor, and their corresponding nonce_explicit, areGCMNonce nonce_explicit------------------------ ----------------------------eedc68dc0200000000000000 0200000000000000eedc68dc0200000000000001 0200000000000001eedc68dc0200000000000002 0200000000000002...7. AcknowledgementsThis document borrows heavily from [RFC5289]. The authors would like to thank Alex Lam, Simon Josefsson, and Pasi Eronen for providinguseful comments during the review of this document.Salowey, et al. Standards Track [Page 5]8. References8.1. Normative References[AES] National Institute of Standards and Technology,"Advanced Encryption Standard (AES)", FIPS 197,November 2001.[GCM] Dworkin, M., "Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC",National Institute of Standards and Technology SP 800- 38D, November 2007.[RFC2119] Bradner, S., "Key words for use in RFCs to IndicateRequirement Levels", BCP 14, RFC 2119, March 1997.[RFC5116] McGrew, D., "An Interface and Algorithms forAuthenticated Encryption", RFC 5116, January 2008.[RFC5246] Dierks, T. and E. Rescorla, "The Transport LayerSecurity (TLS) Protocol Version 1.2", RFC 5246,August 2008.8.2. Informative References[IEEE8021AE] Institute of Electrical and Electronics Engineers,"Media Access Control Security", IEEE Standard 802.1AE, August 2006.[RFC4106] Viega, J. and D. McGrew, "The Use of Galois/CounterMode (GCM) in IPsec Encapsulating Security Payload(ESP)", RFC 4106, June 2005.[RFC4366] Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J., and T. Wright, "Transport Layer Security (TLS)Extensions", RFC 4366, April 2006.[RFC5289] Rescorla, E., "TLS Elliptic Curve Cipher Suites withSHA-256/384 and AES Galois Counter Mode", RFC 5289,August 2008.Salowey, et al. Standards Track [Page 6]Authors’ AddressesJoseph SaloweyCisco Systems, Inc.2901 3rd. AveSeattle, WA 98121USAEMail: jsalowey@Abhijit ChoudhuryCisco Systems, Inc.3625 Cisco WaySan Jose, CA 95134USAEMail: abhijitc@David McGrewCisco Systems, Inc.170 W Tasman DriveSan Jose, CA 95134USAEMail: mcgrew@Salowey, et al. Standards Track [Page 7]Full Copyright StatementCopyright (C) The IETF Trust (2008).This document is subject to the rights, licenses and restrictionscontained in BCP 78, and except as set forth therein, the authorsretain all their rights.This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIEDWARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual PropertyThe IETF takes no position regarding the validity or scope of anyIntellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described inthis document or the extent to which any license under such rightsmight or might not be available; nor does it represent that it hasmade any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can befound in BCP 78 and BCP 79.Copies of IPR disclosures made to the IETF Secretariat and anyassurances of licenses to be made available, or the result of anattempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of thisspecification can be obtained from the IETF on-line IPR repository at /ipr.The IETF invites any interested party to bring to its attention anycopyrights, patents or patent applications, or other proprietaryrights that may cover technology that may be required to implementthis standard. Please address the information to the IETF atietf-ipr@.Salowey, et al. Standards Track [Page 8]。
rfc1212
Network Working Group M. Rose Request for Comments: 1212 Performance Systems International K. McCloghrie Hughes LAN Systems Editors March 1991 Concise MIB DefinitionsStatus of this MemoThis memo defines a format for producing MIB modules. This RFCspecifies an IAB standards track document for the Internet community, and requests discussion and suggestions for improvements. Pleaserefer to the current edition of the "IAB Official Protocol Standards" for the standardization state and status of this protocol.Distribution of this memo is unlimited.Table of Contents1. Abstract (2)2. Historical Perspective (2)3. Columnar Objects (3)3.1 Row Deletion (4)3.2 Row Addition (4)4. Defining Objects (5)4.1 Mapping of the OBJECT-TYPE macro (7)4.1.1 Mapping of the SYNTAX clause (7)4.1.2 Mapping of the ACCESS clause (8)4.1.3 Mapping of the STATUS clause (8)4.1.4 Mapping of the DESCRIPTION clause (8)4.1.5 Mapping of the REFERENCE clause (8)4.1.6 Mapping of the INDEX clause (8)4.1.7 Mapping of the DEFVAL clause (10)4.1.8 Mapping of the OBJECT-TYPE value (11)4.2 Usage Example (11)5. Appendix: DE-osifying MIBs (13)5.1 Managed Object Mapping (14)5.1.1 Mapping to the SYNTAX clause (15)5.1.2 Mapping to the ACCESS clause (15)5.1.3 Mapping to the STATUS clause (15)5.1.4 Mapping to the DESCRIPTION clause (15)5.1.5 Mapping to the REFERENCE clause (16)5.1.6 Mapping to the INDEX clause (16)5.1.7 Mapping to the DEFVAL clause (16)5.2 Action Mapping (16)5.2.1 Mapping to the SYNTAX clause (16)5.2.2 Mapping to the ACCESS clause (16)SNMP Working Group [Page 1]5.2.3 Mapping to the STATUS clause (16)5.2.4 Mapping to the DESCRIPTION clause (16)5.2.5 Mapping to the REFERENCE clause (16)6. Acknowledgements (17)7. References (18)8. Security Considerations (19)9. Authors’ Addresses (19)1. AbstractThis memo describes a straight-forward approach toward producingconcise, yet descriptive, MIB modules. It is intended that allfuture MIB modules be written in this format.2. Historical PerspectiveAs reported in RFC 1052, IAB Recommendations for the Development ofInternet Network Management Standards [1], a two-prong strategy fornetwork management of TCP/IP-based internets was undertaken. In the short-term, the Simple Network Management Protocol (SNMP), defined in RFC 1067, was to be used to manage nodes in the Internet community.In the long-term, the use of the OSI network management framework was to be examined. Two documents were produced to define the management information: RFC 1065, which defined the Structure of ManagementInformation (SMI), and RFC 1066, which defined the ManagementInformation Base (MIB). Both of these documents were designed so as to be compatible with both the SNMP and the OSI network managementframework.This strategy was quite successful in the short-term: Internet-based network management technology was fielded, by both the research andcommercial communities, within a few months. As a result of this,portions of the Internet community became network manageable in atimely fashion.As reported in RFC 1109, Report of the Second Ad Hoc NetworkManagement Review Group [2], the requirements of the SNMP and the OSI network management frameworks were more different than anticipated.As such, the requirement for compatibility between the SMI/MIB andboth frameworks was suspended. This action permitted the operational network management framework, based on the SNMP, to respond to newoperational needs in the Internet community by producing MIB-II.In May of 1990, the core documents were elevated to "StandardProtocols" with "Recommended" status. As such, the Internet-standard network management framework consists of: Structure andIdentification of Management Information for TCP/IP-based internets, RFC 1155 [3], which describes how managed objects contained in the SNMP Working Group [Page 2]MIB are defined; Management Information Base for Network Managementof TCP/IP-based internets, which describes the managed objectscontained in the MIB, RFC 1156 [4]; and, the Simple NetworkManagement Protocol, RFC 1157 [5], which defines the protocol used to manage these objects. Consistent with the IAB directive to producesimple, workable systems in the short-term, the list of managedobjects defined in the Internet-standard MIB was derived by takingonly those elements which are considered essential. However, the SMI defined three extensibility mechanisms: one, the addition of newstandard objects through the definitions of new versions of the MIB; two, the addition of widely-available but non-standard objectsthrough the experimental subtree; and three, the addition of private objects through the enterprises subtree. Such additional objects can not only be used for vendor-specific elements, but also forexperimentation as required to further the knowledge of which otherobjects are essential.As more objects are defined using the second method, experience hasshown that the resulting MIB descriptions contain redundantinformation. In order to provide for MIB descriptions which are more concise, and yet as informative, an enhancement is suggested. Thisenhancement allows the author of a MIB to remove the redundantinformation, while retaining the important descriptive text.Before presenting the approach, a brief presentation of columnarobject handling by the SNMP is necessary. This explains and further motivates the value of the enhancement.3. Columnar ObjectsThe SNMP supports operations on MIB objects whose syntax isObjectSyntax as defined in the SMI. Informally stated, SNMPoperations apply exclusively to scalar objects. However, it isconvenient for developers of management applications to imposeimaginary, tabular structures on the ordered collection of objectsthat constitute the MIB. Each such conceptual table contains zero or more rows, and each row may contain one or more scalar objects,termed columnar objects. Historically, this conceptualization hasbeen formalized by using the OBJECT-TYPE macro to define both anobject which corresponds to a table and an object which correspondsto a row in that table. (The ACCESS clause for such objects is"not-accessible", of course.) However, it must be emphasized that, at the protocol level, relationships among columnar objects in the same row is a matter of convention, not of protocol.Note that there are good reasons why the tabular structure is not amatter of protocol. Consider the operation of the SNMP Get-Next-PDU acting on the last columnar object of an instance of a conceptual SNMP Working Group [Page 3]row; it returns the next column of the first conceptual row or thefirst object instance occurring after the table. In contrast, if the rows were a matter of protocol, then it would instead return anerror. By not returning an error, a single PDU exchange informs the manager that not only has the end of the conceptual row/table beenreached, but also provides information on the next object instance,thereby increasing the information density of the PDU exchange.3.1. Row DeletionNonetheless, it is highly useful to provide a means whereby aconceptual row may be removed from a table. In MIB-II, this wasachieved by defining, for each conceptual row, an integer-valuedcolumnar object. If a management station sets the value of thisobject to some value, usually termed "invalid", then the effect isone of invalidating the corresponding row in the table. However, it is an implementation-specific matter as to whether an agent removesan invalidated entry from the table. Accordingly, managementstations must be prepared to receive tabular information from agents that corresponds to entries not currently in use. Properinterpretation of such entries requires examination of the columnarobject indicating the in-use status.3.2. Row AdditionIt is also highly useful to have a clear understanding of how aconceptual row may be added to a table. In the SNMP, at the protocol level, a management station issues an SNMP set operation containingan arbitrary set of variable bindings. In the case that an agentdetects that one or more of those variable bindings refers to anobject instance not currently available in that agent, it may,according to the rules of the SNMP, behave according to any of thefollowing paradigms:(1) It may reject the SNMP set operation as referring tonon-existent object instances by returning a responsewith the error-status field set to "noSuchName" and theerror-index field set to refer to the first vacuousreference.(2) It may accept the SNMP set operation as requesting thecreation of new object instances corresponding to eachof the object instances named in the variable bindings.The value of each (potentially) newly created objectinstance is specified by the "value" component of therelevant variable binding. In this case, if the request specifies a value for a newly (or previously) createdobject that it deems inappropriate by reason of value or SNMP Working Group [Page 4]syntax, then it rejects the SNMP set operation byresponding with the error-status field set to badValueand the error-index field set to refer to the firstoffending variable binding.(3) It may accept the SNMP set operation and create newobject instances as described in (2) above and, inaddition, at its discretion, create supplemental objectinstances to complete a row in a conceptual table ofwhich the new object instances specified in the requestmay be a part.It should be emphasized that all three of the above behaviors arefully conformant to the SNMP specification and are fully acceptable, subject to any restrictions which may be imposed by access controland/or the definitions of the MIB objects themselves.4. Defining ObjectsThe Internet-standard SMI employs a two-level approach towards object definition. A MIB definition consists of two parts: a textual part, in which objects are placed into groups, and a MIB module, in whichobjects are described solely in terms of the ASN.1 macro OBJECT-TYPE, which is defined by the SMI.An example of the former definition might be:OBJECT:-------sysLocation { system 6 }Syntax:DisplayString (SIZE (0..255))Definition:The physical location of this node (e.g., "telephonecloset, 3rd floor").Access:read-only.Status:mandatory.An example of the latter definition might be:sysLocation OBJECT-TYPESYNTAX DisplayString (SIZE (0..255))SNMP Working Group [Page 5]STATUS mandatory::= { system 6 }In the interests of brevity and to reduce the chance ofediting errors, it would seem useful to combine the twodefinitions. This can be accomplished by defining anextension to the OBJECT-TYPE macro:IMPORTSObjectNameFROM RFC1155-SMIDisplayStringFROM RFC1158-MIB;OBJECT-TYPE MACRO ::=BEGINTYPE NOTATION ::=-- must conform to-- RFC1155’s ObjectSyntax"SYNTAX" type(ObjectSyntax)"ACCESS" Access"STATUS" StatusDescrPartReferPartIndexPartDefValPartVALUE NOTATION ::= value (VALUE ObjectName)Access ::= "read-only"| "read-write"| "write-only"| "not-accessible"Status ::= "mandatory"| "optional"| "obsolete"| "deprecated"DescrPart ::="DESCRIPTION" value (description DisplayString) | emptyReferPart ::="REFERENCE" value (reference DisplayString)| emptyIndexPart ::="INDEX" "{" IndexTypes "}"SNMP Working Group [Page 6]IndexTypes ::=IndexType | IndexTypes "," IndexTypeIndexType ::=-- if indexobject, use the SYNTAX-- value of the correspondent-- OBJECT-TYPE invocationvalue (indexobject ObjectName)-- otherwise use named SMI type-- must conform to IndexSyntax below| type (indextype)DefValPart ::="DEFVAL" "{" value (defvalue ObjectSyntax) "}" | emptyENDIndexSyntax ::=CHOICE {numberINTEGER (0..MAX),stringOCTET STRING,objectOBJECT IDENTIFIER,addressNetworkAddress,ipAddressIpAddress}4.1. Mapping of the OBJECT-TYPE macroIt should be noted that the expansion of the OBJECT-TYPE macro issomething which conceptually happens during implementation and notduring run-time.4.1.1. Mapping of the SYNTAX clauseThe SYNTAX clause, which must be present, defines the abstract datastructure corresponding to that object type. The ASN.1 language [6] is used for this purpose. However, the SMI purposely restricts theASN.1 constructs which may be used. These restrictions are madeexpressly for simplicity.SNMP Working Group [Page 7]4.1.2. Mapping of the ACCESS clauseThe ACCESS clause, which must be present, defines the minimum levelof support required for that object type. As a local matter,implementations may support other access types (e.g., animplementation may elect to permitting writing a variable marked asread-only). Further, protocol-specific "views" (e.g., thoseindirectly implied by an SNMP community) may make furtherrestrictions on access to a variable.4.1.3. Mapping of the STATUS clauseThe STATUS clause, which must be present, defines the implementation support required for that object type.4.1.4. Mapping of the DESCRIPTION clauseThe DESCRIPTION clause, which need not be present, contains a textual definition of that object type which provides all semanticdefinitions necessary for implementation, and should embody anyinformation which would otherwise be communicated in any ASN.1commentary annotations associated with the object. Note that, inorder to conform to the ASN.1 syntax, the entire value of this clause must be enclosed in double quotation marks, although the value may be multi-line.Further, note that if the MIB module does not contain a textualdescription of the object type elsewhere then the DESCRIPTION clause must be present.4.1.5. Mapping of the REFERENCE clauseThe REFERENCE clause, which need not be present, contains a textualcross-reference to an object defined in some other MIB module. This is useful when de-osifying a MIB produced by some other organization.4.1.6. Mapping of the INDEX clauseThe INDEX clause, which may be present only if that object typecorresponds to a conceptual row, defines instance identificationinformation for that object type. (Historically, each MIB definition contained a section entitled "Identification of OBJECT instances for use with the SNMP". By using the INDEX clause, this section need no longer occur as this clause concisely captures the precise semantics needed for instance identification.)If the INDEX clause is not present, and the object type correspondsto a non-columnar object, then instances of the object are identified SNMP Working Group [Page 8]by appending a sub-identifier of zero to the name of that object.Further, note that if the MIB module does not contain a textualdescription of how instance identification information is derived for columnar objects, then the INDEX clause must be present.To define the instance identification information, determine whichobject value(s) will unambiguously distinguish a conceptual row. The syntax of those objects indicate how to form the instance-identifier: (1) integer-valued: a single sub-identifier taking theinteger value (this works only for non-negativeintegers);(2) string-valued, fixed-length strings: ‘n’ sub-identifiers, where ‘n’ is the length of the string (each octet of the string is encoded in a separate sub-identifier);(3) string-valued, variable-length strings: ‘n+1’ sub-identifiers, where ‘n’ is the length of the string (thefirst sub-identifier is ‘n’ itself, following this, each octet of the string is encoded in a separate sub-identifier);(4) object identifier-valued: ‘n+1’ sub-identifiers, where‘n’ is the number of sub-identifiers in the value (thefirst sub-identifier is ‘n’ itself, following this, each sub-identifier in the value is copied);(5) NetworkAddress-valued: ‘n+1’ sub-identifiers, where ‘n’depends on the kind of address being encoded (the firstsub-identifier indicates the kind of address, value 1indicates an IpAddress); or,(6) IpAddress-valued: 4 sub-identifiers, in the familiara.b.c.d notation.Note that if an "indextype" value is present (e.g., INTEGER ratherthan ifIndex), then a DESCRIPTION clause must be present; the textcontained therein indicates the semantics of the "indextype" value. SNMP Working Group [Page 9]By way of example, in the context of MIB-II [7], the following INDEX clauses might be present:objects under INDEX clause----------------- ------------ifEntry { ifIndex }atEntry { atNetIfIndex,atNetAddress }ipAddrEntry { ipAdEntAddr }ipRouteEntry { ipRouteDest }ipNetToMediaEntry { ipNetToMediaIfIndex,ipNetToMediaNetAddress }tcpConnEntry { tcpConnLocalAddress,tcpConnLocalPort,tcpConnRemoteAddress,tcpConnRemotePort }udpEntry { udpLocalAddress,udpLocalPort }egpNeighEntry { egpNeighAddr }4.1.7. Mapping of the DEFVAL clauseThe DEFVAL clause, which need not be present, defines an acceptabledefault value which may be used when an object instance is created at the discretion of the agent acting in conformance with the thirdparadigm described in Section 4.2 above.During conceptual row creation, if an instance of a columnar objectis not present as one of the operands in the correspondent SNMP setoperation, then the value of the DEFVAL clause, if present, indicates an acceptable default value that the agent might use.The value of the DEFVAL clause must, of course, correspond to theSYNTAX clause for the object. Note that if an operand to the SNMPset operation is an instance of a read-only object, then the errornoSuchName will be returned. As such, the DEFVAL clause can be used to provide an acceptable default value that the agent might use.It is possible that no acceptable default value may exist for any of the columnar objects in a conceptual row for which the creation ofnew object instances is allowed. In this case, the objects specified in the INDEX clause must have a corresponding ACCESS clause value of read-write.SNMP Working Group [Page 10]By way of example, consider the following possible DEFVAL clauses:ObjectSyntax DEFVAL clause----------------- ------------INTEGER 1 -- same for Counter, Gauge, TimeTicksOCTET STRING ’ffffffffffff’hDisplayString "any NVT ASCII string"OBJECT IDENTIFIER sysDescrOBJECT IDENTIFIER { system 2 }NULL NULLNetworkAddress { internet ’c0210415’h }IpAddress ’c0210415’h -- 192.33.4.214.1.8. Mapping of the OBJECT-TYPE valueThe value of an invocation of the OBJECT-TYPE macro is the name ofthe object, which is an object identifier.4.2. Usage ExampleConsider how the ipNetToMediaTable from MIB-II might be fullydescribed:-- the IP Address Translation tables-- The Address Translation tables contain IpAddress to-- "physical" address equivalences. Some interfaces do not-- use translation tables for determining address equivalences -- (e.g., DDN-X.25 has an algorithmic method); if all-- interfaces are of this type, then the Address Translation-- table is empty, i.e., has zero entries.ipNetToMediaTable OBJECT-TYPESYNTAX SEQUENCE OF IpNetToMediaEntryACCESS not-accessibleSTATUS mandatoryDESCRIPTION"The IP Address Translation table used for mapping from IP addresses to physical addresses."::= { ip 22 }ipNetToMediaEntry OBJECT-TYPESYNTAX IpNetToMediaEntryACCESS not-accessibleSTATUS mandatoryDESCRIPTION"Each entry contains one IpAddress to ’physical’SNMP Working Group [Page 11]address equivalence."INDEX { ipNetToMediaIfIndex,ipNetToMediaNetAddress }::= { ipNetToMediaTable 1 }IpNetToMediaEntry ::=SEQUENCE {ipNetToMediaIfIndexINTEGER,ipNetToMediaPhysAddressOCTET STRING,ipNetToMediaNetAddressIpAddress,ipNetoToMediaTypeINTEGER}ipNetToMediaIfIndex OBJECT-TYPESYNTAX INTEGERACCESS read-writeSTATUS mandatoryDESCRIPTION"The interface on which this entry’s equivalenceis effective. The interface identified by aparticular value of this index is the sameinterface as identified by the same value ofifIndex."::= { ipNetToMediaEntry 1 }ipNetToMediaPhysAddress OBJECT-TYPESYNTAX OCTET STRINGACCESS read-writeSTATUS mandatoryDESCRIPTION"The media-dependent ’physical’ address."::= { ipNetToMediaEntry 2 }ipNetToMediaNetAddress OBJECT-TYPESYNTAX IpAddressACCESS read-writeSTATUS mandatoryDESCRIPTION"The IpAddress corresponding to the media-dependent ’physical’ address."::= { ipNetToMediaEntry 3 }ipNetToMediaType OBJECT-TYPESYNTAX INTEGER {SNMP Working Group [Page 12]other(1), -- none of the followinginvalid(2), -- an invalidated mappingdynamic(3),static(4)}ACCESS read-writeSTATUS mandatoryDESCRIPTION"The type of mapping.Setting this object to the value invalid(2) hasthe effect of invalidating the corresponding entry in the ipNetToMediaTable. That is, it effectively disassociates the interface identified with saidentry from the mapping identified with said entry. It is an implementation-specific matter as towhether the agent removes an invalidated entryfrom the table. Accordingly, management stations must be prepared to receive tabular informationfrom agents that corresponds to entries notcurrently in use. Proper interpretation of suchentries requires examination of the relevantipNetToMediaType object."::= { ipNetToMediaEntry 4 }5. Appendix: DE-osifying MIBsThere has been an increasing amount of work recently on taking MIBsdefined by other organizations (e.g., the IEEE) and de-osifying them for use with the Internet-standard network management framework. The steps to achieve this are straight-forward, though tedious. Ofcourse, it is helpful to already be experienced in writing MIBmodules for use with the Internet-standard network managementframework.The first step is to construct a skeletal MIB module, e.g.,RFC1213-MIB DEFINITIONS ::= BEGINIMPORTSexperimental, OBJECT-TYPE, CounterFROM RFC1155-SMI;-- contact IANA for actual numberroot OBJECT IDENTIFIER ::= { experimental xx }ENDSNMP Working Group [Page 13]The next step is to categorize the objects into groups. Forexperimental MIBs, optional objects are permitted. However, when aMIB module is placed in the Internet-standard space, these optionalobjects are either removed, or placed in a optional group, which, if implemented, all objects in the group must be implemented. For thefirst pass, it is wisest to simply ignore any optional objects in the original MIB: experience shows it is better to define a core MIBmodule first, containing only essential objects; later, if experience demands, other objects can be added.It must be emphasized that groups are "units of conformance" within a MIB: everything in a group is "mandatory" and implementations doeither whole groups or none.5.1. Managed Object MappingNext for each managed object class, determine whether there can exist multiple instances of that managed object class. If not, then foreach of its attributes, use the OBJECT-TYPE macro to make anequivalent definition.Otherwise, if multiple instances of the managed object class canexist, then define a conceptual table having conceptual rows eachcontaining a columnar object for each of the managed object class’sattributes. If the managed object class is contained within thecontainment tree of another managed object class, then the assignment of an object type is normally required for each of the "distinguished attributes" of the containing managed object class. If they do notalready exist within the MIB module, then they can be added via thedefinition of additional columnar objects in the conceptual rowcorresponding to the contained managed object class.In defining a conceptual row, it is useful to consider theoptimization of network management operations which will act upon its columnar objects. In particular, it is wisest to avoid defining more columnar objects within a conceptual row, than can fit in a singlePDU. As a rule of thumb, a conceptual row should contain no morethan approximately 20 objects. Similarly, or as a way to abide bythe "20 object guideline", columnar objects should be grouped intotables according to the expected grouping of network managementoperations upon them. As such, the content of conceptual rows should reflect typical access scenarios, e.g., they should be organizedalong functional lines such as one row for statistics and another row for parameters, or along usage lines such as commonly-needed objects versus rarely-needed objects.On the other hand, the definition of conceptual rows where the number of columnar objects used as indexes outnumbers the number used to SNMP Working Group [Page 14]hold information, should also be avoided. In particular, thesplitting of a managed object class’s attributes into many conceptual tables should not be used as a way to obtain the same degree offlexibility/complexity as is often found in MIB’s with a myriad ofoptionals.5.1.1. Mapping to the SYNTAX clauseWhen mapping to the SYNTAX clause of the OBJECT-type macro:(1) An object with BOOLEAN syntax becomes an INTEGER takingeither of values true(1) or false(2).(2) An object with ENUMERATED syntax becomes an INTEGER,taking any of the values given.(3) An object with BIT STRING syntax containing no more than 32 bits becomes an INTEGER defined as a sum; otherwise if more than 32 bits are present, the object becomes anOCTET STRING, with the bits numbered from left-to-right, in which the least significant bits of the last octet may be "reserved for future use".(4) An object with a character string syntax becomes eitheran OCTET STRING or a DisplayString, depending on therepertoire of the character string.(5) An non-tabular object with a complex syntax, such as REAL or EXTERNAL, must be decomposed, usually into an OCTETSTRING (if sensible). As a rule, any object with acomplicated syntax should be avoided.(6) Tabular objects must be decomposed into rows of columnar objects.5.1.2. Mapping to the ACCESS clauseThis is straight-forward.5.1.3. Mapping to the STATUS clauseThis is usually straight-forward; however, some osified-MIBs use the term "recommended". In this case, a choice must be made between"mandatory" and "optional".5.1.4. Mapping to the DESCRIPTION clauseThis is straight-forward: simply copy the text, making sure that any SNMP Working Group [Page 15]。
rfc1215中文版
rfc1215中文版组织:中国互动出版网(/)RFC文档中文翻译计划(/compters/emook/aboutemook.htm)E-mail:ouyang@译者:郭大刚(Guodagang gdg0188_cn@)译文发布时间:2001-6-15版权:本中文翻译文档版权归中国互动出版网所有。
可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。
Network Working Group M. Rose, EditorRequest for Comments: 1215 Performance Systems InternationalMarch 1991为使用SNMP定义Trap的惯例(RFC1215 A Convention for Defining Traps for use with the SNMP)本备忘录的状态:本备忘录建议了一种利用SNMP定义陷阱的正面的方法。
读者应该注意到在internet标准网络管理框架中使用的陷阱是不可靠的。
因此,本备忘录仅为信息目的提供建议。
建议从事网络管理的经营者使用本文档。
没有利用陷阱的经营者可以完全忽略本文档。
本备忘录提供了一种Internet社区的信息,它并没有规定任何标准。
本备忘录的发布不受任何限制。
目录1.历史前景。
12.定义陷阱。
22.1制定宏观陷阱种类。
32.1.1制定企业条款。
32.1.2制定变量条款。
42.1.3制定描述条款。
42.1.4制定参考条款。
42.1.5制定陷阱类型评估。
42.2使用举例。
2.2.1专业企业陷阱。
52.2.2为使用SNMP的普通陷阱。
53.致谢。
74.参考。
95.安全考虑。
96.作者地址。
91.历史前景就如RFC1025中所报告的,为Internet网络管理标准[1]发展做的IAB 推荐,一个基于TCP/IP的网管的双重策略被采纳。
在短期内,在RFC中定义的简单网管协议,被用来管理Internet 社区的节点。
rfc2578 SMIv2
6.5 Usage Example .............................................20
7 Mapping of the OBJECT-TYPE macro ............................20
2.6 Administrative Identifiers ................................11
3 Information Modules .........................................11
3.1 Macro Invocation ..........................................12
2.2 Object Names and Syntaxes ..................................5
2.3 The OBJECT-TYPE macro ......................................8
2.5 The NOTIFICATION-TYPE macro ...............................10
International Network Services
April 1999
Structure of Management Information Version 2 (SMIv2)
5.4 Mapping of the DESCRIPTION clause .........................18
rfcomm_tutorial
RS-232serial ports have nine circuits, which can be used for transferring data and sig-nalling. RFCOMM can emulate the serial cable line settings and status of an RS-232 ser-ial port. RFCOMM provides multiple concurrent connections by relying on L2CAP to handle multiplexing over single connections, and to provide connections to multiple de-vices.RFCOMM relies on the Bluetooth baseband to provide reliable in-sequence deliv-ery of byte streams. It does not have any ability to correct errors. RFCOMM’s flow con-trol also uses the baseband’s capabilities.RFCOMM data rates will be limited in devices where there is a physical serial port involved (Type 2 devices). Implementations may optionally pace data on virtual serial ports (in Type 1 devices). In the absence of pacing, RFCOMM will deliver the highest possible data rate, although what the highest data rate is can be a complicated issue in the presence of multiple connections (see Chapter 18).RFCOMM is a simple, reliable transport protocol with framing, multiplexing, and the following additional provisions:•Modem status—RTS/ CTS, DSR/ DTR, DCD, ring.•Remote line status—Break, overrun, parity.•Remote port settings—Baud rate, parity, no of data bits etc.•Parameter negotiation (frame size).172Bluetooth: Connect Without CablesBy Jennifer Bray and Charles Thurman© 2001 by Prentice Hall PTRPrentice-Hall, Inc.Upper Saddle River, NJ 07458Types of RFCOMM Devices173 10.1SERIAL PORTS AND UARTSTypically, serial port transmit and receive data lines are connected to a UART (UniversalAsynchronous Receiver Transmitter). The job of the UART is to convert between theserial data sent down cables and the parallel data processing which devices use. UARTsuse buffers to convert between serial and parallel data. This allows them to reduce theload on the processor. Instead of the processor having to be interrupted for every singlebit that is sent down the cables, the UART transfers the bits between the cables andbuffers, then the processor only has to get involved when there is a whole buffer to dealwith.The signals from a UART are connected, so they appear in the system address map.Some processors reserve a special range of addresses for I/O; other systems can map theminto any part of normal memory. Because UARTs look like areas of memory to a micro-processor, it is possible to emulate a serial port in software by taking an area of memoryand setting values as they would appear if they were set by a UART.The Bluetooth RFCOMM specification talks about emulating the nine circuits of an RS-232 serial port, and specifies how a serial data stream can be emulated. But becausethe serial stream from an RS-232 port is viewed by the microprocessor after it has beenthrough a UART, software dealing with serial ports is actually handling parallel data.Similarly, RFCOMM software deals with parallel data delivered by the lower layers ofthe Bluetooth stack.A UART connects to some piece of hardware: wires or buffers. RFCOMM connectsup to the lower layers of the software stack via L2CAP.10.2TYPES OF RFCOMM DEVICESRFCOMM supports two types of devices:•Type 1—Internal emulated serial port(or equivalent).•Type 2—Intermediate device with physical serial port.A protocol stack for a Type 1 RFCOMM device is shown at the left of Figure 10–1.The port emulation entity maps a system specific communication interface (API) to the RFCOMM services. This can be used to connect to legacy applications as shown, or it canbe used to connect to applications specifically written for Bluetooth. A Type 1 devicewould usually be the end of a communication path, for example, a PC or printer.A protocol stack for a Type 2 RFCOMM device is shown at the right ofFigure10–1. The port proxy entity relays data from RFCOMM to an external RS-232 interface linked to another device. Type 2 devices are intermediate devices which sit in the middle of a communication path. A modem is an example of a Type 2device.10.3RFCOMM FRAME TYPESRFCOMM is based on GSM TS 07.10,which is an asymmetric protocol used by GSM cellular phones to multiplex several streams of data onto one physical serial cable. RFCOMM is symmetric, and sends TS 07.10 frames over L2CAP using a subset of TS 07.10 feature frames and commands. Some of TS 07.10’s features are adapted for Blue-tooth.RFCOMM communicates with frames. The RFCOMM frames become the data payload in L2CAP packets. There are five different frame types:•SABM—Start Asynchronous Balanced Mode (startup command).•UA—Unnumbered Acknowledgement (response when connected).•DISC—Disconnect (disconnect command).•DM—Disconnected Mode (response to a command when disconnected).•UIH—Unnumbered Information with Header check.SABM, UA, DM, and DISC are “low- level” control frames. RFCOMM uses chan-nels, each of which has a Data Link Connection Identifier (DLCI). UIH frames on DLCI = 0 are used to send control messages. UIH frames on DLCIs ≠0 are used to send data.174RFCOMMLegacy ApplicationPort Emulation EntityRFCOMMHost Controller InterfaceLink Manager Link ControllerRadioL2CAPDCE (e.g. A Modem)Port Proxy EntityRFCOMMHost Controller InterfaceLink Manager Link ControllerRadioL2CAPRS-232CableFigure 10–1Type 1 and Type 2 RFCOMM devices.Connecting and Disconnecting175 GSM TS 07.10 also has optional UI (Unnumbered Information) frames; RFCOMM doesn’t use these.10.4CONNECTING AND DISCONNECTINGBecause RFCOMM frames are carried in the payload of L2CAP packets, an L2CAP con-nection must be set up before an RFCOMM connection can be set up.RFCOMM has a reserved Protocol and Service Multiplexor (PSM) value for L2CAP. This is defined in the Bluetooth core specification as 0x0003. Any L2CAP frames received with this value in the PSM field will be sent to RFCOMM for processing.The first frame to be sent on an RFCOMM channel is a SABM frame; this is a Start Asynchronous Balanced Mode command. If the responding device’s RFCOMM is willing to connect, it goes into Asynchronous Balanced Mode (ABM), and sends back an UA frame. If the responding device’s RFCOMM doesn’t want to connect, it refuses the con-nection by sending a DM frame. Figure 10–2 shows an RFCOMM channel setup being refused in this way.RFCOMM has a 60s timer which is started when a command is sent. If an acknowl-edgement isn’t received when the timer elapses, the connection will be shut down. This is different from GSM 07.10, which resends the command when the timer elapses. In the case of RFCOMM, the Bluetooth baseband provides a reliable link, so if the command wasn’t acknowledged first time, it is not likely to be acknowledged a second time. For the SABM command, the timeout can be extended because security procedures might mean that this command takes longer to process than others. If RFCOMM ever times out and disconnects, it must send a DISC (disconnect) command frame on the same DLCI as the original SABM frame just in case the other side has come back into range and thinks the connection is still active. Figure 10–3 shows a channel being closed down because the ini-tiator timed out.If the connection succeeds, the responder replies to the SABM frame with a UA (un-numbered acknowledgement) frame. This is followed by a Parameter Negotiation (PN) command from the initiator and PN response from the responder, as shown in Figure 10–4.Set up L2CAP channel for RFCOMMwith PSM = 0x0003For first RFCOMM connection,try to start multiplexorResponder refusesL2CAP connection is not needed(because it uses PSM = 0x0003,it can’t be used for other services)Figure 10–2Refusing an RFCOMM connection.176RFCOMMSet up L2CAP channel for RFCOMM with PSM = 0x0003For first RFCOMM connection,try to start multiplexor Timeout and send DISC frame L2CAP connection is not needed (because it uses PSM = 0x0003,it can ’t be used for other services)Figure 10–3RFCOMM channel timeout.Set up L2CAP channel for RFCOMM with PSM = 0x0003For first RFCOMM connection,start multiplexorOptionally negotiate parameters for data link connectionOpen data link connection;optionally negotiate securityExchange modem status commands and responsesExchange data on the connectionFigure 10–4Message sequence chart for establishing an RFCOMM connection.Once a connection with DLCI = 0 has been set up, this is available for RFCOMM signalling. To transfer data, other RFCOMM channels must be set up. Figure 10–4 shows a second RFCOMM channel being set up to transfer data. In this case, the channel re-quires authentication, so there is a pause for LMP authentication and encryption between the SABM command frame and the UA response frame. Once the UA frame has been re-ceived, modem status commands are exchanged to communicate the state of the controlsignals. Data can then be transferred immediately as shown, or there could be an ex-change of PN command and response to configure the new connection’s parameters.The user data should include MSCs (Modem Status Commands), which communi-cate the state of serial port control signals.To shut down an RFCOMM connection, a DISC command is sent. When the last data link has been shut down, a DISC should be sent on DLCI=0 to shut down the multi-plexor. Then, whichever device shut down the multiplexor is responsible for disconnect-ing the L2CAP channel.10.5STRUCTURE OF RFCOMM FRAMESRFCOMM borrows its frame structure from the GSM 07.10 standard. Figure 10–5 shows the frame structure for the GSM 07.10 basic option. (There is also an advanced option,which lacks the length field; RFCOMM always uses the basic option.)Figure 10–6 shows the structure of an RFCOMM frame. This is identical to the GSM07.10 basic option frame except that RFCOMM misses out the start and end flags,and RFCOMM has to limit the number of bytes in a packet because of the limit on the size of L2CAP packets.RFCOMM doesn’t need the start and end flags because each RFCOMM frame is carried in a single L2CAP packet. There is no need to pick RFCOMM frames out of a data stream, so there is no need for flag bits to mark where the frames start and end.10.5.1Address FieldAn RFCOMM frame begins with an address field. This identifies which of the many mul-tiplexed channels the frame belongs to. The address field is split up as shown in Fig-ure 10–7.Structure of RFCOMM Frames 177FCSData (Integral Number of Bytes)Length or DataLengthControlAddress162432282012840Flag =10011111Flag =10011111Figure 10–5Structure of a GSM07.10 basic option frame.The EA (Extend Address) field can be used to extend an address. If EA=0, then more address octets follow; if EA=1, then this is the last octet of the address. Since the Bluetooth specification says that server applications are assigned a server channel number in the range 1 to 30 and an RFCOMM address frame has 5 bits for the server channel,there will never be any need to use extended addressing, so the EA bit will always be set to 1 in an RFCOMM address field.The C/R (Command/Response) bit says whether the frame is a command or a re-sponse. Its value depends not only on whether the frame carries a command or a response,but also on which end of the channel is sending the frame. The device which set up the connection (by sending a SABM command on DLCI 0) is called the initiator. The device which responded (by sending the UA response on DLCI 0) is called the responder. As long as the traffic follows this original pattern, the C/R bit is 1, so commands from the ini-tiator and responses from the responder have C/R = 1. For exchanges in the opposite di-rection, the C/R bit is 0, so commands from the responder and responses from the initiator have C/R = 0. When sending data, the initiator sets C/R = 1 and the responder sets C/R = 0. Figure 10–8 illustrates how the C/R bit is set.After the C/R bit comes the Data Link Connection Identifier (DLCI). In GSM TS0.10, this is one undivided field, but in RFCOMM, it is split up into a direction bit and a server channel number. The initiator always sets the direction bit to 1 (D=1); the respon-der always sets the direction bit to 0 (D=0). As with the C/R bits, who is the initiator and responder is defined by which device sent the SABM frame to start up the connection.The server channel number has 5 bits; this would give it a range from 0 to 31, but 0and 31 are reserved, so only 1 to 30 can be allocated as server channel numbers for ser-vices. Channel 0 is used for sending control information; channel 31 is reserved by TS 07.10. Bluetooth avoids using channels which are reserved by TS 07.10 to preserve com-patibility with TS 07.10 applications.178RFCOMM FCSData (0 - 32767 Bytes)Length or DataLengthControlAddress162432282012840Figure 10–6Structure of an RFCOMM frame.DServer ChannelC/REA =146875321Figure 10–7Address field.The DLCI is calculated once before the data link connection is established. The RFCOMM server channel number in the responding device is used for the DLCI. Because server channel numbers 1 to 30 are available, one device can have up to 30 services using RFCOMM.10.5.2Control FieldReferring back to Figure 10–6, the next field in an RFCOMM frame is the control field. This is used to identify the type of the frame. Table 10–1 shows the control field values used in RF-COMM frames. (These match the values used in the corresponding GSM TS 07.10 Frames.)P/F is the Poll/Final bit. In commands, it is called the P (Poll) bit; in responses, it is called the F (Final) bit.Structure of RFCOMM Frames 179For first RFCOMM connection,initiator starts multiplexor C/R = 1Command from initiator Response from responder C/R = 1Command from responder Response from initiator C/R = 0Data from responder Data from initiatorC/R set as for commandsFigure 10–8Settings of C/R bit in RFCOMM exchanges.Table 10–1Control Field ValuesControl Bit Number12345678SABM (Set Asynchronous 1111P/F 100Balanced Mode)UA (Unnumbered Acknowledgement)1100P/F 110DM (Disconnect Mode)1111P/F 000DISC (Disconnect)1100P/F 011UIH (Unnumbered Information with 1111P/F111Header Check)A command with its P bit set to 1 is used when a response or a series of responses is wanted from the device at the far end of the link. The responding device should send back its responses with the F bit set to 1. There should only ever be one command frame with P bit set to 1 waiting for a response.DM packets are processed regardless of the state of the P/F bit, but SABM or DISC commands and UA responses are thrown away if the P/F bit is set to zero.10.5.3Length FieldThe length field begins with an EA bit as shown in Figure 10–9. If this is 1, then it is fol-lowed by 7 bits of length, so the length field is one byte long. If the EA bit is 0, then it is followed by 15 bits of length, so the length field is two bytes long.The default length of an RFCOMM frame is 32 bytes; the maximum length is 32767.10.5.4DataThe data field is only present in UIH frames. There must be an integral number of bytes in the data up to 32767. The size limit is set by the Maximum Transmission Unit (MTU) on L2CAP packets, so if a system has a smaller L2CAP MTU, the size of RFCOMM data will also be restricted.10.5.5Frame Check SequenceTo calculate the FCS:Count up k,the number of bits the FCS will be calculated on. For SABM, DISC,UA, and DM frames, the frame check sequence is calculated on the address control and length fields. For UIH frames, it is calculated on the address and control fields.Then:(a)Calculate the remainder of x k ( x 7+ x 6x 5+ x 4+ x 3+ x 2+ x 1+ 1) divided modulo 2by the generator polynomial ( x 8+ x 2+ x + 1).(b)Take the contents of the frame that the FCS is calculated over before any start andstop elements have been inserted, and before any other extra bits have been in-serted. Multiply by x 8and divide by the generator polynomial ( x 8+ x 2+ x + 1).(c)Add the results of (a) and (b) modulo 2, and take the 1’s complement to get the FCS.180RFCOMM7 bits of Length FieldEA =1812161410642015 bits of Length FieldEA =0Figure 10–9Structure of RFCOMM length fields.Multiplexor Frames 181 Because UIH frames only calculate FCS on the address and control fields, their data field is not protected by the FCS. This might be a drawback for reliable data transmission,but it does have the advantage that the FCS patterns can be pre-calculated for all theDLCIs that are in use. This pre-calculation could be done when the channel is set up.10.6MULTIPLEXOR FRAMESMultiplexor commands and responses are sent on DLCI = 0. They are used to control theRFCOMM link. There are seven types of commands or responses:•PN—DLC parameter negotiation.•Test—Checks communication link.•FCon / FCoff—Aggregate flow control on all connections.•MSC—Modem status, used for flow control per connection.•RPN—Remote Port Negotiation.•RLS—Remote Line Status.•NSC—Non-Supported Command (response only).The multiplexor commands and responses are carried as messages inside an RFCOMM UIH frame as shown in Figure 10–10. It is possible to send several multi-plexor command messages in one RFCOMM frame, or to split a multiplexor commandmessage over more than one frame.10.6.1PN—DLC Parameter NegotiationThe PN command is used to negotiate the parameters of a data link connection. PN com-mands are exchanged before a new data link connection is opened, although this is not com-pulsory. If no PN commands are sent, default parameters will be used for the connection.A PN command is identified by the type field shown in Figure 10–11. This typefield is the first information byte in the UIH frame carrying the PN command (see Figure DLCI = 0Control = UIH Length Information FCSType Length Value 1Value 2 …Value NFigure 10–10Structure of an RFCOMM multiplexor control frame.10–11). The EA bit is 1 because the type field occupies one byte. The C/R bit is used to indicate whether the message is a command or a response.The length field in a PN message is always set to 8, and the value field contains 8bytes as shown in Figure 10–12. These bytes define the parameters which will be used on a data link connection as follows:•Six DLCI bits identify the data link connection for which parameters are being ne-gotiated.•Two padding bits which are always set to zero follow the DLCI; these are inserted to avoid splitting parameters across bytes.•Four I bits give the type of frames used to carry information on the channel. In RF-COMM UIH frames indicated by the value 0b1000 are used.182RFCOMMType = 000001C/REA =146875321Figure 10–11Type field for Parameter Negotiation (PN).0b00DLCICL (Convergence Layer to Use)=0b0000I (Type of Frame for Information)= 0b1000 for UIH Frames0b00P (priority)T (Value of Acknowledgement Timer)60-second Timer = 0b00000000N (Maximum Frame Size - 16 bits)NA (Maximum Number of Retransmissions) = 0b000000000b00000K (Error Recovery Window)=0b00046875321Figure 10–12Content of value bytes in a PN message.Multiplexor Frames183•Four CL bits give the convergence layer to used. RFCOMM uses Type 1 (unstruc-tured octet stream) = 0b0000 in versions after 1.0b this may also be set to 0x0F toenable credit based flow control.•Six P bits assign a priority to the data link connection: 0 is the lowest priority, 63 isthe highest.•Two padding bits which are always set to zero follow the P bits; these are insertedto avoid splitting parameters across bytes.•Eight T bits give the value of the acknowledgement timer, in GSM 07.10, thiswould be used to trigger a retransmit; in RFCOMM, if the timer elapses, the con-nection is closed down. The timer’s value is not negotiable, but is fixed at 60s. Thisfield is set to 0 to indicate that the timer is not negotiable.•Sixteen N bits give the maximum size of the frame.•Eight NA bits give the maximum number of retransmissions. Because the Bluetoothbaseband gives RFCOMM a reliable transport layer, RFCOMM will not retransmit,so this value is set to zero.•Three K bits define the window size for error recovery mode. RFCOMM uses basicmode, so these bits are not interpreted by RFCOMM.•Five padding bits set to zero fill the rest of the last value field to round up the valuesto an integral number of bytes.All parameters being negotiated are sent with the LSB in bit 1; this is the general rule for RFCOMM information.It is worth noting that RFCOMM follows the conventions of the GSM 07.10 stan-dard and numbers the bits in a frame from 1 for the least-significant bit to 8 for the most significant bit. This may be confusing to people who are used to seeing the bits in a byte numbered from 0 to 7.One device sends a PN message, and the other responds with another PN message.The response may not change the DLCI, the priority, the convergence layer, or the timer value. The response may send back a different timer value. In this case, the device which sent the first PN messages will still use the timer it proposed, but the device at the other end of the connection will use the value it sent in its message.The response may have a smaller value for the maximum frame size, but it may not propose a larger value for this parameter.In GSM 07.10, PN messages are optional. In RFCOMM, support of the PN message and its response are compulsory, although if default parameters are satisfactory, PN mes-sages do not have to be sent. PN messages may be exchanged until the device which sent the first message is happy with the parameters it gets sent back to it. Once it has a satis-factory set of parameters in the reply, it can go on to set up the connection.10.6.2TestThe test command is used to check the RFCOMM connection. As is normal, the length byte gives the number of value bytes which follow. The number of value bytes is not fixed, and is used to hold a test pattern. The remote end of the link echoes the same value bytes back.The type field for the test command is shown in Figure 10–13. Because only a sin-gle byte is used, the EA bit is set to 1. The C/R bit is used to indicate whether the message is a command or a response.10.6.3FCon / FCoff—Aggregate Flow Control on All ConnectionsRFCOMM has a flow control mechanism which applies to all channels between two RFCOMM entities. When either RFCOMM entity can’t receive RFCOMM information,it sends a Flow Control off (FCoff) command. When it is able to receive data again, it sends a Flow Control on (FCon) command.The structure of the type field for the two flow control commands is shown in Fig-ure 10–14. Both begin with an EA bit, which is 1 to indicate that there is only one byte in the command type. The length field in the frame carrying the command is set to zero be-cause there is no other data in the frame. The C/R bit is used to indicate whether the mes-sage is a command or a response.10.6.4MSC—Modem Status CommandRFCOMM also has a flow control mechanism which can be applied to just one channel at a time. This is the Modem Status Command (MSC), and it is indicated by the type field shown in Figure 10–15. The EA bit is 1 because the type field occupies one byte. The C/R bit is used to indicate whether the message is a command or a response.The command field of the MSC contains virtual V.24 control signals, that is to say the settings that the RS-232 control wires would have if the RFCOMM data were being transferred across wires rather than across a Bluetooth connection. The signals in the command field are as follows:•EA—Extended Address, set to 1 to indicate there is only 1 byte of command.•FC—Flow Control bit, set to 1 when a device is unable to accept any RFCOMM frames. When the device is able to receive again, it sends another MSC with the flow control bit set to 0.•RTC—Ready To Communicate bit, set to 1 when the device is ready to communi-cate.184RFCOMMType = 0b000100C/REA =146875321Figure 10–13Type field for test.•RTR—Ready To Receive bit, set to 0 when the device cannot receive data and 1when it can receive data.•IC—Incoming Call, 1 indicates an incoming call.•DV—Data Valid, set to 1 to indicate that valid data is being sent.These values may not seem to make sense when sent in a packet, but that is because they map onto the lines of an RS-232 interface. It might be obvious when a packet is sent that it is going to have valid data; who would bother to send a packet with invalid data?However, when dealing with physical serial port lines, such signals make more sense. A signal to say that valid data is being sent can be used to activate circuits to handle the data. The MSC command just mimics the values of the V.24 signals, which would be used on a wired RS-232 -interface.The signals from an MSC map onto RS-232 signals as follows:•RTC maps onto DSR (Data Set Ready) and DTR (Data Terminal Ready).•RTR maps onto RTS (Request To Send) and CTS (Clear To Send).•IC maps onto RI (Ring Indication).•DV maps onto DCD (Data Carrier Detect).Figure 10–16 shows how the signals are carried in the control field of the command. The MSC is sent on a connection before any data is sent to establish the state of the RS-232 control signals. It should also be sent whenever the signals need to be changed.In the MSC, the state of the signals in the device sending the command is sent. The response just carries a copy of the signals from the command.Multiplexor Frames185FC On = 0b000101C/REA =1FC Off = 0b000110C/R EA =146875321Figure 10–14Type fields for FCon and FCoff commands.Type = 0b000111C/REA =146875321Figure 10–15Type field for MSC command.186RFCOMMType = 0b001001C/REA =146875321Figure 10–17Type field for RPN.10.6.5RPN—Remote Port NegotiationThe Remote Port Negotiation (RPN) command is used to set communication settings at the remote end of a data link connection. If any of the communication settings need to be changed during a connection, the RPN command can be resent to change them.The RPN type field is shown in Figure 10–17.The EA bit is 1 because the type field occupies one byte. The C/R bit is used to in-dicate whether the message is a command or a response.The length byte in an RPN command is either 1 or 8. If the length is 1, then there is a single value byte which contains the DLCI for the connection, and the message is inter-preted as a request for the link’s parameters. In this case, the remote end replies with the current parameters on the link. If the length byte is set to 8, then eight bytes of link para-meters follow. If they are sent in a command, then they are a request to set up the link’s parameters.Figure 10–18 shows the order of values within an RPN command with length byte set to 8.The parameter mask defines which parameters are being changed by the message.Figure 10–19 shows the position of bits in the RPN parameter mask.In an RPN command, if a parameter mask bit is set to 1, it indicates a particular pa-rameter that should be changed. If it is set to 0, then the parameter is not being changed and the value can be ignored.In an RPN response, if a parameter mask bit is set to 0, then it means the proposal sent in an RLS has not been accepted. Conversely, a parameter mask bit set to 1 means the new value has been accepted, and the sender of the response is now using the new value.The values of the various fields in an RLS command have the same meanings as in GSM 07.10.ReservedFCEA =1RTRRTCDVIC46875321Figure 10–16MSC control signal field.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Network Working Group The North American Directory Forum Request for Comments: 1218 April 1991 A Naming Scheme for c=USStatus of this MemoThis memo provides information for the Internet community. It doesnot specify an Internet standard. Distribution of this memo isunlimited.SummaryThis RFC is a near-verbatim copy of a document, known as NADF-123,which has been produced by the North American Directory Forum (NADF). The NADF is a collection of organizations which offer, or plan tooffer, public Directory services in North America, based on the CCITT X.500 Recommendations. As a part of its charter, the NADF must reach agreement as to how entries are named in the public portions of theNorth American Directory. NADF-123 is a scheme proposed for thispurpose. The NADF is circulating NADF-123 widely, expressly for the purpose of gathering comments. The next meeting of the NADF is inmid-July, and it is important for comments to be received prior tothe meeting, so that the scheme may receive adequate review.A Naming Scheme for c=USThe North American Directory ForumNADF-123Supercedes: NADF-103, NADF-71March 21, 1991ABSTRACTThis is one of a series of documents produced for discussion withinthe North American Directory Forum. Distribution, with attribution, is unlimited. This document is being circulated for comment. Thedeadline for comments is July 1, 1991. Comments should be directedto the contact given on page 16.1. IntroductionComputer networks form the infrastructure between the users theyinterconnect. For example, the electronic mail service offered bycomputer networks provides a means for users to collaborate towardssome common goal. In the simplest cases, this collaboration may besolely for the dissemination of information. In other cases, two NADF [Page 1]users may work on a joint research project, using electronic mail as their primary means of communication.However, networks themselves are built on an underlying naming andnumbering infrastructure, usually in the form of names and addresses. For example, some authority must exist to assign network addresses to ensure that numbering collisions do not occur. This is of paramount importance for an environment which consists of multiple serviceproviders.2. ApproachIt should be observed that there are several different naminguniverses that can be realized in the Directory Information Tree(DIT). For example, geographical naming, community naming, political naming, organizational naming, and so on. The choice of naminguniverse largely determines the difficulty in mapping a user’s query into a series of Directory operations. Although it is possible tosimultaneously support multiple naming universes with the DIT, thisis likely to be unnatural. As such, this proposal focuses on asingle naming universe.The naming universe in this proposal is based on civil authority.That is, it uses the existing civil naming infrastructure andsuggests a (nearly) straight-forward mapping on the DIT. There arefour components to the naming architecture:(1) civil naming and optimized civil naming, which reflectsnames assigned by civil authority;(2) organizational naming, which reflects names assignedwithin organizations;(3) ADDMD naming, which reflects names assigned to publicproviders within the Directory service; and,(4) application naming, which reflects names assigned to OSIentities.An important characteristic is that entries should be listed wherever searches for them are likely to occur. This implies that a singleobject may be listed under several entries.2.1. Names and User-FriendlinessIt must be emphasized that there are three distinct concepts whichare often confused when discussing a naming scheme:NADF [Page 2](1) user-friendly naming: a property of a Directory whichallows users to easily identity objects;(2) user-friendly name: a technique for naming an objectwhich exhibits "friendliness" according to an arbitraryset of user-criteria; and,(3) Distinguished Name: the administratively assigned namefor an entry in the OSI Directory.It must be emphasized that Distinguished Names are not necessarilyuser-friendly names, and further, that user-friendly naming in theDirectory is a property of the Directory Service, not ofDistinguished Names.2.2. Choice of RDN NamesThe key aspect to appreciate for choice of RDNs is that they shouldprovide a large name space to avoid collisions: the naming strategymust provide enough "real estate" to accommodate a large demand forentries. This is the primary requirement for RDNs. A secondaryrequirement is that RDNs should be meaningful (friendly to people)and should not impede searching.However, it is important to understand that this second requirementcan be achieved by using additional (non-distinguished) attributevalues. For example, if the RDN of an entry isorganizationName is Performance Systems Internationalthen it is perfectly acceptable (and indeed desirable) to have other values for the organizationName attribute, e.g.,organizationName is PSIThe use of these abbreviated names greatly aids searching whilstavoiding unnecessary Distinguished Name conflicts.In order to appreciate the naming scheme which follows, it isimportant to understand that it leverages, wherever possible,existing naming infrastructure. That is, it relies heavily on non-OSI naming authorities which already exist. Note that inasmuch as it relies on existing naming authorities, there is little chance thatany "final" national decision could obsolete it. [Footnote: Anynaming scheme may be subject to the jurisdiction of certain national agencies. For example, the US State Department is concerned with any impact on US telecommunications treaty obligations.] (To do so would require a national decision that disregards existing national and NADF [Page 3]regional infrastructure, and establishes some entirely new anddifferent national naming infrastructure.)3. Civil NamingCivil naming occurs at three levels:(1) the national level, which contains objects that arerecognized throughout a country;(2) the regional level, which contains objects that arerecognized throughout a state or state-equivalent; and,(3) the local level, which contains objects that arerecognized within a populated place.3.1. Naming at the National LevelAt the national-level (at least) three kinds of names may be listed:(1) The States and State-Equivalents(2) Organizations with National Standing(3) ADDMD Operators3.1.1. The States and State-EquivalentsFor each state or state-equivalent (the District of Columbia and the eight outlying areas [Footnote: i.e., American Samoa, FederatedStates of Micronesia, Guam, Marshall Islands, Northern MarianaIslands, Palau, Puerto Rico, and Virgin Islands of the US.]), aninstance of anusStateOrEquivalentobject is used. The RDN is formed aslocalityName is <FIPS 5 name>e.g.,localityName is Californiaprovides the RDN for the State of California. In addition, thisentry would contain attributes identifying both the FIPS 5 alpha and numeric code for the State, e.g.,NADF [Page 4]fipsStateNumericCode is 06fipsStateAlphaCode is CAOf course, this entry could contain many other attributes such asstateOrProvinceName is State of California3.1.2. Organizations with National StandingThere is no authority in the United States which unambiguouslyregisters the alphanumeric names of organizations with nationalstanding. It is proposed that ANSI provide this registry and thatthe ANSI alphanumeric name form be used as the basis for RDNs.For each organization with national standing, an instance of anusOrganizationobject is used. The RDN is formed asorganizationName is <ANSI alphanumeric name form>e.g.,organizationName is Performance Systems InternationalIn addition, this entry would contain attributes identifying the ANSI Alphanumeric name form, e.g.,ansiOrgNumericCode is 177777Of course, this entry would contain many other attributes such asorganizationName is PSIFor the National Government, an instance of anorganizationobject is also used, and the RDN is taken from the ANSI alphanumeric name form registry.3.1.3. ADDMD OperatorsThere is no authority in the United States which unambiguouslyregisters the names of ADDMD operators. It is expected that theNorth American Directory Forum will coordinate with the US CCITTNational Committee Study Group D to provide this registry. (AtNADF [Page 5]worst, the ADDMDs can use ANSI alphanumeric name forms for their RDN attribute values.)For each ADDMD operator, an instance of anadfADDMDobject is used. The RDN is formed asaddmdName is <NADF registered name>e.g.,addmdName is PSINet3.2. Naming within a State or State-EquivalentAt the regional level (at least) two kinds of names may be listed:(1) Populated Places(2) Organizations with Regional Standing3.2.1. Populated PlacesFor each populated place within a state or state-equivalent,an instance of anusPlaceobject is used. The RDN is formed aslocalityName is <FIPS 55 name>e.g.,localityName is Hartfordprovides the RDN for the Hartford entry immediately subordinate tothe usStateOrEquivalent entry for the State of Connecticut. Inaddition, this entry would contain attributes identifying the FIPS 55 place code, e.g.,usPlaceCode is 37000NADF [Page 6]3.2.2. Organizations with Regional StandingAn organization is said to have regional standing if it is registered with the "Secretary of State" or similar entity within that region,as an entity doing business in the region.For each organization with regional standing, an instance of anorganizationobject is used. The RDN is formed asorganizationName is <registered name of organization>e.g.,organizationName is Network Management Associatesmight provide the RDN for a business entity registered with the State of California. In this case, the entry thus named would beimmediately subordinate to the usStateOrEquivalent entry for theState of California.Note that other non-distinguished attributes, such as an ANSI numeric name form value, may be included in such an entry --- theorganization object might actually be a usOrganization object.For the Regional Government, an instance of anorganizationobject is also used. The RDN is formed as:organizationName is Government3.3. Naming within a Populated PlaceAt the local level (at least) three kinds of names may be listed:(1) Persons(2) Organizations with Local Standing(3) MHS Distribution ListsNADF [Page 7]3.3.1. Naming of PersonsWithin a populated place, there is no centralized naming entity which registers residential persons. It is proposed that entries forpersons be immediately subordinate to the usPlace object which mostaccurately reflects their place of residence.For each person (wishing to have an entry in the Directory), aninstance of a residentialpersonresidentialPersonobject is used. The RDN is usually multi-valued, formed with commonName is <person’s full name>and some other attribute, such as postalCode, streetAddress, etc.However, because streetAddress is often considered privateinformation, based on agreement with the entity managing the DMD and the listed person, some other, distinguishing attribute may be used, including a "serial number" (having no other purpose). It should be noted however that this is non-helpful in regards to searching,unless other attribute values containing meaningful information areadded to the entry and made available for public access.3.3.2. Organizations with Local StandingAn organization is said to have local standing if it is registeredwith the County or City Clerk or similar entity within that locality as an entity "doing business" in that place.For each organization with local standing, an instance of anorganizationobject is used. The RDN is formed asorganizationName is <registered name of organization>e.g.,organizationName is The Tied Housemight provide the RDN for a business entity registered with the City of Mountain View. In this case, the entry thus named would beimmediately subordinate to the usPlace entry for the City of Mountain View.NADF [Page 8]Note that other non-distinguished attributes, such as an ANSI numeric name form value, may be included in an entry. (That is, theorganization object might actually be a usOrganization object.)For the Local Government, if any, an instance of anorganizationobject is also used. The RDN is formed as:organizationName is Government3.4. Naming of MHS Distribution ListsNaming of MHS distribution lists remains with the scoping DMD.4. Optimized Civil NamingThe structure of the civil component of the architecture can beconcisely described as:----------------------------------------------------------------------Level Element objectClass Superior RDN----------------------------------------------------------------------root 0----------------------------------------------------------------------intl. 1 country 0 countryName----------------------------------------------------------------------natl. 2 usStateOrEquivalent 1 localityName3 usOganization 1 organizationName4 nadfADDMD 1 addmdName----------------------------------------------------------------------reg. 5 usPlace 2 localityName6 organization 2 organizationName----------------------------------------------------------------------local 7 residentialPerson 5 commonName,other8 organization 5 organizationName9 mhsDistributionList 5 commonName----------------------------------------------------------------------Consider how an interrogation algorithm might locate a residentialperson, given:(1) a string denoting the person’s real-world name;(2) a string denoting the real-world name of the populatedplace in which the person lives; and,NADF [Page 9](3) the Distinguished Name of the state or state-equivalent.A straight-forward approach is to initiate a single-level search tolocate the desired populated place. The search results in zero ormore Distinguished Names being returned which correspond to thestring provided by the user. Then, for each populated place, asubtree search might be initiated to locate the desired residentialperson. If the number of populated places returned by the firstsearch is large, then this strategy is inefficient.A better approach would be to initiate a single search, with a filter combining the strings for both the person’s real-world name and theplace’s real-world name. Unfortunately, such a search would have to involve the whole-subtree anchored at the Distinguished Name for the state or state-equivalent, which would be inefficient.As such, it may be desirable to optimize the civil naming componentby listing some entries at a higher level. This is accomplished byusing a multi-valued RDN formed by combining the RDNs of the entryand its superior.There are three cases in civil naming:(1) listing an organization with regional standing at thenational level;(2) listing an organization with local standing at theregional level; and,(3) listing a person with local standing at the regionallevel.Hence, under the optimized civil naming component, a single-levelsearch, anchored at the Distinguished Name for the state or state-equivalent, could be used. Further, the implementation of a DSAsupporting this optimization would highly-index the attributes usedfor searching, in order to achieve high-performance.In order to clearly indicate that optimized civil naming is ineffect, a new attribute type, nadfSearchGuide, is introduced. Anattribute value of this type is placed in an entry to indicate which optimizations are in effect. Using the residential example above,the entry for the state or state-equivalent would contain annadfSearchGuide value indicating that when searching for entries oftype residentialPerson, a single-level search should be performedwith a filter containing the logical-and of two terms, one involving the commonName attribute, and the other involving the localityNameattribute. The nadfSearchGuide is a refinement of the X.500NADF [Page 10]searchGuide in that it indicates the depth of the search which should be performed, and always contains an indication of the object classfor which the optimization exists.Finally, note that for naming within organizations, this techniquemight also be used.4.1. Naming at the National Level4.1.1. Organizations with Regional StandingAn organization with standing within a state or state-equivalent may be listed directly under c=US.For an organization with regional standing, an instance of anorganizationobject is used. The RDN is multi-valued, formed asorganizationName is <registered name of organization>localityName is <FIPS 5 name>e.g.,organizationName is Network Management AssociateslocalityName is CaliforniaIt must be emphasized that uniqueness within the RDN comes from using the a regional localityName (state or state-Equivalent) inassociation with the correspondent organizationName in that region. 4.2. Naming within a State or State-Equivalent4.2.1. Organizations with Local StandingAn organization with standing within a populated place may be listed directly under its state or state-equivalent.For an organization with local standing, an instance of anorganizationobject is used. The RDN is multi-valued, formed asorganizationName is <registered name of organization>localityName is <FIPS 55 name>NADF [Page 11]e.g.,organizationName is The Tied HouselocalityName is City of Mountain ViewIt must be emphasized that uniqueness within the RDN comes from using the a local localityName (populated place) in association with thecorrespondent organizationName in that place.4.2.2. PersonsAn person may be listed directly under its state or state-equivalent. For such a person, an instance of aresidentialPersonobject is used. The RDN is multi-valued, formed by taking the RDN of the person and adding the RDN of the populated place containing theperson.commonName is the Marshall T. RosepostalCode is 94043-2112localityName is City of Mountain ViewNote that for optimization to occur, the RDN of the person must notcontain a localityName attribute value.5. Organizational NamingThe internal structure of each usOrganization or organization object is a matter for that organization to establish.It is strongly recommended that organizationalUnit objects be usedfor structuring. (If an organization uses a locality-basedorganizational hierarchy, this information can still be representedusing theorganizationalUnitobject.)6. ADDMD NamingThe internal structure of each nadfADDMD object is a matter for that service-provider to establish.NADF [Page 12]7. Application NamingThere are (at least) four kinds of OSI entities which may be listed:(1) Application Processes and Entities(2) MHS Distribution Lists(3) EDI Users(4) Devices7.1. Naming of Application Processes and EntitiesNaming of OSI application processes and entities remains with thescoping DMD. However, in order to foster interoperability, tworequirements are made: first, application entity objects must beimmediately subordinate to application process objects; and, second, application entities are represented by the nadfApplicationEntityobject, which is identical to the applicationEntity object exceptthat the presence of an attribute value ofsupportedApplicationContext is mandatory.7.2. Naming of MHS Distribution ListsNaming of MHS distribution lists remains with the scoping DMD.7.3. Naming of EDI UsersNaming of EDI users remains with the scoping DMD.7.4. Naming of DevicesNaming of OSI devices remains with the scoping DMD.8. Usage ExamplesConsider the following examples, expressed in a concise format (read left-to-right):Federal Government:{ c=US, o=Government }The State of California:{ c=US, l=California }NADF [Page 13]The District of Columbia:{ c=US, l=District of Columbia }An organization with national standing:{ c=US, o=Performance Systems International }An ADDMD:{ c=US, addmdName=PSINet }The Government of the State of California:{ c=US, l=California, o=Government }The Government of the District of Columbia:{ c=US, l=District of Columbia, o=Government }A city within the State of California:{ c=US, l=California, l=City of Mountain View }An organization licensed to operate within the State ofCalifornia:{ c=US,l=California,o=Network Management Associates, Inc. }An optimized listing for a organization with regionalstanding:{ c=US,{ l=California,o=Network Management Associates }}NADF [Page 14]A city government:{ c=US,l=California,l=City of Mountain View,o=Government }A residential person:{ c=US,l=California,l=City of Mountain View,{ cn=Marshall T. Rose, postalCode=94043-2112 }}An organization licensed to operate within a city:{ c=US,l=California,l=City of Mountain View,o=The Tied House }An entity within the Federal Government:{ c=US, o=Government, ou=Department of the Air Force }An entity within an organization with national standing:{ c=US,o=Performance Systems International,ou=Marketing }9. AcknowledgementsThis document is based on many sources, including, but not limitedto:- Listing Services Database Generic Requirements, BellcoreTA-TSY-000985;- Common Directory Use ED 013 (Q/511) (EWOS/EGDIR/90/156);and,- The THORN X.500 Naming Architecture (UCL-45 revision 6.1).NADF [Page 15]10. BibliographyX.500: The Directory --- Overview of Concepts, Models, andService, CCITT Recommendation X.500, December, 1988.US FIPS 5: Codes for the Identification of the States, TheDistrict of Columbia and Outlying Areas of the UnitedStates, and Associated Areas, US Department of CommerceFIPS 5--2, May 28, 1987.US FIPS 6: Counties and Equivalent Entities of the UnitedStates, its Possessions, and Associated Areas, USDepartment of Commerce FIPS 6--4, August 31, 1990.US FIPS 55: Guideline: Codes for Named Populated Places,Primary County Divisions, and other Locational Entitiesof the United States and Outlying Areas, US Department ofCommerce FIPS 55--2, February 3, 1987.The NADF is soliticting comments on this naming scheme. Commentsshould be directed to:Postal: Dr. Marshall T. RosePerformance Systems International5201 Great American ParkwaySuite 3106Santa Clara, CA 95054USTelephone: +1 408 562 6222Fax: +1 408 562 6223Internet: mrose@X.500: rose, psi, usComments should be received prior to July 1, 1991.Appendix A: Naming ArchitectureThere are two aspects to the naming architecture: a DIT structure and a set of related Schema definitions. These are shown on pages 17 and 18, respectively.NADF [Page 16]DIT Structure----------------------------------------------------------------------Level Element objectClass Superior RDN----------------------------------------------------------------------root 0----------------------------------------------------------------------intl. 1 country 0 countryName----------------------------------------------------------------------natl. 2 usStateOrEquivalent 1 localityName3 usOganization 1 organizationName4 nadfADDMD 1 addmdName----------------------------------------------------------------------reg. 5 usPlace 2 localityName6 organization 2 organizationName----------------------------------------------------------------------local 7 residentialPerson 5 commonName,other8 organization 5 organizationName9 mhsDistributionList 5 commonName--------------------------------------------------------------------------------------------------------------------------------------------opt. 6* organization 1 organizationName,localityName7* residentialPerson 2 commonName,other,localityName8* organization 2 organizationName,localityName--------------------------------------------------------------------------------------------------------------------------------------------org. 10** organizationalUnit 3,6,8,10,11 orgUnitName11** locality 3,6,8,10,11 localityName12** organizationalRole 3,6,8,10,11 commonName13** organizationalPerson 3,6,8,10,11 commonName--------------------------------------------------------------------------------------------------------------------------------------------appl. 14 applicationProcess 3,6,8,10,11 commonName15 nadfApplicationEntity 14 commonName16 mhsDistributionList 3,6,8,10,11 commonName17 ediUser 3,6,8,10,11 ediName18 device 3,6,8,10,11 commonName----------------------------------------------------------------------* = These are the optimized form of the corresponding element in the civil component.** = This scheme makes no requirements on the DIT structure within an NADF [Page 17]organization. The organizational structure shown here is only forexposition. For example, MHS objects are not listed beneath theorganizational level, though they are likely to occur within anorganization.Schema DefinitionsNADF-SCHEMA { joint-iso-ccitt mhs(6) group(6) al-grimstad(5)nadf(1) schema(1) }DEFINITIONS ::= BEGINIMPORTSOBJECT-CLASS, ATTRIBUTEFROM InformationFramework{ joint-iso-ccitt ds(5) module(1)informationFramework(1) }caseIgnoreStringSyntax, CriteriaFROM SelectedAttributeTypes{ joint-iso-ccitt ds(5) module(1)selectedAttributeTypes(5) }locality, organization, applicationEntity, topFROM SelectedObjectClasses{ joint-iso-ccitt ds(5) module(1)selectedObjectClasses(6) };nadf OBJECT IDENTIFIER ::= { joint-iso-ccitt mhs(6) group (6)al-grimstad(5) 1 }nadfModule OBJECT IDENTIFIER ::= { nadf 1 }nadfAttributeType OBJECT IDENTIFIER ::= { nadf 4 }nadfObjectClass OBJECT IDENTIFIER ::= { nadf 6 }-- object classesusStateOrEquivalent OBJECT-CLASS-- localityName is used for RDN-- values come from US FIPS PUB 5SUBCLASS OF localityMUST CONTAIN { fipsStateNumericCode,fipsStateAlphaCode,stateOrProvinceName }MAY CONTAIN { nadfSearchGuide }::= { nadfObjectClass 1 }NADF [Page 18]usPlace OBJECT-CLASS-- localityName is used for RDN-- values come from US FIPS PUB 55SUBCLASS OF localityMUST CONTAIN { fipsPlaceNumericCode,localityName }MAY CONTAIN { nadfSearchGuide }::= { nadfObjectClass 2 }usCounty OBJECT-CLASSSUBCLASS OF usPlaceMUST CONTAIN { fipsCountyNumericCode }::= { nadfObjectClass 3 }usOrganization OBJECT-CLASS-- organizationName is used for RDN-- values come from ANSI Alphanumeric RegistrySUBCLASS OF organizationMUST CONTAIN { ansiOrgNumericCode }MAY CONTAIN { nadfSearchGuide }::= { nadfObjectClass 4 }nadfApplicationEntity OBJECT-CLASSSUBCLASS OF applicationEntityMUST CONTAIN { supportedApplicationContext }::= { nadfObjectClass 5 }nadfADDMD OBJECT-CLASS-- addmdName is used for RDN-- values come from NADF Registry (tbd)SUBCLASS OF topMUST CONTAIN { addmdName }MAY CONTAIN { nadfSearchGuide }::= { nadfObjectClass 6 }-- auxiliary classesnadfObject OBJECT-CLASSSUBCLASS OF topMAY CONTAIN { supplementaryInformation }::= { nadfObjectClass 7 }NADF [Page 19]。