⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc826.txt

📁 RFC 相关的技术文档
💻 TXT
📖 第 1 页 / 共 2 页
字号:
Network Working Group                                   David C. Plummer Request For Comments:  826                                  (DCP@MIT-MC)                                                           November 1982	     An Ethernet Address Resolution Protocol                            -- or --              Converting Network Protocol Addresses                   to 48.bit Ethernet Address                       for Transmission on                        Ethernet Hardware			    AbstractThe implementation of protocol P on a sending host S decides,through protocol P's routing mechanism, that it wants to transmitto a target host T located some place on a connected piece of10Mbit Ethernet cable.  To actually transmit the Ethernet packeta 48.bit Ethernet address must be generated.  The addresses ofhosts within protocol P are not always compatible with thecorresponding Ethernet address (being different lengths orvalues).  Presented here is a protocol that allows dynamicdistribution of the information needed to build tables totranslate an address A in protocol P's address space into a48.bit Ethernet address.Generalizations have been made which allow the protocol to beused for non-10Mbit Ethernet hardware.  Some packet radionetworks are examples of such hardware.--------------------------------------------------------------------The protocol proposed here is the result of a great deal ofdiscussion with several other people, most notably J. NoelChiappa, Yogen Dalal, and James E. Kulp, and helpful commentsfrom David Moon.[The purpose of this RFC is to present a method of ConvertingProtocol Addresses (e.g., IP addresses) to Local NetworkAddresses (e.g., Ethernet addresses).  This is a issue of generalconcern in the ARPA Internet community at this time.  Themethod proposed here is presented for your consideration andcomment.  This is not the specification of a Internet Standard.]Notes:------       This protocol was originally designed for the DEC/Intel/Xerox10Mbit Ethernet.  It has been generalized to allow it to be usedfor other types of networks.  Much of the discussion will bedirected toward the 10Mbit Ethernet.  Generalizations, whereapplicable, will follow the Ethernet-specific discussion.DOD Internet Protocol will be referred to as Internet.Numbers here are in the Ethernet standard, which is high bytefirst.  This is the opposite of the byte addressing of machinessuch as PDP-11s and VAXes.  Therefore, special care must be takenwith the opcode field (ar$op) described below.An agreed upon authority is needed to manage hardware name spacevalues (see below).  Until an official authority exists, requestsshould be submitted to	David C. Plummer	Symbolics, Inc.	243 Vassar Street	Cambridge, Massachusetts  02139Alternatively, network mail can be sent to DCP@MIT-MC.The Problem:------------The world is a jungle in general, and the networking gamecontributes many animals.  At nearly every layer of a networkarchitecture there are several potential protocols that could beused.  For example, at a high level, there is TELNET and SUPDUPfor remote login.  Somewhere below that there is a reliable bytestream protocol, which might be CHAOS protocol, DOD TCP, XeroxBSP or DECnet.  Even closer to the hardware is the logicaltransport layer, which might be CHAOS, DOD Internet, Xerox PUP,or DECnet.  The 10Mbit Ethernet allows all of these protocols(and more) to coexist on a single cable by means of a type fieldin the Ethernet packet header.  However, the 10Mbit Ethernetrequires 48.bit addresses on the physical cable, yet mostprotocol addresses are not 48.bits long, nor do they necessarilyhave any relationship to the 48.bit Ethernet address of thehardware.  For example, CHAOS addresses are 16.bits, DOD Internetaddresses are 32.bits, and Xerox PUP addresses are 8.bits.  Aprotocol is needed to dynamically distribute the correspondencesbetween a <protocol, address> pair and a 48.bit Ethernet address.Motivation:-----------Use of the 10Mbit Ethernet is increasing as more manufacturerssupply interfaces that conform to the specification published byDEC, Intel and Xerox.  With this increasing availability, moreand more software is being written for these interfaces.  Thereare two alternatives: (1) Every implementor invents his/her ownmethod to do some form of address resolution, or (2) everyimplementor uses a standard so that his/her code can bedistributed to other systems without need for modification.  Thisproposal attempts to set the standard.Definitions:------------Define the following for referring to the values put in the TYPEfield of the Ethernet packet header:	ether_type$XEROX_PUP,	ether_type$DOD_INTERNET,	ether_type$CHAOS, and a new one:	ether_type$ADDRESS_RESOLUTION.  Also define the following values (to be discussed later):	ares_op$REQUEST (= 1, high byte transmitted first) and	ares_op$REPLY   (= 2), and	ares_hrd$Ethernet (= 1).Packet format:--------------To communicate mappings from <protocol, address> pairs to 48.bitEthernet addresses, a packet format that embodies the AddressResolution protocol is needed.  The format of the packet follows.    Ethernet transmission layer (not necessarily accessible to	 the user):	48.bit: Ethernet address of destination	48.bit: Ethernet address of sender	16.bit: Protocol type = ether_type$ADDRESS_RESOLUTION    Ethernet packet data:	16.bit: (ar$hrd) Hardware address space (e.g., Ethernet,			 Packet Radio Net.)	16.bit: (ar$pro) Protocol address space.  For Ethernet			 hardware, this is from the set of type			 fields ether_typ$<protocol>.	 8.bit: (ar$hln) byte length of each hardware address	 8.bit: (ar$pln) byte length of each protocol address	16.bit: (ar$op)  opcode (ares_op$REQUEST | ares_op$REPLY)	nbytes: (ar$sha) Hardware address of sender of this			 packet, n from the ar$hln field.	mbytes: (ar$spa) Protocol address of sender of this			 packet, m from the ar$pln field.	nbytes: (ar$tha) Hardware address of target of this			 packet (if known).	mbytes: (ar$tpa) Protocol address of target.Packet Generation:------------------As a packet is sent down through the network layers, routingdetermines the protocol address of the next hop for the packetand on which piece of hardware it expects to find the stationwith the immediate target protocol address.  In the case of the10Mbit Ethernet, address resolution is needed and some lowerlayer (probably the hardware driver) must consult the AddressResolution module (perhaps implemented in the Ethernet supportmodule) to convert the <protocol type, target protocol address>pair to a 48.bit Ethernet address.  The Address Resolution moduletries to find this pair in a table.  If it finds the pair, itgives the corresponding 48.bit Ethernet address back to thecaller (hardware driver) which then transmits the packet.  If itdoes not, it probably informs the caller that it is throwing thepacket away (on the assumption the packet will be retransmittedby a higher network layer), and generates an Ethernet packet witha type field of ether_type$ADDRESS_RESOLUTION.  The AddressResolution module then sets the ar$hrd field toares_hrd$Ethernet, ar$pro to the protocol type that is beingresolved, ar$hln to 6 (the number of bytes in a 48.bit Ethernetaddress), ar$pln to the length of an address in that protocol,ar$op to ares_op$REQUEST, ar$sha with the 48.bit ethernet addressof itself, ar$spa with the protocol address of itself, and ar$tpawith the protocol address of the machine that is trying to beaccessed.  It does not set ar$tha to anything in particular,because it is this value that it is trying to determine.  Itcould set ar$tha to the broadcast address for the hardware (allones in the case of the 10Mbit Ethernet) if that makes itconvenient for some aspect of the implementation.  It then causesthis packet to be broadcast to all stations on the Ethernet cableoriginally determined by the routing mechanism.Packet Reception:-----------------When an address resolution packet is received, the receivingEthernet module gives the packet to the Address Resolution modulewhich goes through an algorithm similar to the following.Negative conditionals indicate an end of processing and adiscarding of the packet.?Do I have the hardware type in ar$hrd?Yes: (almost definitely)  [optionally check the hardware length ar$hln]  ?Do I speak the protocol in ar$pro?  Yes:    [optionally check the protocol length ar$pln]    Merge_flag := false    If the pair <protocol type, sender protocol address> is        already in my translation table, update the sender	hardware address field of the entry with the new	information in the packet and set Merge_flag to true.     ?Am I the target protocol address?    Yes:      If Merge_flag is false, add the triplet <protocol type,          sender protocol address, sender hardware address> to	  the translation table.      ?Is the opcode ares_op$REQUEST?  (NOW look at the opcode!!)      Yes:	Swap hardware and protocol fields, putting the local	    hardware and protocol addresses in the sender fields.	Set the ar$op field to ares_op$REPLY	Send the packet to the (new) target hardware address on	    the same hardware on which the request was received.Notice that the <protocol type, sender protocol address, senderhardware address> triplet is merged into the table before theopcode is looked at.  This is on the assumption that communcationis bidirectional; if A has some reason to talk to B, then B willprobably have some reason to talk to A.  Notice also that if anentry already exists for the <protocol type, sender protocoladdress> pair, then the new hardware address supersedes the oldone.  Related Issues gives some motivation for this.Generalization:  The ar$hrd and ar$hln fields allow this protocol

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -