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

📄 rfc1329.txt

📁 中、英文RFC文档大全打包下载完全版 .
💻 TXT
📖 第 1 页 / 共 4 页
字号:
RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992 PDU := assemble_dmarp_pdu(dmarp_pdu); output SNAP2_LSSAP.UNITDATA_request(My_S_MAC_addr,Broadcast_HW_addr,  dmarp_QoS,PDU);end;when SNAP1_ARPSAP.UNITDATA_indication(Source_addr,Dest_addr,QoS,PDU)begin output LS_ARPSAP.UNITDATA_indication(Source_addr,Dest_addr,QoS,PDU);end;when SNAP2_ARPSAP.UNITDATA_indication(Source_addr,Dest_addr,QoS,PDU)begin end;when SNAP1_LSSAP.UNITDATA_indication(Source_addr,Dest_addr,QoS,PDU)begin dmarp_pdu := extract_dmarp_pdu(PDU); if ((dmarp_pdu.operation = error) or (dmarp_pdu.operation = reply)) then begin  if my_pr_address(dmarp_pdu.prtype,dmarp_pdu.PR_receiver) then begin   if not H_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) then begin    if not OR_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) then begin     if LS_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) then begin      output LS_System_Access_point.TIMER_cancel(       "Hold_Timer",get_subscript(dmarp_pdu.prtype,dmarp_pdu.HW_1));      create_entry(dmarp_pdu.prtype,dmarp_pdu.HW_1,dmarp_pdu.HW_2,       reset,set,reset,reset,reset,set);     end;     output LS_System_Access_point.TIMER_request(      OR_set_timeout,"OR_Entry_Timer",      get_subscript(dmarp_pdu.prtype,dmarp_pdu.HW_1));     send_pdu.hwtype    := ethernet;     send_pdu.prtype    := dmarp_pdu.prtype;     send_pdu.HW_length := fddi_addr_length;     send_pdu.PR_length := dmarp_pdu.PR_length;     send_pdu.operation := search;     send_pdu.HW_1      := My_P_MAC_addr;     send_pdu.HW_2      := dmarp_pdu.HW_1;     send_pdu.PR_sender := get_my_pr_addr(dmarp_pdu.prtype);     send_pdu.PR_receiver := get_broadcast_addr(dmarp_pdu.prtype);     PDU := assemble_dmarp_pdu(dmarp_pdu);     output SNAP2_LSSAP.UNITDATA_request(      My_S_MAC_addr,Broadcast_HW_addr,dmarp_QoS,PDU);    end else begin     if dmarp_pdu.operation=error then     update_entry(dmarp_pdu.prtype,dmarp_pdu.HW_1,dmarp_pdu.HW_2);    end;   end else beginKuehn                                                          [Page 22]RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992    if dmarp_pdu.operation = error then    update_entry(dmarp_pdu.prtype,dmarp_pdu.HW_1,dmarp_pdu.HW_2);   end;  end else begin   if my_pr_address(dmarp_pdu.prtype,dmarp_pdu.PR_sender) and    (dmarp_pdu.operation = reply) then begin    dmarp_pdu.operation := error;    PDU := assemble_dmarp_pdu(dmarp_pdu);    output SNAP1_LSSAP.UNITDATA_request(     My_P_MAC_addr,Broadcast_HW_addr,dmarp_QoS,PDU);   end else begin    if dmarp_pdu.operation=error and     search_entry(dmarp_pdu.prtype,dmarp_pdu.HW_1) then    update_entry(dmarp_pdu.prtype,dmarp_pdu.HW_1,dmarp_pdu.HW_2);end; end; end; end;when SNAP2_LSSAP.UNITDATA_indication(Source_addr,Dest_addr,QoS,PDU)begin dmarp_pdu := extract_dmarp_pdu(PDU); if (dmarp_pdu.operation = found) and  my_pr_address(dmarp_pdu.prtype,dmarp_pdu.PR_receiver) then begin  if not H_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) then begin   if OR_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) then begin    output LS_System_Access_Point.     TIMER_cancel("OR_Entry_Timer",     get_subscript(dmarp_pdu.prtype,dmarp_pdu.HW_1));   end;   if LS_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) then begin    output LS_System_Access_Point.     TIMER_cancel("Hold_Timer",     get_subscript(dmarp_pdu.prtype,dmarp_pdu.HW_1));   end;   create_entry(dmarp_pdu.prtype,dmarp_pdu.HW_1,dmarp_pdu.HW_2,    set,reset,set,reset,reset,set);   output LS_System_Access_Point.TIMER_request(Query_time,"Query_Timer",    get_subscript(dmarp_pdu.prtype,dmarp_pdu.HW_1));  end; end else begin  if (dmarp_pdu.operation = reply) or   (dmarp_pdu.operation = request) then begin   if search_entry(dmarp_pdu.prtype,dmarp_pdu.HW_1) then    update_entry(dmarp_pdu.prtype,dmarp_pdu.HW_1,dmarp_pdu.HW_2);  end;  if (dmarp_pdu.operation=request) and   my_pr_address(dmarp_pdu.prtype,dmarp_pdu.PR_receiver) then begin   send_pdu.hwtype      := dmarp_pdu.hwtype;   send_pdu.prtype      := dmarp_pdu.prtype;Kuehn                                                          [Page 23]RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992   send_pdu.HW_length   := fddi_addr_length;   send_pdu.PR_length   := dmarp_pdu.PR_length;   send_pdu.operation   := reply;   send_pdu.HW_1        := My_P_MAC_addr;   send_pdu.HW_2        := My_S_MAC_addr;   send_pdu.PR_sender   := get_my_pr_addr(dmarp_pdu.prtype);   send_pdu.PR_receiver := dmarp_pdu.PR_sender;   PDU := assemble_dmarp_pdu(dmarp_pdu);   output SNAP2_LSSAP.UNITDATA_request(    My_S_MAC_addr,Broadcast_HW_addr,dmarp_QoS,PDU);  end else begin   if my_pr_address(dmarp_pdu.prtype,dmarp_pdu.pr_receiver) then begin    case dmarp_pdu.operation of     reply: begin      if not ( OR_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) or       LS_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) )then begin       create_entry(dmarp_pdu.prtype,dmarp_pdu.HW_1,dmarp_pdu.HW_2,        set,reset,reset,reset,reset,set);       output LS_System_Access_Point.TIMER_request(Hold_time,        "Hold_Timer",get_subscript(dmarp_pdu.prtype,dmarp_pdu.HW_1));      end;     end;     error: begin      if not ( OR_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) or       H_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) ) then begin       if LS_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) then       output LS_System_access_point.TIMER_cancel(        "Hold_Timer",get_subscript(dmarp_pdu.prtype,dmarp_pdu.HW_1));       create_entry(dmarp_pdu.prtype,dmarp_pdu.HW_1,dmarp_pdu.HW_2,        reset,set,reset,reset,reset,set);       output LS_System_access_point.TIMER_request(        OR_set_timeout,"OR_Entry_Timer",        get_subscript(dmarp_pdu.prtype,dmarp_pdu.HW_1));       send_pdu.hwtype          := ethernet;       send_pdu.prtype          := dmarp_pdu.prtype;       send_pdu.HW_length       := fddi_addr_length;       send_pdu.PR_length       := dmarp_pdu.PR_length;       send_pdu.operation       := search;       send_pdu.HW_1            := My_P_MAC_addr;       send_pdu.HW_2            := dmarp_pdu.HW_1;       send_pdu.PR_sender       := get_my_pr_addr(dmarp_pdu.prtype);       send_pdu.PR_receiver     := get_broadcast_addr(dmarp_pdu.prtype);       PDU := assemble_dmarp_pdu(dmarp_pdu);       output SNAP2_LSSAP.UNITDATA_request(        My_S_MAC_addr,Broadcast_HW_addr,dmarp_QoS,PDU);      end;     end;Kuehn                                                          [Page 24]RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992     search: begin      if not (dmarp_pdu.HW_1=My_P_MAC_addr or       dmarp_pdu.HW_2=My_P_MAC_addr) then begin       if H_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) and        H_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_2) then begin        send_pdu.hwtype      := ethernet;        send_pdu.prtype      := dmarp_pdu.prtype;        send_pdu.HW_length   := fddi_addr_length;        send_pdu.PR_length   := dmarp_pdu.PR_length;        send_pdu.operation   := found;        send_pdu.HW_1        := dmarp_pdu.HW_2;        send_pdu.HW_2        := get_S_MAC_addr(dmarp_pdu.prtype,                                 dmarp_pdu.HW_2);        send_pdu.PR_sender   := get_my_pr_addr(dmarp_pdu.prtype);        send_pdu.PR_receiver := get_broadcast_addr(dmarp_pdu.prtype);        PDU := assemble_dmarp_pdu(send_pdu);        output SNAP2_LSSAP.UNITDATA_request(My_S_MAC_addr,         get_S_MAC_addr(dmarp_pdu.prtype,dmarp_pdu.HW_1),dmarp_QoS,PDU);        send_pdu.HW_1 := dmarp_pdu.HW_1;        send_pdu.HW_2 := get_S_MAC_addr(dmarp_pdu.prtype,         dmarp_pdu.HW_1);        PDU := assemble_dmarp_pdu(send_pdu);        output SNAP2_LSSAP.UNITDATA_request(My_S_MAC_addr,         get_S_MAC_addr(dmarp_pdu.prtype,dmarp_pdu.HW_2),dmarp_QoS,PDU);       end;      end;     end;     Query: begin      if dmarp_pdu.HW_2 = My_P_MAC_addr then begin       send_pdu.hwtype          := ethernet;       send_pdu.prtype          := dmarp_pdu.prtype;       send_pdu.HW_length       := dmarp_pdu.HW_length;       send_pdu.PR_length       := dmarp_pdu.PR_length;       send_pdu.operation       := hold;       send_pdu.HW_1            := My_P_MAC_addr;       send_pdu.HW_2            := My_S_MAC_addr;       send_pdu.PR_sender       := get_my_pr_addr(dmarp_pdu.prtype);       send_pdu.PR_receiver     := dmarp_pdu.PR_sender;       PDU := assemble_dmarp_pdu(send_pdu);       output SNAP2_LSSAP.UNITDATA_request(        My_S_MAC_addr,dmarp_pdu.HW_1,dmarp_QoS,PDU);      end;     end;     Hold: begin      if H_bit_set(dmarp_pdu.prtype,dmarp_pdu.HW_1) then      reset_Q_bit(dmarp_pdu.prtype,dmarp_pdu.HW_1);Kuehn                                                          [Page 25]RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992     end;    end;   end;  end; end;end;when LS_System_Access_Point.TIMER_response(Timer_name,subscript) begincase Timer_name of "OR_Entry_Timer": begin  act_P_MAC_addr := get_P_MAC_addr(subscript);  if OR_bit_set(get_pr_type(subscript),act_P_MAC_addr) then begin   send_pdu.hwtype      := ethernet;   send_pdu.prtype      := get_pr_type(subscript);   send_pdu.HW_length   := fddi_addr_length;   send_pdu.PR_length   := get_pr_length(send_pdu.prtype);   send_pdu.operation   := request;   send_pdu.HW_1        := My_P_MAC_addr;   send_pdu.HW_2        := My_S_MAC_addr;   send_pdu.PR_sender   := get_my_pr_addr(send_pdu.prtype);   send_pdu.PR_receiver := get_broadcast_addr(send_pdu.prtype);   PDU := assemble_dmarp_pdu(send_pdu);   output SNAP2_LSSAP.UNITDATA_request(    My_S_MAC_addr,get_S_MAC_addr(send_pdu.prtype,act_P_MAC_addr),    dmarp_QoS,PDU);   delete_entry(subscript);  end; end; "Hold_Timer": begin  act_P_MAC_addr := get_P_MAC_addr(subscript);  if (not H_bit_set(get_pr_type(subscript),act_P_MAC_addr)) and   LS_bit_set(get_pr_type(subscript),act_P_MAC_addr) then begin   set_H_bit(get_pr_type(subscript),act_P_MAC_addr);   output LS_System_Access_point.TIMER_request(    Query_time,"Query_Timer",subscript);  end; end; "Query_Timer": begin  act_P_MAC_addr       := get_P_MAC_addr(subscript);  send_pdu.hwtype      := ethernet;  send_pdu.prtype      := get_pr_type(subscript);  send_pdu.HW_length   := fddi_addr_length;  send_pdu.PR_length   := get_pr_length(send_pdu.prtype);  send_pdu.PR_sender   := get_my_pr_addr(send_pdu.prtype);  send_pdu.PR_receiver := get_broadcast_addr(send_pdu.prtype);  if Q_bit_set(get_pr_type(subscript),act_P_MAC_addr) then begin   send_pdu.HW_1      := My_P_MAC_addr;Kuehn                                                          [Page 26]RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992   send_pdu.HW_2      := My_S_MAC_addr;   send_pdu.operation := request;   PDU := assemble_dmarp_pdu(send_pdu);   output SNAP2_LSSAP.UNITDATA_request(    My_S_MAC_addr,get_S_MAC_addr(send_pdu.prtype,act_P_MAC_addr),    dmarp_QoS,PDU);   delete_entry(subscript);  end else begin   send_pdu.HW_1      := My_S_MAC_addr;   send_pdu.HW_2      := get_P_MAC_addr(subscript);   send_pdu.operation := query;   PDU := assemble_dmarp_pdu(send_pdu);   output SNAP2_LSSAP.UNITDATA_request(    My_S_MAC_addr,get_S_MAC_addr(send_pdu.prtype,send_pdu.HW_2),    dmarp_QoS,PDU);   set_Q_bit(send_pdu.prtype,send_pdu.HW_2);end; end; end; end; end; (* body *)11. Summary   The introduction of the load sharing layer in the protocol layering   of the dual MAC stations allows the application of IP and ARP on   inhomogeneous FDDI rings. The protocol suite of single MAC stations   needs no modification.   By the load sharing layer, the property "dual MAC" is transparent for   ARP, IP and the higher layer protocols.   In dual MAC stations, any load sharing criteria may be implemented in   the multiplexer of the load sharing entity.  The conversion of   addresses, the exchange of address and reachability information   between dual MAC stations and the proper transmission of multicast   and broadcast frames is taken upon by the load sharing entity.12. References    [1] ANSI, "FDDI Station Management (SMT)", ANSI        X3T9/90-X3T9.5/84-49 Rev 6.2, May 1990.    [2] ANSI, "FDDI Media Access Control (MAC-2)",        X3T9/90-X3T9.5/88-139 Rev 3.2, June 1990.    [3] ISO, "Information processing systems- Local area networks-        Part 2: Logical link control", ISO 8802-2:1989, August 1989.    [4] IEEE, "Draft Standard P802.1A Overview and Architecture",        P802.1A/D9-89/74, September 1989.Kuehn                                                          [Page 27]RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992    [5] Plummer, C., "An Ethernet Address Resolution Protocol --or--        Converting Network Protocol Addresses to 48.bit Ethernet        Address for Transmission on Ethernet Hardware", RFC 826, MIT,        November 1982.    [6] Reynolds, J., and Postel, J., "Assigned Numbers", RFC 1060,        USC/Information Sciences Institute, March 1990.    [7] Postel, J., "Internet Protocol", RFC 791, USC/Information        Sciences Institute, September 1981.    [8] Katz, D., "A Proposed Standard for the Transmission of IP        Datagrams over FDDI Networks", RFC 1188, Merit/NSFNET,        October 1990.    [9] Internet Engineering Task Force, Braden, R., Editor,        "Requirements for Internet Hosts -- Communication Layers",        RFC 1122, IETF, October 1989.   [10] Katz, D., "The Use of Connectionless Network Layer Protocols        over FDDI Networks", Merit/NSFNET, 1990.13.  Security Considerations   Security issues are not discussed in this memo.14. Author's Address   Peter Kuehn   Raiffeisenstrasse 9b   8933 Untermeitingen   Germany   Phone: .. 82 32 / 7 46 02   EMail: thimmela@sniabg.wa.sni.deKuehn                                                          [Page 28]

⌨️ 快捷键说明

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