Thursday, October 17, 2019
Finance- Israel Stock Exchange Essay Example | Topics and Well Written Essays - 500 words
Finance- Israel Stock Exchange - Essay Example Globes, Israel Business Arena is one of the leading business publications in Israel. This article reports on a the Deloitte 2010 Global Venture Capital Survey, carried out in conjunction with venture capital associations around the world. The headline captures the negative results of the survey and the bad news for the Israeli stock market. The survey found that the majority of venture capital firms were looking first and foremost to increase their foreign investment in China (27%) and then India (14%). The article does not contain the precise numbers for Israel but notes that interest has fallen since 2009. Commenting on the results, Igal Brightman CPA, chairman and CEO of Deloitte Brightman Almagor Zohar & Co.and managing partner of the TMT group in Deloitte, said, "The migration of venture capital eastward indicates that the global high-tech industry is seeking new growth opportunities. The main indicators in the Israeli economy, among them accession to the OECD, the fall in the shekel-dollar exchange rate and the rise in salary levels, make Israel less attractive in comparison with the alternatives." This is very bad news for the Israeli economy as foreign venture capital investment, particularly in the hi-tech sector has been a key engine of growth in the Israeli economy and stock market in the past. Daniel, Robert, (November 8, 2010) ââ¬Å"Market Watch: Israel stocks fall; gas firms hit by tax reportsâ⬠. The Wall Street Journal Digital Network. Web. http://www.marketwatch.com/story/israel-stocks-fall-tax-reports-hit-gas-firms-2010-11-08. This article reports on a slight decline in the Israeli stock market on Monday, November 8, 2010. However, more substantively it identifies factors underlying the drop in, and poor prospects for the future in the natural gas sector and the telecom sector. The article reports that the Israeli government is considering a new financial arrangements with natural gas producers. ââ¬Å"A government committee is planning to
Choose a good topic for me Essay Example | Topics and Well Written Essays - 1000 words
Choose a good topic for me - Essay Example Overview The first group that would have to be met is Plant XYZââ¬â¢s personnel as meetings with the plant managers, staff, and associates are set up to get a feel of the problem. After the meeting this group, namely, the administration, would follow the main aim of becoming familiar with the functions of the plantââ¬â¢s business, its systems, and methods of reporting used (Ranier 23). Concerning the business side of the operation, it would be prudent to begin by seeking to address the immediate support and needs initiatives that are already in progress, as well as identifying the opportunities presented and the areas that need action. Next, the partnership side of Plant XYZââ¬â¢s operation would have to be reviewed, which necessitates meetings and assessing customers and business relationships. For this, both external and internal partnerships will be considered. Finally, a meeting with the team is on the cards with focus directed on the plantââ¬â¢s leadership, as well a s the building of a rapport with the entire team and the companyââ¬â¢s clients (Ranier 24). Personnel As far as Plant XYZââ¬â¢s personnel are concerned, it would be prudent to review them as well as their functions. Through an organizational chart, it is possible to assess the depth inherent within the various departments (Ranier 25). In the period given for coming up with the action plan, time should be taken to become familiar with the capability and functions of the plantââ¬â¢s staff. On top of this, there needs to be a review of key personnel procedures, as well as policies. Finally, an in-depth review of payroll processes and functions is to be carried out. Administration For the administrative side of the company, the first item on the agenda is the review of all responsibilities and duties of each position. During this exercise, observation of the roles and functions of the staff is to be made, in addition to an endeavor of understanding these roles and functions (Ra nier 37). To do this, it is prudent to attend all meetings held by various departments, as well as a solicitation of feedback on the opportunities and strengths that these departments feel are vital for the companyââ¬â¢s growth. Finally, a review of the companyââ¬â¢s budget, as well as processes of forecasting needs to be carried out. Business For the business side of operations, a comprehensive review of the functions and processes of financial reporting will be carried out in the first ninety days. This will be supplemented by a correspondingly wide-range review of the processes of forecasting and budgeting (Ranier 39). A review of the companyââ¬â¢s metrics of performance and reporting will also be carried out, coupled with the solicitation of feedback from every department at the plant concerning perceived opportunities. Finally, in order to get a feel of the goings on, participation in all meetings that discuss business operations will be essential. Partnerships A compr ehensive review of all inter-departmental functions and roles will be carried out during the first ninety days. This will be followed by a review of financials for every department and its contributions to the operations of the plant. I will also attend every meeting held by various departments and make contributions during the dialogue session. In addition, an enhancement of communications between departments will be vital to creating a sense of mission and this will be given importance (Ranier 67).
Wednesday, October 16, 2019
Earthquakes at Home Essay Example | Topics and Well Written Essays - 750 words
Earthquakes at Home - Essay Example There are also some degrees of distribution in the mid-South region, but the principal areas of high risk, which show up red on the map, tend to be located in the equivalent of the states of California, Oregon, and Washington (Science, 2010). These areas also appear to extend into the nation of Mexico. #2 Where I live, in Erie, Pennsylvania, is gray on the map of earthquake risk, meaning it has a low risk (Science, 2010). It is not near any major fault lines, so it is relatively safe from earthquakes. There are occasionally small earthquakes around Erie, but they only extremely rarely get above 3 magnitude, cause any damage, or result in any injury or destruction. #3 The earthquakes around the world seem unevenly distributed according to the map of the last weekââ¬â¢s earthquakes. The predominant amount of earthquakes have occurred in the Pacific Rim; many of these are in East Asia and Southeast Asia (Latest, 2010). This is not surprising to me, because these areas are known to have a high earthquake risk. I have heard a lot about very bad earthquakes happening in Japan and China. #5 I have visited some of the red areas on the map, including spots in California and Mexico. In California, the real estate where I was, is too expensive for me to consider living there. I also do not want to move to Mexico, because I donââ¬â¢t speak fluent Spanish. However, I would be willing to live in a red earthquake risk area, if I had enough income to do so in California or, if I learned Spanish and also had a better job and income, in Mexico. I would assume that especially in the US, architects would have earthquake proofed many buildings. I would be more hesitant in living in a red zone in some country with less advanced building standards. Generally, though, I am a risk taker as a person. I think that no one lives forever, and that none of us are
Choose a good topic for me Essay Example | Topics and Well Written Essays - 1000 words
Choose a good topic for me - Essay Example Overview The first group that would have to be met is Plant XYZââ¬â¢s personnel as meetings with the plant managers, staff, and associates are set up to get a feel of the problem. After the meeting this group, namely, the administration, would follow the main aim of becoming familiar with the functions of the plantââ¬â¢s business, its systems, and methods of reporting used (Ranier 23). Concerning the business side of the operation, it would be prudent to begin by seeking to address the immediate support and needs initiatives that are already in progress, as well as identifying the opportunities presented and the areas that need action. Next, the partnership side of Plant XYZââ¬â¢s operation would have to be reviewed, which necessitates meetings and assessing customers and business relationships. For this, both external and internal partnerships will be considered. Finally, a meeting with the team is on the cards with focus directed on the plantââ¬â¢s leadership, as well a s the building of a rapport with the entire team and the companyââ¬â¢s clients (Ranier 24). Personnel As far as Plant XYZââ¬â¢s personnel are concerned, it would be prudent to review them as well as their functions. Through an organizational chart, it is possible to assess the depth inherent within the various departments (Ranier 25). In the period given for coming up with the action plan, time should be taken to become familiar with the capability and functions of the plantââ¬â¢s staff. On top of this, there needs to be a review of key personnel procedures, as well as policies. Finally, an in-depth review of payroll processes and functions is to be carried out. Administration For the administrative side of the company, the first item on the agenda is the review of all responsibilities and duties of each position. During this exercise, observation of the roles and functions of the staff is to be made, in addition to an endeavor of understanding these roles and functions (Ra nier 37). To do this, it is prudent to attend all meetings held by various departments, as well as a solicitation of feedback on the opportunities and strengths that these departments feel are vital for the companyââ¬â¢s growth. Finally, a review of the companyââ¬â¢s budget, as well as processes of forecasting needs to be carried out. Business For the business side of operations, a comprehensive review of the functions and processes of financial reporting will be carried out in the first ninety days. This will be supplemented by a correspondingly wide-range review of the processes of forecasting and budgeting (Ranier 39). A review of the companyââ¬â¢s metrics of performance and reporting will also be carried out, coupled with the solicitation of feedback from every department at the plant concerning perceived opportunities. Finally, in order to get a feel of the goings on, participation in all meetings that discuss business operations will be essential. Partnerships A compr ehensive review of all inter-departmental functions and roles will be carried out during the first ninety days. This will be followed by a review of financials for every department and its contributions to the operations of the plant. I will also attend every meeting held by various departments and make contributions during the dialogue session. In addition, an enhancement of communications between departments will be vital to creating a sense of mission and this will be given importance (Ranier 67).
Tuesday, October 15, 2019
The Way of Ford Motor Company Essay Example for Free
The Way of Ford Motor Company Essay * Introduction * Although to be the only one remaining member which have escaped bankruptcy of the Big Three among the automobile industry by June 2009, Ford suffers $14.7 million loss of revenue and elimination of stockholdersââ¬â¢ equity due to the record-breaking fall in demand for 2008,US. However, to understand Fordââ¬â¢s position today requires understanding the American automotive industry. * General Industry analysis * From 1900-2008, US motor vehicle production has a rapid increase to9, 000,000 from 1900 to 1967, after not, there is a graduate decrease to 3,000,000 until 2008. At the mean time, the median age of passenger car in US was Spiral upwards. Combine the two phenomenon, we can get that the automobile industry market is quite saturated and the demand fell down. Regard to the automobile manufacturing technology, despite less differentiation between manufacturers due to the converge of technologies and design, the technological progress was incremental and lead to the various segmentations in each country. Follow the two situations, there are 3 big issues were emerged. One was the deep demand of auto cars result in excess capacity. Another one issues was the high cost among the technological development. Last one issue was the lacking differentiation. However, it also offers automakers new product segmentations and market. For an insightful analysis, we need to look at more information in details. * Porterââ¬â¢s Five Forces First of all, we can get a comprehensive industry environment analysis through the Porterââ¬â¢s Five Forces. In terms of the threat of new entrants of the automobile industry, it requires high capital costs for potential entrants, as the manufacturers are all carry out the mass-production-scale. However, when a new entrant face with the current competitorsââ¬â¢ scale economies, smaller manufacturers could not survive since they cannot afford the massive product development cost, which was in excess of $6 billion. And it is easy to own the cost disadvantages independent of scale. Then, the product differentiation of automobile industry is not high as other industry. The automobile industry was a global network of collaborative arrangements. As the team-based approach became models for all majorà manufacturers, there is no big difference in the function, model and design. They can only gain their differentiation by the firmââ¬â¢s service and effective advertising. Also, There is no switching cost in the automobile industry because no cost would be incurred when customer switch to a new supplier. However, the large capital requirement is demanding, as the automobile industry needs huge amount of capital to invest in its mass-production line. Furthermore, automakers have benefited from prodigious amounts of direct funds or indirect aids from the government around the world to keep car plants open and assembly line running after the global sales collapsed, and the industry has never operated on the pure free-market principles. It proved that the government always intervened in the automobile industry that suggests the government control entry into this industry. Then, the supplier group of the industry is powerful. In order to achieve lower costs and increased flexibility, the automobile manufacturing trend has been towards outsourcing. All of the manufacturers now have long-term relationships with their suppliers. Especially for the leading component suppliers that have the increasing responsibility for technological development, it gains a strong bargaining power. Because their goods as transmissions, braking systems, etc. are critical to buyersââ¬â¢ market success. Besides, it poses a credible threat to integrate forward into the automobile industry due to some suppliers like Bosch and Denso are as big as some larger automobile companies. Whatââ¬â¢s more, since a few large companies dominated the suppliers and is more concentrated than automobile industry, it is easy to get the conclusion that these suppliers are fatal and important threat to the automobile industry. Next, the bargaining power of the buyer is increasing. Although the auto buyers wonââ¬â¢t purchase a large portion of cars in a given time since the auto is not cheap, the sales of the purchased product do not account for a significant portion of the sellerââ¬â¢s annual revenue as well. Nevertheless, the customer cou ld switch to another automaker at litter or even no cost since automobiles are little differentiated, then the buyers pose a credible threat if they were to integrate backward into the sellersââ¬â¢ industry. In addition, the threat of the substitutes also is a vital factor of the industry analysis. As the passenger car substitutes, the public transportation like airplane, train and bus perform the same function. The technological change would offer opportunities for new entrants into theà industry. For the environmental concerns, it may also result in a decline in private transportation in favor of public transportation, or short-term rental car rather than car ownership. In general, these substitutes present a strong threat to the industry especially when the customers face few switching cost as I mentioned before. Moreover, the competitive rivalry is intense in the automobile industry. Firstly, there are equally balanced competitors within the industry. It can be found from company sales of these automakers, the annual average sales are nearly the same among several major big automakers as Ford, GM, Honda and Daimler. Industry with only a few firms of equivalent size and power tend to have strong rivalries. In another hand, as the high fixed cost and high storage cost of automobiles account for a large part of the total costs, the automakers will spread the costs across a large volume of output. However, excess capacity is created when firms try to maximize their productive capacity. And the excess capacity has become the greatest structural problem of the industry. To cut down the price is the most effective way to reduce inventories. At the mean time, this method often intensifies competition. Besides, lacking differentiation and low switching cost of the automobile industry are easy for competitors to attract buyers through pricing and service offerings. Finally, the high exit barriers intensify the automobile industry competition as well. With the recession and unprecedented fall in demand, automakers remain in the industry because they face the high exit barriers. Specialized assets, fixed cost of exit, strategic interrelationships, emotional barriers, government and social restrictions are make up the high exit barriers. To sum, the competitive rivalry is highly intense in the automobile industry. After the discussion about the Porterââ¬â¢s five forces, we have a comprehensive understanding that how is the American automobile industry environment. However, for a more accurate strategic competitiveness, we need to have a further analysis through the international markets and rivalries. * Industry analysis -Internationalization With the increasing competition in the industry, the intensified quest for cost reduction and the excess capacity among automobile manufacturers had make contributions to the internationalization. In another side, accessing growing market, exploiting scale economies in purchasing, technology, and new product development also mainly brought up the internationalization. In the market share part, the table shows that there is an apparent decrease in the automobile market share of local firms from 1988 to 2006.As the Big Three which held close to 85% of the US market in 1970, all of their US market share declined by an average of 6% in 2006. On the contrary, the reductive market share contributed to the increasing market share of Toyota and Honda in US. Not only the US market had an internationalization outcome as the above condition, but also many developed countries did. It illustrates that all the leading automobile manufacturers were competing in most of the countries of the world instead of dominated in focused national market as before, and the market dominance of local automobile firms was undermined. In addition, the global distribution of production shifts a lot due to the rise of new market and the needs of low production cost. As shown in the table4.7 and 4.8, the used biggest three automobile production countries and regions (US, Western Europe, and Japan) in 1980 have been taken place by Japan, China, and Germany in 2008. The world leading motor-vehicle producers-Korea, Brazil and India, also result in a rapidly growing domestic markets and low production cost that benefit a lot from the low compensation for workers. Therefore, we can draw a conclusion that there is a big cost advantages and huge potential market for the big automobile manufacturers due to the internationalization. Since there are a lot of leading producers with cheap labor cost and high productivity outside US, then it provide resources and factors of production in the world outside US, and it provide automobile industry a way to worldwide outsourcing, which is beneficial to the reasonable allocation of capital and products in the global flow. Besides, internationalization in the automobile industry is helpful for design and technology in the global expansion, promote the economic development of the underdeveloped areas, in turn, it stimulate the sales of automobile. Nonetheless, the fierce competition is a concern in the international market. On account of the collaborations with the industryââ¬â¢s development and no barriers to enter other countries, fewer differentiation and free-limit expansion lead to intensive rivalry. * Industry attractiveness Through the industry analysis among five forces in American market andà international market, it is obvious to find the automobile industry is attractive in international market instead of in American market. Although there is a little threat of new entrants, strong bargaining power of supplier, increasing bargaining power of buyers, big threats of substitute products and intense competitive rivalry still make the domestic industry not attractive. In the international market, it is attractive as the potential market expansion and worldwide outsourcing. But with the intensive rivalry and low differentiation in the internationalization, it is necessary to be well prepared on the risk and responses. * Fit between core competencies and opportunities Ford was the first one to combine mass consumption with mass production, and Ford use this concept to guide the enterprise entrepreneur. What is the Fordââ¬â¢s core competency then? To start, itââ¬â¢s brand recognition in global scale. Ford does have a model in most categories. It provides a large global scale to Ford. A more strategic core competency of Ford is its global supply chain network. Its strategic alliances and supplier base is possibly one of the most favorable in the world. In addition, Ford has many opportunities. Firstly, Restructuring plan that to downsizing was launched long before GM and Chrysler, moving the manufacturing to low-cost location, worldwide outsourcing as well. These actions improve the performance, meet the location economy and cut down the cost of Ford. Secondly, Ford has a long history in production innovation. Thus, new products are very likely to be continued in the future. Thirdly, Fordââ¬â¢s business is locked up in the European and North American markets, however it possess a significant share in emerging markets such as South American, which should provide enormous growth of the future as the middle class to grow and earn the money to spend on automobiles. Finally, One major sector that is full with opportunity is the electric automobile market, as the world looks for an eco-friendly alternative that operates like the original car. When we compared Fordââ¬â¢s opportunities with core competencies, they fit with each other. The constant production innovation that leads to continued new product and the significant share in emerging markets provide the opportunities for Fordââ¬â¢s brand recognition in global scale. Furthermore, the location economy and worldwide outsourcing give Ford the chance to strengthen its global supplyà chain network. In sum, Ford gains a very strong competitive advantage in automobile industry. * Business-level strategy In terms of the business-level strategy, Ford had an ambiguous business-level strategy that neither successful differentiation nor cost-leadership based on the case. On one hand, because of the high technological development cost, large excess capacity and huge capital cost, it cannot and did not maintain a cost leadership strategy. On the other hand, with the internationalization, resources and technologies sharing, collaborations among competitors, Ford do not have a strong differentiation strategy. Type of cooperation The cost of new product development has been the major driver if mergers and acquisition in the industry. And sharing cost also encouraged increased collaboration and joint venture. For Ford, its corporation includes joint venture, joint research, licensing, partnership, and acquisition. With these different corporation methods that to share costs, resources and risks, Ford shows a strong alliance to its supplier and partner. And Ford also obtains a significant reduction in product development time and cost. To some extent, the strong connection with other automakers and suppliers also accelerate the speed to reach the market and the potential consumer. * How to approach market * At present, the biggest change of automobile society is the transition from emerging market to mature market. And the most significant feature is the industry has entered the era of micro growth. Micro growth poses a big pressure to the whole industry, but it also promotes favorable industry healthy and sustainable growth. Thus, with such advantaged external opportunity and internal strength, Ford needs to approach new market to earn the market share and worldwide competitiveness. Exporting, licensing, strategic alliances, acquisition and WOS are the entry modes alternatives, but how to choose one from these? * Since Ford already has a strong partnership with other automakers, Ford has a foundation to gain other alliances. Besides, as Ford does not have much profit margin and the initial investment of automobile industry is huge, the Exporting, WOS andà Acquisition are not acceptable due to the high cost. In terms of the licensing, although it has a low cost and risk, the low return and little control are not appealing. Thus, Ford should go on with the strategic alliances to cut the entry cost and risk, and to achieve the industry integration. * 5-year plan To conclude all the analysis above, Fordââ¬â¢s strategies for the later 5 yearsââ¬â¢ development need to be changed. Firstly, a real business-level strategy is imperative. Adopting a clear differentiation strategy and supporting value-chain activities should improve Fordââ¬â¢s position. Besides, to Continue cost cutting beyond those already specified in the plan and focus on reduction of manufacturing costs to achieve Fordââ¬â¢s cost parity. Additionally, cut in cost to achieve parity with foreign rivals. Invest in unique advertising and create uniquely designed vehicles with shared platforms and technologies to promote differentiation strategy. * The second part of Fordââ¬â¢s plan is to refocus on the consumer through repositioning of its brand and product mix to be more consistent with customer preferences. Currently, Ford lacks product differentiation between these brands sold by the North American division. Ford should emphasize development and production of several car models that presently enjoy strong reputations. Thus, their continued success will enhance the company image as a whole, again supporting a strong differentiation strategy. The final key piece of Fordââ¬â¢s restructuring plan is the constant introduction of innovative products and new development methods. It can bring up new customers. Based on the improved differentiation and efficiencies of scale, the market sales and market share will go up. Together with all these recommendations, Ford should be able to return to a competitive position in the marketplace and stabilize with improve its market share and financial position. *
Monday, October 14, 2019
Implementation of New Computer Network
Implementation of New Computer Network Here we are going to implement an new computer network for this company that 25 employees have been working in. Suppose you want to build a computer network, one that has potential to grow to global proportions to support applications as diverse as teleconferencing, video-on-demand, electronic commerce, distributed computing, and digital libraries. What available technologies would serve as the underlying building blocks, and what kind of software architecture would you design t integrate these building blocks into an effective communication service? Suppose you want to build a computer network, one that has the potential togrow to global proportions and to support applications as diverse as teleconferencing, video-on-demand, electronic commerce, distributed computing, and digital libraries. What available technologies would serve as the underlying building blocks, and what kind of software architecture would you design to integrate these building blocks into an effective communication service? Answering this question is the overriding goal of ââ¬â to describe the available building materials and then to show how they can be used to construct a network from the ground up. Before we can understand how to design a computer network, we should first agree on exactly what a computer network is. At one time, the term network meant the set of serial lines used to attach dumb terminals to mainframe computers. To some, the term implies the voice telephone network. To others, the only interesting network is the cable network used to disseminate video signals. The main thing these networks have in common is that they are specialized to handle one particular kind of data (keystrokes, voice, or video) and they typically connect to special-purpose devices (terminals, hand receivers, and television sets). What distinguishes a computer network from these other types of networks? Probably the most important characteristic of a computer network is its generality. Computer networks are built primarily from general-purpose programmable hardware, and they are not optimized for a particular application like making phone calls or delivering television signals. Instead, they are able to carry many different types of data, and they support a wide, and ever-growing, range of applications. This chapter looks at some typical applications of computer networks and discusses the requirements that a network designer who wishes to support such applications must be aware of. Once we understand the requirements, how do we proceed? Fortunately, we will not be building the first network. Others, most notably the community of researchers responsible for the Internet, have gone before us. We will use the wealth of experience generated from the Internet to guide our design. This experience is embodied in a network architecture that identifies the available hardware and software components and shows how they can be arranged to form a complete network system. To start us on the road toward understanding how to build a network, this chapter does four things. First, it explores the requirements that different applications and different communities of people (such as network users and network operators) place on the network. Second, it introduces the idea of a network architecture, which lays the foundation for the rest of the book. Third, it introduces some of the key elements in the implementation of computer networks. Finally, it identifies the key metrics that are used to evaluate the performance of computer networks. 1.1 APPLICATIONS Most people know the Internet through its applications: the World Wide Web, email, streaming audio and video, chat rooms, and music (file) sharing. The Web, for example, presents an intuitively simple interface. Users view pages full of textual and graphical objects, click on objects that they want to learn more about, and a corresponding new page appears. Most people are also aware that just under the covers, each selectable object on a page is bound to an identifier for the next page to be viewed. This identifier, called a Uniform Resource Locator (URL), is used to provide a way of identifying all the possible pages that can be viewed from your web browser. For example, http://www.cs.princeton.edu/~llp/index.html is the URL for a page providing information about one of this books authors: the string http indicates that the HyperText Transfer Protocol (HTTP) should be used to download the page, www.cs.princeton.edu is the name of the machine that serves the page, and /~llp/index.html uniquely identifies Larrys home page at this site. What most Web users are not aware of, however, is that by clicking on just one such URL, as many as 17 messages may be exchanged over the Internet, and this assumes the page itself is small enough to fit in a single message. This number includes up to six messages to translate the server name (www.cs.princeton.edu) into its Internet address (128.112.136.35), three messages to set up a Transmission Control Protocol (TCP) connection between your browser and this server, four messages for your browser to send the HTTP get request and the server to respond with the requested page (and for each side to acknowledge receipt of that message), and four messages to tear down the TCP connection. Of course, this does not include the millions of messages exchanged by Internet nodes throughout the day, just to let each other know that they exist and are ready to serve web pages, translate names to addresses, and forward messages toward their ultim ate destination. Another widespread application of the Internet is the delivery of streaming audio and video. While an entire video file could first be fetched from a remote machine and then played on the local machine, similar to the process of downloading and displaying a web page, this would entail waiting for the last second of the video file to be delivered before starting to look at it. Streaming video implies that the sender and the receiver are, respectively, the source and the sink for the video stream. That is, the source generates a video stream (perhaps using a video capture card), sends it across the Internet in messages, and the sink displays the stream as it arrives. There are a variety of different classes of video applications. One class of video application is video-on-demand, which reads a pre-existing movie from disk and transmits it over the network. Another kind of application is videoconferencing, which is in some ways the more challenging (and, for networking people, interesting) case because it has very tight timing constraints. Just as when using the telephone, the interactions among the participants must be timely. When a person at one end gestures, then that action must be displayed at the other end as quickly as possible. Too much delay makes the system unusable. Contrast this with video-on-demand where, if it takes several seconds from the time the user starts the video until the first image is displayed, the service is still deemed satisfactory. Also, interactive video usually implies that video is flowing in both directions, while a video-on-demand application is most likely sending video in only one direction. One pioneering example of a videoconferencing tool, developed in the early and mid-1990s, is vic. shows the control panel for a vic session. vic is actually one of a suite of conferencing tools designed at Lawrence Berkeley Laboratory and UC Berkeley. The others include a whiteboard application (wb) that allows users to send sketches and slides to each other, a visual audio tool called vat, and a session directory (sdr) that is used to create and advertise videoconferences. All these tools run on Unixââ¬âhence their lowercase namesââ¬âand are freely available on the Internet. Many similar tools are available for other operating systems. It is interesting to note that while video over the Internet is still considered to be in its relative infancy at the time of this writing (2006), that the tools to support video over IP have existed for well over a decade. Although they are just two examples, downloading pages from the Web and participating in a videoconference demonstrate the diversity of applications that can be built on top of the Internet, and hint at the complexity of the Internets design. Starting from the beginning, and addressing one problem at time, the rest of this book explains how to build a network that supports such a wide range of applications. Chapter 9 concludes the book by revisiting these two specific applications, as well as several others that have become popular on todays Internet. 1.2 REQUIREMENTS We have just established an ambitious goal for ourselves: to understand how to build a computer network from the ground up. Our approach to accomplishing this goal will be to start from first principles, and then ask the kinds of questions we would naturally ask if building an actual network. At each step, we will use todays protocols to illustrate various design choices available to us, but we will not accept these existing artifacts as gospel. Instead, we will be asking (and answering) the question of why networks are designed the way they are. While it is tempting to settle for just understanding the way its done today, it is important to recognize the underlying concepts because networks are constantly changing as the technology evolves and new applications are invented. It is our experience that once you understand the fundamental ideas, any new protocol that you are confronted with will be relatively easy to digest. The first step is to identify the set of constraints and requirements that influence network design. Before getting started, however, it is important to understand that the expectations you have of a network depend on your perspective: An application programmer would list the services that his application needs, for example, a guarantee that each message the application sends will be delivered without error within a certain amount of time. A network designer would list the properties of a cost-effective design, for example, that network resources are efficiently utilized and fairly allocated to different users. A network provider would list the characteristics of a system that is easy to administer and manage, for example, in which faults can be easily isolated and whereitiseasytoaccountfor usage. This section attempts to distill these different perspectives into a high-level introduction to the major considerations that drive network design, and in doing so, identifies the challenges addressed throughout the rest of this book. 1.2.1 Connectivity Starting with the obvious, a network must provide connectivity among a set of computers. Sometimes it is enough to build a limited network that connects only a few select machines. In fact, for reasons of privacy and security, many private (corporate) networks have the explicit goal of limiting the set of machines that are connected. In contrast, other networks (of which the Internet is the prime example) are designed to grow in a way that allows them the potential to connect all the computers in the world. A system that is designed to support growth to an arbitrarily large size is said to scale. Using the Internet as a model, this book addresses the challenge of scalability. Links, Nodes, and Clouds Network connectivity occurs at many different levels. At the lowest level, a network can consist of two or more computers directly connected by some physical medium, such as a coaxial cable or an optical fiber. We call such a physical medium a link,and we often refer to the computers it connects as nodes. (Sometimes a node is a more specialized piece of hardware rather than a computer, but we overlook that distinction for the purposes of this discussion.) As illustrated in, physical links are sometimes limited to a pair of nodes (such a link is said to be point-to-point), while in other cases, more than two nodes may share a single physical link (such a link is said to be multiple-access). Whether a given link supports point-to-point or multiple-access connectivity depends on how the node is attached to the link. It is also the case that multiple-access links are often limited in size, in terms of both the geographical distance they can cover and the number of nodes they can connect. If computer networks were limited to situations in which all nodes are directly connected to each other over a common physical medium, then networks would either be very limited in the number of computers they could connect, or the number of wires coming out of the back of each node would quickly become both unmanageable and very expensive. Fortunately, connectivity between two nodes does not necessarily imply a direct physical connection between themââ¬âindirect connectivity may be achieved among a set of cooperating nodes. Consider the following two examples of how a collection of computers can be indirectly connected. shows a set of nodes, each of which is attached to one or more point- to-point links. Those nodes that are attached to at least two links run software that forwards data received on one link out on another. If organized in a systematic way, these forwarding nodes form a switched network. There are numerous types of switched networks, of which the two most common are circuit-switched and packet-switched. The former is most notably employed by the telephone system, while the latter is used for the overwhelming majority of computer networks and will be the focus of this book. The important feature of packet-switched networks is that the nodes in such a network send discrete blocks of data to each other. Think of these blocks of data as corresponding to some piece of application data such as a file, a piece of email, or an image. We call each block of data either a packet or a message, and for now we use these terms interchangeably; we discuss the reason they are not always the same in Section 1.2.2. Packet-switched networks typically use a strategy called store-and-forward. As the name suggests, each node in a store-and-forward network first receives a complete packet over some link, stores the packet in its internal memory, and then forwards the complete packet to the next node. In contrast, a circuit-switched network first establishes a dedicated circuit across a sequence of links and then allows the source node to send a stream of bits across this circuit to a destination node. The major reason for using packet switching rather than circuit switching in a computer network is efficiency, discussed in the next subsection. The cloud in distinguishes between the nodes on the inside that implement the network (they are commonly called switches, and their primary function is to store and forward packets) and the nodes on the outside of the cloud that use the network (they are commonly called hosts, and they support users and run application programs). Also note that the cloud in is one of the most important icons of computer networking. In general, we use a cloud to denote any type of network, whether it is a single point-to-point link, a multiple-access link, or a switched network. Thus, whenever you see a cloud used in a figure, you can think of it as a placeholder for any of the networking technologies covered in this book. A second way in which a set of computers can be indirectly connected is shown in . In this situation, a set of independent networks (clouds) are interconnected to form an internetwork, or internet for short. We adopt the Internets convention of referring to a generic internetwork of networks as a lowercase i internet, and the currently operational TCP/IP Internet as the capital I Internet. A node that is connected to two or more networks is commonly called a router or gateway, and it plays much the same role as a switchââ¬âit forwards messages from one network to another. Note that an internet can itself be viewed as another kind of network, which means that an internet can be built from an interconnection of internets. Thus, we can recursively build arbitrarily large networks by interconnecting clouds to form larger clouds. Just because a set of hosts are directly or indirectly connected to each other does not mean that we have succeeded in providing host-to-host connectivity. The final requirement is that each node must be able to state which of the other nodes on the network it wants to communicate with. This is done by assigning an address to each node. An address is a byte string that identifies a node; that is, the network can use a nodes address to distinguish it from the other nodes connected to the network. When a source node wants the network to deliver a message to a certain destination node, it specifies the address of the destination node. If the sending and receiving nodes are not directly connected, then the switches and routers of the network use this address to decide how to forward the message toward the destination. The process of determining systematically how to forward messages toward the destination node based on its address is called routing. This brief introduction to addressing and routing has presumed that the source node wants to send a message to a single destination node (unicast). While this is the most common scenario, it is also possible that the source node might want to broadcast a message to all the nodes on the network. Or a source node might want to send a message to some subset of the other nodes, but not all of them, a situation called multicast. Thus, in addition to node-specific addresses, another requirement of a network is that it supports multicast and broadcast addresses. The main idea to take away from this discussion is that we can define a network recursively as consisting of two or more nodes connected by a physical link, or as two or more networks connected by a node. In other words, a network can be constructed from a nesting of networks, where at the bottom level, the network is implemented by some physical medium. One of the key challenges in providing network connectivity is to define an address for each node that is reachable on the network (including support for broadcast and multicast connectivity), and to be able to use this address to route messages toward the appropriate destination node(s). 1.2.2 Cost-Effective Resource Sharing As stated above, this book focuses on packet-switched networks. This section explains the key requirement of computer networksââ¬âefficiencyââ¬âthat leads us to packet switching as the strategy of choice. Given a collection of nodes indirectly connected by a nesting of networks, it is possible for any pair of hosts to send messages to each other across a sequence of links and nodes. Of course, we want to do more than support just one pair of communicating hostsââ¬âwe want to provide all pairs of hosts with the ability to exchange messages. The question, then, is how do all the hosts that want to communicate share the network, especially if they want to use it at the same time? And, as if that problem isnt hard enough, how do several hosts share the same link when they all want to use it at the same time? To understand how hosts share a network, we need to introduce a fundamental concept, multiplexing, which means that a system resource is shared among multiple users. At an intuitive level, multiplexing can be explained by analogy to a timesharing computer system, where a single physical CPU is shared (multiplexed) among multiple jobs, each of which believes it has its own private processor. Similarly, data being sent by multiple users can be multiplexed over the physical links that make up a network. To see how this might work, consider the simple network illustrated in , where the three hosts on the left side of the network (senders S1S3) are sending data to the three hosts on the right (receivers R1R3) by sharing a switched network that contains only one physical link. (For simplicity, assume that host S1 is sending data to host R1, and so on.) In this situation, three flows of dataââ¬âcorresponding to the three pairs of hostsââ¬âare multiplexed onto a single physical link by switch 1 and then demultiplexed back into separate flows by switch 2. Note that we are being intentionally vague about exactly what a flow of data corresponds to. For the purposes of this discussion, assume that each host on the left has a large supply of data that it wants to send to its counterpart on the right. There are several different methods for multiplexing multiple flows onto one physical link. One common method is synchronous time-division multiplexing (STDM). The idea of STDM is to divide time into equal-sized quanta and, in a round-robin fashion, give each flow a chance to send its data over the physical link. In other words, during time quantum 1, data from S1 to R1 is transmitted; during time quantum 2, data from S2 to R2 is transmitted; in quantum 3, S3 sends data to R3. At this point, the first flow (S1 to R1) gets to go again, and the process repeats. Another method is frequency-division multiplexing (FDM). The idea of FDM is to transmit each flow over the physical link at a different frequency, much the same way that the signals for different TV stations are transmitted at a different frequency on a physical cable TV link. Although simple to understand, both STDM and FDM are limited in two ways. First, if one of the flows (host pairs) does not have any data to send, its share of the physical linkââ¬âthat is, its time quantum or its frequencyââ¬âremains idle, even if one of the other flows has data to transmit. For example, S3 had to wait its turn behind S1 and S2 in the previous paragraph, even if S1 and S2 had nothing to send. For computer communication, the amount of time that a link is idle can be very largeââ¬âfor example, consider the amount of time you spend reading a web page (leaving the link idle) compared to the time you spend fetching the page. Second, both STDM and FDM are limited to situations in which the maximum number of flows is fixed and known ahead of time. It is not practical to resize the quantum or to add additional quanta in the case of STDM or to add new frequencies in the case of FDM. The form of multiplexing that we make most use of in this book is called statistical multiplexing. Although the name is not all that helpful for understanding the concept, statistical multiplexing is really quite simple, with two key ideas. First, it is like STDM in that the physical link is shared over timeââ¬âfirst data from one flow is transmitted over the physical link, then data from another flow is transmitted, and so on. Unlike STDM, however, data is transmitted from each flow on demand rather than during a predetermined time slot. Thus, if only one flow has data to send, it gets to transmit that data without waiting for its quantum to come around and thus without having to watch the quanta assigned to the other flows go by unused. It is this avoidance of idle time that gives packet switching its efficiency. As defined so far, however, statistical multiplexing has no mechanism to ensure that all the flows eventually get their turn to transmit over the physical link. That is, once a flow begins sending data, we need some way to limit the transmission, so that the other flows can have a turn. To account for this need, statistical multiplexing defines an upper bound on the size of the block of data that each flow is permitted to transmit at a given time. This limited-size block of data is typically referred to as a packet, to distinguish it from the arbitrarily large message that an application program might want to transmit. Because a packet-switched network limits the maximum size of packets, a host may not be able to send a complete message in one packet. The source may need to fragment the message into several packets, with the receiver reassembling the packets back into the original message. In other words, each flow sends a sequence of packets over the physical link, with a decision made on a packet-by-packet basis as to which flows packet to send next. Notice that if only one flow has data to send, then it can send a sequence of packets back-to-back. However, should more than one of the flows have data to send, then their packets are interleaved on the link. depicts a switch multiplexing packets from multiple sources onto a single shared link. The decision as to which packet to send next on a shared link can be made in a number of different ways. For example, in a network consisting of switches interconnected by links such as the one in the decision would be made by the switch that transmits packets onto the shared link. (As we will see later, not all packet-switched networks actually involve switches, and they may use other mechanisms to determine whose packet goes onto the link next.) Each switch in a packet-switched network makes this decision independently, on a packet-by-packet basis. One of the issues that faces a network designer is how to make this decision in a fair manner. For example, a switch could be designed to service packets on a first-in-first-out (FIFO) basis. Another approach would be to transmit the packets from each of the different flows that are currently sending data through the switch in a round-robin manner. This might be done to ensure that certain flows receive a particular share of the links b andwidth, or that they never have their packets delayed in the switch for more than a certain length of time. A network that attempts to allocate bandwidth to particular flows is sometimes said to support quality of service (QoS), a topic that we return to in Chapter 6. Also, notice in that since the switch has to multiplex three incoming packet streams onto one outgoing link, it is possible that the switch will receive packets faster than the shared link can accommodate. In this case, the switch is forced to buffer these packets in its memory. Should a switch receive packets faster than it can send them for an extended period of time, then the switch will eventually run out of buffer space, and some packets will have to be dropped. When a switch is operating in this state, it is said to be congested. The bottom line is that statistical multiplexing defines a cost-effective way for multiple users (e.g., host-to-host flows of data) to share network resources (links and nodes) in a fine-grained manner. It defines the packet as the granularity with which the links of the network are allocated to different flows, with each switch able to schedule the use of the physical links it is connected to on a per-packet basis. Fairly allocating link capacity to different flows and dealing with congestion when it occurs are the key challenges of statistical multiplexing. 1.2.3 Support for Common Services While the previous section outlined the challenges involved in providing costeffective connectivity among a group of hosts, it is overly simplistic to view a computer network as simply delivering packets among a collection of computers. It is more accurate to think of a network as providing the means for a set of application processes that are distributed over those computers to communicate. In other words, the next requirement of a computer network is that the application programs running on the hosts connected to the network must be able to communicate in a meaningful way. When two application programs need to communicate with each other, there are a lot of complicated things that need to happen beyond simply sending a message from one host to another. One option would be for application designers to build all that complicated functionality into each application program. However, since many applications need common services, it is much more logical to implement those common services once and then to let the application designer build the application using those services. The challenge for a network designer is to identify the right set of common services. The goal is to hide the complexity of the network from the application without overly constraining the application designer. Intuitively, we view the network as providing logical channels over which application-level processes can communicate with each other; each channel provides the set of services required by that application. In other words, just as we use a cloud to abstractly represent connectivity among a set of computers, we now think of a channel as connecting one process to another. shows a pair of application-level processes communicating over a logical channel that is, in turn, implemented on top of a cloud that connects a set of hosts. We can think of the channel as being like a pipe connecting two applications, so that a sending application can put data in one end and expect that data to be delivered by the network to the application at the other end of the pipe. Thechallengeistorecognize what functionality the channels should provide to application programs. For example, does the application require a guarantee that messages sent over the channel are delivered, or is it acceptable if some messages fail to arrive? Is it necessary that messages arrive at the recipient process in the same order in which they are sent, or does the recipient not care about the order in which messages arrive? Does the network need to ensure that no third parties are able to eavesdrop on the channel, or is privacy not a concern? In general, a network provides a variety of different types of channels, with each application selecting the type that best meets its needs. The rest of this section illustrates the thinking involved in defining useful channels. Identifying Common Communication Patterns Designing abstract channels involves first understanding the communication needs of a representative collection of applications, then extracting their common communication requirements, and finally incorporating the functionality that meets these requirements in the network. One of the earliest applications supported on any networ Implementation of New Computer Network Implementation of New Computer Network Here we are going to implement an new computer network for this company that 25 employees have been working in. Suppose you want to build a computer network, one that has potential to grow to global proportions to support applications as diverse as teleconferencing, video-on-demand, electronic commerce, distributed computing, and digital libraries. What available technologies would serve as the underlying building blocks, and what kind of software architecture would you design t integrate these building blocks into an effective communication service? Suppose you want to build a computer network, one that has the potential togrow to global proportions and to support applications as diverse as teleconferencing, video-on-demand, electronic commerce, distributed computing, and digital libraries. What available technologies would serve as the underlying building blocks, and what kind of software architecture would you design to integrate these building blocks into an effective communication service? Answering this question is the overriding goal of ââ¬â to describe the available building materials and then to show how they can be used to construct a network from the ground up. Before we can understand how to design a computer network, we should first agree on exactly what a computer network is. At one time, the term network meant the set of serial lines used to attach dumb terminals to mainframe computers. To some, the term implies the voice telephone network. To others, the only interesting network is the cable network used to disseminate video signals. The main thing these networks have in common is that they are specialized to handle one particular kind of data (keystrokes, voice, or video) and they typically connect to special-purpose devices (terminals, hand receivers, and television sets). What distinguishes a computer network from these other types of networks? Probably the most important characteristic of a computer network is its generality. Computer networks are built primarily from general-purpose programmable hardware, and they are not optimized for a particular application like making phone calls or delivering television signals. Instead, they are able to carry many different types of data, and they support a wide, and ever-growing, range of applications. This chapter looks at some typical applications of computer networks and discusses the requirements that a network designer who wishes to support such applications must be aware of. Once we understand the requirements, how do we proceed? Fortunately, we will not be building the first network. Others, most notably the community of researchers responsible for the Internet, have gone before us. We will use the wealth of experience generated from the Internet to guide our design. This experience is embodied in a network architecture that identifies the available hardware and software components and shows how they can be arranged to form a complete network system. To start us on the road toward understanding how to build a network, this chapter does four things. First, it explores the requirements that different applications and different communities of people (such as network users and network operators) place on the network. Second, it introduces the idea of a network architecture, which lays the foundation for the rest of the book. Third, it introduces some of the key elements in the implementation of computer networks. Finally, it identifies the key metrics that are used to evaluate the performance of computer networks. 1.1 APPLICATIONS Most people know the Internet through its applications: the World Wide Web, email, streaming audio and video, chat rooms, and music (file) sharing. The Web, for example, presents an intuitively simple interface. Users view pages full of textual and graphical objects, click on objects that they want to learn more about, and a corresponding new page appears. Most people are also aware that just under the covers, each selectable object on a page is bound to an identifier for the next page to be viewed. This identifier, called a Uniform Resource Locator (URL), is used to provide a way of identifying all the possible pages that can be viewed from your web browser. For example, http://www.cs.princeton.edu/~llp/index.html is the URL for a page providing information about one of this books authors: the string http indicates that the HyperText Transfer Protocol (HTTP) should be used to download the page, www.cs.princeton.edu is the name of the machine that serves the page, and /~llp/index.html uniquely identifies Larrys home page at this site. What most Web users are not aware of, however, is that by clicking on just one such URL, as many as 17 messages may be exchanged over the Internet, and this assumes the page itself is small enough to fit in a single message. This number includes up to six messages to translate the server name (www.cs.princeton.edu) into its Internet address (128.112.136.35), three messages to set up a Transmission Control Protocol (TCP) connection between your browser and this server, four messages for your browser to send the HTTP get request and the server to respond with the requested page (and for each side to acknowledge receipt of that message), and four messages to tear down the TCP connection. Of course, this does not include the millions of messages exchanged by Internet nodes throughout the day, just to let each other know that they exist and are ready to serve web pages, translate names to addresses, and forward messages toward their ultim ate destination. Another widespread application of the Internet is the delivery of streaming audio and video. While an entire video file could first be fetched from a remote machine and then played on the local machine, similar to the process of downloading and displaying a web page, this would entail waiting for the last second of the video file to be delivered before starting to look at it. Streaming video implies that the sender and the receiver are, respectively, the source and the sink for the video stream. That is, the source generates a video stream (perhaps using a video capture card), sends it across the Internet in messages, and the sink displays the stream as it arrives. There are a variety of different classes of video applications. One class of video application is video-on-demand, which reads a pre-existing movie from disk and transmits it over the network. Another kind of application is videoconferencing, which is in some ways the more challenging (and, for networking people, interesting) case because it has very tight timing constraints. Just as when using the telephone, the interactions among the participants must be timely. When a person at one end gestures, then that action must be displayed at the other end as quickly as possible. Too much delay makes the system unusable. Contrast this with video-on-demand where, if it takes several seconds from the time the user starts the video until the first image is displayed, the service is still deemed satisfactory. Also, interactive video usually implies that video is flowing in both directions, while a video-on-demand application is most likely sending video in only one direction. One pioneering example of a videoconferencing tool, developed in the early and mid-1990s, is vic. shows the control panel for a vic session. vic is actually one of a suite of conferencing tools designed at Lawrence Berkeley Laboratory and UC Berkeley. The others include a whiteboard application (wb) that allows users to send sketches and slides to each other, a visual audio tool called vat, and a session directory (sdr) that is used to create and advertise videoconferences. All these tools run on Unixââ¬âhence their lowercase namesââ¬âand are freely available on the Internet. Many similar tools are available for other operating systems. It is interesting to note that while video over the Internet is still considered to be in its relative infancy at the time of this writing (2006), that the tools to support video over IP have existed for well over a decade. Although they are just two examples, downloading pages from the Web and participating in a videoconference demonstrate the diversity of applications that can be built on top of the Internet, and hint at the complexity of the Internets design. Starting from the beginning, and addressing one problem at time, the rest of this book explains how to build a network that supports such a wide range of applications. Chapter 9 concludes the book by revisiting these two specific applications, as well as several others that have become popular on todays Internet. 1.2 REQUIREMENTS We have just established an ambitious goal for ourselves: to understand how to build a computer network from the ground up. Our approach to accomplishing this goal will be to start from first principles, and then ask the kinds of questions we would naturally ask if building an actual network. At each step, we will use todays protocols to illustrate various design choices available to us, but we will not accept these existing artifacts as gospel. Instead, we will be asking (and answering) the question of why networks are designed the way they are. While it is tempting to settle for just understanding the way its done today, it is important to recognize the underlying concepts because networks are constantly changing as the technology evolves and new applications are invented. It is our experience that once you understand the fundamental ideas, any new protocol that you are confronted with will be relatively easy to digest. The first step is to identify the set of constraints and requirements that influence network design. Before getting started, however, it is important to understand that the expectations you have of a network depend on your perspective: An application programmer would list the services that his application needs, for example, a guarantee that each message the application sends will be delivered without error within a certain amount of time. A network designer would list the properties of a cost-effective design, for example, that network resources are efficiently utilized and fairly allocated to different users. A network provider would list the characteristics of a system that is easy to administer and manage, for example, in which faults can be easily isolated and whereitiseasytoaccountfor usage. This section attempts to distill these different perspectives into a high-level introduction to the major considerations that drive network design, and in doing so, identifies the challenges addressed throughout the rest of this book. 1.2.1 Connectivity Starting with the obvious, a network must provide connectivity among a set of computers. Sometimes it is enough to build a limited network that connects only a few select machines. In fact, for reasons of privacy and security, many private (corporate) networks have the explicit goal of limiting the set of machines that are connected. In contrast, other networks (of which the Internet is the prime example) are designed to grow in a way that allows them the potential to connect all the computers in the world. A system that is designed to support growth to an arbitrarily large size is said to scale. Using the Internet as a model, this book addresses the challenge of scalability. Links, Nodes, and Clouds Network connectivity occurs at many different levels. At the lowest level, a network can consist of two or more computers directly connected by some physical medium, such as a coaxial cable or an optical fiber. We call such a physical medium a link,and we often refer to the computers it connects as nodes. (Sometimes a node is a more specialized piece of hardware rather than a computer, but we overlook that distinction for the purposes of this discussion.) As illustrated in, physical links are sometimes limited to a pair of nodes (such a link is said to be point-to-point), while in other cases, more than two nodes may share a single physical link (such a link is said to be multiple-access). Whether a given link supports point-to-point or multiple-access connectivity depends on how the node is attached to the link. It is also the case that multiple-access links are often limited in size, in terms of both the geographical distance they can cover and the number of nodes they can connect. If computer networks were limited to situations in which all nodes are directly connected to each other over a common physical medium, then networks would either be very limited in the number of computers they could connect, or the number of wires coming out of the back of each node would quickly become both unmanageable and very expensive. Fortunately, connectivity between two nodes does not necessarily imply a direct physical connection between themââ¬âindirect connectivity may be achieved among a set of cooperating nodes. Consider the following two examples of how a collection of computers can be indirectly connected. shows a set of nodes, each of which is attached to one or more point- to-point links. Those nodes that are attached to at least two links run software that forwards data received on one link out on another. If organized in a systematic way, these forwarding nodes form a switched network. There are numerous types of switched networks, of which the two most common are circuit-switched and packet-switched. The former is most notably employed by the telephone system, while the latter is used for the overwhelming majority of computer networks and will be the focus of this book. The important feature of packet-switched networks is that the nodes in such a network send discrete blocks of data to each other. Think of these blocks of data as corresponding to some piece of application data such as a file, a piece of email, or an image. We call each block of data either a packet or a message, and for now we use these terms interchangeably; we discuss the reason they are not always the same in Section 1.2.2. Packet-switched networks typically use a strategy called store-and-forward. As the name suggests, each node in a store-and-forward network first receives a complete packet over some link, stores the packet in its internal memory, and then forwards the complete packet to the next node. In contrast, a circuit-switched network first establishes a dedicated circuit across a sequence of links and then allows the source node to send a stream of bits across this circuit to a destination node. The major reason for using packet switching rather than circuit switching in a computer network is efficiency, discussed in the next subsection. The cloud in distinguishes between the nodes on the inside that implement the network (they are commonly called switches, and their primary function is to store and forward packets) and the nodes on the outside of the cloud that use the network (they are commonly called hosts, and they support users and run application programs). Also note that the cloud in is one of the most important icons of computer networking. In general, we use a cloud to denote any type of network, whether it is a single point-to-point link, a multiple-access link, or a switched network. Thus, whenever you see a cloud used in a figure, you can think of it as a placeholder for any of the networking technologies covered in this book. A second way in which a set of computers can be indirectly connected is shown in . In this situation, a set of independent networks (clouds) are interconnected to form an internetwork, or internet for short. We adopt the Internets convention of referring to a generic internetwork of networks as a lowercase i internet, and the currently operational TCP/IP Internet as the capital I Internet. A node that is connected to two or more networks is commonly called a router or gateway, and it plays much the same role as a switchââ¬âit forwards messages from one network to another. Note that an internet can itself be viewed as another kind of network, which means that an internet can be built from an interconnection of internets. Thus, we can recursively build arbitrarily large networks by interconnecting clouds to form larger clouds. Just because a set of hosts are directly or indirectly connected to each other does not mean that we have succeeded in providing host-to-host connectivity. The final requirement is that each node must be able to state which of the other nodes on the network it wants to communicate with. This is done by assigning an address to each node. An address is a byte string that identifies a node; that is, the network can use a nodes address to distinguish it from the other nodes connected to the network. When a source node wants the network to deliver a message to a certain destination node, it specifies the address of the destination node. If the sending and receiving nodes are not directly connected, then the switches and routers of the network use this address to decide how to forward the message toward the destination. The process of determining systematically how to forward messages toward the destination node based on its address is called routing. This brief introduction to addressing and routing has presumed that the source node wants to send a message to a single destination node (unicast). While this is the most common scenario, it is also possible that the source node might want to broadcast a message to all the nodes on the network. Or a source node might want to send a message to some subset of the other nodes, but not all of them, a situation called multicast. Thus, in addition to node-specific addresses, another requirement of a network is that it supports multicast and broadcast addresses. The main idea to take away from this discussion is that we can define a network recursively as consisting of two or more nodes connected by a physical link, or as two or more networks connected by a node. In other words, a network can be constructed from a nesting of networks, where at the bottom level, the network is implemented by some physical medium. One of the key challenges in providing network connectivity is to define an address for each node that is reachable on the network (including support for broadcast and multicast connectivity), and to be able to use this address to route messages toward the appropriate destination node(s). 1.2.2 Cost-Effective Resource Sharing As stated above, this book focuses on packet-switched networks. This section explains the key requirement of computer networksââ¬âefficiencyââ¬âthat leads us to packet switching as the strategy of choice. Given a collection of nodes indirectly connected by a nesting of networks, it is possible for any pair of hosts to send messages to each other across a sequence of links and nodes. Of course, we want to do more than support just one pair of communicating hostsââ¬âwe want to provide all pairs of hosts with the ability to exchange messages. The question, then, is how do all the hosts that want to communicate share the network, especially if they want to use it at the same time? And, as if that problem isnt hard enough, how do several hosts share the same link when they all want to use it at the same time? To understand how hosts share a network, we need to introduce a fundamental concept, multiplexing, which means that a system resource is shared among multiple users. At an intuitive level, multiplexing can be explained by analogy to a timesharing computer system, where a single physical CPU is shared (multiplexed) among multiple jobs, each of which believes it has its own private processor. Similarly, data being sent by multiple users can be multiplexed over the physical links that make up a network. To see how this might work, consider the simple network illustrated in , where the three hosts on the left side of the network (senders S1S3) are sending data to the three hosts on the right (receivers R1R3) by sharing a switched network that contains only one physical link. (For simplicity, assume that host S1 is sending data to host R1, and so on.) In this situation, three flows of dataââ¬âcorresponding to the three pairs of hostsââ¬âare multiplexed onto a single physical link by switch 1 and then demultiplexed back into separate flows by switch 2. Note that we are being intentionally vague about exactly what a flow of data corresponds to. For the purposes of this discussion, assume that each host on the left has a large supply of data that it wants to send to its counterpart on the right. There are several different methods for multiplexing multiple flows onto one physical link. One common method is synchronous time-division multiplexing (STDM). The idea of STDM is to divide time into equal-sized quanta and, in a round-robin fashion, give each flow a chance to send its data over the physical link. In other words, during time quantum 1, data from S1 to R1 is transmitted; during time quantum 2, data from S2 to R2 is transmitted; in quantum 3, S3 sends data to R3. At this point, the first flow (S1 to R1) gets to go again, and the process repeats. Another method is frequency-division multiplexing (FDM). The idea of FDM is to transmit each flow over the physical link at a different frequency, much the same way that the signals for different TV stations are transmitted at a different frequency on a physical cable TV link. Although simple to understand, both STDM and FDM are limited in two ways. First, if one of the flows (host pairs) does not have any data to send, its share of the physical linkââ¬âthat is, its time quantum or its frequencyââ¬âremains idle, even if one of the other flows has data to transmit. For example, S3 had to wait its turn behind S1 and S2 in the previous paragraph, even if S1 and S2 had nothing to send. For computer communication, the amount of time that a link is idle can be very largeââ¬âfor example, consider the amount of time you spend reading a web page (leaving the link idle) compared to the time you spend fetching the page. Second, both STDM and FDM are limited to situations in which the maximum number of flows is fixed and known ahead of time. It is not practical to resize the quantum or to add additional quanta in the case of STDM or to add new frequencies in the case of FDM. The form of multiplexing that we make most use of in this book is called statistical multiplexing. Although the name is not all that helpful for understanding the concept, statistical multiplexing is really quite simple, with two key ideas. First, it is like STDM in that the physical link is shared over timeââ¬âfirst data from one flow is transmitted over the physical link, then data from another flow is transmitted, and so on. Unlike STDM, however, data is transmitted from each flow on demand rather than during a predetermined time slot. Thus, if only one flow has data to send, it gets to transmit that data without waiting for its quantum to come around and thus without having to watch the quanta assigned to the other flows go by unused. It is this avoidance of idle time that gives packet switching its efficiency. As defined so far, however, statistical multiplexing has no mechanism to ensure that all the flows eventually get their turn to transmit over the physical link. That is, once a flow begins sending data, we need some way to limit the transmission, so that the other flows can have a turn. To account for this need, statistical multiplexing defines an upper bound on the size of the block of data that each flow is permitted to transmit at a given time. This limited-size block of data is typically referred to as a packet, to distinguish it from the arbitrarily large message that an application program might want to transmit. Because a packet-switched network limits the maximum size of packets, a host may not be able to send a complete message in one packet. The source may need to fragment the message into several packets, with the receiver reassembling the packets back into the original message. In other words, each flow sends a sequence of packets over the physical link, with a decision made on a packet-by-packet basis as to which flows packet to send next. Notice that if only one flow has data to send, then it can send a sequence of packets back-to-back. However, should more than one of the flows have data to send, then their packets are interleaved on the link. depicts a switch multiplexing packets from multiple sources onto a single shared link. The decision as to which packet to send next on a shared link can be made in a number of different ways. For example, in a network consisting of switches interconnected by links such as the one in the decision would be made by the switch that transmits packets onto the shared link. (As we will see later, not all packet-switched networks actually involve switches, and they may use other mechanisms to determine whose packet goes onto the link next.) Each switch in a packet-switched network makes this decision independently, on a packet-by-packet basis. One of the issues that faces a network designer is how to make this decision in a fair manner. For example, a switch could be designed to service packets on a first-in-first-out (FIFO) basis. Another approach would be to transmit the packets from each of the different flows that are currently sending data through the switch in a round-robin manner. This might be done to ensure that certain flows receive a particular share of the links b andwidth, or that they never have their packets delayed in the switch for more than a certain length of time. A network that attempts to allocate bandwidth to particular flows is sometimes said to support quality of service (QoS), a topic that we return to in Chapter 6. Also, notice in that since the switch has to multiplex three incoming packet streams onto one outgoing link, it is possible that the switch will receive packets faster than the shared link can accommodate. In this case, the switch is forced to buffer these packets in its memory. Should a switch receive packets faster than it can send them for an extended period of time, then the switch will eventually run out of buffer space, and some packets will have to be dropped. When a switch is operating in this state, it is said to be congested. The bottom line is that statistical multiplexing defines a cost-effective way for multiple users (e.g., host-to-host flows of data) to share network resources (links and nodes) in a fine-grained manner. It defines the packet as the granularity with which the links of the network are allocated to different flows, with each switch able to schedule the use of the physical links it is connected to on a per-packet basis. Fairly allocating link capacity to different flows and dealing with congestion when it occurs are the key challenges of statistical multiplexing. 1.2.3 Support for Common Services While the previous section outlined the challenges involved in providing costeffective connectivity among a group of hosts, it is overly simplistic to view a computer network as simply delivering packets among a collection of computers. It is more accurate to think of a network as providing the means for a set of application processes that are distributed over those computers to communicate. In other words, the next requirement of a computer network is that the application programs running on the hosts connected to the network must be able to communicate in a meaningful way. When two application programs need to communicate with each other, there are a lot of complicated things that need to happen beyond simply sending a message from one host to another. One option would be for application designers to build all that complicated functionality into each application program. However, since many applications need common services, it is much more logical to implement those common services once and then to let the application designer build the application using those services. The challenge for a network designer is to identify the right set of common services. The goal is to hide the complexity of the network from the application without overly constraining the application designer. Intuitively, we view the network as providing logical channels over which application-level processes can communicate with each other; each channel provides the set of services required by that application. In other words, just as we use a cloud to abstractly represent connectivity among a set of computers, we now think of a channel as connecting one process to another. shows a pair of application-level processes communicating over a logical channel that is, in turn, implemented on top of a cloud that connects a set of hosts. We can think of the channel as being like a pipe connecting two applications, so that a sending application can put data in one end and expect that data to be delivered by the network to the application at the other end of the pipe. Thechallengeistorecognize what functionality the channels should provide to application programs. For example, does the application require a guarantee that messages sent over the channel are delivered, or is it acceptable if some messages fail to arrive? Is it necessary that messages arrive at the recipient process in the same order in which they are sent, or does the recipient not care about the order in which messages arrive? Does the network need to ensure that no third parties are able to eavesdrop on the channel, or is privacy not a concern? In general, a network provides a variety of different types of channels, with each application selecting the type that best meets its needs. The rest of this section illustrates the thinking involved in defining useful channels. Identifying Common Communication Patterns Designing abstract channels involves first understanding the communication needs of a representative collection of applications, then extracting their common communication requirements, and finally incorporating the functionality that meets these requirements in the network. One of the earliest applications supported on any networ
Sunday, October 13, 2019
Sitting on your Hands as an Alternative to Money :: essays papers
Sitting on your Hands as an Alternative to Money The old adage money canââ¬â¢t buy happiness apparently was never learned in the small town of Dilley, Oregon. Jonathan Hawes is a convicted sex offender who was released into society after serving a five-year prison sentence. Upon his release from prison he planned to move into his mother Wendy Brewtonââ¬â¢s house in Dilley, Oregon. Under Meganââ¬â¢s Law, police are required to notify neighbors when a convicted sex offender is classified as predatory. Before Hawes was classified, Ms. Brewtonââ¬â¢s daughter alerted neighbors of Hawesââ¬â¢ imminent arrival. This upset the small community of 300 to 400 people. Suddenly, neighbors began researching the use of deadly force and the effect of watchdogs. The town called a meeting to discuss the situation with Ms. Brewton. The meeting became quite heated and at one point a resident threatened Hawes life. The meeting left it clear to Ms. Brewton that Hawes was not wanted in her house, which was located a mere 200 feet from a school bus stop. To resolve the conflict, at least three families pooled their money together and paid $250,000 to buy Ms. Brewtonââ¬â¢s house. The families arrived at the dollar amount by taking the average of two state-approved appraisals on the twenty-seven acre land and house. The neighbors put $50,000 down and took out a mortgage on the remainder to insure that a convicted sex offender is not among them. Bilateral Problem: When analyzed from an economic perspective, it is clear that the problem of what to do to prevent Hawes from moving in is reciprocal. According to Coase, the traditional question would be if Hawes inflicts harm on the residents of Dilley how should Hawes be restrained. The real question is who should be allowed to harm whom to avoid the more serious harm. To analyze which harm is greater, both sides must be taken into account. The neighbors are attempting to avoid the potential harm to their neighborhood. With Hawes arrival, they are on heightened alert for their childrenââ¬â¢s safety. This constant fear brings down the property values in the neighborhood because of its undesirable nature. Hawes is also harmed by not being able to move into familiar surroundings that he has a legal right to move into. In the end, the neighbors decided that the harm was great enough to warrant paying Ms.
Subscribe to:
Posts (Atom)