HA_2_5_1 - Valid sequence number A=1 SN(1st=15, 2nd=16)
Router
NUT
|
--------+-------+---------------+------- Link0
| |
R0 MN0
|
--------+-------+-------+------- Link0X
| |
R0X MN0X
|
--------+-------+------- Link0Y
|
MN0Y
Link0 global 3ffe:501:ffff:100::/64 home link Link0X global 3ffe:501:ffff:1100::/64 foreign link Link0Y global 3ffe:501:ffff:2100::/64 foreign link R0 (Link0) global 3ffe:501:ffff:100::a0a0 ether 00:00:00:00:a0:a0 MN0 global 3ffe:501:ffff:100:200:ff:fe00:a2a2 home address MN0X global 3ffe:501:ffff:1100:200:ff:fe00:a2a2 care-of address MN0Y global 3ffe:501:ffff:2100:200:ff:fe00:a2a2 care-of address
Check Link0 routing tableNUT (Link0) MN0X MN0Y | | | | <---- | | Echo Request | ----> | | Echo Reply | | | | <------------ | Echo Request | ------------> | Echo Reply | | |
1. MN0X sends Echo Request 2. MN0X receives Echo Reply 3. MN0Y sends Echo Request 4. MN0Y receives Echo Reply
Check sequence number comparisonNUT (Link0) MN0X MN0Y | | | | <---- | | BU (SN=15, A=1, lifetime=0x0010) (SPI=0x101) | ----> | | BA (SN=15) (SPI=0x102) (*1) | | | | <---- | | Echo Request w/ HaO | ----> | | Echo Reply w/ RH (*2) | | | | <------------ | BU (SN=16, A=1, lifetime=0x0010) (SPI=0x101) | ------------> | BA (SN=16) (SPI=0x102) (*3) | | | | <------------ | Echo Request w/ HaO | ------------> | Echo Reply w/ RH (*4) | | |
1. MN0X sends BU packet format is: Binding_Update_message_format_from_MN_to_HA_ESP.gif 2. MN0X receives BA (*1) packet format is: Binding_Acknowledgement_message_format_from_HA_toMN_ESP.gif 3. MN0X sends Echo Request w/ HaO 4. MN0X receives Echo Reply w/ RH (*2) 5. MN0Y sends BU packet format is: Binding_Update_message_format_from_MN_to_HA_ESP.gif 6. MN0Y receives BA (*3) packet format is: Binding_Acknowledgement_message_format_from_HA_toMN_ESP.gif 7. MN0Y sends Echo Request w/ HaO 8. MN0Y receives Echo Reply w/ RH (*4)
(*1) PASS: MN0X receives BA (*2) PASS: MN0X receives Echo Reply w/ RH (*3) PASS: MN0Y receives BA (*4) PASS: MN0Y receives Echo Reply w/ RH
Before accepting a Binding Update, the receiving node MUST validate the Binding Update according to the following tests:o The packet MUST contain a unicast routable home address, either in the Home Address option or in the Source Address, if the Home Address option is not present.o The Sequence Number field in the Binding Update is greater than the Sequence Number received in the previous valid Binding Update for this home address, if any.If the receiving node has no Binding Cache entry for the indicated home address, it MUST accept any Sequence Number value in a received Binding Update from this mobile node.This Sequence Number comparison MUST be performed modulo 2**16, i.e., the number is a free running counter represented modulo 65536. A Sequence Number in a received Binding Update is considered less than or equal to the last received number if its value lies in the range of the last received number and the preceding 32768 values, inclusive. For example, if the last received sequence number was 15, then messages with sequence numbers 0 through 15, as well as 32783 through 65535, would be considered less than or equal.