Why are DHCP ACK and REQ messages broadcast in Link Layer?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
2
down vote

favorite












When I look at the protocol, I see that DHCP Request and Acknowledgement are both broadcast in the link layer. However at that point, both sides actually know each other's MAC addresses. Why do they not unicast the messages?







share|improve this question


























    up vote
    2
    down vote

    favorite












    When I look at the protocol, I see that DHCP Request and Acknowledgement are both broadcast in the link layer. However at that point, both sides actually know each other's MAC addresses. Why do they not unicast the messages?







    share|improve this question
























      up vote
      2
      down vote

      favorite









      up vote
      2
      down vote

      favorite











      When I look at the protocol, I see that DHCP Request and Acknowledgement are both broadcast in the link layer. However at that point, both sides actually know each other's MAC addresses. Why do they not unicast the messages?







      share|improve this question














      When I look at the protocol, I see that DHCP Request and Acknowledgement are both broadcast in the link layer. However at that point, both sides actually know each other's MAC addresses. Why do they not unicast the messages?









      share|improve this question













      share|improve this question




      share|improve this question








      edited Aug 18 at 15:13









      jonathanjo

      5,170222




      5,170222










      asked Aug 18 at 14:33









      Ninja Bug

      1575




      1575




















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          5
          down vote



          accepted










          From RFC 2131 "Dynamic Host Configuration Protocol"



          Remembering that there can be multiple DHCP servers, the DHCPREQUEST is broadcast because:




          Those servers not selected by the DHCPREQUEST message use the message as notification that the client has declined that server's offer. [p16]




          Those other servers potentially reserved an address in their pool for this client, and it can be marked as unused if the server knows that the client doesn't want it.



          The DHCPACK is broadcast if the client asks for it (because it's in a partially configured state, or just for its convenience):




          To work around some clients that cannot accept IP unicast datagrams before the TCP/IP software is configured [there is] the BROADCAST (B) flag. [p11]



          If the broadcast bit is not set and [various conditions] then the server unicasts DHCPOFFER and DHCPACK [...] If [other conditions] then the server broadcasts DHCPOFFER and DHCPACK messages [p23]







          share|improve this answer






















          • DHCP Request IP destination address is broadcast as well. Both MAC and IP addresses are broadcasted in the Request, then, is there something in the payload that tells certain DHCP server that it has been chosen and others that they have not been chosen?
            – Ninja Bug
            Aug 18 at 15:13






          • 1




            In the DHCPREQUEST, a non-chosen server sees a requested IP address that it didn't offer, for the given client identifier.
            – jonathanjo
            Aug 18 at 15:21










          Your Answer







          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "496"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: false,
          noModals: false,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          noCode: true, onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fnetworkengineering.stackexchange.com%2fquestions%2f52645%2fwhy-are-dhcp-ack-and-req-messages-broadcast-in-link-layer%23new-answer', 'question_page');

          );

          Post as a guest






























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          5
          down vote



          accepted










          From RFC 2131 "Dynamic Host Configuration Protocol"



          Remembering that there can be multiple DHCP servers, the DHCPREQUEST is broadcast because:




          Those servers not selected by the DHCPREQUEST message use the message as notification that the client has declined that server's offer. [p16]




          Those other servers potentially reserved an address in their pool for this client, and it can be marked as unused if the server knows that the client doesn't want it.



          The DHCPACK is broadcast if the client asks for it (because it's in a partially configured state, or just for its convenience):




          To work around some clients that cannot accept IP unicast datagrams before the TCP/IP software is configured [there is] the BROADCAST (B) flag. [p11]



          If the broadcast bit is not set and [various conditions] then the server unicasts DHCPOFFER and DHCPACK [...] If [other conditions] then the server broadcasts DHCPOFFER and DHCPACK messages [p23]







          share|improve this answer






















          • DHCP Request IP destination address is broadcast as well. Both MAC and IP addresses are broadcasted in the Request, then, is there something in the payload that tells certain DHCP server that it has been chosen and others that they have not been chosen?
            – Ninja Bug
            Aug 18 at 15:13






          • 1




            In the DHCPREQUEST, a non-chosen server sees a requested IP address that it didn't offer, for the given client identifier.
            – jonathanjo
            Aug 18 at 15:21














          up vote
          5
          down vote



          accepted










          From RFC 2131 "Dynamic Host Configuration Protocol"



          Remembering that there can be multiple DHCP servers, the DHCPREQUEST is broadcast because:




          Those servers not selected by the DHCPREQUEST message use the message as notification that the client has declined that server's offer. [p16]




          Those other servers potentially reserved an address in their pool for this client, and it can be marked as unused if the server knows that the client doesn't want it.



          The DHCPACK is broadcast if the client asks for it (because it's in a partially configured state, or just for its convenience):




          To work around some clients that cannot accept IP unicast datagrams before the TCP/IP software is configured [there is] the BROADCAST (B) flag. [p11]



          If the broadcast bit is not set and [various conditions] then the server unicasts DHCPOFFER and DHCPACK [...] If [other conditions] then the server broadcasts DHCPOFFER and DHCPACK messages [p23]







          share|improve this answer






















          • DHCP Request IP destination address is broadcast as well. Both MAC and IP addresses are broadcasted in the Request, then, is there something in the payload that tells certain DHCP server that it has been chosen and others that they have not been chosen?
            – Ninja Bug
            Aug 18 at 15:13






          • 1




            In the DHCPREQUEST, a non-chosen server sees a requested IP address that it didn't offer, for the given client identifier.
            – jonathanjo
            Aug 18 at 15:21












          up vote
          5
          down vote



          accepted







          up vote
          5
          down vote



          accepted






          From RFC 2131 "Dynamic Host Configuration Protocol"



          Remembering that there can be multiple DHCP servers, the DHCPREQUEST is broadcast because:




          Those servers not selected by the DHCPREQUEST message use the message as notification that the client has declined that server's offer. [p16]




          Those other servers potentially reserved an address in their pool for this client, and it can be marked as unused if the server knows that the client doesn't want it.



          The DHCPACK is broadcast if the client asks for it (because it's in a partially configured state, or just for its convenience):




          To work around some clients that cannot accept IP unicast datagrams before the TCP/IP software is configured [there is] the BROADCAST (B) flag. [p11]



          If the broadcast bit is not set and [various conditions] then the server unicasts DHCPOFFER and DHCPACK [...] If [other conditions] then the server broadcasts DHCPOFFER and DHCPACK messages [p23]







          share|improve this answer














          From RFC 2131 "Dynamic Host Configuration Protocol"



          Remembering that there can be multiple DHCP servers, the DHCPREQUEST is broadcast because:




          Those servers not selected by the DHCPREQUEST message use the message as notification that the client has declined that server's offer. [p16]




          Those other servers potentially reserved an address in their pool for this client, and it can be marked as unused if the server knows that the client doesn't want it.



          The DHCPACK is broadcast if the client asks for it (because it's in a partially configured state, or just for its convenience):




          To work around some clients that cannot accept IP unicast datagrams before the TCP/IP software is configured [there is] the BROADCAST (B) flag. [p11]



          If the broadcast bit is not set and [various conditions] then the server unicasts DHCPOFFER and DHCPACK [...] If [other conditions] then the server broadcasts DHCPOFFER and DHCPACK messages [p23]








          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Aug 19 at 10:06

























          answered Aug 18 at 14:50









          jonathanjo

          5,170222




          5,170222











          • DHCP Request IP destination address is broadcast as well. Both MAC and IP addresses are broadcasted in the Request, then, is there something in the payload that tells certain DHCP server that it has been chosen and others that they have not been chosen?
            – Ninja Bug
            Aug 18 at 15:13






          • 1




            In the DHCPREQUEST, a non-chosen server sees a requested IP address that it didn't offer, for the given client identifier.
            – jonathanjo
            Aug 18 at 15:21
















          • DHCP Request IP destination address is broadcast as well. Both MAC and IP addresses are broadcasted in the Request, then, is there something in the payload that tells certain DHCP server that it has been chosen and others that they have not been chosen?
            – Ninja Bug
            Aug 18 at 15:13






          • 1




            In the DHCPREQUEST, a non-chosen server sees a requested IP address that it didn't offer, for the given client identifier.
            – jonathanjo
            Aug 18 at 15:21















          DHCP Request IP destination address is broadcast as well. Both MAC and IP addresses are broadcasted in the Request, then, is there something in the payload that tells certain DHCP server that it has been chosen and others that they have not been chosen?
          – Ninja Bug
          Aug 18 at 15:13




          DHCP Request IP destination address is broadcast as well. Both MAC and IP addresses are broadcasted in the Request, then, is there something in the payload that tells certain DHCP server that it has been chosen and others that they have not been chosen?
          – Ninja Bug
          Aug 18 at 15:13




          1




          1




          In the DHCPREQUEST, a non-chosen server sees a requested IP address that it didn't offer, for the given client identifier.
          – jonathanjo
          Aug 18 at 15:21




          In the DHCPREQUEST, a non-chosen server sees a requested IP address that it didn't offer, for the given client identifier.
          – jonathanjo
          Aug 18 at 15:21

















           

          draft saved


          draft discarded















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fnetworkengineering.stackexchange.com%2fquestions%2f52645%2fwhy-are-dhcp-ack-and-req-messages-broadcast-in-link-layer%23new-answer', 'question_page');

          );

          Post as a guest













































































          Comments

          Popular posts from this blog

          What does second last employer means? [closed]

          Installing NextGIS Connect into QGIS 3?

          One-line joke