What does "bottleneck" mean in terms of bandwidth?
What is a "bottleneck", particularly when used in terms of network b开发者_如何学编程andwidth?
A bottleneck is the "slowest" part of a system. If you examine a beer bottle, the neck is smaller than the base and so limits the amount of sweet wonderful nectar that you can drink. Mmmm! Beeer! (sorry, got carried away).
In terms of bandwidth, it's the slowest device in the chain. For example, it makes little difference having gigabit ethernet on your PC if your router only runs at 10meg. The router there is the bottleneck.
And it doesn't matter how fast your ethernet card and router and internet infrastructure are, if the site you're trying to download from is running with a 1200/75 acoustic modem from the early '80s. The other end is the bottleneck in that case.
Bottlenecks are everywhere. Your network devices, the disk in your PC, having to fetch from RAM rather than L2 cache, critical paths on your Gantt chart, trying to walk your kids to school when one is a 7yo speed daemon and the other a 5yo "want to stop and look at every single god-damned flower"-type :-)
Basically, it's the thing that, if it was faster, would make the system (as a whole) faster. It's the bottlenecks where you need to optimise since the return on investment should be higher there.
Bottleneck terminology is used in many areas within the computer science realm (and in many outside), in a telecommunication context first one should understand what is throughput to understand Bottleneck as the two are closely related so:
Throughput briefly is the rate of successful packets delivery over a communication channel.
Now let's consider an example, a client and a server con-nected by two communication links and a router.
Consider the throughput for a file transfer from the server to the client. Let R_{s} denote the rate of the link between the server and the router; and R_{c} denote the rate of the link between the router and the client.
Suppose that the only bits being sent in the entire network are those from the server to the client. We now ask, in this ideal scenario, what is the server-to-client throughput?
To answer this question, we may think of bits as fluid and com-munication links as pipes. Clearly, the server cannot pump bits through its link at a rate faster than R_{s} bps; and the router cannot forward bits at a rate faster than R_{c} bps.
If R_{s} < R_{c} , then the bits pumped by the server will “flow” right through the router and arrive at the client at a rate of R_{s} bps, giving a throughput of R_{s} bps. If, on the other hand, R_{c} < R_{s} , then the router will not be able to forward bits as quickly as it receives them. In this case, bits will only leave the router at rate R_{c} , giving an end-to-end throughput of R_{c} . (Note also that if bits continue to arrive at the router at rate R_{s} , and continue to leave the router at R_{c} , the backlog of bits at the router waiting for transmission to the client will grow and grow—a most undesirable situation! Thus, for this simple two-link network, the throughput is min{R_{c},R_{s}}, that is, it is the transmission rate of the bottleneck link.
So now can give a formal sweat and comprehensive definition of bottleneck:
Bottleneck in a communications context, is a point in the network where the transmission rate is impaired or stopped entirely. Effectively, a bottleneck results when there is not enough data handling capacity to accommodate the current volume of traffic, As a result, data flow (or transmission rate)slows down to the speed of the slowest point in the data path. That is min{link_{1}, link_{2}....}
Curtsy (Computer Networking A Top-Down Approach,EIGHTH EDITION,James F. Kurose • Keith W. Ross).
精彩评论