?? rfc826.txt
字號:
組織:中國互動出版網(wǎng)(http://www.china-pub.com/)
RFC文檔中文翻譯計劃(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
譯者:沈進 (simon_shen shen_jin@263.net)
譯文發(fā)布時間:2001-9-6
版權:本中文翻譯文檔版權歸中國互動出版網(wǎng)所有。可以用于非商業(yè)用途自由轉載,但必須
保留本文檔的翻譯及版權信息。
Network Working Group David C. Plummer
Request For Comments: 826 (DCP@MIT-MC)
November 1982
以太網(wǎng)地址轉換協(xié)議或轉換網(wǎng)絡協(xié)議地址
為48比特以太網(wǎng)地址用于在以太網(wǎng)硬件上傳輸
(RFC826——An Ethernet Address Resolution Protocol or Converting Network Protocol
Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware)
目錄
1.摘要 1
2.說明 3
3.問題 5
4.動機 5
5.定義 5
6.包格式 6
7.發(fā)包 6
8.收包 7
9.為什么這么做 7
10.網(wǎng)絡監(jiān)控和排錯 8
11.一個例子 9
12.相關情況 9
1.摘要
通過路由機制,協(xié)議P在發(fā)送主機S上的實現(xiàn)決定了S需要傳輸?shù)侥繕酥鳈CT,而T連
在和S相連的10兆以太網(wǎng)電纜上。實際傳輸以太網(wǎng)包必須產(chǎn)生一個48比特以太網(wǎng)地址。主
機的協(xié)議P地址并不總是和相應的以太網(wǎng)地址兼容(長度或值不同)。現(xiàn)在這個協(xié)議允許動態(tài)
地發(fā)布
信息,這些信息可用來構造轉換協(xié)議P地址空間內的地址A為48比特以太網(wǎng)地址的一張表。
允許在非10兆以太網(wǎng)硬件使用的協(xié)議已經(jīng)被綜合總結,無線電網(wǎng)絡就是這種硬件。
[這篇RFC的目的是提出一種轉換協(xié)議地址(例如IP地址)為本地網(wǎng)絡地址(例如以太網(wǎng)地
址)的方法。這個問題現(xiàn)在受到ARPA Internet社區(qū)的普遍關注,這里提出的方法僅供讀者
參考,并不是Internet標準的描述。]
2.說明
這個協(xié)議起初是為DEC/Intel/Xerox的10兆以太網(wǎng)設計的,現(xiàn)在已允許用在其它類型的
網(wǎng)絡上。許多討論將直接針對10兆以太網(wǎng)。總之,合適的話將遵循以太網(wǎng)的特定討論。
DOD Internet協(xié)議將作為Internet的規(guī)范被參考。
這里用到的數(shù)字,在以太網(wǎng)標準中是高位字節(jié)在前的,這和例如PDP-11,VAX等機器的
字節(jié)編址相反,因此對下面描述的操作字段(ar$op)必須特別小心。
需要處理硬件名字空間已達成一致。直到官方認可,請求可發(fā)送到
David C. Plummer
Symbolics, Inc.
243 Vassar Street
Cambridge, Massachusetts 02139
或發(fā)郵件到DCP@MIT-MC。
3.問題
世界總的來說是雜亂的,同時網(wǎng)絡增加了這種雜亂。幾乎在網(wǎng)絡架構的每一層,都有
幾個潛在的協(xié)議可以使用。例如在高一點的層次有用于遠程登錄的TELNET和SUPDUP。低一
點的有CHAOS,DOD TCP,Xerox,BSP或DECnet等可靠字節(jié)流協(xié)議。甚至在與硬件較接近的
邏輯傳輸層也有CHAOS,DOD Internet,Xerox PUP,DECnet等協(xié)議。10兆以太網(wǎng)通過使用
以太網(wǎng)包頭中的類型字段來使這些協(xié)議(而且更多)能在一根電纜上共存。然而,10兆以太
網(wǎng)在物理電纜上需要48比特地址,而大多數(shù)協(xié)議地址不是48比特,它們并不需要與硬件的
48比特以太網(wǎng)地址有什么關系。例如CHAOS的地址是16比特,DOD Internet的地址是32
比特,Xerox PUP的地址是8比特。這就需要一個協(xié)議來動態(tài)地區(qū)分一個<協(xié)議,地址>對和
一個48比特以太網(wǎng)地址的對應關系。
4.動機
隨著更多的制造商提供遵循DEC,Intel和Xerox發(fā)布的規(guī)范的接口產(chǎn)品,10兆以太網(wǎng)
的使用也在增加。隨著使用的增加,為這個接口開發(fā)的軟件也越來越多。有兩個選擇:(1)
每個實現(xiàn)者用自己的方法做某種形式的地址轉換;(2)每個實現(xiàn)者使用統(tǒng)一標準,這樣代碼
可以不加修改的移植到其它系統(tǒng)。這個建議試圖建立一個標準。
5.定義
下面的定義是作為對填在以太網(wǎng)包頭的類型字段的值的參考。
ether_type$XEROX_PUP,
ether_type$DOD_INTERNET,
ether_type$CHAOS,
一個新的值
ether_type$ADDRESS_RESOLUTION
再定義以下的值(后面討論)
ares_op$REQUEST (= 1, 高位字節(jié)在前) 和
ares_op$REPLY (= 2), 和
ares_hrd$Ethernet (= 1).
6.包格式
為了把<協(xié)議,地址>對映射到48比特以太網(wǎng)地址用于傳輸,需要一個體現(xiàn)地址轉換協(xié)
議的包格式。包格式如下所示。
以太網(wǎng)傳輸層(并不是用戶需要訪問的):
48比特:目的以太網(wǎng)地址
48比特:源以太網(wǎng)地址
16比特:協(xié)議類型 = ether_type$ADDRESS_RESOLUTION
以太網(wǎng)包數(shù)據(jù):
16比特:(ar$hrd)硬件地址空間(例如:Ethernet,Packet Radio Net。)
16比特:(ar$pro)協(xié)議地址空間。對于以太網(wǎng)硬件,它屬于類型字段ether_type$<協(xié)
議>的集合
8比特:(ar$hln)每種硬件地址的字節(jié)長度
8比特:(ar$pln)每種協(xié)議地址的字節(jié)長度
16比特:(ar$op)操作碼(ares_op$REQUEST | ares_op$REPLY)
n字節(jié):(ar$sha)源硬件地址,n從ar$hln字段得到
m字節(jié):(ar$spa)源協(xié)議地址,m從ar$pln字段得到
n字節(jié):(ar$tha)目的硬件地址(如果知道的話)
m字節(jié):(ar$tpa)目的協(xié)議地址。
7.發(fā)包
當網(wǎng)絡層往下傳來一個包,路由將決定這個包下一跳的協(xié)議地址,并根據(jù)目的協(xié)議地
址決定用哪個硬件進行傳輸。在10兆以太網(wǎng)需要地址轉換。一些更低的層次(像硬件驅動層
)必須咨詢地址轉換模塊(也許在以太網(wǎng)支持模塊中實現(xiàn))把<協(xié)議類型,目的協(xié)議地址>對轉
換成48比特以太網(wǎng)地址。地址轉換模塊試圖在一個表中尋找這個對。如果找到,則返回相
應的48比特以太網(wǎng)地址給調用者(硬件驅動層)。如果找不到,也許應通知調用者這個包正
在被丟棄(假定包會被高層重傳),同時發(fā)出一個類型字段為ether_type$ADDRESS_RESOLUTI
ON的以太網(wǎng)包。地址轉換模塊在ar$hrd字段中填ares_hrd$Ethernet,在ar$pro字段中填
要被轉換的協(xié)議類型,在ar$hln字段中填6(48比特以太網(wǎng)地址字節(jié)數(shù)),在ar$pln字段中
填該協(xié)議地址的字節(jié)數(shù),在ar$op字段中填ares_op$REQUEST,在ar$sha字段中填自己的48
比特以太網(wǎng)地址,在ar$spa字段中填自己的協(xié)議地址,在ar$tpa字段中填要訪問機器的協(xié)
議地址。不能在ar$tha字段中填特殊的值,因為它的值正是要得到的。如果實現(xiàn)上簡單的話,
ar$tpa字段可以填硬件的廣播地址(在10兆以太網(wǎng)上所有機器)。根據(jù)原先的路由機制,這
個包將被廣播到所有在以太網(wǎng)電纜上的工作站。
8.收包
當收到地址轉換包時,收包模塊把它送到運行類似下面算法的地址轉換模塊。條件不
成立意味著處理結束,并丟棄包。
?我用ar$hrd字段中的硬件嗎?
是的:(幾乎肯定)
[檢查ar$hln的硬件地址長度(可選)]
?我用ar$pro字段中的協(xié)議嗎?
是的:
[檢查ar$pln的協(xié)議地址長度(可選)]
Merge_flag := false
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -