本篇记录了学习计算机网络基础的整个过程,重点是按照《计算机网络自顶向下》一书来学习的,外加自己看的一些资料,虽然以前读书的时候看过这本书,工作的时候或多或少接触过网络方面的,但毕竟不是工作内容,所以很多东西也忘了,现在重新看一下,当作复习笔记用吧,以后的blog风格可能会参杂更多废话,因为本人就喜欢看废话多的blog,一来可以凑凑字数,二来可以乱忽悠。
这一部分对应于书籍的第一大章,为什么一个大章只写一个blog,是因为介绍计算机网络的来源啥的,确实没啥写的,但是还是赖着随时想跳过的冲动看完了,记录一些重要的点,很多名词都是网上找的,额,确实不知道咋个解释,索性用官方的了。
什么是计算机网络? 现在会用电脑手机的都不陌生这个词语,就像蜘蛛网一样,由计算机组成的连接就是一个计算机网络。如局域网,广域网等都算是计算机网络,哪怕是你只在多台电脑中接上一个电线,只要能通信,也算!看看官方说明:
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
而因特网就是一个世界性范围的计算机网络,互联的计算机遍布全世界。为啥大家都说因特网,因为NB,因特网和计算机网络的概念在概念上几乎等同了,就像说冠希哥就想到***一样,说到计算机就想到电脑PC,好吧,我正想说这一点,因特网可以由很多设备互联,比如手机、汽车、家具等等,在说计算机难免过时了些,因此在因特网中有个华丽的名称,所有接入因特网的设备都被称为主机或端系统。
上图是贯穿第一章的图,不得不放上来啊,众所周知,过山要开山,过河要搭桥,没有一条红线,咋个可能成一对呢。不是人人都会他心通,所以,必要要有一条可以互相连接的纽带,才能通信,这个纽带在因特网就叫通信链路。书面的词还是十分一阵见血的。
当然上图是最简单的两个连接了,但是因特网连接的可是全世界的主机,没有规矩,哪成方圆呢,人多的地方就会有阶级,在计算机的世界也一样,就像我们不能直接写申请给习大大一样,需要把申请书上交给村官->镇->县->市->省->中央.在因特网中,作为你现在正在刷blog的电脑就和千千万万个电脑一样,需要将你的数据上交给你的上级,也就是分组交换机,啥位分组交换机,有啥用?别急,现在只需要记得现在你的直系上级是它就够了。分组交换机会把你的数据交给本地ISP,ISP是啥?俗名因特尔服务供应商,比如黑心宽带移动ISP,联通ISP等,这么说大家都懂了,可能中间还有区级isp和省级isp等等,这里又不多管了,然后再上传给国家ISP,后面就是国家之间的传递了,你就可以访问到google、youtube了。 当然分组交换机也会分为很多种的,如路由器和链路层交换机。这两者有啥其区别,后面会知道。
好了,说完了阶级关系,就进正题了,数据要传输,纽带也是要考究的,工欲善其事必先利其器,坐小独轮和做火箭都可以到罗马,但是速度肯定不一样的。所以要传网也是一样,有有线的,就被称为导引型媒体,因为必须按照线路走,不能走到其他地方去,另一种就是无线的,叫非导引型媒体,一个不留神就可能被风拐跑了,所以不好琢磨,就像妹纸的心一样,
导引型媒体(有线):
1:双绞铜线: 传输长度几百米,10Mbps~1Gbps(不准确),作用于LAN(局域网)
2:同轴电缆: 传输长度几百米,10Mbps~1Gbps(不准确),作用于LAN(局域网)
3:光缆: 传输长度几千米,1Gbps~100Gbps(不准确),作用于长距离传输(跨海光缆链路)
非导引型媒体(无线):
1:陆地无线电: 传输长度几十米,1Mbps~100Mbps(不准确),作用于LAN(wifi)
2:卫星无线电: 传输长度几千千米,> Gbps(不准确),作用于WAN(广域网)
上面的这些线为啥是这样的特性,我也不知道,估计也只有做射频的大佬知道吧。
现在有了主机,有了线,那么就可以进行通信了,这里引入了一个新的概念,协议。
我们不妨先思考这样一个问题:我今天路遇一个外国美眉,想去搭讪,但是蹩脚的英语完全听不懂,很显然,美眉拂袖而去。但是如果我精通10国语言,那么就相谈甚欢,就一起探讨人生去了,很明显,这里的差距就是我是否理解英语,如果我理解,这次邂逅就开始了,另外,假设美眉正在赶路,我上去搭讪,要么就被冷漠,要么就被骂流氓,因此,搭讪要选对能交流的,合适的场景,才能愉快的进行。引申到因特网就是需要保证主机通信双方都要理解同样的数据格式和时间刻度,才能进行有效的通信。
盗一张书上的图:
写了太多废话,实在是难写,十分佩服码字如喝水的大佬。好了,我们上面简单了讨论了一个普通的pc(主机)要连接google,需要的条件:链路,协议,链路的数据最先会从pc端上报给分组交换机,然后由交换机上报给区域ISP。俗话说一人的事好办,10人的事还行,100人的事难搞,作为管理一个局域网的分组交换机,咋个有效的处理好下面诸多主机的事情,也是一个值得思考的问题,还是拿生活的例子决定,今天华西村发红包,所有的村民按家庭为单位要去村长那儿请安~,请安的方式可就多了,有人的说,按照家庭来排,每家半天,不管来不来,这半天都给你家留着,别人不能去占用,当然想法是好的,但是坏就坏在就有村名看村长不爽,不去请安,这样村长和一群人就坐在那儿干瞪眼了,所以马上就有人跳出来说不行! 现在是平等社会,要先来先得,所以,一群年轻小伙马上去请安回去玩农药去了,剩下得老爹老妈慢悠悠的去,这是又有人来反对了,这么乱,怎么统计以家庭为单位,还要每个人做标记才行,不行不行,太费时间了,还是一家人半天时间好,两派支持者吵得面红耳赤。后面大家想了一个办法,如果大家保证每家能按时到场,那么就按时间段算,如果不能,就先到先得,因此这件事就这样安排下去了。
那么,回到我们得计算机网络中来,我们就得到了2中不同的方式:电路交换和分组交换,先贴张图:
这里我们要记得,电路交换和分组交换指的是主机端与相连的分组交换机之间的数据通信方式。按照上面的例子可得,按时间的就是电路交换,先到先得的就是分组交换。为啥叫电路交换,书上类比电话举例,当电话打通后,该链路就被称为一条电路,占用了,其他电话不能再次被接听,就好比上面规定了这一天是张三家的,其他家就不能占用了,分组交换就更好理解了,本来安排的是一家人去请安,被分开后先到先得。就类比把需要发的数据分开传输。说到这里,大家估计也明白了,那么直接贴出电路交换和分组交换的优缺点:
上面的答案是在现代交换计算原理网上题库找的答案,看看即可,如果要考试,还是要看教材的标准答案滴,说到电路交换,其实还要多说一点,上面举得例子分时间段的,既然是分时,那么该分多少好呢?每家人是分半天?1天? 这个说法在因特网里面叫做时隙,
下面直接贴出书中关于时隙的一道题,就不多说了。
这里的时隙数是24,即我们把单位时间分成24份给所有要传输的通路,注意:这里的时隙值是给所有的通路分的时间段,每个通路只占用其中一段,故一条链路占用的时间为1/24,即使我们这里再加10条链路去传输,当前链路传输文件的时间也是10.5s,不会发生任何改变。
说完了分时交换,其实上面例子还有一种情况也有可能发生,假设村长有很耳朵,那么是不是所有村民可以同时请安呢,每只耳朵听一家人讲?答案是可以的,但是这样就引申出这样一样问题,到底是所有耳朵单独听一家人说完呢再去听其他家的,还是所有耳朵同时听不同家的?(假设同一家被听的耳朵越多语速越快),很不幸,这种假虽然在现实生活中不成立,但是在电磁中成立,历史中的某一天,天才大佬傅里叶发现,任何连续测量的时序和信号,都可以用不同频率的正弦波叠加,电信号也是连续信号,因此存在诸多频率,每个频率都可以用作传输信号,这就是我们平时听广播多少多少频段一样,我们同时能收听无数个广播而不产生交叉。因此,电路交换又有多种不同的交换方式:时分多路复用和频分多路复用,后面还存在码分多路复用等等,可以自行了解。
说完了电路交换,再说说分组交换,分组交换的问题也很明显,假设同时到达的村民很多,那么就只有坐在村长门口排队了,不知道在哪里看到一个blog讲的一个冷笑话,在现在的社会都市中,随处都在排成长龙,只有在这时,我们才明白自己身为龙的传人。哈哈!不扯淡了,引出概念: 在计算机网络中,源主机将长报文划分为较小的数据块,并称之为分组,分组在交换机中采用了存储转发传输机制,额,说了这么多,就是将数据分成小份,先到先得,数据来不及处理就排队。但是,村长的门口又不是无限大的,站满人了,你就去不了了,那么现在你就有几种选择,要么就是隔段时间去看看,要么等村长发现你没去来问你,要么干脆你和村长都不管。前两种属于分组重传机制,最后一种就是出现分组丢失或丢包情况,这里就不多说了。
大家都知道排队是要废时间的,这就是分组交换劣于电路交换的地方,我们可以想象一下,从一个数据开始从源主机开始出发到最终目的主机中间会存在那些延时(忽略次要因素):
1:将整个数据划分成单独的小数据块并分析数据块送往哪儿
2:排队等待发送
3:交换机发送数据的时间
4:在电缆上传输的时间
上面4大部分延时共同构成了分组交换的主要延时,几分别为节点处理时延,排队时延,传输时延,传播时延。
这里书上重点强调了传输时延,传播时延的区别,个人觉得没有什么可混淆的地方,就好比汽车过高速口一样,你的车辆开始过的时候,到你真正过完卡口,在高速路上飙车的时候,车速是不一样的,这两段时间不能统一,因此分为两段计算。写到这里,那么大家都清楚了,分组交换的总时间=处理时延+排队时延+传输时延+传播时延。
既然发现了问题,那么就该解决问题了,人们就是在无穷无尽的问题中得到了发展,既然传输的总时间主要是上面4大部分,那么干掉它们不就行了,粗略一瞥,好像除了排队时延貌似其他都没得办法了,除非你修炼成大罗金仙可以缩地成寸,看来只有减少排队时延的时间了,还是拿华西村村长的例子为例,为了使村民不排队,那么村长打发一个人的速率肯定要比村名来的速率快才行,简言概之就是供不应求。那么,这里假设传的分组数据每个bit平均到达交换机的速度是a,一个分组数据共有L个bit,交换机处理分组数据的速率为R,即有
aL < R ========> aL /R < 1
而aL / R这个比例被称为流量强度。当aL < R即 aL /R < 1,一切好说,供不应求,但是如果当aL > R ,即当aL /R >1,发送的数据L为无穷大时,aL将无穷大于R,会造成永久柱塞,当然这是极端情况,但是对于当前计算机的流量来说,所转发的流量已经是天文数字,故流量设计的铁律:设置系统时流量强度不等大于1.
额,其实说了这么多,流量强度其实不算是解决排队时延的一种方式,而是一种检测排队时延的一种指标,为什么不写怎么解决这个问题? 其实就目前的情况而言,排队时延是和硬件的传输属性直接相关,只用当新的材料突破传输速率过后,这写问题才会本质上的改善,因此,这里只了解怎么避免即可。
了解了流量强度,那么就还有说衡量整个网络的重要参数-吞吐量,吞吐量故名思意就是形容一条链路上能够承受的传输速率。为了理解这个概念。原主机A向目的主机B发送一个大文件。任何瞬间的传输bit结束除以它的单位时间,就等于当前的瞬时吞吐量。而许多应用程序在其用户界面显示就是瞬时吞吐量。如果该文件由f比特组成。而目的主机B接收总共用了t秒,则文件传输的平均吞吐量就为f/t bps, 但是平均吞吐量的大小受制于每条传输链路的传输速率的,就像是旧的不去,新的不来。典型的时间就是你哪怕是100M的宽带,在百度云盘面前只能乖乖变为10k一样,这里假设百度服务器到你所在运营商isp的传输速率只有10k,那么即使运营商isp到你的主机为100M,也只会浪费掉其中的带宽。因为对整个链路的吞吐量等于所在链路传输速率的最小值:min(R1,R2,,,RN)
对于吞吐量还存在另一个情况。就是多台服务器和主机共同同一条链路:如图
假设公共传输链路为10Mbps,每个路由器到主机的传输速率为2Mbps,但是这里由于有10个链路同时传输,假设按照平均分配的方式,每个链路在公共传输链路所占的速率就为1Mbps,最终吞吐量也被限制为1Mbps.
好了,这里就不写了,本来第一章还有协议分层的部分的简述,但是个人觉得和本篇写的内容格格不入,就打算放在下篇写了。总结一些,我们这篇主要讲了几个概念:
.所有接入因特网的设备都被称为主机或端系统
.主机或端系统接到分组交换机上-->本地isp-->国家isp
.链路传输的方式:导引型媒体,非导引型媒体
.主机到交换机的传输方式:电路传输(时分,时隙,频分)、分组传输(几大延时)
.衡量网络的几个参数:流量强度, 吞吐量。
.......