当今社会,科学技术高速发展,新事物层出不穷,而计算机网络成为了这一发展的催化剂。计算机网络已经渗透到了我们生活中的每一个角落,所以,学习计算机网络是必要的,免得让我们在信息的高速路上成为一只跛行的羔羊。
学习计算机网络,需要先从我们平日生活当中的一些名词入手。那么,什么名词出现的频率最高呢?相信大多数人应该都知道的一个名词——带宽,是我们见到过,听说过频率最高的名词了。所以,这篇文章先来讲讲什么是带宽,它在计算机网络中到底起着什么样的作用。
说到带宽,这真是一个非常幽默非常滑稽的名词。一般来说,我们经常会看到这样的解释:带宽就是高速公路,带宽越宽,说明这条线路的通行能力越强,速度也会越快。其实,这么理解并不能算错,如果说是非专业人士,这样的解释就已经足够了。但是,这篇文章的目的在于,要更深一步的挖掘带宽的含义,理解带宽到底是一个什么东西。
首先,必须要清楚的是带宽的单位。带宽的单位是“bit/s”,8bit=1Byte,1024Byte=1KB,1024KB=1MB。所以,我们平时所说的100M带宽,实际上是100Mbit/s,也就是100Mbps。我们所说的网速,一般使用字节,也就是Byte来做单位的,1MB/s=8Mbit/s。那么,换算成我们平时常用的网速,100Mbit/s大概就是12.5MB/s。依次类推,10Mbit/s就是1.25MB/s。所以,经常有人说,电信公司在欺骗用户,100M网速实际只有10M,而10M实际只有1M,实际上是用户不是专业人士,对带宽的换算单位不了解,所以造成了误解。而电信公司当然也懒得解释,带宽的单位又不是自己制定的,为什么要解释?解释了普通人也不一定懂。而且100M,10M这样的数字看上去非常大,也可以诱导客户购买升级宽带,所以久而久之,大多数的用户就形成了一种对带宽速度的错误认识。
了解了基本的单位,我们再讨论一下带宽中的“带”字。“宽”字很好理解,基本可以认为和我们平时所理解的宽是一样的概念,那么“带”呢?就本人看过的很多博客或者一些参考书,甚至教师,都会将带宽解释为数据的传输速度,虽然在一定意义上说,这样解释很有道理,那就是但从抽象角度来讲,如果我们不关心数据的发送和传播过程,那么这样更容易让人理解,但严格的讲,这是不准确的。为了说明带宽,我们还要顺带提一下数据是如何发送的。
数据是如何发送的呢?其实就是数据从我们使用的主机进入到计算机外的网线(或通信线路)的这一段过程。首先,计算机的应用程序要把需要发送的数据写入这个进程的内存地址空间里,这么说可能太过于高端,那么说简单点,就是把数据赋值给变量的过程。然后,我们的应用程序通过系统的接口,把数据送入内核缓冲区,这一步大多都有封装良好的接口,我们编程时直接调用即可。接下来,内核通知网卡控制器来取数据,网卡会将要发送的数据送到网卡的缓冲区中。再然后,网卡缓冲区的数据发送到网线,同时也释放刚才那些数据所占用的内存空间。而发送的时候,网卡会使用硬件来将数据转换成电信号,再发送出去。
数据进入了网线,看上去就和我们平时说的带宽很像了:数据像高速公路上的汽车,公路越宽,车就可以跑得越快,同时通行的车辆也越多。那么到底是不是这样呢?首先,我们要从物理学的角度解答这个问题。不论是电信号还是光信号,进入网线后,都能够快速传播,而这个传播速度只与介质有关。我们平时用的网线是铜线,铜线中电信号传播速度大约为2.3×108m/s。而光纤中,这个速度大约为2.0×108m/s。这个速度比我们平时认为的光速要慢(3.0×108m/s),是因为这个速度是在真空中传播的速度,而我们的网线中,环境无法达到真空中那么理想,加之光纤中光还存在反射,所以影响了传播速度。而我们用的网线,大多是八根铜线制成的,所以,这个公路的宽度,实际上也是给定的。也就是说,我们根本不能改变这条公路的宽度和车辆行驶的速度。
从上面的结论来看,带宽似乎和高速公路不那么像了,因为带宽并不能影响我们数据传播的速度。那么,带宽究竟是什么呢?显然,带宽是数据发送的速度。我们有时也会听到百兆网卡这种说法,是指网卡的最大发送速度为100Mbps,也就是说,网卡可以在1秒钟之内最多发出100Mb的数据。我们要提升带宽,就要提升这个速度。那么,这个速度和什么有关呢?首先,是将数据转换为二进制信号传送至网线的能力,以及网线另一端对二进制信号的接收能力,同时也包括线路对传输频率的支持程度,这些能力越强,发送数据与接收数据的能力就越强,每秒钟能发出去的数据就越多。另一个影响的方面是数据传播介质的并行程度,也就是同一时间能传输的数据的位数。并行程度越高,同一时间发送的数据量越大。我们可以通过将多条光纤并行组成光缆,或者使用64位操作系统、更换频率更高的处理器等方式来提升我们的总线带宽。
那么很多同学又会问了,为什么自己感觉光纤比铜线快呢?我们知道,电信号在传播过程中是会有衰减的。而在光纤中,这种衰减比铜线小。铜线大概只能传输100m的距离,就不得不使用中继器来延续信号,这一过程比较复杂,而且转换的时间相对于在铜线中传输的时间来说是不可忽略的经过,多次转换,时间就变得非常大了,也会减慢数据的传输效率。而光纤的损耗非常低,一般可以传输数千米以上,中继器的使用量减少,所以也就更快。这里也需要注意,数据的发送速度和数据的传输速度是不一样的。比如,我们一秒钟发送100MB的数据,那么我们的网线上就会传输100MB的数据,而这100MB数据的速度在铜线上约为2.3×108m/s。
说到这里,有悟性的同学应该知道带宽是什么了。然而我们的网速,其实不仅仅是由我们的计算机决定,也同时由互联网运营商决定。因为带宽是有限的,那么它必然是一个抢手的资源,而且网络的搭建是有成本的,所以互联网运营商会在他们的路由器上做一些限制,限制数据从你主机流入路由器转发队列的速度,而经过网络协议的调整,我们的网速也就慢了下来。很遗憾,我自己的老师并没有把这些知识说清楚,甚至在作业题中布置一些已经过时的、不使用的协议和概念反复考察,说明了大学本科教育的滞后性。所以,学习除了上课,也需要我们自己查阅资料,多做一些课后的工作。