he history of computer networks can be traced back to the early 1960s, when voice-grade telephone networks dominated the communication networks. With the increasing importance of computers, as well as the ever-increasing expense of centralized mainframe computers that were growing in size, there was a need to decentralize computer systems. This trend also highlighted the need to connect computers together, by means of computer networks, so that their capacity could be shared among geographically distributed users. Unlike the circuit switching telephone networks, where voice is transmitted at a constant rate between sender and receiver, the traffic in computer networks tends to be bursty. To meet the requirements of data communications, people began to invent more efficient and robust networks, i.e., packet switching networks. The first published work on packet-switching techniques was that of Leonard Kleinrock (Kleinrock, 1961, 1964). The first packet-switching computer network called ARPANET was developed in 1969 and then became the ancestor of today’s public Internet (Kurose & Ross, 2001).