rfc2009.txt
来自「中、英文RFC文档大全打包下载完全版 .」· 文本 代码 · 共 1,486 行 · 第 1/5 页
TXT
1,486 行
Imielinski & Navas Experimental [Page 16]RFC 2009 GPS-Based Addressing and Routing November 1996 When a router receives a GPScast packet, it will use the incoming packet's Sender Id as a key into the hashed cache. If this is not the first packet to arrive for this destination and if the timer on the hash table entry has not yet expired, then the hashed cache will return a list of all of the destination addresses to which copies of the packet must be sent. Copies of the packet are sent to all of these destinations and the hash entry's time stamp is updated. If no hash table entry is found (i.e.- this is the first packet encountered for this destination address), then the normal geometry checking routine would take over. A new cache entry is made recording all of the next-hop destination addresses of the GPScast. In this manner, if several other packets with the same GPS destination follow this first packet, the router can use the hash table to look-up the destination base stations instead of calculating it using geometry.3c-iii. Discovering A Router's Service Area When the router is initiated, it will consult its configuration file. One of the items it will find in the file will be the multicast address of the base station group to which all of its child base stations are members. The router will join this group and then send out Service Area Query messages to this multicast group periodically to discover and to refresh its knowledge of its children base stations and the geographical areas serviced by them. Queries are issued infrequently (no more than once every five minutes) so as to keep the IGPSMP overhead on the network very low. However, since the query is issued using unreliable multicast datagrams, there is a chance that some base stations may not receive the query. This is important in two cases: when a child node fails and when a router first boots up. The case of a failed child node will be explained later. However, when a router first boots up, it can issue several queries in a small amount of time in order to guarantee that base stations will receive the query and to, therefore, build up its knowledge about its child base stations quickly. Base stations respond to a Service Area Query by issuing a Service Area Report. This report is issued on the same multicast group address that all of the base stations have joined. The report contains the geographical service area of the base station. In order to avoid a sudden congestion of reports being sent at the same time, each base station will initiate a random delay timer. Only when the timer expires will the base station send its report.Imielinski & Navas Experimental [Page 17]RFC 2009 GPS-Based Addressing and Routing November 1996 For every base station that responds, the router will create an IP tunnel between it and the base station. This tunnel will carry the GPScast packet traffic between the base station and the router. Each responding base station and its geographic area of service will also be included in the router's geometric routing table as a possible destination for GPScast packets. Any base station that does not respond for ten continuous Service Area Queries will be considered unreachable and will be dropped from the routing table.3c-iv. Hierarchical Router Structure and Multicast Groups R5----------------------R6 / \ / \ R1---------R2 R3---------R4 / | \ / | \ / | \ / | \ b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 Figure 3: Two peer routers (R5 and R6) cooperatively servicing four child routers (R1 - R4). For scalability purposes, a hierarchy of routers is used to transport messages from a sender to a receiver. Each layer of peer routers would have its own multicast group address for the exchange of Service Area Queries and Reports between the peer routers. However, routers in distinct subtrees need not know about the routers in other subtrees. Therefore, multicast group addresses will also differ between hierarchy subtrees. See figure 3. For instance, routers R1 and R2 would share a multicast group and would know about each other. At the same time, routers R3 and R4 would share a different multicast group and would know about each other. However, routers R1 and R2 would not know about R3 and R4, and vice versa. But how will the router know the location and number of its peer routers and who its parent router is? As mentioned before, the router consults its configuration file upon start-up. Included in this configuration file will be the the address of its parent router and the multicast group address that the peer routers will use. This peer multicast group address will be used in the same manner as the base station multicast group address. It will be used to send and receive Service Area Queries and Reports between the parent router and the peer routers. There is only one difference. When a router sends a Service Area Report, in addition to reporting its geographical service area, a router will include the multicast address of its children base stations. The reason for this is explained in the router-failure recovery scheme described below.Imielinski & Navas Experimental [Page 18]RFC 2009 GPS-Based Addressing and Routing November 19963c-v. Routing Optimizations The optimization described here attempts to reduce the latency of a GPScast. It does so by reducing the the number of hops a packet must traverse before finding its destination. The intuition behind the idea is this: instead of going to the parent router and then to the sibling, simply go to the sibling directly. As an additional benefit, this method prevents the parent router from becoming a bottleneck or a point of failure in the routing scheme. In this optimization, when a router attempts to determine who will receive the GPS packet, it considers its peer routers as if they were also its children in the routing hierarchy. This means that the router will consider its service area to be the union of the service areas of its children and its peer routers. Also, when the destination polygon intersects the router's service area polygon, the router will forward a copy of the GPScast packet to any child or peer router whose geographic service area contains or touches the packet's GPS destination polygon. However, before it sends a copy of the packet to a peer router, it first finds the polygon: P = D /\ S where D stands for the packet's destination GPS polygon, S is the polygon representing the service area of the peer router, and P is the polygon that represents the intersection of D and S. The polygon P is substituted for the destination polygon D in the packet and only then is the packet forwarded to the peer router. This is necessary because the peer router will be using that same routing algorithm. Therefore, if the peer router receives a packet with the original destination polygon D, it will also route copies of the packet to all of its qualifying peer routers causing a chain of packet copies being bounced back and forth.3c-vi. Router-Failure Recovery Scheme In the case of a router failure, the system should be able to route around the failed router and continue to service GPScast messages. The responsibility of detecting whether a router has failed or not falls to the parent router. Using Figure 3 as an example router hierarchy, the parent router R5 periodically sends out Service Area Query IGPSMP messages on its children's multicast group address. Thus, the child routers R1 and R2 will both receive this query. Normally, both routers will respond with a Service Area Report message. This message contains a polygon describing their service areas and the multicast group address of their children.Imielinski & Navas Experimental [Page 19]RFC 2009 GPS-Based Addressing and Routing November 1996 However, if a router, R1, does not respond to ten continuous queries, then it must be considered to have failed. Upon detecting this, the parent router R5 will send a Set Service Area message to the child router, R2 telling it to assume responsibility for the base stations underneath the failed R1 router. In this Set Service Area message, the parent router includes the multicast group address of R1's children. The R2 router uses this multicast address to learn the service areas and IP addresses of R1's children. The R2 router then issues a Service Area Report advertising its new enlarged service area responsibilities. All peer and parent routers will then update their routing tables to include this new information. When the failed router, R1, restarts, it will declare that it is alive and that it is again servicing its area. All routers will then again update their routing tables. In the case that there is no parent router, such as at the top of the routing hierarchy, then each peer router will keep track of its neighbors. If a neighbor router fails, then the first neighbor router to declare that it is taking over the base stations for the failed router will take responsibility. The rest continues as before.3c-vii. Domain Name Service Issues Domain Name Servers (DNS) could be used to facilitate the use of GPS geographic addressing for sites of interest. The aim is to describe specific geographic sites in a more natural and real-world manner using a postal-service like addressing method. Essentially, the DNS would resolve a postal-service like address, such as City_Hall.New_York_City.New_York, into the IP address of the GPS router responsible for that site. The GPS router would then route the message to all available recipients in the site. The DNS would be used when a message is sent using the site-code.city-code.state-code.country-code addressing scheme. The DNS would evaluate the address in reverse starting with the country code, then the state code, etc. This is the same method used currently by the IP DNS service to return IP addresses based on the country or geographic domains.Imielinski & Navas Experimental [Page 20]RFC 2009 GPS-Based Addressing and Routing November 19964. Router Daemon and Host Library4a. GPS Address Library - SendToGPS() A library for GPS address routing will be constructed. The main routines contained in this library will be the SendToGPS() and RecvFromGPS() commands. SendToGPS() has the following syntax: SendToGPS(int socket, GPS-Address *address, char *message, int size) where socket is a previously created datagram socket, address is a filled GPS-Address structure with the following form: typedef _GPS-Address { enum { point, circle, polygon } type; char *mail-address; struct { enum { North, South, West, East } dir; int hours, minutes, seconds; } *points; } GPS-Address; and message and size specify the actual message and its size. The SendToGPS() routine will take the GPS-addressed message, encapsulate it in an IP packet, and then send it as a normal IP datagram. The message is encapsulated in the following manner: -------------------------------------------------------- | IP Header with destination address set to 240.0.0.0 | -------------------------------------------------------- | Sender Identifier | -------------------------------------------------------- | Address Type - Circle|Polygon | -------------------------------------------------------- | Actual GPS Address (see below) | -------------------------------------------------------- | Body of Message | -------------------------------------------------------- where the Sender Identifier would consist of a combination of the sender's process id, host IP address, and the center of the destination polygon. The Actual Address would be one of the following: circle - single GPS address and range measured in centiminutes.Imielinski & Navas Experimental [Page 21]RFC 2009 GPS-Based Addressing and Routing November 1996 polygon - list of GPS addresses terminated by the impossible address: N 255 255 255. RecvFromGPS() has the following syntax: RecvFromGPS(int socket,GPS-Address *address,char *message,int size) where socket is a previously created datagram socket, address is an empty GPS-Address structure, and message and size specify message buffer and its size.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?