|MadSci Network: Computer Science|
Hey there P.Karthik! I'll answer your questions in reverse order. First, all data packets sent over a network like the Internet have equal priority. You'll have better throughput if you're using a faster connection which sends more packets in the same time period, but the packets themselves can't be "ranked". That kind of priority assignment would be very difficult to manage and much too easily abused. Clearly, it's impossible to ensure that the packets sent from one computer to another will arrive in the correct order. So a packet assembler/disassembler on each end handles the task of sequentially numbering the packets before they're sent, and reassembling them in the correct order after they're received. If any packets are missing or delayed, the receiving host may send specific requests for those packets to the originating host. If any packets take too long to arrive, as in the case of streaming audio or video, the receiving host may simply ignore them, resulting in loss of resolution. The amount of data loss which will be tolerated depends on the application receiving the data-- for example, RealAudio allows a large percentage of lost data, while an FTP download requires all data to be intact and may thus take longer to complete. The route taken by a packet through the network is determined by the various routers (historically known as "gateways"), bridges, and hosts on the network. These devices store information on the shortest paths between locations within their home networks, and routinely trade information about the reachability and cost/metric (e.g., number of point-to-point hops) of other networks. Most of this data is gathered automatically, and network measurements take priority over geographical location, which is why you might see your packets travelling over a fast connection from Los Angeles to Salt Lake City to San Francisco, instead of directly from LA to SF over a much slower connection. (You can use the Unix program "traceroute" to see the exact path your packets follow from one host to another.) Since most of this routing information is collected without human intervention, and networks can go down without warning, it's possible for networks to become unreachable. In that case, a system administrator can manually update his network's routing tables to try to specify a viable route to other networks. Normally, though, this practice is inefficient because it's impossible for a human to measure network statistics as quickly or precisely as an electronic device. Hope this helps! CKL not a pinging aardvark
Try the links in the MadSci Library for more information on Computer Science.