| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Dynamic Address Resolution Caching and Efficiency Issues (Page 2 of 2) Other Enhancements to Dynamic Resolution Other enhancements are also possible to the basic dynamic resolution scheme. Let's consider again our example of sending a request to the Internet. We send a request that needs to go to our local router, so we resolve its address and send it the request. A moment later the reply comes back to the router to be sent to us, so the router needs our address. Thus, it would have to do a dynamic resolution on us even though we just exchanged frames. Again: stupid. Instead, we can improve efficiency through cross-resolution; when device A resolves the address of device B, device B also adds the entry for device A to its cache. Another improvement can be made too. If you think about it, the devices on a local network are going to talk to each other fairly often, even if they aren't chatting right now. If A is resolving B's network layer address, it will broadcast a frame that devices C, D, E and so on all see. Why not have them also update their cache tables with resolution information that they see, for future use? These and other enhancements all serve to cut down on the efficiency problems with dynamic address resolution. They combine to make dynamic resolution close enough to direct mapping in overall capability that there is no good reason not to use it. Once again, you can see some more particulars of this in the topic that describes the TCP/IP ARP protocol's caching feature. Incidentally, one other performance-improving idea sometimes is brought up in this discussion: instead of preceding a datagram transmission with an extra broadcast step for address resolution, why not just broadcast the datagram and be done with it? We actually could do this, and if the datagram were small enough it would be more efficient. Usually, though, datagrams are large, while resolution frames can be quite compact; it makes sense to do a small broadcast and then a large unicast rather than a large broadcast. Also, suppose we did broadcast this one datagram: what about the next datagram and the one after that? Each of these would then need to be broadcast also. When we do a resolution, with caching, we need to broadcast only once in a while instead of continually.
Home - Table Of Contents - Contact Us The TCP/IP Guide (http://www.TCPIPGuide.com) Version 3.0 - Version Date: September 20, 2005 © Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved. Not responsible for any loss resulting from the use of this site. |